aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2013-01-21fixed: preserve access mode and ownership (if possible) of file when savingRobin Haberkorn2-20/+113
* works with/without save-points (i.e. in batch and interactive mode, both were broken) * improved file-saving performance (avoid buffer gap removal) * only root can preserve the ownership of a file owned by another user after file saving
2013-01-20minor manpage fixes and README updatedRobin Haberkorn2-8/+16
2013-01-20added manpage highlighting program invocation and batch modeRobin Haberkorn5-3/+173
language and commands will be described in separate documents
2013-01-20fixed search-replace commands if search fails (do not insert then)Robin Haberkorn3-7/+64
* updated TODO
2013-01-20added patch enabling TECO-style (^X) control code echoing in ScintillaRobin Haberkorn4-2/+34
in the future, I might submit a more elaborate Scintilla patch for configuring the control code strings.
2013-01-19added TODO listRobin Haberkorn3-0/+33
also updated AUTHORS
2013-01-19support only Scinterm >= v1.1 (contains SCI_COLOR_PAIR macro and indirectly ↵Robin Haberkorn2-6/+1
fixes PDCurses support)
2013-01-19updated copyright (2012-2013)Robin Haberkorn26-26/+26
2013-01-19allow <CTRL/C> to be typed; aborts last typed charRobin Haberkorn5-2/+42
* CTRL/C will be a command so it is important to be able to type it directly * aborting character processing is important because it allows aborting infinite loops * since the loop interruption currently relies on SIGINT handling, there is only limited support for XCurses and GTK - CTRL/C has to be typed in the terminal window. later support for input queue polling might be added
2012-12-05windows compatibility changesRobin Haberkorn5-31/+22
* respect executable extensions * do not use weak symbols which appear to be broken on MinGW. Instead, the generated symbol constants contain constructor functions initializing the corresponding objects. Constructor priorities are used to ensure that the initialization takes place after the dummy (NULL) initialization. * do not change the working dir (causes trouble when sciteco gets passed relative paths but the exe is not in the current dir) instead look for teco.ini in program's directory
2012-12-04added copyright notice to every source fileRobin Haberkorn26-0/+442
2012-12-04updated README (autoconf-based build system)Robin Haberkorn1-4/+7
2012-12-04bootstrapping of build process using preinstalled scitecoRobin Haberkorn2-5/+24
* 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
2012-12-04additional minor changes: distribution building now possibleRobin Haberkorn4-13/+17
2012-12-04first working version of autotools based build-systemRobin Haberkorn26-182/+1385
2012-12-04autoconf preparation: move everything into src/ subdirRobin Haberkorn28-0/+0
2012-12-04refactoring: split qbuffers.cpp|h into a q-registers (qregisters.cpp) and ↵Robin Haberkorn12-739/+796
Buffer ring part (ring.cpp)
2012-12-04search-kill command (FK)Robin Haberkorn3-0/+32
* 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)
2012-12-04search-delete command (FD)Robin Haberkorn3-6/+27
* new base for searc-replace command states
2012-12-04search-replace command with default replacement string (FR)Robin Haberkorn4-9/+55
* based on FS command * default replacement string is stored in global register "-"
2012-12-04search and replace command (FS)Robin Haberkorn4-14/+70
* 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)
2012-12-03refactored search command (states): they are now in a separate search.cpp fileRobin Haberkorn6-502/+529
2012-12-03first draft of N command based on SRobin Haberkorn2-59/+178
2012-12-03fixed rubout of last-buffer-in-ring close: avoid premature closing of the ↵Robin Haberkorn1-2/+0
untitled buffer
2012-12-03organize buffer ring as a tail-q (double-linked list with tail pointer)Robin Haberkorn2-36/+51
* 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)
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)