diff options
Diffstat (limited to 'xorg-server/hw/xfree86/parser/Files.c')
-rw-r--r-- | xorg-server/hw/xfree86/parser/Files.c | 299 |
1 files changed, 143 insertions, 156 deletions
diff --git a/xorg-server/hw/xfree86/parser/Files.c b/xorg-server/hw/xfree86/parser/Files.c index a95be9ee2..d8152c008 100644 --- a/xorg-server/hw/xfree86/parser/Files.c +++ b/xorg-server/hw/xfree86/parser/Files.c @@ -51,7 +51,6 @@ * authorization from the copyright holder(s) and author(s). */ - /* View/edit this file with tab stops set to 4 */ #ifdef HAVE_XORG_CONFIG_H @@ -65,181 +64,169 @@ extern LexRec val; -static xf86ConfigSymTabRec FilesTab[] = -{ - {ENDSECTION, "endsection"}, - {FONTPATH, "fontpath"}, - {MODULEPATH, "modulepath"}, - {LOGFILEPATH, "logfile"}, - {XKBDIR, "xkbdir"}, - /* Obsolete keywords that aren't used but shouldn't cause errors: */ - {OBSOLETE_TOKEN, "rgbpath"}, - {OBSOLETE_TOKEN, "inputdevices"}, - {-1, ""}, +static xf86ConfigSymTabRec FilesTab[] = { + {ENDSECTION, "endsection"}, + {FONTPATH, "fontpath"}, + {MODULEPATH, "modulepath"}, + {LOGFILEPATH, "logfile"}, + {XKBDIR, "xkbdir"}, + /* Obsolete keywords that aren't used but shouldn't cause errors: */ + {OBSOLETE_TOKEN, "rgbpath"}, + {OBSOLETE_TOKEN, "inputdevices"}, + {-1, ""}, }; #define CLEANUP xf86freeFiles XF86ConfFilesPtr -xf86parseFilesSection (void) +xf86parseFilesSection(void) { - int i, j; - int k, l; - char *str; - int token; - parsePrologue (XF86ConfFilesPtr, XF86ConfFilesRec) - - while ((token = xf86getToken (FilesTab)) != ENDSECTION) - { - switch (token) - { - case COMMENT: - ptr->file_comment = xf86addComment(ptr->file_comment, val.str); - break; - case FONTPATH: - if (xf86getSubToken (&(ptr->file_comment)) != STRING) - Error (QUOTE_MSG, "FontPath"); - j = FALSE; - str = val.str; - if (ptr->file_fontpath == NULL) - { - ptr->file_fontpath = malloc (1); - ptr->file_fontpath[0] = '\0'; - i = strlen (str) + 1; - } - else - { - i = strlen (ptr->file_fontpath) + strlen (str) + 1; - if (ptr->file_fontpath[strlen (ptr->file_fontpath) - 1] != ',') - { - i++; - j = TRUE; - } - } - ptr->file_fontpath = - realloc (ptr->file_fontpath, i); - if (j) - strcat (ptr->file_fontpath, ","); - - strcat (ptr->file_fontpath, str); - free (val.str); - break; - case MODULEPATH: - if (xf86getSubToken (&(ptr->file_comment)) != STRING) - Error (QUOTE_MSG, "ModulePath"); - l = FALSE; - str = val.str; - if (ptr->file_modulepath == NULL) - { - ptr->file_modulepath = malloc (1); - ptr->file_modulepath[0] = '\0'; - k = strlen (str) + 1; - } - else - { - k = strlen (ptr->file_modulepath) + strlen (str) + 1; - if (ptr->file_modulepath[strlen (ptr->file_modulepath) - 1] != ',') - { - k++; - l = TRUE; - } - } - ptr->file_modulepath = realloc (ptr->file_modulepath, k); - if (l) - strcat (ptr->file_modulepath, ","); - - strcat (ptr->file_modulepath, str); - free (val.str); - break; - case LOGFILEPATH: - if (xf86getSubToken (&(ptr->file_comment)) != STRING) - Error (QUOTE_MSG, "LogFile"); - ptr->file_logfile = val.str; - break; - case XKBDIR: - if (xf86getSubToken (&(ptr->file_xkbdir)) != STRING) - Error (QUOTE_MSG, "XkbDir"); - ptr->file_xkbdir = val.str; - break; - case EOF_TOKEN: - Error (UNEXPECTED_EOF_MSG); - break; - case OBSOLETE_TOKEN: - xf86parseError (OBSOLETE_MSG, xf86tokenString ()); - xf86getSubToken (&(ptr->file_comment)); - break; - default: - Error (INVALID_KEYWORD_MSG, xf86tokenString ()); - break; - } - } + int i, j; + int k, l; + char *str; + int token; + + parsePrologue(XF86ConfFilesPtr, XF86ConfFilesRec) + + while ((token = xf86getToken(FilesTab)) != ENDSECTION) { + switch (token) { + case COMMENT: + ptr->file_comment = xf86addComment(ptr->file_comment, val.str); + break; + case FONTPATH: + if (xf86getSubToken(&(ptr->file_comment)) != STRING) + Error(QUOTE_MSG, "FontPath"); + j = FALSE; + str = val.str; + if (ptr->file_fontpath == NULL) { + ptr->file_fontpath = malloc(1); + ptr->file_fontpath[0] = '\0'; + i = strlen(str) + 1; + } + else { + i = strlen(ptr->file_fontpath) + strlen(str) + 1; + if (ptr->file_fontpath[strlen(ptr->file_fontpath) - 1] != ',') { + i++; + j = TRUE; + } + } + ptr->file_fontpath = realloc(ptr->file_fontpath, i); + if (j) + strcat(ptr->file_fontpath, ","); + + strcat(ptr->file_fontpath, str); + free(val.str); + break; + case MODULEPATH: + if (xf86getSubToken(&(ptr->file_comment)) != STRING) + Error(QUOTE_MSG, "ModulePath"); + l = FALSE; + str = val.str; + if (ptr->file_modulepath == NULL) { + ptr->file_modulepath = malloc(1); + ptr->file_modulepath[0] = '\0'; + k = strlen(str) + 1; + } + else { + k = strlen(ptr->file_modulepath) + strlen(str) + 1; + if (ptr->file_modulepath[strlen(ptr->file_modulepath) - 1] != + ',') { + k++; + l = TRUE; + } + } + ptr->file_modulepath = realloc(ptr->file_modulepath, k); + if (l) + strcat(ptr->file_modulepath, ","); + + strcat(ptr->file_modulepath, str); + free(val.str); + break; + case LOGFILEPATH: + if (xf86getSubToken(&(ptr->file_comment)) != STRING) + Error(QUOTE_MSG, "LogFile"); + ptr->file_logfile = val.str; + break; + case XKBDIR: + if (xf86getSubToken(&(ptr->file_xkbdir)) != STRING) + Error(QUOTE_MSG, "XkbDir"); + ptr->file_xkbdir = val.str; + break; + case EOF_TOKEN: + Error(UNEXPECTED_EOF_MSG); + break; + case OBSOLETE_TOKEN: + xf86parseError(OBSOLETE_MSG, xf86tokenString()); + xf86getSubToken(&(ptr->file_comment)); + break; + default: + Error(INVALID_KEYWORD_MSG, xf86tokenString()); + break; + } + } #ifdef DEBUG - printf ("File section parsed\n"); + printf("File section parsed\n"); #endif - return ptr; + return ptr; } #undef CLEANUP void -xf86printFileSection (FILE * cf, XF86ConfFilesPtr ptr) +xf86printFileSection(FILE * cf, XF86ConfFilesPtr ptr) { - char *p, *s; - - if (ptr == NULL) - return; - - if (ptr->file_comment) - fprintf (cf, "%s", ptr->file_comment); - if (ptr->file_logfile) - fprintf (cf, "\tLogFile \"%s\"\n", ptr->file_logfile); - if (ptr->file_modulepath) - { - s = ptr->file_modulepath; - p = index (s, ','); - while (p) - { - *p = '\000'; - fprintf (cf, "\tModulePath \"%s\"\n", s); - *p = ','; - s = p; - s++; - p = index (s, ','); - } - fprintf (cf, "\tModulePath \"%s\"\n", s); - } - if (ptr->file_fontpath) - { - s = ptr->file_fontpath; - p = index (s, ','); - while (p) - { - *p = '\000'; - fprintf (cf, "\tFontPath \"%s\"\n", s); - *p = ','; - s = p; - s++; - p = index (s, ','); - } - fprintf (cf, "\tFontPath \"%s\"\n", s); - } - if (ptr->file_xkbdir) - fprintf (cf, "\tXkbDir \"%s\"\n", ptr->file_xkbdir); + char *p, *s; + + if (ptr == NULL) + return; + + if (ptr->file_comment) + fprintf(cf, "%s", ptr->file_comment); + if (ptr->file_logfile) + fprintf(cf, "\tLogFile \"%s\"\n", ptr->file_logfile); + if (ptr->file_modulepath) { + s = ptr->file_modulepath; + p = index(s, ','); + while (p) { + *p = '\000'; + fprintf(cf, "\tModulePath \"%s\"\n", s); + *p = ','; + s = p; + s++; + p = index(s, ','); + } + fprintf(cf, "\tModulePath \"%s\"\n", s); + } + if (ptr->file_fontpath) { + s = ptr->file_fontpath; + p = index(s, ','); + while (p) { + *p = '\000'; + fprintf(cf, "\tFontPath \"%s\"\n", s); + *p = ','; + s = p; + s++; + p = index(s, ','); + } + fprintf(cf, "\tFontPath \"%s\"\n", s); + } + if (ptr->file_xkbdir) + fprintf(cf, "\tXkbDir \"%s\"\n", ptr->file_xkbdir); } void -xf86freeFiles (XF86ConfFilesPtr p) +xf86freeFiles(XF86ConfFilesPtr p) { - if (p == NULL) - return; + if (p == NULL) + return; - TestFree (p->file_logfile); - TestFree (p->file_modulepath); - TestFree (p->file_fontpath); - TestFree (p->file_comment); - TestFree (p->file_xkbdir); + TestFree(p->file_logfile); + TestFree(p->file_modulepath); + TestFree(p->file_fontpath); + TestFree(p->file_comment); + TestFree(p->file_xkbdir); - free (p); + free(p); } |