From 904e0ecede5369226dad266405751cdcee40acfa Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Mon, 10 Oct 2016 22:53:02 -0400 Subject: Add JRP_DUMP --- .bin/jrp.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to '.bin/jrp.c') diff --git a/.bin/jrp.c b/.bin/jrp.c index 0904e705..d6a9272f 100755 --- a/.bin/jrp.c +++ b/.bin/jrp.c @@ -202,6 +202,12 @@ static void jitSrc(const char *src) { } } +static void jitDump(const char *path, FILE *file) { + size_t nitems = code.ptr - code.base; + size_t written = fwrite(code.base, sizeof(qop), nitems, file); + if (written < nitems) err(EX_IOERR, "%s", path); +} + static char *prompt(EditLine *el __attribute((unused))) { static char buf[4096]; char *bufPtr = buf; @@ -223,6 +229,13 @@ static char *prompt(EditLine *el __attribute((unused))) { } int main(int argc, char *argv[]) { + FILE *file = NULL; + char *path = getenv("JRP_DUMP"); + if (path) { + file = fopen(path, "w"); + if (!file) err(EX_CANTCREAT, "%s", path); + } + jitInit(); stackInit(); @@ -231,6 +244,7 @@ int main(int argc, char *argv[]) { for (int i = 1; i < argc; ++i) jitSrc(argv[i]); jitEnd(); + if (file) jitDump(path, file); jitExec(); return EX_OK; } @@ -248,6 +262,7 @@ int main(int argc, char *argv[]) { jitBegin(); jitSrc(line); jitEnd(); + if (file) jitDump(path, file); jitExec(); } -- cgit 1.4.1