summaryrefslogtreecommitdiff
path: root/ext/phar/phar_path_check.c
diff options
context:
space:
mode:
authorGreg Beaver <cellog@php.net>2008-01-09 00:58:37 +0000
committerGreg Beaver <cellog@php.net>2008-01-09 00:58:37 +0000
commit9f5b3a229f34cf4d52565b5b977b9249b306782d (patch)
tree728d726b6bb4557527c0e730dae8cc6e1a55c7af /ext/phar/phar_path_check.c
parent1a3624494e04c8b9092b6f8f440824acaadee1b9 (diff)
downloadphp-git-9f5b3a229f34cf4d52565b5b977b9249b306782d.tar.gz
fix empty directories in phar, add test
Diffstat (limited to 'ext/phar/phar_path_check.c')
-rwxr-xr-xext/phar/phar_path_check.c81
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"
}