commit a7d64b4ba7f82d3ff031a74d1cb6ce43ba70d072
Author: rani <clagv.randomgames@gmail.com>
Date: Sat Jan 28 18:35:08 2023 +0000
diff --git a/src/main.c b/src/main.c
index c55dccf..ffc2d07 100644
--- a/src/main.c
+++ b/src/main.c
@@ -14623 +14659 @@ int main(int argc, char ** argv) {
first_f--;
last_f--;
}
-
- // print path at top
- addch('\n');
- if (in_home_subdir) {
- addch('~');
- // cwd == homedir
- if (cwd[homedir_len] == '\0') addch('/');
- else addstr(cwd + homedir_len);
- } else addstr(cwd);
+ // computer however many characters of cwd will be printed
+ int cwd_len = 0;
+ if (in_home_subdir) cwd_len = strlen(cwd) - homedir_len + 1;
+ else cwd_len = strlen(cwd);
+
+ // print cwd at top
+ if (cwd_len >= COLS) {
+ char * p = cwd + (cwd_len - COLS);
+ if (in_home_subdir) {
+ addch('~');
+ p += homedir_len;
+ }
+
+ // there is not enough room for an elipsis,
+ // just print whatever is left
+ if (p + 5 > cwd + strlen(cwd)) {
+ //addstr(p);
+ } else {
+ p += 5; // strlen("/...")
+ addch('/');
+ attron(A_DIM);
+ addstr("...");
+ attroff(A_DIM);
+ addstr(p);
+ }
+ // write the full path regularly
+ } else {
+ char * p = cwd;
+ if (in_home_subdir) {
+ addch('~');
+ p += homedir_len;
+ }
+
+ if (!*p) addch('/');
+ else addstr(p);
+ }
+
+ addch('\n');
+ bool printed_info = false;
if (permission_denied) {
+ printed_info = true;
attron(COLOR_PAIR(RED));
- printw("\tPermission Denied");
+ addstr("Permission Denied");
attroff(COLOR_PAIR(RED));
}
- if (cutting) printw(" cut");
- printw("\n\n");
+ if (cutting) {
+ printed_info = true;
+ if (permission_denied) padstr(2);
+ addstr("Cut");
+ }
+ if (printed_info) addch('\n');
+ addch('\n');
// print files
for (size_t i = first_f; i < last_f; i++) {