|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T r
Length: 2217 (0x8a9) Types: TextFile Names: »rea.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Empire.V/V1.1/COMMANDS/rea.c«
#define D_TELSTR #define D_FILES #include "empdef.h" rea() { register char *cp, *mbp; char buf[514], *cname(), *ctime(); char *getstri(), *mailbox(); int tgms, n, ntelf; mbp = mailbox(cnum); telf = open(mbp, O_RDWR); if( telf < 0 ) { printf("You have no telegraph office! (%s)\n", mbp); return(SYN_RETURN); } for( tgms=0; read(telf, &tgm, sizeof(tgm)) == sizeof(tgm); tgms++ ) { if( tgm.tel_length < 0 || tgm.tel_length > 512 ) { printf("Telegraph wires cut! (size=%d)\n", tgm.tel_length); return(SYN_RETURN); } if( tgm.tel_from != 0 ) { printf("Telegram from %s, (#%d)", cname(tgm.tel_from), tgm.tel_from); } else { printf("BULLETIN! "); } printf(" dated %s", ctime(&tgm.tel_date)); read(telf, buf, tgm.tel_length); buf[tgm.tel_length] = '\0'; printf("%s", buf); printf("\n"); } switch( tgms ) { case 0: printf("No telegrams for you at the moment...\n"); cp = "no"; goto X430; case 1: if( rand() % 32768 > 060000 ) { cp = "Forget this one? "; } else { cp = "Shall I burn it? "; } break; default: if( rand() % 32768 > 060000 ) { cp = "Can I throw away these old love letters? "; } else { cp = "Into the shredder, boss? "; } break; } cp = getstri(cp); X430: if( *cp == 'y' ) { unlink(mbp); ntelf = creat(mbp, 0600); while( (n = read(telf, buf, sizeof(buf))) != 0 ) { write(ntelf, buf, n); } close(ntelf); } close(telf); return(NORM_RETURN); }