]> git.neil.brown.name Git - edlib.git/commitdiff
render-lines: don't look for point in line where it isn't.
authorNeilBrown <neil@brown.name>
Tue, 8 Aug 2023 23:17:13 +0000 (09:17 +1000)
committerNeilBrown <neil@brown.name>
Fri, 11 Aug 2023 04:33:23 +0000 (14:33 +1000)
call_render_line_to_point() doesn't return an error, so calling
it when point isn't on the line isn't well defined.
So don't do it.

This changes the number of blank lines after end-of-file, which I think
I am happy with, so self-tests change.

Signed-off-by: NeilBrown <neil@brown.name>
DOC/TODO.md
render-lines.c
tests.d/00-basic
tests.d/01-redraw
tests.d/02-spell

index 25fd6cbbc0a313cdcbf952c2b878c3ebd78214c0..346ab4bd5bc0463e558cd214c8ab5432a0baaaad 100644 (file)
@@ -9,10 +9,12 @@ the file.
 
 ### Triage
 
+- [ ] find a better wat to handle "case when EOF is at the end" of
+      a non-empty line.
 - [X] call, not caLl in server.py
 - [X] lib-server received unexpected notification Close
 - [ ] should pane ->cx,cy be a struct xy??
-- [ ] revalidate_start shouldn't find cursor on line where it is known
+- [X] revalidate_start shouldn't find cursor on line where it is known
       not to be
 - [ ] call_render_line_to_point() never returns negative - why do we check?
 - [ ] should pane_resize() report if any change happened?
index 9ab3266b8fd25ed1e906701c16b72a4f273dbdec..1f65d00fa7e0f9edcc9cbc57d4f4f6b5d2e058d1 100644 (file)
@@ -1148,7 +1148,8 @@ static int revalidate_start(struct rl_data *rl safe,
                                        /* Cannot make more margin space */
                                        on_screen = True;
                        }
-               } else if (pm && y >= p->h && m->seq < pm->seq) {
+               } else if (pm && m2 && y >= p->h && m->seq < pm->seq &&
+                          mark_ordered_not_same(pm, m2)) {
                        /* point might be in this line, but off end
                         * of the screen
                         */
@@ -1167,7 +1168,12 @@ static int revalidate_start(struct rl_data *rl safe,
                                }
                        }
                } else if (pm && mark_ordered_or_same(m, pm) && m2 &&
-                          mark_ordered_or_same(pm, m2)) {
+                          (mark_ordered_not_same(pm, m2) ||
+                           (mark_same(pm, m2) && !is_eol(doc_prior(focus,m2))))
+                          ) {
+                       /* Above doc_prior handles case when EOF is at the end
+                        * of a non-empty line.
+                        */
                        if (rl->margin == 0)
                                on_screen = True;
                        else {
index 8e5501d533e5130cff85c6d471be6a8c1518654a..32da2b5a511c8aa2be52643737e159303151d277 100644 (file)
@@ -20,13 +20,13 @@ Display 80,30 EC7DED6582A632077A366C3D1F1A2F9B 1,25
 Key ":Enter"
 Display 80,30 E8DCC68C9F90AC7FD5E8A5010CFBD8E9 1,26
 Key ":Backspace"
-Display 80,30 D656E0ACDFE1951CCA27D8BE9091FD3C 1,25
+Display 80,30 0A5475D19D5C4C6C96B61C72805C2ED8 1,26
 Key ":C-_"
 Display 80,30 E8DCC68C9F90AC7FD5E8A5010CFBD8E9 1,26
 Key ":C-_"
-Display 80,30 EC7DED6582A632077A366C3D1F1A2F9B 1,25
+Display 80,30 96FEA00E8277BE1C441E14D8872241B2 1,26
 Key ":C-X"
-Display 80,30 715E233203438550E2B970240D7A6186 1,25
+Display 80,30 AE83375F702EEAFB20AEC86E9C393B69 1,26
 Key ":C-V"
 Display 80,30 453755D55FC0151ED0852A2467A28FF4 1,0
 Key ":C-N"
@@ -603,4 +603,4 @@ Key ":C-X"
 Display 80,30 84F4B35BF26F9D5EEBB67D572ADD0BBF 1,0
 Key ":C-C"
 Display 80,30 D2E6DB1DE1E62B191C28D1B2CFF7F1C0 1,0
-Close 1577
+Close 1579
index 7140d5a5b060809c40061cafcf866bb5519f84bf..58d1cd5c3cf07444b816dd56b40f2cc04d80080b 100644 (file)
@@ -18,11 +18,11 @@ Display 80,30 453755D55FC0151ED0852A2467A28FF4 1,0
 Key ":A->"
 Display 80,30 EC7DED6582A632077A366C3D1F1A2F9B 1,25
 Key ":Backspace"
-Display 80,30 B705B791B88A97C9122E3EBCA27D0A4D 1,24
+Display 80,30 E51181F73378769AB85755E7E5D8347B 1,26
 Key ":Backspace"
-Display 80,30 B8D1F5A047D0CDF73A424D0E9ECDF7E6 1,23
+Display 80,30 A584CC6741CD50643F40F2346A126F6A 1,26
 Key ":Backspace"
-Display 80,30 83A99E8EF1C858E6C3F579BA718D51BA 58,22
+Display 80,30 DD3456DA944C7DDE0A5501D007C9BB8A 58,25
 Key ":C-L"
 Display 80,30 DD3456DA944C7DDE0A5501D007C9BB8A 58,25
 Key ":C-L"
@@ -30,15 +30,15 @@ Display 80,30 E57C7503FBBA9926BA14E11A2A1DA809 58,0
 Key ":A->"
 Display 80,30 4E53CBF083420A0A8694E4FFDA3B37D9 58,0
 Key ":Enter"
-Display 80,30 87488D88DC0E9290B39491C36B2A3102 1,1
+Display 80,30 A584CC6741CD50643F40F2346A126F6A 1,26
 Key ":C-U"
-Display 80,30 0FECC1058FFD056D9BACBCC5B317281A 1,1
+Display 80,30 2163A0D46C0DC955DAECA5C731097088 1,26
 Key ":C-X"
-Display 80,30 2F49E1FB67BC2A2DDC2CA32459BB574B 1,1
+Display 80,30 A3990F4AB31ED410CECCFF2D8D31E623 1,26
 Key "-k"
 Display 80,30 CDBBFFABF0534E6F4508C0F00F8F75E0 1,8
 Key ":C-X"
 Display 80,30 D9F43AF47815B46A3E90E0795A30B979 1,8
 Key ":C-C"
 Display 80,30 CDBBFFABF0534E6F4508C0F00F8F75E0 1,8
-Close 185
+Close 210
index 495d8f313f57e560bb1fded41fd37c02bfeea0c8..00097c448d16ad5fce1d4051abfee8755c879d5d 100644 (file)
@@ -170,18 +170,13 @@ Display 80,30 D490A1144DD9D917A42AC864D0CE04BC 26,12
 Display 80,30 E75396ECA8F04A0D4C74BA188CCD7379 26,12
 Key ":A->"
 Display 80,30 475FC8D17E738BC421E226D2750645F1 1,25
-Display 80,30 90F5A60537498C9D6EB4BAE8A3D7BF85 1,25
-Display 80,30 4ADAA33B03C11382D5E500A5307BD81E 1,25
-Display 80,30 C2541DE509A02E7015A3EA1FA7EC287C 1,25
-Display 80,30 536098D3992A6E91B12DADF77059EE71 1,25
-Display 80,30 8536F6A5E7EB5822806F02815E882D88 1,25
-Display 80,30 B9BE77ED1BAE831D4F2911B667AD99FD 1,25
+Display 80,30 F61808ACA774E504E59348DDF8BBB755 1,26
 Key ":A-3"
-Display 80,30 92D009B2C37F6337D74B4BDFE20C8336 1,25
+Display 80,30 D404E447DED8F584462321714C25B13F 1,26
 Key ":A-0"
-Display 80,30 1238AB2508E8842C891F435B407462B5 1,25
+Display 80,30 36B0C9F47F36CB22ADB10DE9C476680A 1,26
 Key ":A-0"
-Display 80,30 83B553720D52E241B43F786EFDB2F5F4 1,25
+Display 80,30 A12F3E091B7703E4D117C5A11A88B92F 1,26
 Key ":C-P"
 Display 80,30 2DD263F735F29160D0346F2ED8D4FCB7 1,0
 Display 80,30 BC804E64A4CE8F7B1A1DB6683F9EF68C 1,0
@@ -231,4 +226,4 @@ Key ":C-X"
 Display 80,30 4EEC8A848EC8816669FCC7D1F8E9717F 59,24
 Key ":C-C"
 Display 80,30 D36C7F5A8DC1106D46597F3545834A58 59,24
-Close 606
+Close 591