David Lawrence Ramsey
19a1129698
text: hook up indenting and unindenting to the undo/redo code
...
This is modeled after the comment/uncomment code. Each line's
individual indent is saved in the string array of the undo
group structure.
This fixes http://savannah.gnu.org/bugs/?46860 .
2017-09-12 20:08:30 +02:00
David Lawrence Ramsey
f722c53223
undo: generalize update_comment_undo() into update_multiline_undo()
...
The function does not contain any comment-specific code, so it can
be used to handle any kind of multiline undo item.
Also, extend the undo group structure to contain an array of strings,
one for each line in the group. When indent/unindent is hooked up to
the undo/redo code, this will allow the latter to restore the exact
original indents.
2017-09-12 19:49:44 +02:00
Benno Schulenberg
ffc550521c
tweaks: chuck a bunch of asserts -- they have lost their usefulness
2017-09-10 14:08:24 +02:00
Benno Schulenberg
8d229cb712
tweaks: rename a variable, to make more sense
...
Also, remove an unneeded null_at() -- the null byte has been copied,
and reallocating the string would recover very little memory.
Also, call charmove() without using the & operator.
2017-09-10 13:28:13 +02:00
Benno Schulenberg
abf7ac48a1
tweaks: rename three variables, for more contrast
2017-09-10 13:04:03 +02:00
David Lawrence Ramsey
fc0e16f6bc
text: move the unindenting of a single line into its own function
2017-09-10 12:59:04 +02:00
David Lawrence Ramsey
57d7f8852d
text: move the indenting of a single line into its own function
...
This is modeled after the undo/redo code for commenting. do_indent() now
calls indent_a_line() on each line it covers. The latter function will
eventually be used by the undo/redo code.
2017-09-10 12:43:10 +02:00
Benno Schulenberg
ae25e15d61
startup: don't produce more than three consecutive beeps
...
This fixes https://savannah.gnu.org/bugs/?51918 .
2017-09-02 15:31:02 +02:00
Benno Schulenberg
21ffa883f7
tweaks: use mnemonic constants instead of TRUE and FALSE
...
And use these constants in another context too.
2017-08-31 22:14:06 +02:00
Benno Schulenberg
98ec41b4fa
tweaks: rename three functions, to be shorter or clearer
2017-08-31 22:00:53 +02:00
Benno Schulenberg
a4a32b910a
tweaks: reshuffle a couple of lines, and trim some comments
2017-08-31 21:55:10 +02:00
Benno Schulenberg
28cfab7580
tweaks: fix compilation when configured with --enable-tiny
...
When moving the cursor to the top-left corner, it is not necessary
to compute leftedge because firstcolumn IS the relevant leftedge.
Reported-by: Jordi Mallach <jordi@debian.org>
2017-08-29 19:28:44 +02:00
Benno Schulenberg
758b4e66db
po: update translations and regenerate POT file and PO files
2017-08-27 10:31:28 +02:00
Benno Schulenberg
a09eedf0a3
bump version numbers and add a news item for the 2.8.7 release
2017-08-27 09:37:01 +02:00
Benno Schulenberg
1a7ceb8774
tweaks: oops -- use the correct keyword for recency... "age"
2017-08-26 11:11:40 +02:00
Benno Schulenberg
69fcb001ea
tweaks: attempt to order the branches on Savannah's cgit by recency
2017-08-26 11:09:39 +02:00
David Lawrence Ramsey
59451da3ac
softwrap: correctly move vertically through overwide tabs
...
Don't skip rows that contain something when moving up, and do put
the cursor in the desired column whenever possible when moving down.
This fixes http://savannah.gnu.org/bugs/?51827
and fixes http://savannah.gnu.org/bugs/?51828 .
2017-08-26 10:14:01 +02:00
David Lawrence Ramsey
a850bb2513
moving: redraw not just the new current line but also the prior one
...
This fixes http://savannah.gnu.org/bugs/?51821 .
2017-08-22 19:21:47 +02:00
Benno Schulenberg
047cf9be9c
moving: improve retention of the target column somewhat
...
It's not yet good enough: when proper_x() pushes the index forward,
maybe it should also increase leftedge? Or go_forward_chunks()?
2017-08-22 16:11:20 +02:00
Benno Schulenberg
97896d30f1
moving: use the correct formula for pushing the index forward
...
This helps to fix https://savannah.gnu.org/bugs/?51787 .
Correction-by: David Lawrence Ramsey <pooka109@gmail.com>
2017-08-22 16:11:11 +02:00
Benno Schulenberg
fc367a32eb
moving: don't push x forward when backward movement lands on a split tab
...
This fixes https://savannah.gnu.org/bugs/?51809 .
2017-08-22 16:05:44 +02:00
David Lawrence Ramsey
5e10528759
display: revamp how screen updates are done in the movement code
...
When the screen is narrower than a tab is wide, the cursor does not need
to be on the first/last line of the window before an <Up>/<Down> could
need to scroll the screen.
This fixes http://savannah.gnu.org/bugs/?51776 .
Reported-by: David Lawrence Ramsey <pooka109@gmail.com>
2017-08-21 21:25:55 +02:00
Benno Schulenberg
243380c4a2
mouse: one click of the wheel should move three lines, not three pages
...
This fixes https://savannah.gnu.org/bugs/?51802 .
2017-08-20 20:45:56 +02:00
Benno Schulenberg
49fb755cfc
moving: get <Up> unstuck when trying to pass over a sprawling tab
...
This is a temporary fix. The resultant movement is erratic and
not what is desired (which is: to stay in the same screen column
as much as possible).
2017-08-20 20:26:05 +02:00
Benno Schulenberg
24a64d37dd
softwrap: properly move up and down over tabs that are split over rows
...
Also, move home to the first character after the tab if the current
chunk starts with a partial tab.
This fixes https://savannah.gnu.org/bugs/?51800 .
Original-idea-by: David Lawrence Ramsey <pooka109@gmail.com>
2017-08-20 20:24:58 +02:00
Benno Schulenberg
a56a881c4b
browser: correct the inverted search behavior for Alt+Up/Alt+Down
...
This should have been added and amended in the previous commit --
my mistake.
2017-08-20 09:22:19 +02:00
David Lawrence Ramsey
633343de24
browser: allow backward/forward re-searches with Alt+Up/Alt+Down
...
Also bind 'N' to a backward re-search, while retaining 'n' for a
forward one, This matches the functionality in the help viewer.
2017-08-19 21:49:32 +02:00
David Lawrence Ramsey
5fcda555ea
display: constrain line numbers on softwrapped lines with sprawling tabs
...
Check the column number, not the character index, when suppressing the
line number on chunks other than the first, since the index can be zero
when in fact we're on a later chunk.
This fixes https://savannah.gnu.org/bugs/index.php?51790 .
2017-08-19 20:50:01 +02:00
Benno Schulenberg
873f99d96a
tweaks: show "where is next" in the help lines of the file browser
2017-08-19 18:11:59 +02:00
Benno Schulenberg
b38b020d18
tweaks: fix compilation with --enable-{tiny,help,multibuffer}
...
This fixes https://savannah.gnu.org/bugs/?51777 .
Reported-by: David Lawrence Ramsey <pooka109@gmail.com>
2017-08-19 17:35:58 +02:00
Benno Schulenberg
54a92614b2
tweaks: group all movement routines in corresponding pairs
2017-08-18 22:20:32 +02:00
Benno Schulenberg
86e71fa09d
tweaks: specify more directly in what manner to move the viewport
2017-08-18 21:46:55 +02:00
David Lawrence Ramsey
5237a42d65
weeding: remove the unused be_clever parameter from do_home()/do_end()
2017-08-18 20:44:46 +02:00
David Lawrence Ramsey
46ccc9ba6a
softwrap: improve left/right navigation across line boundaries
...
Using do_up() and do_end() when the user types <Left> at the start of
a line, and do_down() and do_home() when typing <Right> at line's end
can be problematic when tabs are wider than the screen, because those
functions convert indexes to columns and back again twice, thus causing
inaccuracies. Therefore, simply adjust current and current_x directly,
and then redraw the screen.
This fixes https://savannah.gnu.org/bugs/index.php?51778 .
2017-08-18 20:04:23 +02:00
David Lawrence Ramsey
e09dbf18b1
display: do show the visible character for a tab when it starts a row
...
Regardless of whether the row start is at a multiple of the tab size.
This completes the fix for https://savannah.gnu.org/bugs/?51669 .
2017-08-17 20:09:50 +02:00
David Lawrence Ramsey
f08d169aa1
softwrap: make sure char_len is set when a tab is wider than a chunk
...
This fixes https://savannah.gnu.org/bugs/?51770 ,
and fixes https://savannah.gnu.org/bugs/?51768 .
Reported-by: David Lawrence Ramsey <pooka109@gmail.com>
2017-08-17 19:39:51 +02:00
Benno Schulenberg
cf14ee2ef3
moving: the current chunk is always 0 when not in softwrap mode
...
This is a partial fix for https://savannah.gnu.org/bugs/?51770 .
Analysis-by: David Lawrence Ramsey <pooka109@gmail.com>
2017-08-17 19:33:43 +02:00
Benno Schulenberg
8555820afc
tweaks: rename a label, to better match its task
2017-08-16 22:00:10 +02:00
Benno Schulenberg
e7bdfebdf4
rcfile: don't leak a shortcut when something goes wrong [coverity scan]
2017-08-16 21:56:56 +02:00
Benno Schulenberg
4bbbb1859b
tweaks: adjust the indentation after the previous change
...
Also rename a variable, to match the saving routine.
2017-08-16 21:46:39 +02:00
Benno Schulenberg
6645351bfc
tweaks: avoid trying to stat a file that might be NULL [coverity scan]
2017-08-16 21:39:41 +02:00
Benno Schulenberg
a5981ab043
tweaks: don't close a descriptor when its stream has already been closed
2017-08-16 20:31:38 +02:00
Benno Schulenberg
807f5c2e69
tweaks: do not leak the indentation when all lines are empty
2017-08-16 17:16:18 +02:00
Benno Schulenberg
1b2a091de9
tweaks: condense or improve some comments
...
Also reshuffle an initialization and drop two useless asserts.
2017-08-16 17:10:40 +02:00
Benno Schulenberg
bd770ea2e7
text: properly unindent lines that consist of only whitespace
...
The preceding 'for' loop has already established that all the lines are
either unindentable or composed of only blanks. So if now a line cannot
be unindented, it means it is fully blank, so it can be simply skipped.
This fixes https://savannah.gnu.org/bugs/?51760 .
Reported-by: David Lawrence Ramsey <pooka109@gmail.com>
2017-08-16 16:42:44 +02:00
Benno Schulenberg
c3de3ece32
gnulib: update to its current upstream state
2017-08-15 22:00:14 +02:00
Benno Schulenberg
8b86af3fef
tweaks: adjust the indentation after the previous change
2017-08-15 19:13:22 +02:00
Benno Schulenberg
21a5978027
tweaks: reshuffle some code to harmonize two related functions
2017-08-15 18:05:06 +02:00
Benno Schulenberg
b4fd08fa5e
tweaks: keep the const qualifier of the syntax name [coverity scan]
...
Also, reduce the scope of the 'line' variable.
2017-08-15 17:20:07 +02:00
Benno Schulenberg
252dc138a2
tweaks: reshuffle some declarations and trim a few comments
2017-08-15 14:15:23 +02:00