|
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 c
Length: 1188 (0x4a4) Types: TextFile Names: »cspeak.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Zork/cspeak.c«
#include <stdio.h> /* routine to sort out input stream */ /* first character determines destination of the following data n - get arguments for 'rspeak' s - put data on dungeon save file until 'e' is received else - pass text to screen */ inprd_(pa,pb,pc) int *pa, *pb, *pc; { int chr; (*pa)=(*pb)=(*pc)=0; while((chr = getchar()) != EOF) { if (chr == '\n') continue; switch (chr) { case 'n': /* get args for rspeak */ if (scanf("%d%d%d",pa,pb,pc) > 0) return; else printf("Speak input error\n"); break; case 's': /* send save data to file */ wrtsave(); break; default: putchar(chr); break; } /* send text to screen */ while((chr = getchar()) != EOF){ if (chr == '~') break; putchar(chr); if (chr == '\n') break; } } /* terminate process */ printf("Goodbye ... GASP\n"); exit(0); } /* write a save file */ wrtsave() { FILE *savptr, *fopen(); char chr; savptr = fopen("dungeon.sav","w"); while ((chr = getchar()) != EOF) { if (chr == 'e') { /* check for end char */ fclose(savptr); return; } putc(chr,savptr); } printf("EOF during save\n"); exit(0); }