aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-04-12sam: support %n count specifier matching every n-th selectionMarc André Tanner1-0/+15
2017-04-12sam: add support for negative count specifierMarc André Tanner1-10/+42
2017-04-12sam: add support for count specifier to `g` and `y` commandsMarc André Tanner2-12/+56
2017-04-12sam: distinguish between empty // and no regexMarc André Tanner1-1/+4
2017-04-12sam: reject command names containing digits or ending with a hyphenMarc André Tanner1-1/+6
The current implementation will also reject consecutive hyphens.
2017-04-11build: update libtermeky to version 0.20Marc André Tanner1-2/+2
Fix #537
2017-04-11build: tweak CFLAGS for profiling targetMarc André Tanner1-1/+1
2017-04-11text: do not redefine _GNU_SOURCEMarc André Tanner1-1/+3
Fix #536
2017-04-09text: use MB_LEN_MAX instead of MB_CUR_MAXMarc André Tanner2-4/+6
2017-04-09vis: reject invalid register name when recording a macroMarc André Tanner1-0/+2
Fix #534
2017-04-09vis: remove handling of \r\n line endingsMarc André Tanner9-94/+15
Use something like dos2unix(1) and unix2dos(1), if you need to edit such files.
2017-04-09text: drop special handling of \r\n line endingsMarc André Tanner5-109/+36
2017-04-09text: add mem{r,}chr(3) based byte search functionsMarc André Tanner5-1/+66
These are generally implemented efficiently in libc. While memrchr(3) is non-standard, it is a common extension. If it is not available, we use a simple C implementation from musl.
2017-04-08text: adjust iterator position when switching to adjacent piecesMarc André Tanner1-2/+4
2017-04-08text: simplify \r\n handlingMarc André Tanner2-27/+23
2017-04-08text: introduce text_char_get which converts \r\n to \nMarc André Tanner2-0/+8
2017-04-08text: fix iterator semantics regarding windows style newlinesMarc André Tanner1-2/+4
At some point we might drop this mess and ask users to rely upon dos2unix(1) and unix2dos(1), respectively.
2017-04-06test: updateMarc André Tanner1-5/+8
2017-04-06vis: fix memory leak in selection rotation codeMarc André Tanner1-0/+1
2017-04-06sam: properly free transcript in error caseMarc André Tanner1-4/+19
2017-04-06Fix formatting in man pageTwoFinger1-2/+2
2017-04-04vis: remove unused struct memberMarc André Tanner2-2/+0
2017-04-04vis: do not remove indentation of non-empty linesMarc André Tanner1-1/+2
Fix #532
2017-04-04vis: add motions to move by codepointsMarc André Tanner6-2/+41
Some people might prefer this for <Backspace> behavior. Except for that and debugging purposes using `ga` and `g8` it is not yet that useful.
2017-04-04vis: automatically dispose invalid cursorsMarc André Tanner1-0/+7
2017-04-04vis: reject multi letter mark and register namesMarc André Tanner1-0/+10
Fix #531
2017-04-02Fix Debian package lintian warningsMarc André Tanner7-10/+8
https://mentors.debian.net/package/vis
2017-03-31text: Add missing va_end() whenRaúl Peñacoba1-1/+3
vsnprintf fails
2017-03-31vis: improve tab completion in command promptMarc André Tanner2-1/+37
At some point it should probably be possible to add command prompt bindings from within Lua. Currently there is no easy/realiable way to detect the prompt window. Should improve #526.
2017-03-31lexers: sync with scintillua changeset 600 rev fdeca0b808bfMarc André Tanner7-23/+184
I think the default value for the cache argument to the lexer load function should be true, not false. Optimize for the common case. This makes the API ugly/harder to use. But for now we follow upstream.
2017-03-31vis: add non-default actions for vi compatible n/N motionsMarc André Tanner4-2/+36
The following key mappings should result in the vi behavior: :map! normal n <vis-motion-search-repeat> :map! normal N <vis-motion-search-repeat-reverse> The default remains unchanged, that is `n` (`N`) always searches towards the end (start) of the file. Fix #470
2017-03-31vis: rename search related constantsMarc André Tanner5-19/+19
2017-03-31Add more wiki references to the READMEMarc André Tanner1-2/+2
2017-03-31Use a minimal POSIX shar implementation for self extracting executableMarc André Tanner3-16/+121
This only requires POSIX shell utilies for extraction. The resulting archive is bigger (it is not gzip compressed) and startup will be slower due to many spawned processes.
2017-03-27Prefer Lua 5.3Klemens Nanni1-1/+1
2017-03-27build: add git based version information backMarc André Tanner1-1/+1
2017-03-25build: set version to 0.3Marc André Tanner1-1/+1
2017-03-25Merge branch 'master' of https://github.com/joshaw/visMarc André Tanner1-1/+10
2017-03-24lexers: fix perl pattern for horrible regex linesS. Gilles1-0/+3
Under presently-not-precise circumstances, regex patterns longer than a screenful can cause first_match_pos to be nil. In this sutation, evaluating `first_match_pos - 1' will be an error, so jump to matchless case.
2017-03-24vis: properly redraw status bar of windows displaying internal filesMarc André Tanner2-4/+4
Currently the only "internal window" with a status bar is the information window used to display Lua stack traces. We do not want to trigger events for it, because that could result in further Lua errors. Nonetheless its status bar should be properly redrawn to avoid display artifacts. That is why we fall back to the built-in default status bar as used by non-Lua builds.
2017-03-24vis-lua: register a panic handlerMarc André Tanner1-1/+31
The intention here is to catch any errors in unprotected mode, close the lua state and jump back to the mainloop to give the user the opportunity to take care of unsaved changes. We abuse the infrastructure Lua provides for custom memory allocators to associate our vis instance pointer with the lua state. In the panic handler we can then use lua_getallocf to get our context back. The actual memory allocater is equivalent to the one used by default and just forwards everything to the libc.
2017-03-24vis-lua: use better name for error handling functionMarc André Tanner1-2/+2
2017-03-24vis-lua: removed unused function declarationMarc André Tanner1-1/+0
2017-03-24vis-lua: adjust return value validation of called lua functionsMarc André Tanner1-3/+7
While the invoked Lua functions are executed in protected mode, the validation of the return values currently happens in unprotected mode. Thus an invaid return value triggers a lua error and because we currently do not have a global panic handler registered this will terminate the editor process. This commit changes the return value validation to silently fall back to default values instead of raising errors. If we want to provide user friendly stack traces showing the origin of the offending value we would have to move the validation into the Lua code.
2017-03-24vis-lua: validate lua state on vis API entry pointsMarc André Tanner1-9/+27
2017-03-22ui: try to fix job control issues with certain shellsMarc André Tanner3-10/+17
Make sure that curses and libtermkey don't fight over the terminal state. Also send use SIGTSTP instead of SIGSTOP. Previously certain shells (e.g. csh, dash) would get stuck after the editor process was suspended for the second time. Not completely sure whether this is correct, but it seems to work in my limited tests.
2017-03-22vis-lua: add usage documentation to command_registerJosh Wainwright1-1/+10
2017-03-22text: use proper open(2) flags when saving inplaceMarc André Tanner1-1/+1
This was wrongly changed in commit 74085e92c095d0bf4b98e262cc07ccf9b7dfff3b.
2017-03-22test: updateMarc André Tanner1-5/+5
2017-03-22vis: fix wrap around with <C-n>Marc André Tanner1-0/+2
Do not create an invalid cursor when no further match exists.