aboutsummaryrefslogtreecommitdiff
path: root/namazu/patches/NAMAZU_LANG_TRANS.patch
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);
 }
 

Return to:

Send suggestions and report system problems to the System administrator.