1 #ifndef lint 2 static char sccsid[] = "@(#)cmd6.c 3.13 04/24/85"; 3 #endif 4 5 /* 6 * Copyright (c) 1983 Regents of the University of California, 7 * All rights reserved. Redistribution permitted subject to 8 * the terms of the Berkeley Software License Agreement. 9 */ 10 11 #include "defs.h" 12 #include "string.h" 13 #include "char.h" 14 15 /* 16 * Debugging commands. 17 */ 18 19 c_debug() 20 { 21 register struct ww *w; 22 23 if (!terse) 24 wwputs("[m(smap) n(ns) o(os) s(string) v(nvis) w(win)]? ", cmdwin); 25 wwcurtowin(cmdwin); 26 while (wwpeekc() < 0) 27 wwiomux(); 28 if (!terse) 29 wwputc('\n', cmdwin); 30 switch (wwgetc()) { 31 case 'm': 32 wwdumpsmap(); 33 break; 34 case 'n': 35 wwdumpns(); 36 break; 37 case 'o': 38 wwdumpos(); 39 break; 40 case 's': 41 debug_str(); 42 break; 43 case 'v': 44 if ((w = getwin()) != 0) 45 wwdumpnvis(w); 46 break; 47 case 'w': 48 if ((w = getwin()) != 0) 49 wwdumpwin(w); 50 break; 51 default: 52 wwbell(); 53 } 54 } 55 56 #ifdef STR_DEBUG 57 debug_str() 58 { 59 register struct ww *w; 60 struct string *s; 61 62 if ((w = openiwin(wwnrow - 3, "Allocated Strings")) == 0) { 63 error("Can't open string window: %s.", wwerror()); 64 return; 65 } 66 for (s = str_head.s_forw; s != &str_head; s = s->s_forw) { 67 if (more(w, 0) == 2) 68 goto out; 69 wwprintf(w, "(0x%x)\t\"%s\"\n", s->s_data, s->s_data); 70 } 71 waitnl(w); 72 out: 73 closeiwin(w); 74 } 75 #else 76 debug_str() 77 { 78 error("No string debugging."); 79 } 80 #endif 81