[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 09/11] diagnostics: also show truncation at the end of line with
From: |
Akim Demaille |
Subject: |
[PATCH 09/11] diagnostics: also show truncation at the end of line with "..." |
Date: |
Sat, 21 Sep 2019 12:00:02 +0200 |
From
9 | ...TUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKL
| ... ^~~~~~~~~~~~~~~~~~~~~~~~~~
to
9 | ...TUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHI...
| ... ^~~~~~~~~~~~~~~~~~~~~~~~~~
* src/location.c (location_caret): here.
* tests/diagnostics.at: Adjust expectations.
---
src/location.c | 9 ++++++++-
tests/diagnostics.at | 24 ++++++++++++------------
2 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/src/location.c b/src/location.c
index 4e2bfd9b..b0d9f015 100644
--- a/src/location.c
+++ b/src/location.c
@@ -322,6 +322,10 @@ location_caret (location loc, const char *style, FILE *out)
/* If we skip the initial part, we insert "..." before. */
if (skip)
width -= 3;
+ /* If the end of line does not fit, we also need to truncate the
+ end, and leave "..." there. */
+ if (width < line_len - skip)
+ width -= 3;
/* Go back to the beginning of line. */
fseek (caret_info.file, caret_info.offset, SEEK_SET);
@@ -374,7 +378,10 @@ location_caret (location loc, const char *style, FILE *out)
opened = false;
}
if (width < caret_info.pos.column - skip)
- break;
+ {
+ fprintf (out, "...");
+ break;
+ }
}
putc ('\n', out);
}
diff --git a/tests/diagnostics.at b/tests/diagnostics.at
index dc041e6a..5eba7bad 100644
--- a/tests/diagnostics.at
+++ b/tests/diagnostics.at
@@ -350,22 +350,22 @@ exp: ABCDEFGHIJKLMNOPQRSTUVWXYZ
]],
[0],
[[input.y:9.36-61: <warning>warning:</warning> symbol
ABCDEFGHIJKLMNOPQRSTUVWXYZ redeclared [<warning>-Wother</warning>]
- 9 | %token ABCDEFGHIJKLMNOPQRSTUVWXYZ
<warning>ABCDEFGHIJKLMNOPQRSTUVWXYZ</warning> ABCDEFGHI
+ 9 | %token ABCDEFGHIJKLMNOPQRSTUVWXYZ
<warning>ABCDEFGHIJKLMNOPQRSTUVWXYZ</warning> ABCDEF...
|
<warning>^~~~~~~~~~~~~~~~~~~~~~~~~~</warning>
input.y:9.8-33: previous declaration
- 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note>
ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHI
+ 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note>
ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEF...
| <note>^~~~~~~~~~~~~~~~~~~~~~~~~~</note>
input.y:9.64-89: <warning>warning:</warning> symbol ABCDEFGHIJKLMNOPQRSTUVWXYZ
redeclared [<warning>-Wother</warning>]
- 9 | %token ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ
<warning>ABCDEFGHI</warning>
- |
<warning>^~~~~~~~~</warning>
+ 9 | %token ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ
<warning>ABCDEF</warning>...
+ |
<warning>^~~~~~</warning>
input.y:9.8-33: previous declaration
- 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note>
ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHI
+ 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note>
ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEF...
| <note>^~~~~~~~~~~~~~~~~~~~~~~~~~</note>
input.y:9.92-117: <warning>warning:</warning> symbol
ABCDEFGHIJKLMNOPQRSTUVWXYZ redeclared [<warning>-Wother</warning>]
9 | ...TUVWXYZ <warning>ABCDEFGHIJKLMNOPQRSTUVWXYZ</warning>
| ... <warning>^~~~~~~~~~~~~~~~~~~~~~~~~~</warning>
input.y:9.8-33: previous declaration
- 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note>
ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHI
+ 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note>
ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEF...
| <note>^~~~~~~~~~~~~~~~~~~~~~~~~~</note>
]],
[[COLUMNS=80]])
@@ -377,22 +377,22 @@ exp: ABCDEFGHIJKLMNOPQRSTUVWXYZ
]],
[0],
[[input.y:9.36-61: <warning>warning:</warning> symbol
ABCDEFGHIJKLMNOPQRSTUVWXYZ redeclared [<warning>-Wother</warning>]
- 9 | %token ABCDEFGHIJKLMNOPQRSTUVWXYZ <warning>ABCDEFGHIJKLMNOPQ</warning>
- | <warning>^~~~~~~~~~~~~~~~~</warning>
+ 9 | %token ABCDEFGHIJKLMNOPQRSTUVWXYZ <warning>ABCDEFGHIJKLMN</warning>...
+ | <warning>^~~~~~~~~~~~~~</warning>
input.y:9.8-33: previous declaration
- 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note> ABCDEFGHIJKLMNOPQ
+ 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note> ABCDEFGHIJKLMN...
| <note>^~~~~~~~~~~~~~~~~~~~~~~~~~</note>
input.y:9.64-89: <warning>warning:</warning> symbol ABCDEFGHIJKLMNOPQRSTUVWXYZ
redeclared [<warning>-Wother</warning>]
- 9 | ...TUVWXYZ <warning>ABCDEFGHIJKLMNOPQRSTUVWXYZ</warning> ABCDEFGHIJKL
+ 9 | ...TUVWXYZ <warning>ABCDEFGHIJKLMNOPQRSTUVWXYZ</warning> ABCDEFGHI...
| ... <warning>^~~~~~~~~~~~~~~~~~~~~~~~~~</warning>
input.y:9.8-33: previous declaration
- 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note> ABCDEFGHIJKLMNOPQ
+ 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note> ABCDEFGHIJKLMN...
| <note>^~~~~~~~~~~~~~~~~~~~~~~~~~</note>
input.y:9.92-117: <warning>warning:</warning> symbol
ABCDEFGHIJKLMNOPQRSTUVWXYZ redeclared [<warning>-Wother</warning>]
9 | ...TUVWXYZ <warning>ABCDEFGHIJKLMNOPQRSTUVWXYZ</warning>
| ... <warning>^~~~~~~~~~~~~~~~~~~~~~~~~~</warning>
input.y:9.8-33: previous declaration
- 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note> ABCDEFGHIJKLMNOPQ
+ 9 | %token <note>ABCDEFGHIJKLMNOPQRSTUVWXYZ</note> ABCDEFGHIJKLMN...
| <note>^~~~~~~~~~~~~~~~~~~~~~~~~~</note>
]],
[[COLUMNS=60]])
--
2.23.0
- [PATCH 00/11] diagnostics: truncate quoted sources to fit the screen width, Akim Demaille, 2019/09/21
- [PATCH 01/11] diagnostics: style: minor changes, Akim Demaille, 2019/09/21
- [PATCH 04/11] diagnostics: style: use a boundary to track the caret_info, Akim Demaille, 2019/09/21
- [PATCH 02/11] diagnostics: style: add caret_set_file, Akim Demaille, 2019/09/21
- [PATCH 07/11] diagnostics: truncate quoted sources to fit the screen, Akim Demaille, 2019/09/21
- [PATCH 03/11] diagnostics: extract boundary_compute from location_compute, Akim Demaille, 2019/09/21
- [PATCH 06/11] diagnostics: learn how to count column number with multibyte chars, Akim Demaille, 2019/09/21
- [PATCH 05/11] diagnostics: style: rename member for clariy, Akim Demaille, 2019/09/21
- [PATCH 09/11] diagnostics: also show truncation at the end of line with "...",
Akim Demaille <=
- [PATCH 10/11] diagnostics: don't print ellipsis on the caret line, Akim Demaille, 2019/09/21
- [PATCH 11/11] diagnostics: get the screen width from the terminal, Akim Demaille, 2019/09/21
- [PATCH 08/11] diagnostics: check that quoted lines are truncated, Akim Demaille, 2019/09/21
- [PATCH 11/11] diagnotics: get the screen width from the terminal, Akim Demaille, 2019/09/21