6 * Copyright (C) 1987 by the Massachusetts Institute of Technology
9 * Revision 1.1 1987-06-02 20:07:32 wesommer
15 static char *rcsid_sms_util_c = "$Header$";
18 #include "sms_private.h"
19 #include "sms_server.h"
30 for( ; c= *cp; *cp++){
31 if (c == '\\' || c == '"') putc('\\', f);
32 if (isprint(c)) putc(c, f);
33 else fprintf(f, "\\%03o", c);
39 void sms_com_err(whoami, code, message)
44 extern char *error_message();
45 extern client *cur_client;
47 struct iovec strings[7];
50 (void) sprintf(buf, "[#%d]", cur_client->id);
53 strings[1].iov_base = buf;
54 strings[1].iov_len = strlen(buf);
56 strings[0].iov_base = whoami;
58 strings[0].iov_len = strlen(whoami);
59 strings[2].iov_base = ": ";
60 strings[2].iov_len = 2;
62 strings[0].iov_len = 0;
63 strings[2].iov_base = " ";
64 strings[2].iov_len = 1;
67 register char *errmsg = error_message(code);
68 strings[3].iov_base = errmsg;
69 strings[3].iov_len = strlen(errmsg);
70 strings[4].iov_base = " ";
71 strings[4].iov_len = 1;
73 strings[3].iov_len = 0;
74 strings[4].iov_len = 0;
76 strings[5].iov_base = message;
77 strings[5].iov_len = strlen(message);
78 strings[6].iov_base = "\n";
79 strings[6].iov_len = 1;
80 (void) writev(2, strings, 7);