| Age | Commit message (Collapse) | Author | Files | Lines |
|
* This allows for several customizations.
* You can simply increase the visible command line history.
For that you must also set SCI_SETWRAPMODE(SC_WRAP_CHAR).
An example was added to fallback.teco_ini.
* You could also set SCI_SETLINEENDTYPESALLOWED(SC_LINE_END_TYPE_DEFAULT)
to see the structure of inserted text.
* Alternatively we could have introduced a new command like EP or FW
and also overload it to replace the current ED&2048 (e.g. -EP and EP).
In DEC TECO `W` comes closest to what 5EJ now does.
|
|
the current line as well
* This optimization is unnecessary for regular TECO scripts unless you write stupendously long lines.
On the command line macro however, we were always restyling the entire command line with every insertion
or rubout since the command line view uses single line mode by default.
Even if you enable a multi-line command line with regular line breaks, it's unlikely that you would insert
many line breaks except when inserting text into the buffer.
* We will now during insertion into the command line view style from the beginning of the last regular
command.
* During rub out from the command line, we still won't have enough information about where the previous
valid start state was, so we will frequently have to restyle the entire command line.
This might be worked around by adding a cmdline-view-specific hack if it turns out to be relevant
on very long command lines and slow computers.
|
|
These are equivalent, but LINES and COLS are shorter.
|
|
enables syntax highlighting on the command line
* M[lexer.set.cmdline] can be used to set up syntax highlighting on the command line
(if desired).
* Color schemes with light-dark themes (solarized.tes) are now responsible
to update the command line view as well.
|
|
* Instead of rendering a teco_string_t into a Scintilla view (GTK)
and an ncurses window (Curses), it is now a Scintilla view and document
that is modified directly.
* Reduces redundancies between GTK and Curses UIs.
* It will be more efficient on very large command lines, especially on GTK.
* We can now redirect Scintilla messages to the command line view in order
to configure syntax highlighting, the margin, rubout indicator style and
scroll behavior (TODO).
* This will also simplify the configuration of multi-line command lines (TODO).
* Since INDIC_PLAIN is not supported by Scinterm, rubbed out command lines
are now styled with INDIC_STRAIGHTBOX (background color).
|
|
* This requires the new SCI_SETTABDRAWMODE(SCTD_CONTROLCHAR).
* It makes no sense to let TAB indent in TECO code as it can be
the insert-with-tab command (^I).
On the other hand large `I`-blocks could include TABs which are
actually meant as indentations.
|
|
This simplifies teco_interface_cmdline_update() and prepares for backing the
command line macro itself with a Scintilla view (teco_view_t).
The latter will avoid unnecessary recalculations when inserting characters
into the command line and to factor out redundancies with the Curses UI.
|
|
* It was failing on OpenSUSE Tumbleweed i586 on OBS,
resulting in duplicate symbols and build errors.
This was not reproducible with 32-bit builds on OpenSUSE Tumbleweed x86_64.
* Instead of hoping for a compiler warning to be treated as an error,
we now use a static assertion with a _Generic expression.
* The scintilla submodule has also been updated since Neil was asking to
update the documentation as well.
|
|
|
|
* Scintilla had build problems if ptrdiff_t doesn't alias int if it has the
same storage size (e.g. on NetBSD 10 (armv6)).
* Unfortunately, Neil Hodgson refused to merge my previous Scintilla patches that
would have fixed the issue at the core.
See https://groups.google.com/g/scintilla-interest/c/STAv6LgLyCo
* He only agreed to introducing a separate flag to work around the issue
(`-DPTRDIFF_DOESNT_ALIAS_INT`).
* In order to continue to support all standard C/C++ conforming platforms
we therefore need a compile-time check to check for the aliasability
of ptrdiff_t and int.
|
|
URLs can change
|
|
Shouldn't change anything functionally, but allows us to more broadly
test the patch (especially via OBS).
|
|
* When typing nEBfilename$ (n != 0) you would find out that the construct is invalid
only after typing out the entire command.
We now throw an error immediately, ie. only Escape or string termination will be expected
in interactive mode.
* In batch mode, nothing should have changed.
|
|
Should hopefully fix errors about invalid $TERM.
|
|
* There already was --enable-static-executables which would pass `-static`
to the linker, but it did not help with library dependencies (that have to be
pulled in transitively when linking statically).
pkg-config does have `--static` support though.
* Now all pkg-config found libraries will use `pkg-config --static` when
--enable-static-executables, which simplifies linking statically.
Previously you'd either need to set PKG_CONFIG="pkg-config --static"
or you would have to manually list library dependencies.
|
|
* We wouldn't detect the correct flags (ax_cv_curses_enhanced and ax_cv_curses_color)
when CURSES_CFLAGS and CURSES_LIBS are given.
* Allows to force ncurses to the SDK/system one when building
for OS X (20-freebsd14-osx-sciteco).
|
|
|
|
FreeBSD-based runners
|
|
This is what the Github CI workflow did previously.
|
|
* In contrast to the old Github workflow, we can no longer create pkgs,
but instead create tar balls. You don't necessarily have to unpack
it into the root, though, since the binaries are relocatable.
* We cannot execute the resulting binaries, so the testsuite is no
longer run under OS X. It could be executed with Darling, but only
under Linux.
* Resulting binaries are currently apparently fully statically linked.
|
|
* strings are bold (if supported) and bright white
* comments are in italics (if supported by the terminal)
* otherwise this uses the same colors as terminal.tes
* should be well suited for monochrome terminals as well
|
|
|
|
* The Knowledge Base replaces the Github wiki.
* The mailing lists replace the Github bug tracker, discussions and pull requests.
|
|
* They were broken because of a confirmed Clang bug.
* As a workaround, we are switching from libstdc++ to libc++.
This is not the default under MINGW64, but also works.
* See also https://github.com/HolyBlackCat/quasi-msys2/issues/44
|
|
This uses an extracted pkg2appimage, since it would be tricky to get fuse
to work in the Podman containers.
|
|
launcher command (e.g. wine or wine64)
* This can be used for bootstrapping Windows binaries cross-compiled on FreeBSD or Linux
without requiring a native build to be installed first.
It will also allow running the test suite under Wine.
While Linux allows registering Wine as the launcher via binfmt_misc,
on FreeBSD we have no choice than to use --with-launcher.
* Unfortunately, SciTECO cannot currently be properly built with versions running under Wine
and the test suite also fails.
|
|
* Also make sure that we find all DLLs.
* The nightly download URL will now be https://sciteco.fmsbw.de/downloads/nightly/
|
|
Appears to result in new problems with win-clang++.
|
|
Otherwise ./configure will try to execute compiled programs and this
doesn't work since they require Wine. There is no binfmt for FreeBSD
unfortunately and I couldn't get any other hack to work either.
Even when adding build-system support for running SciTECO under Wine
for the usual bootstrapping process, this doesn't yet fully work since
there are some features that do not yet work under Wine.
|
|
CI runner
These testcases can still be run with --valgrind on my PC.
|
|
This hopefully fixes the 10-freebsd14-msys-sciteco CI job.
|
|
* This should really be in a separate job, but doing it here allows us
to --disable-bootstrap since we already installed FreeBSD SciTECO binaries.
* In the future, we should rather tweak the build system so it tries
to invoke the cross-compiled SciTECO via Wine.
* Windows Gtk port is still missing.
|
|
Improves readability of the log files.
|
|
Should fix the freebsd14-sciteco CI job.
On the other hand, these test cases do run through on my workstation,
so we might want to disable them *only* when running via CI.
|
|
* The new official homepage is https://sciteco.fmsbw.de/
* My new contact address is rhaberkorn AT fmsbw.de.
* The scintilla-mirror is now also on https://git.fmsbw.de/scintilla-mirror/
* Added CI script for my server on fmsbw.de that builds
the website.
It's run in a FreeBSD container, but does not currently
distribute FreeBSD binaries.
|
|
This was broken by e82dc6639e829490cb11267fa4a49ef97c6459ae, i.e. wasn't broken in v2.4.0.
|
|
My patch has been merged, so there is no need to keep the workaround
in newer versions.
See https://lists.gnu.org/archive/html/bug-ncurses/2025-09/msg00027.html
|
|
* We have to process several mouse events for every KEY_MOUSE.
* The order of events is sort of arbitrary after clicking the middle mouse button
in some terminal emulators like st and Xterm.
Therefore BUTTON2_PRESSED is now ignored and resynthesized when
receiving BUTTON2_RELEASED.
This fixes loosing middle click events.
fnkeys.tes only processes the RELEASED event anyway.
I am still looking for a fix to contribute to the ncurses project.
* In GNOME Terminal and Xterm with the SGR mouse protocol,
you can receive bogus BUTTON3_PRESSED events when left scrolling.
There is an upstream fix.
As a workaround -- we will have to live with outdated ncurses
versions anyway -- we prevent resetting the mouse mask unnecessarily.
This limits the effects to a single bogus BUTTON3_PRESSED event.
Unfortunately, it's not easily possible to force ncurses into using
the X10 mouse protocol even if the terminfo entry claims SGR compatibility.
See also https://lists.gnu.org/archive/html/bug-ncurses/2025-09/msg00016.html
|
|
|
|
Hopefully, this fixes the pkg2appimage runs.
At least it works when run manually in Ubuntu 22.04.
|
|
We have topics for all colon-modified variants.
|
|
appear to be broken in some versions of GNU Make
Hopefully fixes the Mac OS CI and nightly builds.
|
|
|
|
Hopefully fixes the nightly AppImage builds.
|
|
* There were two rules with independent targets, which could
result in `.woman.tec` files to actually contain plain text.
Practically all parallel builds were affected, among other
things OBS-built packages where tutorial.woman.tec would
usually be broken.
* Now use the `&:` syntax for grouped targets.
|
|
|
|
OBS builds
* There are nightly OBS builds, so there is no need to build and distribute them via CI.
* On the upside we can download the packages for the AppImages from a proper (OBS) repository.
* AppImages are now built on Ubuntu 20.04 (instead of 22.04 which was the oldest
Github runner).
|
|
|
|
|
|
statement
* this is a SciTECO extension - it's not in TECO-11
* Allows for select-case-like constructs with default-clauses as in
:Os.^EQa$
!* default *!
!s.foo!
!* ... *!
!s.bar!
!* ... *!
* Consistent with nOlabel0,label1,...$ if <n> is out of range.
Unfortunately this form of computed goto is not applicable when
"selecting" by strings or non-consecutive integers.
* In order to continue after the <:O> statement, we must keep the
program counter along with the label we were looking for.
At the end of the macro, the PC is restored instead of throwing
an error.
* Since that would be very inefficient in loops - where potentially
all iterations would result in rescanning till the end of the
macro - we now store a completed-flag in the goto table.
If it is set while trying to :O to an unknown label, we can
just continue execution.
|