summaryrefslogtreecommitdiff
path: root/warnquota.c
diff options
context:
space:
mode:
authorjkar8572 <jkar8572>2003-07-29 20:11:35 +0000
committerjkar8572 <jkar8572>2003-07-29 20:11:35 +0000
commitc3e5a79f06cc0e8e5bc2886c374306cbb395ef27 (patch)
tree2ef3b7338397904cc7d5ddcd6c88ca6091d0ba3c /warnquota.c
parent6e29c7a8854c14be88eb9c90b208e8402d3fdbdd (diff)
Fixed edquota -f option (Jan Kara)
Fixed warnquota formatting (Jan Kara) Added -s option (smart choice of units) to warnquota (Jan Kara) Updated documentation of quotactl call (Jan Kara)
Diffstat (limited to 'warnquota.c')
-rw-r--r--warnquota.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/warnquota.c b/warnquota.c
index 220f9f8..c49f743 100644
--- a/warnquota.c
+++ b/warnquota.c
@@ -10,7 +10,7 @@
*
* Author: Marco van Wieringen <mvw@planets.elm.net>
*
- * Version: $Id: warnquota.c,v 1.12 2003/02/14 18:50:17 jkar8572 Exp $
+ * Version: $Id: warnquota.c,v 1.13 2003/07/29 20:11:36 jkar8572 Exp $
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -76,6 +76,7 @@
#define FL_USER 1
#define FL_GROUP 2
#define FL_NOAUTOFS 4
+#define FL_SHORTNUMS 8
struct usage {
char *devicename;
@@ -222,6 +223,7 @@ int mail_user(struct offenderlist *offender, struct configparams *config)
FILE *fp;
int cnt, status;
char timebuf[MAXTIMELEN];
+ char numbuf[3][MAXNUMLEN];
struct util_dqblk *dqb;
char *to;
@@ -274,17 +276,21 @@ int mail_user(struct offenderlist *offender, struct configparams *config)
difftime2str(dqb->dqb_btime, timebuf);
else
timebuf[0] = '\0';
- fprintf(fp, "%c%c%8Lu%8Lu%8Lu%7s",
+ space2str(toqb(dqb->dqb_curspace), numbuf[0], flags & FL_SHORTNUMS);
+ space2str(dqb->dqb_bsoftlimit, numbuf[1], flags & FL_SHORTNUMS);
+ space2str(dqb->dqb_bhardlimit, numbuf[2], flags & FL_SHORTNUMS);
+ fprintf(fp, "%c%c %7s %7s %7s %6s",
dqb->dqb_bsoftlimit && toqb(dqb->dqb_curspace) >= dqb->dqb_bsoftlimit ? '+' : '-',
dqb->dqb_isoftlimit && dqb->dqb_curinodes >= dqb->dqb_isoftlimit ? '+' : '-',
- (long long)toqb(dqb->dqb_curspace), (long long)dqb->dqb_bsoftlimit,
- (long long)dqb->dqb_bhardlimit, timebuf);
+ numbuf[0], numbuf[1], numbuf[2], timebuf);
if (dqb->dqb_isoftlimit && dqb->dqb_isoftlimit <= dqb->dqb_curinodes)
difftime2str(dqb->dqb_itime, timebuf);
else
timebuf[0] = '\0';
- fprintf(fp, " %6Lu%6Lu%6Lu%7s\n\n", (long long)dqb->dqb_curinodes,
- (long long)dqb->dqb_isoftlimit, (long long)dqb->dqb_ihardlimit, timebuf);
+ number2str(dqb->dqb_curinodes, numbuf[0], flags & FL_SHORTNUMS);
+ number2str(dqb->dqb_isoftlimit, numbuf[1], flags & FL_SHORTNUMS);
+ number2str(dqb->dqb_ihardlimit, numbuf[2], flags & FL_SHORTNUMS);
+ fprintf(fp, " %7s %5s %5s %6s\n\n", numbuf[0], numbuf[1], numbuf[2], timebuf);
}
if (offender->offender_type == USRQUOTA)
if (config->user_signature)
@@ -599,14 +605,16 @@ void warn_quota(void)
/* Print usage information */
static void usage(void)
{
- errstr(_("Usage:\n warnquota [-ugi] [-F quotaformat] [-c configfile] [-q quotatabfile]\n"));
+ errstr(_("Usage:\n warnquota [-ugsi] [-F quotaformat] [-c configfile] [-q quotatabfile]\n"));
+ fprintf(stderr, _("Bugs to %s\n"), MY_EMAIL);
+ exit(1);
}
static void parse_options(int argcnt, char **argstr)
{
int ret;
- while ((ret = getopt(argcnt, argstr, "ugVF:hc:q:a:i")) != -1) {
+ while ((ret = getopt(argcnt, argstr, "ugVF:hc:q:a:is")) != -1) {
switch (ret) {
case '?':
case 'h':
@@ -636,6 +644,9 @@ static void parse_options(int argcnt, char **argstr)
case 'i':
flags |= FL_NOAUTOFS;
break;
+ case 's':
+ flags |= FL_SHORTNUMS;
+ break;
}
}
if (!(flags & FL_USER) && !(flags & FL_GROUP))