about summary refs log tree commit diff
path: root/edit.c (follow)
Commit message (Collapse)AuthorAge
* Skip non-spacing when moving and deleting by "character"June McEnroe2022-03-16
| | | | | I uh... don't think I can write tests for this, since macOS's wcwidth is notoriously useless.
* Share a cut buffer between all edit buffersJune McEnroe2022-02-20
|
* Assert return values in edit testsJune McEnroe2022-02-20
|
* Move mbs out of struct Edit, use a global bufferJune McEnroe2022-02-20
| | | | | | | | This saves 4K in the edit buffers, not to mention all the heap allocations for the separate mbs buffers! There might be a way to be more clever about capacities, but I don't think it's worth it.
* Make sure new cap is actually larger than new lengthJune McEnroe2022-02-20
|
* Remove unused mbs.len field from struct EditJune McEnroe2022-02-20
|
* Fix edit.[ch] license notice additional permissionsJune McEnroe2022-02-19
|
* Implement new line editing "library"June McEnroe2022-02-18
| | | | | | | | | | | | | | Losing tab complete and text macros, for now. This new implementation works on an instance of a struct and does not interact with the rest of catgirl, making it possible to copy into another project. Unlike existing line editing libraries, this one is entirely abstract and can be rendered externally. My goal with this library is to be able to implement vi mode. Since it operates on struct instances rather than globals, it might also be possible to give catgirl separate line editing buffers for each window, which would be a nice UX improvement.
* Fix M-f orderingJune McEnroe2022-02-18
|
* Treat any amount of space and punctuation as word boundariesJune McEnroe2022-02-09
| | | | This matches behaviour of, e.g. zsh -o emacs.
* Cycle between adding colon suffix and not in tab completeJune McEnroe2021-11-19
| | | | | | | | | | | | | | Allows completing a nick at the beginning of a message without a colon by continuing to press tab, as well as after another nick already followed by a colon without turning it into a comma-separated list of nicks all followed by a colon. For example, tab can be used to cycle between the following pairs: nick1: | nick1 | nick1, nick2: | nick1: nick2 |
* Use (bright) red for \com text macro 1.9June McEnroe2021-07-26
|
* Stop at previous \ when expanding macrosJune McEnroe2021-06-24
| | | | | There was no reason to ever require whitespace before the macro name.
* Add \com text macroJune McEnroe2021-06-14
|
* Don't insert wchar_t if it can't be converted to mbsJune McEnroe2021-02-15
| | | | | | | | Otherwise it could hit the assertion in editBuffer while converting to mbs for consumption by the rest of the program. It's possibly to trigger this with LC_ALL=C and typing C-z C-v M-a, for example.
* Don't expand macro if it can't be converted to mbsJune McEnroe2021-02-15
| | | | | Otherwise expanding a macro could hit the assertion in editBuffer while converting to mbs for consumption by the rest of the program.
* Use wmemcpy/wmemmoveJune McEnroe2020-11-08
|
* Preserve colon from previous tab-completeJune McEnroe2020-08-18
| | | | | This fixes the case when pinging multiple nicks and one of them needs to be cycled through.
* Say "OpenSSL" in additional permission noticesJune McEnroe2020-08-04
| | | | LibreSSL is "a modified version of that library".
* Add \banhammer macroJune McEnroe2020-08-02
| | | | From the Textual extras command /banhammer.
* Add current topic to tab-complete so it can editedJune McEnroe2020-07-13
|
* Add additional permission for linking with LibreSSLJune McEnroe2020-06-08
| | | | https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
* Add M-q to collapse whitespaceJune McEnroe2020-04-07
|
* Fix multi-mention tab completion conditionJune McEnroe2020-04-01
| | | | | I don't know why I ever programmed it this way. It was really annoying when trying to write "some phrase, nick".
* Pass correct length to mbstowcsJune McEnroe2020-04-01
| | | | Too used to sizeof being the right thing for regular strings.
* Add \blushJune McEnroe2020-03-31
|
* Add \bear, \cool, \hug, \unflip, \waveJune McEnroe2020-03-31
|
* Add text macrosJune McEnroe2020-03-30
|
* Tab complete from last iswspaceJune McEnroe2020-03-30
|
* Bump edit buffer cap to 1024June McEnroe2020-03-23
| | | | With message splitting it's reasonable to allow this to be larger.
* Replace small integers in size_t with uintJune McEnroe2020-02-15
|
* Don't copy into cut buffer during tab completeJune McEnroe2020-02-14
|
* Simplify transpose swapJune McEnroe2020-02-12
|
* Add C-t transposeJune McEnroe2020-02-12
| | | | Also in emacs, weechat.
* Avoid VLAs in tab completeJune McEnroe2020-02-09
|
* Use iswspace for word movementJune McEnroe2020-02-09
|
* Add C-yJune McEnroe2020-02-09
| | | | This is weechat's binding for it.
* Add C-w and M-dJune McEnroe2020-02-09
|
* Rename kill opsJune McEnroe2020-02-09
|
* Add M-b and M-fJune McEnroe2020-02-09
|
* Add C-kJune McEnroe2020-02-09
| | | | Also rename all the edit ops to something consistent.
* Add C-dJune McEnroe2020-02-09
|
* Hook up tab-completeJune McEnroe2020-02-09
|
* Simplify edit buffer conversion and input renderingJune McEnroe2020-02-09
|
* Populate completion with commandsJune McEnroe2020-02-07
|
* Add some real line editing operationsJune McEnroe2020-02-07
|
* Add extremely basic editing and message sendingJune McEnroe2020-02-05
|
* Convert editHead and editTail from wchar_tJune McEnroe2020-02-04
|
* Split showing style codes and word wrappingJune McEnroe2020-02-04