Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
minimum version
* it was necessary to increase the upstream version so I could
upload new versions to launchpad while debugging PPA build issues.
* ChangeLog finalized for v0.6.4
* SciTECO requires at least libglib v2.28 (but that's only a guess)
|
|
* it also sets the compatibility level to 7 which was required
when building for Ubuntu Lucid. This version cannot be supported
however since its libglib version is too old.
|
|
package is built
* you no longer have to make an entire clean when e.g. uploading
for another Ubuntu release. Therefore, the source tar ball is
preserved (it must be the same for all packages with the same
upstream version).
* also try to extract the SciTECO version from the ./configure script
instead of hardcoding it in ./distribute
|
|
template base class constructors
* v4.4 is still officially supported by SciTECO (see INSTALL)
* Ubuntu Lucid appears to use v4.4 by default and lucid is till
supported by PPA. So this should fix building SciTECO in its PPA
for Ubuntu Lucid.
|
|
* If TERM is set but wrong, it might still fail. Errors are reported now.
* If $TERM is unset or empty, we refuse to start the interactive mode.
Unfortunately, we cannot easily let curses decide this since
newterm() does not work as expected.
* However this solution should be quite good: Either $TERM is empty - then
batch mode will work but not interactive mode.
Or it is not empty, then it is checked by the first call to newterm()
when initializing batch mode.
The chance of starting up interactive mode with a wrong $TERM
or in head-less environments is now quite low.
* This is most likely responsible for the PPA build issues.
|
|
expression stack
this was probably a regression from d94b18819ad4ee3237c46ad43a962d0121f0c3fe
and should not be in v0.5.
The return value of Expressions::find_op() must always be checked since
it might not find the operator, returning 0 (it used to be 0).
A zero index pointed to uninitialized memory - in the worst case it
pointed to invalid memory resulting in segfaults.
Too large indices were also not handled.
This was probably responsible for recent PPA build issues.
Valgrind/memcheck reports this error but I misread it as a bogus warning.
I took the opportunity to clean up the ValueStack implementation and
made it more robust by adding a few assertions.
ValueStacks now grow from large to small addresses (like stack data
structures usually do).
This means, there is no need to work with negative indices into the
stack pointer.
To reduce the potential for invalid stack accesses, stack indices are
now unsigned and have origin 0. Previously, all indices < 1 were
faulty but weren't checked.
Also, I added some minor optimizations.
|
|
|
|
|
|
|
|
* allows us to link against PDCurses/win32a statically.
It requires additional Windows DLLs (gdi32 and comdlg32) and since
there's no PDCurses configuration mechanism, it is easiest to set
the PDCurses linker flags using a PDCURSES_LIBS env variable.
* This is only possible since Scintilla links statically, we do the
linking of the binary and can provide the linker flags.
It is still not possible to overwrite the CFLAGS used for PDCurses
without modifying the Scinterm Makefile.
* Using PDCURSES_LIBS we can get rid of --with-interface=emcurses since
if library checks fail with EMscripten, we can simply define
PDCURSES_LIBS="-lpdcurses"
|
|
Unfortunately, I cannot really test this curses port
since it is not supported by Windows 2000 (missing AttachConsole() API)
and it does not run very well in Wine.
Under Wine, it does not require the LINES and COLS variable to be set.
However, endwin() and the refresh later on result in a very unusable
state of operation. I cannot currently check whether this is true on
Windows XP or later.
|
|
If there was a rubbed out command line and you tab completed
a file name in a string argument (TAB in ^G mode), the immediate
editing modifier was automatically reset.
This still happens if nothing could be tab completed and you
type a few characters and try to complete again (since ^G mode
will be reset). If this feature is used often, the user should perhaps
define a function key as ^G^I^G.
|
|
|
|
|
|
* Automake was trying to overwrite the submodule Scintilla
(that should be distributed) with the local copy of Scintilla
(perhaps because the directory had the same name).
Instead, we now copy the submodule Scintilla manually into
the distribution directory.
|
|
* fnkeys.tes has been updated to enable the command line
editing macros (cursor keys, etc.) only in the "start" state.
This avoids the annoying effect of inserting the macros
into string arguments where they have no effect and must be
rubbed out again.
|
|
|
|
|
|
when SciTECO interactive mode is started, the curses prog
mode is restored automatically.
Therefore it should already be set up correctly (after SciTECO
batch mode initialization).
This fixes console glitches on MinGW/PDCurses.
partial revert of commit 4dced2
|
|
the MSVCRT versions are not glibc-compatible and we do not
actually need glibc compatible versions, as all allocations
are done through the libglib wrappers.
|
|
|
|
|
|
|
|
* activated via bit 4 of the ED flag (enabled by default)
* automatic EOL guessing on file loading and translation to LFs.
* works with files that have inconsistent EOL sequences.
* automatic translation to original EOL sequences on file saving
* works with inconsistent EOL sequences in the buffer.
This should usually not happen if the file was read in with
automatic EOL translation enabled.
* also works with the EC and EG commands
* performance is OK, depending on the file being translated.
When reading files with UNIX EOLs, the overhead is minimal
typically-sized files. For DOS EOLs the overhead is larger
but still acceptable.
* Return (line feed) is now an immediate editing command.
This centralizes EOL sequence insertion.
Later, other features like auto-indent could be added to
the editing command.
* get_eol() has been moved to main.cpp (now called
get_eol_seq()
* Warn if file ownership could not be preserved when
saving files.
* IOView has been almost completely rewritten based
on GIOChannels. The EOL translation code is also in IOView.
|
|
|
|
|
|
|
|
|
|
|
|
* I now understand better why the old initialization worked ;-)
By not calling initscr(), we could prevent some terminal setup
and screen clearing usually performed which would interfere with
with having a clean stdout stream.
However the Curses screen was still basically attached to the
terminal.
* That's why there was screen flickering in urxvt when calling sciteco
(even in batch mode). Also that's why calling batch-mode SciTECO
did not work from other Curses programs (including SciTECO).
* The new implementation directs Curses at /dev/null, so it will
completely stay away from /dev/tty.
* /dev/tty is associated with the Curses screen only when the
interactive mode is initialized. This works elegantly via
freopen() - there's no need to create a new Curses screen.
* This does currently not work on PDCurses where the batch mode
will still initscr() followed by endwin().
I should investigate how newterm() behaves there - especially
on Windows.
|
|
|
|
|
|
|
|
* sciteco.ico contains a 16 color 16px, a 255 color 32px and
a true color 48px version of the icon.
The first ones are good for legacy Windows versions like 2000,
while the latter one should be preferred by Windows >= 7.
* Also added the 48px version as a PNG for Linux.
But it is not installed currently, as there is no standardized
place for it and it wouldn't do much good in /usr/share/sciteco.
|
|
|
|
* It is still useful to have this in macros since you may want to
work with non-normalized file names.
For instance, env variables (including $SCITECOPATH and $SCITECOCONFIG)
may (and will probably) include backward-slash separators on Windows
|
|
* on Windows, this register contained backward slashes. This means
that macros working with that register had to cope with both
forward and backward slashes.
* The file names are still displayed in the native style by the UI
* This approach also has disadvantages: What if the user wants
to insert the current file name somewhere where "\" is expected?
However, this seems to be an unlikely case and the use can still
replace the "/" with "\" again.
* Avoid some virtual method calls in QRegisterBufferInfo
|
|
* This adds the -all-static libtool option and can be used to
link a static sciteco binary (or at least link in as few as possible
dynamic libraries)
* Esp. useful on MinGW to link in all dependant libraries (glib, libintl,
libiconv, libpdcurses, ...) statically.
A static .exe is much smaller than a dynamically linked plus all the
DLLs and is easier to relocate.
* This does not guarantee that ALL libraries are linked in dynamically.
E.g. on MinGW, the sciteco.exe will still link to MSVCRT and the Windows
system DLLs, but they already ship with Windows.
* On MinGW, even a static build will still require the gspawn-win32-helper-console.exe
which is used by glib to implement g_spawn with redirection.
We cannot get around that.
* It would be better to let this be decided by the package builder using
the standard env variables like LDFLAGS. However, this does not seem to
work well with libtool. It IS possible to define LDFLAGS="-all-static" when
calling make but this approach sucks.
|
|
* it is now redrawn once after each key press, even if the
info line has not changed.
* This is because Interface::update_info() is called very often
in interactive mode, so it makes more sense to redraw it after user
interaction (where even unnecessary delays are not noticed so easily),
than thousands of times in a macro.
* This is especially important since InterfaceCurses::update_info() now
also sets the Window title on PDCurses - this is a very costly operation.
* The same optimization was applied to InterfaceGtk where it is probably
greatly responsible for the sluggishness of the UI.
The GTK+ changes are currently UNTESTED.
|
|
* dirname and basename calculations can be done easier with
the new file_get_dirname_len()
* platform-dependant derive_dir_separator() function has been removed
|
|
ioview.h
this function is very useful in other places as well
(e.g. command line tab completion)
|
|
* use g_strconcat() instead of g_strdup_printf()
* InterfaceGtk::info_update() now longer has an arbitrary
255 byte limit on the length of the info line.
|
|
* Globbing without directory (e.g. EN*.cpp$) introduced a "./" into the
expanded file names.
It no longer does that.
* The expanded file names will have the exact same directory component
(if any) as the glob pattern.
So on Windows, the directory separators in the list of expanded files
is exactly as the user requested.
* Also fixes lexers.tes on Windows because the script assumes forward
slashes.
|
|
* PDCurses build system produces static libraries that cannot be
found by Autoconf (pdcurses.a) and often files have the wrong
permissions.
|
|
* this relied on Curses' control character drawing on Curses.
However it treats tab and line feed differently than other
control characters, so registers like "^Mfoo" could not be displayed
properly.
Even if we can configure Curses to display them correctly, we need
a "canonicalized", flat form of strings for other purposes (like setting
window titles. This is form is different from the formatting used
for command lines which may change anyway once we introduce Scintilla
mini buffers.
* therefore String::canonicalize_ctl() was introduced
* also set window title on PDCurses
|
|
|
|
Interface::main() was called
esp. fixes command line --help on PDCurses/win32
|
|
defined
|
|
* this makes them absolute and also resolves links on Unix
* macros can now assume the corresponding Q-regs to be absolute
* Currently this does not make a big difference since the
working directory of the SciTECO process cannot be changed.
Once I implement a command to change the working dir, this
is essential.
|