Remove a startup loop and use self-fixing

This commit is contained in:
Arun Prakash Jana 2019-11-30 19:51:57 +05:30
parent 12669be900
commit e28197f066
No known key found for this signature in database
GPG key ID: A75979F35C080412

View file

@ -582,6 +582,7 @@ static void move_cursor(int target, int ignore_scrolloff);
static inline bool getutil(char *util); static inline bool getutil(char *util);
static size_t mkpath(const char *dir, const char *name, char *out); static size_t mkpath(const char *dir, const char *name, char *out);
static void updateselbuf(const char *path, char *newpath); static void updateselbuf(const char *path, char *newpath);
static char *xgetenv(const char *name, char *fallback);
/* Functions */ /* Functions */
@ -1140,6 +1141,7 @@ static bool selsafe(void)
static bool initcurses(mmask_t *oldmask) static bool initcurses(mmask_t *oldmask)
{ {
short i; short i;
char *colors = xgetenv(env_cfg[NNN_CONTEXT_COLORS], "4444");
if (cfg.picker) { if (cfg.picker) {
if (!newterm(NULL, stderr, stdin)) { if (!newterm(NULL, stderr, stdin)) {
@ -1168,9 +1170,16 @@ static bool initcurses(mmask_t *oldmask)
start_color(); start_color();
use_default_colors(); use_default_colors();
/* Initialize default colors */ /* Get and set the context colors */
for (i = 0; i < CTX_MAX; ++i) for (i = 0; i < CTX_MAX; ++i) {
if (*colors) {
g_ctx[i].color = (*colors < '0' || *colors > '7') ? 4 : *colors - '0';
++colors;
} else
g_ctx[i].color = 4;
init_pair(i + 1, g_ctx[i].color, -1); init_pair(i + 1, g_ctx[i].color, -1);
}
settimeout(); /* One second */ settimeout(); /* One second */
set_escdelay(25); set_escdelay(25);
@ -5640,24 +5649,6 @@ int main(int argc, char *argv[])
if (!cfg.picker && !(isatty(STDIN_FILENO) && isatty(STDOUT_FILENO))) if (!cfg.picker && !(isatty(STDIN_FILENO) && isatty(STDOUT_FILENO)))
exit(1); exit(1);
/* Get the context colors; copier used as tmp var */
copier = xgetenv(env_cfg[NNN_CONTEXT_COLORS], "4444");
opt = 0;
while (opt < CTX_MAX) {
if (*copier) {
if (*copier < '0' || *copier > '7') {
fprintf(stderr, "0 <= code <= 7\n");
return _FAILURE;
}
g_ctx[opt].color = *copier - '0';
++copier;
} else
g_ctx[opt].color = 4;
++opt;
}
#ifdef DBGMODE #ifdef DBGMODE
enabledbg(); enabledbg();
DPRINTF_S(VERSION); DPRINTF_S(VERSION);