aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2025-09-23freebsd14-msys-sciteco: force cross compilation in ./configureRobin Haberkorn1-9/+21
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.
2025-09-22testsuite: disable testcases with Valgrind only when detecting the fmsbw.de ↵Robin Haberkorn1-2/+2
CI runner These testcases can still be run with --valgrind on my PC.
2025-09-22website: allow build.tes to be called from out-of-tree buildsRobin Haberkorn3-10/+15
This hopefully fixes the 10-freebsd14-msys-sciteco CI job.
2025-09-22fmsbw.de CI job now also cross-compiles the Windows PDCurses binariesRobin Haberkorn2-34/+120
* 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.
2025-09-21when running the testsuite with --verbose, also turn off colors (--color=never)Robin Haberkorn3-8/+8
Improves readability of the log files.
2025-09-21testsuite: disable test cases when running with --valgrindRobin Haberkorn1-0/+6
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.
2025-09-21moved most resources to fmsbw.deRobin Haberkorn21-50/+87
* 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.
2025-09-15fnkeys.tes: fixed clicking the fold marginRobin Haberkorn1-1/+1
This was broken by e82dc6639e829490cb11267fa4a49ef97c6459ae, i.e. wasn't broken in v2.4.0.
2025-09-14ncurses: avoid the middle mouse button workaround in newer ncurses versionsRobin Haberkorn2-11/+10
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
2025-09-09work around ncurses mouse handling bugsRobin Haberkorn2-53/+113
* 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
2025-09-02fixed help for EO (program version) commandRobin Haberkorn1-1/+1
2025-09-02nightly workflow: try to build on Ubuntu 22.04Robin Haberkorn1-1/+1
Hopefully, this fixes the pkg2appimage runs. At least it works when run manually in Ubuntu 22.04.
2025-09-02added help topcic for ":O"Robin Haberkorn1-1/+1
We have topics for all colon-modified variants.
2025-09-02build woman-pages via templates since pattern rules with grouped targets ↵Robin Haberkorn1-3/+12
appear to be broken in some versions of GNU Make Hopefully fixes the Mac OS CI and nightly builds.
2025-09-02nightly builds: install some more Ubuntu packages required by pkg2appimageRobin Haberkorn1-1/+1
2025-09-02nightly workflow: try `apt update` before installing packagesRobin Haberkorn1-0/+3
Hopefully fixes the nightly AppImage builds.
2025-09-02fixed parallel builds of the woman pagesRobin Haberkorn1-2/+2
* 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.
2025-09-02fixup 9425ad37ec95a40dc039169031259161c92cc217: fixed error handling in ED hooksRobin Haberkorn1-2/+2
2025-09-02nightly workflow: don't build Ubuntu packages and AppImages are now based on ↵Robin Haberkorn3-56/+19
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).
2025-08-31NEWS: fixed markdown tableRobin Haberkorn1-3/+5
2025-08-31README: mention OBS release and nightly buildsRobin Haberkorn3-23/+32
2025-08-31support <:O>: if a label is not found, continue execution after the go-to ↵Robin Haberkorn10-39/+101
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.
2025-08-30the computed go-to command (O) is now 0-indexed and all invalid indexes and ↵Robin Haberkorn7-25/+50
empty labels are ignored * This has long been a TECO-11 incompatibility. * The first label in a list has index 0, i.e. `1Ofoo,bar$` jumps to label `!bar!`. Consequently 0 is also implied, so `Olabel$` continues to do what you expect. * `0Ofoo$` was previously also jumping to `!foo!` which was inconsistent: All invalid indexes should do nothing, i.e. execution continues after the go-to command. * Fixed handling of empty labels as in `1Ofoo,,bar$` - execution should also continue after the command. This eases writing "default" clauses immediately after the go-to. * The ED hook values now also begin at 0, so most existing ED hook macros should continue to work. * Similarily, the mouse events returned by -EJ also begin at 0 now, so fnkeys.tes continues to work as expected. * It's still very possible of course that this breaks existing code.
2025-08-28bumped minimum Gtk version to 3.24Robin Haberkorn5-9/+3
* Gtk 3.24 has been introduced accidentally in 9e3746a4 due to GtkEventControllerScroll. * It would be possible to still support v3.12 by partially reversing 9e3746a4 and conditionally including teco_interface_scroll_cb(). But it's probably not worth the trouble.
2025-08-27avoid g_prefix_error_literal(), which requires glib 2.70Robin Haberkorn1-2/+2
This broke builds e.g. on Ubuntu 20.04. Regression was introduced in 51bd183f064d0c0ea5e0184d9f6b6b62e5c01e50.
2025-08-27readded the executable flag to debian/sciteco-gtk.installRobin Haberkorn1-0/+2
This is actually important, so that dh-exec gets used.
2025-08-26bumped minimum GCC version to v8.1Robin Haberkorn4-2/+10
Scintilla v5.5.7 officially requires at least GCC v9, but if it's only the charconv header that's required from newer releases, v8.1 will probably do as well. We assume so until proven wrong.
2025-08-26scintilla: the NetBSD support patch has been revised againRobin Haberkorn1-0/+0
* It is even more robust now and does not remove the large document optimization. * And actually while problems were caused on NetBSD 10 on ARMv6, this likely wasn't a problem on all NetBSD ports and wasn't restricted to NetBSD. At the very least Haiku 32-bit was affected as well.
2025-08-23scintilla: the NetBSD-support patch has been rebasedRobin Haberkorn1-0/+0
It should be more robust now. The changes on CellBuffer should be reviewed again, though.
2025-08-22bumped Scintilla to v5.5.7Robin Haberkorn1-0/+0
* We can use the new SCI_SCROLLVERTICAL instead of SCI_SETFIRSTVISIBLELINE. * The upgrade will also ease submitting the NetBSD-support patch.
2025-08-21support Groff v1.19.2 as still used by default on NetBSD 10Robin Haberkorn5-7/+15
* They have a newer version in pkgsrc, but it's not even available as a binary package on the arm6. * Has some glitches, e.g. does accept the ASCII 27 in tutorial.ms, but it's probably not worth to work around.
2025-08-21fully support NetBSD with its native libcursesRobin Haberkorn6-8/+56
* It requires a forced refresh on startup (even though that should be the default). Otherwise, it wouldn't print the info line correctly. * Redirect stdin and pass it to newterm() to fix key queuing. Probably necessary for supporting ncurses on NetBSD as well. * Avoid doupdate() if screen is too small: fixes crashes for very small windows. * Updated Scintilla: There were some implicit typing assumptions, that are broken by this platform.
2025-08-19AX_WITH_NCURSES: also check for NCURSEN_VERSIONRobin Haberkorn1-2/+6
If we find libncursesw or libncurses, but without pkg-config and if ncurses does not install its curses.h into the standard search path, we might theoretically pick up another compatible Curses' curses.h. Better guard against this.
2025-08-19curses: fixed configuration for native netbsd-curses and ncurses (several ↵Robin Haberkorn8-637/+342
corner cases) * pkg-config check for `ncurses` fails if it failed previously for `ncursesw`. This is the case e.g. for ncurses from NetBSD's pkgsrc. * No longer assume that any libncurses is not enhanced (X/Open compatible). * SciTECO and Scinterm require to find a curses.h in the include paths. The ncurses check must therefore not be limited to the first best ncurses/ncurses.h and the like. * We now always check for X/Open compatibility and always require a curses.h in the standard directories or as given by pkg-config. * AX_WITH_CURSES was radically rewritten and is now called AX_WITH_NCURSES. * --with-interface=netbsd-curses gets its own detection code. It always requires a curses.h in the standard paths and a libcurses. It should now be fixed for real NetBSD installations if the ncurses port is installed as well. * Unified all of the curses-arguments to CURSES_CFLAGS and CURSES_LIBS. There is no reason we need PDCURSES_CFLAGS, XCURSES_CFLAGS etc.
2025-08-18sciteco(7): clarified SciTECO's policy with regards to TECO-11 and Video ↵Robin Haberkorn1-5/+7
TECO compatibility
2025-08-16updated README, NEWS and TODORobin Haberkorn3-37/+76
Esp. mention the new OBS repositories.
2025-08-16avoid linebreak in AC_CHECK_FUNCS(): might fix openSUSE 15.5 and 15.6 ↵Robin Haberkorn1-2/+1
nightly builds on OBS
2025-08-16UNIX curses: some clarifications on what is done during ↵Robin Haberkorn2-2/+13
teco_interface_init_screen() User messages printed in interative mode aren't currently fully preserved on stdout/stderr since they are redirected to /dev/null. Only messages that are not flushed out will be preserved. Unless you redirect stdout/stderr of SciTECO of course since in this case no redirection is necessary. This is probably tolerable esp. once we support multi-line messages in the UIs. At least it would be tricky to work around.
2025-08-14Debian: explicitly depend on a C compiler as wellRobin Haberkorn1-1/+2
2025-08-14README: mention the RPM-based repositories provided by OBSRobin Haberkorn1-1/+4
* Since OBS has its own VCS, there is no need to add the sciteco.spec to this repository. It's located here: https://build.opensuse.org/projects/home:rhaberkorn:sciteco:STABLE/packages/sciteco/files/sciteco.spec * We will probably provide nightly builds via the UNSTABLE subproject as well. * Perhaps OBS will even be used to build Debian packages, as PPA only works on Ubuntu. Also it has a webinterface for downloading the binary packages, so these could be removed from our nightly CI workflows.
2025-08-14fix up hash-bang lines only of the scripts really installed by the current ↵Robin Haberkorn1-3/+18
`make install` invocation * The previous way of fixing up all `*.tes` scripts had the disadvantage of touching unrelated scripts or grosciteco/tedoc of a previous invocation. E.g. installing a Gtk build after the ncurses build would overwrite all hash-bang lines of the curses-version scripts as well with gsciteco. * This caused problems with the RPM package where both variants were installed into the same buildroot and introduced a dependency from sciteco-curses to sciteco-gtk. This is worked around in sciteco.spec with a manual sed call. * It would be better to get rid of the install-exec-hook altogether as it causes problems with FreeBSD/Poudriere (FIXME).
2025-08-14debian/rules: enable verbose testsuite logRobin Haberkorn1-0/+3
In case there is a failure, there is no way to inspect the testsuite directory - all there will be is a CI or Launchpad runner log, so all information should be in that log. The CI `make check` and RPM spec also sets the --verbose flag.
2025-08-13YAML lexer: default to 2 character soft tabsRobin Haberkorn1-0/+3
Hard tabs would even cause YAML syntax errors.
2025-08-10allow messages to be of arbitrary length: fixes crashesRobin Haberkorn1-8/+3
* Messages can be arbitrarily long, e.g. the following could provoke crashes in interactive mode `1000<@I/X/> HX$` It's hard to turn into a test case, though, as you could always increase the buffer size in teco_interface_msg(). * The message length is now only limited by RAM. * This implementation is less effective, but code opting for efficience, including all programmable user messages, should not rely on the printf-API anyway but use teco_interface_msg_literal().
2025-08-10irc.yml: fetch entire historyRobin Haberkorn1-0/+2
It's necessary to get the log since the last successful commit.
2025-08-09Win32: avoid any automatic LF to CRLF conversions when writing to stdoutRobin Haberkorn2-0/+23
* At least the MSVCRT does this by default, i.e. the translation mode of stdout is not _O_BINARY. * This broke piping through SciTECO with --stdin --stdout, as this relies on SciTECO's builtin EOL normalization. Instead, you would get DOS linebreaks on output even if the source stream contains only UNIX linebreaks. * It would also break binary filters. * It seems to be safe to print only LF also for regular stdio (help and error messages), so I simply disaply the stdout (and stdin and stderr) EOL translation globally. * Also fixes Troff warnings due to the .in preprocessor writing output with DOS linebreaks. * Added a test case. All future platforms shouldn't perform any unexpected EOL translations on output.
2025-08-09fixed date in manpagesRobin Haberkorn1-1/+1
was broken in c5510d68
2025-08-08don't install the standalone scripts from lib/ as actual scripts: should fix ↵Robin Haberkorn4-17/+18
CI and nightlies * They would get the --program-prefix. * If they aren't installed as real scripts, there is no point in fixing up their hash-bang lines. * The hash-bang line fix won't work on Windows anyway, so they are now disabled for grosciteco and tedoc as well.
2025-08-07tecat.tes: optimized by using a binary mask instead of stringRobin Haberkorn1-0/+0
A 32-bit word is enough to carry the information of which control code to echo or not.
2025-08-07added tecat.tes to standard library: can be installed as the Git textconv filterRobin Haberkorn4-2/+15
tecat.tes and repl.tes are now executable scripts, even though they are installed into the $SCITECOPATH. This is still much slower than the Lua version here: https://gist.github.com/rhaberkorn/6534ecf1b05de6216d0a9c33f31ab5f8