mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
An undocumented debug mode
1. The debug file is located at /tmp/nnn_debug. 2. Debug mode is completely disabled by default. The debug binary `nnndbg` can be built by running `make debug`.
This commit is contained in:
parent
b66fa0325d
commit
370ed32a28
7
Makefile
7
Makefile
|
@ -1,6 +1,6 @@
|
|||
VERSION = 1.1
|
||||
|
||||
PREFIX = /usr/local
|
||||
PREFIX ?= /usr/local
|
||||
MANPREFIX = $(PREFIX)/share/man
|
||||
|
||||
CFLAGS += -O2 -Wall -Wextra -Wno-unused-parameter
|
||||
|
@ -27,9 +27,12 @@ $(LOCALCONFIG): config.def.h
|
|||
$(SRC): $(LOCALCONFIG)
|
||||
|
||||
$(BIN): $(SRC)
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
|
||||
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
|
||||
strip $@
|
||||
|
||||
debug: $(SRC)
|
||||
$(CC) -DDEBUGMODE -g $(CFLAGS) -o nnndbg $^ $(LDFLAGS) $(LDLIBS)
|
||||
|
||||
install: all
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/bin
|
||||
cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
|
||||
|
|
37
nnn.c
37
nnn.c
|
@ -39,7 +39,9 @@
|
|||
#endif
|
||||
#include <ftw.h>
|
||||
|
||||
#ifdef DEBUG
|
||||
#ifdef DEBUGMODE
|
||||
static int DEBUG_FD;
|
||||
|
||||
static int
|
||||
xprintf(int fd, const char *fmt, ...)
|
||||
{
|
||||
|
@ -55,7 +57,29 @@ xprintf(int fd, const char *fmt, ...)
|
|||
return r;
|
||||
}
|
||||
|
||||
#define DEBUG_FD 8
|
||||
static int enabledbg()
|
||||
{
|
||||
FILE *fp = fopen("/tmp/nnn_debug", "w");
|
||||
|
||||
if (!fp) {
|
||||
fprintf(stderr, "Cannot open debug file\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
DEBUG_FD = fileno(fp);
|
||||
if (DEBUG_FD == -1) {
|
||||
fprintf(stderr, "Cannot open debug file descriptor\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void disabledbg()
|
||||
{
|
||||
close(DEBUG_FD);
|
||||
}
|
||||
|
||||
#define DPRINTF_D(x) xprintf(DEBUG_FD, #x "=%d\n", x)
|
||||
#define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u\n", x)
|
||||
#define DPRINTF_S(x) xprintf(DEBUG_FD, #x "=%s\n", x)
|
||||
|
@ -82,7 +106,7 @@ xprintf(int fd, const char *fmt, ...)
|
|||
|
||||
struct assoc {
|
||||
char *regex; /* Regex to match on filename */
|
||||
char *mime; /* File type */
|
||||
char *mime; /* File type */
|
||||
};
|
||||
|
||||
/* Supported actions */
|
||||
|
@ -2398,11 +2422,18 @@ main(int argc, char *argv[])
|
|||
exit(1);
|
||||
}
|
||||
|
||||
#ifdef DEBUGMODE
|
||||
enabledbg();
|
||||
#endif
|
||||
|
||||
/* Set locale */
|
||||
setlocale(LC_ALL, "");
|
||||
|
||||
initcurses();
|
||||
browse(ipath, ifilter);
|
||||
exitcurses();
|
||||
#ifdef DEBUGMODE
|
||||
disabledbg();
|
||||
#endif
|
||||
exit(0);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue