aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2013-02-22use typedef for SciTECO integers and make it configurable at configure timeRobin Haberkorn12-68/+78
* storage size should always be 64 (gint64) to aid macro portability * however, for performance reasons users compiling from source might explicitly compile with 32 bit integers
2013-02-22added --with-default-scitecopath config option: default value of $SCITECOPATHRobin Haberkorn1-1/+1
useful for Windows where the desired default path does not correspond with the installation dir of the std lib macros
2013-02-22resolved enter-key handling by introducing get_eol()Robin Haberkorn4-22/+19
2013-02-22function key macro support for GTK+ interfaceRobin Haberkorn2-11/+61
* also revised the way in which unhandled keys are interpreted (use gdk_keyval_to_unicode() instead of deprecated GdkEventKey::string) * keep in sync with Curses key handling
2013-02-22fixed global object initialization order issueRobin Haberkorn7-25/+53
* Scintilla is now initialized from main() using Interface::main() * Scintilla initialization depends on initialization of objects in the global namespace (otherwise the Lexer catalogue may not be filled properly and lexing may not work). Lexer modules were initialized after SciTECO interface initialization * merged Scintilla initialization (Interface::main()) with interface option parsing
2013-02-22fixed margin configuration with GTK+ interfaceRobin Haberkorn1-1/+3
* line-number style must be explicitly set, even after CLEARALLSTYLES * margin widhts are in pixels (except in Scinterm), so we must determine the pixels requiered by a number of digits (e.g. 5 digits)
2013-02-22Windows (MinGW) compatibility fixes: suspending impossible and environment ↵Robin Haberkorn2-9/+10
initialization revised * g_get_environ() appears to be broken, at least in Wine and Win2k
2013-02-22VPATH build fixes: SciTECO can now be built from a parallel source treeRobin Haberkorn1-8/+11
...which is useful when crosscompiling for MinGW
2013-02-22removed unused Red-Black tree abstractionsRobin Haberkorn1-180/+0
they didn't work and weren't really necessary either
2013-02-22clean up QRegisterTable::insert|initialize usageRobin Haberkorn3-15/+13
* distinction no longer useful since string part of register is now never pre-initialized
2013-02-22clean up QRegister vs. Buffer redundancies using TECODocument classRobin Haberkorn7-88/+234
* also encapsulates data properly (previously there were many public attributes to avoid permission issues) * new class also cares about saving/and restoring scroll state. now, buffer/q-reg edits and temporary accesses do not reset the scroll state anymore.
2013-02-22clean up SciTECO bootstrapping by building convenience libraryRobin Haberkorn1-23/+29
* pkg-config LIBS should be added to $LIBS so that link order is correct
2013-02-22use preprocessor error if no interface has been selectedRobin Haberkorn1-0/+2
this is often because of a missing "config.h" include, but puzzles me every time...
2013-02-17made UndoStack::push_msg() inlineRobin Haberkorn2-8/+6
2013-02-16fixed commandline replacementsRobin Haberkorn1-15/+16
ensure that undo tokens for first differing characters are actually associated with this character instead of the next. (resulted in strange behaviour on rubout and subsequent replacements)
2013-02-16implemented command to query ASCII code of character (^^x)Robin Haberkorn2-0/+26
2013-02-16function key support (keys without printable representation) using keyboard ↵Robin Haberkorn4-8/+59
macros * if enabled, when a function key is pressed it is looked up in Q-Registers ^F... e.g. HOME key corresponds to register ^FHOME * the string if available is inserted as if it was entered by key-presses (later it may be entered as a single input token which may be removed in a single rubout) * only NCurses currently, key names directly correspond to Curses key names * on Curses if function keys are enabled ESCAPE will be inserted after a delay (because function keys are transmitted via escape sequences). A function key macro may be used to define an alternative escape character
2013-02-15install standard macros into special standard library path (pkgdatadir/lib)Robin Haberkorn2-2/+6
* SCITECOPATH environment variable defaults to this directory * manpage updated * default teco.ini updated: no need to generate it anymore
2013-02-14hide some implementation details in MicroStateMachinesRobin Haberkorn3-19/+20
2013-02-14initialize global Q-Registers (beginning with $) with environment variablesRobin Haberkorn1-0/+23
e.g. G{$HOME} will insert the HOME environment variable
2013-02-14undo q-register table initializations (insertions) on ruboutRobin Haberkorn2-1/+24
2013-02-14option for q-reg spec state machine to allocate (insert) new q-registersRobin Haberkorn3-9/+38
* enabled for all modifying Q-Reg commands
2013-02-14use Q-Register micro state machine when parsing Q-Reg spec in ↵Robin Haberkorn2-45/+39
string-building commands * allows referring to long Q-Register names in string arguments * currently, long names specified this way use their own string building char parsing (I'm unsure whether this makes any sense)
2013-02-14undo tokens for changing an object pointerRobin Haberkorn1-0/+40
will care about the eventual deletion of the object
2013-02-14micro state machine for Q-Register specifications: allow long Q-Reg namesRobin Haberkorn2-16/+100
syntax is as follows: ["."]("#" CHR1 CHR2 | "{" STRING_BUILDING "}" | CHR1) * the short one/two char names are turned upper case, while no case folding is performed on verbose names
2013-02-14rewritten string building state machine using a common MicroStateMachine ↵Robin Haberkorn2-125/+140
base class * uses label pointers instead of state-enum and switch case (both faster and shorter to write) * common interface for all micro state machines: makes them reusable
2013-02-11properly support <CTL/Z> suspension as immediate commandRobin Haberkorn1-0/+12
see comment: special handling of <CTL/Z> in terminal might be disabled, or commandline input might be in X11 window...
2013-02-11<CTL/U> immediate editing command to rubout current string paramRobin Haberkorn1-0/+9
when not in string-state, <CTL/U> is self inserting (unlike traditional TECO where it would clear your entire commandline)
2013-02-11fixup: word-rubout may rub out nothingRobin Haberkorn1-4/+3
2013-02-11States::is_string() to check whether current state is a string-stateRobin Haberkorn2-7/+14
2013-02-11support <CTRL/W> immediate editing command: depending on context, rub out ↵Robin Haberkorn1-0/+24
words or entire commands * when rubbing out words (in string params), use Scintilla's definition of a word
2013-02-11support <CNTRL/T> immediate editing command only in string parametersRobin Haberkorn1-31/+32
* fixes autocompletion at the beginning of string params * is also available in filename commands and would allow filename completion after string beginning * also did some editing command cleanup
2013-02-08fixed ring.current/QRegisters::current corruptionRobin Haberkorn3-8/+11
occurs when rubbing out a switch from q-reg string or to q-reg string
2013-02-08reverse Execute::step() change: no need to pass parameters by referenceRobin Haberkorn3-6/+4
cmdline and cmdline_pos is no longer modified by code executed by step() instead it is modified at the outermost macro level (commandline macro level)
2013-02-08use special Q-Register $ (<ESC>) to hold the replacement commandlineRobin Haberkorn3-25/+20
* allows us to switch between buffers/registers when editing the commandline
2013-02-08delegate commandline replacements ("}") to the cmdline macro levelRobin Haberkorn5-60/+77
allows commandline editing scripted by macros
2013-02-03first draft of commandline-editing commands ({ and } as in VideoTECO)Robin Haberkorn5-28/+89
* simplified traditional commandline editing. no need to extend cmdline string one character at a time when inserting multiple. instead there's a marker (cmdline_pos) specifying the macro length to execute in a "step" and also the anchor for generating undo tokens * implementation does not yet work in macro calls * while editing the commandline, other buffers/registers may not be edited (need push-down-list and auxiliary q-register)
2013-02-01fixed buffer Ring initializationRobin Haberkorn10-21/+34
* there was a dependency on interface initialization. it did not cause issues because destruction order was by chance. * introduced INIT_PRIO and PRIO_* macros to easy initialization order declaration (using a PRIO_* formula makes code self-documenting) * also used this to clean up QRegisterTable initialization (we do not need the explicit initialize() method) * also used to clean up symbols initialization
2013-01-31fixed bootstrapping using sciteco-minimal and bootstrap autodetectionRobin Haberkorn1-1/+1
was broken due to untested changes
2013-01-29fixed backward search-and-kill (e.g. -FK...$)Robin Haberkorn1-9/+19
2013-01-27prevent creating Scintilla UNDO token when FD or FK failsRobin Haberkorn1-14/+22
rubout would undo something different and screw up editor state
2013-01-27fixed scintilla symbol autocompletionRobin Haberkorn1-3/+3
do not accidentally overwrite the Scintilla (SCI_...) message symbol set
2013-01-27moved redundant code related to bootstrapping and teco-driven substitutions ↵Robin Haberkorn1-3/+2
into automake include (bootstrap.am)
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 Haberkorn1-0/+2
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.