GNU nano - Bugs: bug #52183, nano does not hold desired column...
You are not allowed to post comments on this tracker with your current authentication level.
bug #52183: nano does not hold desired column when going <Up> over an overwide tab
Submitter: | Benno Schulenberg <bens> | ||
Submitted: | Sat 07 Oct 2017 01:51:32 PM UTC | ||
Severity: | 3 - Normal | Status: | Fixed |
Assigned to: | bens | Open/Closed: | Closed |
Jump to the original submission
Wed 25 Oct 2017 03:51:41 PM UTC, comment #15: |
Benno Schulenberg <bens> |
Fri 20 Oct 2017 07:10:03 PM UTC, comment #14: Right; the newer_x check was an attempt to work around the need for proper_x(), which as it turned out wasn't enough.
|
David Lawrence Ramsey <dolorous> |
Fri 20 Oct 2017 06:08:51 PM UTC, comment #13: When using proper_x() a second time, I don't think that the check for newer_x > current_x is needed. So I propose the attached version. Thanks for the extensive testing. |
Benno Schulenberg <bens> |
Thu 19 Oct 2017 10:48:31 PM UTC, comment #12: And, for the record, even more detailed testing, with the file that was attached in comment #6:
|
David Lawrence Ramsey <dolorous> |
Thu 19 Oct 2017 09:21:58 PM UTC, comment #11: (The previous testing, as well as this testing, is done with an 80x24 terminal.)
|
David Lawrence Ramsey <dolorous> |
Thu 19 Oct 2017 09:13:43 PM UTC, comment #10: More detailed testing with current git and my patch from comment #9 applied:
|
David Lawrence Ramsey <dolorous> |
Mon 16 Oct 2017 11:32:46 PM UTC, comment #9: Attached is a tweaked version of your last patch that seems to fix the issue, although I've only done preliminary testing so far.
|
David Lawrence Ramsey <dolorous> |
Mon 16 Oct 2017 10:59:49 PM UTC, comment #8: And when tracing through it with the patch applied:
|
David Lawrence Ramsey <dolorous> |
Mon 16 Oct 2017 09:35:31 PM UTC, comment #7: To make the last post clearer, I mean that if you run the same test with current git (58ecc03) without the patch in comment #4 applied, the column position when moving upward is wrong (obviously), but pressing Up from row 5 does properly move from row 5 to row 3, and pressing Up from row 3 does properly move from row 3 to row 1. |
David Lawrence Ramsey <dolorous> |
Mon 16 Oct 2017 08:50:48 PM UTC, comment #6: I just found a case where it regresses, relative to current git (using my nano binary, but I've cut it down to a smaller case). With the attached file, and your patch from comment #4 applied, in an 80x24 terminal, run:
|
David Lawrence Ramsey <dolorous> |
Sun 15 Oct 2017 04:25:54 PM UTC, comment #5: After some quick testing, it seems to work; thanks. I'll keep testing it. |
David Lawrence Ramsey <dolorous> |
Sun 15 Oct 2017 08:31:18 AM UTC, comment #4: Third attempt. |
Benno Schulenberg <bens> |
Sun 15 Oct 2017 07:12:57 AM UTC, comment #3: It breaks the going backward over tabs where there is something on that same row after the tab. The accepting of the newer_x has to be conditionalized, it has to accept it only when... |
Benno Schulenberg <bens> |
Sat 14 Oct 2017 07:35:45 PM UTC, comment #2: Thanks for your efforts. I've also tried to fix this issue, right after finding and reporting it, but couldn't get it to do what I wanted. My idea was that proper_x() should recompute the leftedge also when the index is not incremented, because the given leftedge does not correspond to the chunk that the cursor will actually be placed on. But I couldn't make it work.
|
Benno Schulenberg <bens> |
Thu 12 Oct 2017 09:12:45 PM UTC, comment #1: I've looked into this, and I'm stumped for the moment. Either proper_x() will have to be extended to shift backwards as well as forwards, or your other idea of making the chunk iterators skip over chunks entirely taken up by tabs will have to be implemented.
|
David Lawrence Ramsey <dolorous> |
Sat 07 Oct 2017 01:51:32 PM UTC, original submission:
To reproduce, run:
|
Benno Schulenberg <bens> |
Depends on the following items: None found
Items that depend on this one: None found
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follow 13 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2017-11-19 | bens | Open/Closed | Open | Closed | |
2017-10-25 | bens | Status | In Progress | Fixed | |
Assigned to | None | bens | |||
2017-10-20 | bens | Attached File | - | Added 0001-moving-don-t-slide-and-slither-over-tabs-when-they-a.patch, #42202 | |
2017-10-19 | dolorous | Attached File | - | Added nanocrap2.txt, #42199 | |
2017-10-19 | dolorous | Attached File | - | Added nanocrap.txt, #42198 | |
2017-10-16 | dolorous | Attached File | - | Added double-proper-x-when-edge-changed.patch, #42175 | |
2017-10-16 | dolorous | Attached File | - | Added nanocrap3.txt, #42173 | |
2017-10-15 | bens | Attached File | - | Added accept-newerx-when-edge-changed.patch, #42158 | |
2017-10-14 | bens | Attached File | - | Added recompute-leftedge-always.patch, #42148 | |
Status | None | In Progress | |||
2017-10-12 | dolorous | Attached File | - | Added tabfix.patch, #42131 | |
Attached File | - | Added tabfix2.patch, #42132 |
Powered by Savane 3.13-3230.
Corresponding source code
Fixed in git, 3018ab47. Thanks for all the testing.