diff options
author | Chris Toshok <toshok@ximian.com> | 2003-03-31 17:41:46 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2003-03-31 17:41:46 +0800 |
commit | c689dd7130ffda04180354698e16926e3bb88e8c (patch) | |
tree | 5f1bda877081bda85adda03ea49fc97ae0ae97b4 /e-util/ename/test-ename-western.c | |
parent | 01d1329ba448015df49e2f2f1db926e3fda7997d (diff) | |
download | gsoc2013-evolution-c689dd7130ffda04180354698e16926e3bb88e8c.tar gsoc2013-evolution-c689dd7130ffda04180354698e16926e3bb88e8c.tar.gz gsoc2013-evolution-c689dd7130ffda04180354698e16926e3bb88e8c.tar.bz2 gsoc2013-evolution-c689dd7130ffda04180354698e16926e3bb88e8c.tar.lz gsoc2013-evolution-c689dd7130ffda04180354698e16926e3bb88e8c.tar.xz gsoc2013-evolution-c689dd7130ffda04180354698e16926e3bb88e8c.tar.zst gsoc2013-evolution-c689dd7130ffda04180354698e16926e3bb88e8c.zip |
print "" if the value is NULL. (main): add a couple of utf8 test cases
2003-03-31 Chris Toshok <toshok@ximian.com>
* ename/test-ename-western.c (do_name): print "" if the value is
NULL.
(main): add a couple of utf8 test cases (that still use western
orderings).
* ename/e-name-western.c (e_name_western_str_count_words):
utf8-ize this.
(e_name_western_cleanup_string): same.
(e_name_western_get_words_at_idx): same.
(e_name_western_get_one_prefix_at_str): same.
(e_name_western_get_prefix_at_str): same.
(e_name_western_extract_first): same.
(e_name_western_extract_middle): same.
(e_name_western_extract_nickname): same.
(e_name_western_extract_last): same.
(e_name_western_get_preceding_word): same.
(e_name_western_get_suffix_at_str_end): same.
(e_name_western_detect_backwards): same.
(e_name_western_reorder_asshole): same.
(FINISH_CHECK_MIDDLE_NAME_FOR_CONJUNCTION): same.
(e_name_western_fixup): same.
(e_name_western_parse): validate the string and truncate it if
need be.
svn path=/trunk/; revision=20594
Diffstat (limited to 'e-util/ename/test-ename-western.c')
-rw-r--r-- | e-util/ename/test-ename-western.c | 75 |
1 files changed, 69 insertions, 6 deletions
diff --git a/e-util/ename/test-ename-western.c b/e-util/ename/test-ename-western.c index 09847b5b4b..7a0ab09857 100644 --- a/e-util/ename/test-ename-western.c +++ b/e-util/ename/test-ename-western.c @@ -4,6 +4,7 @@ #include <gtk/gtkmain.h> #include <ename/e-name-western.h> + static void do_name (char *n) { @@ -13,12 +14,12 @@ do_name (char *n) printf ("Full Name: [%s]\n", n); - printf ("Prefix: [%s]\n", wname->prefix); - printf ("First: [%s]\n", wname->first); - printf ("Middle: [%s]\n", wname->middle); - printf ("Nick: [%s]\n", wname->nick); - printf ("Last: [%s]\n", wname->last); - printf ("Suffix: [%s]\n", wname->suffix); + printf ("Prefix: [%s]\n", wname->prefix ? wname->prefix : ""); + printf ("First: [%s]\n", wname->first ? wname->first : ""); + printf ("Middle: [%s]\n", wname->middle ? wname->middle : ""); + printf ("Nick: [%s]\n", wname->nick ? wname->nick : ""); + printf ("Last: [%s]\n", wname->last ? wname->last : ""); + printf ("Suffix: [%s]\n", wname->suffix ? wname->suffix : ""); printf ("\n"); @@ -28,6 +29,7 @@ do_name (char *n) int main (int argc, char **argv) { + GString *str; if (argc == 2) { while (! feof (stdin)) { char s[256]; @@ -67,5 +69,66 @@ main (int argc, char **argv) do_name ("Nick Glennie-Smith"); do_name ("Dr von Johnson, Albert Roderick Jr"); + /* create a name of the form: + + <Prefix> <First name> <Nickname> <Middle> <Last name> <Suffix> + + composed almost entirely of multibyte utf8 sequences. + */ + str = g_string_new ("Dr. "); + + str = g_string_append_unichar (str, 0x5341); + str = g_string_append_unichar (str, 0x57CE); + str = g_string_append_unichar (str, 0x76EE); + + str = g_string_append (str, " \""); + str = g_string_append_unichar (str, 0x5341); + str = g_string_append_unichar (str, 0x5341); + str = g_string_append (str, "\" "); + + str = g_string_append_unichar (str, 0x5341); + str = g_string_append_unichar (str, 0x76EE); + + str = g_string_append (str, " "); + + str = g_string_append_unichar (str, 0x76EE); + str = g_string_append_unichar (str, 0x76EE); + str = g_string_append (str, ", Esquire"); + + do_name (str->str); + + str = g_string_assign (str, ""); + + /* Now try a utf8 sequence of the form: + + Prefix Last, First Middle Suffix + */ + + str = g_string_new ("Dr. "); + + /* last */ + str = g_string_append_unichar (str, 0x5341); + str = g_string_append_unichar (str, 0x57CE); + str = g_string_append_unichar (str, 0x76EE); + + str = g_string_append (str, ", "); + + /* first */ + str = g_string_append_unichar (str, 0x5341); + str = g_string_append_unichar (str, 0x76EE); + str = g_string_append_unichar (str, 0x57CE); + + str = g_string_append (str, " "); + + /* middle */ + str = g_string_append_unichar (str, 0x5341); + str = g_string_append_unichar (str, 0x76EE); + str = g_string_append_unichar (str, 0x76EE); + str = g_string_append_unichar (str, 0x76EE); + + str = g_string_append (str, ", Esquire"); + + do_name (str->str); + return 0; } |