mountpoint: -q should not print errors - ubase - suckless linux base utils | |
git clone git://git.suckless.org/ubase | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 78ddef361c0a87e1a76c0ff15e75de63b8954818 | |
parent 7f42fe77c38b4a4b3bf3aed810f51d0bd23f52dd | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Sun, 10 May 2015 14:16:58 +0200 | |
mountpoint: -q should not print errors | |
Diffstat: | |
M mountpoint.c | 25 ++++++++++++++++++++----- | |
1 file changed, 20 insertions(+), 5 deletions(-) | |
--- | |
diff --git a/mountpoint.c b/mountpoint.c | |
@@ -42,20 +42,29 @@ main(int argc, char *argv[]) | |
if (argc < 1) | |
usage(); | |
- if (stat(argv[0], &st1) < 0) | |
+ if (stat(argv[0], &st1) < 0) { | |
+ if (qflag) | |
+ return 1; | |
eprintf("stat %s:", argv[0]); | |
+ } | |
if (xflag) { | |
- if (!S_ISBLK(st1.st_mode)) | |
+ if (!S_ISBLK(st1.st_mode)) { | |
+ if (qflag) | |
+ return 1; | |
eprintf("stat: %s: not a block device\n", | |
argv[0]); | |
+ } | |
printf("%u:%u\n", major(st1.st_rdev), | |
minor(st1.st_rdev)); | |
return 0; | |
} | |
- if (!S_ISDIR(st1.st_mode)) | |
+ if (!S_ISDIR(st1.st_mode)) { | |
+ if (qflag) | |
+ return 1; | |
eprintf("stat %s: not a directory\n", argv[0]); | |
+ } | |
if (dflag) { | |
printf("%u:%u\n", major(st1.st_dev), | |
@@ -64,11 +73,17 @@ main(int argc, char *argv[]) | |
} | |
fp = setmntent("/proc/mounts", "r"); | |
- if (!fp) | |
+ if (!fp) { | |
+ if (qflag) | |
+ return 1; | |
eprintf("setmntent %s:", "/proc/mounts"); | |
+ } | |
while ((me = getmntent(fp)) != NULL) { | |
- if (stat(me->mnt_dir, &st2) < 0) | |
+ if (stat(me->mnt_dir, &st2) < 0) { | |
+ if (qflag) | |
+ return 1; | |
eprintf("stat %s:", me->mnt_dir); | |
+ } | |
if (st1.st_dev == st2.st_dev && | |
st1.st_ino == st2.st_ino) | |
break; |