[PATCH:xfs 1/4] Make CONFIG_ERR_* values be strings instead of indexes in ConfigErrors array
Jeremy Huddleston
jeremyhu at apple.com
Sat Nov 12 16:45:59 PST 2011
Series:
Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
On Nov 11, 2011, at 22:49, Alan Coopersmith wrote:
> Allows gcc to check printf format strings instead of just giving warnings.
> Since these #defines are only used in config.c, define them directly there,
> instead of in the config.h header that no one else includes.
>
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> ---
> os/config.c | 47 ++++++++++++++++++++++-------------------------
> os/config.h | 12 ------------
> 2 files changed, 22 insertions(+), 37 deletions(-)
>
> diff --git a/os/config.c b/os/config.c
> index 358189a..809a3fa 100644
> --- a/os/config.c
> +++ b/os/config.c
> @@ -106,19 +106,16 @@ static ConfigOptionRec config_options[] = {
> {NULL, NULL},
> };
>
> -static const char * const ConfigErrors[] = {
> - "",
> - "CONFIG: insufficient memory to load configuration file \"%s\"\n",
> - "CONFIG: can't open configuration file \"%s\"\n",
> - "CONFIG: error reading configuration file \"%s\"\n",
> - "CONFIG: bad value \"%s\" for parameter \"%s\"\n",
> - "CONFIG: unknown parameter \"%s\"\n",
> - "CONFIG: missing '=' after parameter \"%s\"\n",
> - "CONFIG: value out of range for parameter \"%s\"\n",
> - "CONFIG: syntax error near parameter \"%s\"\n",
> - "CONFIG: missing value for parameter \"%s\"\n",
> - "CONFIG: extra value for parameter \"%s\"\n",
> -};
> +#define CONFIG_ERR_MEMORY "CONFIG: insufficient memory to load configuration file \"%s\"\n"
> +#define CONFIG_ERR_OPEN "CONFIG: can't open configuration file \"%s\"\n"
> +#define CONFIG_ERR_READ "CONFIG: error reading configuration file \"%s\"\n"
> +#define CONFIG_ERR_VALUE "CONFIG: bad value \"%s\" for parameter \"%s\"\n"
> +#define CONFIG_ERR_UNKNOWN "CONFIG: unknown parameter \"%s\"\n"
> +#define CONFIG_ERR_NOEQUALS "CONFIG: missing '=' after parameter \"%s\"\n"
> +#define CONFIG_ERR_RANGE "CONFIG: value out of range for parameter \"%s\"\n"
> +#define CONFIG_ERR_SYNTAX "CONFIG: syntax error near parameter \"%s\"\n"
> +#define CONFIG_ERR_NOVALUE "CONFIG: missing value for parameter \"%s\"\n"
> +#define CONFIG_ERR_EXTRAVALUE "CONFIG: extra value for parameter \"%s\"\n"
>
> #define iseol(c) ((c) == '\n' || (c) == '\r' || (c) == '\f')
> #define skip_whitespace(c) while(isspace(*(c)) || *(c) == ',') (c)++;
> @@ -217,14 +214,14 @@ parse_config(char *data)
>
> /* check for junk */
> if (!isspace(*c) && *c != '=') {
> - ErrorF(ConfigErrors[CONFIG_ERR_SYNTAX], param_name);
> + ErrorF(CONFIG_ERR_SYNTAX, param_name);
> /* eat garbage */
> while (!isspace(*c) && *c != '=' && *c != '\0')
> c++;
> }
> skip_whitespace(c);
> if (*c != '=') {
> - ErrorF(ConfigErrors[CONFIG_ERR_NOEQUALS], param_name);
> + ErrorF(CONFIG_ERR_NOEQUALS, param_name);
> equals_missing = TRUE;
> } else {
> c++;
> @@ -244,26 +241,26 @@ parse_config(char *data)
>
> if (val <= c) {
> /* no value, ignore */
> - ErrorF(ConfigErrors[CONFIG_ERR_NOVALUE], param_name);
> + ErrorF(CONFIG_ERR_NOVALUE, param_name);
> continue;
> }
> *val = '\0';
> } else if (*c == '\0') {
> /* no value, ignore */
> - ErrorF(ConfigErrors[CONFIG_ERR_NOVALUE], param_name);
> + ErrorF(CONFIG_ERR_NOVALUE, param_name);
> continue;
> }
> /* match parm name */
> if (equals_missing) {
> equals_missing = FALSE;
> } else if ((param = match_param_name(param_name)) == NULL) {
> - ErrorF(ConfigErrors[CONFIG_ERR_UNKNOWN], param_name);
> + ErrorF(CONFIG_ERR_UNKNOWN, param_name);
> } else {
> consumed = (param->set_func) (param, c);
>
> skip_whitespace(consumed);
> if (*consumed != '\0') {
> - ErrorF(ConfigErrors[CONFIG_ERR_EXTRAVALUE],
> + ErrorF(CONFIG_ERR_EXTRAVALUE,
> param_name);
> }
> }
> @@ -331,7 +328,7 @@ ReadConfigFile(const char *filename)
>
> data = (char *) fsalloc(CONFIG_MAX_FILESIZE);
> if (!data) {
> - ErrorF(ConfigErrors[CONFIG_ERR_MEMORY], filename);
> + ErrorF(CONFIG_ERR_MEMORY, filename);
> return FSBadAlloc;
> }
> if (filename != NULL) {
> @@ -340,7 +337,7 @@ ReadConfigFile(const char *filename)
> #endif
> fp = fopen(filename, "r");
> if (fp == NULL) {
> - ErrorF(ConfigErrors[CONFIG_ERR_OPEN], filename);
> + ErrorF(CONFIG_ERR_OPEN, filename);
> }
> } else {
> for (i = 0; default_config_files[i] != NULL; i++) {
> @@ -357,7 +354,7 @@ ReadConfigFile(const char *filename)
> }
> if (fp == NULL) {
> for (i = 0; default_config_files[i] != NULL; i++) {
> - ErrorF(ConfigErrors[CONFIG_ERR_OPEN], default_config_files[i]);
> + ErrorF(CONFIG_ERR_OPEN, default_config_files[i]);
> }
> }
> }
> @@ -369,7 +366,7 @@ ReadConfigFile(const char *filename)
> if (ret <= 0) {
> fsfree(data);
> (void) fclose(fp);
> - ErrorF(ConfigErrors[CONFIG_ERR_READ], filename);
> + ErrorF(CONFIG_ERR_READ, filename);
> return FSBadName;
> }
> len = ftell(fp);
> @@ -417,7 +414,7 @@ config_parse_nameVal (
> return c;
> }
> }
> - ErrorF(ConfigErrors[CONFIG_ERR_VALUE], start);
> + ErrorF(CONFIG_ERR_VALUE, start);
> *c = t;
> *ret = -1;
> return c;
> @@ -458,7 +455,7 @@ config_parse_int(
> skip_val(c);
> t = *c;
> *c = '\0';
> - ErrorF(ConfigErrors[CONFIG_ERR_VALUE], start);
> + ErrorF(CONFIG_ERR_VALUE, start);
> *ret = -1;
> *c = t;
> return c;
> diff --git a/os/config.h b/os/config.h
> index 1a4de08..327047d 100644
> --- a/os/config.h
> +++ b/os/config.h
> @@ -51,16 +51,4 @@ in this Software without prior written authorization from The Open Group.
> /* max size in bytes of config file */
> #define CONFIG_MAX_FILESIZE 32767
>
> -/* error codes */
> -/* these should be in the same order as the error strings in config.c */
> -#define CONFIG_ERR_MEMORY 1
> -#define CONFIG_ERR_OPEN 2
> -#define CONFIG_ERR_READ 3
> -#define CONFIG_ERR_VALUE 4
> -#define CONFIG_ERR_UNKNOWN 5
> -#define CONFIG_ERR_NOEQUALS 6
> -#define CONFIG_ERR_RANGE 7
> -#define CONFIG_ERR_SYNTAX 8
> -#define CONFIG_ERR_NOVALUE 9
> -#define CONFIG_ERR_EXTRAVALUE 10
> #endif /* _CONFIG_H_ */
> --
> 1.7.3.2
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list