summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-05fix compiler warningHEADmasterQuentin Carbonneaux
2021-04-05support delete wm eventsQuentin Carbonneaux
Thanks to shepard47@protonmail.com for the patch.
2018-02-28fix unlikely raceQuentin Carbonneaux
XFlush() can in fact fetch events and add them to Xlib's internal queue. It happens very rarely with the current implementation, but when it does, we are missing a UI update.
2018-02-28fix long-standing UI bugQuentin Carbonneaux
This has been annoying me on and off for YEARS! (Literally.) In some (quite rare) settings, there was an annoying UI bug where it would look like some updates were not propagated to the UI when they had to. After spending a couple of days investigating this, it turns out that it is not a bug in the editor, but in xserver (maybe). Experiments and frustration revealed that the bug seems to be in some backing store-related logic. So, here, I remove our request to get a backing store. This backing store option was here to help performance, but X implementations really should be smart enough to use one even when clients don't ask for it. Even if X servers are dumb, removing the option should not cause a noticeable performance degradation.
2015-07-14fix bug with focus eventsQuentin Carbonneaux
2015-07-13add rough support for input methodsQuentin Carbonneaux
2015-07-10commit error messagesQuentin Carbonneaux
2015-06-23change default font to MonacoQuentin Carbonneaux
2015-06-23fix mouse execution of Get and LookQuentin Carbonneaux
2015-02-13fix bug in popalarmQuentin Carbonneaux
This never caused a program failure because of the low stress on the event module.
2015-01-20add keyboard command ^L to switch windowsQuentin Carbonneaux
2014-12-26ignore SIGPIPEQuentin Carbonneaux
Otherwise, the editor crashes when using the redirection sigils with a command that closes the pipe.
2014-11-24simplify cursor logicQuentin Carbonneaux
The cursor is now allowed out of screen, because it costs nothing and it is convenient during resizes. The new code also allows scrolling during selection, this is handy when the selection exceeds a screenful.
2014-11-17add reverse search command NQuentin Carbonneaux
2014-10-24fix signs in buffer pagesQuentin Carbonneaux
2014-10-23remove useless fields in WQuentin Carbonneaux
2014-10-23reset the command parser state before switching windowsQuentin Carbonneaux
2014-10-23improve visual feedback of cursorQuentin Carbonneaux
2014-10-22use the usual resize cursorQuentin Carbonneaux
2014-10-10add the / motionQuentin Carbonneaux
2014-09-25add documentationQuentin Carbonneaux
2014-09-25this shortcut was undefined behaviorQuentin Carbonneaux
2014-09-19fix testing codeQuentin Carbonneaux
The api changes for buffer creation invalidated the testing code. Note that it is unclear if the window testing code is still relevant. I had to change the number of windows from 3 to 2 to avoid a crash, probably because the initial window size is too small.
2014-09-19superior resource management for async tasksQuentin Carbonneaux
The previous implementation with reference counting on EBuf was clunky. First, use of negative reference counts made the logic unclear. Second, when an async task was started and a file was reloaded in the window (eb_clr), some garbage could be output to the new buffer at random positions. Third, killing a buffer could leak file descriptors tied to long running tasks. The problems are solved by eagerly destructing all the resources of tasks that output in a given buffer right before its destruction.
2014-09-18cosmetic fixesQuentin Carbonneaux
2014-09-12use a more idiomatic loopQuentin Carbonneaux
2014-09-12parse line addresses in ex_getQuentin Carbonneaux
2014-09-09do not empty selection for >Quentin Carbonneaux
2014-09-08use a reasonable buffer sizeQuentin Carbonneaux
2014-09-05use middle button to execute a commandQuentin Carbonneaux
2014-09-05optimize utf8_decode_rune for asciiQuentin Carbonneaux
2014-09-05double click to select a wordQuentin Carbonneaux
2014-09-04add proper buffer deletionQuentin Carbonneaux
Because some background processes might run concurrently with the execution of the Del command I added a refcount to edit buffers. Details about the refcount: + When this count c is >=0 it means that the buffer is alive and has c+1 concurrent users (+1 for the window displaying it). + If c<0, the buffer has -c users but is a "zombie". Its parent window was deleted. So the buffer is still in memory but cannot be used, users must drop their pointer after having incremented c. If c reaches 0, the buffer must be freed.
2014-09-03add window deletion codeQuentin Carbonneaux
The bug in exec.c can now be triggered, if a command outputs after its window was deleted an invalid buffer pointer is used.
2014-09-03remove ugly include guardsQuentin Carbonneaux
2014-09-03cancel 7db6832e6e (better performance)Quentin Carbonneaux
2014-09-02specify a mode for files created by PutQuentin Carbonneaux
2014-08-29burry old directory in historyQuentin Carbonneaux
2014-08-28stop overloading rev and use a dirty bitQuentin Carbonneaux
2014-08-28style fixes in main moduleQuentin Carbonneaux
2014-08-27mitigate race with XFlushQuentin Carbonneaux
2014-08-27fix code typo in event moduleQuentin Carbonneaux
2014-08-27use XPending to check for X eventsQuentin Carbonneaux
2014-08-27fix memory leak in runQuentin Carbonneaux
2014-08-27change the rectangle name in WQuentin Carbonneaux
2014-08-27be more energy efficientQuentin Carbonneaux
2014-08-27remove clang dependencyQuentin Carbonneaux
2014-08-27cap the redraw frequencyQuentin Carbonneaux
2014-08-27decrease selection visual impactQuentin Carbonneaux
2014-08-27improve style of events moduleQuentin Carbonneaux