diff options
author | Gabriel Dos Reis <gdr@codesourcery.com> | 2000-09-25 21:20:19 +0000 |
---|---|---|
committer | Gabriel Dos Reis <gdr@gcc.gnu.org> | 2000-09-25 21:20:19 +0000 |
commit | 4b40f7588eaf7b4f323d812ebe612f951822d0ee (patch) | |
tree | f128e42344fe386dab97b5430694219834c7bcd5 /gcc | |
parent | 0f2907682ea0bc5a977d66aa110fe3b30119d4bb (diff) | |
download | gcc-4b40f7588eaf7b4f323d812ebe612f951822d0ee.zip gcc-4b40f7588eaf7b4f323d812ebe612f951822d0ee.tar.gz gcc-4b40f7588eaf7b4f323d812ebe612f951822d0ee.tar.bz2 |
diagnostic.c (output_last_position): Define.
* diagnostic.c (output_last_position): Define.
(set_real_maximum_length): Tweek.
* diagnostic.h (output_last_position): Declare.
From-SVN: r36629
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/diagnostic.c | 21 | ||||
-rw-r--r-- | gcc/diagnostic.h | 1 |
3 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f5f2424..0e200f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-09-25 Gabriel Dos Reis <gdr@codesourcery.com> + + * diagnostic.c (output_last_position): Define. + (set_real_maximum_length): Tweek. + * diagnostic.h (output_last_position): Declare. + 2000-09-25 Kazu Hirata <kazu@hxi.com> * config/i386/i386.c: Fix formatting. diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index afb25c1..56ed957 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -230,8 +230,12 @@ static void set_real_maximum_length (buffer) output_buffer *buffer; { - /* If we're told not to wrap lines then do the obvious thing. */ - if (! output_is_line_wrapping (buffer)) + /* If we're told not to wrap lines then do the obvious thing. In case + we'll emit prefix only once per diagnostic message, it is appropriate + not to increase unncessarily the line-length cut-off. */ + if (! output_is_line_wrapping (buffer) + || prefixing_policy (buffer) == DIAGNOSTICS_SHOW_PREFIX_ONCE + || prefixing_policy (buffer) == DIAGNOSTICS_SHOW_PREFIX_NEVER) line_wrap_cutoff (buffer) = ideal_line_wrap_cutoff (buffer); else { @@ -271,6 +275,19 @@ output_set_prefix (buffer, prefix) output_indentation (buffer) = 0; } +/* Return a pointer to the last character emitted in the output + BUFFER area. A NULL pointer means no character available. */ +const char * +output_last_position (buffer) + const output_buffer *buffer; +{ + const char *p = NULL; + + if (obstack_base (&buffer->obstack) != obstack_next_free (&buffer->obstack)) + p = ((const char *) obstack_next_free (&buffer->obstack)) - 1; + return p; +} + /* Free BUFFER's prefix, a previously malloc'd string. */ void diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h index f3ebcf8..8748929 100644 --- a/gcc/diagnostic.h +++ b/gcc/diagnostic.h @@ -176,6 +176,7 @@ void init_output_buffer PARAMS ((output_buffer *, const char *, int)); void flush_diagnostic_buffer PARAMS ((void)); void output_clear PARAMS ((output_buffer *)); const char *output_get_prefix PARAMS ((const output_buffer *)); +const char *output_last_position PARAMS ((const output_buffer *)); void output_set_prefix PARAMS ((output_buffer *, const char *)); void output_destroy_prefix PARAMS ((output_buffer *)); void output_set_maximum_length PARAMS ((output_buffer *, int)); |