summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxhe <xw897002528@gmail.com>2018-12-27 20:51:47 +0800
committerrofl0r <retnyg@gmx.net>2019-01-16 02:38:18 +0000
commit126df240b111944a665d769aca92cab7bccf85ef (patch)
tree231da2ee9c968e99a2a26e8ab920bb4307e65717
parent8aeb6cd875c13cbb2ca0e0d9900f68216878b06a (diff)
downloadgettext-tiny-126df240b111944a665d769aca92cab7bccf85ef.tar.gz
poparser: add po_error_last to po_error type
so we can directly get the problem from the return value of msgfmt.c:process().
-rw-r--r--src/msgfmt.c2
-rw-r--r--src/poparser.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/msgfmt.c b/src/msgfmt.c
index b2dad1f..8bdacaf 100644
--- a/src/msgfmt.c
+++ b/src/msgfmt.c
@@ -173,7 +173,7 @@ int process(FILE *in, FILE *out) {
if ((t = poparser_finish(p)) != po_success)
return t;
- if (d.cnt == 0) return -1;
+ if (d.cnt == 0) return -(po_error_last+1);
d.list = (struct strmap*)malloc(sizeof(struct strmap)*d.cnt);
d.buf[0] = (char*)malloc(d.len[0]);
diff --git a/src/poparser.h b/src/poparser.h
index 75f5367..814dfa3 100644
--- a/src/poparser.h
+++ b/src/poparser.h
@@ -89,6 +89,7 @@ enum po_error {
po_plurals_overflow,
po_invalid_entry,
po_internal,
+ po_error_last = po_internal,
};
void poparser_init(struct po_parser *p, char* workbuf, size_t bufsize, poparser_callback cb, void* cbdata);