Patchwork Clean up pretty printers [11/n]

login
register
mail settings
Submitter Gabriel Dos Reis
Date Aug. 23, 2013, 11:08 a.m.
Message ID <87haegekah.fsf@euclid.axiomatics.org>
Download mbox | patch
Permalink /patch/269422/
State New
Headers show

Comments

Gabriel Dos Reis - Aug. 23, 2013, 11:08 a.m.
This patchlet is an easy low hanging fruit in the pile of local patches
I have.  It turns old style emulation of inline functions into real inline
functions.

Tested on x86_64-suse-linux.   Applied to mainline.

-- Gaby

2013-08-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* pretty-print.h (pp_newline_and_flush): Declare.  Remove macro
	definition.
	(pp_newline_and_indent): Likewise.
	(pp_separate_with): Likewise.
	* pretty-print.c (pp_newline_and_flush): Define.
	(pp_newline_and_indent): Likewise.
	(pp_separate_with): Likewise.

Patch

Index: pretty-print.c
===================================================================
--- pretty-print.c	(revision 201939)
+++ pretty-print.c	(working copy)
@@ -902,6 +902,37 @@ 
       pp->padding = pp_none;
     }
 }
+
+// Add a newline to the pretty printer PP and flush formatted text.
+
+void
+pp_newline_and_flush (pretty_printer *pp)
+{
+  pp_newline (pp);
+  pp_flush (pp);
+  pp_needs_newline (pp) = false;
+}
+
+// Add a newline to the pretty printer PP, followed by indentation.
+
+void
+pp_newline_and_indent (pretty_printer *pp, int n)
+{
+  pp_indentation (pp) += n;
+  pp_newline (pp);
+  pp_indent (pp);
+  pp_needs_newline (pp) = false;
+}
+
+// Add separator C, followed by a single whitespace.
+
+void
+pp_separate_with (pretty_printer *pp, char c)
+{
+  pp_character (pp, c);
+  pp_space (pp);
+}
+
 
 /* The string starting at P has LEN (at least 1) bytes left; if they
    start with a valid UTF-8 sequence, return the length of that
Index: pretty-print.h
===================================================================
--- pretty-print.h	(revision 201939)
+++ pretty-print.h	(working copy)
@@ -246,26 +246,8 @@ 
 #define pp_backquote(PP)        pp_character (PP, '`')
 #define pp_doublequote(PP)      pp_character (PP, '"')
 #define pp_underscore(PP)       pp_character (PP, '_')
-#define pp_newline_and_flush(PP)     \
-  do {                               \
-    pp_newline (PP);                 \
-    pp_flush (PP);                   \
-    pp_needs_newline (PP) = false;   \
-  } while (0)
-#define pp_newline_and_indent(PP, N) \
-  do {                               \
-    pp_indentation (PP) += N;        \
-    pp_newline (PP);                 \
-    pp_indent (PP);                  \
-    pp_needs_newline (PP) = false;   \
-  } while (0)
 #define pp_maybe_newline_and_indent(PP, N) \
   if (pp_needs_newline (PP)) pp_newline_and_indent (PP, N)
-#define pp_separate_with(PP, C)     \
-   do {                             \
-     pp_character (PP, C);          \
-     pp_space (PP);                 \
-   } while (0)
 #define pp_scalar(PP, FORMAT, SCALAR)	                      \
   do					        	      \
     {			         			      \
@@ -298,6 +280,9 @@ 
 extern const char *pp_last_position_in_text (const pretty_printer *);
 extern void pp_emit_prefix (pretty_printer *);
 extern void pp_append_text (pretty_printer *, const char *, const char *);
+extern void pp_newline_and_flush (pretty_printer *);
+extern void pp_newline_and_indent (pretty_printer *, int);
+extern void pp_separate_with (pretty_printer *, char);
 
 /* If we haven't already defined a front-end-specific diagnostics
    style, use the generic one.  */