}
#endif
+
+#define IS_SJIS1(c) ((((c)>=0x81 && (c)<=0x9f) || ((c)>=0xe0 && (c)<=0xf5)) ? 1 : 0)
+#define IS_SJIS2(c) ((((c)>=0x40 && (c)<=0x7e) || ((c)>=0x80 && (c)<=0xfc)) ? 1 : 0)
+
+char *mbstr_strrchr(const char *s, char c){
+ unsigned char *p = (unsigned char *)s, *last = NULL;
+ while(*p++) {
+ if (*p == c) {
+ last = p;
+ }
+ if (*p == '\0'){
+ break;
+ }
+ if (MBSTRG(current_language) == mbfl_no_language_japanese
+ && IS_SJIS1(*p) && IS_SJIS2(*(p+1))) {
+ p++;
+ }
+ }
+ return last;
+}
+
/* http input processing */
void mbstr_treat_data(int arg, char *str, zval* destArray TSRMLS_DC)
{
int php_mbregex_name2mbctype(const char *pname);
#endif
+char *mbstr_strrchr(const char *s, char c);
+
ZEND_BEGIN_MODULE_GLOBALS(mbstring)
int language;
int current_language;
#include "php_variables.h"
#include "rfc1867.h"
+#if HAVE_MBSTRING
+#include "ext/mbstring/mbstring.h"
+#endif
#undef DEBUG_FILE_UPLOAD
sprintf(lbuf, "%s_name", param);
}
+#if HAVE_MBSTRING
+ s = mbstr_strrchr(filename, '\\');
+#else
s = strrchr(filename, '\\');
+#endif
if (s && s > filename) {
safe_php_register_variable(lbuf, s+1, NULL, 0 TSRMLS_CC);
} else {