Mercurial > hg > Members > kono > nitros9-code
comparison 3rdparty/packages/ed/set.c @ 994:bef1844de0dc
The ED editor ported from Minix
author | roug |
---|---|
date | Sun, 23 Feb 2003 21:11:37 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
993:57b5e715a417 | 994:bef1844de0dc |
---|---|
1 /* set.c */ | |
2 #include <stdio.h> | |
3 #include "tools.h" | |
4 #include "ed.h" | |
5 | |
6 struct tbl { | |
7 char *t_str; | |
8 int *t_ptr; | |
9 int t_val; | |
10 } *t, tbl[] = { | |
11 | |
12 "number", &nflg, TRUE, | |
13 "nonumber", &nflg, FALSE, | |
14 "list", &lflg, TRUE, | |
15 "nolist", &lflg, FALSE, | |
16 "eightbit", &eightbit, TRUE, | |
17 "noeightbit", &eightbit, FALSE, | |
18 0 | |
19 }; | |
20 | |
21 int set() | |
22 { | |
23 char word[16]; | |
24 int i; | |
25 | |
26 inptr++; | |
27 if (*inptr != 't') { | |
28 if (*inptr != SP && *inptr != HT && *inptr != NL) return(ERR); | |
29 } else | |
30 inptr++; | |
31 | |
32 if (*inptr == NL) return(show()); | |
33 /* Skip white space */ | |
34 while (*inptr == SP || *inptr == HT) inptr++; | |
35 | |
36 for (i = 0; *inptr != SP && *inptr != HT && *inptr != NL;) | |
37 word[i++] = *inptr++; | |
38 word[i] = EOS; | |
39 for (t = tbl; t->t_str; t++) { | |
40 if (strcmp(word, t->t_str) == 0) { | |
41 *t->t_ptr = t->t_val; | |
42 return(0); | |
43 } | |
44 } | |
45 return(0); | |
46 } | |
47 | |
48 int show() | |
49 { | |
50 extern int version; | |
51 | |
52 printf("ed version %d.%d\n", version / 100, version % 100); | |
53 printf("number %s, list %s\n", nflg ? "ON" : "OFF", lflg ? "ON" : "OFF"); | |
54 return(0); | |
55 } | |
56 |