diff options
Diffstat (limited to 'namazu/patches/NAMAZU_LANG_TRANS.patch')
-rw-r--r-- | namazu/patches/NAMAZU_LANG_TRANS.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/namazu/patches/NAMAZU_LANG_TRANS.patch b/namazu/patches/NAMAZU_LANG_TRANS.patch new file mode 100644 index 0000000..411de6c --- /dev/null +++ b/namazu/patches/NAMAZU_LANG_TRANS.patch @@ -0,0 +1,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); + } + |