blob: 411de6c9c3ea34fc411b666b2fcb31b422eef547 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
diff -pur namazu-2.0.20/src/cgi.c /usr/local/src/namazu/namazu-2.0.20/src/cgi.c
--- namazu-2.0.20/src/cgi.c 2008-07-15 18:02:25.000000000 +0300
+++ /usr/local/src/namazu/namazu-2.0.20/src/cgi.c 2010-02-28 11:44:02.000000000 +0200
@@ -476,6 +476,33 @@ process_cgi_var_whence(char *value, stru
static void
process_cgi_var_lang(char *value, struct cgiarg *ca)
{
+ char *p = getenv("NAMAZU_LANG_TRANS");
+ if (p) {
+ size_t vlen = strlen(value);
+ while (*p) {
+ size_t plen, tlen;
+ char *trans;
+
+ plen = strcspn(p, "=");
+ trans = p + plen;
+ if (!*trans)
+ break;
+ tlen = strcspn(++trans, ":");
+ if (vlen == plen && memcmp(p, value, plen) == 0) {
+ char *nval = malloc(tlen + 1);
+ if (nval) {
+ memcpy(nval, trans, tlen);
+ nval[tlen] = 0;
+ value = nval;
+ }
+ break;
+ }
+ p = trans + tlen;
+ if (*p)
+ p++;
+ }
+ }
+
nmz_set_lang(value);
}
|