+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley. The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
#ifndef lint
-static char *sccsid = "@(#)cmd3.c 1.1 83/07/18";
-#endif
+static char sccsid[] = "@(#)cmd3.c 3.16 (Berkeley) %G%";
+#endif /* not lint */
#include "defs.h"
+#include "string.h"
-struct ww *getwin();
-struct ww *openwin();
-char *strtime();
-
-doclose(c)
+setescape(esc)
+register char *esc;
{
- register struct ww *w;
+ if (*esc == '^') {
+ if (esc[1] != 0)
+ escapec = esc[1] & 0x1f;
+ else
+ escapec = '^';
+ } else
+ escapec = *esc;
+}
- switch (c) {
- case 'c':
- if ((w = getwin()) == 0)
- break;
- if (w == selwin)
- setselwin(0);
- wwclose(w);
- break;
- case 'C':
- case 'Z':
- for (w = wwhead; w;) {
- if (w != cmdwin
- && (w->ww_state == WW_DEAD || c == 'Z')) {
- struct ww *w1;
- w = (w1 = w)->ww_next;
- if (w1 == selwin)
- setselwin(0);
- wwclose(w1);
- } else
- w = w->ww_next;
- }
- break;
- }
- if (selwin == 0) {
- for (w = wwhead; w && w == cmdwin;
- w = w->ww_next)
- ;
- setselwin(w);
- }
+setlabel(w, label)
+register struct ww *w;
+char *label;
+{
+ if (w->ww_label != 0)
+ str_free(w->ww_label);
+ if ((w->ww_label = str_cpy(label)) == 0)
+ return -1;
+ return 0;
}