summaryrefslogtreecommitdiff
path: root/gcc/diagnostic.c
diff options
context:
space:
mode:
authorgdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-25 21:20:19 +0000
committergdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-25 21:20:19 +0000
commit8f8953434c28ca55b6974eee9c8a94a913411787 (patch)
treef128e42344fe386dab97b5430694219834c7bcd5 /gcc/diagnostic.c
parent93033aae615ca060d7cbf72acd049b7052c98974 (diff)
downloadgcc-8f8953434c28ca55b6974eee9c8a94a913411787.tar.gz
* diagnostic.c (output_last_position): Define.
(set_real_maximum_length): Tweek. * diagnostic.h (output_last_position): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36629 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r--gcc/diagnostic.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index afb25c1ef3b..56ed9574bb9 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