aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2025-11-02render tabs as "TAB" in the command-line and in SciTECO macrosRobin Haberkorn3-3/+16
* 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.
2025-11-02GTK: use the new SC_LINE_END_TYPE_HIDDEN for rendering the command lineRobin Haberkorn1-65/+13
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.
2025-10-26AX_PTRDIFF_ALIASES_INT: the check should be more reliable nowRobin Haberkorn2-9/+6
* 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.
2025-10-20fixup: AX_PTRDIFF_ALIASES_INT should enable -WerrorRobin Haberkorn1-0/+5
2025-10-20scintilla: use AX_PTRDIFF_ALIASES_INT to check whether ptrdiff_t aliases intRobin Haberkorn3-0/+23
* 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.
2025-10-09INSTALL: a `git submodule sync` is recommended after pulling since submodule ↵Robin Haberkorn1-0/+1
URLs can change
2025-10-08scintilla: use new version of the ptrdiff_t-compatibility patchRobin Haberkorn1-0/+0
Shouldn't change anything functionally, but allows us to more broadly test the patch (especially via OBS).
2025-10-07throw an error immediately after nEB if n != 0Robin Haberkorn4-22/+29
* 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.
2025-10-0620-freebsd14-osx-sciteco: fixed linking against the system's libncursesRobin Haberkorn1-1/+1
Should hopefully fix errors about invalid $TERM.
2025-10-06./configure: define TE_CHECK_MODULES() which takes static linking into accountRobin Haberkorn3-23/+27
* 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.
2025-10-06AX_WITH_NCURSES: support $CURSES_CFLAGS and $CURSES_LIBSRobin Haberkorn2-96/+62
* 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).
2025-10-06removed remaining references to Github projects and updated TODORobin Haberkorn4-12/+39
2025-10-04removed the Github CI workflows: this is now fully replaced by the fmsbw.de ↵Robin Haberkorn3-526/+0
FreeBSD-based runners
2025-10-0410-freebsd14-msys-sciteco: also build Doxygen documentationRobin Haberkorn1-1/+4
This is what the Github CI workflow did previously.
2025-10-04added 20-freebsd14-osx-sciteco: this builds OS X nightly binaries via osxcrossRobin Haberkorn3-3/+78
* 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.
2025-10-01added high-contrast color schemeRobin Haberkorn4-0/+42
* 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
2025-10-01mention both mailing list and personal mail in `sciteco --help`Robin Haberkorn2-2/+2
2025-09-28updated all links to the new "Knowledge Base" and mention mailing listsRobin Haberkorn6-23/+25
* The Knowledge Base replaces the Github wiki. * The mailing lists replace the Github bug tracker, discussions and pull requests.
2025-09-28CI: fixed Windows LTO buildsRobin Haberkorn1-21/+17
* 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
2025-09-2750-ubuntu22-appimage: build AppImages as part of the new fmsbw.de-based CIRobin Haberkorn3-4/+30
This uses an extracted pkg2appimage, since it would be tricky to get fuse to work in the Podman containers.
2025-09-24./configure --with-launcher=LAUNCHER can be used to run SciTECO with a ↵Robin Haberkorn3-5/+11
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.
2025-09-23freebsd14-msys-sciteco: build Win64 Gtk binaries as wellRobin Haberkorn1-7/+63
* Also make sure that we find all DLLs. * The nightly download URL will now be https://sciteco.fmsbw.de/downloads/nightly/
2025-09-23freebsd14-msys-sciteco: disable LTO for the time beingRobin Haberkorn1-3/+5
Appears to result in new problems with win-clang++.
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.