diff options
author | Greg Beaver <cellog@php.net> | 2008-01-09 00:58:37 +0000 |
---|---|---|
committer | Greg Beaver <cellog@php.net> | 2008-01-09 00:58:37 +0000 |
commit | 9f5b3a229f34cf4d52565b5b977b9249b306782d (patch) | |
tree | 728d726b6bb4557527c0e730dae8cc6e1a55c7af /ext/phar/phar_path_check.c | |
parent | 1a3624494e04c8b9092b6f8f440824acaadee1b9 (diff) | |
download | php-git-9f5b3a229f34cf4d52565b5b977b9249b306782d.tar.gz |
fix empty directories in phar, add test
Diffstat (limited to 'ext/phar/phar_path_check.c')
-rwxr-xr-x | ext/phar/phar_path_check.c | 81 |
1 files changed, 36 insertions, 45 deletions
diff --git a/ext/phar/phar_path_check.c b/ext/phar/phar_path_check.c index 2d436a5702..03a85b6783 100755 --- a/ext/phar/phar_path_check.c +++ b/ext/phar/phar_path_check.c @@ -1,5 +1,5 @@ -/* Generated by re2c 0.10.5 on Thu Feb 8 23:49:41 2007 */ -#line 1 "ext/phar/phar_path_check.re" +/* Generated by re2c 0.12.3 on Tue Jan 8 18:41:21 2008 */ +#line 1 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" /* +----------------------------------------------------------------------+ | phar php single-file executable PHP extension | @@ -44,7 +44,7 @@ phar_path_check_result phar_path_check(char **s, int *len, const char **error) loop: { -#line 48 "ext/phar/phar_path_check.c" +#line 48 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" { YYCTYPE yych; @@ -73,35 +73,34 @@ loop: } yy2: yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 0x00) goto yy16; if(yych <= '-') goto yy3; - if(yych <= '.') goto yy18; - if(yych <= '/') goto yy20; + if(yych <= '.') goto yy16; + if(yych <= '/') goto yy18; yy3: -#line 97 "ext/phar/phar_path_check.re" +#line 93 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { goto loop; } -#line 86 "ext/phar/phar_path_check.c" +#line 85 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" yy4: ++YYCURSOR; -#line 60 "ext/phar/phar_path_check.re" +#line 60 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { *error = "back-slash"; return pcr_err_back_slash; } -#line 94 "ext/phar/phar_path_check.c" +#line 93 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" yy6: ++YYCURSOR; -#line 68 "ext/phar/phar_path_check.re" +#line 64 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { *error = "star"; return pcr_err_star; } -#line 102 "ext/phar/phar_path_check.c" +#line 101 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" yy8: ++YYCURSOR; -#line 72 "ext/phar/phar_path_check.re" +#line 68 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { if (**s == '/') { (*s)++; @@ -110,22 +109,22 @@ yy8: *error = NULL; return pcr_use_query; } -#line 114 "ext/phar/phar_path_check.c" +#line 113 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" yy10: ++YYCURSOR; yy11: -#line 80 "ext/phar/phar_path_check.re" +#line 76 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { *error ="illegal character"; return pcr_err_illegal_char; } -#line 123 "ext/phar/phar_path_check.c" +#line 122 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" yy12: yych = *++YYCURSOR; goto yy11; yy13: ++YYCURSOR; -#line 84 "ext/phar/phar_path_check.re" +#line 80 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { if (**s == '/') { (*s)++; @@ -139,58 +138,50 @@ yy13: *error = NULL; return pcr_is_ok; } -#line 143 "ext/phar/phar_path_check.c" +#line 142 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" yy15: yych = *++YYCURSOR; goto yy3; yy16: - ++YYCURSOR; -#line 64 "ext/phar/phar_path_check.re" - { - *error = "empty directory"; - return pcr_err_empty_entry; - } -#line 154 "ext/phar/phar_path_check.c" -yy18: yych = *++YYCURSOR; - if(yych <= 0x00) goto yy23; - if(yych <= '-') goto yy19; - if(yych <= '.') goto yy22; - if(yych <= '/') goto yy23; -yy19: + if(yych <= 0x00) goto yy21; + if(yych <= '-') goto yy17; + if(yych <= '.') goto yy20; + if(yych <= '/') goto yy21; +yy17: YYCURSOR = YYMARKER; goto yy3; -yy20: +yy18: ++YYCURSOR; -#line 48 "ext/phar/phar_path_check.re" +#line 48 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { *error = "double slash"; return pcr_err_double_slash; } -#line 171 "ext/phar/phar_path_check.c" -yy22: +#line 162 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" +yy20: yych = *++YYCURSOR; - if(yych <= 0x00) goto yy25; - if(yych == '/') goto yy25; - goto yy19; -yy23: + if(yych <= 0x00) goto yy23; + if(yych == '/') goto yy23; + goto yy17; +yy21: ++YYCURSOR; -#line 56 "ext/phar/phar_path_check.re" +#line 56 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { *error = "current directory reference"; return pcr_err_curr_dir; } -#line 184 "ext/phar/phar_path_check.c" -yy25: +#line 175 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" +yy23: ++YYCURSOR; -#line 52 "ext/phar/phar_path_check.re" +#line 52 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" { *error = "upper directory reference"; return pcr_err_up_dir; } -#line 192 "ext/phar/phar_path_check.c" +#line 183 "/home/cellog/workspace/php5/ext/phar/phar_path_check.c" } } -#line 100 "ext/phar/phar_path_check.re" +#line 96 "/home/cellog/workspace/php5/ext/phar/phar_path_check.re" } |