cvs: php4 /ext/mbstring mbstring.c mbstring.h /main rfc1867.c

From: Date: Fri, 05 Jul 2002 15:06:40 +0000
Subject: cvs: php4 /ext/mbstring mbstring.c mbstring.h /main rfc1867.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-12721@lists.php.net to get a copy of this message
hirokawa Fri Jul 5 11:06:40 2002 EDT Modified files: /php4/main rfc1867.c /php4/ext/mbstring mbstring.c mbstring.h Log: fixed shift_jis character corruption including 0x5c as second byte following a slash on uploaded filename. Index: php4/main/rfc1867.c diff -u php4/main/rfc1867.c:1.105 php4/main/rfc1867.c:1.106 --- php4/main/rfc1867.c:1.105 Wed Jul 3 17:07:24 2002 +++ php4/main/rfc1867.c Fri Jul 5 11:06:39 2002 @@ -16,7 +16,7 @@ | Jani Taskinen <sniper@php.net> | +----------------------------------------------------------------------+ */ -/* $Id: rfc1867.c,v 1.105 2002/07/03 21:07:24 sebastian Exp $ */ +/* $Id: rfc1867.c,v 1.106 2002/07/05 15:06:39 hirokawa Exp $ */ /* * This product includes software developed by the Apache Group @@ -439,7 +439,7 @@ } -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; @@ -450,6 +450,11 @@ *resp++ = start[++i]; } else { *resp++ = start[i]; +#if HAVE_MBSTRING + if (mbstr_is_mb_leadbyte(start+i) TSRMLS_CC){ + *resp++ = start[++i]; + } +#endif } } @@ -458,7 +463,7 @@ } -static char *php_ap_getword_conf(char **line) +static char *php_ap_getword_conf(char **line TSRMLS_DC) { char *str = *line, *strend, *res, quote; @@ -480,7 +485,7 @@ ++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; @@ -492,7 +497,7 @@ 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)) { @@ -689,12 +694,12 @@ 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) { Index: php4/ext/mbstring/mbstring.c diff -u php4/ext/mbstring/mbstring.c:1.77 php4/ext/mbstring/mbstring.c:1.78 --- php4/ext/mbstring/mbstring.c:1.77 Wed Jul 3 14:45:34 2002 +++ php4/ext/mbstring/mbstring.c Fri Jul 5 11:06:39 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.c,v 1.77 2002/07/03 18:45:34 fmk Exp $ */ +/* $Id: mbstring.c,v 1.78 2002/07/05 15:06:39 hirokawa Exp $ */ /* * PHP4 Multibyte String module "mbstring" (currently only for Japanese) @@ -1340,6 +1340,15 @@ } } 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 */ Index: php4/ext/mbstring/mbstring.h diff -u php4/ext/mbstring/mbstring.h:1.23 php4/ext/mbstring/mbstring.h:1.24 --- php4/ext/mbstring/mbstring.h:1.23 Wed Jul 3 14:23:55 2002 +++ php4/ext/mbstring/mbstring.h Fri Jul 5 11:06:39 2002 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.h,v 1.23 2002/07/03 18:23:55 fmk Exp $ */ +/* $Id: mbstring.h,v 1.24 2002/07/05 15:06:39 hirokawa Exp $ */ /* * PHP4 Multibyte String module "mbstring" (currently only for Japanese) @@ -125,6 +125,7 @@ #endif char *mbstr_strrchr(const char *s, char c TSRMLS_DC); +int mbstr_is_mb_leadbyte(const char *s TSRMLS_DC); ZEND_BEGIN_MODULE_GLOBALS(mbstring) int language;

« previous php.cvs (#12721) next »