diff options
author | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2007-09-14 02:27:22 +0000 |
---|---|---|
committer | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2007-09-14 02:27:22 +0000 |
commit | db1f069b7f02a8e17a9e4abf8f182530b882c6c9 (patch) | |
tree | 9d1371a56b0ef8f51d62db6ebfe74e5a8534ffe5 /cgi-bin/template.c | |
parent | 76cd9e37aaf496aab887d499f4917b60e91d6d25 (diff) | |
download | cups-db1f069b7f02a8e17a9e4abf8f182530b882c6c9.tar.gz |
Merge changes from CUPS 1.3.1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@470 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'cgi-bin/template.c')
-rw-r--r-- | cgi-bin/template.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/cgi-bin/template.c b/cgi-bin/template.c index 908db4b48..021de82f5 100644 --- a/cgi-bin/template.c +++ b/cgi-bin/template.c @@ -1,5 +1,5 @@ /* - * "$Id: template.c 6717 2007-07-24 23:47:12Z mike $" + * "$Id: template.c 6799 2007-08-15 19:33:36Z mike $" * * CGI template function. * @@ -85,9 +85,9 @@ cgiCopyTemplateFile(FILE *out, /* I - Output file */ void cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */ { - int i; /* Looping var */ char filename[1024], /* Filename */ - locale[16]; /* Locale name */ + locale[16], /* Locale name */ + *locptr; /* Pointer into locale name */ const char *directory, /* Directory for templates */ *lang; /* Language */ FILE *in; /* Input file */ @@ -100,22 +100,19 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */ * Convert the language to a locale name... */ + locale[0] = '\0'; + if ((lang = getenv("LANG")) != NULL) { - for (i = 0; lang[i] && i < 15; i ++) - if (isalnum(lang[i] & 255) || lang[i] == '_') - locale[i] = tolower(lang[i]); - else if (lang[i] == '-') - locale[i] = '_'; - else - break; + locale[0] = '/'; + strlcpy(locale + 1, lang, sizeof(locale) - 1); - locale[i] = '\0'; + if ((locptr = strchr(locale, '.')) != NULL) + *locptr = '\0'; /* Strip charset */ } - else - locale[0] = '\0'; - fprintf(stderr, "DEBUG2: locale=\"%s\"...\n", locale); + fprintf(stderr, "DEBUG: lang=\"%s\", locale=\"%s\"...\n", + lang ? lang : "(null)", locale); /* * See if we have a template file for this language... @@ -123,14 +120,17 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */ directory = cgiGetTemplateDir(); - snprintf(filename, sizeof(filename), "%s/%s/%s", directory, locale, tmpl); - if (access(filename, 0)) + snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl); + if ((in = fopen(filename, "r")) == NULL) { - locale[2] = '\0'; + locale[3] = '\0'; - snprintf(filename, sizeof(filename), "%s/%s/%s", directory, locale, tmpl); - if (access(filename, 0)) + snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl); + if ((in = fopen(filename, "r")) == NULL) + { snprintf(filename, sizeof(filename), "%s/%s", directory, tmpl); + in = fopen(filename, "r"); + } } fprintf(stderr, "DEBUG2: Template file is \"%s\"...\n", filename); @@ -139,7 +139,7 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */ * Open the template file... */ - if ((in = fopen(filename, "r")) == NULL) + if (!in) { fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n", filename, strerror(errno)); @@ -663,5 +663,5 @@ cgi_puturi(const char *s, /* I - String to output */ /* - * End of "$Id: template.c 6717 2007-07-24 23:47:12Z mike $". + * End of "$Id: template.c 6799 2007-08-15 19:33:36Z mike $". */ |