moriyoshi Wed Feb 4 02:24:09 2004 EDT Modified files: /php-src/ext/mbstring/libmbfl AUTHORS Makefile.am Makefile.bcc32 README config.h.in configure.in mbfl.rc /php-src/ext/mbstring/libmbfl/filters Makefile.am html_entities.c html_entities.h mbfilter_htmlent.c /php-src/ext/mbstring/libmbfl/mbfl Makefile.am mbfilter.c mbfilter.h mbfilter_8bit.h mbfilter_pass.h mbfilter_wchar.h mbfl_convert.c mbfl_convert.h mbfl_ident.c mbfl_ident.h /php-src/ext/mbstring/libmbfl/nls Makefile.am Log: - Update libmbfl to the latest. This fixes several serious issues in the html entity encoder and the encoding detection facility. There should be no problem with mailparse() as API change was made so carefully that it would be as small as possible.
http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/AUTHORS?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/AUTHORS diff -u php-src/ext/mbstring/libmbfl/AUTHORS:1.1 php-src/ext/mbstring/libmbfl/AUTHORS:1.2 --- php-src/ext/mbstring/libmbfl/AUTHORS:1.1 Sat Aug 23 02:18:35 2003 +++ php-src/ext/mbstring/libmbfl/AUTHORS Wed Feb 4 02:24:05 2004 @@ -1,8 +1,10 @@ +Den V. Tsopa <[EMAIL PROTECTED]> Hironori Sato <[EMAIL PROTECTED]> +Marcus Boerger <[EMAIL PROTECTED]> +Moriyoshi Koizumi <[EMAIL PROTECTED]> +Rui Hirokawa <[EMAIL PROTECTED]> Shigeru Kanemoto <[EMAIL PROTECTED]> Tsukada Takuya <[EMAIL PROTECTED]> -U. Kenkichi <[EMAIL PROTECTED]> Tateyama <[EMAIL PROTECTED]> -Moriyoshi Koizumi <[EMAIL PROTECTED]> -Rui Hirokawa <[EMAIL PROTECTED]> -Other gracious contributors +U. Kenkichi <[EMAIL PROTECTED]> +Wez Furlong <[EMAIL PROTECTED]> http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/Makefile.am?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/Makefile.am diff -u php-src/ext/mbstring/libmbfl/Makefile.am:1.1 php-src/ext/mbstring/libmbfl/Makefile.am:1.2 --- php-src/ext/mbstring/libmbfl/Makefile.am:1.1 Sat Aug 23 02:18:35 2003 +++ php-src/ext/mbstring/libmbfl/Makefile.am Wed Feb 4 02:24:05 2004 @@ -1,2 +1,5 @@ -EXTRA_DIST=AUTHORS DISCLAIMER +EXTRA_DIST=AUTHORS DISCLAIMER LICENSE Makefile.bcc32 \ + config.h.bcc32 config.h.vc6 \ + libmbfl.dsp libmbfl.dsw libmbfl.sln libmbfl.vcproj mbfl.rc \ + mksbcc32.bat rules.mak.bcc32 SUBDIRS = nls filters mbfl http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/Makefile.bcc32?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/Makefile.bcc32 diff -u php-src/ext/mbstring/libmbfl/Makefile.bcc32:1.1 php-src/ext/mbstring/libmbfl/Makefile.bcc32:1.2 --- php-src/ext/mbstring/libmbfl/Makefile.bcc32:1.1 Sun Aug 24 16:07:07 2003 +++ php-src/ext/mbstring/libmbfl/Makefile.bcc32 Wed Feb 4 02:24:05 2004 @@ -5,12 +5,12 @@ all: mbfl.dll mbfl.lib mbfl.lib: mbfl.dll - implib mbfl.lib mbfl.dll + implib -a mbfl.lib mbfl.dll -mbfl.dll: compile mbfl.def mbfl.res +mbfl.dll: compile mbfl.res @if exist linker.rsp del linker.rsp @for %i in ($(SUBDIRS)) do @for %j in (%i\*.obj) do @echo %j+ >> linker.rsp - ilink32 $(LDFLAGS) @linker.rsp,mbfl.dll,,$(LIBS),mbfl.def,mbfl.res + ilink32 $(LDFLAGS) @linker.rsp,mbfl.dll,,$(LIBS),,mbfl.res del linker.rsp mbfl.res: mbfl.rc @@ -22,6 +22,8 @@ clean: @for %i in ($(SUBDIRS)) do $(COMSPEC) /C mksbcc32.bat $(MAKE) %i clean + @if exist linker.rsp del linker.rsp + @if exist mbfl.RES del mbfl.RES @if exist mbfl.dll del mbfl.dll @if exist mbfl.lib del mbfl.lib @if exist config.h del config.h http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/README?r1=1.2&r2=1.3&ty=u Index: php-src/ext/mbstring/libmbfl/README diff -u php-src/ext/mbstring/libmbfl/README:1.2 php-src/ext/mbstring/libmbfl/README:1.3 --- php-src/ext/mbstring/libmbfl/README:1.2 Sun Aug 24 16:07:07 2003 +++ php-src/ext/mbstring/libmbfl/README Wed Feb 4 02:24:05 2004 @@ -5,4 +5,4 @@ See the file INSTALL for building and installation instructions. -# $Id: README,v 1.1.2.2 2003/08/24 18:18:51 moriyoshi Exp +# $Id: README,v 1.3 2004/02/04 07:24:05 moriyoshi Exp $ http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/config.h.in?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/config.h.in diff -u php-src/ext/mbstring/libmbfl/config.h.in:1.1 php-src/ext/mbstring/libmbfl/config.h.in:1.2 --- php-src/ext/mbstring/libmbfl/config.h.in:1.1 Sat Aug 23 02:18:35 2003 +++ php-src/ext/mbstring/libmbfl/config.h.in Wed Feb 4 02:24:05 2004 @@ -3,6 +3,9 @@ /* Define to 1 if you have the <assert.h> header file. */ #undef HAVE_ASSERT_H +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H @@ -47,6 +50,9 @@ /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H +/* Name of package */ +#undef PACKAGE + /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT @@ -65,6 +71,9 @@ /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS +/* Version number of package */ +#undef VERSION + /* Define to empty if `const' does not conform to ANSI C. */ #undef const http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/configure.in?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/configure.in diff -u php-src/ext/mbstring/libmbfl/configure.in:1.1 php-src/ext/mbstring/libmbfl/configure.in:1.2 --- php-src/ext/mbstring/libmbfl/configure.in:1.1 Sat Aug 23 02:18:35 2003 +++ php-src/ext/mbstring/libmbfl/configure.in Wed Feb 4 02:24:05 2004 @@ -1,8 +1,11 @@ # Process this file with autoconf to produce a configure script. -AC_INIT([libmbfl],[1.0.0]) -AM_INIT_AUTOMAKE -AC_CONFIG_SRCDIR([mbfl/mbfilter.c]) -AC_CONFIG_HEADER([config.h]) +AC_INIT(mbfl/mbfilter.c) +AM_INIT_AUTOMAKE(libmbfl, 1.0.0) +AC_CONFIG_SRCDIR(mbfl/mbfilter.c) +AM_CONFIG_HEADER(config.h) + +SHLIB_VERSION="1:0:0" +AC_SUBST(SHLIB_VERSION) # Checks for programs. AC_PROG_CC http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl.rc?r1=1.3&r2=1.4&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl.rc diff -u php-src/ext/mbstring/libmbfl/mbfl.rc:1.3 php-src/ext/mbstring/libmbfl/mbfl.rc:1.4 --- php-src/ext/mbstring/libmbfl/mbfl.rc:1.3 Sun Aug 24 21:44:14 2003 +++ php-src/ext/mbstring/libmbfl/mbfl.rc Wed Feb 4 02:24:05 2004 @@ -1,4 +1,4 @@ -/* $Id: mbfl.rc,v 1.3 2003/08/25 01:44:14 moriyoshi Exp $ */ +/* $Id: mbfl.rc,v 1.4 2004/02/04 07:24:05 moriyoshi Exp $ */ 1 VERSIONINFO FILEVERSION 1,1,0,0 PRODUCTVERSION 1,1,0,0 http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/filters/Makefile.am?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/filters/Makefile.am diff -u php-src/ext/mbstring/libmbfl/filters/Makefile.am:1.1 php-src/ext/mbstring/libmbfl/filters/Makefile.am:1.2 --- php-src/ext/mbstring/libmbfl/filters/Makefile.am:1.1 Sat Aug 23 02:18:36 2003 +++ php-src/ext/mbstring/libmbfl/filters/Makefile.am Wed Feb 4 02:24:06 2004 @@ -1,3 +1,5 @@ +EXTRA_DIST=Makefile.bcc32 noinst_LTLIBRARIES=libmbfl_filters.la INCLUDES=-I../mbfl -libmbfl_filters_la_SOURCES=mbfilter_cp936.c mbfilter_hz.c mbfilter_euc_tw.c mbfilter_big5.c mbfilter_euc_jp.c mbfilter_jis.c mbfilter_iso8859_1.c mbfilter_iso8859_2.c mbfilter_cp1252.c mbfilter_cp1251.c mbfilter_ascii.c mbfilter_iso8859_3.c mbfilter_iso8859_4.c mbfilter_iso8859_5.c mbfilter_iso8859_6.c mbfilter_iso8859_7.c mbfilter_iso8859_8.c mbfilter_iso8859_9.c mbfilter_iso8859_10.c mbfilter_iso8859_13.c mbfilter_iso8859_14.c mbfilter_iso8859_15.c mbfilter_htmlent.c mbfilter_byte2.c mbfilter_byte4.c mbfilter_uuencode.c mbfilter_base64.c mbfilter_sjis.c mbfilter_7bit.c mbfilter_qprint.c mbfilter_ucs4.c mbfilter_ucs2.c mbfilter_utf32.c mbfilter_utf16.c mbfilter_utf8.c mbfilter_utf7.c mbfilter_utf7imap.c mbfilter_euc_jp_win.c mbfilter_cp932.c mbfilter_euc_cn.c mbfilter_euc_kr.c mbfilter_uhc.c mbfilter_iso2022_kr.c mbfilter_cp866.c mbfilter_koi8r.c html_entities.c +libmbfl_filters_la_LDFLAGS=-version-info $(SHLIB_VERSION) +libmbfl_filters_la_SOURCES=mbfilter_cp936.c mbfilter_hz.c mbfilter_euc_tw.c mbfilter_big5.c mbfilter_euc_jp.c mbfilter_jis.c mbfilter_iso8859_1.c mbfilter_iso8859_2.c mbfilter_cp1252.c mbfilter_cp1251.c mbfilter_ascii.c mbfilter_iso8859_3.c mbfilter_iso8859_4.c mbfilter_iso8859_5.c mbfilter_iso8859_6.c mbfilter_iso8859_7.c mbfilter_iso8859_8.c mbfilter_iso8859_9.c mbfilter_iso8859_10.c mbfilter_iso8859_13.c mbfilter_iso8859_14.c mbfilter_iso8859_15.c mbfilter_htmlent.c mbfilter_byte2.c mbfilter_byte4.c mbfilter_uuencode.c mbfilter_base64.c mbfilter_sjis.c mbfilter_7bit.c mbfilter_qprint.c mbfilter_ucs4.c mbfilter_ucs2.c mbfilter_utf32.c mbfilter_utf16.c mbfilter_utf8.c mbfilter_utf7.c mbfilter_utf7imap.c mbfilter_euc_jp_win.c mbfilter_cp932.c mbfilter_euc_cn.c mbfilter_euc_kr.c mbfilter_uhc.c mbfilter_iso2022_kr.c mbfilter_cp866.c mbfilter_koi8r.c html_entities.c cp932_table.h html_entities.h mbfilter_7bit.h mbfilter_ascii.h mbfilter_base64.h mbfilter_big5.h mbfilter_byte2.h mbfilter_byte4.h mbfilter_cp1251.h mbfilter_cp1252.h mbfilter_cp866.h mbfilter_cp932.h mbfilter_cp936.h mbfilter_euc_cn.h mbfilter_euc_jp.h mbfilter_euc_jp_win.h mbfilter_euc_kr.h mbfilter_euc_tw.h mbfilter_htmlent.h mbfilter_hz.h mbfilter_iso2022_kr.h mbfilter_iso8859_1.h mbfilter_iso8859_10.h mbfilter_iso8859_13.h mbfilter_iso8859_14.h mbfilter_iso8859_15.h mbfilter_iso8859_2.h mbfilter_iso8859_3.h mbfilter_iso8859_4.h mbfilter_iso8859_5.h mbfilter_iso8859_6.h mbfilter_iso8859_7.h mbfilter_iso8859_8.h mbfilter_iso8859_9.h mbfilter_jis.h mbfilter_koi8r.h mbfilter_qprint.h mbfilter_sjis.h mbfilter_ucs2.h mbfilter_ucs4.h mbfilter_uhc.h mbfilter_utf16.h mbfilter_utf32.h mbfilter_utf7.h mbfilter_utf7imap.h mbfilter_utf8.h mbfilter_uuencode.h unicode_prop.h unicode_table_big5.h unicode_table_cns11643.h unicode_table_cp1251.h unicode_table_cp1252.h unicode_table_cp866.h unicode_table_cp932_ext.h unicode_table_cp936.h unicode_table_iso8859_10.h unicode_table_iso8859_13.h unicode_table_iso8859_14.h unicode_table_iso8859_15.h unicode_table_iso8859_2.h unicode_table_iso8859_3.h unicode_table_iso8859_4.h unicode_table_iso8859_5.h unicode_table_iso8859_6.h unicode_table_iso8859_7.h unicode_table_iso8859_8.h unicode_table_iso8859_9.h unicode_table_jis.h unicode_table_koi8r.h unicode_table_uhc.h http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/filters/html_entities.c?r1=1.2&r2=1.3&ty=u Index: php-src/ext/mbstring/libmbfl/filters/html_entities.c diff -u php-src/ext/mbstring/libmbfl/filters/html_entities.c:1.2 php-src/ext/mbstring/libmbfl/filters/html_entities.c:1.3 --- php-src/ext/mbstring/libmbfl/filters/html_entities.c:1.2 Fri Sep 12 09:31:23 2003 +++ php-src/ext/mbstring/libmbfl/filters/html_entities.c Wed Feb 4 02:24:06 2004 @@ -32,13 +32,13 @@ #endif #include "mbfilter.h" -#include <string.h> +#include "html_entities.h" -const mbfl_html_entity mbfl_html_entity_list[] = { /* - {"quot", 34}, DO NOT CONVERT THESE AUTOMATICALLY +const mbfl_html_entity_entry mbfl_html_entity_list[] = { + {"quot", 34}, {"amp", 38}, {"lt", 60}, - {"gt", 62}, */ + {"gt", 62}, {"nbsp", 160}, {"iexcl", 161}, {"cent", 162}, http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/filters/html_entities.h?r1=1.2&r2=1.3&ty=u Index: php-src/ext/mbstring/libmbfl/filters/html_entities.h diff -u php-src/ext/mbstring/libmbfl/filters/html_entities.h:1.2 php-src/ext/mbstring/libmbfl/filters/html_entities.h:1.3 --- php-src/ext/mbstring/libmbfl/filters/html_entities.h:1.2 Mon Sep 22 22:42:46 2003 +++ php-src/ext/mbstring/libmbfl/filters/html_entities.h Wed Feb 4 02:24:06 2004 @@ -30,9 +30,12 @@ #ifndef MBFL_HTML_ENTITIES_H #define MBFL_HTML_ENTITIES_H -#include "mbfilter.h" +typedef struct _mbfl_html_entity_entry { + char * name; + int code; +} mbfl_html_entity_entry; -extern mbfl_html_entity mbfl_html_entity_list[]; +extern const mbfl_html_entity_entry mbfl_html_entity_list[]; #endif /* MBFL_HTML_ENTITIES_H */ http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c?r1=1.4&r2=1.5&ty=u Index: php-src/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c diff -u php-src/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c:1.4 php-src/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c:1.5 --- php-src/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c:1.4 Wed Dec 10 12:09:14 2003 +++ php-src/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c Wed Feb 4 02:24:06 2004 @@ -43,7 +43,15 @@ #include "mbfilter_htmlent.h" #include "html_entities.h" -static const unsigned char mblen_table_html[] = { /* 0x00, 0x80 - 0xFF, only valid for numeric entities */ +static const int htmlentitifieds[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -51,15 +59,7 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static const char *mbfl_encoding_html_ent_aliases[] = {"HTML", "html", NULL}; @@ -67,9 +67,9 @@ const mbfl_encoding mbfl_encoding_html_ent = { mbfl_no_encoding_html_ent, "HTML-ENTITIES", - "US-ASCII", + "HTML-ENTITIES", (const char *(*)[])&mbfl_encoding_html_ent_aliases, - NULL, /* mblen_table_html, Do not use table instead calulate length based on entities actually used */ + NULL, MBFL_ENCTYPE_HTML_ENT }; @@ -98,40 +98,45 @@ */ int mbfl_filt_conv_html_enc(int c, mbfl_convert_filter *filter) { - int tmp[10]; - int i = 0, p = 0, e; + int tmp[64]; + int i; unsigned int uc; + const mbfl_html_entity_entry *e; - if (c<256 && mblen_table_html[c]==1) { + if (c < sizeof(htmlentitifieds) / sizeof(htmlentitifieds[0]) && + htmlentitifieds[c] != 1) { CK((*filter->output_function)(c, filter->data)); } else { - /*php_error_docref("ref.mbstring" TSRMLS_CC, E_NOTICE, "mbfl_filt_conv_html_enc(0x%08X = %d)", c, c);*/ CK((*filter->output_function)('&', filter->data)); - while (1) { - e = mbfl_html_entity_list[i].code; - if (c < e || e == -1) { - break; - } - if (c == e) { - while(mbfl_html_entity_list[i].name[p]) { - CK((*filter->output_function)((int)mbfl_html_entity_list[i].name[p++], filter->data)); + for (i = 0; (e = &mbfl_html_entity_list[i])->name != NULL; i++) { + if (c == e->code) { + char *p; + + for (p = e->name; *p != '\0'; p++) { + CK((*filter->output_function)((int)*p, filter->data)); } - break; + goto last; } - i++; } - i=0; - if (!p) { + + { + int *p = tmp + sizeof(tmp); + CK((*filter->output_function)('#', filter->data)); + uc = (unsigned int)c; + + *(--p) = '\0'; do { - tmp[i++] = '0'+uc%10; + *(--p) = "0123456789"[uc % 10]; uc /= 10; } while (uc); - do { - CK((*filter->output_function)(tmp[--i], filter->data)); - } while (i); + + for (; *p != '\0'; p++) { + CK((*filter->output_function)(*p, filter->data)); + } } + last: CK((*filter->output_function)(';', filter->data)); } return c; @@ -169,7 +174,7 @@ int mbfl_filt_conv_html_dec(int c, mbfl_convert_filter *filter) { int pos, ent = 0; - mbfl_html_entity *entity; + mbfl_html_entity_entry *entity; char *buffer = (char*)filter->cache; if (!filter->status) { @@ -192,7 +197,7 @@ /*php_error_docref("ref.mbstring" TSRMLS_CC, E_NOTICE, "mbstring decoded '%s'=%d", buffer, ent);*/ } else { /* named entity */ - entity = (mbfl_html_entity *)mbfl_html_entity_list; + entity = (mbfl_html_entity_entry *)mbfl_html_entity_list; while (entity->name) { if (!strcmp(buffer+1, entity->name)) { ent = entity->code; http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/Makefile.am?r1=1.2&r2=1.3&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/Makefile.am diff -u php-src/ext/mbstring/libmbfl/mbfl/Makefile.am:1.2 php-src/ext/mbstring/libmbfl/mbfl/Makefile.am:1.3 --- php-src/ext/mbstring/libmbfl/mbfl/Makefile.am:1.2 Sun Aug 24 21:44:16 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/Makefile.am Wed Feb 4 02:24:07 2004 @@ -1,10 +1,12 @@ +EXTRA_DIST=Makefile.bcc32 lib_LTLIBRARIES=libmbfl.la libmbfl_la_SOURCES=mbfilter.c mbfl_string.c mbfl_language.c mbfl_encoding.c mbfl_convert.c mbfl_ident.c mbfl_memory_device.c mbfl_allocators.c mbfl_filter_output.c mbfilter_pass.c mbfilter_wchar.c mbfilter_8bit.c libmbfl_filters_la=../filters/libmbfl_filters.la libmbfl_nls_la=../nls/libmbfl_nls.la libmbfl_la_LIBADD=$(libmbfl_filters_la) $(libmbfl_nls_la) +libmbfl_la_LDFLAGS=-version-info $(SHLIB_VERSION) libmbfl_includedir=$(includedir)/mbfl -libmbfl_include_HEADERS=mbfilter.h mbfl_consts.h mbfl_encoding.h mbfl_language.h mbfl_string.h mbfl_convert.h mbfl_ident.h mbfl_memory_device.h mbfl_allocators.h mbfl_defs.h +libmbfl_include_HEADERS=mbfilter.h mbfl_consts.h mbfl_encoding.h mbfl_language.h mbfl_string.h mbfl_convert.h mbfl_ident.h mbfl_memory_device.h mbfl_allocators.h mbfl_defs.h mbfl_filter_output.h mbfilter_pass.h mbfilter_wchar.h mbfilter_8bit.h $(libmbfl_filters_la): $(MAKE) -C `dirname $(libmbfl_filters_la)` http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.1 php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.2 --- php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.1 Sat Aug 23 02:18:38 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c Wed Feb 4 02:24:07 2004 @@ -334,14 +334,14 @@ * encoding detector */ mbfl_encoding_detector * -mbfl_encoding_detector_new(enum mbfl_no_encoding *elist, int eliztsz) +mbfl_encoding_detector_new(enum mbfl_no_encoding *elist, int elistsz) { mbfl_encoding_detector *identd; int i, num; mbfl_identify_filter *filter; - if (elist == NULL || eliztsz <= 0) { + if (elist == NULL || elistsz <= 0) { return NULL; } @@ -350,7 +350,7 @@ if (identd == NULL) { return NULL; } - identd->filter_list = (mbfl_identify_filter **)mbfl_calloc(eliztsz, sizeof(mbfl_identify_filter *)); + identd->filter_list = (mbfl_identify_filter **)mbfl_calloc(elistsz, sizeof(mbfl_identify_filter *)); if (identd->filter_list == NULL) { mbfl_free(identd); return NULL; @@ -359,7 +359,7 @@ /* create filters */ i = 0; num = 0; - while (i < eliztsz) { + while (i < elistsz) { filter = mbfl_identify_filter_new(elist[i]); if (filter != NULL) { identd->filter_list[num] = filter; @@ -522,49 +522,41 @@ * identify encoding */ const mbfl_encoding * -mbfl_identify_encoding(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz, int strict) +mbfl_identify_encoding(mbfl_string *string, enum mbfl_no_encoding *elist, int elistsz, int strict) { int i, n, num, bad; unsigned char *p; - const struct mbfl_identify_vtbl *vtbl; mbfl_identify_filter *flist, *filter; const mbfl_encoding *encoding; - /* initialize */ - flist = (mbfl_identify_filter *)mbfl_calloc(eliztsz, sizeof(mbfl_identify_filter)); + /* flist is an array of mbfl_identify_filter instances */ + flist = (mbfl_identify_filter *)mbfl_calloc(elistsz, sizeof(mbfl_identify_filter)); if (flist == NULL) { return NULL; } - i = 0; + num = 0; if (elist != NULL) { - while (i < eliztsz) { - vtbl = mbfl_identify_filter_get_vtbl(elist[i]); - if (vtbl != NULL) { - filter = &flist[num]; - mbfl_identify_filter_set_vtbl(filter, vtbl); - filter->encoding = mbfl_no2encoding(vtbl->encoding); - (*filter->filter_ctor)(filter); + for (i = 0; i < elistsz; i++) { + if (!mbfl_identify_filter_init(&flist[num], elist[i])) { num++; } - i++; } } /* feed data */ n = string->len; p = string->val; + if (p != NULL) { + bad = 0; while (n > 0) { - i = 0; - bad = 0; - while (i < num) { + for (i = 0; i < num; i++) { filter = &flist[i]; (*filter->filter_function)(*p, filter); if (filter->flag) { bad++; } - i++; } if ((num - 1) <= bad && !strict) { break; @@ -575,41 +567,33 @@ } /* judge */ - i = num - 1; - bad = 1; encoding = NULL; - while (i >= 0) { + + for (i = 0; i < num; i++) { filter = &flist[i]; - if (filter->flag) { - bad++; - } else { + if (!filter->flag) { encoding = filter->encoding; + break; } - i--; - } -#if 0 - if (bad < num) { - encoding = NULL; } -#endif - i = 0; - while (i < num) { - filter = &flist[i]; - (*filter->filter_dtor)(filter); - i++; + /* cleanup */ + /* dtors should be called in reverse order */ + i = num; while (--i >= 0) { + mbfl_identify_filter_cleanup(&flist[i]); } + mbfl_free((void *)flist); return encoding; } const char* -mbfl_identify_encoding_name(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz, int strict) +mbfl_identify_encoding_name(mbfl_string *string, enum mbfl_no_encoding *elist, int elistsz, int strict) { const mbfl_encoding *encoding; - encoding = mbfl_identify_encoding(string, elist, eliztsz, strict); + encoding = mbfl_identify_encoding(string, elist, elistsz, strict); if (encoding != NULL && encoding->no_encoding > mbfl_no_encoding_charset_min && encoding->no_encoding < mbfl_no_encoding_charset_max) { @@ -620,11 +604,11 @@ } const enum mbfl_no_encoding -mbfl_identify_encoding_no(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz) +mbfl_identify_encoding_no(mbfl_string *string, enum mbfl_no_encoding *elist, int elistsz) { const mbfl_encoding *encoding; - encoding = mbfl_identify_encoding(string, elist, eliztsz, 0); + encoding = mbfl_identify_encoding(string, elist, elistsz, 0); if (encoding != NULL && encoding->no_encoding > mbfl_no_encoding_charset_min && encoding->no_encoding < mbfl_no_encoding_charset_max) { http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.h?r1=1.2&r2=1.3&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter.h diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter.h:1.2 php-src/ext/mbstring/libmbfl/mbfl/mbfilter.h:1.3 --- php-src/ext/mbstring/libmbfl/mbfl/mbfilter.h:1.2 Sun Aug 24 21:44:16 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfilter.h Wed Feb 4 02:24:07 2004 @@ -140,7 +140,7 @@ int filter_list_size; }; -MBFLAPI extern mbfl_encoding_detector * mbfl_encoding_detector_new(enum mbfl_no_encoding *elist, int eliztsz); +MBFLAPI extern mbfl_encoding_detector * mbfl_encoding_detector_new(enum mbfl_no_encoding *elist, int elistsz); MBFLAPI extern void mbfl_encoding_detector_delete(mbfl_encoding_detector *identd); MBFLAPI extern int mbfl_encoding_detector_feed(mbfl_encoding_detector *identd, mbfl_string *string); MBFLAPI extern enum mbfl_no_encoding mbfl_encoding_detector_judge(mbfl_encoding_detector *identd); @@ -157,13 +157,13 @@ * identify encoding */ MBFLAPI extern const mbfl_encoding * -mbfl_identify_encoding(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz, int strict); +mbfl_identify_encoding(mbfl_string *string, enum mbfl_no_encoding *elist, int elistsz, int strict); MBFLAPI extern const char * -mbfl_identify_encoding_name(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz, int strict); +mbfl_identify_encoding_name(mbfl_string *string, enum mbfl_no_encoding *elist, int elistsz, int strict); MBFLAPI extern const enum mbfl_no_encoding -mbfl_identify_encoding_no(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz); +mbfl_identify_encoding_no(mbfl_string *string, enum mbfl_no_encoding *elist, int elistsz); /* * strlen @@ -265,26 +265,16 @@ mbfl_string *result, enum mbfl_no_encoding outcode); - /* * convert HTML numeric entity */ MBFLAPI extern mbfl_string * mbfl_html_numeric_entity(mbfl_string *string, mbfl_string *result, int *convmap, int mapsize, int type); - /* * convert of harfwidth and fullwidth for japanese */ MBFLAPI extern mbfl_string * mbfl_ja_jp_hantozen(mbfl_string *string, mbfl_string *result, int mode); -/* - * HTML Entity table - */ -typedef struct _mbfl_html_entity { - char * name; - int code; -} mbfl_html_entity; - #endif /* MBFL_MBFILTER_H */ http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h?r1=1.3&r2=1.4&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h:1.3 php-src/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h:1.4 --- php-src/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h:1.3 Mon Sep 22 22:42:47 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h Wed Feb 4 02:24:07 2004 @@ -34,6 +34,6 @@ #include "mbfl_defs.h" #include "mbfilter.h" -extern const mbfl_encoding mbfl_encoding_8bit; +MBFLAPI extern const mbfl_encoding mbfl_encoding_8bit; #endif /* MBFL_MBFILTER_8BIT_H */ http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h?r1=1.3&r2=1.4&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h:1.3 php-src/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h:1.4 --- php-src/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h:1.3 Mon Sep 22 22:42:47 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h Wed Feb 4 02:24:07 2004 @@ -33,8 +33,8 @@ #include "mbfl_defs.h" #include "mbfilter.h" -extern const mbfl_encoding mbfl_encoding_pass; -extern const struct mbfl_convert_vtbl vtbl_pass; +MBFLAPI extern const mbfl_encoding mbfl_encoding_pass; +MBFLAPI extern const struct mbfl_convert_vtbl vtbl_pass; MBFLAPI extern int mbfl_filt_conv_pass(int c, mbfl_convert_filter *filter); http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h?r1=1.3&r2=1.4&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h:1.3 php-src/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h:1.4 --- php-src/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h:1.3 Mon Sep 22 22:42:47 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h Wed Feb 4 02:24:07 2004 @@ -34,6 +34,6 @@ #include "mbfl_defs.h" #include "mbfilter.h" -extern const mbfl_encoding mbfl_encoding_wchar; +MBFLAPI extern const mbfl_encoding mbfl_encoding_wchar; #endif /* MBFL_MBFILTER_WCHAR_H */ http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.c?r1=1.3&r2=1.4&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.c diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.c:1.3 php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.c:1.4 --- php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.c:1.3 Sat Aug 23 04:27:46 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.c Wed Feb 4 02:24:07 2004 @@ -89,6 +89,8 @@ #include "filters/mbfilter_ucs2.h" #include "filters/mbfilter_htmlent.h" +static void mbfl_convert_filter_reset_vtbl(mbfl_convert_filter *filter); + /* hex character table "0123456789ABCDEF" */ static char mbfl_hexchar_table[] = { 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46 @@ -247,7 +249,7 @@ filter->illegal_substchar = 0x3f; /* '?' */ /* setup the function table */ - mbfl_convert_filter_select_vtbl(filter); + mbfl_convert_filter_reset_vtbl(filter); /* constructor */ (*filter->filter_ctor)(filter); @@ -277,11 +279,8 @@ return (filter->flush_function ? (*filter->flush_function)(filter->data) : 0); } -void -mbfl_convert_filter_reset( - mbfl_convert_filter *filter, - enum mbfl_no_encoding from, - enum mbfl_no_encoding to) +void mbfl_convert_filter_reset(mbfl_convert_filter *filter, + enum mbfl_no_encoding from, enum mbfl_no_encoding to) { /* destruct old filter */ (*filter->filter_dtor)(filter); @@ -291,7 +290,7 @@ filter->to = mbfl_no2encoding(to); /* set the vtbl */ - mbfl_convert_filter_select_vtbl(filter); + mbfl_convert_filter_reset_vtbl(filter); /* construct new filter */ (*filter->filter_ctor)(filter); @@ -434,17 +433,6 @@ return ret; } -void mbfl_convert_filter_set_vtbl(mbfl_convert_filter *filter, const struct mbfl_convert_vtbl *vtbl) -{ - if (filter && vtbl) { - filter->filter_ctor = vtbl->filter_ctor; - filter->filter_dtor = vtbl->filter_dtor; - filter->filter_function = vtbl->filter_function; - filter->filter_flush = vtbl->filter_flush; - } -} - - const struct mbfl_convert_vtbl * mbfl_convert_filter_get_vtbl(enum mbfl_no_encoding from, enum mbfl_no_encoding to) { const struct mbfl_convert_vtbl *vtbl; @@ -471,7 +459,7 @@ } -void mbfl_convert_filter_select_vtbl(mbfl_convert_filter *filter) +static void mbfl_convert_filter_reset_vtbl(mbfl_convert_filter *filter) { const struct mbfl_convert_vtbl *vtbl; @@ -479,7 +467,11 @@ if (vtbl == NULL) { vtbl = &vtbl_pass; } - mbfl_convert_filter_set_vtbl(filter, vtbl); + + filter->filter_ctor = vtbl->filter_ctor; + filter->filter_dtor = vtbl->filter_dtor; + filter->filter_function = vtbl->filter_function; + filter->filter_flush = vtbl->filter_flush; } /* http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.h?r1=1.2&r2=1.3&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.h diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.h:1.2 php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.h:1.3 --- php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.h:1.2 Sun Aug 24 21:44:16 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfl_convert.h Wed Feb 4 02:24:07 2004 @@ -76,7 +76,6 @@ MBFLAPI extern void mbfl_convert_filter_reset(mbfl_convert_filter *filter, enum mbfl_no_encoding from, enum mbfl_no_encoding to); MBFLAPI extern void mbfl_convert_filter_copy(mbfl_convert_filter *src, mbfl_convert_filter *dist); MBFLAPI extern int mbfl_filt_conv_illegal_output(int c, mbfl_convert_filter *filter); -MBFLAPI extern void mbfl_convert_filter_select_vtbl(mbfl_convert_filter *filter); MBFLAPI extern const struct mbfl_convert_vtbl * mbfl_convert_filter_get_vtbl(enum mbfl_no_encoding from, enum mbfl_no_encoding to); MBFLAPI extern void mbfl_filt_conv_common_ctor(mbfl_convert_filter *filter); http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.c?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.c diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.c:1.1 php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.c:1.2 --- php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.c:1.1 Sat Aug 23 02:18:38 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.c Wed Feb 4 02:24:07 2004 @@ -139,16 +139,6 @@ /* * identify filter */ - -void mbfl_identify_filter_set_vtbl(mbfl_identify_filter *filter, const struct mbfl_identify_vtbl *vtbl) -{ - if (filter && vtbl) { - filter->filter_ctor = vtbl->filter_ctor; - filter->filter_dtor = vtbl->filter_dtor; - filter->filter_function = vtbl->filter_function; - } -} - const struct mbfl_identify_vtbl * mbfl_identify_filter_get_vtbl(enum mbfl_no_encoding encoding) { const struct mbfl_identify_vtbl * vtbl; @@ -164,20 +154,9 @@ return vtbl; } -void mbfl_identify_filter_select_vtbl(mbfl_identify_filter *filter) -{ - const struct mbfl_identify_vtbl *vtbl; - - vtbl = mbfl_identify_filter_get_vtbl(filter->encoding->no_encoding); - if (vtbl == NULL) { - vtbl = &vtbl_identify_false; - } - mbfl_identify_filter_set_vtbl(filter, vtbl); -} - mbfl_identify_filter *mbfl_identify_filter_new(enum mbfl_no_encoding encoding) { - mbfl_identify_filter * filter; + mbfl_identify_filter *filter; /* allocate */ filter = (mbfl_identify_filter *)mbfl_malloc(sizeof(mbfl_identify_filter)); @@ -185,6 +164,18 @@ return NULL; } + if (mbfl_identify_filter_init(filter, encoding)) { + mbfl_free(filter); + return NULL; + } + + return filter; +} + +int mbfl_identify_filter_init(mbfl_identify_filter *filter, enum mbfl_no_encoding encoding) +{ + const struct mbfl_identify_vtbl *vtbl; + /* encoding structure */ filter->encoding = mbfl_no2encoding(encoding); if (filter->encoding == NULL) { @@ -196,20 +187,33 @@ filter->score = 0; /* setup the function table */ - mbfl_identify_filter_select_vtbl(filter); + vtbl = mbfl_identify_filter_get_vtbl(filter->encoding->no_encoding); + if (vtbl == NULL) { + vtbl = &vtbl_identify_false; + } + filter->filter_ctor = vtbl->filter_ctor; + filter->filter_dtor = vtbl->filter_dtor; + filter->filter_function = vtbl->filter_function; /* constructor */ (*filter->filter_ctor)(filter); - return filter; + return 0; } void mbfl_identify_filter_delete(mbfl_identify_filter *filter) { - if (filter) { - (*filter->filter_dtor)(filter); - mbfl_free((void*)filter); + if (filter == NULL) { + return; } + + mbfl_identify_filter_cleanup(filter); + mbfl_free((void*)filter); +} + +void mbfl_identify_filter_cleanup(mbfl_identify_filter *filter) +{ + (*filter->filter_dtor)(filter); } void mbfl_filt_ident_common_ctor(mbfl_identify_filter *filter) http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.h?r1=1.2&r2=1.3&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.h diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.h:1.2 php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.h:1.3 --- php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.h:1.2 Sun Aug 24 21:44:16 2003 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfl_ident.h Wed Feb 4 02:24:07 2004 @@ -56,11 +56,11 @@ int (*filter_function)(int c, mbfl_identify_filter *filter); }; -MBFLAPI extern void mbfl_identify_filter_set_vtbl(mbfl_identify_filter *filter, const struct mbfl_identify_vtbl *vtbl); MBFLAPI extern const struct mbfl_identify_vtbl * mbfl_identify_filter_get_vtbl(enum mbfl_no_encoding encoding); -MBFLAPI extern void mbfl_identify_filter_select_vtbl(mbfl_identify_filter *filter); MBFLAPI extern mbfl_identify_filter * mbfl_identify_filter_new(enum mbfl_no_encoding encoding); MBFLAPI extern void mbfl_identify_filter_delete(mbfl_identify_filter *filter); +MBFLAPI extern mbfl_identify_filter_init(mbfl_identify_filter *filter, enum mbfl_no_encoding encoding); +MBFLAPI void mbfl_identify_filter_cleanup(mbfl_identify_filter *filter); MBFLAPI extern void mbfl_filt_ident_common_ctor(mbfl_identify_filter *filter); MBFLAPI extern void mbfl_filt_ident_common_dtor(mbfl_identify_filter *filter); http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/nls/Makefile.am?r1=1.1&r2=1.2&ty=u Index: php-src/ext/mbstring/libmbfl/nls/Makefile.am diff -u php-src/ext/mbstring/libmbfl/nls/Makefile.am:1.1 php-src/ext/mbstring/libmbfl/nls/Makefile.am:1.2 --- php-src/ext/mbstring/libmbfl/nls/Makefile.am:1.1 Sat Aug 23 02:18:39 2003 +++ php-src/ext/mbstring/libmbfl/nls/Makefile.am Wed Feb 4 02:24:08 2004 @@ -1,3 +1,5 @@ +EXTRA_DIST=Makefile.bcc32 noinst_LTLIBRARIES=libmbfl_nls.la INCLUDES=-I../mbfl -libmbfl_nls_la_SOURCES=nls_ja.c nls_de.c nls_en.c nls_kr.c nls_ru.c nls_zh.c nls_uni.c nls_neutral.c +libmbfl_nls_la_LDFLAGS=-version-info $(SHLIB_VERSION) +libmbfl_nls_la_SOURCES=nls_ja.c nls_de.c nls_en.c nls_kr.c nls_ru.c nls_zh.c nls_uni.c nls_neutral.c nls_ja.h nls_de.h nls_en.h nls_kr.h nls_ru.h nls_zh.h nls_uni.h nls_neutral.h
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php