- 07 Jul, 2017 4 commits
-
-
David Lawrence Ramsey authored
spotlight() now displays softwrapped lines chunk by chunk instead of all at once. Since softwrapped lines are no longer of constant width, the latter approach would fail if softwrapping breaks the spotlighted text. Instead of taking a string, spotlight() now takes the starting and ending columns of that string. Also, its handling of softwrapped lines is now split off into a separate function, spotlight_softwrapped().
-
David Lawrence Ramsey authored
Add the new function actual_last_column() to accomplish this.
-
David Lawrence Ramsey authored
get_chunk_row() replaces the formula "column / editwincols". get_chunk_leftedge() replaces "(column / editwincols) * editwincols". get_last_chunk_row() replaces "strlenpt() / editwincols". get_last_chunk_leftedge() replaces "(strlenpt() / editwincols) * editwincols". This prepares us for any changes in those formulas, and for more such functions later.
-
David Lawrence Ramsey authored
The new function find_softwrap_breakpoint() returns the column number of the last position in screen range where we can wrap the given text without breaking a two-column character in half (as was done until now). The returned column number is the leftedge of the next softwrapped chunk. If the end of the text is reached while searching for a wrapping point, the parameter end_of_line is set to TRUE. The new function get_chunk() uses find_softwrap_breakpoint() to find the row and leftedge corresponding to a given column of a given line.
-
- 06 Jul, 2017 1 commit
-
-
Benno Schulenberg authored
-
- 04 Jun, 2017 2 commits
-
-
Benno Schulenberg authored
-
Benno Schulenberg authored
-
- 29 May, 2017 1 commit
-
-
Benno Schulenberg authored
Achieve this by making the suppression flag global, so that we can just reset it instead of making an improper call of do_cursorpos(). This fixes the secondary part of https://savannah.gnu.org/bugs/?51134.
-
- 11 May, 2017 1 commit
-
-
Benno Schulenberg authored
When spotlighting the string to be replaced, placewewant isn't valid, so tell place_the_cursor() to ignore its value to avoid the cursor getting mistakenly placed at the beginning of the next row. This fixes https://savannah.gnu.org/bugs/?50997 . Reported-by:
David Lawrence Ramsey <pooka109@gmail.com>
-
- 09 May, 2017 2 commits
-
-
Benno Schulenberg authored
Also, allow rebinding the word and block jumping functions in the tiny version when nanorc files are reenabled.
-
Benno Schulenberg authored
-
- 08 May, 2017 4 commits
-
-
Benno Schulenberg authored
Also, allow Ctrl+Left/Right with --enable-tiny --enable-browser.
-
Benno Schulenberg authored
Also remove a superfluous check for 'do_replace' -- it never gets bound in the Search/Replace menus.
-
Benno Schulenberg authored
When configured with --enable-tiny --enable-multibuffer, /do/ include the new-buffer toggle in the Read-File menu.
-
Benno Schulenberg authored
-
- 05 May, 2017 1 commit
-
-
Benno Schulenberg authored
-
- 03 May, 2017 1 commit
-
-
Benno Schulenberg authored
And hide the cursor again as soon as the user scrolls. Achieve this through making the 'didfind' variable global. Also, remove a superfluous call of wnoutrefresh(), as bottombars() already does that. This fixes https://savannah.gnu.org/bugs/?50918 . Reported-by:
David Lawrence Ramsey <pooka109@gmail.com>
-
- 01 May, 2017 4 commits
-
-
Benno Schulenberg authored
Also, trim some comments and avoid an unused-variable warning.
-
Benno Schulenberg authored
-
Benno Schulenberg authored
Also, reshuffle two initializations to go sit with the other ones.
-
Benno Schulenberg authored
Things have morphed over time and display_buffer() no longer actually displays the buffer -- it just displays the title bar, precalculates the multiline color info, and schedules a refresh of the edit window.
-
- 30 Apr, 2017 1 commit
-
-
Benno Schulenberg authored
This avoids https://savannah.gnu.org/bugs/?49912 while at the same time avoiding to draw the edit window twice in a row -- the first drawing would use a wrong margin, which results in a visible and irritating shift left or right of the content upon the second drawing. This fixes https://savannah.gnu.org/bugs/?50877.
-
- 28 Apr, 2017 3 commits
-
-
Benno Schulenberg authored
-
Benno Schulenberg authored
And one-letter variables I cannot "see" -- they are too small.
-
Benno Schulenberg authored
An iterator should not be called "start_col", because it is only the starting column at the very beginning. Also, start_col (after the rename) can never be /larger/ than column.
-
- 25 Apr, 2017 2 commits
-
-
Benno Schulenberg authored
And in the process transform the token DISABLE_HELP to ENABLE_HELP.
-
Rishabh Dave authored
Allow the user to search in a help text with ^W and M-W. Achieve this by not writing the help text directly to the screen but first writing it to a temporary file and then opening this file in a new buffer, and treating it specially: the normal file-reading feedback is suppressed, the titlebar shows the headline of the text, the cursor is hidden, and the menu is limited to just the up and down movements and searching. This fulfills https://savannah.gnu.org/bugs/?28994 . Signed-off-by:
Rishabh Dave <rishabhddave@gmail.com>
-
- 17 Apr, 2017 2 commits
-
-
Benno Schulenberg authored
-
Benno Schulenberg authored
Because nothing gets reset to zero or to some initial value.
-
- 09 Apr, 2017 2 commits
-
-
Benno Schulenberg authored
These functions are used only in the file in which they are declared, and they are declared before they are used.
-
Benno Schulenberg authored
The interval 2013-2017 for the Free Software Foundation is valid because in those years there were releases with changes by either Chris or David, and the GNU maintainers guide advises to mention a new year in all files of a package, not just in the ones that actually changed, and be done with it for the rest of the year.
-
- 06 Apr, 2017 1 commit
-
-
Benno Schulenberg authored
On some terminal emulators, Ctrl+Home and Ctrl+End produce special keycodes, distinct from plain Home and End. Make the users of those emulators (and of the Linux console) glad by making ^Home and ^End do the obvious thing, and the combinations with Shift too.
-
- 04 Apr, 2017 2 commits
-
-
Benno Schulenberg authored
Verify at startup that the number is not too small.
-
Kamil Dudka authored
Use futimens() instead of utime() to change the timestamps on a backup file. Otherwise, a non-privileged user could create an arbitrary symlink with the name of the backup file and in this way fool a privileged user to call utime() on the attacker-chosen file. Import the relevant gnulib module to make sure futimens() is available.
-
- 22 Mar, 2017 6 commits
-
-
David Lawrence Ramsey authored
If the number of columns in the edit window changes (which currently only happens in two places: in regenerate_screen(), called when the window is resized; and in main(), when line numbering mode is toggled), the display will break if we're in softwrap mode and firstcolumn is nonzero. This is because the column width of softwrapped chunks has changed, and firstcolumn is no longer the starting column of a chunk, an assumption that all code using firstcolumn relies on. To fix this problem, add a new function, ensure_firstcolumn_is_aligned(), to adjust firstcolumn to the starting column of the chunk it's on, and use it when the number of columns in the edit window changes. (Note that this function uses the simplest possible fix, and could probably be made more sophisticated.)
-
David Lawrence Ramsey authored
The new function, update_softwrapped_line(), is called from inside update_line() when softwrap mode is on, so that existing calls remain unchanged. It takes no index, instead displaying edittop from column firstcolumn, and all other lines from column zero. If current is on edittop, it's displayed using the edittop rules, but this is not a problem: if current[current_x] is above edittop at column firstcolumn, it's offscreen, and that should be handled before calling update_line() anyway. Together with the preceding bunch of changes, this fixes https://savannah.gnu.org/bugs/?47667.
-
David Lawrence Ramsey authored
Since all lines can be partially scrolled off the screen now (except for the top line of the edit window, which is forthcoming), ensure_line_is_visible() is no longer needed.
-
David Lawrence Ramsey authored
Since all lines can be partially scrolled off the screen now (except for edittop, which is forthcoming), the maxlines global variable and its computation mechanism are no longer needed.
-
David Lawrence Ramsey authored
Add the parameter be_clever to both functions. When be_clever is FALSE, smart home and dynamic home are disabled in do_home(), and dynamic end is disabled in do_end(), so that these functions only move to the beginning or end of the current line or chunk. This simple home and end functionality is needed to improve do_left() and do_right()'s horizontal behavior with softwrapped chunks, which is forthcoming.
-
David Lawrence Ramsey authored
These improvements will eventually make do_home() and do_end() take parameters. Since the global function lists can hold only functions without parameters, preemptively add do_home_void() and do_end_void(), and make the global function lists use them.
-