elem_t *elem = list->tab + i;
switch (elem->type) {
case type_unkn_e:
- set_color ((j == index) ? white : black);
- break;
+ set_color ((j == index) ? white : black);
+ break;
case type_block_e:
- set_color ((j == index) ? byellow : yellow);
- break;
+ set_color ((j == index) ? byellow : yellow);
+ break;
case type_char_e:
- set_color ((j == index) ? bmagenta : magenta);
- break;
+ set_color ((j == index) ? bmagenta : magenta);
+ break;
case type_dir_e:
- set_color ((j == index) ? bblue : blue);
- break;
+ set_color ((j == index) ? bblue : blue);
+ break;
case type_pipe_e:
- set_color ((j == index) ? bred : red);
- break;
+ set_color ((j == index) ? bred : red);
+ break;
case type_symb_e:
- set_color ((j == index) ? bcyan : cyan);
- break;
+ set_color ((j == index) ? bcyan : cyan);
+ break;
case type_reg_e:
- set_color ((j == index) ? black : white);
- break;
+ if ((elem->mode & 0111) == 0) {
+ set_color ((j == index) ? black : white);
+ } else {
+ set_color ((j == index) ? bgreen : green);
+ }
+ break;
case type_socket_e:
- set_color ((j == index) ? bred : red);
- break;
+ set_color ((j == index) ? bred : red);
+ break;
}
if (elem->selected) {
attron (A_BOLD);
list_t *_addelement (list_t *list, char *dirname, char *filename, type_t type)
{
- int i;
- size_t size = 0;
+ char *name = newfilename (dirname, filename);
+ struct stat sb;
+ if (STAT (name, &sb) == -1) {
+ VERBOSE (ERROR, fprintf (stderr, "can't stat file '%s'\n", name));
+ exit (1);
+ }
+ free (name);
+ size_t size = 0;
if (type == type_reg_e) {
- char *name = newfilename (dirname, filename);
- struct stat sb;
- if (STAT (name, &sb) == -1) {
- VERBOSE (ERROR, fprintf (stderr, "can't stat file '%s'\n", name));
- exit (1);
- }
size = sb.st_size;
- free (name);
}
list->nb++;
CHECKALLOC (list->tab);
memset (list->tab + list->nb - 1, 0, sizeof (elem_t));
elem_t * elem = list->tab;
+ int i;
for (i = list->nb - 1; i > 0; i--) {
if (strcmp ((list->tab + i - 1)->name, filename) < 0) {
elem = list->tab + i;
break;
} else {
+ (list->tab + i)->mode = (list->tab + i - 1)->mode;
(list->tab + i)->name = (list->tab + i - 1)->name;
(list->tab + i)->size = (list->tab + i - 1)->size;
(list->tab + i)->type = (list->tab + i - 1)->type;
}
}
+ elem->mode = 0777 & sb.st_mode;
elem->name = strdup (filename);
elem->size = size;
elem->type = type;
}
free (name);
- elem->mode = 0777 & sb.st_mode;
-
#ifdef WIN32
elem->uid = strdup ("");
#else /* Linux*/