summaryrefslogtreecommitdiff
path: root/quotasys.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2013-10-02 23:10:49 +0200
committerJan Kara <jack@suse.cz>2013-10-03 11:48:39 +0200
commita58761459f7485f275ecca5fd26b9a63c33f1089 (patch)
tree2104160ece046eec6589809e0ac22d5f6118b62e /quotasys.c
parent246dd4960e6878f3ff2e1fe34ef978bcb21e8d03 (diff)
Add support for CVS and XML output formats to repquota(8)
JK: Fixup localization and handling of multiple output filesystems / types. Signed-off-by: Jonathan Overholt <jonathan@overholt.org> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'quotasys.c')
-rw-r--r--quotasys.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/quotasys.c b/quotasys.c
index e583437..a1ac392 100644
--- a/quotasys.c
+++ b/quotasys.c
@@ -37,6 +37,7 @@
#define min(x,y) (((x) < (y)) ? (x) : (y))
#define QFMT_NAMES 5
+#define QOFMT_NAMES 3
static char extensions[MAXQUOTAS + 2][20] = INITQFNAMES;
static char *basenames[] = INITQFBASENAMES;
@@ -46,6 +47,10 @@ static char *fmtnames[] = { "vfsold",
"rpc",
"xfs",
};
+static char *ofmtnames[] = { "default",
+ "csv",
+ "xml"
+};
/*
* Check for various kinds of NFS filesystem
@@ -240,6 +245,32 @@ char *fmt2name(int fmt)
}
/*
+ * Convert output format name to number
+ */
+int name2ofmt(char *str)
+{
+ int fmt;
+
+ for (fmt = 0; fmt < QOFMT_NAMES; fmt++)
+ if (!strcmp(str, ofmtnames[fmt]))
+ return fmt;
+ errstr(_("Unknown output format: %s\nSupported formats are:\n\
+ default - default\n\
+ csv - comma-separated values\n\
+ xml - simple XML\n"), str);
+ return QOF_ERROR;
+}
+
+/*
+ * Convert output format number to name
+ */
+char *ofmt2name(int fmt)
+{
+ return ofmtnames[fmt];
+}
+
+
+/*
* Convert kernel to utility quota format number
*/
static int kern2utilfmt(int kernfmt)