commit c3545dd82f37fb7ef803a699765e6c0ba42c2bad
parent 5ae9993a12ffdc190241ec41db60e48e452f22be
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Wed, 13 Dec 2017 02:41:30 +0530
Use static vars in frequently used APIs
Diffstat:
| M | nnn.c | | | 15 | +++++++-------- |
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/nnn.c b/nnn.c
@@ -450,7 +450,8 @@ static char *
xdirname(const char *path)
{
static char *buf = g_buf;
- static char *last_slash;
+ static char *last_slash, *runp;
+
xstrlcpy(buf, path, PATH_MAX);
@@ -459,8 +460,6 @@ xdirname(const char *path)
if (last_slash != NULL && last_slash != buf && last_slash[1] == '\0') {
/* Determine whether all remaining characters are slashes. */
- char *runp;
-
for (runp = last_slash; runp != buf; --runp)
if (runp[-1] != '/')
break;
@@ -472,8 +471,6 @@ xdirname(const char *path)
if (last_slash != NULL) {
/* Determine whether all remaining characters are slashes. */
- char *runp;
-
for (runp = last_slash; runp != buf; --runp)
if (runp[-1] != '/')
break;
@@ -609,10 +606,12 @@ spawn(char *file, char *arg1, char *arg2, char *dir, uchar flag)
static char *
xgetenv(char *name, char *fallback)
{
+ static char *value;
+
if (name == NULL)
return fallback;
- char *value = getenv(name);
+ value = getenv(name);
return value && value[0] ? value : fallback;
}
@@ -726,8 +725,8 @@ strstrip(char *s)
static char *
getmime(char *file)
{
- regex_t regex;
- uint i;
+ static regex_t regex;
+ static uint i;
static uint len = LEN(assocs);
for (i = 0; i < len; ++i) {