Imported from ../bash-2.04.tar.gz.
[platform/upstream/bash.git] / builtins / set.def
index 423a067..fd7dc99 100644 (file)
@@ -7,7 +7,7 @@ This file is part of GNU Bash, the Bourne Again SHell.
 
 Bash is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 1, or (at your option) any later
+Software Foundation; either version 2, or (at your option) any later
 version.
 
 Bash is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -17,7 +17,7 @@ for more details.
 
 You should have received a copy of the GNU General Public License along
 with Bash; see the file COPYING.  If not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
 
 $PRODUCES set.c
 
@@ -266,6 +266,23 @@ list_minus_o_opts (mode, reusable)
     }
 }
 
+char **
+get_minus_o_opts ()
+{
+  char **ret;
+  int n, i, ind;
+
+  n = (sizeof (o_options) / sizeof (o_options[0])) +
+      (sizeof (binary_o_options) / sizeof (binary_o_options[0]));
+  ret = alloc_array (n + 1);
+  for (i = ind = 0; o_options[i].name; i++)
+    ret[ind++] = o_options[i].name;
+  for (i = 0; binary_o_options[i].name; i++)
+    ret[ind++] = binary_o_options[i].name;
+  ret[ind] = (char *)NULL;
+  return ret;
+}
+
 static int
 set_ignoreeof (on_or_off, option_name)
      int on_or_off;
@@ -457,7 +474,7 @@ set_shellopts ()
      note whether or not the variable was exported. */
   if (v)
     {
-      v->attributes &= ~att_readonly;
+      VUNSETATTR (v, att_readonly);
       exported = exported_p (v);
     }
   else
@@ -468,9 +485,9 @@ set_shellopts ()
   /* Turn the read-only attribute back on, and turn off the export attribute
      if it was set implicitly by mark_modified_vars and SHELLOPTS was not
      exported before we bound the new value. */
-  v->attributes |= att_readonly;
+  VSETATTR (v, att_readonly);
   if (mark_modified_vars && exported == 0 && exported_p (v))
-    v->attributes &= ~att_exported;
+    VUNSETATTR (v, att_exported);
 
   free (value);
 }