Index: trunk/Ohana/src/opihi/cmd.basic/opihi.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.basic/opihi.c	(revision 27255)
+++ trunk/Ohana/src/opihi/cmd.basic/opihi.c	(revision 27790)
@@ -3,8 +3,8 @@
 int opihi_setmode (int argc, char **argv) {
 
-  int value;
+  OpihiVerboseMode value;
 
   if (argc < 2) {
-    gprint (GP_ERR, "USAGE: opihi (verbose) [on/off]\n");
+    gprint (GP_ERR, "USAGE: opihi (verbose) [on/off/error]\n");
     return (FALSE);
   }
@@ -13,17 +13,30 @@
       if (argc == 2) {
 	  value = get_verbose_shell();
-	  if (value) {
-	    gprint (GP_ERR, "opihi verbose mode: on\n");
-	  } else {
-	    gprint (GP_ERR, "opihi verbose mode: off\n");
-	  }
+	  switch (value) {
+	    case OPIHI_VERBOSE_OFF:
+	      gprint (GP_ERR, "opihi verbose mode: off\n");
+	      break;
+	    case OPIHI_VERBOSE_ON:
+	      gprint (GP_ERR, "opihi verbose mode: on\n");
+	      break;
+	    case OPIHI_VERBOSE_ERROR:
+	      gprint (GP_ERR, "opihi verbose mode: error\n");
+	      break;
+	    default:
+	      fprintf (stderr, "impossible condition\n");
+	      abort();
+	  } 
 	  return (TRUE);
       }
       if (!strcasecmp(argv[2], "on")) {
-	set_verbose_shell (TRUE);
+	set_verbose_shell (OPIHI_VERBOSE_ON);
 	return (TRUE);
       }
       if (!strcasecmp(argv[2], "off")) {
-	set_verbose_shell (FALSE);
+	set_verbose_shell (OPIHI_VERBOSE_OFF);
+	return (TRUE);
+      }
+      if (!strcasecmp(argv[2], "error")) {
+	set_verbose_shell (OPIHI_VERBOSE_ERROR);
 	return (TRUE);
       }
