summaryrefslogtreecommitdiff
path: root/cgi-bin/template.c
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2007-09-14 02:27:22 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2007-09-14 02:27:22 +0000
commitdb1f069b7f02a8e17a9e4abf8f182530b882c6c9 (patch)
tree9d1371a56b0ef8f51d62db6ebfe74e5a8534ffe5 /cgi-bin/template.c
parent76cd9e37aaf496aab887d499f4917b60e91d6d25 (diff)
downloadcups-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.c42
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 $".
*/