aboutsummaryrefslogtreecommitdiffhomepage
path: root/contrib
AgeCommit message (Collapse)AuthorFilesLines
21 hoursfixup: require wide-char support even on PDCurses and document new requirementsHEADmaster-fmsbw-cimasterRobin Haberkorn1-0/+0
Also, Scinterm had to be updated again since NetBSD curses stores up to 8 wchar_t per cell.
45 hoursfixup: high-color-pair support was still broken in ScintermRobin Haberkorn1-0/+0
* Also updated A_XXX attributes to WA_XXX, where the "new" wattr_set() APIs are used. This doesn't make a difference on ncurses and PDCurses, but the X/Open standard demands it. * Allow color pairs up to 32767 instead of only up to 32766. * We now always require Curses wide-character APIs due to Scinterm, which has to use mvwin_wch(). We were practically depending on wide-character support anyway, so this shouldn't really restrict portability. * teco_curses_add_wc() has been simplified, now that we can rely on wide-char APIs. Perhaps it should be removed altogether?
6 daysCurses: support up to 32767 color pairsRobin Haberkorn1-0/+0
* Instead of ORing COLOR_PAIR() into attributes, always pass separate `pair` arguments. Since they are `short` this allows for up to 32767 color pairs. Previously, we could only count on 256 color pairs (or 128 for SciTECO and Scinterm each). * Analoguous changes have been made to Scinterm. See also https://github.com/orbitalquark/scinterm/pull/37 Since it only correctly checks for overflows at the end of the color pair space, we allocate the second half of that space to Scinterm. It is now very unlikely to overflow the color pair space, though. * This wasn't critical of course since even the 128 pairs would be unlikely to exhaust as long as we support only 16 ANSI colors. Scinterm however supports arbitrary RGB colors and we might want to do so soon as well.
11 daysCurses: fixed monochrome supportRobin Haberkorn1-0/+0
This requires a (yet unmerged) Scinterm patch.
2026-01-06updated Scinterm: patches for PDCurses support have been mergedRobin Haberkorn1-0/+0
The submodule has been reverted to its upstream URL.
2026-01-05upated Scinterm: fixes colors on PDCursesRobin Haberkorn1-0/+0
See also https://github.com/orbitalquark/scinterm/pull/35
2025-12-28Curses: use INDIC_SQUIGGLE to render rubbed-out command linesRobin Haberkorn1-0/+0
* This is still rendered as underlined text. * It uses a new Scinterm upstream feature, so we can switch back to the upstream repo.
2025-11-13updated Scinterm: one of my patches has been mergedRobin Haberkorn1-0/+0
2025-11-12updated Scintilla: tabs in command lines and SciTECO buffers are now ↵Robin Haberkorn1-0/+0
rendered as "TAB" without any indentation
2025-11-12updated Scinterm: some of my patches have been merged upstreamRobin Haberkorn2-0/+1
It does not change anything functionally, though.
2025-11-11Scinterm updated: hopefully fixed Windows buildsRobin Haberkorn1-0/+0
The new wcwidth.c wasn't actually linked in.
2025-11-10Curses: the rubbed out command line is now rendered with underlines againRobin Haberkorn1-0/+0
This requires enhanced INDIC_STRAIGHTBOX semantics, which are not yet upstream in Scinterm.
2025-11-10Scinterm updated to v5.5Robin Haberkorn1-0/+0
* This currently needs a yet unmerged patch, fixing the light colors. * Scinterm no longer systematically initializes the color pairs, so we cannot predict their numbers - instead we initialize color pairs on demand and store them in a hash map, very similar to what Scinterm does internally. * Scinterm v5.5 can use arbitrary RGB colors now by automatically allocating curses colors and pairs. We do not expose this in SciTECO yet, although that would also be possible. It has to be decided first whether the special predefined colors will continue to live in the same namespace along with "true" RGB colors.
2025-11-09updated Scintilla to v5.5.8 and renamed SC_LINE_END_TYPE_HIDDEN to ↵Robin Haberkorn1-0/+0
SC_LINE_END_TYPE_NONE
2025-10-26AX_PTRDIFF_ALIASES_INT: the check should be more reliable nowRobin Haberkorn1-0/+0
* 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-20scintilla: use AX_PTRDIFF_ALIASES_INT to check whether ptrdiff_t aliases intRobin Haberkorn1-0/+0
* 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-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-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-21fully support NetBSD with its native libcursesRobin Haberkorn1-0/+0
* 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-19curses: fixed configuration for native netbsd-curses and ncurses (several ↵Robin Haberkorn1-1/+1
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-04-01updated Scinterm to v5.4: Only show scroll bars when they can be scrolledRobin Haberkorn1-0/+0
2025-03-13updated Scinterm: my monochrome patch was merged only with some modificationsRobin Haberkorn1-0/+0
* SCI_COLOR_PAIR() is now a function teco_color_pair() since it also became an inline function in Scinterm.
2025-03-07ncurses: support monochrome terminalsRobin Haberkorn1-0/+0
* If the background color would be non-black, render text in reverse video. ncurses doesn't do that automatically. * Fixes rendering under historical terminals like VT100 and VT240, but also all of the monochrome versions of modern emulators in terminfo. * This also improves the situation when $TERM is set to something conservative, e.g. when connecting via RS232. * Scinterm is temporarily changed to my own fork, which already contains a monochrome patch.
2025-02-27updated Scinterm: fixes superfluous window refreshes, which resulted in ↵Robin Haberkorn1-0/+0
flickering when scrolling the popup window * see https://github.com/orbitalquark/scinterm/issues/26 * scintilla_wnoutrefresh() actually caused a refresh(), thus updating the physical screen before calling teco_curses_info_popup_noutrefresh() and doupdate(). * This was visible when redrawing the both Scintilla view and popup often as happens during scrolling or when clicking on the popup borders. * This was probably broken since v2.1.0.
2024-12-24added AX_WITH_CURSES for more robust ncurses checksRobin Haberkorn1-1/+1
* Turns out that on SunOS/OmniOS the ncurses port does not ship with a ncursesw pkg-config file, but the ncurses file is for a version, that does contain widechar support as well. * Instead of adding yet another recursive PKG_CHECK_MODULES() call, we now use the AX_WITH_CURSES() macro, which is probably more robust. This should at least fix ./configure on OmniOS. * It also adds a number of feature C macros, that could be useful to check in the future. * At the moment, we strive to support all X/Open-compatible Curses libraries, but both enhanced and color functions are required. Therefore plain SVr4 Curses is not supported. * source: https://www.gnu.org/software/autoconf-archive/ax_with_curses.html
2024-12-17updated Scintilla to v5.5.4: contains a few optimizationsRobin Haberkorn1-0/+0
Unfortunately, it does not help with the slowdowns when editing files with very long lines.
2024-11-30updated Scinterm to the official v5.2 releaseRobin Haberkorn1-0/+0
This does not change anything functionally.
2024-10-29mingw-bundledlls: blacklist additional DLLsRobin Haberkorn1-2/+3
* I am not entirely sure whether it would be safe to bundle api-ms-win-core-synch-l1-2-0.dll or bcryptprimitives.dll, so I won't upstream this change yet. * Should fix GTK/Win32 nightly builds.
2024-10-19Scinterm: fixed building on older versions of Mac OSRobin Haberkorn1-0/+0
* they don't have A_ITALIC * should fix the nightly builds
2024-10-18updated Scinterm: italic and underline styles are now supported on CursesRobin Haberkorn1-0/+0
* For instance, when using the Solarized color scheme, comments will be in italics. * The underline style could also be supported in color.set, but currently it's not required. * Unfortunately, this does *not* fix the INDIC_PLAIN indicator style for underlining, so you still cannot use that eg. for spell checking. * See https://github.com/orbitalquark/scinterm/issues/22
2024-09-13updated Scintilla to v5.5.2, Scinterm to v5.1 and Lexilla to HEADRobin Haberkorn3-0/+0
* There are patches on top of Scintilla as were before * Scinterm has been switched back to the upstream repository and there are unreleased commits - especially for out-of-tree builds. * Lexilla hasn't been released since my troff lexer was merged.
2024-08-23Lexilla: the troff branch has been merged, so we point to the upstream ↵Robin Haberkorn1-0/+0
repository again
2024-08-23fully support out of tree buildsRobin Haberkorn2-26/+39
* You no longer have to copy contrib/scintilla, contrib/scinterm and contrib/lexilla manually to the build directory. * It turns out, that Scintilla/Lexilla was supporting this since 2016. Scintilla allows pointing to a source directory (srdir) and Lexilla to a binary directory (DIR_O). * For Scinterm I opened a pull request in order to add srcdir/basedir variables: https://github.com/orbitalquark/scinterm/pull/21 * `make distcheck` is therefore now also fixed. * The FreeBSD package is now allowed to build out of source. I haven't tested it yet. * See also https://github.com/ScintillaOrg/lexilla/issues/266
2024-08-22some updates on Scintilla/Lexilla out-of-tree buildsRobin Haberkorn1-0/+3
2024-08-22bumped Lexilla submodule: it has just been rebasedRobin Haberkorn1-0/+0
This should not change anything functionally.
2024-08-21reverted adf0c46a70b20d187b62c596052f643a6673f68f and updated Scinterm to v5.0Robin Haberkorn1-0/+0
* The patch for indicator styles turned out to be unnecessary, so I switched back to the mainline Scinterm repository. * Scinterm is now on the latest commit that still supports my version of Scintilla (v5.3.4).
2024-08-21Curses UI: fixed drawing of boxed indicatorsRobin Haberkorn1-0/+0
* The scinterm submodule temporarily points to my own fork. * This is necessary for the aspell macro on Curses. See https://github.com/rhaberkorn/sciteco/wiki/Useful-Macros#spell-checker * See also https://github.com/orbitalquark/scinterm/pull/19
2024-08-18added troff/nroff lexerRobin Haberkorn1-0/+0
* This is optimized for Groff, but works for Heirloom Troff and Neatroff as well. Currently, the Heirloom and Neatroff requests are just added ontop of the Groff ones. Theoretically, we could also try to separate the keyword lists into a base K&R set with Groff, Heirloom and Neatroff ontop. * The lexer necessarily has many restrictions, as Troff is fundamentally unparseable (like classic TECO) and needs a lot of per-request knowledge. * The "*.mm" extension has been removed from the lexers/cpp.tes. I don't know what language this was for, and I prefer `*.mm` files to be considered Troff. * Temporarily changed the lexilla submodule URL. The corresponding Lexila lexer is in the process of being upstreamed. Once it is, I will probably revert the submodule to the official repository, as the "troff" branch is not stable (can be rebased).
2023-04-19fixup: reverted the last Scintilla patch and unref Scintilla objects via ↵Robin Haberkorn1-0/+0
g_object_unref() * Turns out that using gtk_widget_destroy(), the finalize handler never gets called!? This means we were leaking memory. * Using g_object_unref() fixes that and the initial Scintilla patch is no longer necessary. * There have previously been use-after-free bugs when *not* using gtk_widget_destroy(). This has apparently been fixed in the meantime in Scintilla.
2023-04-19updated Scintilla: fixes crashes and warnings on startup with Gtk+Robin Haberkorn1-0/+0
* the GObject lifecycle was violated, resulting in use-after-free scenarios
2023-04-18no longer try to avoid automatic scrolling - this is patched out of ↵Robin Haberkorn1-0/+0
Scintilla now * The patch avoids all automatic scrolling consistently, including in SCI_UNDO. This speads up Undo (especially after interruptions). * Also, the patch disables a very costly and pointless (in SciTECO) algorithm that effectively made <Ix$> uninterruptible. * Effectively reverts large parts of 8ef010da59743fcc4927c790f585ba414ec7b129. I have never liked using unintuitive Scintilla messages to avoid scrolling.
2023-04-16updated Scintilla to v5.3.4, Scinterm to v4.1 and Lexilla to v5.2.4Robin Haberkorn3-0/+0
* actually everything is updated to their current HEADs but the aforementioned versions are close. * Scintilla uses threads now, so we added checks for pthread. To be on the safe side, we imported AX_PTHREAD from the Autoconf archives. The flags are kept out of the ordinary build system, though and used only for compiling Scintilla and for linking. SciTECO may also use threads, but via Glib. * Scinterm removed SCI_COLOR_PAIR(), so we re-added it to src/interface-curses/interface.c. * There is an Asciidoc lexer now. * The <Ix$> interruption bug (see TODO) is not fixed by this upgrade. Perhaps the Mac OS version runs better now. Feedback is needed (refs #12).
2022-12-03mingw-bundledlls: blacklisted dwrite.dllRobin Haberkorn1-1/+1
* These are apparently "Microsoft DirectX Typography Services" * patch should be contributed upstream
2022-12-03simplified win32 packaging using mingw-bundedllsRobin Haberkorn1-0/+150
* mingw-bundledlls finds and copies transitive DLL dependencies. * Like all external one-file sources, mingw-bundledlls has been copied into contrib/ instead of adding a submodule. It's taken from here: https://github.com/mpreisler/mingw-bundledlls * Packaging is more robust now if dependant DLLs are upgraded or if we decide to link in more statically. With the old scheme, we might also miss some DLL and break builds without even noticing it.
2021-10-24added ./configure --enable-debug and make sure that NDEBUG is defined properlyRobin Haberkorn1-2/+4
* This simplifies writing CFLAGS="-g -O0" CXXFLAGS="-g -O0". * We build "release" binaries by default. NDEBUG will now be defined unless you specify --enable-debug. This enables some optimizations that have long been implemented but were never actually active: * SciTECO shuts down faster since it will not explicitly free memory. On the downside, this would complicate memory debugging with Valgrind/memcheck. * dlmalloc is built with -DINSECURE=1 which is supposedly a bit faster. Some compilers also complained about an unportable preprocessor usage which should now be gone. * All CI builds are now with --enable-debug. This will slow them down but ensure that more code is executed and thus tested.
2021-10-24bumped Scinterm to new HEAD: this fixes formatting issues during horizontal ↵Robin Haberkorn1-0/+0
scrolling * the bug probably wasn't a regression compared to v0.6.4
2021-10-13build Lexilla with BASE_FLAGS='' - fixes Mac OS buildsRobin Haberkorn1-0/+6
* The default build system includes -arch arm64 -arch x86_64 (builds for both platforms). These flags are apparently not supported by the SDK on the build server.
2021-10-13only build Scintilla and Lexilla static librariesRobin Haberkorn1-2/+2
* saves some build time * fixes Win32 Gtk+ builds