summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sapi/cgi/cgi_main.c7
-rw-r--r--sapi/cli/php_cli.c7
2 files changed, 14 insertions, 0 deletions
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c
index 299ff33696..161835cd2f 100644
--- a/sapi/cgi/cgi_main.c
+++ b/sapi/cgi/cgi_main.c
@@ -1413,6 +1413,13 @@ consult the installation file that came with this distribution, or visit \n\
while (c != 10 && c != 13) {
c = fgetc(file_handle.handle.fp); /* skip to end of line */
}
+ /* handle situations where line is terminated by \r\n */
+ if (c == 13) {
+ if (fgetc(file_handle.handle.fp) != 10) {
+ long pos = ftell(file_handle.handle.fp);
+ fseek(file_handle.handle.fp, pos - 1, SEEK_SET);
+ }
+ }
CG(start_lineno) = 2;
} else {
rewind(file_handle.handle.fp);
diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c
index a98865f531..412180b577 100644
--- a/sapi/cli/php_cli.c
+++ b/sapi/cli/php_cli.c
@@ -695,6 +695,13 @@ int main(int argc, char *argv[])
while (c != 10 && c != 13) {
c = fgetc(file_handle.handle.fp); /* skip to end of line */
}
+ /* handle situations where line is terminated by \r\n */
+ if (c == 13) {
+ if (fgetc(file_handle.handle.fp) != 10) {
+ long pos = ftell(file_handle.handle.fp);
+ fseek(file_handle.handle.fp, pos - 1, SEEK_SET);
+ }
+ }
CG(start_lineno) = 2;
} else {
rewind(file_handle.handle.fp);