| Age | Commit message (Collapse) | Author | Files | Lines |
|
* will also enable crosscompiling SciTECO: first sciteco (or sciteco-minimal) is built for the host platform,
then the target binary is built using the host sciteco
|
|
|
|
|
|
|
|
Buffer ring part (ring.cpp)
|
|
* like the other search-related commands the operation (delete, kill, replace) is not performed until the
search pattern string argument is terminated (simplifies implementation and has visual advantages)
|
|
* new base for searc-replace command states
|
|
* based on FS command
* default replacement string is stored in global register "-"
|
|
* makes use of Scintilla selections, so their usage has been improved
* search commands preserve selection on termination (escape)
* selections are restored on rubout
* search-replace command makes use of the Insert command's state (may serve as a base class now)
but does not pop additional values from stack (like "I" does)
|
|
|
|
|
|
untitled buffer
|
|
* new buffers are added at the list tail
* when closing a buffer, the next one is selected or the previous one if it is the tail
* the ring may be traversed in reverse order
* undoing a buffer close (Ring::UndoTokenEdit) could be cleaned up to only use standard macros (is slightly less efficient though)
|
|
|
|
order
* also inverse ranges are now supported (<a,b>S if a>b) and result in constrained backward searches
|
|
use the ceiling of the number of entries divided by the calculated number of columns,
ensuring that just enough lines to display all the entries are reserved.
|
|
* this is a simple workaround so that a window too large to fit in memory is not constructed
|
|
|
|
* print "..." at end of list if not all entries can be displayed because the entire screen is already covered
|
|
* does not yet handle case-insensitive completions
* does not handle omitting of the SCI_ prefix
|
|
|
|
* do it only in start state: so double escapes in strings do not cause a termination and an empty string may be specified
* clear arithmetic stacks on line termination
|
|
* GTK is not as polished, but still useful for debugging purposes
|
|
* new syntax is <[lParam,[wParam,[msg]]]>ES[msg[,wParam[,lParam]]]$[lParam string]$
* symbols are matched case-insensitive, the leading SCI_ for message symbols may be omitted
* added support for more multiple string arguments (for commands in general)
* fixed "C conditional: succeeds for every alpanumeric character, dot, dollar or underscore
* added SCLEX_ and SCE_ constants as symbols
* updated teco.ini: using symbolic names is preferred since that way code does not depend on the current Scintilla version
|
|
* symbols are extracted from C header files by a TECO macro
* macro is executed using a "minimal" version of SciTECO that does not include symbols (uses gcc's weak symbols)
* the generated C++ code contains the symbol-name-to-define mapping as a constant sorted array and initializes the appropriate SymbolList object
* a symbol lookup is super fast using a simple binary search in the symbol lists
* except for object initialization, no there's no overhead for keeping the symbol lists!
* build process is complicated by introduction of bootstrapping via sciteco-minimal
|
|
|
|
|
|
|
|
* terminal resizing must be enabled explicitly
* endwin() does not work as expected, so don't use it
* messages may always be sent to stdout/stderr
* patching Scinterm was necessary: it did not expect COLORS > 8. will still build
with unpatched versions
|
|
|
|
* there might be curses implementations that don't support KEY_RESIZE at all
* PDCurses does but only with the X11 and SDL versions
* on Windows, the console version might use the SDL DLL (by replacing
pdcurses.dll) so it's fair to keep the window resizing code compiled into
the binary.
* also it's necessary to call resize_term() to update internal structures
* should also work with the Win32a port of PDCurses
|
|
|
|
* as always, link order is relevant
* PDCurses is default curses on Windows
* use BSD headers from compat/
* detect OS automatically using uname
|
|
* profile is called "teco.ini" under Windows
|
|
* 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
|
|
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
|
|
|
|
radix from/to the buffer
* uncommon radices are allowed but reading stops on non-alphanumeric characters (and characters on allowed by the current radix)
|
|
displayed for longer running munged macros)
|
|
it is assumed that the undo() function saves the current document's DOT
|
|
|
|
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
|
|
|
|
directory
* on Windows, it might still be a good idea to use the "config" directory (have to test it)
|
|
|
|
|
|
|
|
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)
|
|
stack given a single character
|
|
|