From b60cf127602b4d8cb5ec2d900038e42c502a87a6 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Thu, 24 Jan 2019 22:34:28 +0530 Subject: [PATCH] Remove calls to atoi --- src/nnn.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index 3ec77731..963c9009 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -744,6 +744,22 @@ static char *xbasename(char *path) return base ? base + 1 : path; } +static uint xatoi(const char *str) +{ + int val = 0; + + if (!str) + return 0; + + while (*str >= '0' && *str <= '9') + { + val = val * 10 + (*str - '0'); + ++str; + } + + return val; +} + /* Writes buflen char(s) from buf to a file */ static void writecp(const char *buf, const size_t buflen) { @@ -906,7 +922,7 @@ static void spawn(const char *file, const char *arg1, const char *arg2, const ch /* Show a marker (to indicate nnn spawned shell) */ if (flag & F_MARKER && shlvl != NULL) { fprintf(stdout, "\n +-++-++-+\n | n n n |\n +-++-++-+\n\n"); - fprintf(stdout, "Next shell level: %d\n", atoi(shlvl) + 1); + fprintf(stdout, "Next shell level: %d\n", xatoi(shlvl) + 1); } /* Suppress stdout and stderr */ @@ -3924,6 +3940,8 @@ int main(int argc, char *argv[]) /* Get VISUAL/EDITOR */ editor = xgetenv(envs[VISUAL], xgetenv(envs[EDITOR], "vi")); + DPRINTF_S(getenv(envs[VISUAL])); + DPRINTF_S(getenv(envs[EDITOR])); DPRINTF_S(editor); /* Get PAGER */ @@ -3961,17 +3979,15 @@ int main(int argc, char *argv[]) /* Get custom opener, if set */ opener = xgetenv(env_cfg[NNN_OPENER], utils[OPENER]); - /* Get locker wait time, if set; copier used as tmp var */ - copier = getenv(env_cfg[NNN_IDLE_TIMEOUT]); - if (copier) { - opt = atoi(copier); - idletimeout = opt * ((opt > 0) - (opt < 0)); - } + /* Get locker wait time, if set */ + idletimeout = xatoi(getenv(env_cfg[NNN_IDLE_TIMEOUT])); + DPRINTF_U(idletimeout); /* Get the clipboard copier, if set */ copier = getenv(env_cfg[NNN_COPIER]); home = getenv("HOME"); + DPRINTF_S(home); if (home) g_tmpfplen = xstrlcpy(g_tmpfpath, home, HOME_LEN_MAX); else if (getenv("TMPDIR"))