|
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 g
Length: 1489 (0x5d1) Types: TextFile Names: »getele.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Empire.V/V1.1/EMPSUBS/getele.c«
#include "empdef.h" #include <stdio.h> getele(toname, buf, letterfi) int toname; char buf[], *letterfi; { register char *cp; register n, fh; char c; if( letterfi == 0 ) goto X162; if( (fh = open(letterfi, O_RDONLY)) >= 0 ) goto X56; printf("Can't open \"%s\"", letterfi); return(2); X56: n = read(fh, buf, 512); n--; if( buf[n] == '\n' ) goto X142; printf("Max telegram size is %d", 511); return(2); X142: buf[n] = '\0'; close(fh); return(n); X162: printf("Enter telegram for %s; end with ^D\n", toname); fflush(stdout); cp = buf; X212: *cp = '\04'; n = read(0, cp, &buf[512] - cp); if( cp + n >= &buf[512] ) { printf("Too long; try that last line again...\n"); fflush(stdout); if( n == &buf[512] - cp && buf[511] != '\n' ) { /* flush input up to newline */ do { if( read(0, &c, 1) != 1 ) { *cp = '\04'; break; } } while( c != '\n' ); } } else { cp += n; } if( *(cp - n) != '\04' ) goto X212; *cp = '\0'; n = cp - buf; return(n); }