Main Page   Modules   Compound List   File List   Compound Members   File Members   Related Pages  

lib/tagName.c

Go to the documentation of this file.
00001 
00005 #include "system.h"
00006 
00007 #include <rpmlib.h>
00008 #include "debug.h"
00009 
00010 const char *const tagName(int tag)
00011 {
00012     int i;
00013     static char nameBuf[128];   /* XXX yuk */
00014     char *s;
00015 
00016     switch (tag) {
00017     case RPMDBI_PACKAGES:
00018         strcpy(nameBuf, "Packages");
00019         return nameBuf;
00020         /*@notreached@*/ break;
00021     case RPMDBI_DEPENDS:
00022         strcpy(nameBuf, "Depends");
00023         return nameBuf;
00024         /*@notreached@*/ break;
00025     case RPMDBI_ADDED:
00026         strcpy(nameBuf, "Added");
00027         return nameBuf;
00028         /*@notreached@*/ break;
00029     case RPMDBI_REMOVED:
00030         strcpy(nameBuf, "Removed");
00031         return nameBuf;
00032         /*@notreached@*/ break;
00033     case RPMDBI_AVAILABLE:
00034         strcpy(nameBuf, "Available");
00035         return nameBuf;
00036         /*@notreached@*/ break;
00037     }
00038 
00039     strcpy(nameBuf, "(unknown)");
00040     for (i = 0; i < rpmTagTableSize; i++) {
00041         if (tag != rpmTagTable[i].val)
00042             continue;
00043         strcpy(nameBuf, rpmTagTable[i].name + 7);
00044         for (s = nameBuf+1; *s; s++)
00045             *s = tolower(*s);
00046         break;
00047     }
00048     return nameBuf;
00049 }
00050 
00051 int tagValue(const char * tagstr)
00052 {
00053     const struct headerTagTableEntry *t;
00054 
00055     if (!strcmp(tagstr, "Packages"))
00056         return RPMDBI_PACKAGES;
00057     if (!strcmp(tagstr, "Depends"))
00058         return RPMDBI_DEPENDS;
00059     if (!strcmp(tagstr, "Added"))
00060         return RPMDBI_ADDED;
00061     if (!strcmp(tagstr, "Removed"))
00062         return RPMDBI_REMOVED;
00063     if (!strcmp(tagstr, "Available"))
00064         return RPMDBI_AVAILABLE;
00065 
00066     for (t = rpmTagTable; t->name != NULL; t++) {
00067         if (!strcasecmp(t->name + 7, tagstr))
00068             return t->val;
00069     }
00070     return -1;
00071 }

Generated at Sun Apr 8 18:43:01 2001 for rpm by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000