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  <g...@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.

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.  */

Reply via email to