summaryrefslogtreecommitdiffhomepage
path: root/id.c
diff options
context:
space:
mode:
authorMark Whitley <markw@lineo.com>2000-07-19 19:38:13 +0000
committerMark Whitley <markw@lineo.com>2000-07-19 19:38:13 +0000
commitaa4f108338edeac0c69962aea5607a2c1d5ff0ec (patch)
tree00e59087a8a429372e018f08b2e4716f3f6575b3 /id.c
parent27a804246af28c5d3d1f69d93049e3e21492bc48 (diff)
Converted option parsing to getopt() and made some minor formatting changes.
Diffstat (limited to 'id.c')
-rw-r--r--id.c39
1 files changed, 21 insertions, 18 deletions
diff --git a/id.c b/id.c
index 56a2e279f..4c524a225 100644
--- a/id.c
+++ b/id.c
@@ -33,28 +33,30 @@ extern int id_main(int argc, char **argv)
int no_user = 0, no_group = 0, print_real = 0;
char *cp, *user, *group;
unsigned long gid;
+ int opt;
cp = user = group = NULL;
- argc--; argv++;
-
- while (argc > 0) {
- cp = *argv;
- if (*cp == '-') {
- switch (*++cp) {
- case 'u': no_group = 1; break;
- case 'g': no_user = 1; break;
- case 'r': print_real = 1; break;
- default: usage(id_usage);
- }
- } else {
- user = cp;
+ while ((opt = getopt(argc, argv, "ugr")) > 0) {
+ switch (opt) {
+ case 'u':
+ no_group++;
+ break;
+ case 'g':
+ no_user++;
+ break;
+ case 'r':
+ print_real++;
+ break;
+ default:
+ usage(id_usage);
}
- argc--; argv++;
}
if (no_user && no_group) usage(id_usage);
+ user = argv[optind];
+
if (user == NULL) {
user = xmalloc(9);
group = xmalloc(9);
@@ -71,12 +73,13 @@ extern int id_main(int argc, char **argv)
my_getgrgid(group, gid);
}
- if (no_group) printf("%lu\n", my_getpwnam(user));
- else if (no_user) printf("%lu\n", my_getgrnam(group));
+ if (no_group)
+ printf("%lu\n", my_getpwnam(user));
+ else if (no_user)
+ printf("%lu\n", my_getgrnam(group));
else
printf("uid=%lu(%s) gid=%lu(%s)\n",
- my_getpwnam(user), user, my_getgrnam(group), group);
-
+ my_getpwnam(user), user, my_getgrnam(group), group);
return(0);
}