Skip to content

golded-plus-1.1.5-20260827 (unicode)

Pre-release
Pre-release

Choose a tag to compare

@evs38 evs38 released this 27 Aug 15:52
· 17 commits to unicode since this release

Rebuilt on 27 August, same date, with three fixes the day's
testing turned up. Anything downloaded before that carries none of
them; take these instead.

  • GoldED+ could write over its own memory while redrawing the status
    line and crash later somewhere else entirely - opening a *.MSG area
    on one machine, inside the header editor on another. The two lines
    were compared from both ends, which only means the same position in
    each while they are the same length; a field padded to a different
    width made the span come out negative, and as an unsigned length
    that is enormous.
  • On Windows a fullwidth character - Chinese, Japanese, Korean - was
    drawn into one console cell where the console gives it two. The
    glyph was squeezed to half its width, everything after it sat a
    column early, and the previous screen showed through where the line
    fell short. Checked afterwards in both conhost and Windows Terminal.
  • A tagline came out cut in the middle of a word and stayed cut in
    every message written after it. It was being cut as golded.cfg was
    read, into a buffer of 76 bytes - 76 characters of English, 37 of
    Russian. The buffers a tagline, a tearline and an origin pass
    through were all sized that way and now hold the characters they
    were meant to.

Second snapshot of the unicode branch, following up
golded-plus-1.1.5-20260825 with what its testers found and what a
review of the first snapshot's own code turned up.

Fixed since the previous snapshot:

  • The window layer measured text in bytes where it meant screen
    columns. A UTF-8 language file crashed GoldED+ on every start — the
    window-title buffer was sized in columns and filled in bytes — and
    menu items drew one character per byte. Titles, menus, the pick
    lists, the help text, the wrap margin and the origin line now all
    measure in columns, and the origin line is no longer cut through the
    middle of a character on its way into the message base.
  • Emoji. Width tables are generated from Unicode 17.0 instead of a
    2018 snapshot, text is measured by grapheme cluster — an emoji with
    a skin tone, a joined family or a flag counts as one character — and
    the cursor steps over such a character in one move. On Windows,
    characters outside the BMP were cut to sixteen bits and drew as an
    unrelated glyph or nothing; they are written whole now, the way the
    console at hand can draw them (conhost and Windows Terminal each
    accept a different form; GOLDED_CONSOLE=cells|stream overrides the
    guess if it comes out wrong).
  • The spell checker converted words through whatever charset
    conversion happened to be active instead of the one to its
    dictionary, so in a UTF-8 session an 8-bit dictionary never matched
    anything.
  • Three places that write a message out did not say which conversion
    to use and inherited whatever ran before — carbon copies, file
    export, the SOUP import.
  • The charset a message declares is recognised by one function
    everywhere, so the message list now decodes header fields for every
    declaration the reader accepts: CHRS, CHARSET, CODEPAGE, I51,
    X-Charset.
  • TAGLINECHAR takes a whole character rather than its first byte,
    and the GoldED+ mark in the status line is chosen by the charset of
    the session rather than at compile time.
  • Reading a message from an 8-bit echo no longer runs a full iconv
    conversion per character.

The full list is in docs/notework.txt; what is known and deliberately
left for later is in docs/todowork.txt.

Archives

Each contains the binaries, file_id.diz and the licence and
documentation. Binary names follow the usual convention — gedwin
/gnwin/rddtwin for MSVC, gedcyg/gncyg/rddtcyg for mingw, with
64 appended on the 64-bit builds.

win32-cygwin and win64-cygwin are native Win32/Win64 binaries built
with the mingw-w64 cross compiler that Cygwin ships; they need no
cygwin1.dll. The linux-amd64 deb is built on Ubuntu 26.04 this
time, like the arm64 one.

This is a testing snapshot, not a stable release.