Age | Commit message (Collapse) | Author | Files | Lines |
|
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)
|
|
|
|
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
|
|
* also added some additional range checks (e.g. X command)
|
|
|
|
has several advantages
* better to read
* namespace can be "extended" from everywhere allowing the declaration of states in the files that implement them
* include file mess could be cleaned up a bit
|
|
|
|
* separate function for immediate editing command processing
* undo.clear() to remove and free all undo tokens without executing them
* goto_table_clear() to remove and free all goto table entries
|
|
|
|
* uses BSD tree macros, might later be abstracted to a C++ table class
|