+ *b++ = '\n';
+ *b = '\0';
+ sprintf(o, buf, p0, p1, p2, p3, p4);
+ c = strlen(outline);
+ if (c > MAXLINE)
+ c = MAXLINE;
+
+ /* output the message to the local logger */
+ if (sendto(LogFile, outline, c, 0, &SyslogAddr, sizeof SyslogAddr) >= 0)
+ return;
+ if (!(LogStat & LOG_CONS))
+ return;
+
+ /* output the message to the console */
+ pid = vfork();
+ if (pid == -1)
+ return;
+ if (pid == 0) {
+ int fd;
+
+ signal(SIGALRM, SIG_DFL);
+ sigsetmask(sigblock(0) & ~sigmask(SIGALRM));
+ alarm(5);
+ fd = open(ctty, O_WRONLY);
+ alarm(0);
+ strcat(o, "\r");
+ o = index(outline, '>') + 1;
+ write(fd, o, c + 1 - (o - outline));
+ close(fd);
+ _exit(0);
+ }
+ if (!(LogStat & LOG_NOWAIT))
+ while ((c = wait((int *)0)) > 0 && c != pid)
+ ;