changeset 186:9637bf434f8e

Don't report unclosed comments as "no newline at end of file". If we get EOF in the "middle" of a line but there's a newline at the end of the buffer we've got, it's because we're in the middle of a comment. So, say so.
author David A. Holland
date Fri, 12 Jun 2015 04:13:41 -0400
parents 16b4451e34b8
children 8c7e508da6cc
files CHANGES files.c
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES	Fri Jun 12 03:59:36 2015 -0400
+++ b/CHANGES	Fri Jun 12 04:13:41 2015 -0400
@@ -1,4 +1,5 @@
 pending
+   - Don't report unclosed comments as "No newline at end of file".
    - Don't rely on <stdbool.h> existing, as (predictably) it doesn't
      work on Solaris.
    - Similarly, don't rely on C11 anonymous unions as the Solaris
--- a/files.c	Fri Jun 12 03:59:36 2015 -0400
+++ b/files.c	Fri Jun 12 04:13:41 2015 -0400
@@ -226,7 +226,12 @@
 				ateof = true;
 				ptmp = places.current;
 				ptmp.column += bufend - linestart;
-				complain(&ptmp, "No newline at end of file");
+				if (buf[bufend - 1] == '\n') {
+					complain(&ptmp, "Unclosed comment");
+				} else {
+					complain(&ptmp,
+						 "No newline at end of file");
+				}
 				if (mode.werror) {
 					complain_fail();
 				}