signal(SIGWINCH, handle_signal);
/* Initialize ncurses and user input settings */
initscr();
+ start_color();
+ init_pair(DIRECTORY, COLOR_BLUE, COLOR_BLACK);
raw();
keypad(stdscr, TRUE);
noecho();
//list files
while (i < vec_size(frame->workdir->vfiles)){
char* filename = (char*)vec_at(frame->workdir->vfiles, i);
+ bool dir = is_dir(filename);
if(strcmp(filename, "..") != 0) filename = &(filename[pathlength]);
if(filename[0] == '/') filename = &(filename[1]);
if(frame == state_get_focused_frame() && i == frame->workdir->idx){
wattron(frame->p_win, A_STANDOUT);
wattron(frame->p_win, A_BOLD);
}
+ if(dir) wattron(frame->p_win, COLOR_PAIR(DIRECTORY));
mvwaddnstr(frame->p_win, FrameTopBuffer+i-frame->workdir->top_index, 1, filename, cols-2);
if(frame == state_get_focused_frame() && i == frame->workdir->idx){
wattroff(frame->p_win, A_STANDOUT);
wattroff(frame->p_win, A_BOLD);
}
+ if(dir) wattroff(frame->p_win, COLOR_PAIR(DIRECTORY));
i++;
if((FrameTopBuffer+i-frame->workdir->top_index+FrameBotBuffer) > rows) break;
}
static void get_files(int windex);
-static bool is_dir(char* path) {
+bool is_dir(char* path) {
struct stat s;
return ((stat(path, &s) == 0) && (s.st_mode & S_IFDIR));
}
#include <stdbool.h>
#include "vec.h"
-static bool is_dir(char* path);
-
void workdir_deinit(void);
typedef struct {
void workdir_ls(WorkDir_T*);
+bool is_dir(char* path);
+
#endif /* WORKDIR_H */