projects
/
project
/
uci.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
typechecking, add set_confdir and set_savedir
[project/uci.git]
/
file.c
diff --git
a/file.c
b/file.c
index
740b1d5
..
13fdd3b
100644
(file)
--- a/
file.c
+++ b/
file.c
@@
-35,6
+35,7
@@
static void assert_eol(struct uci_context *ctx, char **str)
{
char *tmp;
{
char *tmp;
+ skip_whitespace(ctx, str);
tmp = next_arg(ctx, str, false, false);
if (*tmp && (ctx->flags & UCI_FLAG_STRICT))
uci_parse_error(ctx, *str, "too many arguments");
tmp = next_arg(ctx, str, false, false);
if (*tmp && (ctx->flags & UCI_FLAG_STRICT))
uci_parse_error(ctx, *str, "too many arguments");
@@
-127,7
+128,7
@@
static void uci_parse_config(struct uci_context *ctx, char **str)
UCI_TRAP_RESTORE(ctx);
return;
error:
UCI_TRAP_RESTORE(ctx);
return;
error:
- UCI_THROW(ctx, ctx->err
no
);
+ UCI_THROW(ctx, ctx->err);
} else
pctx->section = uci_alloc_section(pctx->package, type, name);
}
} else
pctx->section = uci_alloc_section(pctx->package, type, name);
}
@@
-157,7
+158,7
@@
static void uci_parse_option(struct uci_context *ctx, char **str)
UCI_TRAP_RESTORE(ctx);
return;
error:
UCI_TRAP_RESTORE(ctx);
return;
error:
- UCI_THROW(ctx, ctx->err
no
);
+ UCI_THROW(ctx, ctx->err);
} else
uci_alloc_option(pctx->section, name, value);
}
} else
uci_alloc_option(pctx->section, name, value);
}
@@
-169,19
+170,17
@@
error:
static void uci_parse_line(struct uci_context *ctx, bool single)
{
struct uci_parse_context *pctx = ctx->pctx;
static void uci_parse_line(struct uci_context *ctx, bool single)
{
struct uci_parse_context *pctx = ctx->pctx;
- char *word, *brk = NULL;
-
- for (word = strtok_r(pctx->buf, ";", &brk);
- word;
- word = strtok_r(NULL, ";", &brk)) {
-
- char *pbrk = NULL;
- word = strtok_r(word, " \t", &pbrk);
+ char *word, *brk;
+ word = pctx->buf;
+ do {
+ brk = NULL;
+ word = strtok_r(word, " \t", &brk);
if (!word)
if (!word)
-
continue
;
+
return
;
switch(word[0]) {
switch(word[0]) {
+ case 0:
case '#':
return;
case 'p':
case '#':
return;
case 'p':
@@
-200,7
+199,7
@@
static void uci_parse_line(struct uci_context *ctx, bool single)
uci_parse_error(ctx, word, "unterminated command");
break;
}
uci_parse_error(ctx, word, "unterminated command");
break;
}
- }
+ }
while (1);
}
/* max number of characters that escaping adds to the string */
}
/* max number of characters that escaping adds to the string */
@@
-324,9
+323,9
@@
int uci_import(struct uci_context *ctx, FILE *stream, const char *name, struct u
error:
if (ctx->flags & UCI_FLAG_PERROR)
uci_perror(ctx, NULL);
error:
if (ctx->flags & UCI_FLAG_PERROR)
uci_perror(ctx, NULL);
- if ((ctx->err
no
!= UCI_ERR_PARSE) ||
+ if ((ctx->err != UCI_ERR_PARSE) ||
(ctx->flags & UCI_FLAG_STRICT))
(ctx->flags & UCI_FLAG_STRICT))
- UCI_THROW(ctx, ctx->err
no
);
+ UCI_THROW(ctx, ctx->err);
}
uci_fixup_section(ctx, ctx->pctx->section);
}
uci_fixup_section(ctx, ctx->pctx->section);
@@
-422,8
+421,8
@@
done:
if (path)
free(path);
uci_close_stream(f);
if (path)
free(path);
uci_close_stream(f);
- if (ctx->err
no
)
- UCI_THROW(ctx, ctx->err
no
);
+ if (ctx->err)
+ UCI_THROW(ctx, ctx->err);
}
}
@@
-512,7
+511,7
@@
static struct uci_package *uci_file_load(struct uci_context *ctx, const char *na
}
file = uci_open_stream(ctx, filename, SEEK_SET, false, false);
}
file = uci_open_stream(ctx, filename, SEEK_SET, false, false);
- ctx->err
no
= 0;
+ ctx->err = 0;
UCI_TRAP_SAVE(ctx, done);
UCI_INTERNAL(uci_import, ctx, file, name, &package, true);
UCI_TRAP_RESTORE(ctx);
UCI_TRAP_SAVE(ctx, done);
UCI_INTERNAL(uci_import, ctx, file, name, &package, true);
UCI_TRAP_RESTORE(ctx);
@@
-525,8
+524,8
@@
static struct uci_package *uci_file_load(struct uci_context *ctx, const char *na
done:
uci_close_stream(file);
done:
uci_close_stream(file);
- if (ctx->err
no
)
- UCI_THROW(ctx, ctx->err
no
);
+ if (ctx->err)
+ UCI_THROW(ctx, ctx->err);
return package;
}
return package;
}