aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2013-01-23generate manpage sciteco(1) using a TECO macro included in the MakefileRobin Haberkorn3-12/+30
allows including the currently chosen PREFIX * also removed sciteco_datadir variable (pkgdatadir defined by Automake is sufficient)
2013-01-23added --eval commandline option allowing code to be executed on the commandlineRobin Haberkorn1-1/+19
useful, e.g. in Makefiles
2013-01-23distribute new cmdline.hRobin Haberkorn1-1/+1
2013-01-23cleaned up QRegister state interface (can pass register by reference)Robin Haberkorn4-60/+57
2013-01-23moved StateExpectQReg from parser.h to qregisters.hRobin Haberkorn5-50/+48
* parser.cpp|h should be reserved for generic and misc. stuff. the StateExpectQReg class is used almost exclusively by qregisters.cpp|h * resolves a circular header dependency issue
2013-01-23implemented special save last commandline command ("*" at beginning of ↵Robin Haberkorn8-6/+77
commandline macro) * only works as part of commandline macro, * at the beginning of other macros, it is treated like an arithmetic asterisk * variables defined in cmdline.cpp are now declared by new cmdline.h
2013-01-22fixed: macro program counter is fixed after error occurred while executing ↵Robin Haberkorn2-2/+4
commandline fixes errors in loops or loop interruptions (may leave program counter somewhere in the loop)
2013-01-22This reverts commit 821c61e9967e62fd81038e4b879c5452bffe2dfb.Robin Haberkorn1-9/+30
memory mapping the entire file has been benchmarked to be less efficient than the old implementation (because of more than doubling page faults). A lengthy comment has been written to discuss different implementations of file reading.
2013-01-21improved reading files by using memory-mappingRobin Haberkorn1-6/+9
* file must be in primary memory for scintilla * we cannot write to scintilla's buffer memory directly * so mapping the file is best: in the best case it is not copied to primary memory and resides in kernel cache * in any case, mapping to memory is faster than read()ing into primary memory * copying from mapped virtual memory to scintilla buffer (via SCI_APPENDTEXT) is faster than copying from primary memory
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