]> git.sur5r.net Git - i3/i3/commitdiff
Fix config validation fail when no new line from end of file 2054/head
authorhwangcc23 <hwangcc@csie.nctu.edu.tw>
Mon, 2 Nov 2015 14:12:44 +0000 (22:12 +0800)
committerhwangcc23 <hwangcc@csie.nctu.edu.tw>
Mon, 2 Nov 2015 14:12:44 +0000 (22:12 +0800)
1. i3 config validation failed when the new line is missing from the end of file.
   The error was: "ERROR: Your line continuation is too long, it exceeds 4096 bytes".
   It is wrong to assume that there is always a '\n' at the end of each line in the config file.
   (Not for the last line.)
   Fix it via adding a end-of-file check.

2. See the issue #2051. (https://github.com/i3/i3/issues/2051)

src/config_parser.c

index 0f3d33ec0600ca23b56e2e25a1d7e1dd34a6d804..27cdeb93fe571cd5d2869ad4855f9e4e415d8236 100644 (file)
@@ -843,7 +843,7 @@ bool parse_file(const char *f, bool use_nagbar) {
                 break;
             die("Could not read configuration file\n");
         }
-        if (buffer[strlen(buffer) - 1] != '\n') {
+        if (buffer[strlen(buffer) - 1] != '\n' && !feof(fstr)) {
             ELOG("Your line continuation is too long, it exceeds %zd bytes\n", sizeof(buffer));
         }
         continuation = strstr(buffer, "\\\n");