summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2008-06-02 22:16:27 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2008-06-02 22:16:27 +0000
commit48490b14da295726a8e87ea105051c28d232df2e (patch)
tree28d21eee966374c58dc6361d775ba7457ce021fc
parent8731755ab4dc79f95f0a5ed8dfc8ae3bb9536256 (diff)
Allow comments at EOL; count blank lines properly.
-rw-r--r--cfg.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/cfg.c b/cfg.c
index ecc8b741..283b4789 100644
--- a/cfg.c
+++ b/cfg.c
@@ -1,4 +1,4 @@
-/* $Id: cfg.c,v 1.5 2008-06-02 21:36:51 nicm Exp $ */
+/* $Id: cfg.c,v 1.6 2008-06-02 22:16:27 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -76,12 +76,6 @@ load_cfg(const char *path, char **causep)
line = 0;
while ((ch = getc(f)) != EOF) {
switch (ch) {
- case '#':
- /* Comment: discard until EOL. */
- while ((ch = getc(f)) != '\n' && ch != EOF)
- ;
- line++;
- break;
case '\'':
if ((s = cfg_string(f, '\'', 0)) == NULL)
goto error;
@@ -94,6 +88,11 @@ load_cfg(const char *path, char **causep)
argv = xrealloc(argv, argc + 1, sizeof (char *));
argv[argc++] = s;
break;
+ case '#':
+ /* Comment: discard until EOL. */
+ while ((ch = getc(f)) != '\n' && ch != EOF)
+ ;
+ /* FALLTHROUGH */
case '\n':
case EOF:
case ' ':
@@ -109,9 +108,11 @@ load_cfg(const char *path, char **causep)
len = 0;
}
- if ((ch != '\n' && ch != EOF) || argc == 0)
+ if (ch != '\n' && ch != EOF)
break;
line++;
+ if (argc == 0)
+ break;
if ((cmd = cmd_parse(argc, argv, &cause)) == NULL)
goto error;