Skip to content

Commit

Permalink
updated ChangeLog for v2.0.0 and TODO
Browse files Browse the repository at this point in the history
  • Loading branch information
rhaberkorn committed Jun 19, 2023
1 parent 7553344 commit 80fa87e
Show file tree
Hide file tree
Showing 2 changed files with 227 additions and 13 deletions.
195 changes: 195 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,201 @@ using a prebuilt binary) are included.
Entries marked with "(!)" might break macro portability
compared to the preceding release.

Version 2.0.0
~~~~~~~~~~~~~

b65c64a don't set up any margins or indention settings on the unnamed buffer in sample.teco_ini
aa2e96a,
29bf227,
f557af9,
bac1efa fixed <EC> interruptions on Gtk+ and most other platforms.
On supported platforms the first CTRL+C will try to gracefully kill the
subprocess, while the second one resorts to a more agressive method.
5470fc3 Curses: do not allow typing any non-ASCII characters - fixes crashes on PDCurses/WinGUI.
This is a temporary limitation as long as we do not support Unicode.
f0d57d7 added Asciidoc lexer config
85599c7 added Markdown and YAML lexer configs
d10997a improved the C/C++ and Gob lexers
4273088 added lexers for Python and Linux Device Trees
df6c898 CPP lexer: support *.ino files (Arduino IDE sketches)
b8e8cc8 added lexing support for Gob2 (GObject Builder)
9f7f187,
b091d8b The "cpp" lexer configuration has been split into "c.tes" and "cpp.tes"
effectively improving C support.
2f72665,
a6b5394 fixed crashes after interruptions of commands with string arguments in interactive mode
It's not clear whether this has been broken in v0.6.4.
60a0913 data installation path is now configurable via --with-scitecodatadir
030e0f5 Allow disabling Lexilla (Lexer) support by specifying --without-lexilla.
When optimizing for size, this helps saving 50% of the compressed binary size.
ba08753 Fixed rubbing out words (^W) and possible chrashes.
This has probably been broken in v0.6.4 as well.
cc417af fixed formatting of dates in manpages
9f659ec,
e752a64 fixed grosciteco (and thus building) for newer Groff versions (#11)
ca9de04 sciteco(1) manpage: All UIs support ^C interruptions now
101a868,
73cab56 bumped required PDCursesMod version to v4.3.4 or later
147e53b,
9586a03,
9a5e363,
3706112 Fixed CTRL+C interruptions on all versions of PDCurses
0d3da2c reduced memory use in interactive mode due to undo tokens
d6126b3 fixed rubout of certain constructs like Ifoo$FRX$$
It's not known whether this bug existed on v0.6.4.
aa00bf1 added ./configure --enable-debug and make sure that NDEBUG is defined properly
4c79d26 Gtk: fixed entering dead keys
1c88da4 Woman pages under Gtk: fixed monospaced example blocks
39490d6 Gtk: default font is now "Monospace" instead of Courier.
This avoids unexpected ligatures.
f15bc53 Gtk+: fixed interpretation of Alt-Gr-keypresses.
This bug appeared with newer Gtk+3 versions.
8031da6 Gtk+: Stop memory limiting when idling
18a0543 Gtk: disabled ^Z suspension on Unix for the time being.
This cannot easily be made working properly.
fdb89d9 GTK: Support for Xembed protocol via --xembed.
This is useful for instance with tabbed (https://tools.suckless.org/tabbed/):
$ tabbed sciteco --xembed
6df603d Gtk: fixed message bar's background color
073f5f2 Gtk: The GObject Builder (GOB2) is no longer required.
b21d294 Gtk: Display control characters in titles and autocompletion popups
like in the text buffer.
45413d0 Gtk UI: popup will now overlay both the Scintilla view and message widgets
e768487 Gtk UI: full color scheme support
cff9fb1,
8627a00 Gtk UI: added option --no-csd to disable client-side decorations
f25f97e Gtk UI: uses header bars now
eed939f install PNG icon and use it to set GTK's window icon
3fd1a19 GTK UI: beep on error
f337481 improved default selection colors and made them configurable via color.tes
3ed4116 fixed building on Mac OS
af16d43 fixed crashes when the Q-Reg stack is non-empty at exit
This might have been broken in v0.6.4 as well.
8ef010d optimized caret scrolling: this is a costly operation and is now done only once per keypress
8baa1b3 optimized character representation setting
50d63f2 fixed hiding savepoint files on Win32
0267b68 Optimized process spawning (EC) on UNIX
ae913ab Negative searches (<S>) check for multiplication overflows now
9fa78ca Memory limiting fixed on Mac OS X
5167dad guard against too low arguments to <S> by checking whether the memory limit would be exceeded.
This fixes potential crashes.
e3b2bb7 fixed Clang builds
a2e52ca,
432ad24 Significant internal rewrites.
* String termination takes string building characters into account, ie. you can use
the termination character (escape by default) in ^EQ[...].
* Also, it's now possible to escape it using ^Q/^R, adding yet another way to insert escape
characters.
* All strings are 8-bit-clean now. This means you can also use SciTECO as
a scriptable binary editor.
* Gtk+ (>= v3.12) interface is usable and stable now.
* Memory limiting should finally work on Linux, Windows, Mac OS and
FreeBSD.
* Glib v2.44 is the minimum required version now.
524bc39 improved Emscripten support: fixed configure-checks, generate *.js and detect EMCurses
90baf34 Automatic case-folding of commands in interactive mode when enabling bit 3 in ED (`0,8ED`)
2491d5f fixed checks for missing left and right operands to binary operators
4038aa2 fixed and optimized piping very large buffers via EC/EG
5069c3b fixed Q-Reg autocompletion for `Q` command
8b00fa8,
6f9705b support NetBSD's curses (--with-interface=netbsd-curses)
af05d38,
f4da329 Significantly reduced memory use for undo tokens (interactive mode)
f90b197,
733e012,
5e84b63,
0ad317e build system portability fixes (FreeBSD compatibility)
c1113c2 fixed table formatting in generated HTML files (sciteco.7.html)
e4d5a99 allow dollar sign ($) as another variant of ^[ (discard all arguments or return)
8460f92 Fixed rubout of the first command after command line termination ($$).
It's unclear whether this has been an issue in v0.6.4.
0fbbc0d womanpage lexer: fixed popup styling
bece75c updated sample.teco_ini: 2EJ now sets a more or less global memory limit
(!)1cec19d Fixed interpretation of the Q-Register specification "..".
The parser would allow arbitrarily many dots in front of a local Q-Register
name. ".." is the local Q-Register "." now.
84ab169 auto-completion of Q-Register names, goto labels and help topics
be39ab9 The manpage generator generator-docs.tes has been renamed to tedoc.tes
b44a4ba standard lib: added getopt.tes for parsing command line options in scripts
cb5e08b It is now possible to write SciTECO scripts with command-line arguments.
e7867fb implemented self-documenting (online) help system.
You can use `?` for looking up a help topic.
Documentation is opened as so called "womanpages" which are generated from
Troff man pages using grosciteco.
Groff is therefore now a hard compile-time requirement.
c0fe494 fixed segfault when munging empty scripts
(!)9f6cba5 Globbing (EN and EB commands) support character classes now and
^EN string building construct can be used to escape glob patterns.
(!)61ff6e9 Integrated clipboard support on Gtk+, PDCurses and ncurses/XTerm.
The clipboard is exposed as Q-Registers beginning with "~".
16e9b0d Added ^E@ string building character for expanding arbitrary strings
so they can be parsed from UNIX shells.
On Windows, you will have to enable UNIX98 shell emulation to make
use of this feature.
9e97b58 session.tes: save and restore the working directory as part of the session
c4dbe74 fixed rubout and reinsertion of the loop end command (>)
4686d18,
39124fd EG and EC use $SHELL (UNIX) and $COMSPEC (Windows) as the default command
interpreters now.
The corresponding Q-Register is always the uppercased $COMSPEC even if
the native system uses a different spelling.
4db7f46 Implemented ^C command to terminate a script (similar to exit(3)).
This is disallowed in interactive mode.
247884a `F>` outside of loops will now return the parent macro level (like $$)
and terminate the command line in interactive mode.
(!)de73943 Added pass-through loops: `:<`, `:>`, `:F<`.
F< outside of loops jumps to the beginning of the macro now.
A lot of checks have been added for unterminated loops etc.
52a8d7f,
(!)f08187e Implemented <$$> command for returning from a macro
Since $$ is a regular command now also in interactive mode,
syntactic characters (eg. string termination) are now longer taken into
account when terminating command lines.
5fce211 Fixed many rubout-rubin cases.
1da5bde,
b259cb6 optimized command execution in batch mode, during macro calls, loops etc.
406cf5a added 16px, 32px and 256px versions of the SciTECO PNG icon
f9c1765,
131fe7c added :EX (colon-modified EX): exits SciTECO saving all modified buffers
40318a2 refactored pattern matching processing: fixes segfaults and memleaks
dc02222 ncurses: use a default escape delay of 25ms
21e0d30 curses UI: fixed truncation of non-filename popup entries
b710f6a curses UI: properly truncate q-register and file names
efa862d,
(!)ecbc58f Different operators can have the same precedence now.
SciTECO now has the same operator precedence table as C.
8baae75 Curses UI: revised popup area, with borders and a scroll bar; reduce flickering
(!)e77f4d3 <nA> for n pointing to the buffer end throws an error now.
7a85142 fixed error message for Qq if <q> does not exist
45e2f9a curses UI: support terminal palette restoration on PDCurses/win32 and xterm
c77101c curses: fixed arithmetic error when window is smaller than 2 columns
6a9a7d5 added port of the Solarized color scheme (solarized.tes)
f69d1f0 programmable terminal color redefinition and theming SciTECO curses UI based on Scintilla styles
This is using 3EJ.
95ebb1c <:Q> returns -1 for non-existent registers now
(!)9c19ab0 do not imply values for the "=" command but fail instead if argument is missing
859a831 enable function key macros automatically when sourcing fnkeys.tes
007cfe7 disable all Scintilla margins by default
c39b545,
ae2f607 added "^FCLOSE" function key macro and defined SIGTERM behaviour
d9e2250 the Scintilla caret is now non-blinking by default
a1a7d3d never show the horizontal scrollbar by default
65a1e61 disable PDCurses/win32a "function keys"
91bbf67 improved ncurses/win32 support
17e7768 added XCurses support
8101cec major Curses UI revision: initialize curses as late as possible
15409ba Handle environment variables more consistently.
Subprocesses inherit the Q-Registers beginning with "$" as their
process environment.
7919aca support UNIX-shell-like tilde-expansions in file names and directories
88dc6ac It is an error now to try to set or append the string part of "*" and appending to "$"
02d414b added <FG> command and special Q-Register "$" to set and get the current working directory
6c62ccc Modified ^W (rub out word) in string (and file name) arguments:
ensure that we always rub out beyond empty arguments
b65eee0 support specialized ^W (rub out part of file name) immediate editing command in file name arguments
c98a2cd restrict globbing in the EB command to regular files.
bae8cd7 The <EN> command now allows matching file names and checking file types.

Version 0.6.4
~~~~~~~~~~~~~

Expand Down
45 changes: 32 additions & 13 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,22 @@ Tasks:
"edit" hook.

Known Bugs:
* The "lexer.test..." macros do not work with the unnamed buffer,
so there should be a special test in .teco_ini.
* After commands like ECcat /dev/zero$ result in OOM,
we do not correctly recover, even though malloc_trim() is called.
This could be because of Scintilla's undo token.
Perhaps it would be best to disable any undo handling by Scintilla
via SCI_SETUNDOCOLLECTION. This would also save memory.
* Using fnkeys.tes still flickers on PDCurses/WinGUI.
Apparently a PDCurses bug.
* Win32: Interrupting <EC> will sometimes hang.
Affects both PDCurses/WinGUI and Gtk.
In this case you have to kill the subprocess using the task manager.
Could this be a race condition when adding the process to the job object?
Perhaps the child process should be created suspended before being added
to the job object. Glib does not currently allow that.
* 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 "<"
^ES is apparently not greedy.
* fnkeys.tes: Cursor movements will swallow all preceding braced
expressions - there should be more checks.
* rubout of EB does not always restore the view to an edited Q-Register.
(Is this still relevant after the Great Ceification event?)
* 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.
Expand Down Expand Up @@ -299,9 +302,11 @@ Features:
This should now be relatively easy to implement by reusing
the parser.
* multiline commandline
* perhaps use Scintilla view as mini buffer.
* Perhaps use Scintilla view as mini buffer.
This means patching Scintilla, so it does not break lines
on new line characters.
on new line characters and we can use character representations
(extend SCI_SETLINEENDTYPESALLOWED?).
cmdline.c can then directly operate on the Scintilla document.
* A Scintilla view will allow syntax highlighting
* command line could highlight dead branches (e.g. gray them out)
* Add special Q-Register for dot:
Expand Down Expand Up @@ -423,6 +428,10 @@ Features:
* Possible Nightly Build improvements (and therefore releases):
* Build 32-bit Ubuntu packages
* Push nightly builds into the Ubuntu PPA.
We should probably create a new PPA sciteco-nightly.
A new private key has already been registered on Launchpad and
Github. We just need to integrate with CI.
See also https://github.com/marketplace/actions/import-gpg
* AppImage for Linux
* 64-bit Windows builds
* Mac OS Arm64 builds either separately or via universal binary.
Expand All @@ -439,8 +448,16 @@ Features:
but it would ease opening filenames copied from compiler errors
or grep -n results.
* <:EF> for saving and closing a buffer, similar to <:EX>.
* Bash completions.

Optimizations:
* Use SC_DOCUMENTOPTION_STYLES_NONE in batch mode.
However, we do not actually know that we do not continue
in interactive mode. Also, some scripts like grosciteco.tes
make use of styling in batch mode. So this would have to be
requested explicitly per ED flag or command line option.
* teco_interface_cmdline_update() should be called only once
after inserting an entire command line macro.
* There is should be a common error code for null-byte tests.
* teco_string_append() could be optimized by ORing a padding
into the realloc() size (e.g. 0xFF).
Expand All @@ -454,8 +471,10 @@ Optimizations:
* Add a configure-switch for LTO (--enable-lto).
* undo__teco_interface_ssm() could always include the check for
teco_current_doc_must_undo().
* Polling for keyboard events in the Gtk+ and Curses UIs
can probably be rate-limited, e.g. every 500ms.
* Define TECO_DESTRUCTOR depending on NDEBUG instead
of ifdefing all __attribute__((destructors)).
This also avoids warning for symbols referenced only in
the constructors.

Documentation:
* Code docs (Doxygen). It's slowly getting better...
Expand Down

0 comments on commit 80fa87e

Please sign in to comment.