* mi-main.c (mi_cmd_thread_select): Only return MI_CMD_CAUGHT_ERROR
authorKeith Seitz <keiths@redhat.com>
Tue, 22 Oct 2002 17:53:42 +0000 (17:53 +0000)
committerKeith Seitz <keiths@redhat.com>
Tue, 22 Oct 2002 17:53:42 +0000 (17:53 +0000)
        when we really did catch an error(). If we got GDB_RC_FAIL, return
        MI_CMD_ERROR instead.

gdb/mi/ChangeLog
gdb/mi/mi-main.c

index 0a0954f534ee522c14737a0fa096614eb5a087d6..5a89d5f23dce6af6c898eee4dbda3553757a8db2 100644 (file)
@@ -1,3 +1,9 @@
+2002-10-22  Keith Seitz  <keiths@redhat.com>
+
+       * mi-main.c (mi_cmd_thread_select): Only return MI_CMD_CAUGHT_ERROR
+       when we really did catch an error(). If we got GDB_RC_FAIL, return
+       MI_CMD_ERROR instead.
+
 2002-10-03  Jeff Johnston  <jjohnstn@redhat.com>
 
        * gdbmi.texinfo: Fix examples that show frames to remove
index 41775922def89bbdb06c8a8c355b1b2a60a4f490..a866042fdc0113b7c222abda36fff574b1b23efd 100644 (file)
@@ -240,8 +240,12 @@ mi_cmd_thread_select (char *command, char **argv, int argc)
   else
     rc = gdb_thread_select (uiout, argv[0]);
 
-  if (rc == GDB_RC_FAIL)
+  /* RC is enum gdb_rc if it is successful (>=0)
+     enum return_reason if not (<0). */
+  if ((int) rc < 0 && (enum return_reason) rc == RETURN_ERROR)
     return MI_CMD_CAUGHT_ERROR;
+  else if ((int) rc >= 0 && rc == GDB_RC_FAIL)
+    return MI_CMD_ERROR;
   else
     return MI_CMD_DONE;
 }