};
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);
}
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);
}