2 * Copyright 1987, 1988 by MIT Student Information Processing Board.
4 * This file may be copied under the terms of the GNU Public License.
9 #include "error_table.h"
12 #if !defined(__STDC__) && !defined(STDARG_PROTOTYPES)
19 default_com_err_proc (const char *whoami, errcode_t code, const
20 char *fmt, va_list args)
22 default_com_err_proc (whoami, code, fmt, args)
30 fputs(whoami, stderr);
34 fputs(error_message(code), stderr);
38 vfprintf (stderr, fmt, args);
40 /* should do this only on a tty in raw mode */
47 typedef void (*errf) (const char *, errcode_t, const char *, va_list);
49 typedef void (*errf) ();
52 errf com_err_hook = default_com_err_proc;
55 void com_err_va (const char *whoami, errcode_t code, const char *fmt,
58 void com_err_va (whoami, code, fmt, args)
65 (*com_err_hook) (whoami, code, fmt, args);
69 void com_err (const char *whoami,
74 void com_err (va_alist)
77 const char *whoami, *fmt;
83 com_err_hook = default_com_err_proc;
86 whoami = va_arg (pvar, const char *);
87 code = va_arg (pvar, errcode_t);
88 fmt = va_arg (pvar, const char *);
92 com_err_va (whoami, code, fmt, pvar);
96 errf set_com_err_hook (new_proc)
99 errf x = com_err_hook;
102 com_err_hook = new_proc;
104 com_err_hook = default_com_err_proc;
109 errf reset_com_err_hook () {
110 errf x = com_err_hook;
111 com_err_hook = default_com_err_proc;