public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Remove printfi_filtered and fprintfi_filtered
@ 2020-12-16 17:04 Tom Tromey
  2020-12-16 19:00 ` Simon Marchi
  0 siblings, 1 reply; 2+ messages in thread
From: Tom Tromey @ 2020-12-16 17:04 UTC (permalink / raw)
  To: gdb-patches; +Cc: Tom Tromey

After seeing Simon's patch, I thought maybe it was finally time to
remove printfi_filtered and fprintfi_filtered, in favor of using the
"%*s" approach to indenting.

In this patch I took the straightforward approach of always adding a
leading "%*s", even when the format already started with "%s", to
avoid the trickier form of:

    printf ("%*s", -indent, string)

Regression tested on x86-64 Fedora 32.
Let me know what you think.

gdb/ChangeLog
2020-12-16  Tom Tromey  <tromey@adacore.com>

	* gdbtypes.c (print_args, dump_fn_fieldlists, print_cplus_stuff)
	(print_gnat_stuff, print_fixed_point_type_info)
	(recursive_dump_type): Update.
	* go32-nat.c (go32_sysinfo, display_descriptor): Update.
	* c-typeprint.c (c_type_print_base_struct_union)
	(c_type_print_base_1): Update.
	* rust-lang.c (rust_internal_print_type): Update.
	* f-typeprint.c (f_language::f_type_print_base): Update.
	* utils.h (fprintfi_filtered, printfi_filtered): Remove.
	* m2-typeprint.c (m2_record_fields): Update.
	* p-typeprint.c (pascal_type_print_base): Update.
	* compile/compile-loc2c.c (push, pushf, unary, binary)
	(do_compile_dwarf_expr_to_c): Update.
	* utils.c (fprintfi_filtered, printfi_filtered): Remove.
---
 gdb/ChangeLog               |  17 ++++
 gdb/c-typeprint.c           |  30 +++----
 gdb/compile/compile-loc2c.c | 106 +++++++++++++-----------
 gdb/f-typeprint.c           |  28 +++----
 gdb/gdbtypes.c              | 160 ++++++++++++++++++------------------
 gdb/go32-nat.c              |  14 ++--
 gdb/m2-typeprint.c          |   2 +-
 gdb/p-typeprint.c           |  28 ++++---
 gdb/rust-lang.c             |   7 +-
 gdb/utils.c                 |  30 -------
 gdb/utils.h                 |   5 --
 11 files changed, 212 insertions(+), 215 deletions(-)

diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c
index 10631fff9a8..b6f1eee760a 100644
--- a/gdb/c-typeprint.c
+++ b/gdb/c-typeprint.c
@@ -1122,13 +1122,13 @@ c_type_print_base_struct_union (struct type *type, struct ui_file *stream,
 	  && TYPE_TYPEDEF_FIELD_COUNT (type) == 0)
 	{
 	  if (type->is_stub ())
-	    fprintfi_filtered (level + 4, stream,
-			       _("%p[<incomplete type>%p]\n"),
-			       metadata_style.style ().ptr (), nullptr);
+	    fprintf_filtered (stream, _("%*s%p[<incomplete type>%p]\n"),
+			      level + 4, "",
+			      metadata_style.style ().ptr (), nullptr);
 	  else
-	    fprintfi_filtered (level + 4, stream,
-			       _("%p[<no data fields>%p]\n"),
-			       metadata_style.style ().ptr (), nullptr);
+	    fprintf_filtered (stream, _("%*s%p[<no data fields>%p]\n"),
+			      level + 4, "",
+			      metadata_style.style ().ptr (), nullptr);
 	}
 
       /* Start off with no specific section type, so we can print
@@ -1439,7 +1439,7 @@ c_type_print_base_struct_union (struct type *type, struct ui_file *stream,
 	    print_spaces_filtered (2, stream);
 	}
 
-      fprintfi_filtered (level, stream, "}");
+      fprintf_filtered (stream, "%*s}", level, "");
     }
 }
 
@@ -1633,13 +1633,15 @@ c_type_print_base_1 (struct type *type, struct ui_file *stream,
 	    if (type->num_fields () == 0)
 	      {
 		if (type->is_stub ())
-		  fprintfi_filtered (level + 4, stream,
-				     _("%p[<incomplete type>%p]\n"),
-				     metadata_style.style ().ptr (), nullptr);
+		  fprintf_filtered (stream,
+				    _("%*s%p[<incomplete type>%p]\n"),
+				    level + 4, "",
+				    metadata_style.style ().ptr (), nullptr);
 		else
-		  fprintfi_filtered (level + 4, stream,
-				     _("%p[<no data fields>%p]\n"),
-				     metadata_style.style ().ptr (), nullptr);
+		  fprintf_filtered (stream,
+				    _("%*s%p[<no data fields>%p]\n"),
+				    level + 4, "",
+				    metadata_style.style ().ptr (), nullptr);
 	      }
 	    len = type->num_fields ();
 	    for (i = 0; i < len; i++)
@@ -1663,7 +1665,7 @@ c_type_print_base_1 (struct type *type, struct ui_file *stream,
 		  }
 		fprintf_filtered (stream, ";\n");
 	      }
-	    fprintfi_filtered (level, stream, "}");
+	    fprintf_filtered (stream, "%*s}", level, "");
 	  }
       }
       break;
diff --git a/gdb/compile/compile-loc2c.c b/gdb/compile/compile-loc2c.c
index 2fd1810759c..e88e7330955 100644
--- a/gdb/compile/compile-loc2c.c
+++ b/gdb/compile/compile-loc2c.c
@@ -434,9 +434,9 @@ compute_stack_depth (enum bfd_endian byte_order, unsigned int addr_size,
 static void
 push (int indent, string_file *stream, ULONGEST l)
 {
-  fprintfi_filtered (indent, stream,
-		     "__gdb_stack[++__gdb_tos] = (" GCC_UINTPTR ") %s;\n",
-		     hex_string (l));
+  fprintf_filtered (stream,
+		    "%*s__gdb_stack[++__gdb_tos] = (" GCC_UINTPTR ") %s;\n",
+		    indent, "", hex_string (l));
 }
 
 /* Emit code to push an arbitrary expression.  This works like
@@ -450,13 +450,13 @@ pushf (int indent, string_file *stream, const char *format, ...)
 {
   va_list args;
 
-  fprintfi_filtered (indent, stream, "__gdb_stack[__gdb_tos + 1] = ");
+  fprintf_filtered (stream, "%*s__gdb_stack[__gdb_tos + 1] = ", indent, "");
   va_start (args, format);
   stream->vprintf (format, args);
   va_end (args);
   stream->puts (";\n");
 
-  fprintfi_filtered (indent, stream, "++__gdb_tos;\n");
+  fprintf_filtered (stream, "%*s++__gdb_tos;\n", indent, "");
 }
 
 /* Emit code for a unary expression -- one which operates in-place on
@@ -470,7 +470,7 @@ unary (int indent, string_file *stream, const char *format, ...)
 {
   va_list args;
 
-  fprintfi_filtered (indent, stream, "__gdb_stack[__gdb_tos] = ");
+  fprintf_filtered (stream, "%*s__gdb_stack[__gdb_tos] = ", indent, "");
   va_start (args, format);
   stream->vprintf (format, args);
   va_end (args);
@@ -487,12 +487,12 @@ binary (int indent, string_file *stream, const char *format, ...)
 {
   va_list args;
 
-  fprintfi_filtered (indent, stream, "__gdb_stack[__gdb_tos - 1] = ");
+  fprintf_filtered (stream, "%*s__gdb_stack[__gdb_tos - 1] = ", indent, "");
   va_start (args, format);
   stream->vprintf (format, args);
   va_end (args);
   stream->puts (";\n");
-  fprintfi_filtered (indent, stream, "--__gdb_tos;\n");
+  fprintf_filtered (stream, "%*s--__gdb_tos;\n", indent, "");
 }
 
 /* Print the name of a label given its "SCOPE", an arbitrary integer
@@ -599,9 +599,9 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 
   ++scope;
 
-  fprintfi_filtered (indent, stream, "__attribute__ ((unused)) %s %s;\n",
-		     type_name, result_name);
-  fprintfi_filtered (indent, stream, "{\n");
+  fprintf_filtered (stream, "%*s__attribute__ ((unused)) %s %s;\n",
+		    indent, "", type_name, result_name);
+  fprintf_filtered (stream, "%*s{\n", indent, "");
   indent += 2;
 
   stack_depth = compute_stack_depth (byte_order, addr_size,
@@ -637,19 +637,19 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 		 "compiled code."),
 	       sym->print_name ());
 
-      fprintfi_filtered (indent, stream, "%s = %s;\n",
-			 result_name,
-			 core_addr_to_string (value_address (val)));
-      fprintfi_filtered (indent - 2, stream, "}\n");
+      fprintf_filtered (stream, "%*s%s = %s;\n",
+			indent, "", result_name,
+			core_addr_to_string (value_address (val)));
+      fprintf_filtered (stream, "%*s}\n", indent - 2, "");
       return;
     }
 
-  fprintfi_filtered (indent, stream, GCC_UINTPTR " __gdb_stack[%d];\n",
-		     stack_depth);
+  fprintf_filtered (stream, "%*s" GCC_UINTPTR " __gdb_stack[%d];\n",
+		    indent, "", stack_depth);
 
   if (need_tempvar)
-    fprintfi_filtered (indent, stream, GCC_UINTPTR " __gdb_tmp;\n");
-  fprintfi_filtered (indent, stream, "int __gdb_tos = -1;\n");
+    fprintf_filtered (stream, "%*s" GCC_UINTPTR " __gdb_tmp;\n", indent, "");
+  fprintf_filtered (stream, "%*sint __gdb_tos = -1;\n", indent, "");
 
   if (initial != NULL)
     pushf (indent, stream, "%s", core_addr_to_string (*initial));
@@ -908,7 +908,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 	  break;
 
 	case DW_OP_drop:
-	  fprintfi_filtered (indent, stream, "--__gdb_tos;\n");
+	  fprintf_filtered (stream, "%*s--__gdb_tos;\n", indent, "");
 	  break;
 
 	case DW_OP_pick:
@@ -918,13 +918,16 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 	  break;
 
 	case DW_OP_swap:
-	  fprintfi_filtered (indent, stream,
-			     "__gdb_tmp = __gdb_stack[__gdb_tos - 1];\n");
-	  fprintfi_filtered (indent, stream,
-			     "__gdb_stack[__gdb_tos - 1] = "
-			     "__gdb_stack[__gdb_tos];\n");
-	  fprintfi_filtered (indent, stream, ("__gdb_stack[__gdb_tos] = "
-					      "__gdb_tmp;\n"));
+	  fprintf_filtered (stream,
+			    "%*s__gdb_tmp = __gdb_stack[__gdb_tos - 1];\n",
+			    indent, "");
+	  fprintf_filtered (stream,
+			    "%*s__gdb_stack[__gdb_tos - 1] = "
+			    "__gdb_stack[__gdb_tos];\n",
+			    indent, "");
+	  fprintf_filtered (stream, ("%*s__gdb_stack[__gdb_tos] = "
+				     "__gdb_tmp;\n"),
+			    indent, "");
 	  break;
 
 	case DW_OP_over:
@@ -932,16 +935,20 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 	  break;
 
 	case DW_OP_rot:
-	  fprintfi_filtered (indent, stream, ("__gdb_tmp = "
-					      "__gdb_stack[__gdb_tos];\n"));
-	  fprintfi_filtered (indent, stream,
-			     "__gdb_stack[__gdb_tos] = "
-			     "__gdb_stack[__gdb_tos - 1];\n");
-	  fprintfi_filtered (indent, stream,
-			     "__gdb_stack[__gdb_tos - 1] = "
-			     "__gdb_stack[__gdb_tos -2];\n");
-	  fprintfi_filtered (indent, stream, "__gdb_stack[__gdb_tos - 2] = "
-			     "__gdb_tmp;\n");
+	  fprintf_filtered (stream, ("%*s__gdb_tmp = "
+				     "__gdb_stack[__gdb_tos];\n"),
+			    indent, "");
+	  fprintf_filtered (stream,
+			    "%*s__gdb_stack[__gdb_tos] = "
+			    "__gdb_stack[__gdb_tos - 1];\n",
+			    indent, "");
+	  fprintf_filtered (stream,
+			    "%*s__gdb_stack[__gdb_tos - 1] = "
+			    "__gdb_stack[__gdb_tos -2];\n",
+			    indent, "");
+	  fprintf_filtered (stream, "%*s__gdb_stack[__gdb_tos - 2] = "
+			    "__gdb_tmp;\n",
+			    indent, "");
 	  break;
 
 	case DW_OP_deref:
@@ -962,11 +969,11 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 
 	    /* Cast to a pointer of the desired type, then
 	       dereference.  */
-	    fprintfi_filtered (indent, stream,
-			       "__gdb_stack[__gdb_tos] = "
-			       "*((__gdb_int_%s *) "
-			       "__gdb_stack[__gdb_tos]);\n",
-			       mode);
+	    fprintf_filtered (stream,
+			      "%*s__gdb_stack[__gdb_tos] = "
+			      "*((__gdb_int_%s *) "
+			      "__gdb_stack[__gdb_tos]);\n",
+			      indent, "", mode);
 	  }
 	  break;
 
@@ -1088,7 +1095,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 	case DW_OP_skip:
 	  offset = extract_signed_integer (op_ptr, 2, byte_order);
 	  op_ptr += 2;
-	  fprintfi_filtered (indent, stream, "goto ");
+	  fprintf_filtered (stream, "%*sgoto ", indent, "");
 	  print_label (stream, scope, op_ptr + offset - base);
 	  stream->puts (";\n");
 	  break;
@@ -1096,9 +1103,10 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 	case DW_OP_bra:
 	  offset = extract_signed_integer (op_ptr, 2, byte_order);
 	  op_ptr += 2;
-	  fprintfi_filtered (indent, stream,
-			     "if ((( " GCC_INTPTR
-			     ") __gdb_stack[__gdb_tos--]) != 0) goto ");
+	  fprintf_filtered (stream,
+			    "%*sif ((( " GCC_INTPTR
+			    ") __gdb_stack[__gdb_tos--]) != 0) goto ",
+			    indent, "");
 	  print_label (stream, scope, op_ptr + offset - base);
 	  stream->puts (";\n");
 	  break;
@@ -1111,9 +1119,9 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
 	}
     }
 
-  fprintfi_filtered (indent, stream, "%s = __gdb_stack[__gdb_tos];\n",
-		     result_name);
-  fprintfi_filtered (indent - 2, stream, "}\n");
+  fprintf_filtered (stream, "%*s%s = __gdb_stack[__gdb_tos];\n",
+		    indent, "", result_name);
+  fprintf_filtered (stream, "%*s}\n", indent - 2, "");
 }
 
 /* See compile.h.  */
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 28f5c8831fb..048d3f793de 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -307,7 +307,7 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
 	prefix = "Type, C_Union :: ";
       else if (type->code () == TYPE_CODE_STRUCT)
 	prefix = "Type ";
-      fprintfi_filtered (level, stream, "%s%s", prefix, type->name ());
+      fprintf_filtered (stream, "%*s%s%s", level, "", prefix, type->name ());
       return;
     }
 
@@ -331,12 +331,12 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
       break;
 
     case TYPE_CODE_PTR:
-      fprintfi_filtered (level, stream, "PTR TO -> ( ");
+      fprintf_filtered (stream, "%*sPTR TO -> ( ", level, "");
       f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0);
       break;
 
     case TYPE_CODE_REF:
-      fprintfi_filtered (level, stream, "REF TO -> ( ");
+      fprintf_filtered (stream, "%*sREF TO -> ( ", level, "");
       f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0);
       break;
 
@@ -344,21 +344,21 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
       {
 	gdbarch *gdbarch = get_type_arch (type);
 	struct type *void_type = builtin_f_type (gdbarch)->builtin_void;
-	fprintfi_filtered (level, stream, "%s", void_type->name ());
+	fprintf_filtered (stream, "%*s%s", level, "", void_type->name ());
       }
       break;
 
     case TYPE_CODE_UNDEF:
-      fprintfi_filtered (level, stream, "struct <unknown>");
+      fprintf_filtered (stream, "%*sstruct <unknown>", level, "");
       break;
 
     case TYPE_CODE_ERROR:
-      fprintfi_filtered (level, stream, "%s", TYPE_ERROR_NAME (type));
+      fprintf_filtered (stream, "%*s%s", level, "", TYPE_ERROR_NAME (type));
       break;
 
     case TYPE_CODE_RANGE:
       /* This should not occur.  */
-      fprintfi_filtered (level, stream, "<range type>");
+      fprintf_filtered (stream, "%*s<range type>", level, "");
       break;
 
     case TYPE_CODE_CHAR:
@@ -368,7 +368,7 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
 	 C-oriented, we must change these to "character" from "char".  */
 
       if (strcmp (type->name (), "char") == 0)
-	fprintfi_filtered (level, stream, "character");
+	fprintf_filtered (stream, "%*scharacter", level, "");
       else
 	goto default_case;
       break;
@@ -387,15 +387,15 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
 	  fprintf_filtered (stream, "character*%s", pulongest (upper_bound));
 	}
       else
-	fprintfi_filtered (level, stream, "character*(*)");
+	fprintf_filtered (stream, "%*scharacter*(*)", level, "");
       break;
 
     case TYPE_CODE_STRUCT:
     case TYPE_CODE_UNION:
       if (type->code () == TYPE_CODE_UNION)
-	fprintfi_filtered (level, stream, "Type, C_Union :: ");
+	fprintf_filtered (stream, "%*sType, C_Union :: ", level, "");
       else
-	fprintfi_filtered (level, stream, "Type ");
+	fprintf_filtered (stream, "%*sType ", level, "");
       fputs_filtered (type->name (), stream);
       /* According to the definition,
 	 we only print structure elements in case show > 0.  */
@@ -413,13 +413,13 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
 					   stream, show - 1, 0, 0, 0, false);
 	      fputs_filtered ("\n", stream);
 	    }
-	  fprintfi_filtered (level, stream, "End Type ");
+	  fprintf_filtered (stream, "%*sEnd Type ", level, "");
 	  fputs_filtered (type->name (), stream);
 	}
       break;
 
     case TYPE_CODE_MODULE:
-      fprintfi_filtered (level, stream, "module %s", type->name ());
+      fprintf_filtered (stream, "%*smodule %s", level, "", type->name ());
       break;
 
     default_case:
@@ -429,7 +429,7 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
 	 the type name is, as recorded in the type itself.  If there
 	 is no type name, then complain.  */
       if (type->name () != NULL)
-	fprintfi_filtered (level, stream, "%s", type->name ());
+	fprintf_filtered (stream, "%*s%s", level, "", type->name ());
       else
 	error (_("Invalid type code (%d) in symbol table."), type->code ());
       break;
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 5de5bd5ae41..43058320c3c 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -4829,8 +4829,8 @@ print_args (struct field *args, int nargs, int spaces)
 
       for (i = 0; i < nargs; i++)
 	{
-	  printfi_filtered (spaces, "[%d] name '%s'\n", i,
-			    args[i].name != NULL ? args[i].name : "<NULL>");
+	  printf_filtered ("%*s[%d] name '%s'\n", spaces, "", i,
+			   args[i].name != NULL ? args[i].name : "<NULL>");
 	  recursive_dump_type (args[i].type (), spaces + 2);
 	}
     }
@@ -4855,15 +4855,15 @@ dump_fn_fieldlists (struct type *type, int spaces)
   int overload_idx;
   struct fn_field *f;
 
-  printfi_filtered (spaces, "fn_fieldlists ");
+  printf_filtered ("%*sfn_fieldlists ", spaces, "");
   gdb_print_host_address (TYPE_FN_FIELDLISTS (type), gdb_stdout);
   printf_filtered ("\n");
   for (method_idx = 0; method_idx < TYPE_NFN_FIELDS (type); method_idx++)
     {
       f = TYPE_FN_FIELDLIST1 (type, method_idx);
-      printfi_filtered (spaces + 2, "[%d] name '%s' (",
-			method_idx,
-			TYPE_FN_FIELDLIST_NAME (type, method_idx));
+      printf_filtered ("%*s[%d] name '%s' (", spaces + 2, "",
+		       method_idx,
+		       TYPE_FN_FIELDLIST_NAME (type, method_idx));
       gdb_print_host_address (TYPE_FN_FIELDLIST_NAME (type, method_idx),
 			      gdb_stdout);
       printf_filtered (_(") length %d\n"),
@@ -4872,13 +4872,13 @@ dump_fn_fieldlists (struct type *type, int spaces)
 	   overload_idx < TYPE_FN_FIELDLIST_LENGTH (type, method_idx);
 	   overload_idx++)
 	{
-	  printfi_filtered (spaces + 4, "[%d] physname '%s' (",
-			    overload_idx,
-			    TYPE_FN_FIELD_PHYSNAME (f, overload_idx));
+	  printf_filtered ("%*s[%d] physname '%s' (",
+			   spaces + 4, "", overload_idx,
+			   TYPE_FN_FIELD_PHYSNAME (f, overload_idx));
 	  gdb_print_host_address (TYPE_FN_FIELD_PHYSNAME (f, overload_idx),
 				  gdb_stdout);
 	  printf_filtered (")\n");
-	  printfi_filtered (spaces + 8, "type ");
+	  printf_filtered ("%*stype ", spaces + 8, "");
 	  gdb_print_host_address (TYPE_FN_FIELD_TYPE (f, overload_idx), 
 				  gdb_stdout);
 	  printf_filtered ("\n");
@@ -4886,34 +4886,34 @@ dump_fn_fieldlists (struct type *type, int spaces)
 	  recursive_dump_type (TYPE_FN_FIELD_TYPE (f, overload_idx),
 			       spaces + 8 + 2);
 
-	  printfi_filtered (spaces + 8, "args ");
+	  printf_filtered ("%*sargs ", spaces + 8, "");
 	  gdb_print_host_address (TYPE_FN_FIELD_ARGS (f, overload_idx), 
 				  gdb_stdout);
 	  printf_filtered ("\n");
 	  print_args (TYPE_FN_FIELD_ARGS (f, overload_idx),
 		      TYPE_FN_FIELD_TYPE (f, overload_idx)->num_fields (),
 		      spaces + 8 + 2);
-	  printfi_filtered (spaces + 8, "fcontext ");
+	  printf_filtered ("%*sfcontext ", spaces + 8, "");
 	  gdb_print_host_address (TYPE_FN_FIELD_FCONTEXT (f, overload_idx),
 				  gdb_stdout);
 	  printf_filtered ("\n");
 
-	  printfi_filtered (spaces + 8, "is_const %d\n",
-			    TYPE_FN_FIELD_CONST (f, overload_idx));
-	  printfi_filtered (spaces + 8, "is_volatile %d\n",
-			    TYPE_FN_FIELD_VOLATILE (f, overload_idx));
-	  printfi_filtered (spaces + 8, "is_private %d\n",
-			    TYPE_FN_FIELD_PRIVATE (f, overload_idx));
-	  printfi_filtered (spaces + 8, "is_protected %d\n",
-			    TYPE_FN_FIELD_PROTECTED (f, overload_idx));
-	  printfi_filtered (spaces + 8, "is_stub %d\n",
-			    TYPE_FN_FIELD_STUB (f, overload_idx));
-	  printfi_filtered (spaces + 8, "defaulted %d\n",
-			    TYPE_FN_FIELD_DEFAULTED (f, overload_idx));
-	  printfi_filtered (spaces + 8, "is_deleted %d\n",
-			    TYPE_FN_FIELD_DELETED (f, overload_idx));
-	  printfi_filtered (spaces + 8, "voffset %u\n",
-			    TYPE_FN_FIELD_VOFFSET (f, overload_idx));
+	  printf_filtered ("%*sis_const %d\n", spaces + 8, "",
+			   TYPE_FN_FIELD_CONST (f, overload_idx));
+	  printf_filtered ("%*sis_volatile %d\n", spaces + 8, "",
+			   TYPE_FN_FIELD_VOLATILE (f, overload_idx));
+	  printf_filtered ("%*sis_private %d\n", spaces + 8, "",
+			   TYPE_FN_FIELD_PRIVATE (f, overload_idx));
+	  printf_filtered ("%*sis_protected %d\n", spaces + 8, "",
+			   TYPE_FN_FIELD_PROTECTED (f, overload_idx));
+	  printf_filtered ("%*sis_stub %d\n", spaces + 8, "",
+			   TYPE_FN_FIELD_STUB (f, overload_idx));
+	  printf_filtered ("%*sdefaulted %d\n", spaces + 8, "",
+			   TYPE_FN_FIELD_DEFAULTED (f, overload_idx));
+	  printf_filtered ("%*sis_deleted %d\n", spaces + 8, "",
+			   TYPE_FN_FIELD_DELETED (f, overload_idx));
+	  printf_filtered ("%*svoffset %u\n", spaces + 8, "",
+			   TYPE_FN_FIELD_VOFFSET (f, overload_idx));
 	}
     }
 }
@@ -4921,21 +4921,22 @@ dump_fn_fieldlists (struct type *type, int spaces)
 static void
 print_cplus_stuff (struct type *type, int spaces)
 {
-  printfi_filtered (spaces, "vptr_fieldno %d\n", TYPE_VPTR_FIELDNO (type));
-  printfi_filtered (spaces, "vptr_basetype ");
+  printf_filtered ("%*svptr_fieldno %d\n", spaces, "",
+		   TYPE_VPTR_FIELDNO (type));
+  printf_filtered ("%*svptr_basetype ", spaces, "");
   gdb_print_host_address (TYPE_VPTR_BASETYPE (type), gdb_stdout);
   puts_filtered ("\n");
   if (TYPE_VPTR_BASETYPE (type) != NULL)
     recursive_dump_type (TYPE_VPTR_BASETYPE (type), spaces + 2);
 
-  printfi_filtered (spaces, "n_baseclasses %d\n",
-		    TYPE_N_BASECLASSES (type));
-  printfi_filtered (spaces, "nfn_fields %d\n",
-		    TYPE_NFN_FIELDS (type));
+  printf_filtered ("%*sn_baseclasses %d\n", spaces, "",
+		   TYPE_N_BASECLASSES (type));
+  printf_filtered ("%*snfn_fields %d\n", spaces, "",
+		   TYPE_NFN_FIELDS (type));
   if (TYPE_N_BASECLASSES (type) > 0)
     {
-      printfi_filtered (spaces, "virtual_field_bits (%d bits at *",
-			TYPE_N_BASECLASSES (type));
+      printf_filtered ("%*svirtual_field_bits (%d bits at *",
+		       spaces, "", TYPE_N_BASECLASSES (type));
       gdb_print_host_address (TYPE_FIELD_VIRTUAL_BITS (type), 
 			      gdb_stdout);
       printf_filtered (")");
@@ -4948,9 +4949,8 @@ print_cplus_stuff (struct type *type, int spaces)
     {
       if (TYPE_FIELD_PRIVATE_BITS (type) != NULL)
 	{
-	  printfi_filtered (spaces, 
-			    "private_field_bits (%d bits at *",
-			    type->num_fields ());
+	  printf_filtered ("%*sprivate_field_bits (%d bits at *",
+			   spaces, "", type->num_fields ());
 	  gdb_print_host_address (TYPE_FIELD_PRIVATE_BITS (type), 
 				  gdb_stdout);
 	  printf_filtered (")");
@@ -4960,9 +4960,8 @@ print_cplus_stuff (struct type *type, int spaces)
 	}
       if (TYPE_FIELD_PROTECTED_BITS (type) != NULL)
 	{
-	  printfi_filtered (spaces, 
-			    "protected_field_bits (%d bits at *",
-			    type->num_fields ());
+	  printf_filtered ("%*sprotected_field_bits (%d bits at *",
+			   spaces, "", type->num_fields ());
 	  gdb_print_host_address (TYPE_FIELD_PROTECTED_BITS (type), 
 				  gdb_stdout);
 	  printf_filtered (")");
@@ -4976,8 +4975,8 @@ print_cplus_stuff (struct type *type, int spaces)
       dump_fn_fieldlists (type, spaces);
     }
 
-  printfi_filtered (spaces, "calling_convention %d\n",
-		    TYPE_CPLUS_CALLING_CONVENTION (type));
+  printf_filtered ("%*scalling_convention %d\n", spaces, "",
+		   TYPE_CPLUS_CALLING_CONVENTION (type));
 }
 
 /* Print the contents of the TYPE's type_specific union, assuming that
@@ -4989,10 +4988,10 @@ print_gnat_stuff (struct type *type, int spaces)
   struct type *descriptive_type = TYPE_DESCRIPTIVE_TYPE (type);
 
   if (descriptive_type == NULL)
-    printfi_filtered (spaces + 2, "no descriptive type\n");
+    printf_filtered ("%*sno descriptive type\n", spaces + 2, "");
   else
     {
-      printfi_filtered (spaces + 2, "descriptive type\n");
+      printf_filtered ("%*sdescriptive type\n", spaces + 2, "");
       recursive_dump_type (descriptive_type, spaces + 4);
     }
 }
@@ -5003,8 +5002,8 @@ print_gnat_stuff (struct type *type, int spaces)
 static void
 print_fixed_point_type_info (struct type *type, int spaces)
 {
-  printfi_filtered (spaces + 2, "scaling factor: %s\n",
-		    type->fixed_point_scaling_factor ().str ().c_str ());
+  printf_filtered ("%*sscaling factor: %s\n", spaces + 2, "",
+		   type->fixed_point_scaling_factor ().str ().c_str ());
 }
 
 static struct obstack dont_print_type_obstack;
@@ -5053,7 +5052,7 @@ recursive_dump_type (struct type *type, int spaces)
 	{
 	  if (type == first_dont_print[i])
 	    {
-	      printfi_filtered (spaces, "type node ");
+	      printf_filtered ("%*stype node ", spaces, "");
 	      gdb_print_host_address (type, gdb_stdout);
 	      printf_filtered (_(" <same as already seen type>\n"));
 	      return;
@@ -5063,14 +5062,14 @@ recursive_dump_type (struct type *type, int spaces)
       obstack_ptr_grow (&dont_print_type_obstack, type);
     }
 
-  printfi_filtered (spaces, "type node ");
+  printf_filtered ("%*stype node ", spaces, "");
   gdb_print_host_address (type, gdb_stdout);
   printf_filtered ("\n");
-  printfi_filtered (spaces, "name '%s' (",
-		    type->name () ? type->name () : "<NULL>");
+  printf_filtered ("%*sname '%s' (", spaces, "",
+		   type->name () ? type->name () : "<NULL>");
   gdb_print_host_address (type->name (), gdb_stdout);
   printf_filtered (")\n");
-  printfi_filtered (spaces, "code 0x%x ", type->code ());
+  printf_filtered ("%*scode 0x%x ", spaces, "", type->code ());
   switch (type->code ())
     {
     case TYPE_CODE_UNDEF:
@@ -5153,36 +5152,37 @@ recursive_dump_type (struct type *type, int spaces)
       break;
     }
   puts_filtered ("\n");
-  printfi_filtered (spaces, "length %s\n", pulongest (TYPE_LENGTH (type)));
+  printf_filtered ("%*slength %s\n", spaces, "",
+		   pulongest (TYPE_LENGTH (type)));
   if (TYPE_OBJFILE_OWNED (type))
     {
-      printfi_filtered (spaces, "objfile ");
+      printf_filtered ("%*sobjfile ", spaces, "");
       gdb_print_host_address (TYPE_OWNER (type).objfile, gdb_stdout);
     }
   else
     {
-      printfi_filtered (spaces, "gdbarch ");
+      printf_filtered ("%*sgdbarch ", spaces, "");
       gdb_print_host_address (TYPE_OWNER (type).gdbarch, gdb_stdout);
     }
   printf_filtered ("\n");
-  printfi_filtered (spaces, "target_type ");
+  printf_filtered ("%*starget_type ", spaces, "");
   gdb_print_host_address (TYPE_TARGET_TYPE (type), gdb_stdout);
   printf_filtered ("\n");
   if (TYPE_TARGET_TYPE (type) != NULL)
     {
       recursive_dump_type (TYPE_TARGET_TYPE (type), spaces + 2);
     }
-  printfi_filtered (spaces, "pointer_type ");
+  printf_filtered ("%*spointer_type ", spaces, "");
   gdb_print_host_address (TYPE_POINTER_TYPE (type), gdb_stdout);
   printf_filtered ("\n");
-  printfi_filtered (spaces, "reference_type ");
+  printf_filtered ("%*sreference_type ", spaces, "");
   gdb_print_host_address (TYPE_REFERENCE_TYPE (type), gdb_stdout);
   printf_filtered ("\n");
-  printfi_filtered (spaces, "type_chain ");
+  printf_filtered ("%*stype_chain ", spaces, "");
   gdb_print_host_address (TYPE_CHAIN (type), gdb_stdout);
   printf_filtered ("\n");
-  printfi_filtered (spaces, "instance_flags 0x%x", 
-		    (unsigned) type->instance_flags ());
+  printf_filtered ("%*sinstance_flags 0x%x", spaces, "", 
+		   (unsigned) type->instance_flags ());
   if (TYPE_CONST (type))
     {
       puts_filtered (" TYPE_CONST");
@@ -5217,7 +5217,7 @@ recursive_dump_type (struct type *type, int spaces)
     }
   puts_filtered ("\n");
 
-  printfi_filtered (spaces, "flags");
+  printf_filtered ("%*sflags", spaces, "");
   if (type->is_unsigned ())
     {
       puts_filtered (" TYPE_UNSIGNED");
@@ -5266,20 +5266,18 @@ recursive_dump_type (struct type *type, int spaces)
       puts_filtered (" TYPE_NOTTEXT");
     }
   puts_filtered ("\n");
-  printfi_filtered (spaces, "nfields %d ", type->num_fields ());
+  printf_filtered ("%*snfields %d ", spaces, "", type->num_fields ());
   gdb_print_host_address (type->fields (), gdb_stdout);
   puts_filtered ("\n");
   for (idx = 0; idx < type->num_fields (); idx++)
     {
       if (type->code () == TYPE_CODE_ENUM)
-	printfi_filtered (spaces + 2,
-			  "[%d] enumval %s type ",
-			  idx, plongest (TYPE_FIELD_ENUMVAL (type, idx)));
+	printf_filtered ("%*s[%d] enumval %s type ", spaces + 2, "",
+			 idx, plongest (TYPE_FIELD_ENUMVAL (type, idx)));
       else
-	printfi_filtered (spaces + 2,
-			  "[%d] bitpos %s bitsize %d type ",
-			  idx, plongest (TYPE_FIELD_BITPOS (type, idx)),
-			  TYPE_FIELD_BITSIZE (type, idx));
+	printf_filtered ("%*s[%d] bitpos %s bitsize %d type ", spaces + 2, "",
+			 idx, plongest (TYPE_FIELD_BITPOS (type, idx)),
+			 TYPE_FIELD_BITSIZE (type, idx));
       gdb_print_host_address (type->field (idx).type (), gdb_stdout);
       printf_filtered (" name '%s' (",
 		       TYPE_FIELD_NAME (type, idx) != NULL
@@ -5294,7 +5292,7 @@ recursive_dump_type (struct type *type, int spaces)
     }
   if (type->code () == TYPE_CODE_RANGE)
     {
-      printfi_filtered (spaces, "low ");
+      printf_filtered ("%*slow ", spaces, "");
       dump_dynamic_prop (type->bounds ()->low);
       printf_filtered ("  high ");
       dump_dynamic_prop (type->bounds ()->high);
@@ -5304,7 +5302,7 @@ recursive_dump_type (struct type *type, int spaces)
   switch (TYPE_SPECIFIC_FIELD (type))
     {
       case TYPE_SPECIFIC_CPLUS_STUFF:
-	printfi_filtered (spaces, "cplus_stuff ");
+	printf_filtered ("%*scplus_stuff ", spaces, "");
 	gdb_print_host_address (TYPE_CPLUS_SPECIFIC (type), 
 				gdb_stdout);
 	puts_filtered ("\n");
@@ -5312,14 +5310,14 @@ recursive_dump_type (struct type *type, int spaces)
 	break;
 
       case TYPE_SPECIFIC_GNAT_STUFF:
-	printfi_filtered (spaces, "gnat_stuff ");
+	printf_filtered ("%*sgnat_stuff ", spaces, "");
 	gdb_print_host_address (TYPE_GNAT_SPECIFIC (type), gdb_stdout);
 	puts_filtered ("\n");
 	print_gnat_stuff (type, spaces);
 	break;
 
       case TYPE_SPECIFIC_FLOATFORMAT:
-	printfi_filtered (spaces, "floatformat ");
+	printf_filtered ("%*sfloatformat ", spaces, "");
 	if (TYPE_FLOATFORMAT (type) == NULL
 	    || TYPE_FLOATFORMAT (type)->name == NULL)
 	  puts_filtered ("(null)");
@@ -5329,19 +5327,19 @@ recursive_dump_type (struct type *type, int spaces)
 	break;
 
       case TYPE_SPECIFIC_FUNC:
-	printfi_filtered (spaces, "calling_convention %d\n",
-			  TYPE_CALLING_CONVENTION (type));
+	printf_filtered ("%*scalling_convention %d\n", spaces, "",
+			 TYPE_CALLING_CONVENTION (type));
 	/* tail_call_list is not printed.  */
 	break;
 
       case TYPE_SPECIFIC_SELF_TYPE:
-	printfi_filtered (spaces, "self_type ");
+	printf_filtered ("%*sself_type ", spaces, "");
 	gdb_print_host_address (TYPE_SELF_TYPE (type), gdb_stdout);
 	puts_filtered ("\n");
 	break;
 
       case TYPE_SPECIFIC_FIXED_POINT:
-	printfi_filtered (spaces, "fixed_point_info ");
+	printf_filtered ("%*sfixed_point_info ", spaces, "");
 	print_fixed_point_type_info (type, spaces);
 	puts_filtered ("\n");
 	break;
@@ -5351,8 +5349,8 @@ recursive_dump_type (struct type *type, int spaces)
 	{
 	  unsigned bit_size = type->bit_size ();
 	  unsigned bit_off = type->bit_offset ();
-	  printfi_filtered (spaces, " bit size = %u, bit offset = %u\n",
-			    bit_size, bit_off);
+	  printf_filtered ("%*s bit size = %u, bit offset = %u\n", spaces, "",
+			   bit_size, bit_off);
 	}
       break;
     }
diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c
index 24d0c00a740..2a5adc2c12e 100644
--- a/gdb/go32-nat.c
+++ b/gdb/go32-nat.c
@@ -1261,7 +1261,7 @@ go32_sysinfo (const char *arg, int from_tty)
       xsnprintf (cpu_string, sizeof (cpu_string), "%s%s Model %d Stepping %d",
 		 intel_p ? "Pentium" : (amd_p ? "AMD" : (hygon_p ? "Hygon" : "ix86")),
 		 cpu_brand, cpu_model, cpuid_eax & 0xf);
-      printfi_filtered (31, "%s\n", cpu_string);
+      printf_filtered ("%*s%s\n", 31, "", cpu_string);
       if (((cpuid_edx & (6 | (0x0d << 23))) != 0)
 	  || ((cpuid_edx & 1) == 0)
 	  || ((amd_p || hygon_p) && (cpuid_edx & (3 << 30)) != 0))
@@ -1372,11 +1372,11 @@ go32_sysinfo (const char *arg, int from_tty)
 		   "%s-bit DPMI, with%s Virtual Memory support\n",
 		   (dpmi_version_data.flags & 1) ? "32" : "16",
 		   (dpmi_version_data.flags & 4) ? "" : "out");
-  printfi_filtered (31, "Interrupts reflected to %s mode\n",
+  printf_filtered ("%*sInterrupts reflected to %s mode\n", 31, "",
 		   (dpmi_version_data.flags & 2) ? "V86" : "Real");
-  printfi_filtered (31, "Processor type: i%d86\n",
+  printf_filtered ("%*sProcessor type: i%d86\n", 31, "",
 		   dpmi_version_data.cpu);
-  printfi_filtered (31, "PIC base interrupt: Master: %#x  Slave: %#x\n",
+  printf_filtered ("%*sPIC base interrupt: Master: %#x  Slave: %#x\n", 31, "",
 		   dpmi_version_data.master_pic, dpmi_version_data.slave_pic);
 
   /* a_tss is only initialized when the debuggee is first run.  */
@@ -1430,8 +1430,8 @@ go32_sysinfo (const char *arg, int from_tty)
       __dpmi_int (0x21, &regs);
       if ((regs.x.flags & 1) != 0)
 	regs.h.al = 0;
-      printfi_filtered (31, "UMBs %sin DOS memory chain\n",
-			regs.h.al == 0 ? "not " : "");
+      printf_filtered ("*%sUMBs %sin DOS memory chain\n", 31, "",
+		       regs.h.al == 0 ? "not " : "");
     }
 }
 
@@ -1595,7 +1595,7 @@ display_descriptor (unsigned type, unsigned long base_addr, int idx, int force)
 		break;
 	      case 5:
 		printf_filtered ("TSS selector=0x%04x", descr.base0);
-		printfi_filtered (16, "Task Gate");
+		printf_filtered ("%*sTask Gate", 16, "");
 		break;
 	      case 6:
 	      case 7:
diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c
index 20a3d131476..8b05bf31601 100644
--- a/gdb/m2-typeprint.c
+++ b/gdb/m2-typeprint.c
@@ -582,7 +582,7 @@ m2_record_fields (struct type *type, struct ui_file *stream, int show,
 	  fprintf_filtered (stream, ";\n");
 	}
       
-      fprintfi_filtered (level, stream, "END ");
+      fprintf_filtered (stream, "%*sEND ", level, "");
     }
 }
 
diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c
index c2c182a9ae9..b53a0de0c97 100644
--- a/gdb/p-typeprint.c
+++ b/gdb/p-typeprint.c
@@ -564,9 +564,11 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
 	  if ((type->num_fields () == 0) && (TYPE_NFN_FIELDS (type) == 0))
 	    {
 	      if (type->is_stub ())
-		fprintfi_filtered (level + 4, stream, "<incomplete type>\n");
+		fprintf_filtered (stream, "%*s<incomplete type>\n",
+				  level + 4, "");
 	      else
-		fprintfi_filtered (level + 4, stream, "<no data fields>\n");
+		fprintf_filtered (stream, "%*s<no data fields>\n",
+				  level + 4, "");
 	    }
 
 	  /* Start off with no specific section type, so we can print
@@ -597,8 +599,8 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
 		      if (section_type != s_protected)
 			{
 			  section_type = s_protected;
-			  fprintfi_filtered (level + 2, stream,
-					     "protected\n");
+			  fprintf_filtered (stream, "%*sprotected\n",
+					    level + 2, "");
 			}
 		    }
 		  else if (TYPE_FIELD_PRIVATE (type, i))
@@ -606,7 +608,8 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
 		      if (section_type != s_private)
 			{
 			  section_type = s_private;
-			  fprintfi_filtered (level + 2, stream, "private\n");
+			  fprintf_filtered (stream, "%*sprivate\n",
+					    level + 2, "");
 			}
 		    }
 		  else
@@ -614,7 +617,8 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
 		      if (section_type != s_public)
 			{
 			  section_type = s_public;
-			  fprintfi_filtered (level + 2, stream, "public\n");
+			  fprintf_filtered (stream, "%*spublic\n",
+					    level + 2, "");
 			}
 		    }
 		}
@@ -668,8 +672,8 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
 		      if (section_type != s_protected)
 			{
 			  section_type = s_protected;
-			  fprintfi_filtered (level + 2, stream,
-					     "protected\n");
+			  fprintf_filtered (stream, "%*sprotected\n",
+					    level + 2, "");
 			}
 		    }
 		  else if (TYPE_FN_FIELD_PRIVATE (f, j))
@@ -677,7 +681,8 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
 		      if (section_type != s_private)
 			{
 			  section_type = s_private;
-			  fprintfi_filtered (level + 2, stream, "private\n");
+			  fprintf_filtered (stream, "%*sprivate\n",
+					    level + 2, "");
 			}
 		    }
 		  else
@@ -685,7 +690,8 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
 		      if (section_type != s_public)
 			{
 			  section_type = s_public;
-			  fprintfi_filtered (level + 2, stream, "public\n");
+			  fprintf_filtered (stream, "%*spublic\n",
+					    level + 2, "");
 			}
 		    }
 
@@ -736,7 +742,7 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
 		  fprintf_filtered (stream, ";\n");
 		}
 	    }
-	  fprintfi_filtered (level, stream, "end");
+	  fprintf_filtered (stream, "%*send", level, "");
 	}
       break;
 
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index b89fd30491a..3a9a4e7fd65 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -849,9 +849,10 @@ rust_internal_print_type (struct type *type, const char *varstring,
 		&& name[len] == ':'
 		&& name[len + 1] == ':')
 	      name += len + 2;
-	    fprintfi_filtered (level + 2, stream, "%ps,\n",
-			       styled_string (variable_name_style.style (),
-					      name));
+	    fprintf_filtered (stream, "%*s%ps,\n",
+			      level + 2, "",
+			      styled_string (variable_name_style.style (),
+					     name));
 	  }
 
 	fputs_filtered ("}", stream);
diff --git a/gdb/utils.c b/gdb/utils.c
index 3226656e2c3..cf595028d6b 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -2169,22 +2169,6 @@ fprintf_unfiltered (struct ui_file *stream, const char *format, ...)
   va_end (args);
 }
 
-/* Like fprintf_filtered, but prints its result indented.
-   Called as fprintfi_filtered (spaces, stream, format, ...);  */
-
-void
-fprintfi_filtered (int spaces, struct ui_file *stream, const char *format,
-		   ...)
-{
-  va_list args;
-
-  va_start (args, format);
-  print_spaces_filtered (spaces, stream);
-
-  vfprintf_filtered (stream, format, args);
-  va_end (args);
-}
-
 /* See utils.h.  */
 
 void
@@ -2249,20 +2233,6 @@ printf_unfiltered (const char *format, ...)
   va_end (args);
 }
 
-/* Like printf_filtered, but prints it's result indented.
-   Called as printfi_filtered (spaces, format, ...);  */
-
-void
-printfi_filtered (int spaces, const char *format, ...)
-{
-  va_list args;
-
-  va_start (args, format);
-  print_spaces_filtered (spaces, gdb_stdout);
-  vfprintf_filtered (gdb_stdout, format, args);
-  va_end (args);
-}
-
 /* Easy -- but watch out!
 
    This routine is *not* a replacement for puts()!  puts() appends a newline.
diff --git a/gdb/utils.h b/gdb/utils.h
index a8c65ed8170..0df8e0ff2e7 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -439,13 +439,8 @@ extern void vfprintf_filtered (struct ui_file *, const char *, va_list)
 extern void fprintf_filtered (struct ui_file *, const char *, ...)
   ATTRIBUTE_PRINTF (2, 3);
 
-extern void fprintfi_filtered (int, struct ui_file *, const char *, ...)
-  ATTRIBUTE_PRINTF (3, 4);
-
 extern void printf_filtered (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
 
-extern void printfi_filtered (int, const char *, ...) ATTRIBUTE_PRINTF (2, 3);
-
 extern void vprintf_unfiltered (const char *, va_list) ATTRIBUTE_PRINTF (1, 0);
 
 extern void vfprintf_unfiltered (struct ui_file *, const char *, va_list)
-- 
2.26.2


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Remove printfi_filtered and fprintfi_filtered
  2020-12-16 17:04 [PATCH] Remove printfi_filtered and fprintfi_filtered Tom Tromey
@ 2020-12-16 19:00 ` Simon Marchi
  0 siblings, 0 replies; 2+ messages in thread
From: Simon Marchi @ 2020-12-16 19:00 UTC (permalink / raw)
  To: Tom Tromey, gdb-patches

On 2020-12-16 12:04 p.m., Tom Tromey wrote:
> After seeing Simon's patch, I thought maybe it was finally time to
> remove printfi_filtered and fprintfi_filtered, in favor of using the
> "%*s" approach to indenting.
> 
> In this patch I took the straightforward approach of always adding a
> leading "%*s", even when the format already started with "%s", to
> avoid the trickier form of:
> 
>     printf ("%*s", -indent, string)
> 
> Regression tested on x86-64 Fedora 32.
> Let me know what you think.

That look good to me, thanks.

Simon

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-12-16 19:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-16 17:04 [PATCH] Remove printfi_filtered and fprintfi_filtered Tom Tromey
2020-12-16 19:00 ` Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).