X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/a9bb157da7d3cee576e8944eaf8fab2bdbc4be8d..aad7213c7ebca96dff5f141e0e26a165eba4e6b8:/uip/mhshowsbr.c diff --git a/uip/mhshowsbr.c b/uip/mhshowsbr.c index 20de87cc..6f8a978f 100644 --- a/uip/mhshowsbr.c +++ b/uip/mhshowsbr.c @@ -344,7 +344,7 @@ show_content_aux (CT ct, int alternate, char *cp, char *cracked, struct format * { int fd; int xstdin = 0, xlist = 0; - char *file = NULL, buffer[BUFSIZ]; + char *file = NULL, buffer[NMH_BUFSIZ]; if (!ct->c_ceopenfnx) { if (!alternate) @@ -499,11 +499,15 @@ show_content_aux2 (CT ct, int alternate, char *cracked, char *buffer, default: { int status; + char *display_prog = vecp > 2 && vec[2][0] != '\0' + /* Copy the real display program name. This relies on the + specific construction of vec[] by argsplit(). */ + ? vec[2] + : NULL; - arglist_free(file, vec); - - pidcheck ((status = pidXwait (child_id, NULL))); + pidcheck ((status = pidXwait (child_id, display_prog))); + arglist_free(file, vec); if (fd != NOTOK) (*ct->c_ceclosefnx) (ct); return (alternate ? OK : status);