[MINOR] config: provide a function to quote args in a more friendly way

The quote_arg() function can be used to quote an argument or indicate
"end of line" if it's null or empty. It should be useful to more precisely
report location of problems in the configuration.
This commit is contained in:
Willy Tarreau 2010-06-14 19:09:21 +02:00
parent f535683123
commit acf9577350
2 changed files with 25 additions and 0 deletions

View File

@ -384,4 +384,10 @@ int word_match(const char *sample, int slen, const char *word, int wlen);
*/
int buf2ip(const char *buf, size_t len, struct in_addr *dst);
/* To be used to quote config arg positions. Returns the string at <ptr>
* surrounded by simple quotes if <ptr> is valid and non-empty, or "end of line"
* if ptr is NULL or empty. The string is locally allocated.
*/
const char *quote_arg(const char *ptr);
#endif /* _COMMON_STANDARD_H */

View File

@ -1059,6 +1059,25 @@ int buf2ip(const char *buf, size_t len, struct in_addr *dst)
return addr - cp;
}
/* To be used to quote config arg positions. Returns the short string at <ptr>
* surrounded by simple quotes if <ptr> is valid and non-empty, or "end of line"
* if ptr is NULL or empty. The string is locally allocated.
*/
const char *quote_arg(const char *ptr)
{
static char val[32];
int i;
if (!ptr || !*ptr)
return "end of line";
val[0] = '\'';
for (i = 1; i < sizeof(val) - 1 && *ptr; i++)
val[i] = *ptr++;
val[i++] = '\'';
val[i] = '\0';
return val;
}
/*
* Local variables:
* c-indent-level: 8