20
char ** headerGetLangs(Header h)
22
char **s, *e, **table;
26
if (!headerGetRawEntry(h, HEADER_I18NTABLE, &type, (rpm_data_t)&s, &count))
29
/* XXX xcalloc never returns NULL. */
30
if ((table = (char **)xcalloc((count+1), sizeof(char *))) == NULL)
33
for (i = 0, e = *s; i < count; i++, e += strlen(e)+1)
37
return table; /* LCL: double indirection? */
40
void headerDump(Header h, FILE *f, int flags)
47
/* First write out the length of the index (count of index entries) */
48
fprintf(f, "Entry count: %d\n", h->indexUsed);
50
/* Now write the index */
52
fprintf(f, "\n CT TAG TYPE "
54
for (i = 0; i < h->indexUsed; i++) {
55
switch (p->info.type) {
80
case RPM_STRING_ARRAY_TYPE:
81
type = "STRING_ARRAY";
83
case RPM_I18NSTRING_TYPE:
91
tag = rpmTagGetName(p->info.tag);
93
fprintf(f, "Entry : %3.3d (%d)%-14s %-18s 0x%.8x %.8d\n", i,
94
p->info.tag, tag, type, (unsigned) p->info.offset,
97
if (flags & HEADER_DUMP_INLINE) {
99
int c = p->info.count;
102
/* Print the data inline */
103
switch (p->info.type) {
106
fprintf(f, " Data: %.3d 0x%08x (%d)\n", ct++,
107
(unsigned) *((int32_t *) dp),
108
(int) *((int32_t *) dp));
109
dp += sizeof(int32_t);
115
fprintf(f, " Data: %.3d 0x%04x (%d)\n", ct++,
116
(unsigned) (*((int16_t *) dp) & 0xffff),
117
(int) *((int16_t *) dp));
118
dp += sizeof(int16_t);
123
fprintf(f, " Data: %.3d 0x%02x (%d)\n", ct++,
124
(unsigned) (*((int8_t *) dp) & 0xff),
125
(int) *((int8_t *) dp));
126
dp += sizeof(int8_t);
131
fprintf(f, " Data: %.3d ", ct);
133
fprintf(f, "%02x ", (unsigned) (*(int8_t *)dp & 0xff));
135
dp += sizeof(int8_t);
145
char ch = (char) *((char *) dp);
146
fprintf(f, " Data: %.3d 0x%2x %c (%d)\n", ct++,
147
(unsigned)(ch & 0xff),
148
(isprint(ch) ? ch : ' '),
149
(int) *((char *) dp));
153
case RPM_STRING_TYPE:
154
case RPM_STRING_ARRAY_TYPE:
155
case RPM_I18NSTRING_TYPE:
157
fprintf(f, " Data: %.3d %s\n", ct++, (char *) dp);
163
fprintf(stderr, _("Data type %d not supported\n"),
173
21
* Backwards compatibility wrappers for legacy interfaces.
174
22
* Remove these some day...