aboutsummaryrefslogtreecommitdiff
path: root/test/liang.cc
blob: ee3f8e9e6a4916a9c670b52f44d0040adc8259a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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;
}