bison-patches
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]