diff options
-rw-r--r-- | Changelog | 4 | ||||
-rw-r--r-- | TODO | 9 | ||||
-rw-r--r-- | cat.c | 4 | ||||
-rw-r--r-- | coreutils/cat.c | 4 | ||||
-rw-r--r-- | coreutils/ls.c | 27 | ||||
-rw-r--r-- | ls.c | 27 |
6 files changed, 49 insertions, 26 deletions
@@ -6,6 +6,10 @@ * Several options are now moved into busybox.defs.h * Now 'rm -R' and 'rm -r' both work. * dd now properly handles input beyond 1 block from stdin. + * Fixed a bug where tar unpacked everything a directories. Moved some code + from createPath into mkdir where it belonged, thereby making tar work properly. + * Fixed an off-by-one bug in cat. Given a list of file it wouldn't cat out the + last file in the list. -Erik Andrsen @@ -0,0 +1,9 @@ +TODO list for busybox in no particular order + +* Add in a mini syslogd +* Allow tar to create archives with sockets, devices, and other special files +* Add in a mini modprobe, insmod, rmmod +* poweroff +* Change init so halt, reboot (and poweroff) work with an initrd + when init is not PID 1 +* @@ -49,14 +49,12 @@ extern int cat_main(int argc, char **argv) argv++; while (argc-- > 0) { - file = fopen(*argv, "r"); + file = fopen(*(argv++), "r"); if (file == NULL) { perror(*argv); exit(FALSE); } print_file( file); - argc--; - argv++; } exit(TRUE); } diff --git a/coreutils/cat.c b/coreutils/cat.c index 1f4ef4af8..758a83e6b 100644 --- a/coreutils/cat.c +++ b/coreutils/cat.c @@ -49,14 +49,12 @@ extern int cat_main(int argc, char **argv) argv++; while (argc-- > 0) { - file = fopen(*argv, "r"); + file = fopen(*(argv++), "r"); if (file == NULL) { perror(*argv); exit(FALSE); } print_file( file); - argc--; - argv++; } exit(TRUE); } diff --git a/coreutils/ls.c b/coreutils/ls.c index 3b380671d..571c962c7 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c @@ -193,27 +193,34 @@ static void list_single(const char *name, struct stat *info, const char *fullnam fputs(" ", stdout); #ifdef BB_FEATURE_LS_USERNAME if (!(opts & DISP_NUMERIC)) { - scratch[8]='\0'; + scratch[0]='\0'; my_getpwuid( scratch, info->st_uid); + scratch[8]='\0'; if (*scratch) - fputs(scratch, stdout); - else - writenum((long)info->st_uid,(short)0); + wr(scratch,8); + else { + writenum((long) info->st_uid,(short)8); + fputs(" ", stdout); + } } else #endif - writenum((long)info->st_uid,(short)0); + { + writenum((long) info->st_uid,(short)8); + fputs(" ", stdout); + } tab(16); #ifdef BB_FEATURE_LS_USERNAME if (!(opts & DISP_NUMERIC)) { - scratch[8]='\0'; + scratch[0]='\0'; my_getgrgid( scratch, info->st_gid); + scratch[8]='\0'; if (*scratch) - fputs(scratch, stdout); - else - writenum((long)info->st_gid,(short)0); + wr(scratch,8); + else + writenum((long) info->st_gid,(short)8); } else #endif - writenum((long)info->st_gid,(short)0); + writenum((long) info->st_gid,(short)8); tab(17); if (S_ISBLK(mode) || S_ISCHR(mode)) { writenum((long)MAJOR(info->st_rdev),(short)3); @@ -193,27 +193,34 @@ static void list_single(const char *name, struct stat *info, const char *fullnam fputs(" ", stdout); #ifdef BB_FEATURE_LS_USERNAME if (!(opts & DISP_NUMERIC)) { - scratch[8]='\0'; + scratch[0]='\0'; my_getpwuid( scratch, info->st_uid); + scratch[8]='\0'; if (*scratch) - fputs(scratch, stdout); - else - writenum((long)info->st_uid,(short)0); + wr(scratch,8); + else { + writenum((long) info->st_uid,(short)8); + fputs(" ", stdout); + } } else #endif - writenum((long)info->st_uid,(short)0); + { + writenum((long) info->st_uid,(short)8); + fputs(" ", stdout); + } tab(16); #ifdef BB_FEATURE_LS_USERNAME if (!(opts & DISP_NUMERIC)) { - scratch[8]='\0'; + scratch[0]='\0'; my_getgrgid( scratch, info->st_gid); + scratch[8]='\0'; if (*scratch) - fputs(scratch, stdout); - else - writenum((long)info->st_gid,(short)0); + wr(scratch,8); + else + writenum((long) info->st_gid,(short)8); } else #endif - writenum((long)info->st_gid,(short)0); + writenum((long) info->st_gid,(short)8); tab(17); if (S_ISBLK(mode) || S_ISCHR(mode)) { writenum((long)MAJOR(info->st_rdev),(short)3); |