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]

Reply via email to