Add HEADERGET_RAW flag to disable i18n lookups
authorPanu Matilainen <pmatilai@redhat.com>
Sat, 17 May 2008 06:50:39 +0000 (09:50 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Sat, 17 May 2008 06:50:39 +0000 (09:50 +0300)
lib/header.c
lib/header.h

index 973466e..1c16436 100644 (file)
@@ -1359,16 +1359,20 @@ static int intGetTdEntry(Header h, rpmTag tag, rpmtd td, headerGetFlags flags)
        return 0;
     }
 
-    switch (entry->info.type) {
-    case RPM_I18NSTRING_TYPE:
-       rc = 1;
-       td->type = RPM_STRING_TYPE;
-       td->count = 1;
-       td->data = headerFindI18NString(h, entry);
-       break;
-    default:
+    if (flags & HEADERGET_RAW) {
        rc = copyTdEntry(entry, td, (flags & HEADERGET_MINMEM));
-       break;
+    } else {
+       switch (entry->info.type) {
+       case RPM_I18NSTRING_TYPE:
+           rc = 1;
+           td->type = RPM_STRING_TYPE;
+           td->count = 1;
+           td->data = headerFindI18NString(h, entry);
+           break;
+       default:
+           rc = copyTdEntry(entry, td, (flags & HEADERGET_MINMEM));
+           break;
+       }
     }
 
     /* XXX 1 on success */
index cba3157..14e0d0f 100644 (file)
@@ -183,6 +183,7 @@ typedef enum headerGetFlags_e {
     HEADERGET_DEFAULT  = 0,
     HEADERGET_MINMEM   = (1 << 0), /* string pointers refer to header memory */
     HEADERGET_EXT      = (1 << 1), /* lookup extension types too */
+    HEADERGET_RAW      = (1 << 2), /* return raw contents (no i18n lookups) */
 } headerGetFlags;
 
 /** \ingroup header