Benno Schulenberg
14f1652842
tweaks: move a function to its proper place in the order of things
2020-03-09 09:44:43 +01:00
Benno Schulenberg
d4b97a08cd
tweaks: elide a variable and an unneeded iteration
2020-03-08 16:55:02 +01:00
Benno Schulenberg
c934c1d71b
justify: trim prefixed whitespace when justifying a marked region
...
This fixes https://savannah.gnu.org/bugs/?56307 .
Bug existed since version 4.0, when the justifying
of a marked region was introduced.
2020-03-08 16:18:34 +01:00
Benno Schulenberg
a16315a65f
tweaks: remove a redundant statement, a spurious reference to 'cutbottom'
...
This assignment should have been removed in commit f5ac8c1e
from
six years ago, as it became superfluous then. Later changes made
'cutbottom' become valid only when something had actually been cut.
2020-03-08 15:50:55 +01:00
Benno Schulenberg
d6beca5dcf
justify: do not copy too many bytes when trimming leading whitespace
...
This fixes https://savannah.gnu.org/bugs/?57972 .
Bug existed since version 4.0, commit 877a6498
.
2020-03-08 15:09:40 +01:00
Benno Schulenberg
9d7e62be1a
tweaks: rename two variables, to be different or for more contrast
...
Also, invert the logic of the second.
2020-03-08 14:12:45 +01:00
Benno Schulenberg
5c008726f0
tweaks: rename two variables, to harmonize with two others
2020-03-08 14:04:29 +01:00
Benno Schulenberg
8c506d86af
tweaks: rename two variables, to suit both the marked and unmarked case
2020-03-08 13:57:04 +01:00
Benno Schulenberg
db7a49edc6
tweaks: create an undo item earlier, and discard it when needed
...
This avoids having to temporariyly store and then later fill in
the original cursor position.
2020-03-08 13:40:38 +01:00
Benno Schulenberg
2428c5cbe6
tweaks: strip a parameter that is equivalent to 'openfile' for both calls
2020-03-08 12:54:47 +01:00
Benno Schulenberg
01bc0148c0
tweaks: strip a parameter that is TRUE for both calls
...
The parameter has been redundant since version 4.0, commit d54840c1
,
when the last call with FALSE was removed.
2020-03-08 12:48:41 +01:00
Benno Schulenberg
a92511ceaf
tweaks: move another function to where it is used
2020-03-06 18:52:42 +01:00
Benno Schulenberg
19517fc51e
tweaks: elide a parameter, and rename a variable
2020-03-06 17:06:14 +01:00
Benno Schulenberg
71c35d3ca2
tweaks: move a function to where it is used
2020-03-06 17:00:31 +01:00
Benno Schulenberg
38af812a82
tweaks: reshuffle the setting of the starting point of a cut
2020-03-06 16:57:22 +01:00
Benno Schulenberg
622111613f
tweaks: elide two variables and their two assignments
...
Also reshuffle two declarations, and confine the swapping of
the endpoints of a backward-marked region to a smaller scope.
2020-03-06 12:49:06 +01:00
Benno Schulenberg
21ef05058c
tweaks: add a COUPLE_END undo item a bit later, instead of updating it
2020-03-06 12:30:24 +01:00
Benno Schulenberg
abcdd6605c
tweaks: reshuffle a condition, for compacter code
2020-03-05 19:37:09 +01:00
Benno Schulenberg
f2d89cb3bc
justify: restore a region properly when it was marked backwards
...
This fixes https://savannah.gnu.org/bugs/?57960 .
Bug existed since version 4.8, commit e01651cd
.
2020-03-05 18:46:37 +01:00
Benno Schulenberg
2d05ce37c6
justify: do not crash when the user attempts to justify an empty region
...
This fixes https://savannah.gnu.org/bugs/?57959 .
Bug existed since version 4.0, since the justifying
of a marked region was introduced.
2020-03-05 16:57:16 +01:00
Benno Schulenberg
2bc5c1987c
tweaks: factor out a three-line condition into a separate function
...
For clarity.
2020-03-05 16:09:56 +01:00
Benno Schulenberg
e39e2ddf52
tweaks: add a supporting variable, in order to condense some statements
2020-03-05 16:07:52 +01:00
Benno Schulenberg
ac61254581
tweaks: invert the logic of a symbol, to make more sense
...
Giving a name to the uncommon case is more fitting.
It also avoids a negation and allows to elide a condition.
2020-03-05 15:12:08 +01:00
Benno Schulenberg
9e182fde66
tweaks: swap the use of 'head' and 'tail' for CUT and PASTE undo items
...
Now the 'head' endpoint is closer to the top of the buffer, and the
'tail' endpoint closer to the bottom. That makes more sense.
2020-03-05 14:52:02 +01:00
Benno Schulenberg
70d59ffe16
tweaks: remove a redundant assignment
...
Consecutive additions all happen on the same line. When automatic
hard-wrapping occurs, the ADD item is grouped together with an ENTER
item, and subsequent additions go into a new ADD item.
2020-03-05 13:32:20 +01:00
Benno Schulenberg
fb4bcd8cfd
undo: store the cursor row, for redoing filtering & justification better
...
This fixes https://savannah.gnu.org/bugs/?57958 .
2020-03-05 12:34:55 +01:00
Benno Schulenberg
2288abcd49
tweaks: use the variable that suits 'END' better
2020-03-05 12:34:17 +01:00
Benno Schulenberg
89217f20af
tweaks: rename two symbols, to be more precise
2020-03-02 17:16:07 +01:00
Benno Schulenberg
477a9b33b4
files: when piping, always pipe whatever was cut to the external command
...
Either the marked region was cut (even when zero characters) or
the entire contents of the buffer were cut. In both cases this
is what needs to be piped to the command. That is: the contents
of the cutbuffer.
This fixes https://savannah.gnu.org/bugs/?57931 .
Bug existed since version 2.9.8, commit f304b9ae
,
when piping text to an external command was introduced.
2020-03-02 13:36:56 +01:00
Benno Schulenberg
4409b275fc
tweaks: avoid a complaint about uninitialized memory [valgrind]
...
This addresses https://savannah.gnu.org/bugs/?57932 .
2020-03-01 17:08:50 +01:00
Benno Schulenberg
8848ac5a9b
undo: do not try to copy a cutbuffer that is NULL
...
Allow the creation of an empty CUT undo item (because the result of a
filtering operation may be empty), but then don't crash when undoing
such an empty CUT.
This fixes https://savannah.gnu.org/bugs/?57929 .
Bug existed since version 2.9.8, when filtering was introduced.
2020-03-01 12:59:54 +01:00
Benno Schulenberg
c055e629c7
tweaks: copy and store a deleted character in a conciser manner
2020-02-28 19:24:31 +01:00
Benno Schulenberg
e6f26464d7
tweaks: add calls of die() for five theoretical programming mistakes
2020-02-28 19:15:23 +01:00
Benno Schulenberg
a0aeeba075
tweaks: remove two redundant case labels
...
The add_undo() and update_undo() functions are never called with
JOIN as argument, so there is no need to have a case label for it.
2020-02-28 19:05:09 +01:00
Benno Schulenberg
c640a55b1c
tweaks: frob a statement, rewrap two lines, and remove a pair of braces
2020-02-28 18:59:04 +01:00
Benno Schulenberg
7d0b7e47c1
undo: use the correct original fusion point when unjoining two lines
...
When a <Backspace> did the join, 'head' and 'tail' are not the same.
This fixes https://savannah.gnu.org/bugs/?57916 .
Bug existed since commit 7cf08b93
from yesterday.
2020-02-28 17:09:03 +01:00
Benno Schulenberg
132ed5c8f0
tweaks: instead of swapping the end points later, assign them correctly
...
(This also makes it clear that the naming of 'head' and 'tail'
is the wrong way around for CUT too.)
2020-02-28 15:25:23 +01:00
Benno Schulenberg
bd88b8b5a6
undo: do not mark the buffer as modified when pasting back nothing
...
This completes the fix for https://savannah.gnu.org/bugs/?57915 .
2020-02-28 13:40:35 +01:00
Benno Schulenberg
0568f7a2b6
undo: do not try to paste back an empty cutbuffer
...
Trying to do so would dereference a NULL pointer in copy_node().
This fixes https://savannah.gnu.org/bugs/?57915 .
Bug existed since before version 2.2.0.
2020-02-28 13:40:06 +01:00
Benno Schulenberg
1a28b08694
tweaks: frob two statements, condense another, and add a comment
...
Also, remove two superfluous closings of file descriptors. The second
one has most likely already been closed by send_data(), by closing the
tube, and the first one will be closed by exiting from the process.
2020-02-28 12:41:27 +01:00
Benno Schulenberg
3b3a6b12a7
tweaks: remove two superfluous checks
...
The single check when creating any CUT undo item is enough.
2020-02-28 10:28:23 +01:00
Benno Schulenberg
50213eee81
tweaks: reorder a case item, to have SPLIT_BEGIN always before SPLIT_END
...
Also, avoid two superfluous assignments of a message, as they get
overwritten immediately by other ones, and later with the same.
Furthermore, remove two pointless placements of the cursor. Any
necessary placements are handled by the actual adding of data and
the breaking of lines in the ADD and ENTER items.
2020-02-27 16:38:52 +01:00
Benno Schulenberg
7cd2a7da7c
tweaks: remove a superfluous assignment, and reshuffle a call
2020-02-27 15:09:36 +01:00
Benno Schulenberg
4f67f364bc
tweaks: when undoing an addition or redoing a deletion, do not reallocate
...
Especially when undoing an addition, reallocating the line data is a
waste of time, because most likely other text will be added instead.
(This also removes a coding error in the redo code for a deletion:
it allocated too many bytes for the new line data: twice the amount
of the deletion too much.)
2020-02-27 14:16:49 +01:00
Benno Schulenberg
7cf08b93ff
tweaks: don't bother reallocating the line data when undoing a line join
2020-02-27 13:51:56 +01:00
Benno Schulenberg
474a1f0447
tweaks: rename to the same name two variables that have the same role
2020-02-27 13:46:57 +01:00
Benno Schulenberg
76d7fbd5ee
tweaks: rename a variable, away from a single letter
2020-02-27 13:28:01 +01:00
Benno Schulenberg
8d87410c94
tweaks: rearrange a case item, so that PASTE is always after CUT
...
Also, for a REPLACE, the 'head' point does not need to be updated,
because a replacement does not change the cursor position.
2020-02-27 12:13:24 +01:00
Benno Schulenberg
1961c052c8
tweaks: simplify the undoing and redoing of an <Enter>
...
I don't know what I was thinking three years ago with this convoluted
'from_x' and 'to_x'. When undoing an <Enter>, the cursor always needs
to be placed back at the 'head' point. And the data always needs to be
copied starting from 'tail_x' (skipping any whitespace that autoindent
might have added).
When redoing an <Enter>, there is no need to reallocate and copy the
data of the line, it is enough to just clip it at the original cursor
position. (This wastes some memory, but... how often does one redo
an <Enter>? So, conciseness of the code is preferable.)
2020-02-27 12:11:58 +01:00
Benno Schulenberg
843dbd56ef
tweaks: rename two more elements of an undo record, for symmetry
...
(Note that for a PASTE and a COUPLE_END the variables seem to be used
the wrong way around. Maybe this can be improved.)
2020-02-27 10:08:48 +01:00