l_unset() added
authorEdward Wang <edward@ucbvax.Berkeley.EDU>
Fri, 13 Jan 1984 03:45:59 +0000 (19:45 -0800)
committerEdward Wang <edward@ucbvax.Berkeley.EDU>
Fri, 13 Jan 1984 03:45:59 +0000 (19:45 -0800)
SCCS-vsn: usr.bin/window/lcmd.c 3.10
SCCS-vsn: usr.bin/window/lcmd1.c 3.13

usr/src/usr.bin/window/lcmd.c
usr/src/usr.bin/window/lcmd1.c

index 9e8d1ad..c122bc1 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)lcmd.c      3.9 84/01/11";
+static char *sccsid = "@(#)lcmd.c      3.10 84/01/12";
 #endif
 
 #include "defs.h"
 #endif
 
 #include "defs.h"
@@ -15,6 +15,7 @@ int l_label();
 int l_select();
 int l_source();
 int l_terse();
 int l_select();
 int l_source();
 int l_terse();
+int l_unset();
 int l_window();
 int l_write();
 
 int l_window();
 int l_write();
 
@@ -27,6 +28,7 @@ struct lcmd_arg arg_label[];
 struct lcmd_arg arg_select[];
 struct lcmd_arg arg_source[];
 struct lcmd_arg arg_terse[];
 struct lcmd_arg arg_select[];
 struct lcmd_arg arg_source[];
 struct lcmd_arg arg_terse[];
+struct lcmd_arg arg_unset[];
 struct lcmd_arg arg_window[];
 struct lcmd_arg arg_write[];
 
 struct lcmd_arg arg_window[];
 struct lcmd_arg arg_write[];
 
@@ -41,6 +43,7 @@ struct lcmd_tab lcmd_tab[] = {
        "select",       2,      l_select,       arg_select,
        "source",       2,      l_source,       arg_source,
        "terse",        1,      l_terse,        arg_terse,
        "select",       2,      l_select,       arg_select,
        "source",       2,      l_source,       arg_source,
        "terse",        1,      l_terse,        arg_terse,
+       "unset",        1,      l_unset,        arg_unset,
        "window",       2,      l_window,       arg_window,
        "write",        2,      l_write,        arg_write,
        0,              0,      0,              0,
        "window",       2,      l_window,       arg_window,
        "write",        2,      l_write,        arg_write,
        0,              0,      0,              0,
index 91b1de7..8e46826 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)lcmd1.c     3.12 84/01/11";
+static char *sccsid = "@(#)lcmd1.c     3.13 84/01/12";
 #endif
 
 #include "defs.h"
 #endif
 
 #include "defs.h"
@@ -210,6 +210,33 @@ register struct value *v;
                wwsetcursormodes(a->arg_num);
 }
 
                wwsetcursormodes(a->arg_num);
 }
 
+struct lcmd_arg arg_unset[] = {
+       { "variable",   1,      ARG_ANY },
+       { 0,            0,      0 }
+};
+
+l_unset(v)
+register struct value *v;
+{
+       register struct lcmd_arg *a = arg_unset;
+
+       v->v_type = V_NUM;
+       switch (a->arg_vtype) {
+       case V_ERR:
+               v->v_num = -1;
+               return;
+       case V_NUM:
+               if ((a->arg_str = str_cpy(a->arg_num)) == 0) {
+                       error("Out of memory.");
+                       v->v_num = -1;
+                       return;
+               }
+               a->arg_vtype = V_STR;
+               break;
+       }
+       v->v_num = var_unset(a->arg_str);
+}
+
 struct ww *
 vtowin(v)
 register struct value *v;
 struct ww *
 vtowin(v)
 register struct value *v;