Refresh build 14258 — the designers keep your Unicode, the fixes from four beta threads, and the wide path family
A shorter drop, built from the beta forum. The Window and Report Designers accept every
U'' spelling and no longer rewrite it into a raw glyph; the Window Previewer
can keep the generated program; DROP lists and COMBOs take a wide FROM at
runtime; INSTRING() searches backwards from past the end; FILEDIALOG()
opens on a Unicode folder; and the porting notes for SIZE() are in the help.
Threads 47, 54, 57 and 60, closed. Already testing? Everything below is new since build 14234.
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.
Designers: every U” spelling works, and your Unicode stays Unicode
The Window and Report Designer parse U'<26DDh>', U'<1F600h>' and {n} repeats exactly like the compiler — build 14234 refused a window with a hex literal. And a designer opened from an ANSI .clw now writes wide text back as a U'' literal (decimal units) instead of a raw glyph that forced the save-as-UTF-8 prompt; UTF-8 sources keep the glyph as before.
DROP lists and COMBOs: a runtime wide FROM
?List{PROP:From} = U'…' on a LIST,DROP() or a COMBO keeps its characters — in 14234 that one property took the narrow path, so a declared FROM(U'…') worked and the runtime write showed ?. Reminder for continued FROM strings: put U on every piece.
INSTRING backwards from past the end, and two porting notes
INSTRING(sub, s, -1, SIZE(s)) now finds the last match on a CSTRING or USTRING (those push only their used length, so a start past the end returned 0). Porting notes in the help: SIZE() of a USTRING is bytes, so a Windows API’s character count is SIZE(v)/SIZE(v[1]) — right for every string type — never SIZE(v).
Window Previewer: Save Preview Program
A second checkable item in the Window menu, under Unicode Preview: latched on, the generated preview program, its project and exe move into .WinPreview\ in the project folder with the injection include beside them, so File ▸ Open builds and runs it as-is; a preview that fails to compile still keeps its source. Both latches are menu items only — the toolbar keeps just the Preview button.
FILEDIALOG positioned; the “Internal error 01” dialog is gone
FILEDIALOG() with FILE:Directory and a USTRING start folder opens with the selection on that folder even when its name is outside the Windows codepage. The “Output corrupted stack, wsldebug.cpp line 412” dialog was the release diagnostic logger misfiring; it now logs to C120LOG.TXT and carries on, so what you see next is the real fault.
PATH, SETPATH, LONGPATH and SHORTPATH are wide
A USTRING folder or file name is resolved in its exact characters and the result comes back wide, so a folder whose name lies outside the Windows codepage can be entered with SETPATH and read back with PATH() (the earlier drop best-fit it to ? and SETPATH failed with error 3). The no-argument forms return the current directory exactly; a STRING argument or receiver gets the same bytes as always. With EXISTS, COPY/RENAME/REMOVE, DIRECTORY and FILEDIALOG already wide, only RUN remains in the file-name family.
F1 help, current for this drop
The IDE help (ClarionHelp.chm) carries the INSTRING start rule with a SIZE(cstring) example, the USTRING porting note, the previewer’s second latch, and a USTRING note on each of the PATH, SETPATH, LONGPATH and SHORTPATH topics.
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.