Codepages #14
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
Reference
jeff/zixl#14
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
Part of #1
What to build
Product/@CodepageandPackage/@SummaryCodepagechoose the Windows codepage the installer database's strings and the summary information are stored in, defaulting to 1252. Encoding goes throughzig-charset. A character the codepage cannot encode is an error naming the attribute; codepage 65001 is accepted with a warning that Windows Installer does not support it officially.Acceptance criteria
msiinforeports the non-ASCII product name correctly, and the tables match the reference implementation's with generated columns masked.Found while doing #2: the reference implementation (msitools 0.106
wixl) ignoresProduct/@Codepagefor the database. GivenCodepage="1252"it still stores 0 (neutral) as the database code page, somsidumpwrites0in_ForceCodepage.idt. zixl stores the code page the attribute names, as WiX documents. This ticket needs to decide whether to follow WiX here (and teach the table comparison that this difference is expected) or follow the reference implementation.Done in
749183f; CI run 11 is green.The decision this issue left open: zixl follows WiX and Q22. The database's code page comes from
Product/@Codepageand the summary's fromPackage/@SummaryCodepage, both defaulting to 1252.Encoding: strings are encoded with zig-charset:
Any other code page is refused.
Diagnostics: every stored piece of text is recorded with its location and checked once the code pages are known. A character that won't fit names the attribute and its file, line and column.
Seam 1: the 1252 and 1251 bytes as written, the summary information in its own code page, the unencodable diagnostic, neutral holding ASCII alone, the 65001 warning, and an unsupported code page.
End to end:
_ForceCodepage, always 0, to the code page the fixture asks for;codepagefixture isn't compared with wixl, since.wixl-skipexplains that wixl stores every string as UTF-8 in a neutral database;