diff options
author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-01-25 05:12:02 +0000 |
---|---|---|
committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-01-25 05:12:02 +0000 |
commit | a55be9f5a485628017731856865eaa33fa39fc0c (patch) | |
tree | 092433d84f312e08b8eb118b26b4fd02558eeca4 /id.c | |
parent | fba5c8f753dc822b3552927b736c6fd0e2619a92 (diff) | |
download | busybox-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.c | 24 |
1 files changed, 18 insertions, 6 deletions
@@ -31,6 +31,7 @@ | |||
31 | extern int id_main(int argc, char **argv) | 31 | extern 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 | ||