Age | Commit message (Collapse) | Author | Files | Lines |
|
* referencing temporaries is unreliable/buggy in GNU C++, at least since v4.7
* in higher optimization levels it resulted in massive memory corruptions
* this is responsible for the build issues (PPA build issues)
* instead, always declare a buffer on the stack which guarantees that the
variable lives long enough
* the g_strdup(CHR2STR(x)) idiom has been replaced with String::chrdup(x)
|
|
* should improve performance on EMCurses/Emscripten,
since no polling for key events is necessary anymore
|
|
|
|
|
|
|
|
* allows us to remove most patches. One however is still necessary
(Scinterm Makefile bug!)
* TECO-style control code echoing is now set up using the SCI_SETREPRESENTATION message
* updated copyrights
* updated TODO
|
|
* they have been marked deprecated in recent libglib versions (since v2.26)
* there is no alternative in recent libglib versions, so we
simply do it with a little string handling.
this works with older and newer libglib versions.
|
|
|
|
* ValueStack destruction might have resulted in Segfaults at shutdown
|
|
interface object definition
* they still define their own classes (e.g. InterfaceNCurses),
InterfaceCurrent is a typedef
|
|
* C++ runtime does not automatically throw an exception
|
|
|
|
* results in better error messages, e.g. when opening files
* the case that a file to be opened (EB) exists but is not readably is handled for the first time
|
|
* might throw other exceptions that must be associated with the parent macro level's (stack frame)
* add position information to "label not found" errors
* Error copy constructors
|
|
* specifications resulted in runtime errors (unexpected exception) when bad_alloc ocurred
* specs should be used scarcely: only when the errors that may be thrown are all known
and for documentary purposes
|
|
bad_allocs and convert them to State::Error
* will allow some degree of OOM handling
* currently does not work since the exception specifications prevent bad_allocs from propagating.
exception specification usage must be completely revised
|
|
* use to get line and column into a stack frame
|
|
* when an error is thrown, stack frames are collected on clean up, up to
the toplevel macro
* the toplevel macro decides how to display the error
* now errors in interactive and batch mode are displayed differently
* in batch mode, a backtrace is displayed as a sequence of messages
* Execute::file() forwards errors correctly
* the correct error in the file is displayed in interactive mode
* necessary to build the stack trace
|
|
by building with Emscripten support, SciTECO may be
embedded into web pages.
* sciteco.html is not a piece of documentation but a sample SciTECO embedding
|
|
* there was a compile-time race condition that could result in the GObjects not being built (with Gob2).
So I removed the symbols generation from BUILT_SOURCES.
* apparently either Scintilla depends on gmodule since I last tested or the gtk+-2.0 pkg-config package
no longer includes gmodule, so we must explicitly depend on it
|
|
register
I felt the urge to implement that after accidentally rubbing out my entire commandline
(the work of an hour) just by pressing "}"...
|
|
* the warning itself makes sense but in the cases reportet they
were irrelevant
|
|
* fixes compilation on g++ 4.7 where compound literals are suddenly
temporaries (from which you cannot get a pointer)
* the compound statement (also GCC extension) should ensure that
the string is allocated on the stack with automatic lifetime
|
|
|
|
* fixes gcc-4.4 which does not have -Wno-mismatched-tags and no -Wunknown-warning
|
|
* compiler does not warn by default: this actually makes sense
* so we don't need any unused-attributes
* less GCC-extension based
* on older GCCs I think -Wunused-parameters was enabled by -Wall
we should add -Wno-unused-parameters if that's the case
|
|
|
|
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
|
|
* -Wmismatched-tags does not appear to exist on GCC:
but we need to be able to refer to classes with both struct and class keywords
because of the BSD data types
* -Wchar-subscripts exists on GCC and may or may not be in -Wall.
We disable it since we use character literals as subscripts - they are
actually of type char in C++, in contrast to C where they are of type
int.
|
|
since including glib.h on LLVM-Clang (32-bit) results in NULL being
redefined to 0 and compiler warnings being emitted when NULL is used
as sentinels
|
|
* fixes sudo sciteco: will still use the real user's .teco_ini
* when run with real user as root, will look in root's home dir
* use g_get_home_dir() as a fallback
|
|
* new Expressions::format()
* may be used format numbers as part of arrays (Q-Register names)
|
|
specifications
* allows full Q-Reg syntax
|
|
of success/failure booleans
* for the S and T conditions, nothing changes effectively (were testing for < 0 already)
* the F and U conditions were testing for equality to zero which worked for condition booleans
returned by commands but not for any failure condition (defined as >= 0)
* may be different in classic TECOs but makes more sense IMHO
|
|
tab-completions
* StateExpectFile adds no functionality (currently), but is useful for checking state types
|
|
* 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
|
|
* 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.
|
|
* also updated sciteco(7): add SEE ALSO and AUTHORS
|
|
|
|
* useful for using macro libraries
|
|
library
* therefore for bootstrapping to work, the SCITECOPATH is always set explicitly
|
|
* they were logically private but still declared public so that
initializer constructor functions could access them.
* instead, now use friend classes
* has the side effect that initializing priority can be declared
using GCC's init_priority attribute which works with earlier
compilers than the constructor (with priority) attribute
|
|
by comparision function)
* lists were sorted lexicographically (like strcmp()), but searched caseless (like strcasecmp())
* lists are now sorted with strcasecmp()-like comparision
* caselessness is thus a property of the SymbolList
* use new language features in symbols-extract.tes
|
|
documents
* fixes search-replace commands when function keys are used since they rely on selections
not being disturbed
* will also be useful later when there may be other selections
|
|
* 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
|
|
useful for Windows where the desired default path does not correspond with
the installation dir of the std lib macros
|
|
|
|
* 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
|
|
* 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
|
|
* 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)
|