1 #include <stdio.h>
2 #include <string.h>
3 #include <fribidi.h>
4 
5 char buf[BUFSIZ];
6 FriBidiChar ubuf[BUFSIZ];
7 
8 int
main(void)9 main (
10   void
11 )
12 {
13   FriBidiCharSet caprtl = fribidi_parse_charset ("CapRTL");
14   FriBidiCharSet utf8 = fribidi_parse_charset ("UTF-8");
15 
16   while (fgets (buf, sizeof buf, stdin))
17     {
18       char eol[5];
19 
20       FriBidiStrIndex len = strlen (buf);
21       while (len && (buf[len - 1] == '\n' || buf[len - 1] == '\r'))
22 	len--;
23       strncpy (eol, buf + len, sizeof eol);
24       buf[len] = 0;
25 
26       len = fribidi_charset_to_unicode (caprtl, buf, len, ubuf);
27       fprintf (stderr, "%d\n", len);
28       len = fribidi_unicode_to_charset (utf8, ubuf, len, buf);
29 
30       buf[len] = 0;
31       printf ("%s%s", buf, eol);
32     }
33 
34   return 0;
35 }
36