X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=dus.c;h=2bb1e898d10b8c49843ae787996a61b780f5ddf8;hb=442b86d6bd7de1b6ad580e66ea76065f99c94f07;hp=872f5c15c23a64f3aa56b109fde4a0317c849de0;hpb=59d5b36b07a5632d24dc99839a96b7371de3d445;p=dus.git diff --git a/dus.c b/dus.c index 872f5c1..2bb1e89 100644 --- a/dus.c +++ b/dus.c @@ -188,13 +188,14 @@ struct entry_node { }; struct entry_node *push_entry(char *name, struct entry_node *head) { + char tmp_name[PATH_MAX]; struct entry_node *result; int isdir; result = safe_malloc(sizeof(struct entry_node)); result->size = entry_size(name, &isdir); if(isdir) { - result->name = safe_malloc(sizeof(char) * strlen(name) + 2); - sprintf(result->name, "%s/", name); + snprintf(tmp_name, PATH_MAX, "%s/", name); + result->name = strdup(tmp_name); } else { result->name = strdup(name); } @@ -294,25 +295,25 @@ void fancy_print(char *buffer, size_t buffer_size, if(size < 1024) { snprintf(buffer, buffer_size, - "% 8d -- %s\n", + "% 8d %s\n", ((int) size), filename); } else if(size < 1024 * 1024) { snprintf(buffer, buffer_size, - "% 7.1fK -- %s\n", + "% 7.1fK %s\n", ((double) (size))/(1024.0), filename); } else if(size < 1024 * 1024 * 1024) { snprintf(buffer, buffer_size, - "% 7.1fM -- %s\n", + "% 7.1fM %s\n", ((double) (size))/(1024.0 * 1024), filename); } else { snprintf(buffer, buffer_size, - "% 7.1fG -- %s\n", + "% 7.1fG %s\n", ((double) (size))/(1024.0 * 1024.0 * 1024.0), filename); }