summaryrefslogtreecommitdiff
path: root/test/unit/liang.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/liang.cc')
-rw-r--r--test/unit/liang.cc79
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;
+}