|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/**
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* \file lib/tagname.c
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
#include "system.h"
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
#include <pthread.h>
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
#include <rpm/header.h>
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
#include <rpm/rpmstring.h>
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
#include "debug.h"
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/** \ingroup header
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* Associate tag names with numeric values.
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
typedef const struct headerTagTableEntry_s * headerTagTableEntry;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
struct headerTagTableEntry_s {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const char * name; /*!< Tag name. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const char * shortname; /*!< "Human readable" short name. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagVal val; /*!< Tag numeric value. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagType type; /*!< Tag type. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagReturnType retype; /*!< Tag return type. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int extension; /*!< Extension or "real" tag */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
};
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
#include "lib/tagtbl.C"
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
#define TABLESIZE (sizeof(rpmTagTable) / sizeof(rpmTagTable[0]) - 1)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static const int rpmTagTableSize = TABLESIZE;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static headerTagTableEntry tagsByName[TABLESIZE]; /*!< tags sorted by name. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static headerTagTableEntry tagsByValue[TABLESIZE]; /*!< tags sorted by value. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/**
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* Compare tag table entries by name.
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* @param *avp tag table entry a
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* @param *bvp tag table entry b
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* @return comparison
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static int tagCmpName(const void * avp, const void * bvp)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
headerTagTableEntry a = *(const headerTagTableEntry *) avp;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
headerTagTableEntry b = *(const headerTagTableEntry *) bvp;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return strcmp(a->name, b->name);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/**
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* Compare tag table entries by value.
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* @param *avp tag table entry a
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* @param *bvp tag table entry b
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
* @return comparison
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static int tagCmpValue(const void * avp, const void * bvp)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
headerTagTableEntry a = *(const headerTagTableEntry *) avp;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
headerTagTableEntry b = *(const headerTagTableEntry *) bvp;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int ret = (a->val - b->val);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/* Make sure that sort is stable, longest name first. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
if (ret == 0)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
ret = (strlen(b->name) - strlen(a->name));
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return ret;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static pthread_once_t tagsLoaded = PTHREAD_ONCE_INIT;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/* Initialize tag by-value and by-name lookup tables */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static void loadTags(void)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
for (int i = 0; i < rpmTagTableSize; i++) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagsByValue[i] = &rpmTagTable[i];
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagsByName[i] = &rpmTagTable[i];
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
qsort(tagsByValue, rpmTagTableSize, sizeof(*tagsByValue), tagCmpValue);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
qsort(tagsByName, rpmTagTableSize, sizeof(*tagsByName), tagCmpName);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static headerTagTableEntry entryByTag(rpmTagVal tag)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
headerTagTableEntry entry = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int i, comparison;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int l = 0;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int u = rpmTagTableSize;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
while (l < u) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
i = (l + u) / 2;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
comparison = (tag - tagsByValue[i]->val);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
if (comparison < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
u = i;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
} else if (comparison > 0) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
l = i + 1;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/* Make sure that the bsearch retrieve is stable. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
while (i > 0 && tag == tagsByValue[i-1]->val) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
i--;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
entry = tagsByValue[i];
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return entry;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
static headerTagTableEntry entryByName(const char *tag)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
headerTagTableEntry entry = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int i, comparison;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int l = 0;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int u = rpmTagTableSize;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
while (l < u) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
i = (l + u) / 2;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
comparison = rstrcasecmp(tag, tagsByName[i]->shortname);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
if (comparison < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
u = i;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
} else if (comparison > 0) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
l = i + 1;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
entry = tagsByName[i];
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return entry;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const char * rpmTagGetName(rpmTagVal tag)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const char *name = "(unknown)";
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const struct headerTagTableEntry_s *t;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
pthread_once(&tagsLoaded, loadTags);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
switch (tag) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPMDBI_PACKAGES:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
name = "Packages";
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/* XXX make sure rpmdb indices are identically named. */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPMTAG_CONFLICTS:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
name = "Conflictname";
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPMTAG_HDRID:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
name = "Sha1header";
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
default:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
t = entryByTag(tag);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
if (t && t->shortname)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
name = t->shortname;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return name;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagType rpmTagGetType(rpmTagVal tag)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const struct headerTagTableEntry_s *t;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagType tagtype = RPM_NULL_TYPE;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
pthread_once(&tagsLoaded, loadTags);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
t = entryByTag(tag);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
if (t) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
/* XXX this is dumb */
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagtype = (rpmTagType)(t->type | t->retype);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return tagtype;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagVal rpmTagGetValue(const char * tagstr)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const struct headerTagTableEntry_s *t;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagType tagval = RPMTAG_NOT_FOUND;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
pthread_once(&tagsLoaded, loadTags);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
if (!rstrcasecmp(tagstr, "Packages"))
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return RPMDBI_PACKAGES;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
t = entryByName(tagstr);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
if (t)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagval = t->val;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return tagval;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagType rpmTagGetTagType(rpmTagVal tag)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return (rpmTagGetType(tag) & RPM_MASK_TYPE);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagReturnType rpmTagGetReturnType(rpmTagVal tag)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return (rpmTagGetType(tag) & RPM_MASK_RETURN_TYPE);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagClass rpmTagTypeGetClass(rpmTagType type)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagClass tclass;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
switch (type & RPM_MASK_TYPE) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_CHAR_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_INT8_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_INT16_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_INT32_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_INT64_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tclass = RPM_NUMERIC_CLASS;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_STRING_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_STRING_ARRAY_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_I18NSTRING_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tclass = RPM_STRING_CLASS;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_BIN_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tclass = RPM_BINARY_CLASS;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
case RPM_NULL_TYPE:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
default:
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tclass = RPM_NULL_CLASS;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return tclass;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmTagClass rpmTagGetClass(rpmTagVal tag)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return rpmTagTypeGetClass(rpmTagGetTagType(tag));
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
int rpmTagGetNames(rpmtd tagnames, int fullname)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
{
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const char **names;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
const char *name;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
pthread_once(&tagsLoaded, loadTags);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
if (tagnames == NULL || tagsByName == NULL)
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return 0;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
rpmtdReset(tagnames);
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagnames->count = rpmTagTableSize;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagnames->data = names = xmalloc(tagnames->count * sizeof(*names));
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagnames->type = RPM_STRING_ARRAY_TYPE;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagnames->flags = RPMTD_ALLOCED | RPMTD_IMMUTABLE;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
for (int i = 0; i < tagnames->count; i++) {
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
name = fullname ? tagsByName[i]->name :
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
tagsByName[i]->shortname;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
names[i] = name;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
return tagnames->count;
|
|
![](https://seccdn.libravatar.org/avatar/7eafec293cdc84ccc79910e3192915e78e6e34e812c9116c61cc64bf13dc271a?s=16&d=retro) |
2ff057 |
}
|