include last record in language-subtag-registry.xml
Change-Id: Iaca0fc9ca12ee672f640be9c639b7b0d0dd3bc10
This commit is contained in:
parent
c47bbfce2d
commit
f854b05013
2 changed files with 50 additions and 0 deletions
|
@ -22,6 +22,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,langtag,\
|
|||
external/liblangtag/liblangtag-0.5.1-undefined-have-sys-param-h.patch \
|
||||
external/liblangtag/liblangtag-0.5.1-windows-do-not-prepend-dir-separator.patch \
|
||||
external/liblangtag/liblangtag-0.5.1-unistd.patch \
|
||||
external/liblangtag/liblangtag-0.5.1-include-last-record-in-language-subtag-registry.patch \
|
||||
))
|
||||
|
||||
ifeq ($(OS),WNT)
|
||||
|
|
49
external/liblangtag/liblangtag-0.5.1-include-last-record-in-language-subtag-registry.patch
vendored
Normal file
49
external/liblangtag/liblangtag-0.5.1-include-last-record-in-language-subtag-registry.patch
vendored
Normal file
|
@ -0,0 +1,49 @@
|
|||
Upstream 6564b87c2f6dac2482e530bc43b038a3e93a0e07
|
||||
resolves #6, include last record in language-subtag-registry.xml
|
||||
|
||||
The '%%' in language-subtag-registry is a record delimiter, not record
|
||||
end marker, it is not present on the last record at file end.
|
||||
|
||||
(cherry picked from commit 4fff73a834f94a7ca256c086d99ea0a654a6c287)
|
||||
|
||||
diff --git a/data/reg2xml.c b/data/reg2xml.c
|
||||
--- UnpackedTarball/langtag.orig/data/reg2xml.c
|
||||
+++ UnpackedTarball/langtag/data/reg2xml.c
|
||||
@@ -48,6 +48,7 @@ _parse(const char *filename,
|
||||
FILE *fp;
|
||||
char buffer[1024], *range = NULL, *begin = NULL, *end = NULL;
|
||||
lt_bool_t in_entry = FALSE;
|
||||
+ lt_bool_t file_end = FALSE;
|
||||
xmlNodePtr ent = NULL;
|
||||
|
||||
if ((fp = fopen(filename, "rb")) == NULL) {
|
||||
@@ -56,10 +57,13 @@ _parse(const char *filename,
|
||||
}
|
||||
while (1) {
|
||||
fgets(buffer, 1024, fp);
|
||||
- if (feof(fp))
|
||||
- break;
|
||||
+ if (feof(fp)) {
|
||||
+ if (!in_entry)
|
||||
+ break;
|
||||
+ file_end = TRUE;
|
||||
+ }
|
||||
_drop_crlf(buffer);
|
||||
- if (lt_strcmp0(buffer, "%%") == 0) {
|
||||
+ if (lt_strcmp0(buffer, "%%") == 0 || file_end) {
|
||||
if (in_entry) {
|
||||
if (ent) {
|
||||
if (range) {
|
||||
@@ -102,7 +106,7 @@ _parse(const char *filename,
|
||||
ent = NULL;
|
||||
range = NULL;
|
||||
}
|
||||
- in_entry = TRUE;
|
||||
+ in_entry = !file_end;
|
||||
} else {
|
||||
if (!in_entry) {
|
||||
/* ignore it */
|
||||
|
||||
--------------erAck-patch-parts--
|
||||
|
||||
|
Loading…
Reference in a new issue