コード例 #1
0
ファイル: setup.c プロジェクト: tux4kids/tuxmath
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);
}
コード例 #2
0
ファイル: locale.c プロジェクト: AlainODea/illumos-gate
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);
}