fix to do writes in memory properly
[unix-history] / usr / src / old / adb / adb.vax / input.c
CommitLineData
964735c9
BJ
1#
2/*
3 *
4 * UNIX debugger
5 *
6 */
7
8#include "defs.h"
9static char sccsid[] = "@(#)input.c 4.1 %G%";
10
11INT mkfault;
12CHAR line[LINSIZ];
13INT infile;
14CHAR *lp;
15CHAR peekc,lastc = EOR;
16INT eof;
17
18/* input routines */
19
20eol(c)
21CHAR c;
22{
23 return(c==EOR ORF c==';');
24}
25
26rdc()
27{ REP readchar();
28 PER lastc==SP ORF lastc==TB
29 DONE
30 return(lastc);
31}
32
33readchar()
34{
35 IF eof
36 THEN lastc=0;
37 ELSE IF lp==0
38 THEN lp=line;
39 REP eof = read(infile,lp,1)==0;
40 IF mkfault THEN error(0); FI
41 PER eof==0 ANDF *lp++!=EOR DONE
42 *lp=0; lp=line;
43 FI
44 IF lastc = peekc THEN peekc=0;
45 ELIF lastc = *lp THEN lp++;
46 FI
47 FI
48 return(lastc);
49}
50
51nextchar()
52{
53 IF eol(rdc())
54 THEN lp--; return(0);
55 ELSE return(lastc);
56 FI
57}
58
59quotchar()
60{
61 IF readchar()=='\\'
62 THEN return(readchar());
63 ELIF lastc=='\''
64 THEN return(0);
65 ELSE return(lastc);
66 FI
67}
68
69getformat(deformat)
70STRING deformat;
71{
72 REG STRING fptr;
73 REG BOOL quote;
74 fptr=deformat; quote=FALSE;
75 WHILE (quote ? readchar()!=EOR : !eol(readchar()))
76 DO IF (*fptr++ = lastc)=='"'
77 THEN quote = ~quote;
78 FI
79 OD
80 lp--;
81 IF fptr!=deformat THEN *fptr++ = '\0'; FI
82}