projects
/
project
/
uci.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
delta: fix outputing of delta entries occupying multiple lines.
[project/uci.git]
/
util.c
diff --git
a/util.c
b/util.c
index
15f311b
..
f16a378
100644
(file)
--- a/
util.c
+++ b/
util.c
@@
-89,9
+89,10
@@
bool uci_validate_text(const char *str)
{
while (*str) {
unsigned char c = *str;
{
while (*str) {
unsigned char c = *str;
- if ((c == '\r') || (c == '\n') ||
-
((c < 32) && (c != '\t'))
)
+
+
if (c < 32 && c != '\t' && c != '\n' && c != '\r'
)
return false;
return false;
+
str++;
}
return true;
str++;
}
return true;
@@
-161,12
+162,12
@@
error:
}
}
-__private void uci_parse_error(struct uci_context *ctx, char *
pos, char *
reason)
+__private void uci_parse_error(struct uci_context *ctx, char *reason)
{
struct uci_parse_context *pctx = ctx->pctx;
pctx->reason = reason;
{
struct uci_parse_context *pctx = ctx->pctx;
pctx->reason = reason;
- pctx->byte = p
os - pctx->buf
;
+ pctx->byte = p
ctx_pos(pctx)
;
UCI_THROW(ctx, UCI_ERR_PARSE);
}
UCI_THROW(ctx, UCI_ERR_PARSE);
}
@@
-178,7
+179,7
@@
__private void uci_parse_error(struct uci_context *ctx, char *pos, char *reason)
* note: when opening for write and seeking to the beginning of
* the stream, truncate the file
*/
* note: when opening for write and seeking to the beginning of
* the stream, truncate the file
*/
-__private FILE *uci_open_stream(struct uci_context *ctx, const char *filename, int pos, bool write, bool create)
+__private FILE *uci_open_stream(struct uci_context *ctx, const char *filename,
const char *origfilename,
int pos, bool write, bool create)
{
struct stat statbuf;
FILE *file = NULL;
{
struct stat statbuf;
FILE *file = NULL;
@@
-190,7
+191,11
@@
__private FILE *uci_open_stream(struct uci_context *ctx, const char *filename, i
if (create) {
flags |= O_CREAT;
if (create) {
flags |= O_CREAT;
- name = basename((char *) filename);
+ if (origfilename) {
+ name = basename((char *) origfilename);
+ } else {
+ name = basename((char *) filename);
+ }
if ((asprintf(&filename2, "%s/%s", ctx->confdir, name) < 0) || !filename2) {
UCI_THROW(ctx, UCI_ERR_MEM);
} else {
if ((asprintf(&filename2, "%s/%s", ctx->confdir, name) < 0) || !filename2) {
UCI_THROW(ctx, UCI_ERR_MEM);
} else {