Commit | Line | Data |
---|---|---|
f176f953 | 1 | #ifndef lint |
8fa6d94c | 2 | static char *sccsid = "@(#)cmd6.c 3.7 84/01/16"; |
f176f953 EW |
3 | #endif |
4 | ||
5 | #include "defs.h" | |
36d54c8e | 6 | #include "string.h" |
f176f953 EW |
7 | |
8 | /* | |
9 | * Debugging commands. | |
10 | */ | |
11 | ||
12 | c_debug() | |
13 | { | |
14 | register struct ww *w; | |
15 | ||
16 | if (!terse) | |
36d54c8e | 17 | (void) wwputs("[m(smap) n(ns) o(os) s(string) v(nvis) w(win)]? ", cmdwin); |
f176f953 | 18 | wwcurtowin(cmdwin); |
8fa6d94c EW |
19 | while (wwpeekc() < 0) |
20 | wwiomux(); | |
f176f953 EW |
21 | if (!terse) |
22 | (void) wwputs("\r\n", cmdwin); | |
8fa6d94c | 23 | switch (wwgetc()) { |
f176f953 EW |
24 | case 'm': |
25 | wwdumpsmap(); | |
26 | break; | |
27 | case 'n': | |
28 | wwdumpns(); | |
29 | break; | |
30 | case 'o': | |
31 | wwdumpos(); | |
32 | break; | |
36d54c8e EW |
33 | case 's': |
34 | debug_str(); | |
35 | break; | |
f176f953 EW |
36 | case 'v': |
37 | if ((w = getwin()) != 0) | |
38 | wwdumpnvis(w); | |
39 | break; | |
f176f953 EW |
40 | case 'w': |
41 | if ((w = getwin()) != 0) | |
42 | wwdumpwin(w); | |
43 | break; | |
44 | default: | |
45 | wwbell(); | |
46 | } | |
47 | } | |
36d54c8e EW |
48 | |
49 | #ifdef STR_DEBUG | |
50 | debug_str() | |
51 | { | |
52 | register struct ww *w; | |
53 | struct string *s; | |
54 | ||
55 | if ((w = openiwin(wwnrow - 3, "Allocated Strings")) == 0) { | |
56 | error("Can't open string window: %s.", wwerror()); | |
57 | return; | |
58 | } | |
74e9bfa3 | 59 | for (s = str_head.s_forw; s != &str_head; s = s->s_forw) { |
4a972f7c EW |
60 | if (more(w, 0) == 2) |
61 | goto out; | |
74e9bfa3 EW |
62 | (void) wwprintf(w, "(0x%x)\t\"%s\"\n", s->s_data, s->s_data); |
63 | } | |
36d54c8e | 64 | waitnl(w); |
4a972f7c | 65 | out: |
36d54c8e EW |
66 | closeiwin(w); |
67 | } | |
68 | #else | |
69 | debug_str() | |
70 | { | |
71 | error("No string debugging."); | |
72 | } | |
73 | #endif |