Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2012-11-22 | under Windows, look for profile in current directory | Robin Haberkorn | 1 | -8/+34 | |
* profile is called "teco.ini" under Windows | |||||
2012-11-22 | Windows (MinGW32) compatibility changes | Robin Haberkorn | 2 | -7/+35 | |
* mainly we need a custom get_absolute_path() function using Win32 API * also the windows.h conflicts with some other headers (esp. BSD headers) * also there was a typo in the code setting file attributes | |||||
2012-11-22 | PDCurses compatibility changes | Robin Haberkorn | 2 | -3/+11 | |
standard curses implementation on Windows (MinGW32) * may also be used on Unix, to build X11 versions using XCurses * cannot do the avoid-screen-refresh thing on PDCurses | |||||
2012-11-22 | add BSD headers for MinGW32 | Robin Haberkorn | 3 | -0/+1472 | |
2012-11-21 | support "\" and <n>\ commands to insert and read integers in the current ↵ | Robin Haberkorn | 2 | -0/+68 | |
radix from/to the buffer * uncommon radices are allowed but reading stops on non-alphanumeric characters (and characters on allowed by the current radix) | |||||
2012-11-21 | GTK interface: show window only before going into event loop (so it is not ↵ | Robin Haberkorn | 2 | -1/+1 | |
displayed for longer running munged macros) | |||||
2012-11-21 | fixed QRegister::set_string() for macro-local Q-Registers | Robin Haberkorn | 1 | -1/+3 | |
it is assumed that the undo() function saves the current document's DOT | |||||
2012-11-21 | Gq command to insert Q-Register at current DOT | Robin Haberkorn | 3 | -0/+30 | |
2012-11-21 | <n>A command to get ASCII code from buffer (at position DOT+n) | Robin Haberkorn | 1 | -0/+9 | |
classic TECO's append-buffer command is not supported * currently, num_sign is implied for A, that is -A will retrieve the value before DOT, while "A" will retrieve after (not at) DOT | |||||
2012-11-20 | support :X command | Robin Haberkorn | 2 | -2/+31 | |
2012-11-20 | on UNIX, look for teco.ini in HOME directory instead of the system's config ↵ | Robin Haberkorn | 2 | -5/+11 | |
directory * on Windows, it might still be a good idea to use the "config" directory (have to test it) | |||||
2012-11-20 | mention new teco.ini features in README | Robin Haberkorn | 1 | -2/+3 | |
2012-11-20 | enable linenumbers and folding marks in profile | Robin Haberkorn | 1 | -2/+5 | |
2012-11-20 | some reasonable syntax highlighting defaults for C++ and Make | Robin Haberkorn | 1 | -8/+42 | |
2012-11-20 | fixed rubout of macro invocations: goto tables and q-registers are allocated ↵ | Robin Haberkorn | 4 | -36/+80 | |
on the C++ call stack and configured to not emit undo tokens this introduces additional logic but has the huge advantage that the tables can be freed after the macro invocation. if undo tokens were emitted, the tables had to be kept in the undo stack so they can be restored during rubout. this however would be both complicated and unnecessarily inefficient since the tables would reach their initial state during rubout and be deallocated anyways. * similar (but not strictly necessary optimizations) can be performed for macro invocations * also wrapper Q-Register setting/getting -> will allow a custom "*" register getter (e.g. calculates buffer position on the fly) | |||||
2012-11-20 | CHR2STR() macro for common case of constructing an anonymous string on the ↵ | Robin Haberkorn | 1 | -1/+3 | |
stack given a single character | |||||
2012-11-20 | some minor simplifications of the goto code | Robin Haberkorn | 1 | -11/+5 | |
2012-11-20 | cleanup macro execution functions: common namespace, Execute::file() uses ↵ | Robin Haberkorn | 6 | -94/+86 | |
Execute::macro() | |||||
2012-11-20 | local Q-Register tables; :M command | Robin Haberkorn | 6 | -110/+201 | |
* munged files use the same local Q-Registers as commandline * :M calls macro without new set of local registers (local register names refer to the parent macro level) * only .x names accepted at the moment. for string building characters, this will like stay that way (cannot refer to extended/long names) | |||||
2012-11-20 | undo.push_var() and undo.push_str() return references so calls can be used ↵ | Robin Haberkorn | 1 | -6/+8 | |
as l-values (common use case) | |||||
2012-11-20 | errors when label cannot be found at end of macro invocation | Robin Haberkorn | 3 | -0/+17 | |
* on the command line the line terminating <ESC> is not accepted when a label was not found | |||||
2012-11-20 | goto table cleanup | Robin Haberkorn | 6 | -28/+28 | |
2012-11-20 | make goto tables local to macro invocation: they are declared on the C++ ↵ | Robin Haberkorn | 7 | -139/+151 | |
callstack since macro invocations result in nested macro_execute() calls otherwise a macro could set labels with program counters which are invalid in other macros/the command line | |||||
2012-11-20 | support special "{" alternate escape character: is only terminated by a ↵ | Robin Haberkorn | 3 | -10/+28 | |
matching *balanced* "}" this eases writing nested macros | |||||
2012-11-20 | disable ^U string building characters (by default) | Robin Haberkorn | 4 | -19/+28 | |
some method to reenable it will be developed in the future (perhaps using a separate command, or a special modifier which reverses a string commands default handling of building character) | |||||
2012-11-20 | fixed cleaning up red black trees: nodes must be explicitly removed | Robin Haberkorn | 1 | -2/+4 | |
2012-11-20 | fixed EB rubout when there is an ADD hook: must not remove buffer before ↵ | Robin Haberkorn | 2 | -9/+4 | |
undoing hook | |||||
2012-11-20 | minor teco.ini simplifications | Robin Haberkorn | 1 | -3/+3 | |
2012-11-20 | some debug output when pushing/popping undo tokens | Robin Haberkorn | 1 | -0/+11 | |
2012-11-20 | QRegister push-down stack: [x and ]x commands | Robin Haberkorn | 4 | -43/+230 | |
* rubout is quite tricky but ensures minimal memory copying | |||||
2012-11-20 | ED flags making 0-Register hook execution configurable | Robin Haberkorn | 6 | -9/+95 | |
* teco.ini updated as well | |||||
2012-11-20 | Scintilla command ES accepting string parameter: if empty, pop value from ↵ | Robin Haberkorn | 2 | -15/+31 | |
stack otherwise pass string | |||||
2012-11-20 | cleanup strings[0] before invoking done(): can only be a preliminary solution | Robin Haberkorn | 2 | -8/+12 | |
2012-11-20 | first working draft of syntax highlighting support and related necessary ↵ | Robin Haberkorn | 4 | -32/+57 | |
features | |||||
2012-11-18 | fixed "*" register: instead of trying to update it everywhere the buffer ↵ | Robin Haberkorn | 2 | -35/+67 | |
filename changes, it is implemented as a specialized Q-Register * setting it (^U), is currently ignored * getting it, returns the current file's filename directly * editing it clears its document and resets it with the current file's filename * later dynamic querying of the numeric part of Q-Registers may be implemented as well | |||||
2012-11-18 | avoid using Scintilla's SAVEPOINT mechanism altogether: fixes some ↵ | Robin Haberkorn | 4 | -38/+22 | |
destructive commands * the only thing gained from (partially) using that mechanism is that no explicit calls to set the dirty-status of a buffer are necessary * however it had many disadvantages: * setting the buffer clean had to be done manually anyway (see previous commits) * when changing Q-Registers without affecting the current document, a flag had to be used to prevent setting the current document dirty * last but not least, it introduced a dependency on the order of the destructive operation and its UNDO token. * the UNDO token could trigger a SAVEPOINTLEFT notification resulting in additional rubout tokens to be pushed on the stack which screws the rubout stack. this can be avoided by clever ordering of the operations * using an explicit ring.dirtify() is therefore much better | |||||
2012-11-17 | Q-Register "*" holding the current filename | Robin Haberkorn | 2 | -9/+19 | |
2012-11-17 | use special flag to temporarily disable buffer dirty checks when a ↵ | Robin Haberkorn | 3 | -4/+22 | |
Q-Register is (temporarily) edited without changing the current document | |||||
2012-11-17 | fixed behaviour on runtime errors: the character resulting in the error is ↵ | Robin Haberkorn | 1 | -6/+19 | |
not accepted and all side-effects up to the exception must be reversed if more than one character is inserted (e.g. via <TAB>), insertion stops at the offending character | |||||
2012-11-17 | fixed rubout for loading Q-Registers (with files) | Robin Haberkorn | 2 | -7/+12 | |
this is very similar to setting a string | |||||
2012-11-16 | avoid some unnecessary jumps to buffer start | Robin Haberkorn | 2 | -4/+2 | |
2012-11-16 | scroll caret into view after text insertion | Robin Haberkorn | 1 | -1/+3 | |
2012-11-16 | Make sure undo tokens and RB-tree entries are destroyed properly | Robin Haberkorn | 3 | -3/+4 | |
* when a pointer to an abstract base class is "deleted", it must have a virtual destructor so the destructor of derived classes is executed * fixes for instance, deletion of save point files when the command line is terminated (undo stack is discarded) * simplified some undotoken code | |||||
2012-11-16 | yet another minor README fix | Robin Haberkorn | 1 | -1/+1 | |
2012-11-16 | added some build-time dependencies | Robin Haberkorn | 1 | -2/+3 | |
2012-11-16 | minor README.md fix | Robin Haberkorn | 1 | -1/+1 | |
2012-11-16 | README.md for Github | Robin Haberkorn | 1 | -0/+57 | |
2012-11-16 | ensure that infoline is correct on startup | Robin Haberkorn | 1 | -1/+2 | |
2012-11-16 | fixed clearing message line: do not display an empty message line (which can ↵ | Robin Haberkorn | 6 | -3/+27 | |
mean an empty line sent to stdout) | |||||
2012-11-16 | changed default scintilla directory | Robin Haberkorn | 1 | -1/+1 | |
in the most common setup, it will be found in the parent directory |