void initialize_locale(const char* desired_loc) { const char *s1, *s2, *s3, *s4; if(!desired_loc) { fprintf(stderr, "initialize_locale() - null desired_loc arg. \n"); return; } s1 = setlocale(LC_ALL, desired_loc); s2 = bindtextdomain(PACKAGE, TUXLOCALE); s3 = bind_textdomain_codeset(PACKAGE, "UTF-8"); s4 = textdomain(PACKAGE); strncpy(tuxmath_locale.setlocale_ret, s1, 64); strncpy(tuxmath_locale.bindtextdomain_ret, s2, 64); strncpy(tuxmath_locale.bind_textdomain_codeset_ret, s3, 64); strncpy(tuxmath_locale.textdomain_ret, s4, 64); DEBUGCODE(debug_setup) print_locale_info(stderr); }
int main(int argc, char **argv) { int c; int retval = 0; int cflag, kflag, aflag, mflag; (void) setlocale(LC_ALL, ""); #if !defined(TEXT_DOMAIN) #define TEXT_DOMAIN "SYS_TEST" #endif (void) textdomain(TEXT_DOMAIN); cflag = kflag = aflag = mflag = 0; while ((c = getopt(argc, argv, "amck")) != EOF) { switch (c) { case 'a': aflag = 1; break; case 'm': mflag = 1; break; case 'c': cflag = 1; break; case 'k': kflag = 1; break; default: usage(); /* NOTREACHED */ break; } } /* -a OR -m OR (-c and/or -k) */ if ((aflag && mflag) || ((aflag || mflag) && (cflag || kflag))) { usage(); /* NOTREACHED */ } escapec = get_escapechar(); if (aflag) { print_all_info(GET_LOCALE); /* NOTREACHED */ } if (mflag) { print_all_info(GET_CHARMAP); /* NOTREACHED */ } if (optind == argc && !cflag && !kflag) { print_cur_locale(); /* NOTREACHED */ } if (optind == argc) { usage(); /* NOTREACHED */ } for (; optind < argc; optind++) { retval += print_locale_info(argv[optind], cflag, kflag); } return (retval); }