diff options
Diffstat (limited to 'src/fstabinfo.c')
-rw-r--r-- | src/fstabinfo.c | 162 |
1 files changed, 77 insertions, 85 deletions
diff --git a/src/fstabinfo.c b/src/fstabinfo.c index de37383b..f435d5a7 100644 --- a/src/fstabinfo.c +++ b/src/fstabinfo.c @@ -43,104 +43,96 @@ #ifdef HAVE_GETMNTENT static struct mntent *getmntfile (FILE *fp, const char *file) { - struct mntent *ent; + struct mntent *ent; - while ((ent = getmntent (fp))) - if (strcmp (file, ent->mnt_dir) == 0) - return (ent); + while ((ent = getmntent (fp))) + if (strcmp (file, ent->mnt_dir) == 0) + return (ent); - return (NULL); + return (NULL); } #endif int main (int argc, char **argv) { - int i; + int i; #ifdef HAVE_GETMNTENT - FILE *fp; - struct mntent *ent; + FILE *fp; + struct mntent *ent; #else - struct fstab *ent; + struct fstab *ent; #endif - int result = EXIT_FAILURE; - char *p; - char *token; - int n = 0; + int result = EXIT_FAILURE; + char *p; + char *token; + int n = 0; - for (i = 1; i < argc; i++) - { + for (i = 1; i < argc; i++) { #ifdef HAVE_GETMNTENT - fp = setmntent ("/etc/fstab", "r"); + fp = setmntent ("/etc/fstab", "r"); #endif - if (strcmp (argv[i], "--fstype") == 0 && i + 1 < argc) - { - i++; - p = argv[i]; - while ((token = strsep (&p, ","))) - while ((ent = GET_ENT)) - if (strcmp (token, ENT_TYPE (ent)) == 0) - printf ("%s\n", ENT_FILE (ent)); - result = EXIT_SUCCESS; - } - - if (strcmp (argv[i], "--mount-cmd") == 0 && i + 1 < argc) - { - i++; - if ((ent = GET_ENT_FILE (argv[i])) == NULL) - continue; - printf ("-o %s -t %s %s %s\n", ENT_OPTS (ent), ENT_TYPE (ent), - ENT_DEVICE (ent), ENT_FILE (ent)); - result = EXIT_SUCCESS; - } - - if (strcmp (argv[i], "--opts") == 0 && i + 1 < argc) - { - i++; - if ((ent = GET_ENT_FILE (argv[i])) == NULL) - continue; - printf ("%s\n", ENT_OPTS (ent)); - result = EXIT_SUCCESS; - } - - if (strcmp (argv[i], "--passno") == 0 && i + 1 < argc) - { - i++; - switch (argv[i][0]) - { - case '=': - case '<': - case '>': - if (sscanf (argv[i] + 1, "%d", &n) != 1) - eerrorx ("%s: invalid passno %s", argv[0], argv[i] + 1); - - while ((ent = GET_ENT)) - { - if (((argv[i][0] == '=' && n == ENT_PASS (ent)) || - (argv[i][0] == '<' && n > ENT_PASS (ent)) || - (argv[i][0] == '>' && n < ENT_PASS (ent))) && - strcmp (ENT_FILE (ent), "none") != 0) - printf ("%s\n", ENT_FILE (ent)); - } - - default: - if ((ent = GET_ENT_FILE (argv[i])) == NULL) - continue; - printf ("%d\n", ENT_PASS (ent)); - result = EXIT_SUCCESS; - } - } - - END_ENT; - - if (result != EXIT_SUCCESS) - { - eerror ("%s: unknown option `%s'", basename (argv[0]), argv[i]); - break; - } - - } - - exit (result); + if (strcmp (argv[i], "--fstype") == 0 && i + 1 < argc) { + i++; + p = argv[i]; + while ((token = strsep (&p, ","))) + while ((ent = GET_ENT)) + if (strcmp (token, ENT_TYPE (ent)) == 0) + printf ("%s\n", ENT_FILE (ent)); + result = EXIT_SUCCESS; + } + + if (strcmp (argv[i], "--mount-cmd") == 0 && i + 1 < argc) { + i++; + if ((ent = GET_ENT_FILE (argv[i])) == NULL) + continue; + printf ("-o %s -t %s %s %s\n", ENT_OPTS (ent), ENT_TYPE (ent), + ENT_DEVICE (ent), ENT_FILE (ent)); + result = EXIT_SUCCESS; + } + + if (strcmp (argv[i], "--opts") == 0 && i + 1 < argc) { + i++; + if ((ent = GET_ENT_FILE (argv[i])) == NULL) + continue; + printf ("%s\n", ENT_OPTS (ent)); + result = EXIT_SUCCESS; + } + + if (strcmp (argv[i], "--passno") == 0 && i + 1 < argc) { + i++; + switch (argv[i][0]) { + case '=': + case '<': + case '>': + if (sscanf (argv[i] + 1, "%d", &n) != 1) + eerrorx ("%s: invalid passno %s", argv[0], argv[i] + 1); + + while ((ent = GET_ENT)) { + if (((argv[i][0] == '=' && n == ENT_PASS (ent)) || + (argv[i][0] == '<' && n > ENT_PASS (ent)) || + (argv[i][0] == '>' && n < ENT_PASS (ent))) && + strcmp (ENT_FILE (ent), "none") != 0) + printf ("%s\n", ENT_FILE (ent)); + } + + default: + if ((ent = GET_ENT_FILE (argv[i])) == NULL) + continue; + printf ("%d\n", ENT_PASS (ent)); + result = EXIT_SUCCESS; + } + } + + END_ENT; + + if (result != EXIT_SUCCESS) { + eerror ("%s: unknown option `%s'", basename (argv[0]), argv[i]); + break; + } + + } + + exit (result); } |