|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1983 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * This code is derived from software contributed to Berkeley by ! 6: * Edward Wang at The University of California, Berkeley. ! 7: * ! 8: * Redistribution and use in source and binary forms are permitted provided ! 9: * that: (1) source distributions retain this entire copyright notice and ! 10: * comment, and (2) distributions including binaries display the following ! 11: * acknowledgement: ``This product includes software developed by the ! 12: * University of California, Berkeley and its contributors'' in the ! 13: * documentation or other materials provided with the distribution and in ! 14: * all advertising materials mentioning features or use of this software. ! 15: * Neither the name of the University nor the names of its contributors may ! 16: * be used to endorse or promote products derived from this software without ! 17: * specific prior written permission. ! 18: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 19: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 20: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 21: */ ! 22: ! 23: #ifndef lint ! 24: static char sccsid[] = "@(#)cmd6.c 3.17 (Berkeley) 6/6/90"; ! 25: #endif /* not lint */ ! 26: ! 27: #include "defs.h" ! 28: #include "string.h" ! 29: #include "char.h" ! 30: ! 31: /* ! 32: * Debugging commands. ! 33: */ ! 34: ! 35: c_debug() ! 36: { ! 37: register struct ww *w; ! 38: ! 39: if (!terse) ! 40: wwputs("[m(smap) n(ns) o(os) s(string) v(nvis) w(win)]? ", cmdwin); ! 41: wwcurtowin(cmdwin); ! 42: while (wwpeekc() < 0) ! 43: wwiomux(); ! 44: if (!terse) ! 45: wwputc('\n', cmdwin); ! 46: switch (wwgetc()) { ! 47: case 'm': ! 48: wwdumpsmap(); ! 49: break; ! 50: case 'n': ! 51: wwdumpns(); ! 52: break; ! 53: case 'o': ! 54: wwdumpos(); ! 55: break; ! 56: case 's': ! 57: debug_str(); ! 58: break; ! 59: case 'v': ! 60: if ((w = getwin()) != 0) ! 61: wwdumpnvis(w); ! 62: break; ! 63: case 'w': ! 64: if ((w = getwin()) != 0) ! 65: wwdumpwin(w); ! 66: break; ! 67: default: ! 68: wwbell(); ! 69: } ! 70: } ! 71: ! 72: #ifdef STR_DEBUG ! 73: debug_str() ! 74: { ! 75: register struct ww *w; ! 76: struct string *s; ! 77: ! 78: if ((w = openiwin(wwnrow - 3, "Allocated Strings")) == 0) { ! 79: error("Can't open string window: %s.", wwerror()); ! 80: return; ! 81: } ! 82: for (s = str_head.s_forw; s != &str_head; s = s->s_forw) { ! 83: if (more(w, 0) == 2) ! 84: goto out; ! 85: wwprintf(w, "(0x%x)\t\"%s\"\n", s->s_data, s->s_data); ! 86: } ! 87: waitnl(w); ! 88: out: ! 89: closeiwin(w); ! 90: } ! 91: #else ! 92: debug_str() ! 93: { ! 94: error("No string debugging."); ! 95: } ! 96: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.