Я ищу аглорифм расстановки переносов, загруженный с сайта OpenOffice, но я не мог понять, для чего нужны параметры rep, pos и cut после просмотра комментария. Может ли кто-нибудь со знанием сказать мне, что делают эти параметры? Вот комментарии.
Из примера кажется, что ff можно заменить одним f, но какое это имеет отношение к переносу?
Спасибо,
/*
int hnj_hyphen_hyphenate2(): non-standard hyphenation.
(It supports Catalan, Dutch, German, Hungarian, Norwegian, Swedish
etc. orthography, see documentation.)
input data:
word: input word
word_size: byte length of the input word
hyphens: allocated character buffer (size = word_size + 5)
hyphenated_word: allocated character buffer (size ~ word_size * 2) or NULL
rep, pos, cut: pointers (point to the allocated and zeroed buffers
(size=word_size) or with NULL value) or NULL
output data:
hyphens: hyphenation vector (hyphenation points signed with odd numbers)
hyphenated_word: hyphenated input word (hyphens signed with ='),
optional (NULL input)
rep: NULL (only standard hyph.), or replacements (hyphenation points
signed with
=' в заменах); pos: NULL, или разница между фактической позицией и начальными позициями изменения во входных словах; cut: NULL или количество удаленных символов исходных слов при переносе,
Примечание: rep, pos, cut — это массивы, дополняющие дефисы, индексированные позициями символов входного слова.
Например: Schiffahrt -> Schiff=fahrt, шаблон: f1f/ff=f,1,2 вывод: rep[5]="ff=f", pos[5] = 1, cut[5] = 2
Примечание: hnj_hyphen_hyphenate2() может выделять rep, pos, cut (массивы длины word_size):
символ ** повтор = NULL; интервал * позиция = NULL; интервал * вырезать = NULL; символьные дефисы[MAXWORDLEN]; hnj_hyphen_hyphenate2(dict, "example", 7, дефисы, NULL, &rep, &pos, &cut);
См. пример в исходном дистрибутиве.
*/
int hnj_hyphen_hyphenate2 (HyphenDict *dict, const char *word, int word_size, char * hyphens, char *hyphenated_word, char * rep, int ** pos, int ** cut); пре>код>