aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/qregisters.cpp
AgeCommit message (Collapse)AuthorFilesLines
2013-03-18explicitly instantiate MicroStateMachine: fixes compilation with gcc-4.4Robin Haberkorn1-1/+1
2013-03-18declare all global inter-dependant objects in main.cpp and get rid of ↵Robin Haberkorn1-7/+0
init_priority attribute * we cannot use weak symbols in MinGW, so we avoid init_priority for symbol initialization by compiling the empty definitions into sciteco-minimal but the real ones into sciteco (had to add new file symbols-minimal.cpp) * this fixes compilation/linking on LLVM Clang AND Dragonegg since their init_priority attribute is broken! this will likely be fixed in the near future but broken versions will be around for some time
2013-03-16fixed: prevent accessing registers in parse-only modeRobin Haberkorn1-0/+10
* they might not already exist, yielding bogus errors * in case the register might be initialized we do not want to do so in parse-only-mode * this fix is only a workaround: currently we must return a register sind got_register() expects one and must be called to determine the next state in parse only mode * proper solution would be to better separate parsing and execution
2013-03-16documented remaining commandsRobin Haberkorn1-0/+124
* flow control and other structures have not been documented this ways. I have not yet decided whether they should be documented in separate sections or use the documentation tool.
2013-02-25EM...$ command to read macro from file and execute immediately (just like "M")Robin Haberkorn1-0/+13
* useful for using macro libraries
2013-02-22use typedef for SciTECO integers and make it configurable at configure timeRobin Haberkorn1-5/+5
* 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-22fixed global object initialization order issueRobin Haberkorn1-0/+6
* 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-22clean up QRegisterTable::insert|initialize usageRobin Haberkorn1-3/+3
* 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 Haberkorn1-33/+25
* 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-14hide some implementation details in MicroStateMachinesRobin Haberkorn1-4/+1
2013-02-14undo q-register table initializations (insertions) on ruboutRobin Haberkorn1-0/+1
2013-02-14option for q-reg spec state machine to allocate (insert) new q-registersRobin Haberkorn1-6/+10
* enabled for all modifying Q-Reg commands
2013-02-14micro state machine for Q-Register specifications: allow long Q-Reg namesRobin Haberkorn1-15/+78
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-08fixed ring.current/QRegisters::current corruptionRobin Haberkorn1-0/+8
occurs when rubbing out a switch from q-reg string or to q-reg string
2013-02-08delegate commandline replacements ("}") to the cmdline macro levelRobin Haberkorn1-3/+3
allows commandline editing scripted by macros
2013-02-01fixed buffer Ring initializationRobin Haberkorn1-3/+2
* 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-23cleaned up QRegister state interface (can pass register by reference)Robin Haberkorn1-40/+40
2013-01-23moved StateExpectQReg from parser.h to qregisters.hRobin Haberkorn1-0/+28
* 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-19updated copyright (2012-2013)Robin Haberkorn1-1/+1
2012-12-04added copyright notice to every source fileRobin Haberkorn1-0/+17
2012-12-04first working version of autotools based build-systemRobin Haberkorn1-0/+4
2012-12-04autoconf preparation: move everything into src/ subdirRobin Haberkorn1-0/+522