aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2012-12-02support Q* (return current buffer's Id) and edit-by-id using <n>EB$Robin Haberkorn3-4/+89
2012-11-25fixed range interpretation for search command: had to be given in the wrong ↵Robin Haberkorn1-2/+9
order * also inverse ranges are now supported (<a,b>S if a>b) and result in constrained backward searches
2012-11-25NCURSES: fixed popup lines calculationRobin Haberkorn1-4/+9
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.
2012-11-24GTK: display "..." at end of info popup if it wouldn't fit on the screenRobin Haberkorn1-0/+14
* this is a simple workaround so that a window too large to fit in memory is not constructed
2012-11-24do not try to complete string argument if it is in "{" modeRobin Haberkorn1-1/+2
2012-11-24NCURSES: ensure that info popup is not too large for screenRobin Haberkorn1-3/+15
* print "..." at end of list if not all entries can be displayed because the entire screen is already covered
2012-11-24support auto-completion of symbols in the scintilla command (ES)Robin Haberkorn8-38/+108
* does not yet handle case-insensitive completions * does not handle omitting of the SCI_ prefix
2012-11-24cache GLists corresponding to symbol listsRobin Haberkorn2-5/+12
2012-11-24fixed command line terminationRobin Haberkorn2-2/+18
* 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
2012-11-24NCURSES is the default interface nowRobin Haberkorn1-1/+1
* GTK is not as polished, but still useful for debugging purposes
2012-11-24allow symbolic names (symbols) being specified for the scintilla (ES) commandRobin Haberkorn7-75/+172
* 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
2012-11-23system for looking up static symbolsRobin Haberkorn5-5/+173
* 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
2012-11-23fixed ENTER processing on PDCurses: we get ENTER as a carriage returnRobin Haberkorn1-0/+1
2012-11-22fix current working directory on WindowsRobin Haberkorn1-0/+17
2012-11-22updated README: Windows now supportedRobin Haberkorn1-1/+7
2012-11-22support PDCurses/Win32ARobin Haberkorn2-21/+55
* 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
2012-11-22make sure the NULL filename is handled properly on WindowsRobin Haberkorn1-2/+2
2012-11-22support PDCurses user-resizing of the terminalRobin Haberkorn1-0/+5
* 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
2012-11-22ignore *.exe filesRobin Haberkorn1-0/+1
2012-11-22Windows compile fixesRobin Haberkorn1-6/+29
* as always, link order is relevant * PDCurses is default curses on Windows * use BSD headers from compat/ * detect OS automatically using uname
2012-11-22under Windows, look for profile in current directoryRobin Haberkorn1-8/+34
* profile is called "teco.ini" under Windows
2012-11-22Windows (MinGW32) compatibility changesRobin Haberkorn2-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-22PDCurses compatibility changesRobin Haberkorn2-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-22add BSD headers for MinGW32Robin Haberkorn3-0/+1472
2012-11-21support "\" and <n>\ commands to insert and read integers in the current ↵Robin Haberkorn2-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-21GTK interface: show window only before going into event loop (so it is not ↵Robin Haberkorn2-1/+1
displayed for longer running munged macros)
2012-11-21fixed QRegister::set_string() for macro-local Q-RegistersRobin Haberkorn1-1/+3
it is assumed that the undo() function saves the current document's DOT
2012-11-21Gq command to insert Q-Register at current DOTRobin Haberkorn3-0/+30
2012-11-21<n>A command to get ASCII code from buffer (at position DOT+n)Robin Haberkorn1-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-20support :X commandRobin Haberkorn2-2/+31
2012-11-20on UNIX, look for teco.ini in HOME directory instead of the system's config ↵Robin Haberkorn2-5/+11
directory * on Windows, it might still be a good idea to use the "config" directory (have to test it)
2012-11-20mention new teco.ini features in READMERobin Haberkorn1-2/+3
2012-11-20enable linenumbers and folding marks in profileRobin Haberkorn1-2/+5
2012-11-20some reasonable syntax highlighting defaults for C++ and MakeRobin Haberkorn1-8/+42
2012-11-20fixed rubout of macro invocations: goto tables and q-registers are allocated ↵Robin Haberkorn4-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-20CHR2STR() macro for common case of constructing an anonymous string on the ↵Robin Haberkorn1-1/+3
stack given a single character
2012-11-20some minor simplifications of the goto codeRobin Haberkorn1-11/+5
2012-11-20cleanup macro execution functions: common namespace, Execute::file() uses ↵Robin Haberkorn6-94/+86
Execute::macro()
2012-11-20local Q-Register tables; :M commandRobin Haberkorn6-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-20undo.push_var() and undo.push_str() return references so calls can be used ↵Robin Haberkorn1-6/+8
as l-values (common use case)
2012-11-20errors when label cannot be found at end of macro invocationRobin Haberkorn3-0/+17
* on the command line the line terminating <ESC> is not accepted when a label was not found
2012-11-20goto table cleanupRobin Haberkorn6-28/+28
2012-11-20make goto tables local to macro invocation: they are declared on the C++ ↵Robin Haberkorn7-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-20support special "{" alternate escape character: is only terminated by a ↵Robin Haberkorn3-10/+28
matching *balanced* "}" this eases writing nested macros
2012-11-20disable ^U string building characters (by default)Robin Haberkorn4-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-20fixed cleaning up red black trees: nodes must be explicitly removedRobin Haberkorn1-2/+4
2012-11-20fixed EB rubout when there is an ADD hook: must not remove buffer before ↵Robin Haberkorn2-9/+4
undoing hook
2012-11-20minor teco.ini simplificationsRobin Haberkorn1-3/+3
2012-11-20some debug output when pushing/popping undo tokensRobin Haberkorn1-0/+11
2012-11-20QRegister push-down stack: [x and ]x commandsRobin Haberkorn4-43/+230
* rubout is quite tricky but ensures minimal memory copying