commit d11c2cb224a63cbea6c5f957b2915393dbbc3b9d
parent cf2649cd06e7fb5fd928588dcf566aee11f85b4a
Author: Wim Dupont <wim@wimdupont.com>
Date: Sat, 13 Jul 2024 22:29:33 +0200
fixes empty dir movement
Diffstat:
M | cex.c | | | 28 | ++++++---------------------- |
M | cex.h | | | 2 | +- |
2 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/cex.c b/cex.c
@@ -41,7 +41,6 @@ main(int argc, char **argv)
}
}
-
editor = getenv("EDITOR");
userinf = *getpwuid(getuid());
@@ -415,7 +414,6 @@ remove_selected(char *sel)
return res;
}
-
static void
set_win_message(DirWin *dirwin, char *message)
{
@@ -560,15 +558,7 @@ print_top_title()
static void
print_bot_title()
{
- struct stat statbuf;
- struct passwd *usr;
- struct tm *tm;
- struct group *grp;
- char pathbuf[PATH_MAX];
- char mods[11];
- char datestr[256];
- char modfill = '-';
- char fileinf[maxx];
+ char pathbuf[PATH_MAX], fileinf[maxx];
get_fullpath(pathbuf, &curwin, curwin.highlight);
memcpy(fileinf, get_file_info(fileinf, pathbuf), maxx);
@@ -646,14 +636,12 @@ get_file_info(char *buf, char *filepath)
static void
print_content()
{
- char buf[PATH_MAX];
FILE *fp = NULL;
size_t size = childwin.maxx;
- char str[size+1];
+ char str[size+1], buf[PATH_MAX];
int y = 0, x = 0;
werase(childwin.window);
-
free_dirwin(&childwin);
if ((fp = fopen(get_fullpath(buf, &curwin, curwin.highlight), "r")) == NULL) {
@@ -674,7 +662,6 @@ print_content()
}
fclose(fp);
-
wrefresh(childwin.window);
}
@@ -851,20 +838,16 @@ change_parent_dir(Direction direction)
}
parwin.usehighlight = TRUE;
-
curwin.highlight = 0;
-
change_dir(get_fullpath(pp, &parwin, parwin.highlight), direction, FALSE);
}
static void
open_child()
{
- char mime[MIME_MAX];
- char mimedefault[MIME_APP_MAX];
sigset_t set;
+ char mime[MIME_MAX], mimedefault[MIME_APP_MAX], pathbuf[PATH_MAX];
bool istext;
- char pathbuf[PATH_MAX];
if (curwin.message != NULL)
return;
@@ -970,7 +953,7 @@ move_top(DirWin *dirwin)
static void
move_bot(DirWin *dirwin)
{
- dirwin->highlight = dirwin->filecount-1;
+ dirwin->highlight = MAX(dirwin->filecount-1, 0);
}
static void
@@ -982,7 +965,8 @@ move_page_up(DirWin *dirwin)
static void
move_page_down(DirWin *dirwin)
{
- dirwin->highlight = MIN(dirwin->highlight + dirwin->maxy/2, dirwin->filecount-1);
+ dirwin->highlight = MIN(dirwin->highlight + dirwin->maxy/2,
+ MAX(dirwin->filecount-1, 0));
}
static void
diff --git a/cex.h b/cex.h
@@ -81,7 +81,7 @@ typedef struct _dir_win {
int maxy;
int startpr;
int highlight;
- size_t filecount;
+ int filecount;
bool holdupdate;
bool usehighlight;
} DirWin;