This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

pending/989: Patch for PR cli/877


>Number:         989
>Category:       pending
>Synopsis:       Patch for PR cli/877
>Confidential:   yes
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   unknown
>Arrival-Date:   Fri Jan 31 05:28:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        
>Organization:
>Environment:
>Description:
 This is patch for PR cli/877. When the user types q to quit
 during output from "info set" command the ui_out_tuple_end does not
 get called which leaves the uiout->level undecremented. The correct way
 to do this is to call "make_cleanup_ui_out_tuple_begin_end" instead of
 ui_out_tuple_begin. Call "do_cleanups" instead of ui_out_tuple_end to
 do the uiout->level fixup.
 
 Regards
 Nat
   
 gdb/Changelog
 2002-12-10  Nat Gurumoorthy  <nat.gurumoorthy@ubicom.com>
 
 	* cli/cli-setshow.c: cmd_show_list function use 
 	make_cleanup_ui_out_tuple_begin_end and do_cleanups instead
 	of ui_out_tuple_begin and ui_out_tuple_end.
 
 
 Index: cli-setshow.c
 ===================================================================
 RCS file: /cvs/src/src/gdb/cli/cli-setshow.c,v
 retrieving revision 1.11
 diff -c -r1.11 cli-setshow.c
 *** cli-setshow.c	10 Dec 2002 00:30:43 -0000	1.11
 --- cli-setshow.c	10 Dec 2002 20:11:57 -0000
 ***************
 *** 353,380 ****
   void
   cmd_show_list (struct cmd_list_element *list, int from_tty, char *prefix)
   {
 !   ui_out_tuple_begin (uiout, "showlist");
     for (; list != NULL; list = list->next)
       {
         /* If we find a prefix, run its list, prefixing our output by its
            prefix (with "show " skipped).  */
         if (list->prefixlist && !list->abbrev_flag)
   	{
 ! 	  ui_out_tuple_begin (uiout, "optionlist");
   	  ui_out_field_string (uiout, "prefix", list->prefixname + 5);
   	  cmd_show_list (*list->prefixlist, from_tty, list->prefixname + 5);
 ! 	  ui_out_tuple_end (uiout);
   	}
         if (list->type == show_cmd)
   	{
 ! 	  ui_out_tuple_begin (uiout, "option");
   	  ui_out_text (uiout, prefix);
   	  ui_out_field_string (uiout, "name", list->name);
   	  ui_out_text (uiout, ":  ");
   	  do_setshow_command ((char *) NULL, from_tty, list);
 ! 	  ui_out_tuple_end (uiout);
   	}
       }
 !   ui_out_tuple_end (uiout);
   }
 - 
 --- 353,379 ----
   void
   cmd_show_list (struct cmd_list_element *list, int from_tty, char *prefix)
   {
 !   struct cleanup *old_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "showlist");
     for (; list != NULL; list = list->next)
       {
         /* If we find a prefix, run its list, prefixing our output by its
            prefix (with "show " skipped).  */
         if (list->prefixlist && !list->abbrev_flag)
   	{
 ! 	  struct cleanup *old_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "optionlist");
   	  ui_out_field_string (uiout, "prefix", list->prefixname + 5);
   	  cmd_show_list (*list->prefixlist, from_tty, list->prefixname + 5);
 ! 	  do_cleanups(old_chain);
   	}
         if (list->type == show_cmd)
   	{
 ! 	  struct cleanup *old_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "option");
   	  ui_out_text (uiout, prefix);
   	  ui_out_field_string (uiout, "name", list->name);
   	  ui_out_text (uiout, ":  ");
   	  do_setshow_command ((char *) NULL, from_tty, list);
 ! 	  do_cleanups(old_chain);
   	}
       }
 !   do_cleanups(old_chain);
   }
 
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]