diff options
| -rw-r--r-- | ChangeLog | 49 | ||||
| -rw-r--r-- | NEWS | 16 | ||||
| -rw-r--r-- | TODO | 133 | ||||
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | debian/changelog | 6 | ||||
| -rw-r--r-- | freebsd/Makefile | 2 |
6 files changed, 151 insertions, 57 deletions
@@ -6,6 +6,55 @@ using a prebuilt binary) are included. Entries marked with "(!)" might break macro portability compared to the preceding release. +Version 2.5.2 (2026-04-20) +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* sped up `EQq<filename>$` +* Curses/UNIX: It should be possible to interrupt more potentially blocking + operations with CTRL+C (SIGINT). +* (!) `^A` now supports a message severity level, so you can log + warnings and errors as well. +* Added TANK MODE. + Launch with EI^EQ[$SCITECOPATH]/tank.tes$ +* support Groff v1.24.0 and later +* fnkeys.tes: When preserving the horizontal column, + take the character representations and tab draw modes into account. +* SIGTERM/SIGHUP always quits. + On GTK recovery files are always dumped first. +* decreased default recovery dumping interval to 120s +* (!) `-$$` and `-^C` always return -1 now instead of passing down the prefix sign +* fixed scrolling at the end of a multi-line command-line +* fixed auto completion of two-character Q-register names +* `ER` updates `^S`/`^Y` now as any other text insertion +* GTK: fixed --detach and support stdout/stderr redirections. + Has been broken since v2.5.0. +* GTK: Fixed interaction between `^T` and main input handling. + Key presses are no longer missed and inserted into the command line later. +* Curses: handle window resizes when blocking in `^T` and don't return function keys. + Also, filter out bogus key press events on PDCursesMod/WinGUI. +* Curses: fixed monochrome support. + Has been broken since v2.5.0. +* Curses: fixed 16-color schemes and default colors (`sciteco --no-profile`) + on 8-color terminals (like the Linux/FreeBSD VTs) + Has been broken since v2.5.0. +* Curses: default colors are now closer to terminal.tes +* Curses: fixed colors on emulators with less than 256 color pairs + (e.g. TERM=rxvt) +* Curses: support up to 32767 color pairs +* Curses: require wide-char support even on PDCurses +* fixed auto-completion of Unicode (non-ANSI) file names +* disallow replacing non-Unicode command lines via `{` and `}` +* Curses: fixed flickering of the hardware cursor on the command line. + On the downside, this can result in the cursor being visible when + drawing the buffer as well. + Has been broken since v2.5.1. +* fallback.teco_ini: added commented-out line to disable the hardware cursor +* fallback.teco_ini: fixed exclusion of the unnamed buffer from custom + margin and indention settings. + Has been broken since v2.5.0. +* opener.tes: opener.check-recovery can be used in ~/.teco_ini to check + for and warn about the presence of `#recovery#` files. + Version 2.5.1 (2026-01-10) ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2,17 +2,5 @@ News ==== <span class="nf nf-md-new_box"></span> -There is now an official [Haiku port](https://depot.haiku-os.org/#!/pkg/sciteco_curses/) -for the ncurses version, so Haiku users can install SciTECO via the Depot. - -<span class="nf nf-md-new_box"></span> -SciTECO [v2.5.1](https://sciteco.fmsbw.de/downloads/v2.5.1/) has been released. -This is a hotfix release to v2.5.0, which first and foremost fixes the -Windows PDCurses builds. - -<span class="nf nf-md-new_box"></span> -SciTECO [v2.5.0](https://sciteco.fmsbw.de/downloads/v2.5.0/) has been released. -This release brings many new features, but most importantly -makes the language much more usable as a non-interactive scripting language. -Also, the command-line is syntax highlighted now and recovery files are written -to help you recover from crashes and other unexpected terminations. +SciTECO [v2.5.2](https://sciteco.fmsbw.de/downloads/v2.5.2/) has been released. +This is mostly a fixup to v2.5.1 and v2.5.0. @@ -1,8 +1,7 @@ Tasks: * Have a look at TECO-86. * VEDIT and PMATE for MS-DOS - * Scintilla: upstream 2 patches - * HaikuPorts + * Make sure that fmsbw.de is indexed by Google Known Bugs: * OBS GTK builds sometimes fail: "cannot open display" @@ -10,24 +9,16 @@ Known Bugs: * In multiline command lines, the asterisk can scroll out of view. Perhaps it has to be drawn independently of Scinterm. * FreeBSD's `crontab -e` is not compatible with SciTECO's savepoint mechanism. - * ncurses: GNOME Terminal and Xterm produces BUTTON3_PRESSED (without BUTTON3_RELEASED) - events when scrolling horizontally. - This is fixed upstream in ncurses and there is a workaround for - older ncurses versions which limits the effects of this bug. - * ncurses: st and Xterm produce BUTTON2_RELEASED, followed by BUTTON2_PRESSED - when clicking the middle button. - We also *sometimes* get it in the correct order. - This bug has been fixed upstream and there is a workaround for - older ncurses versions. You may loose the distinction between - pressed and release events, though. + * Gnome Terminal: You can see hardware cursor flickering when deleting + lines repeatedly (if it's enabled of course). This is also visible in Aerc. + Scroll regions are already used, but only when scrolling. + Disabling the hardware cursor around doupdate() causes flickering + of the cursor on some terminals. * Upgrade to Scintilla 5.5.7 requires charconv header which bumps the minimum GCC version to 8.1 (officially 9). This breaks OpenSUSE 15.5-15.6 builds. * Build problems on Fedora 41: See mail from Blake McBride. - * @^Um{-$$} Mm= should probably return -1. * {@I/$$23=/} doesn't insert anything after $$. - This would be necessary for an interactive screen editing script, - that leaves you in <I> always. This would require some refactoring. * GTK on Haiku: CTRL and AltGr-combinations do not work. The modifiers are not delivered properly and it appears to affect all Gtk apps @@ -36,16 +27,18 @@ Known Bugs: the variable-width font since its rendered in STYLE_CONTROLCHAR (36), which is reset in woman.tes. Perhaps it should always be in lexer.font. - * The current horizontal position (set by 4EJ via SCI_GETCOLUMN) is - often wrong, i.e. pressing the up-cursor key can get you into the - wrong column. - Character representations obviously take always one column. - This would have to be fixed in Scintilla's SCI_GETCOLUMN. * Excessively long lines slow down SciTECO too much, especially when enabling SCI_SETWRAPMODE(SC_WRAP_CHAR). In some cases, the internal redrawing blocks SciTECO forever. * @ES/SCI_CLEARALLREPRESENTATIONS// does nothing. Might be a Scintilla bug. + * Some operations can be hard to interrupt because they result + in costly calculations within Scintilla. + For instance interrupting ECcat /dev/zero$ can hang in + the Scintilla Undo operation. + This particular hang could be avoided by getting rid of + Scintilla undo actions in teco_view_load_from_channel() and spawn.c. + We can probably only get rid of undo actions completely and globally. * Win32: Interrupting <EC> will sometimes hang. Affects both PDCurses/WinGUI and Gtk. This no longer happens with ECbash -c 'while true; do true; done'$. @@ -56,17 +49,21 @@ Known Bugs: want to refer directory C:\mingw64 instead). * PDCurses/Win32: Crashes sometimes without any error message. * NetBSD Curses: scrolling apparently uses hardware idl capabilities - resulting in graphical glitches on slow terminals. + without scroll regions resulting in graphical glitches on slow terminals. idlok(FALSE) is apparently ignored. - * NetBSD: Very slow, even the redrawing. + * NetBSD Curses: Very slow, even the redrawing. This does not happen with ncurses on NetBSD. + Do they have immedok(TRUE) enabled by default? * dlmalloc's malloc_trim() does not seem to free any resident memory after hitting the OOM limit, eg. after <%a>. Apparently an effect of HAVE_MORECORE (sbrk()) - some allocation is always left at the end. * S<LF>^ES^N<$ does not find the first line that does not begin with "<". This is because \s+ backtracks and can match shorter sequences. - Perhaps ^ES should always be translated to \s++ (possessive quantifier)? + TECO-11 patterns do not backtrack apparently. + Perhaps ^ES should always be translated to \s++ (possessive quantifier). + On the other hand, we would have to extend the pattern syntax to allow + backtracking. * Colors are still wrong in Linux console even if TERM=linux-16color when using Solarized. Affects e.g. the message line which uses the reverse of STYLE_DEFAULT. @@ -91,6 +88,7 @@ Known Bugs: re2 should be an optional dependency, so we can still build against the glib APIs. Optionally, I could build a PCRE-compatible wrapper for Rust's regex crate. + It would also be possible to port hxrex to UTF-8 and add it as a submodule. * It is still possible to crash SciTECO using recursive functions, since they map to the C program's call stack. It is perhaps best to use another stack of @@ -201,6 +199,27 @@ Known Bugs: Also, the command-line redrawing is still broken in GNOME Terminal. * When config.status is run as a consequence of touching configure.ac, config.h will be wrong, forcing us to rerun ./configure. + * Does not scroll at the end of a multiline command-line + (the first character on a scrolled line will not be visible). + On Curses the hardware cursor will still stay at the end of the window of course. + Obviously a Scintilla bug. + Break on EditView::DisplayFromPosition + Perhaps the problem is in Editor::MaxScrollPos(). + As a workaround, we set SCI_SETENDATLASTLINE(0). + * OBS builds do not provide Ubuntu i586 since subversion is obviously no longer + packaged, breaking obs-service-tar-scm. + Is there any third-party build? + * GTK: too much flickering in tank mode when shooting. + This is because my font doesn't contain the correct glyph. + Try: I ^E<10041>$ + Perhaps we should use more widespread glyphs. + https://groups.google.com/g/scintilla-interest/c/ZgLik8tNyjM + * There are still potentially blocking syscalls that could result in + SciTECO hanging. Curses/UNIX can rely on SIGINT, but this won't + help on any other platform. + All blocking operations must be within an event loop and call into + teco_interface_is_interrupted() to potentially drive the UI and + detect CTRL+C presses. Features: * Should we support *.sgml files with the HTML lexer? @@ -221,6 +240,7 @@ Features: Would probably require some kind of server... * opener.tes should try to center the opened line (SCI_SETFIRSTVISIBLELINE). + However, this would require a new ED hook, so we can query SCI_LINESONSCREEN. * Rubout of SCI_GOTOPOS could also restore the vertical scrolling position (SCI_SETFIRSTVISIBLELINE). So e.g. rubbing out ZJ restores the exact view. @@ -298,21 +318,11 @@ Features: line. May be useful e.g. for solarized's F5 key (i.e. function key macros that need to terminate the command line as they cannot be rubbed out properly). - * Key macros could support special escape sequences - that allow us to modify the parser state reliably. - E.g. one construct could expand to the current string argument's - termination character (which may not be Escape). - In combination with a special key macro state - effective only in the start state of the string building - state machine, perhaps only in insertion commands, this - could be used to make the cursor movement keys work in - insertion commands by automatically terminating the command. - Even more simple, the function key flag could be effective - only when the termination character is $. - Instead of reserving a character, we could also reserverve - a bit in the function key maks. - It's however impossible to reliably return to the start state - from arbitrary parser states. + * Key macro flag to automatically terminate insertion commands + (or everywhere where it's safe). + Should be used to make the cursor movement keys (fnkeys.tes) + automatically terminate string arguments. + Will probably require a new state callback. * Support more function keys. We can define more function keys via define_key(3NCURSES). Unfortunately they are not really standardized - st and urxvt for instance @@ -389,7 +399,6 @@ Features: * ^A currently doesn't flush the output. Perhaps flushing should be controlled by the language. Perhaps via the ET flags. - * Mini game where you can drive a tank around your source code. * `@]q` to pop keeping the numeric part of q intact. Perhaps `@@]q` to overwrite __only__ the numeric part, but keeping the string intact. @@ -480,7 +489,12 @@ Features: command-line termination. Also, we'd need a command to fetch the modification timestamp as well. - * Recovery files should probably be hidden during auto completions. + * Curses: Dump recovery files on SIGTERM and SIGHUP as well. + Useful when we are unexpectedly but gracefully terminated, + Could only be done on Curses by setting a small timeout and + returning from getch() frequently to check whether the signal + ocurred. + On Wincon we could also react to window closes. * Error handling in SciTECO macros: Allow throwing errors with e.g. [n]^F<description>^F where n is an error code, defaulting to 0 and description is the error string - there could be code-specific @@ -593,6 +607,7 @@ Features: * It should be possible to disable auto-completions of one-character register names, so that we can map the idention macro to M<TAB>. * Add a configure-switch for LTO (--enable-lto). + All of the packages will have to be adapted as well. * There should be a string building construct for escaping search patterns. Since string building is performed immediately before @@ -600,9 +615,12 @@ Features: search for a Q-Register verbatim. * Tweak the Makefile lexer for Automake support. In the simplest case, just add the *.am file extension. - * Add an fnkeys.tes alternative where moving cursor keys + * Add key macros where moving cursor keys leaves you in the insert (I) command. That will behave very similar to classical editors. + See n00b.tes. + This still requires an ED hook for new command lines and + FQ to remove Q-registers. * Lexing via SciTECO macros? They would have to be in their own parser instance since Scintilla could ask us to restyle at any time and within string arguments, @@ -699,6 +717,9 @@ Features: ^U[^L0]SciTECO ^XI <^XT> ^XF$ As a first step, customizing the window title might be the most useful, as often, you don't need the "SciTECO - <Buffer>" prefix. + * Would also allow the configuration of "powerline" symbols at least + for the Curses variant. + https://github.com/ryanoasis/powerline-extra-symbols * Until we have customizeable layouts, it may make sense to hardcode the current line+column in to the message line. * With Unicode icon support, we might want to replace a few more @@ -791,6 +812,36 @@ Features: We'd have to handle an overlapping info popup, though. Should we deactivate the hardware cursor via curs_set(0) if it overlaps the popup? + * ncurses: Support default colors (use_default_colors()). + Instead of drawing a black background and white foreground + we could use pair number -1. + This means you don't suddenly become white-on-black on terminals + that use black-on-white by default. + On the other hand, not all color schemes might look good, + so this would have to be a setting (ED flag). + Also, Scinterm would have to support it as well. + This also appears to be responsible for the greyish background + on Haiku and GNOME Terminal: They don't have a true black as color 0 + even if the default terminal background is a true black. + * Ctags support + Perhaps can be Video TECO compatible. + https://github.com/universal-ctags/ctags + * Non-spacing code points would currently be handled as separate + SciTECO characters. + On the one hand, this means you can remove accents from characters. + On the other hand, it may be inconvinient in texts with many accents. + What do Asian scripts like Hangul do? + * :^Q should perhaps return a status code, so you can check for + invalid line ranges. + The current :^Q (dot to line) would have to be renamed to + something else, like ^L. + Or alternatively @^Q could simply ignore out of range + arguments. + * Perhaps add math.tes with primitives from my Project Euler + solutions to the standard library. + * :^W should perhaps inhibit the caret scrolling. + When using ^W purely as a wait command, this could be undesirable. + Also, it is undesirable for some animations (e.g. shooting in tank.tes). Optimizations: * Use SC_DOCUMENTOPTION_STYLES_NONE in batch mode. diff --git a/configure.ac b/configure.ac index e703aed..f64636b 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.65]) -AC_INIT([SciTECO], [2.5.1], +AC_INIT([SciTECO], [2.5.2], [hackers@fmsbw.de], [sciteco], [https://sciteco.fmsbw.de/]) diff --git a/debian/changelog b/debian/changelog index ddea47c..ab0d425 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +sciteco (2.5.2) unstable; urgency=low + + * new upstream version v2.5.2 + + -- Robin Haberkorn <rhaberkorn@fmsbw.de> Sun, 19 Apr 2026 20:21:14 +0000 + sciteco (2.5.1) unstable; urgency=low * new upstream version v2.5.1 diff --git a/freebsd/Makefile b/freebsd/Makefile index e18b7bc..8550f5a 100644 --- a/freebsd/Makefile +++ b/freebsd/Makefile @@ -1,5 +1,5 @@ PORTNAME= sciteco -DISTVERSION= 2.5.1 +DISTVERSION= 2.5.2 CATEGORIES= editors textproc devel MASTER_SITES= https://sciteco.fmsbw.de/downloads/v${DISTVERSION}/ \ SOURCEFORGE/${PORTNAME}/v${DISTVERSION}/ |
