diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/Makefile.am | 12 | ||||
-rw-r--r-- | examples/example1.c (renamed from examples/example.c) | 0 | ||||
-rw-r--r-- | examples/example2.c | 60 | ||||
-rw-r--r-- | examples/rcc-gtk-config.c | 6 |
4 files changed, 70 insertions, 8 deletions
diff --git a/examples/Makefile.am b/examples/Makefile.am index 6886a77..99b7506 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,6 +1,8 @@ -bin_PROGRAMS= example -example_SOURCES= example.c -example_LDADD= ../src/librcc.la +bin_PROGRAMS= example1 example2 +example1_SOURCES= example1.c +example1_LDADD= ../src/librcc.la +example2_SOURCES= example2.c +example2_LDADD= ../src/librcc.la if HAVE_GTK bin_PROGRAMS+= rcc-gtk-config @@ -18,7 +20,7 @@ endif EXTRA_DIST= input-russian.txt rcc.xml rcc-example.xml mpg123-rcc.patch -test-russian: example - cat input-russian.txt | ./example +test-russian: example2 + cat input-russian.txt | ./example2 ru AM_CPPFLAGS = -I../src -I../ui diff --git a/examples/example.c b/examples/example1.c index 43fc853..43fc853 100644 --- a/examples/example.c +++ b/examples/example1.c diff --git a/examples/example2.c b/examples/example2.c new file mode 100644 index 0000000..cc4a3fa --- /dev/null +++ b/examples/example2.c @@ -0,0 +1,60 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <locale.h> + +#include <librcc.h> + + +int main(int argc, char *argv[]) { + rcc_language_id language_id, current_language_id, english_language_id; + rcc_string rccstring; + const char *language; + char buf[255]; + char *recoded; + + rcc_class classes[] = { + { "input", RCC_CLASS_STANDARD, NULL, NULL, "Input Encoding", 0 }, + { "output", RCC_CLASS_STANDARD, "LC_CTYPE", NULL, "Output Encoding", 0 }, + { NULL } + }; + + setlocale(LC_ALL, ""); + + rccInit(); + rccInitDefaultContext(NULL, 0, 0, classes, 0); + rccInitDb4(NULL, "example", 0); + rccSetOption(NULL, RCC_OPTION_TRANSLATE, 1); + +// rccExternalInit(); +// rccExternalFree(); + + current_language_id = rccGetCurrentLanguage(NULL); + english_language_id = rccGetLanguageByName(NULL, "en"); + if (argc>1) rccSetLanguageByName(NULL, argv[1]); + language_id = rccGetCurrentLanguage(NULL); + + language = rccGetCurrentLanguageName(NULL); + if (language) printf("Current Language: %s\n\n", language); + else printf("Unable Detect Language\n\n"); + + while (fgets(buf,255,stdin)) { + if (strlen(buf)<2) break; + + rccSetLanguage(NULL, language_id); + rccstring = rccFrom(NULL, 0, buf); + if (rccstring) { + rccSetLanguage(NULL, english_language_id); + recoded = rccTo(NULL, 1, rccstring); + if (recoded) { + printf(recoded); + free(recoded); + } else printf("Recoding from UTF-8 is failed\n"); + free(rccstring); + } else printf("Recoding to UTF-8 is failed\n"); + } + + rccFree(); + + return 0; +} diff --git a/examples/rcc-gtk-config.c b/examples/rcc-gtk-config.c index 7758f09..d0775a6 100644 --- a/examples/rcc-gtk-config.c +++ b/examples/rcc-gtk-config.c @@ -38,15 +38,15 @@ int main (int argc, char *argv[]) if (argc<1) config = argv[0]; else config = argv[1]; - gtk_set_locale (); - gtk_init (&argc, &argv); - rccInit(); rccUiInit(); ctx = rccCreateContext(NULL, 0, 0, classes, 0); rccLoad(ctx, config); uictx = rccUiCreateContext(ctx); + gtk_set_locale (); + gtk_init (&argc, &argv); + window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_policy(GTK_WINDOW (window1), FALSE, FALSE, TRUE); gtk_window_set_title (GTK_WINDOW (window1), "LibRCC Config"); |