X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/2e768e3cc0ce768373d3320eca4cdd08b8cf646a..544d453bef5ccf734140f36efb1efd08ab8d71cb:/sbr/ext_hook.c?ds=inline diff --git a/sbr/ext_hook.c b/sbr/ext_hook.c index 26f2c1c0..befbd94b 100644 --- a/sbr/ext_hook.c +++ b/sbr/ext_hook.c @@ -22,13 +22,13 @@ ext_hook(char *hook_name, char *message_file_name_1, char *message_file_name_2) static int did_message = 0; /* set if we've already output a message */ - if ((hook = context_find(hook_name)) == (char *)0) + if ((hook = context_find(hook_name)) == NULL) return (OK); switch (pid = fork()) { case -1: status = NOTOK; - advise(NULL, "external database may be out-of-date."); + inform("external database may be out-of-date."); break; case 0: @@ -37,6 +37,7 @@ ext_hook(char *hook_name, char *message_file_name_1, char *message_file_name_2) vec[vecp++] = message_file_name_2; vec[vecp++] = NULL; execvp(program, vec); + advise(program, "Unable to execute"); _exit(-1); /* NOTREACHED */ @@ -47,17 +48,18 @@ ext_hook(char *hook_name, char *message_file_name_1, char *message_file_name_2) if (status != OK) { if (did_message == 0) { - if ((hook = context_find("msg-hook")) != (char *)0) - advise(NULL, hook); - else - advise(NULL, "external hook (%s) did not work properly.", hook); - + char *msghook; + if ((msghook = context_find("msg-hook")) != NULL) + inform("%s", msghook); + else { + char errbuf[BUFSIZ]; + snprintf(errbuf, sizeof(errbuf), "external hook \"%s\"", hook); + pidstatus(status, stderr, errbuf); + } did_message = 1; } return (NOTOK); - } - - else + } else return (OK); }