RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: [EMAIL PROTECTED]
Module: rpm Date: 16-Feb-2008 03:48:40
Branch: HEAD Handle: 2008021602484000
Modified files:
rpm CHANGES
rpm/rpmdb header.c
Log:
- rpm.org: Improve header i18n locale matching.
Summary:
Revision Changes Path
1.2184 +1 -0 rpm/CHANGES
1.148 +8 -7 rpm/rpmdb/header.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2183 -r1.2184 CHANGES
--- rpm/CHANGES 16 Feb 2008 01:54:53 -0000 1.2183
+++ rpm/CHANGES 16 Feb 2008 02:48:40 -0000 1.2184
@@ -1,4 +1,5 @@
5.0.0 -> 5.1a1:
+ - rpm.org: Improve header i18n locale matching.
- jbj: url: parse ?query#fragment from URI's.
- jbj: mire: add mireLoadPatterns() routine.
- jbj: mire: add mireAppend() routine.
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header.c
============================================================================
$ cvs diff -u -r1.147 -r1.148 header.c
--- rpm/rpmdb/header.c 3 Feb 2008 23:19:58 -0000 1.147
+++ rpm/rpmdb/header.c 16 Feb 2008 02:48:40 -0000 1.148
@@ -1373,7 +1373,7 @@
for (fe = l; fe < le && *fe != '_'; fe++)
{};
if (fe < le && !strncmp(td, l, (fe - l)))
- return 1;
+ return 2;
return 0;
}
@@ -1405,7 +1405,7 @@
for (l = lang; *l != '\0'; l = le) {
const char *td;
- char *ed;
+ char *ed, *ed_weak = NULL;
uint32_t langNum;
while (*l && *l == ':') /* skip leading colons */
@@ -1418,12 +1418,13 @@
/* For each entry in the header ... */
for (langNum = 0, td = table->data, ed = entry->data;
langNum < entry->info.count;
- langNum++, td += strlen(td) + 1, ed += strlen(ed) + 1) {
-
- if (headerMatchLocale(td, l, le))
- return ed;
-
+ langNum++, td += strlen(td) + 1, ed += strlen(ed) + 1)
+ {
+ int match = headerMatchLocale(td, l, le);
+ if (match == 1) return ed;
+ else if (match == 2) ed_weak = ed;
}
+ if (ed_weak) return ed_weak;
}
return entry->data;
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [email protected]