Support arg parsing for uname

This commit is contained in:
K. Lange 2018-02-25 23:05:30 +09:00 committed by Kevin Lange
parent 89f2a45ad9
commit 1d4989aa5f
1 changed files with 30 additions and 28 deletions

58
uname.c
View File

@ -48,36 +48,38 @@ int main(int argc, char * argv[]) {
int flags = 0; int flags = 0;
int space = 0; int space = 0;
#if 0 for (int i = 1; i < argc; ++i) {
while ((c = getopt(argc, argv, "ahmnrsv")) != -1) { if (argv[i][0] == '-') {
switch (c) { char *c = &argv[i][1];
case 'a': while (*c) {
flags |= FLAG_ALL; switch (*c) {
break; case 'a':
case 's': flags |= FLAG_ALL;
flags |= FLAG_SYSNAME; break;
break; case 's':
case 'n': flags |= FLAG_SYSNAME;
flags |= FLAG_NODENAME; break;
break; case 'n':
case 'r': flags |= FLAG_NODENAME;
flags |= FLAG_RELEASE; break;
break; case 'r':
case 'v': flags |= FLAG_RELEASE;
flags |= FLAG_VERSION; break;
break; case 'v':
case 'm': flags |= FLAG_VERSION;
flags |= FLAG_MACHINE; break;
break; case 'm':
case 'h': flags |= FLAG_MACHINE;
default: break;
show_usage(argc, argv); case 'h':
break; default:
show_usage(argc, argv);
break;
}
c++;
}
} }
} }
#else
flags |= FLAG_ALL;
#endif
uname(&u); uname(&u);