66 lines
2.2 KiB
Diff
66 lines
2.2 KiB
Diff
From a140d7ce3f37f30b4fed27c5a70ebcc4ed13c612 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
|
Date: Tue, 24 Feb 2015 12:57:24 +0100
|
|
Subject: [PATCH] config: Support multiple 'Files' sections
|
|
|
|
---
|
|
hw/xfree86/parser/Files.c | 8 ++++++--
|
|
hw/xfree86/parser/configProcs.h | 2 +-
|
|
hw/xfree86/parser/read.c | 2 +-
|
|
3 files changed, 8 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/hw/xfree86/parser/Files.c b/hw/xfree86/parser/Files.c
|
|
index 849bf92..5cc3ec7 100644
|
|
--- a/hw/xfree86/parser/Files.c
|
|
+++ b/hw/xfree86/parser/Files.c
|
|
@@ -76,14 +76,18 @@ static xf86ConfigSymTabRec FilesTab[] = {
|
|
#define CLEANUP xf86freeFiles
|
|
|
|
XF86ConfFilesPtr
|
|
-xf86parseFilesSection(void)
|
|
+xf86parseFilesSection(XF86ConfFilesPtr ptr)
|
|
{
|
|
int i, j;
|
|
int k, l;
|
|
char *str;
|
|
int token;
|
|
|
|
- parsePrologue(XF86ConfFilesPtr, XF86ConfFilesRec)
|
|
+ if (!ptr) {
|
|
+ if( (ptr=calloc(1,sizeof(XF86ConfFilesRec))) == NULL ) {
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
|
|
while ((token = xf86getToken(FilesTab)) != ENDSECTION) {
|
|
switch (token) {
|
|
diff --git a/hw/xfree86/parser/configProcs.h b/hw/xfree86/parser/configProcs.h
|
|
index 774e2a2..b9fdebb 100644
|
|
--- a/hw/xfree86/parser/configProcs.h
|
|
+++ b/hw/xfree86/parser/configProcs.h
|
|
@@ -37,7 +37,7 @@ void xf86freeDeviceList(XF86ConfDevicePtr ptr);
|
|
int xf86validateDevice(XF86ConfigPtr p);
|
|
|
|
/* Files.c */
|
|
-XF86ConfFilesPtr xf86parseFilesSection(void);
|
|
+XF86ConfFilesPtr xf86parseFilesSection(XF86ConfFilesPtr ptr);
|
|
void xf86printFileSection(FILE * cf, XF86ConfFilesPtr ptr);
|
|
void xf86freeFiles(XF86ConfFilesPtr p);
|
|
|
|
diff --git a/hw/xfree86/parser/read.c b/hw/xfree86/parser/read.c
|
|
index 327c02a..e0d6139 100644
|
|
--- a/hw/xfree86/parser/read.c
|
|
+++ b/hw/xfree86/parser/read.c
|
|
@@ -110,7 +110,7 @@ xf86readConfigFile(void)
|
|
if (xf86nameCompare(xf86_lex_val.str, "files") == 0) {
|
|
free(xf86_lex_val.str);
|
|
xf86_lex_val.str = NULL;
|
|
- HANDLE_RETURN(conf_files, xf86parseFilesSection());
|
|
+ HANDLE_RETURN(conf_files, xf86parseFilesSection(ptr->conf_files));
|
|
}
|
|
else if (xf86nameCompare(xf86_lex_val.str, "serverflags") == 0) {
|
|
free(xf86_lex_val.str);
|
|
--
|
|
2.3.0
|
|
|