From f014eb7052082f7a6760dbd2aec9204b0cb4e1dc Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Thu, 25 May 2017 08:30:49 +0100 Subject: [PATCH] Fix command parsing bug when commenting after a command When a comment was present directly on the same line after a command, we did not correctly see the command as terminated and would join continue parsing the next line. --- src/command_manager.cc | 4 ++-- test/regression/0-comment-after-command/cmd | 1 + test/regression/0-comment-after-command/in | 1 + test/regression/0-comment-after-command/out | 1 + test/regression/0-comment-after-command/rc | 5 +++++ 5 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 test/regression/0-comment-after-command/cmd create mode 100644 test/regression/0-comment-after-command/in create mode 100644 test/regression/0-comment-after-command/out create mode 100644 test/regression/0-comment-after-command/rc diff --git a/src/command_manager.cc b/src/command_manager.cc index 2af06c76..e2294b37 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -193,8 +193,8 @@ void skip_blanks_and_comments(Reader& reader) ++(++reader); else if (c == '#') { - for (bool eol = false; reader and not eol; ++reader) - eol = *reader == '\n'; + while (reader and *reader != '\n') + ++reader; } else break; diff --git a/test/regression/0-comment-after-command/cmd b/test/regression/0-comment-after-command/cmd new file mode 100644 index 00000000..ec7cb854 --- /dev/null +++ b/test/regression/0-comment-after-command/cmd @@ -0,0 +1 @@ +:my-command diff --git a/test/regression/0-comment-after-command/in b/test/regression/0-comment-after-command/in new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/test/regression/0-comment-after-command/in @@ -0,0 +1 @@ + diff --git a/test/regression/0-comment-after-command/out b/test/regression/0-comment-after-command/out new file mode 100644 index 00000000..257cc564 --- /dev/null +++ b/test/regression/0-comment-after-command/out @@ -0,0 +1 @@ +foo diff --git a/test/regression/0-comment-after-command/rc b/test/regression/0-comment-after-command/rc new file mode 100644 index 00000000..96606f44 --- /dev/null +++ b/test/regression/0-comment-after-command/rc @@ -0,0 +1,5 @@ +def my-command %{ + buffer-next # go to next + %sh{ echo buffer-previous } + exec ifoo +}