diff options
| author | Eric Andersen <andersen@codepoet.org> | 1999-11-09 01:47:36 +0000 |
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 1999-11-09 01:47:36 +0000 |
| commit | 50d6360771be509737bb55b2cc5bc5e25f2a4fea (patch) | |
| tree | 81d4cfe9ec9b5281924f678c28f61542616a3db7 /coreutils | |
| parent | fbb39c83b69d6c4de943c0b7374000339635d13d (diff) | |
| download | busybox-w32-50d6360771be509737bb55b2cc5bc5e25f2a4fea.tar.gz busybox-w32-50d6360771be509737bb55b2cc5bc5e25f2a4fea.tar.bz2 busybox-w32-50d6360771be509737bb55b2cc5bc5e25f2a4fea.zip | |
Stuff
Diffstat (limited to 'coreutils')
| -rw-r--r-- | coreutils/ls.c | 61 | ||||
| -rw-r--r-- | coreutils/rm.c | 2 |
2 files changed, 14 insertions, 49 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c index 4eb486f87..f09cbbc22 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | * 1. requires lstat (BSD) - how do you do it without? | 40 | * 1. requires lstat (BSD) - how do you do it without? |
| 41 | */ | 41 | */ |
| 42 | 42 | ||
| 43 | //#define FEATURE_USERNAME /* show username/groupnames (libc6 uses NSS) */ | 43 | #define FEATURE_USERNAME /* show username/groupnames (bypasses libc6 NSS) */ |
| 44 | #define FEATURE_TIMESTAMPS /* show file timestamps */ | 44 | #define FEATURE_TIMESTAMPS /* show file timestamps */ |
| 45 | #define FEATURE_AUTOWIDTH /* calculate terminal & column widths */ | 45 | #define FEATURE_AUTOWIDTH /* calculate terminal & column widths */ |
| 46 | #define FEATURE_FILETYPECHAR /* enable -p and -F */ | 46 | #define FEATURE_FILETYPECHAR /* enable -p and -F */ |
| @@ -64,10 +64,6 @@ | |||
| 64 | #include <dirent.h> | 64 | #include <dirent.h> |
| 65 | #include <errno.h> | 65 | #include <errno.h> |
| 66 | #include <stdio.h> | 66 | #include <stdio.h> |
| 67 | #ifdef FEATURE_USERNAME | ||
| 68 | #include <pwd.h> | ||
| 69 | #include <grp.h> | ||
| 70 | #endif | ||
| 71 | #ifdef FEATURE_TIMESTAMPS | 67 | #ifdef FEATURE_TIMESTAMPS |
| 72 | #include <time.h> | 68 | #include <time.h> |
| 73 | #endif | 69 | #endif |
| @@ -83,27 +79,6 @@ | |||
| 83 | #define MINOR(dev) ((dev)&0xff) | 79 | #define MINOR(dev) ((dev)&0xff) |
| 84 | #endif | 80 | #endif |
| 85 | 81 | ||
| 86 | #define MODE1 "rwxrwxrwx" | ||
| 87 | #define MODE0 "---------" | ||
| 88 | #define SMODE1 "..s..s..t" | ||
| 89 | #define SMODE0 "..S..S..T" | ||
| 90 | |||
| 91 | /* The 9 mode bits to test */ | ||
| 92 | |||
| 93 | static const mode_t MBIT[] = { | ||
| 94 | S_IRUSR, S_IWUSR, S_IXUSR, | ||
| 95 | S_IRGRP, S_IWGRP, S_IXGRP, | ||
| 96 | S_IROTH, S_IWOTH, S_IXOTH | ||
| 97 | }; | ||
| 98 | |||
| 99 | /* The special bits. If set, display SMODE0/1 instead of MODE0/1 */ | ||
| 100 | |||
| 101 | static const mode_t SBIT[] = { | ||
| 102 | 0, 0, S_ISUID, | ||
| 103 | 0, 0, S_ISGID, | ||
| 104 | 0, 0, S_ISVTX | ||
| 105 | }; | ||
| 106 | |||
| 107 | #define FMT_AUTO 0 | 82 | #define FMT_AUTO 0 |
| 108 | #define FMT_LONG 1 /* one record per line, extended info */ | 83 | #define FMT_LONG 1 /* one record per line, extended info */ |
| 109 | #define FMT_SINGLE 2 /* one record per line */ | 84 | #define FMT_SINGLE 2 /* one record per line */ |
| @@ -216,45 +191,35 @@ static void list_single(const char *name, struct stat *info, const char *fullnam | |||
| 216 | 191 | ||
| 217 | if (display_fmt == FMT_LONG) { | 192 | if (display_fmt == FMT_LONG) { |
| 218 | mode_t mode = info->st_mode; | 193 | mode_t mode = info->st_mode; |
| 219 | int i; | ||
| 220 | |||
| 221 | scratch[0] = TYPECHAR(mode); | ||
| 222 | for (i=0; i<9; i++) | ||
| 223 | if (mode & SBIT[i]) | ||
| 224 | scratch[i+1] = (mode & MBIT[i]) | ||
| 225 | ? SMODE1[i] | ||
| 226 | : SMODE0[i]; | ||
| 227 | else | ||
| 228 | scratch[i+1] = (mode & MBIT[i]) | ||
| 229 | ? MODE1[i] | ||
| 230 | : MODE0[i]; | ||
| 231 | newline(); | 194 | newline(); |
| 232 | wr(scratch, 10); | 195 | wr(modeString(mode), 10); |
| 233 | column=10; | 196 | column=10; |
| 234 | writenum((long)info->st_nlink,(short)4); | 197 | writenum((long)info->st_nlink,(short)5); |
| 235 | fputs(" ", stdout); | 198 | fputs(" ", stdout); |
| 236 | #ifdef FEATURE_USERNAME | 199 | #ifdef FEATURE_USERNAME |
| 237 | if (!(opts & DISP_NUMERIC)) { | 200 | if (!(opts & DISP_NUMERIC)) { |
| 238 | struct passwd *pw = getpwuid(info->st_uid); | 201 | scratch[8]='\0'; |
| 239 | if (pw) | 202 | my_getpwuid( scratch, info->st_uid); |
| 240 | fputs(pw->pw_name, stdout); | 203 | if (*scratch) |
| 204 | fputs(scratch, stdout); | ||
| 241 | else | 205 | else |
| 242 | writenum((long)info->st_uid,(short)0); | 206 | writenum((long)info->st_uid,(short)0); |
| 243 | } else | 207 | } else |
| 244 | #endif | 208 | #endif |
| 245 | writenum((long)info->st_uid,(short)0); | 209 | writenum((long)info->st_uid,(short)0); |
| 246 | tab(24); | 210 | tab(16); |
| 247 | #ifdef FEATURE_USERNAME | 211 | #ifdef FEATURE_USERNAME |
| 248 | if (!(opts & DISP_NUMERIC)) { | 212 | if (!(opts & DISP_NUMERIC)) { |
| 249 | struct group *gr = getgrgid(info->st_gid); | 213 | scratch[8]='\0'; |
| 250 | if (gr) | 214 | my_getgrgid( scratch, info->st_gid); |
| 251 | fputs(gr->gr_name, stdout); | 215 | if (*scratch) |
| 216 | fputs(scratch, stdout); | ||
| 252 | else | 217 | else |
| 253 | writenum((long)info->st_gid,(short)0); | 218 | writenum((long)info->st_gid,(short)0); |
| 254 | } else | 219 | } else |
| 255 | #endif | 220 | #endif |
| 256 | writenum((long)info->st_gid,(short)0); | 221 | writenum((long)info->st_gid,(short)0); |
| 257 | tab(33); | 222 | tab(17); |
| 258 | if (S_ISBLK(mode) || S_ISCHR(mode)) { | 223 | if (S_ISBLK(mode) || S_ISCHR(mode)) { |
| 259 | writenum((long)MAJOR(info->st_rdev),(short)3); | 224 | writenum((long)MAJOR(info->st_rdev),(short)3); |
| 260 | fputs(", ", stdout); | 225 | fputs(", ", stdout); |
diff --git a/coreutils/rm.c b/coreutils/rm.c index f49ada5e1..077e792f9 100644 --- a/coreutils/rm.c +++ b/coreutils/rm.c | |||
| @@ -84,7 +84,7 @@ extern int rm_main(int argc, char **argv) | |||
| 84 | 84 | ||
| 85 | while (argc-- > 0) { | 85 | while (argc-- > 0) { |
| 86 | srcName = *(argv++); | 86 | srcName = *(argv++); |
| 87 | if (recursiveAction( srcName, recursiveFlag, TRUE, TRUE, | 87 | if (recursiveAction( srcName, recursiveFlag, FALSE, TRUE, |
| 88 | fileAction, dirAction) == FALSE) { | 88 | fileAction, dirAction) == FALSE) { |
| 89 | exit( FALSE); | 89 | exit( FALSE); |
| 90 | } | 90 | } |
