version 1.4, 1996/06/26 05:44:00 |
version 1.5, 1996/08/26 10:22:11 |
|
|
#include <unistd.h> |
#include <unistd.h> |
#include <utmp.h> |
#include <utmp.h> |
#include <err.h> |
#include <err.h> |
|
#include <vis.h> |
|
|
void done(); |
void done(); |
void do_write __P((char *, char *, uid_t)); |
void do_write __P((char *, char *, uid_t)); |
|
|
wr_fputs(s) |
wr_fputs(s) |
register char *s; |
register char *s; |
{ |
{ |
register char c; |
register u_char c; |
|
char visout[4], *s2; |
|
|
#define PUTC(c) if (putchar(c) == EOF) goto err; |
#define PUTC(c) if (putchar(c) == EOF) goto err; |
|
|
|
|
c = toascii(*s); |
c = toascii(*s); |
if (c == '\n') { |
if (c == '\n') { |
PUTC('\r'); |
PUTC('\r'); |
} else if (!isprint(c) && !isspace(c) && c != '\007') { |
PUTC('\n'); |
if (c & 0x80) { |
continue; |
PUTC('M'); |
|
PUTC('-'); |
|
c &= ~0x80; |
|
} else { |
|
PUTC('^'); |
|
c &= ~0x40; |
|
} |
|
} |
} |
PUTC(c); |
vis(visout, c, VIS_SAFE, s[1]); |
|
for (s2 = visout; *s2; s2++) |
|
PUTC(*s2); |
} |
} |
return; |
return; |
|
|