mirror of
https://github.com/jarun/nnn.git
synced 2025-02-26 03:01:32 +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
2 changed files with 39 additions and 5 deletions
7
Makefile
7
Makefile
|
@ -1,6 +1,6 @@
|
||||||
VERSION = 1.1
|
VERSION = 1.1
|
||||||
|
|
||||||
PREFIX = /usr/local
|
PREFIX ?= /usr/local
|
||||||
MANPREFIX = $(PREFIX)/share/man
|
MANPREFIX = $(PREFIX)/share/man
|
||||||
|
|
||||||
CFLAGS += -O2 -Wall -Wextra -Wno-unused-parameter
|
CFLAGS += -O2 -Wall -Wextra -Wno-unused-parameter
|
||||||
|
@ -27,9 +27,12 @@ $(LOCALCONFIG): config.def.h
|
||||||
$(SRC): $(LOCALCONFIG)
|
$(SRC): $(LOCALCONFIG)
|
||||||
|
|
||||||
$(BIN): $(SRC)
|
$(BIN): $(SRC)
|
||||||
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
|
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
|
||||||
strip $@
|
strip $@
|
||||||
|
|
||||||
|
debug: $(SRC)
|
||||||
|
$(CC) -DDEBUGMODE -g $(CFLAGS) -o nnndbg $^ $(LDFLAGS) $(LDLIBS)
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
mkdir -p $(DESTDIR)$(PREFIX)/bin
|
mkdir -p $(DESTDIR)$(PREFIX)/bin
|
||||||
cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
|
cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
|
||||||
|
|
37
nnn.c
37
nnn.c
|
@ -39,7 +39,9 @@
|
||||||
#endif
|
#endif
|
||||||
#include <ftw.h>
|
#include <ftw.h>
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUGMODE
|
||||||
|
static int DEBUG_FD;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
xprintf(int fd, const char *fmt, ...)
|
xprintf(int fd, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
@ -55,7 +57,29 @@ xprintf(int fd, const char *fmt, ...)
|
||||||
return r;
|
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_D(x) xprintf(DEBUG_FD, #x "=%d\n", x)
|
||||||
#define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u\n", x)
|
#define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u\n", x)
|
||||||
#define DPRINTF_S(x) xprintf(DEBUG_FD, #x "=%s\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 {
|
struct assoc {
|
||||||
char *regex; /* Regex to match on filename */
|
char *regex; /* Regex to match on filename */
|
||||||
char *mime; /* File type */
|
char *mime; /* File type */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Supported actions */
|
/* Supported actions */
|
||||||
|
@ -2398,11 +2422,18 @@ main(int argc, char *argv[])
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DEBUGMODE
|
||||||
|
enabledbg();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set locale */
|
/* Set locale */
|
||||||
setlocale(LC_ALL, "");
|
setlocale(LC_ALL, "");
|
||||||
|
|
||||||
initcurses();
|
initcurses();
|
||||||
browse(ipath, ifilter);
|
browse(ipath, ifilter);
|
||||||
exitcurses();
|
exitcurses();
|
||||||
|
#ifdef DEBUGMODE
|
||||||
|
disabledbg();
|
||||||
|
#endif
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue