diff options
Diffstat (limited to 'test/unit/liang.cc')
-rw-r--r-- | test/unit/liang.cc | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/test/unit/liang.cc b/test/unit/liang.cc new file mode 100644 index 00000000..ee3f8e9e --- /dev/null +++ b/test/unit/liang.cc @@ -0,0 +1,79 @@ +#include <unistd.h> + +#include "../dw/fltkcore.hh" +#include "../dw/hyphenator.hh" + +void hyphenateWord (dw::core::Platform *p, const char *lang, const char *word) +{ + dw::Hyphenator *h = dw::Hyphenator::getHyphenator (lang); + + int numBreaks; + int *breakPos = h->hyphenateWord (p, word, &numBreaks); + for (int i = 0; i < numBreaks + 1; i++) { + if (i != 0) + printf (" \xc2\xad "); + int start = (i == 0 ? 0 : breakPos[i - 1]); + int end = (i == numBreaks ? strlen (word) : breakPos[i]); + for (int j = start; j < end; j++) + putchar (word[j]); + } + putchar ('\n'); + if (breakPos) + free (breakPos); +} + +int main (int argc, char *argv[]) +{ + dw::fltk::FltkPlatform p; + + if (argc > 1) { + // Usage: liang [-l LANG] WORD ... + + const char *lang = "de"; + char opt; + + while ((opt = getopt(argc, argv, "l:")) != -1) { + switch (opt) { + case 'l': + lang = optarg; + break; + } + } + + for (int i = optind; i < argc; i++) + hyphenateWord (&p, lang, argv[i]); + + } else { + hyphenateWord (&p, "de", "..."); + hyphenateWord (&p, "de", "Jahrhundertroman"); + hyphenateWord (&p, "de", "JAHRHUNDERTROMAN"); + hyphenateWord (&p, "de", "„Jahrhundertroman“"); + hyphenateWord (&p, "de", "währenddessen"); + hyphenateWord (&p, "de", "„währenddessen“"); + hyphenateWord (&p, "de", "Ückendorf"); + hyphenateWord (&p, "de", "über"); + hyphenateWord (&p, "de", "aber"); + hyphenateWord (&p, "de", "Ackermann"); + hyphenateWord (&p, "de", "„Ackermann“"); + hyphenateWord (&p, "de", "entscheidet."); + hyphenateWord (&p, "de", "Grundstücksverkehrsgenehmigungszuständigkeits" + "übertragungsverordnung"); + hyphenateWord (&p, "de", "„Grundstücksverkehrsgenehmigungszuständigkeits" + "übertragungsverordnung“"); + hyphenateWord (&p, "de", "Grundstücksverkehrsgenehmigungszuständigkeit"); + hyphenateWord (&p, "de", + "„Grundstücksverkehrsgenehmigungszuständigkeit“"); + hyphenateWord (&p, "de", + "(6R,7R)-7-[2-(2-Amino-4-thiazolyl)-glyoxylamido]-3-" + "(2,5-dihydro-6-hydroxy-2-methyl-5-oxo-1,2,4-triazin-3-yl-" + "thiomethyl)-8-oxo-5-thia-1-azabicyclo[4.2.0]oct-2-en-2-" + "carbonsäure-7²-(Z)-(O-methyloxim)"); + hyphenateWord (&p, "de", "Abtei-Stadt"); + hyphenateWord (&p, "de", "Nordrhein-Westfalen"); + hyphenateWord (&p, "de", "kurz\xc2\xa0und\xc2\xa0knapp"); + hyphenateWord (&p, "de", "weiß"); + hyphenateWord (&p, "de", "www.dillo.org"); + } + + return 0; +} |