- 15 Apr, 2016 1 commit
-
-
Benno Schulenberg authored
Doing a chdir("..") will not fail when the root directory is reached, and when getcwd() keeps failing too, we have no way of knowing when to stop. So, simply limit the number of attempted chdirs, to avoid getting into an endless loop. This avoids the hang in https://savannah.gnu.org/bugs/index.php?47659 . Reported-by:
Chris Renshaw <osm0sis@outlook.com> Signed-off-by:
Benno Schulenberg <bensberg@justemail.net>
-
- 13 Apr, 2016 5 commits
-
-
Benno Schulenberg authored
If nano has less than four columns available, it will die, so there will always be room for at least four characters.
-
Benno Schulenberg authored
Also, don't force a full refresh of the edit window simply because the current line needs to be horizontally scrolled. And further, when the adjustment of edittop has determined that a full refresh is needed, get out and don't bother scrolling some lines first.
-
Benno Schulenberg authored
When in softwrap mode and scrolling down a line, and thus going to do a full refresh, get out and don't bother redrawing the current and prior lines first.
-
Benno Schulenberg authored
When moving the cursor up or down one line, redraw the new current line only when the target column (placewewant) is beyond the screen, or when the mark is on. (This still redraws the current and prior lines unnecessarily when they are in fact shorter than the screen is wide and the mark is off, but we'll let that pass for now.) Also, when softwrap is on, we don't have have to redraw the current and prior lines at all (when the mark is off): they are in full view, there is nothing to show or hide.
-
Benno Schulenberg authored
When scrolling down a line, a full refresh of the edit window is only needed when softwrap is on, because only then the movement is irregular. When each file line takes up just one screen line (softwrap is off), edit_scroll() is perfectly able to scroll and redraw only the necessary lines. (But... when doing a full refresh anyway with softwrap, why bother scrolling at all? Why not just adjust edittop and call refresh?)
-
- 12 Apr, 2016 2 commits
-
-
Mike Frysinger authored
These are formats used by binutils/glibc/gdb/gcc.
-
Benno Schulenberg authored
-
- 11 Apr, 2016 2 commits
-
-
Benno Schulenberg authored
The old_current line needs to be redrawn only if it differs from current, and if it wasn't drawn already by the iteration for when the mark is on. Also make the conditions involving horizontal scrolling more precise.
-
Benno Schulenberg authored
Instead of saving the current value of placewewant, then setting the new value, and then passing the old value to edit_redraw() in seven different places, just let edit_redraw() do this saving and setting. In the bargain placewewant is now only recalculated when it matters -- when allow_update is TRUE -- and not when it's superfluous.
-
- 10 Apr, 2016 4 commits
-
-
Benno Schulenberg authored
Nano doesn't start doing anything with the edit window or the keyboard until all files have been read in or a blank buffer has been opened, so the case of openfile->current == NULL will never occur. Also correct the comment -- because with multibyte characters, it is very well possible that the screen column corresponding to current_x is smaller than current_x itself.
-
Benno Schulenberg authored
Instead of allocating a fixed amount of 128 bytes, which will overflow and segfault, adjust the allocation to the length of the file name, and if necessary trim the file name to make the prompt fit on the screen. This fixes https://savannah.gnu.org/bugs/?47511 . Reported-by:
Aapo Rantalainen <aapo.rantalainen@gmail.com> Signed-off-by:
Benno Schulenberg <bensberg@justemail.net>
-
Benno Schulenberg authored
Now that findnextstr() no longer sets placewewant, we can can make a copy of the old value just where needed: when a bracket is found.
-
Benno Schulenberg authored
In the innermost search loop, don't set placewewant, because this loop is also used for replacing and spell fixing, when we don't really want to be there: we are just passing through. Not setting placewewant means we don't need to save and restore it in those passing-through routines. The value of placewewant is only relevant when doing cursor movement, which doesn't happen during replacing nor spell checking, so there is no need to keep placewewant up to date -- it is set when it matters: at the end of go_looking().
-
- 08 Apr, 2016 1 commit
-
-
Benno Schulenberg authored
Stop keeping track of the vertical screen position when searching for something. If nothing is found, current_y doesn't change, and all the incrementing/decrementing was a waste of time. If something is found and it is onscreen, it is easy to calculate the new current_y. And if something is found and it is offscreen, then current_y is irrelevant, because we will be either centering the found occurrence (searching) or putting it on the top or bottom line (bracket matching). (The above does not take softwrapping into account, but neither did the old code, so this doesn't introduce any new bugs.) (Also, when the search wraps, and the viewport is away from head or tail of the file, and the found occurrence is within the viewport, then the incremented/decremented current_y would be way wrong, but this didn't have any adverse effects as far as I could tell. It seems that current_y is irrelevant in most cases.)
-
- 07 Apr, 2016 1 commit
-
-
Benno Schulenberg authored
Add a third mode of scrolling, FLOWING, besides CENTERING and STATIONARY. This is used for word and paragraph jumping (and for bracket matching, but that worked correctly already), and only when focusing is FALSE. The new mode prevents the screen from scrolling too many lines when there are several blank lines at the bottom of the edit window and the next word or paragraph is out of view. This fixes https://savannah.gnu.org/bugs/?47194.
-
- 05 Apr, 2016 8 commits
-
-
Mike Scalora authored
On iTerm2 on OS X, the Option+Arrow keys produce special sequences that start with two escapes. Catch these sequences and interpret them appropriately as WordLeft / WordRight / Home / End. Signed-off-by:
Mike Scalora <mike@scalora.org> Signed-off-by:
Thomas Rosenau <thomasr@fantasymail.de> Signed-off-by:
Benno Schulenberg <bensberg@justemail.net>
-
Benno Schulenberg authored
-
Benno Schulenberg authored
-
Benno Schulenberg authored
So it will fit on the screen when using a standard 80-column terminal.
-
Benno Schulenberg authored
Don't call the latter ones Escape sequences, because both Control and Meta sequences can be entered using the Escape key.
-
Benno Schulenberg authored
-
Benno Schulenberg authored
-
Benno Schulenberg authored
-
- 04 Apr, 2016 7 commits
-
-
Mike Frysinger authored
-
Chris Allegretta authored
-
Chris Allegretta authored
-
Benno Schulenberg authored
This fixes https://savannah.gnu.org/bugs/?47544, and thus also http://gnats.netbsd.org/51010 . Reported-by:
Adrian Siekierka <asiekierka@gmail.com> Reported-by:
Matthew Hall <mhall@mhcomputing.net> Signed-off-by:
Benno Schulenberg <bensberg@justemail.net>
-
Benno Schulenberg authored
SVN revision 5748 could cause some 'else's to be orphaned. This fixes https://savannah.gnu.org/bugs/?47610 . Reported-by:
Thomas Rosenau <thomasr@fantasymail.de> Signed-off-by:
Benno Schulenberg <bensberg@justemail.net>
-
Benno Schulenberg authored
When finding a misspelled word, the length of the match is simply the length of that word, and its span in columns is simply the number of columns that it occupies. Compute it thus directly. Signed-off-by:
Benno Schulenberg <bensberg@justemail.net>
-
Benno Schulenberg authored
When searching for a misspelled word takes a while, and the user stops this search with ^C, then abort the spelling-checking session. Signed-off-by:
Benno Schulenberg <bensberg@justemail.net>
-
- 31 Mar, 2016 2 commits
-
-
Benno Schulenberg authored
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5782 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-
Benno Schulenberg authored
for whole words only, so it will be a whole word. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5781 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-
- 30 Mar, 2016 5 commits
-
-
Benno Schulenberg authored
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5780 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-
Benno Schulenberg authored
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5779 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-
Benno Schulenberg authored
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5778 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-
Benno Schulenberg authored
for aptness, for contrast. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5777 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-
Benno Schulenberg authored
that is taking too long. This fixes Savannah bug #47439. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5776 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-
- 29 Mar, 2016 2 commits
-
-
Benno Schulenberg authored
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5775 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-
Benno Schulenberg authored
whole spell-fixing session. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5774 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
-