diff options
-rw-r--r-- | TODO/errmsg | 11 | ||||
-rw-r--r-- | src/demorec.c | 10 |
2 files changed, 17 insertions, 4 deletions
diff --git a/TODO/errmsg b/TODO/errmsg new file mode 100644 index 0000000..51b8aae --- /dev/null +++ b/TODO/errmsg @@ -0,0 +1,11 @@ +Come up with a better error logging abstraction +==== +Something like the BSD err/warn/errx/warnx maybe, although taking into account +all the stupid Windows GetLastError differences too. As it stands, different +source files have different ways of prefixing messages, a lot of strings are +pretty redundant (would maybe be nice to have something closer to the DJB-style +concatenated string messages to solve that problem?), and almost nothing bothers +to include the actual system error string because doing so is currently doing +annoying. + +pls fix diff --git a/src/demorec.c b/src/demorec.c index a7e0486..dc9e899 100644 --- a/src/demorec.c +++ b/src/demorec.c @@ -128,9 +128,9 @@ static void hook_record_cb(const struct con_cmdargs *args) { return; } if (!S_ISDIR(s.st_mode)) { - // duping this warning call to avoid duping the string data, - // very stupid, oh well. if/when we have New And Improved - // Logging this can be tidied up... + // TODO(errmsg): duping this warning call to avoid duping + // the string data, very stupid, oh well. if/when we have + // New And Improved Logging this can be tidied up... con_warn("ERROR: can't record demo: "); con_warn("the path %.*s is not a directory\n", argdirlen, arg); @@ -235,13 +235,15 @@ bool demorec_init(void) { void **vtable = *(void ***)demorecorder; // XXX: 16 is totally arbitrary here! figure out proper bounds later if (!os_mprot(vtable, 16 * sizeof(void *), PAGE_READWRITE)) { + // TODO(errmsg): this is one of the only places I apparently bothered + // to properly log this stuff. really should solve this at some point #ifdef _WIN32 char err[128]; OS_WINDOWS_ERROR(err); #else const char *err = strerror(errno); #endif - con_warn("demorec: couldn't unprotect CDemoRecorder vtable: %s\n", err); + con_warn("demorec: couldn't make memory writable: %s\n", err); return false; } if (!find_recmembers(vtable[vtidx_StopRecording])) { |