fix get_file returning null

This commit is contained in:
Night Kaly 2024-03-09 19:46:15 +00:00
parent dca031c1f3
commit 30c70e119e
No known key found for this signature in database
GPG key ID: 8E829D3381CFEBBE
3 changed files with 15 additions and 10 deletions

10
ccc.c
View file

@ -139,7 +139,7 @@ void list_cwd_files()
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
// can't be strncmp as that filter out dotfiles // can't be strncmp as that filter out dotfiles
if (strcmp(filename, ".") && strcmp(ep->d_name, "..")) if (strcmp(filename, ".") && strcmp(filename, ".."))
{ {
add_file(filename); add_file(filename);
mvwprintw(windows[0].window, count + 1, 1, "%s", filename); mvwprintw(windows[0].window, count + 1, 1, "%s", filename);
@ -159,15 +159,15 @@ void list_cwd_files()
*/ */
void highlight_current_line() void highlight_current_line()
{ {
for (int i = 0; i < files_len(); i++) for (long i = 0; i < files_len(); i++)
{ {
if (i == current_selection) if (i == current_selection)
{ {
wattron(windows[0].window, A_REVERSE); wattron(windows[0].window, A_REVERSE);
wattron(windows[0].window, COLOR_PAIR(1)); wattron(windows[0].window, COLOR_PAIR(1));
} }
char *name = get_filename(i);
mvwprintw(windows[0].window, i + 1, 1, "%s", get_filename(i)); // print actual file name mvwprintw(windows[0].window, i + 1, 1, "%s", name); // print actual file name
wattroff(windows[0].window, A_REVERSE); wattroff(windows[0].window, A_REVERSE);
wattroff(windows[0].window, COLOR_PAIR(1)); wattroff(windows[0].window, COLOR_PAIR(1));
} }
@ -181,7 +181,7 @@ void highlight_current_line()
*/ */
void show_file_content() void show_file_content()
{ {
FILE *file = fopen(get_filename(current_selection), "rb"); FILE *file = fopen(get_filename((long) current_selection), "rb");
if (file) if (file)
{ {
fseek(file, 0, SEEK_END); fseek(file, 0, SEEK_END);

13
file.c
View file

@ -4,7 +4,7 @@
// files in a link list data structure // files in a link list data structure
typedef struct file { typedef struct file {
char *filename; char *name;
// put some more useful stat here // put some more useful stat here
struct file *next; struct file *next;
} file; } file;
@ -35,7 +35,7 @@ long add_file(char *filename)
{ {
perror("ccc"); perror("ccc");
} }
new_file->filename = buf; new_file->name = buf;
new_file->next = NULL; new_file->next = NULL;
if (current == NULL) if (current == NULL)
{ {
@ -73,9 +73,14 @@ file *get_file(long index)
char *get_filename(long index) char *get_filename(long index)
{ {
file *file = get_file(index); file *file = get_file(index);
if (!file) if (file != NULL)
{ {
return file->filename; char *name = strdup(file->name);
if (!name)
{
perror("ccc");
}
return name;
} }
else else
{ {

2
file.h
View file

@ -2,7 +2,7 @@
#define FILE_H_ #define FILE_H_
typedef struct file { typedef struct file {
char *filename; char *name;
// put some more useful stat here // put some more useful stat here
struct file *next; struct file *next;
} file; } file;