aboutsummaryrefslogtreecommitdiff
path: root/id.c
diff options
context:
space:
mode:
authorandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-01-25 05:12:02 +0000
committerandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-01-25 05:12:02 +0000
commita55be9f5a485628017731856865eaa33fa39fc0c (patch)
tree092433d84f312e08b8eb118b26b4fd02558eeca4 /id.c
parentfba5c8f753dc822b3552927b736c6fd0e2619a92 (diff)
downloadbusybox-w32-a55be9f5a485628017731856865eaa33fa39fc0c.tar.gz
busybox-w32-a55be9f5a485628017731856865eaa33fa39fc0c.tar.bz2
busybox-w32-a55be9f5a485628017731856865eaa33fa39fc0c.zip
Apply a patch from Brent Priddy <brent.priddy@adtran.com> to add
'id -n' support. -Erik git-svn-id: svn://busybox.net/trunk/busybox@1666 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'id.c')
-rw-r--r--id.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/id.c b/id.c
index 3a8e77a1f..59cfafa0a 100644
--- a/id.c
+++ b/id.c
@@ -31,6 +31,7 @@
31extern int id_main(int argc, char **argv) 31extern int id_main(int argc, char **argv)
32{ 32{
33 int no_user = 0, no_group = 0, print_real = 0; 33 int no_user = 0, no_group = 0, print_real = 0;
34 int name_not_number = 0;
34 char user[9], group[9]; 35 char user[9], group[9];
35 long gid; 36 long gid;
36 long pwnam, grnam; 37 long pwnam, grnam;
@@ -38,7 +39,7 @@ extern int id_main(int argc, char **argv)
38 39
39 gid = 0; 40 gid = 0;
40 41
41 while ((opt = getopt(argc, argv, "ugr")) > 0) { 42 while ((opt = getopt(argc, argv, "ugrn")) > 0) {
42 switch (opt) { 43 switch (opt) {
43 case 'u': 44 case 'u':
44 no_group++; 45 no_group++;
@@ -49,6 +50,9 @@ extern int id_main(int argc, char **argv)
49 case 'r': 50 case 'r':
50 print_real++; 51 print_real++;
51 break; 52 break;
53 case 'n':
54 name_not_number++;
55 break;
52 default: 56 default:
53 usage(id_usage); 57 usage(id_usage);
54 } 58 }
@@ -76,12 +80,20 @@ extern int id_main(int argc, char **argv)
76 if (gid == -1 || pwnam==-1 || grnam==-1) { 80 if (gid == -1 || pwnam==-1 || grnam==-1) {
77 error_msg_and_die("%s: No such user\n", user); 81 error_msg_and_die("%s: No such user\n", user);
78 } 82 }
79 if (no_group) 83
80 printf("%ld\n", pwnam); 84 if (no_group) {
81 else if (no_user) 85 if(name_not_number && user)
82 printf("%ld\n", grnam); 86 printf("%s\n",user);
83 else 87 else
88 printf("%ld\n", pwnam);
89 } else if (no_user) {
90 if(name_not_number && group)
91 printf("%s\n", group);
92 else
93 printf("%ld\n", grnam);
94 } else {
84 printf("uid=%ld(%s) gid=%ld(%s)\n", pwnam, user, grnam, group); 95 printf("uid=%ld(%s) gid=%ld(%s)\n", pwnam, user, grnam, group);
96 }
85 return(0); 97 return(0);
86} 98}
87 99