Bash-4.2 distribution sources and documentation
[platform/upstream/bash.git] / test.c
diff --git a/test.c b/test.c
index 180940c..e0cc19d 100644 (file)
--- a/test.c
+++ b/test.c
@@ -2,7 +2,7 @@
 
 /* Modified to run with the GNU shell Apr 25, 1988 by bfox. */
 
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -498,6 +498,7 @@ unary_test (op, arg)
 {
   intmax_t r;
   struct stat stat_buf;
+  SHELL_VAR *v;
      
   switch (op[1])
     {
@@ -599,6 +600,10 @@ unary_test (op, arg)
 
     case 'o':                  /* True if option `arg' is set. */
       return (minus_o_option_value (arg) == 1);
+
+    case 'v':
+      v = find_variable (arg);
+      return (v && var_isset (v) ? TRUE : FALSE);
     }
 
   /* We can't actually get here, but this shuts up gcc. */
@@ -672,7 +677,7 @@ test_unop (op)
     case 'a': case 'b': case 'c': case 'd': case 'e':
     case 'f': case 'g': case 'h': case 'k': case 'n':
     case 'o': case 'p': case 'r': case 's': case 't':
-    case 'u': case 'w': case 'x': case 'z':
+    case 'u': case 'v': case 'w': case 'x': case 'z':
     case 'G': case 'L': case 'O': case 'S': case 'N':
       return (1);
     }