]> Sergey Matveev's repositories - nnn.git/commitdiff
Add timeout to warnings
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 26 Apr 2019 19:25:28 +0000 (00:55 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 26 Apr 2019 19:25:28 +0000 (00:55 +0530)
src/nnn.c

index d28e43539f141474a4c2b2396d3e34d45910e0d8..afcb3ca87b921a7ce61f0ef1401ac25c76aff9e5 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -449,7 +449,7 @@ static struct timespec gtimeout;
 /* Function macros */
 #define exitcurses() endwin()
 #define clearprompt() printmsg("")
-#define printwarn() printmsg(strerror(errno))
+#define printwarn(presel) printwait(strerror(errno), presel)
 #define istopdir(path) ((path)[1] == '\0' && (path)[0] == '/')
 #define copycurname() xstrlcpy(lastname, dents[cur].name, NAME_MAX + 1)
 #define settimeout() timeout(1000)
@@ -550,7 +550,8 @@ static inline void printmsg(const char *msg)
 static void printwait(const char *msg, int *presel)
 {
        printmsg(msg);
-       *presel = MSGWAIT;
+       if (presel)
+               *presel = MSGWAIT;
 }
 
 /* Kill curses and display error before exiting */
@@ -740,7 +741,7 @@ static void writecp(const char *buf, const size_t buflen)
                fwrite(buf, 1, buflen, fp);
                fclose(fp);
        } else
-               printwarn();
+               printwarn(NULL);
 }
 
 static void appendfpath(const char *path, const size_t len)
@@ -1052,7 +1053,7 @@ static bool xdiraccess(const char *path)
        DIR *dirp = opendir(path);
 
        if (!dirp) {
-               printwarn();
+               printwarn(NULL);
                return FALSE;
        }
 
@@ -2370,8 +2371,7 @@ static char *visit_parent(char *path, char *newpath, int *presel)
 
        dir = dirname(newpath);
        if (access(dir, R_OK) == -1) {
-               printwarn();
-               *presel = MSGWAIT;
+               printwarn(presel);
                return NULL;
        }
 
@@ -2620,7 +2620,7 @@ static int dentfill(char *path, struct entry **dents)
 
                if (fstatat(fd, ".", &sb_path, 0) == -1) {
                        closedir(dirp);
-                       printwarn();
+                       printwarn(NULL);
                        return 0;
                }
 
@@ -3012,7 +3012,7 @@ begin:
         * It's assumed that path IS a directory when we are here.
         */
        if (access(path, R_OK) == -1)
-               printwarn();
+               printwarn(&presel);
 
        populate(path, lastname);
        if (interrupted) {
@@ -3077,7 +3077,7 @@ nochange:
 
                        /* Cannot use stale data in entry, file may be missing by now */
                        if (stat(newpath, &sb) == -1) {
-                               printwarn();
+                               printwarn(&presel);
                                goto nochange;
                        }
                        DPRINTF_U(sb.st_mode);
@@ -3085,8 +3085,7 @@ nochange:
                        switch (sb.st_mode & S_IFMT) {
                        case S_IFDIR:
                                if (access(newpath, R_OK) == -1) {
-                                       printwarn();
-                                       presel = MSGWAIT;
+                                       printwarn(&presel);
                                        goto nochange;
                                }
 
@@ -3442,7 +3441,7 @@ nochange:
 
                        mkpath(path, dents[cur].name, newpath);
                        if (lstat(newpath, &sb) == -1 || !show_stats(newpath, dents[cur].name, &sb)) {
-                               printwarn();
+                               printwarn(&presel);
                                goto nochange;
                        }
                        break;
@@ -3787,7 +3786,7 @@ nochange:
                        /* Open the descriptor to currently open directory */
                        fd = open(path, O_RDONLY | O_DIRECTORY);
                        if (fd == -1) {
-                               printwarn();
+                               printwarn(&presel);
                                goto nochange;
                        }
 
@@ -3812,7 +3811,7 @@ nochange:
                                /* Rename the file */
                                if (renameat(fd, dents[cur].name, fd, tmp) != 0) {
                                        close(fd);
-                                       printwarn();
+                                       printwarn(&presel);
                                        goto nochange;
                                }
                        } else {
@@ -3846,8 +3845,7 @@ nochange:
 
                                /* Check if file creation failed */
                                if (r == -1) {
-                                       printwarn();
-                                       presel = MSGWAIT;
+                                       printwarn(&presel);
                                        close(fd);
                                        goto nochange;
                                }
@@ -3877,8 +3875,7 @@ nochange:
                                }
 
                                if (stat(plugindir, &sb) == -1) {
-                                       printwarn();
-                                       presel = MSGWAIT;
+                                       printwarn(&presel);
                                        goto nochange;
                                }
 
@@ -3930,7 +3927,7 @@ nochange:
                                } else {
                                        /* Switch to current path for readline(3) */
                                        if (chdir(path) == -1) {
-                                               printwarn();
+                                               printwarn(&presel);
                                                goto nochange;
                                        }
 
@@ -3941,7 +3938,7 @@ nochange:
                                        refresh();
 
                                        if (chdir(ipath) == -1) {
-                                               printwarn();
+                                               printwarn(&presel);
                                                free(tmp);
                                                goto nochange;
                                        }
@@ -4311,7 +4308,7 @@ int main(int argc, char *argv[])
                struct stat sb;
 
                if (stat(initpath, &sb) == -1) {
-                       printwarn();
+                       xerror();
                        return 1;
                }