Skip to content

Commit

Permalink
am 008cbcd: Merge "Add -F for classify to ls"
Browse files Browse the repository at this point in the history
* commit '008cbcd082f21683b3b53d1ca84725b72b2f90b6':
  Add -F for classify to ls
  • Loading branch information
kruton authored and Android Git Automerger committed Jul 15, 2011
2 parents a38ec2b + 008cbcd commit ca0a6f0
Showing 1 changed file with 24 additions and 2 deletions.
26 changes: 24 additions & 2 deletions toolbox/ls.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ static void strlist_sort( strlist_t *list )
#define LIST_RECURSIVE (1 << 2)
#define LIST_DIRECTORIES (1 << 3)
#define LIST_SIZE (1 << 4)
#define LIST_CLASSIFY (1 << 6)

// fwd
static int listpath(const char *name, int flags);
Expand Down Expand Up @@ -253,7 +254,27 @@ static int listfile_size(const char *path, const char *filename, int flags)
}

/* blocks are 512 bytes, we want output to be KB */
printf("%lld %s\n", s.st_blocks / 2, filename);
if ((flags & LIST_SIZE) != 0) {
printf("%lld ", s.st_blocks / 2);
}

if ((flags & LIST_CLASSIFY) != 0) {
char filetype = mode2kind(s.st_mode);
if (filetype != 'l') {
printf("%c ", filetype);
} else {
struct stat link_dest;
if (!stat(path, &link_dest)) {
printf("l%c ", mode2kind(link_dest.st_mode));
} else {
fprintf(stderr, "stat '%s' failed: %s\n", path, strerror(errno));
printf("l? ");
}
}
}

printf("%s\n", filename);

return 0;
}

Expand Down Expand Up @@ -330,7 +351,7 @@ static int listfile_long(const char *path, int flags)

static int listfile(const char *dirname, const char *filename, int flags)
{
if ((flags & (LIST_LONG | LIST_SIZE)) == 0) {
if ((flags & (LIST_LONG | LIST_SIZE | LIST_CLASSIFY)) == 0) {
printf("%s\n", filename);
return 0;
}
Expand Down Expand Up @@ -480,6 +501,7 @@ int ls_main(int argc, char **argv)
case 'R': flags |= LIST_RECURSIVE; break;
case 'd': flags |= LIST_DIRECTORIES; break;
case 'a': flags |= LIST_ALL; break;
case 'F': flags |= LIST_CLASSIFY; break;
default:
fprintf(stderr, "%s: Unknown option '-%c'. Aborting.\n", "ls", arg[0]);
exit(1);
Expand Down

0 comments on commit ca0a6f0

Please sign in to comment.