diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 70a6731188..d300975cb4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2002-10-03 Jeff Johnston + + * ui-out.h (ui_out_field_fmt_int): New prototype. + * ui-out.c (ui_out_field_fmt_int): New function allowing specification + of field width and alignment. + * stack.c (print_frame_info_base): When printing frame level, use + ui_out_field_fmt_int with a width of 2 and left alignment. Fix for + PR gdb/192 + 2002-10-03 Jeff Johnston * MAINTAINERS: Add self to Write After Approval list. diff --git a/gdb/stack.c b/gdb/stack.c index b1cd9c7edd..f36e651a37 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -358,7 +358,10 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args) /* Do this regardless of SOURCE because we don't have any source to list for this frame. */ if (level >= 0) - printf_filtered ("#%-2d ", level); + { + ui_out_text (uiout, "#"); + ui_out_field_fmt_int (uiout, 2, ui_left, "level", level); + } annotate_function_call (); printf_filtered ("\n"); annotate_frame_end (); @@ -371,7 +374,10 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args) /* Do this regardless of SOURCE because we don't have any source to list for this frame. */ if (level >= 0) - printf_filtered ("#%-2d ", level); + { + ui_out_text (uiout, "#"); + ui_out_field_fmt_int (uiout, 2, ui_left, "level", level); + } annotate_signal_handler_caller (); printf_filtered ("\n"); annotate_frame_end (); @@ -548,8 +554,7 @@ print_frame (struct frame_info *fi, if (level >= 0) { ui_out_text (uiout, "#"); - ui_out_field_fmt (uiout, "level", "%-2d", level); - ui_out_spaces (uiout, 1); + ui_out_field_fmt_int (uiout, 2, ui_left, "level", level); } if (addressprint) if (fi->pc != sal.pc || !sal.symtab || source == LOC_AND_ADDRESS) diff --git a/gdb/ui-out.c b/gdb/ui-out.c index 4a4a922854..da7740f4ca 100644 --- a/gdb/ui-out.c +++ b/gdb/ui-out.c @@ -485,6 +485,23 @@ ui_out_field_int (struct ui_out *uiout, uo_field_int (uiout, fldno, width, align, fldname, value); } +void +ui_out_field_fmt_int (struct ui_out *uiout, + int input_width, + enum ui_align input_align, + const char *fldname, + int value) +{ + int fldno; + int width; + int align; + struct ui_out_level *current = current_level (uiout); + + verify_field (uiout, &fldno, &width, &align); + + uo_field_int (uiout, fldno, input_width, input_align, fldname, value); +} + void ui_out_field_core_addr (struct ui_out *uiout, const char *fldname, diff --git a/gdb/ui-out.h b/gdb/ui-out.h index 797c2fe960..c8ed9dd504 100644 --- a/gdb/ui-out.h +++ b/gdb/ui-out.h @@ -119,6 +119,10 @@ extern struct cleanup *make_cleanup_ui_out_tuple_begin_end (struct ui_out *uiout extern void ui_out_field_int (struct ui_out *uiout, const char *fldname, int value); +extern void ui_out_field_fmt_int (struct ui_out *uiout, int width, + enum ui_align align, const char *fldname, + int value); + extern void ui_out_field_core_addr (struct ui_out *uiout, const char *fldname, CORE_ADDR address);