/*
* findmnt(8)
*
- * Copyright (C) 2010,2011 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2010-2014 Red Hat, Inc. All rights reserved.
* Written by Karel Zak <kzak@redhat.com>
*
* This program is free software; you can redistribute it and/or modify
FL_DF = (1 << 10),
FL_ALL = (1 << 11),
FL_UNIQ = (1 << 12),
- FL_BYTES = (1 << 13)
+ FL_BYTES = (1 << 13),
+
+ /* basic table settings */
+ FL_ASCII = (1 << 20),
+ FL_RAW = (1 << 21),
+ FL_NOHEADINGS = (1 << 22),
+ FL_EXPORT = (1 << 23),
+ FL_TREE = (1 << 24)
};
/* column IDs */
TABTYPE_KERNEL
};
-/* basic table settings */
-enum {
- FMNT_ASCII = (1 << 0),
- FMNT_RAW = (1 << 1),
- FMNT_NOHEADINGS = (1 << 2),
- FMNT_EXPORT = (1 << 3),
- FMNT_TREE = (1 << 4),
-};
/* column names */
struct colinfo {
const char *name; /* header */
/* global flags */
static int flags;
-static int scols_flags;
/* array with IDs of enabled columns */
static int columns[FINDMNT_NCOLUMNS];
if (!devno)
break;
- if ((scols_flags & FMNT_RAW) || (scols_flags & FMNT_EXPORT))
+ if ((flags & FL_RAW) || (flags & FL_EXPORT))
xasprintf(&str, "%u:%u", major(devno), minor(devno));
else
xasprintf(&str, "%3u:%-3u", major(devno), minor(devno));
return NULL;
}
for (i = 0; i < ncolumns; i++)
- scols_line_set_data(line, i, get_data(fs, i));
+ scols_line_refer_data(line, i, get_data(fs, i));
scols_line_set_userdata(line, fs);
return line;
return NULL;
}
for (i = 0; i < ncolumns; i++)
- scols_line_set_data(line, i,
+ scols_line_refer_data(line, i,
get_tabdiff_data(old_fs, new_fs, change, i));
return line;
}
while((fs = get_next_fs(tb, itr))) {
- if ((scols_flags & FMNT_TREE) || (flags & FL_SUBMOUNTS))
+ if ((flags & FL_TREE) || (flags & FL_SUBMOUNTS))
rc = create_treenode(table, tb, fs, NULL);
else
rc = !add_line(table, fs, NULL);
atexit(close_stdout);
/* default output format */
- scols_flags |= FMNT_TREE;
+ flags |= FL_TREE;
while ((c = getopt_long(argc, argv,
"AabcDd:ehifF:o:O:p::PklmnN:rst:uvRS:T:Uw:V",
flags |= FL_ALL;
break;
case 'a':
- scols_flags |= FMNT_ASCII;
+ flags |= FL_ASCII;
break;
case 'b':
flags |= FL_BYTES;
flags |= FL_CANONICALIZE;
break;
case 'D':
- scols_flags &= ~FMNT_TREE;
+ flags &= ~FL_TREE;
flags |= FL_DF;
break;
case 'd':
exit(EXIT_FAILURE);
}
flags |= FL_POLL;
- scols_flags &= ~FMNT_TREE;
+ flags &= ~FL_TREE;
break;
case 'P':
- scols_flags |= FMNT_EXPORT;
- scols_flags &= ~FMNT_TREE;
+ flags |= FL_EXPORT;
+ flags &= ~FL_TREE;
break;
case 'm': /* mtab */
tabtype = TABTYPE_MTAB;
- scols_flags &= ~FMNT_TREE;
+ flags &= ~FL_TREE;
break;
case 's': /* fstab */
tabtype = TABTYPE_FSTAB;
- scols_flags &= ~FMNT_TREE;
+ flags &= ~FL_TREE;
break;
case 'k': /* kernel (mountinfo) */
tabtype = TABTYPE_KERNEL;
set_match(COL_FSTYPE, optarg);
break;
case 'r':
- scols_flags &= ~FMNT_TREE; /* disable the default */
- scols_flags |= FMNT_RAW; /* enable raw */
+ flags &= ~FL_TREE; /* disable the default */
+ flags |= FL_RAW; /* enable raw */
break;
case 'l':
- scols_flags &= ~FMNT_TREE; /* disable the default */
+ flags &= ~FL_TREE; /* disable the default */
break;
case 'n':
- scols_flags |= FMNT_NOHEADINGS;
+ flags |= FL_NOHEADINGS;
break;
case 'N':
tabtype = TABTYPE_KERNEL;
|| get_match(COL_TARGET)
|| get_match(COL_SOURCE)
|| get_match(COL_MAJMIN)))
- scols_flags &= ~FMNT_TREE;
+ flags &= ~FL_TREE;
if (!(flags & FL_NOSWAPMATCH) &&
!get_match(COL_TARGET) && get_match(COL_SOURCE)) {
if (!tb)
goto leave;
- if ((scols_flags & FMNT_TREE) && (ntabfiles > 1 || !tab_is_tree(tb)))
- scols_flags &= ~FMNT_TREE;
+ if ((flags & FL_TREE) && (ntabfiles > 1 || !tab_is_tree(tb)))
+ flags &= ~FL_TREE;
cache = mnt_new_cache();
if (!cache) {
warn(_("failed to initialize output table"));
goto leave;
}
- scols_table_set_raw(table, !!(scols_flags & FMNT_RAW));
- scols_table_set_export(table, !!(scols_flags & FMNT_EXPORT));
- scols_table_set_ascii(table, !!(scols_flags & FMNT_ASCII));
- scols_table_set_no_headings(table, !!(scols_flags & FMNT_NOHEADINGS));
- scols_table_set_tree(table, !!(scols_flags & FMNT_TREE));
+ scols_table_set_raw(table, !!(flags & FL_RAW));
+ scols_table_set_export(table, !!(flags & FL_EXPORT));
+ scols_table_set_ascii(table, !!(flags & FL_ASCII));
+ scols_table_set_no_headings(table, !!(flags & FL_NOHEADINGS));
for (i = 0; i < ncolumns; i++) {
int fl = get_column_flags(i);
int id = get_column_id(i);
- if (!(scols_flags & FMNT_TREE))
+ if (!(flags & FL_TREE))
fl &= ~SCOLS_FL_TREE;
if (!(flags & FL_POLL) && is_tabdiff_column(id)) {
/* poll mode (accept the first tabfile only) */
rc = poll_table(tb, tabfiles ? *tabfiles : _PATH_PROC_MOUNTINFO, timeout, table, direction);
- } else if ((scols_flags & FMNT_TREE) && !(flags & FL_SUBMOUNTS)) {
+ } else if ((flags & FL_TREE) && !(flags & FL_SUBMOUNTS)) {
/* whole tree */
rc = create_treenode(table, tb, NULL, NULL);
} else {