format.
"
+option "print-base-dir" -
+#~~~~~~~~~~~~~~~~~~~~~~~~
+"whether to include the base-dir in the output"
+flag off
+details="
+ If this flag is given, all directories printed are prefixed
+ with the base directory. The default is to print paths relative
+ to the base dir.
+"
+
option "no-headers" -
#~~~~~~~~~~~~~~~~~~~~
"supress descriptions for listings/tables"
char *result = NULL, *tmp;
struct osl_row *row;
uint64_t val = *dirnum;
- struct osl_object obj = {.data = &val, .size = sizeof(val)};
+ struct osl_object obj;
int ret;
again:
+ obj.data = &val;
+ obj.size = sizeof(val);
ret = osl(osl_get_row(dir_table, DT_NUM, &obj, &row));
if (ret < 0)
goto out;
- ret = osl(osl_get_object(dir_table, row, DT_NAME, &obj));
- if (ret < 0)
- goto out;
- if (result) {
- tmp = make_message("%s/%s", (char *)obj.data, result);
- free(result);
- result = tmp;
- } else
- result = adu_strdup((char *)obj.data);
ret = osl(osl_get_object(dir_table, row, DT_PARENT_NUM, &obj));
if (ret < 0)
goto out;
val = *(uint64_t *)obj.data;
+ ret = osl(osl_get_object(dir_table, row, DT_NAME, &obj));
+ if (ret < 0)
+ goto out;
+ if (val || conf.print_base_dir_given) {
+ if (result) {
+ tmp = make_message("%s/%s", (char *)obj.data, result);
+ free(result);
+ result = tmp;
+ } else
+ result = adu_strdup((char *)obj.data);
+ }
if (val)
goto again;
out: