Refresh build 14204 — a drop built from your reports
Nearly every item in this refresh traces back to a beta field report —
exactly what the beta is for. CHOOSE() and POPUP()
go wide, control pictures carry Unicode, TXA round-trips in UTF-8, INI files
and the registry go wide, a full sweep of the string built-ins closed out the
remaining port regressions — and there’s a Windows 11 fix every desktop
app should retest. Already testing? Everything below is new since build 14175.
Highlights of this drop — then the full tester guide, whose “What’s new” section and dated “beta refresh” markers flag exactly what changed since you last read it.
CHOOSE() takes USTRING values
A USTRING among CHOOSE’s values used to make the whole result numeric —
even a plain-string alternative came back as '0'. Now string
values give a string result that keeps every unit, and string-mixed-with-
numeric stays numeric, exactly the STRING rules. From Carl B.’s report.
POPUP() is wide
Menu text draws its real glyphs — currency signs, CJK, emoji — and the
item structure (|, {}, ~, …) is
decided on the wide text itself, so a full-width | in an
item no longer splits the menu. All-ANSI POPUPs take exactly the old
code path. Also from Carl B.’s reports.
Control pictures carry Unicode
A picture with symbols outside the codepage — say @n~₿~-15.2 —
set on a LIST column (PROPLIST:Picture) or a pictured display
STRING now formats with the real symbol and reads back intact. A wide LIST
heading also survives a later reformat. (The pictured-ENTRY editor
is a separate queued step.)
Runtime caption rewrites go wide
{PROP:Text} = <wide value> on the caption families —
PROMPT, STRING, BUTTON, CHECK, RADIO, TAB, GROUP/OPTION/SHEET — now keeps
exact units. This was on the known-limitations list; it’s off it now.
String built-ins, swept against gold
Every string built-in was measured two-era against Clarion 12 gold, and
the remaining beta regressions fixed: DEFORMAT(x) with the
picture omitted, ERROR() returning unclipped padding,
NUMERIC() rejecting trailing spaces, ALL('',n),
wide RIGHT()/CENTER() padding — and wide-to-wide
compares now clip trailing spaces like narrow always did.
TXA export/import in UTF-8
Export application text as Application text, UTF-8 — a filetype
choice in every export dialog, ClarionCL /u8 /ax on the
command line, or the AutoExport-on-save option. Import auto-detects UTF-8
(with or without BOM) and rejects loudly, naming the line, instead of
silently mangling. Defaults stay ANSI, byte-identical. From Petar’s request.
INI files and the registry go wide
GETINI/PUTINI accept and return USTRING exactly —
and a wide write to a missing .ini creates it UTF-16 LE with
BOM. The GETREG family matches the registry’s native UTF-16
end to end: RegEdit shows your real characters, and reads them back exactly.
Templates can gate the Unicode era
%CWVersion is now 12026 —
#IF(%CWVersion >= 12026) is the idiom for template and
third-party code that must also generate for older builds (equality tests
against 12000 break; use >=). And multi-DLL exports of
procedures taking USTRING arrays now link.
A Windows 11 fix worth retesting
Menus and mouse clicks going dead when another app’s always-on-top window (Windows 11 shell “island” windows are the usual trigger) overlapped a Clarion window — fixed, from a tester’s precise analysis (thanks, Alexey). If you’ve seen a Clarion app stop responding to the mouse on Win11, retest on this build.
F1 help, rebuilt and current
The IDE help (ClarionHelp.chm) is rebuilt: the Unicode-era language surface — USTRING and friends, the new and changed built-ins, the INI/registry notes — is now in the F1 help itself, not only in the tester documents.
Full tester guide — mental model, conversion rules, DCT import table, screen controls, reports, blobs, SQL / SQLite / text drivers / TopSpeedW / Memory / IP, recipes, and what to focus on when testing. The guide’s “What’s new” section lists everything in this drop; changes are also flagged inline with dated “beta refresh” notes.
Open the full Unicode Tester Guide
Report tool authors —
the wide generator surface has shipped (IReportGeneratorW — six
methods, opt-in, zero break for existing implementors). Format detection, the
EMF record set, transition paths per integration style:
Standalone pages (best full-width). Everything described there is implemented unless marked as a known limitation — different behavior is exactly what we want to hear about.