return last;
}
+int mbstr_is_mb_leadbyte(const char *s TSRMLS_DC){
+ unsigned char *p = (unsigned char *)s;
+ if (MBSTRG(current_language) == mbfl_no_language_japanese
+ && IS_SJIS1(*p) && IS_SJIS2(*(p+1))){
+ return 1;
+ }
+ return 0;
+}
+
/* http input processing */
void mbstr_treat_data(int arg, char *str, zval* destArray TSRMLS_DC)
{
}
-static char *substring_conf(char *start, int len, char quote)
+static char *substring_conf(char *start, int len, char quote TSRMLS_DC)
{
char *result = emalloc(len + 2);
char *resp = result;
*resp++ = start[++i];
} else {
*resp++ = start[i];
+#if HAVE_MBSTRING
+ if (mbstr_is_mb_leadbyte(start+i) TSRMLS_CC){
+ *resp++ = start[++i];
+ }
+#endif
}
}
}
-static char *php_ap_getword_conf(char **line)
+static char *php_ap_getword_conf(char **line TSRMLS_DC)
{
char *str = *line, *strend, *res, quote;
++strend;
}
}
- res = substring_conf(str + 1, strend - str - 1, quote);
+ res = substring_conf(str + 1, strend - str - 1, quote TSRMLS_CC);
if (*strend == quote) {
++strend;
while (*strend && !isspace(*strend)) {
++strend;
}
- res = substring_conf(str, strend - str, 0);
+ res = substring_conf(str, strend - str, 0 TSRMLS_CC);
}
while (*strend && isspace(*strend)) {
if (param) {
efree(param);
}
- param = php_ap_getword_conf(&pair);
+ param = php_ap_getword_conf(&pair TSRMLS_CC);
} else if (!strcmp(key, "filename")) {
if (filename) {
efree(filename);
}
- filename = php_ap_getword_conf(&pair);
+ filename = php_ap_getword_conf(&pair TSRMLS_CC);
}
}
if (key) {