Refresh build 14234 — Unicode file names end to end, Unicode PDF, and a previewer for wide windows
Everything in this refresh traces back to a beta thread. The whole file-name family
went wide — EXISTS, COPY/RENAME/REMOVE,
FILE,NAME(ustring), DIRECTORY() with 64-bit sizes and
FILEDIALOG(); both PDF targets export real Unicode text; the Window
Previewer previews a window as a wide program; keystrokes, clipboard and tooltips
carry Unicode; the dictionary lives as text. Already testing? Everything below is new
since build 14204.
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.
Unicode file names, end to end
A file name or folder outside the Windows codepage — a Unicode user profile, a currency sign, CJK — now works through the whole family: EXISTS(), COPY()/RENAME()/REMOVE(), and FILE,NAME(ustring) on TopSpeedW and the DOS/ASCII/BASIC drivers (every driver takes a USTRING name whose text fits the codepage; the classic drivers report error 45 instead of a silent 90).
DIRECTORY() with Unicode names and 64-bit sizes; FILEDIALOG goes wide
A new queue type FILE:QueueW — Name USTRING, Size REAL (exact past 2 GB), Attrib32 — lists every name with its real characters; the old queues are untouched. FILEDIALOG() with a USTRING variable opens on a non-codepage path and returns it exactly, and a USTRING title shows as typed.
PDF export is Unicode — both targets
The stock Report to PDF target embeds a glyph-preserving subset of each font so a REPORT,UNICODE‘s text renders, searches and copies in any reader; Image2PDF does the same through libharu, color emoji included as pictures. Password-protected PDF export — is fixed.
Window Previewer: a latched “Unicode Preview” button
Next to the Preview button (and in the Window menu): latched on, the next preview is generated as a wide program — every substituted USE variable a USTRING — so the preview runs the real wide ENTRY/TEXT/LIST classes. Latched off, the generated program is byte-identical to today’s.
Unicode keystrokes reach USTRING controls exactly
The runtime pump is wide: Win+. emoji, IME composition and any injected Unicode keystroke land in a USTRING ENTRY/TEXT as typed; ANSI windows keep their ANSI keystrokes by construction. CLIPBOARD()/SETCLIPBOARD() carry Unicode, and tooltips are wide on every lane.
The dictionary as text
A .dctx twin beside the .dct is the source of truth: honest UTF-8 (a £ in a picture, a Ω in a prompt survive the round trip), Dictionary-menu export/import, and an audit of who changed what. Reload/Close Solution no longer revert an external .sln/.cwproj edit.
UVAL(), PROP:ClipEntry, compiler messages restored
UVAL(string [,pos]) is the inverse of UCHR() — the code point at a unit position, merging a surrogate pair. SYSTEM{PROP:ClipEntry} (opt-in) clips typed trailing spaces from @S entries into CSTRING/USTRING.
LIST and TEXT: the last residuals closed
Declared FORMAT() headers and column pictures keep their Unicode, the string FROM() lane is wide both ways, {PROP:Text} into a TEXT stores exact units, and TopScan previews a UNICODE blob as text. The LIST family is fully wide on declared and runtime lanes.
Oracle driver goes wide
NCHAR/NVARCHAR2 import as USTRING sized in units, NCLOB as a Unicode blob, DDL emits VARCHAR2(n CHAR)/NVARCHAR2(n-1) — and three long-shipped defects went with it. Set NLS_LANG to a Unicode-capable character set on Instant Client.
F1 help, current for this drop
The IDE help (ClarionHelp.chm) updated with the new RTL features: DIRECTORY/FILEDIALOG with FILE:QueueW, the previewer’s Unicode Preview, the PDF targets’ Unicode notes, UVAL, PROP:ClipEntry and the updated compiler messages.
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.