aboutsummaryrefslogtreecommitdiff
path: root/view.c
AgeCommit message (Collapse)AuthorFilesLines
2023-05-22check for EOF before unsetting row, col & line cache in view_coord_getJeremy Bobbin1-1/+2
This commit fixes c22b2c2, which introduced a bug when the EOF was in view.
2023-03-19fix bug where visual-line selections after view were considered visibleJeremy Bobbin1-1/+1
prior to this patch, if you had a visual-line selection after the view, and try to move it(& all other selections) up into the buffer, the selection would appear prematurely. https://github.com/martanne/vis/issues/1074
2022-11-29fix miscellaneous spelling mistakesNick Hanley1-2/+2
2020-12-10fix typos in commentsMoesasji1-1/+1
2020-11-20view: make view_selections_dispose_all O(n)Mateusz Okulus1-2/+5
The for loop in selection_free won't run because the next element will always be NULL, because we are freeing from the end. Close #852
2020-04-27Avoid use of VLAsMichael Forney1-2/+11
2018-05-16vis: make sure zb redraws line at the bottom if possibleMarc André Tanner1-3/+0
Previously it would do nothing if the cursor was already on the last display line. Fix #697
2018-03-12view: use strncat instead of an inline loop to concatenate cell dataMarc André Tanner1-4/+1
2018-03-12view: fix buffer overflow when dealing with combining charactersMarc André Tanner1-2/+5
The `cell.len` attribute refers to the number of bytes of the underlying text which are represented by this cell. The actual NUL terminated data being displayed can have a completely unrelated length. For example a NUL byte has a `cell.len` of 1, but is displayed as `cell.data = "^@"`. Because we currently have a fixed cell capacity of 16 bytes (including the terminating NUL byte) long sequences of combining characters won't be displayed correctly. See also #679
2018-03-11view: properly advance over incomplete unicode sequenceMarc André Tanner1-1/+1
When fetching more text we have to skip the bytes processed by the previous cell, otherwise we end up in an infinite loop.
2018-03-11Reset parsing state after mbrtowc(3) failureMarc André Tanner1-0/+1
The standard says "if an encoding error occurs ... the conversion state is unspecified".
2017-07-14vis-lua: make selection first class primitives in Lua APIMarc André Tanner1-2/+2
2017-07-08view: keep but clear primary selection if instructed to replace allMarc André Tanner1-1/+4
Previously the last selection was kept implicitly to statisfy the invariant that at least one selection needs to exist.
2017-07-05vis: make sure all selections have same anchored stateMarc André Tanner1-1/+3
With the current model the differences between normal and visual mode is that in the latter selections are anchored (meaning one endpoint remains fixed), while in normal mode both endpoints can in principle be updated simultaneously (currently they are always colapsed to a singleton selection, giving the impression of cursors).
2017-07-04vis: implement `gv` by means of new "^ registerMarc André Tanner1-20/+0
This window local register holds the last active selections.
2017-06-27vis: properly set initial window ui optionsMarc André Tanner1-1/+1
This should keep the EOF markers visible when another option is enabled. The whole UI option handling is a bit of a mess. In the longterm more of the drawing code should be moved into Lua.
2017-06-27Merge branch 'show-eof' of https://github.com/p-e-w/visMarc André Tanner1-1/+9
Conflicts: view.c view.h
2017-06-27Merge branch 'theme-tweaks-2' of https://github.com/p-e-w/visMarc André Tanner1-1/+1
Conflicts: view.c
2017-06-15view: make sure primary selection is visibleMarc André Tanner1-0/+3
2017-06-15view: add functions to save/restore arbitrary rangesMarc André Tanner1-0/+23
2017-06-15view: add functions to get/set all selectionsMarc André Tanner1-5/+34
2017-06-15view: disallow setting of invalid selectionsMarc André Tanner1-5/+9
2017-06-15view: fix view_selections_setMarc André Tanner1-8/+2
The anchor needs to be set after the cursor was positioned, otherwise the cursor placement will immediately destroy the selection for in the non-anchored case.
2017-06-15view: do not automatically anchor selections when setting rangeMarc André Tanner1-1/+0
2017-06-15view: introduce view_selections_normalizeMarc André Tanner1-0/+22
Dispose all invalid and merge all overlapping selections.
2017-06-15vis: rename uses of Cursor to SelectionMarc André Tanner1-296/+293
2017-06-15view: rename view_cursors_columnMarc André Tanner1-1/+1
2017-06-15view: rename view_cursorsMarc André Tanner1-1/+1
2017-06-15view: rename view_selection_anchoredMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_column{,count,next}Marc André Tanner1-2/+2
2017-06-15view: rename view_cursors_numberMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_countMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_nextMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_prevMarc André Tanner1-1/+1
2017-06-15view: view_cursors_selection_restoreMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_selection_saveMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_selection_startMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_selection_swapMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_selection_clearMarc André Tanner1-3/+3
2017-06-15view: rename view_selections_clearMarc André Tanner1-2/+2
2017-06-15view: rename view_cursors_selection_getMarc André Tanner1-3/+3
2017-06-15view: rename view_cursors_primary_{get,set}Marc André Tanner1-3/+3
2017-06-15view: rename view_cursors_clearMarc André Tanner1-1/+1
2017-06-15view: rename view_cursor_disposedMarc André Tanner1-1/+1
2017-06-15view: rename view_cursors_disposeMarc André Tanner1-4/+4
2017-06-15view: rename view_cursors_newMarc André Tanner1-3/+3
2017-06-15view: remove view_cursors_multipleMarc André Tanner1-4/+0
2017-06-15view: clean up and add documentationMarc André Tanner1-2/+10
2017-06-15vis: promote selections to first class primitivesMarc André Tanner1-145/+51
This unifies cursors and selections. The cursor are now represendted as singleton selections.
2017-06-10More theme improvementsPhilipp Emanuel Weidmann1-1/+1