+2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * toplev.c (display_help): Fix thinko in documentation.
+
+ * diagnostic.h (output_buffer::indent_skip): New fields.
+ (output_indentation): New macro.
+
+ * diagnostic.c (output_indent): New function.
+ (output_set_prefix, clear_diagnostic_info): Use.
+ (output_emit_prefix): Predict future indentation.
+
2000-09-06 DJ Delorie <dj@redhat.com>
* Makefile.in (stage_*): add more dependencies to ensure parallel
const char *, va_list *));
static void output_to_stream PARAMS ((output_buffer *, FILE *));
static void output_format PARAMS ((output_buffer *));
+static void output_indent PARAMS ((output_buffer *));
static char *vbuild_message_string PARAMS ((const char *, va_list));
static char *build_message_string PARAMS ((const char *, ...))
output_prefix (buffer) = prefix;
set_real_maximum_length (buffer);
prefix_was_emitted_for (buffer) = 0;
+ output_indentation (buffer) = 0;
}
/* Free BUFFER's prefix, a previously malloc'd string. */
output_buffer_text_cursor (buffer) = NULL;
output_buffer_ptr_to_format_args (buffer) = NULL;
prefix_was_emitted_for (buffer) = 0;
+ output_indentation (buffer) = 0;
}
/* Construct an output BUFFER with PREFIX and of MAXIMUM_LENGTH
case DIAGNOSTICS_SHOW_PREFIX_ONCE:
if (prefix_was_emitted_for (buffer))
- break;
- /* Else fall through. */
+ {
+ output_indent (buffer);
+ break;
+ }
+ output_indentation (buffer) += 3;
+ /* Fall through. */
case DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE:
{
output_append_r (buffer, start, end - start);
}
+static void
+output_indent (buffer)
+ output_buffer *buffer;
+{
+ int n = output_indentation (buffer);
+ int i;
+
+ for (i = 0; i < n; ++i)
+ output_add_character (buffer, ' ');
+}
+
/* Wrap a text delimited by START and END into BUFFER. */
static void
/* The ideal upper bound of number of characters per line, as suggested
by front-end. */
int ideal_maximum_length;
+
+ /* Indentation count. */
+ int indent_skip;
+
/* Nonzero if current PREFIX was emitted at least once. */
int emitted_prefix_p;
#define output_buffer_format_args(BUFFER) *((BUFFER)->state.format_args)
#define output_needs_newline(BUFFER) (BUFFER)->state.need_newline_p
#define output_buffer_state(BUFFER) (BUFFER)->state
+#define output_indentation(BUFFER) (BUFFER)->state.indent_skip
/* This data structure bundles altogether any information relevent to
the context of a diagnostic message. */
printf (_(" -fcall-saved-<register> Mark <register> as being preserved across functions\n"));
printf (_(" -finline-limit=<number> Limits the size of inlined functions to <number>\n"));
printf (_(" -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"));
- printf (_(" -fdiagnostics-show-location=[once | never] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"));
+ printf (_(" -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"));
for (i = ARRAY_SIZE (f_options); i--;)
{