- sprintf(msgbuf, "%s\n\007New mail for %s@%s\007 has arrived:%s\n",
- cr, name, hostname, cr);
- jkfprintf(msgbuf+strlen(msgbuf), name, offset);
- if (fcntl(fd, F_SETFL, flags | FNDELAY) == -1)
- goto oldway;
- msglen = strlen(msgbuf);
- n = write(fd, msgbuf, msglen);
- err = errno;
- (void) fcntl(fd, F_SETFL, flags);
- (void) close(fd);
- if (n == msglen)
- return;
- if (err != EWOULDBLOCK) {
- dprintf("write failed %d\n", errno);
- return;
- }
-oldway:
- if (fork()) {
- (void) close(fd);
- return;
- }
- signal(SIGALRM, SIG_DFL);
- alarm(30);
- (void) write(fd, msgbuf, msglen);
- exit(0);
+ fprintf(tp, "%s\n\007New mail for %s@%.*s\007 has arrived:%s\n----%s\n",
+ cr, name, sizeof (hostname), hostname, cr, cr);
+ jkfprintf(tp, name, offset);
+ fclose(tp);
+ _exit(0);