Commit: 11b4f3becd371dae9f76ec18d2197edf53130db7 Author: Felipe Pena <felipe...@gmail.com> Thu, 24 May 2012 13:42:47 -0300 Parents: f1969d4b4ce0ebd82b2582104bb99de4b5ac824e Branches: PHP-5.4 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=11b4f3becd371dae9f76ec18d2197edf53130db7 Log: - Fixed magic file regex support Changed paths: M ext/fileinfo/libmagic/softmagic.c M ext/fileinfo/tests/finfo_file_002.phpt A ext/fileinfo/tests/finfo_file_regex.phpt A ext/fileinfo/tests/resources/test.awk Diff: diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c index 648f641..f9c2836 100644 --- a/ext/fileinfo/libmagic/softmagic.c +++ b/ext/fileinfo/libmagic/softmagic.c @@ -1654,29 +1654,6 @@ convert_libmagic_pattern(zval *pattern, int options) for (i=0; i<Z_STRLEN_P(pattern); i++, j++) { switch (Z_STRVAL_P(pattern)[i]) { - case '?': - t[j] = '.'; - break; - case '*': - t[j++] = '.'; - t[j] = '*'; - break; - case '.': - t[j++] = '\\'; - t[j] = '.'; - break; - case '\\': - t[j++] = '\\'; - t[j] = '\\'; - break; - case '(': - t[j++] = '\\'; - t[j] = '('; - break; - case ')': - t[j++] = '\\'; - t[j] = ')'; - break; case '~': t[j++] = '\\'; t[j] = '~'; @@ -1873,7 +1850,7 @@ magiccheck(struct magic_set *ms, struct magic *m) convert_libmagic_pattern(pattern, options); - l = 0; + l = v = 0; #if (PHP_MAJOR_VERSION < 6) if ((pce = pcre_get_compiled_regex_cache(Z_STRVAL_P(pattern), Z_STRLEN_P(pattern) TSRMLS_CC)) == NULL) { #else diff --git a/ext/fileinfo/tests/finfo_file_002.phpt b/ext/fileinfo/tests/finfo_file_002.phpt index 9ed19a9..3593233 100644 --- a/ext/fileinfo/tests/finfo_file_002.phpt +++ b/ext/fileinfo/tests/finfo_file_002.phpt @@ -18,9 +18,11 @@ ksort($results); var_dump($results); ?> --EXPECTF-- -array(6) { +array(7) { ["%s/resources/dir.zip"]=> string(15) "application/zip" + ["%s/resources/test.awk"]=> + string(10) "text/plain" ["%s/resources/test.bmp"]=> string(14) "image/x-ms-bmp" ["%s/resources/test.gif"]=> diff --git a/ext/fileinfo/tests/finfo_file_regex.phpt b/ext/fileinfo/tests/finfo_file_regex.phpt new file mode 100644 index 0000000..c1cc36f --- /dev/null +++ b/ext/fileinfo/tests/finfo_file_regex.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test finfo_file() function : regex rules +--SKIPIF-- +<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?> +--FILE-- +<?php +/** + * Works with the unix file command: + * $ file -m magic resources/test.awk + * resources/test.awk: awk script, ASCII text + */ +$magicFile = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'magic'; +$finfo = finfo_open( FILEINFO_MIME, $magicFile ); + +echo "*** Testing finfo_file() : regex rules ***\n"; + +// Calling finfo_file() with all possible arguments +$file = __DIR__ . '/resources/test.awk'; +var_dump( finfo_file( $finfo, $file ) ); +var_dump( finfo_file( $finfo, $file, FILEINFO_CONTINUE ) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing finfo_file() : regex rules *** +string(28) "text/plain; charset=us-ascii" +string(22) "awk script, ASCII text" +===DONE=== diff --git a/ext/fileinfo/tests/resources/test.awk b/ext/fileinfo/tests/resources/test.awk new file mode 100644 index 0000000..e000d50 --- /dev/null +++ b/ext/fileinfo/tests/resources/test.awk @@ -0,0 +1 @@ +BEGIN { print "START" } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php