mirror of
https://github.com/netfun2000/lcd4linux.git
synced 2026-02-27 09:44:34 +08:00
removed backslash handling from cfg.c (its now part of the evaluator)
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@982 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
This commit is contained in:
@@ -157,41 +157,6 @@ static char *strip(char *s, const int strip_comments)
|
||||
}
|
||||
|
||||
|
||||
/* unquote a string */
|
||||
static char *dequote(char *string)
|
||||
{
|
||||
int quote = 0;
|
||||
char *s = string;
|
||||
char *p = string;
|
||||
|
||||
do {
|
||||
if (*s == '\'') {
|
||||
quote = !quote;
|
||||
*p++ = *s;
|
||||
} else if (quote && *s == '\\') {
|
||||
s++;
|
||||
if (*s >= '0' && *s <= '7') {
|
||||
int n;
|
||||
unsigned int c = 0;
|
||||
sscanf(s, "%3o%n", &c, &n);
|
||||
if (c == 0 || c > 255) {
|
||||
error("WARNING: illegal '\\' in <%s>", string);
|
||||
} else {
|
||||
*p++ = c;
|
||||
s += n - 1;
|
||||
}
|
||||
} else {
|
||||
*p++ = *s;
|
||||
}
|
||||
} else {
|
||||
*p++ = *s;
|
||||
}
|
||||
} while (*s++);
|
||||
|
||||
return string;
|
||||
}
|
||||
|
||||
|
||||
/* which if a string contains only valid chars */
|
||||
/* i.e. start with a char and contains chars and nums */
|
||||
static int validchars(const char *string, const int numstart)
|
||||
@@ -240,14 +205,14 @@ static void cfg_add(const char *section, const char *key, const char *val, const
|
||||
free(buffer);
|
||||
if (entry->val)
|
||||
free(entry->val);
|
||||
entry->val = dequote(strdup(val));
|
||||
entry->val = strdup(val);
|
||||
return;
|
||||
}
|
||||
|
||||
nConfig++;
|
||||
Config = realloc(Config, nConfig * sizeof(ENTRY));
|
||||
Config[nConfig - 1].key = buffer;
|
||||
Config[nConfig - 1].val = dequote(strdup(val));
|
||||
Config[nConfig - 1].val = strdup(val);
|
||||
Config[nConfig - 1].lock = lock;
|
||||
|
||||
qsort(Config, nConfig, sizeof(ENTRY), c_sort);
|
||||
|
||||
Reference in New Issue
Block a user