aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/parser/scan.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-02-14 13:47:55 +0000
committermarha <marha@users.sourceforge.net>2010-02-14 13:47:55 +0000
commit8d38172d866775594af3185ae3fbd8d750677650 (patch)
tree2514d176474cc8adf7911a57724cc681c1359b47 /xorg-server/hw/xfree86/parser/scan.c
parent26f62ef5ccd04fa3a55632d808ca6e1061cfb983 (diff)
downloadvcxsrv-8d38172d866775594af3185ae3fbd8d750677650.tar.gz
vcxsrv-8d38172d866775594af3185ae3fbd8d750677650.tar.bz2
vcxsrv-8d38172d866775594af3185ae3fbd8d750677650.zip
Updated to xorg-server-1.7.99.901
Diffstat (limited to 'xorg-server/hw/xfree86/parser/scan.c')
-rw-r--r--xorg-server/hw/xfree86/parser/scan.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/xorg-server/hw/xfree86/parser/scan.c b/xorg-server/hw/xfree86/parser/scan.c
index b80fbfb8f..03cbc8a44 100644
--- a/xorg-server/hw/xfree86/parser/scan.c
+++ b/xorg-server/hw/xfree86/parser/scan.c
@@ -227,13 +227,15 @@ xf86getNextLine(void)
configFiles[curFileIndex].file);
if (!ret) {
- /* stop if there are no more files */
- if (++curFileIndex >= numFiles) {
- curFileIndex = 0;
+ /*
+ * if the file doesn't end in a newline, add one
+ * and trigger another read
+ */
+ if (pos != 0) {
+ strcpy(&configBuf[pos], "\n");
+ ret = configBuf;
+ } else
break;
- }
- configLineNo = 0;
- continue;
}
/* search for EOL in the new block of chars */
@@ -338,7 +340,17 @@ again:
}
if (ret == NULL)
{
- return (pushToken = EOF_TOKEN);
+ /*
+ * if necessary, move to the next file and
+ * read the first line
+ */
+ if (curFileIndex + 1 < numFiles) {
+ curFileIndex++;
+ configLineNo = 0;
+ goto again;
+ }
+ else
+ return (pushToken = EOF_TOKEN);
}
configLineNo++;
configPos = 0;