summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Weinand <bobwei9@hotmail.com>2014-06-29 12:18:39 +0200
committerBob Weinand <bobwei9@hotmail.com>2014-06-29 12:18:39 +0200
commit4fde0c258ea3c094a421563deadbaa7811c67950 (patch)
tree05eb8cd055971bf1e1a1e708a17a481e3968aedf
parentd29842532397233a0a9419962426965063ad376d (diff)
downloadphp-git-4fde0c258ea3c094a421563deadbaa7811c67950.tar.gz
Fix issue krakjoe/phpdbg#97 - list now appends a newline if there is none
The prompt should always ensure it is on a newline
-rw-r--r--phpdbg_list.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/phpdbg_list.c b/phpdbg_list.c
index 037c6c38b2..c745222224 100644
--- a/phpdbg_list.c
+++ b/phpdbg_list.c
@@ -130,7 +130,7 @@ void phpdbg_list_file(const char *filename, long count, long offset, int highlig
char *opened = NULL;
char buffer[8096] = {0,};
long line = 0;
-
+
php_stream *stream = NULL;
if (VCWD_STAT(filename, &st) == FAILURE) {
@@ -146,6 +146,8 @@ void phpdbg_list_file(const char *filename, long count, long offset, int highlig
}
while (php_stream_gets(stream, buffer, sizeof(buffer)) != NULL) {
+ long linelen = strlen(buffer);
+
++line;
if (!offset || offset <= line) {
@@ -159,9 +161,13 @@ void phpdbg_list_file(const char *filename, long count, long offset, int highlig
phpdbg_write(">%05ld: %s", line, buffer);
}
}
+
+ if (buffer[linelen - 1] != '\n') {
+ phpdbg_write("\n");
+ }
}
-
- if ((count + (offset-1)) == line)
+
+ if ((count + (offset - 1)) == line)
break;
}