|
ikent |
0e30ea |
diff --git a/CHANGELOG b/CHANGELOG
|
|
ikent |
0e30ea |
index b379431..2fc3c9e 100644
|
|
ikent |
0e30ea |
--- a/CHANGELOG
|
|
ikent |
0e30ea |
+++ b/CHANGELOG
|
|
ikent |
0e30ea |
@@ -4,6 +4,7 @@
|
|
ikent |
0e30ea |
- give up trying to update exports list while host is mounted.
|
|
ikent |
0e30ea |
- fix to "@network" matching.
|
|
ikent |
0e30ea |
- check for fstab update and retry if not updated.
|
|
ikent |
0e30ea |
+- change file map lexer to allow white-space only blank lines.
|
|
ikent |
0e30ea |
|
|
ikent |
0e30ea |
20/2/2007 autofs-5.0.1
|
|
ikent |
0e30ea |
----------------------
|
|
ikent |
0e30ea |
diff --git a/modules/lookup_file.c b/modules/lookup_file.c
|
|
ikent |
0e30ea |
index 0f4d8f1..4a5674e 100644
|
|
ikent |
0e30ea |
--- a/modules/lookup_file.c
|
|
ikent |
0e30ea |
+++ b/modules/lookup_file.c
|
|
ikent |
0e30ea |
@@ -236,11 +236,21 @@ static int read_one(FILE *f, char *key, unsigned int *k_len, char *mapent, unsig
|
|
ikent |
0e30ea |
|
|
ikent |
0e30ea |
case st_badent:
|
|
ikent |
0e30ea |
if (ch == '\n') {
|
|
ikent |
0e30ea |
+ nch = getc(f);
|
|
ikent |
0e30ea |
+ if (nch != EOF && isblank(nch)) {
|
|
ikent |
0e30ea |
+ ungetc(nch, f);
|
|
ikent |
0e30ea |
+ break;
|
|
ikent |
0e30ea |
+ }
|
|
ikent |
0e30ea |
+ ungetc(nch, f);
|
|
ikent |
0e30ea |
state = st_begin;
|
|
ikent |
0e30ea |
if (gotten == got_real || gotten == getting)
|
|
ikent |
0e30ea |
goto got_it;
|
|
ikent |
0e30ea |
+ warn(LOGOPT_ANY, MODPREFIX
|
|
ikent |
0e30ea |
+ "bad map entry \"%s...\" for key "
|
|
ikent |
0e30ea |
+ "\"%s\"", mapent, key);
|
|
ikent |
0e30ea |
goto next;
|
|
ikent |
0e30ea |
- }
|
|
ikent |
0e30ea |
+ } else if (!isblank(ch))
|
|
ikent |
0e30ea |
+ gotten = got_nothing;
|
|
ikent |
0e30ea |
break;
|
|
ikent |
0e30ea |
|
|
ikent |
0e30ea |
case st_entspc:
|
|
ikent |
0e30ea |
@@ -274,24 +284,21 @@ static int read_one(FILE *f, char *key, unsigned int *k_len, char *mapent, unsig
|
|
ikent |
0e30ea |
|
|
ikent |
0e30ea |
case st_getent:
|
|
ikent |
0e30ea |
if (ch == '\n') {
|
|
ikent |
0e30ea |
+ if (escape == esc_all) {
|
|
ikent |
0e30ea |
+ state = st_begin;
|
|
ikent |
0e30ea |
+ warn(LOGOPT_ANY, MODPREFIX
|
|
ikent |
0e30ea |
+ "unmatched \" in %s for key %s",
|
|
ikent |
0e30ea |
+ mapent, key);
|
|
ikent |
0e30ea |
+ goto next;
|
|
ikent |
0e30ea |
+ }
|
|
ikent |
0e30ea |
nch = getc(f);
|
|
ikent |
0e30ea |
if (nch != EOF && isblank(nch)) {
|
|
ikent |
0e30ea |
ungetc(nch, f);
|
|
ikent |
0e30ea |
state = st_badent;
|
|
ikent |
0e30ea |
- gotten = got_nothing;
|
|
ikent |
0e30ea |
- warn(LOGOPT_ANY, MODPREFIX
|
|
ikent |
0e30ea |
- "bad map entry \"%s...\" for key "
|
|
ikent |
0e30ea |
- "\"%s\"", mapent, key);
|
|
ikent |
0e30ea |
break;
|
|
ikent |
0e30ea |
}
|
|
ikent |
0e30ea |
ungetc(nch, f);
|
|
ikent |
0e30ea |
state = st_begin;
|
|
ikent |
0e30ea |
- if (escape == esc_all) {
|
|
ikent |
0e30ea |
- warn(LOGOPT_ANY, MODPREFIX
|
|
ikent |
0e30ea |
- "unmatched \" in %s for key %s",
|
|
ikent |
0e30ea |
- mapent, key);
|
|
ikent |
0e30ea |
- goto next;
|
|
ikent |
0e30ea |
- }
|
|
ikent |
0e30ea |
if (gotten == got_real || gotten == getting)
|
|
ikent |
0e30ea |
goto got_it;
|
|
ikent |
0e30ea |
} else if (mapent_len < MAPENT_MAX_LEN) {
|