mdb-tables -T to show entry type

This commit is contained in:
Nirgal Vourgère
2012-07-07 23:38:06 +02:00
parent a5573ab6d1
commit d02eb47531

View File

@@ -84,22 +84,26 @@ main (int argc, char **argv)
char *delimiter = NULL; char *delimiter = NULL;
int line_break=0; int line_break=0;
int skip_sys=1; int skip_sys=1;
int show_type=0;
int opt; int opt;
int objtype = MDB_TABLE; int objtype = MDB_TABLE;
if (argc < 2) { if (argc < 2) {
fprintf (stderr, "Usage: %s [-S] [-1 | -d<delimiter>] [-t <type>] <file>\n",argv[0]); fprintf (stderr, "Usage: %s [-S] [-1 | -d<delimiter>] [-t <type>] [-T] <file>\n",argv[0]);
fprintf (stderr, " Valid types are: %s\n",valid_types()); fprintf (stderr, " Valid types are: %s\n",valid_types());
exit (1); exit (1);
} }
while ((opt=getopt(argc, argv, "S1d:t:"))!=-1) { while ((opt=getopt(argc, argv, "S1Td:t:"))!=-1) {
switch (opt) { switch (opt) {
case 'S': case 'S':
skip_sys = 0; skip_sys = 0;
break; break;
case 'T':
show_type = 1;
break;
case '1': case '1':
line_break = 1; line_break = 1;
break; break;
@@ -142,12 +146,17 @@ main (int argc, char **argv)
if (skip_sys && mdb_is_system_table(entry)) if (skip_sys && mdb_is_system_table(entry))
continue; continue;
if (line_break) if (show_type) {
fprintf (stdout, "%s\n", entry->object_name); if (delimiter)
puts(delimiter);
printf("%d ", entry->object_type);
}
if (line_break)
printf ("%s\n", entry->object_name);
else if (delimiter) else if (delimiter)
fprintf (stdout, "%s%s", entry->object_name, delimiter); printf ("%s%s", entry->object_name, delimiter);
else else
fprintf (stdout, "%s ", entry->object_name); printf ("%s ", entry->object_name);
} }
if (!line_break) if (!line_break)
fprintf (stdout, "\n"); fprintf (stdout, "\n");