Our default used to be INSTALLLEVEL 3, but Microsoft default is 1. By
overriding Microsoft default in Property table, we override the
INSTALLLEVEL user might have specified on the command line.
Since our installations no longer use "Minimal/Typical/Full", we may
squash "Minimal" and "Typical" into Minimal.
Signed-off-by: Simon Rozman <simon@rozman.si>
JSON is always UTF-8 and there is absolutely no need to escape all non-ASCII
characters in output strings.
Signed-off-by: Simon Rozman <simon@rozman.si>
MSVC C26800 warned us std::vector and std::string are not guaranteed to
be cleared after being moved from in all standard C++ implementations.
As we reuse those objects and rely they are cleared, do an explicit
clear. We could have one-time-use objects and add scopes, but that makes
code ugly.
Reference: https://stackoverflow.com/a/17735913/2071884
Signed-off-by: Simon Rozman <simon@rozman.si>
GenRSAKeypair is platform independent. When in the MakefilePlat.mak, it
is invoked once per each platform. It was not harmful. Just excessive.
Signed-off-by: Simon Rozman <simon@rozman.si>
This allows us to use `git clean` without risking to loose keypair,
as it was .gitignored and not included in the Git repository.
Signed-off-by: Simon Rozman <simon@rozman.si>
Host where the webservice is listening is not the same as host where
clients connect to. Unless localhost, but that limits use of Swagger UI
for internal use only.
And, not to forget: reverse proxy that will typically run in front of
ZRCola web service and will publish it with who knows what public URL.
Signed-off-by: Simon Rozman <simon@rozman.si>
wchar_t is not char16_t on MSVC, requiring a lot of typecasting when
interfacing ZRCola database strings with GUI.
Signed-off-by: Simon Rozman <simon@rozman.si>
ZRCola is using UTF-16LE strings internally (thanks to Windows).
However, wchar_t and std::wstring are UTF-32 on other platforms.
Signed-off-by: Simon Rozman <simon@rozman.si>
gcc precompiles templates. When << and >> operators of our datatypes are
not overloaded at the time <stdex/idrec.h> is #included yet, gcc will
seek/look for currently available << and >> operators when reaching
std::ostream and std::istream templates.
Signed-off-by: Simon Rozman <simon@rozman.si>
Transifex has issues with .pot files containing translations the Poedit
adds them from TM when updating from source. It remains to be decided,
which one is more brain-dead.
Signed-off-by: Simon Rozman <simon@rozman.si>
This allows ZRCola to Unicode translation to use precomposed Unicode
characters and provide better coverage for ZRCola to Unicode
translation.
Signed-off-by: Simon Rozman <simon@rozman.si>
ZRCola composed text depends on the ZRCola font a lot. With the recent
introduction of ZRCola >> Unicode transposition, a non-ZRCola font for
composed text does make sense, but the GUI should change back to ZRCola
font when ZRCola >> Unicode transposition is not in use. This could make
a cumbersome experience for end users, so removed for the time being.
Reverts: 3bda60b3407cc8a1a1e68349b21aa54da0bd4ac8
Signed-off-by: Simon Rozman <simon@rozman.si>
The ZRCola >> Unicode transliteration translates ZRCola combining
characters into Unicode combining characters now, rather than
translating exact ZRCola characters only.
Signed-off-by: Simon Rozman <simon@rozman.si>
Thou linker can locate the output .lib file of referenced projects
wherever .lib is just fine, this helps us to gather all .pdb files in
the output folder.
Signed-off-by: Simon Rozman <simon@rozman.si>
NMake inline files are always created using ACP. The "1252" in the .idtx
header has no effect on this. However, we must encode the .idt files
using correct charset/codepage regardless the ACP being used on the
building machine.
Signed-off-by: Simon Rozman <simon@rozman.si>
Windows.h must be included first and must be included with care
regarding WinSock.h and WinSock2.h affair.
Signed-off-by: Simon Rozman <simon@rozman.si>
Restoring auto-saved state triggers source/destination sync which breaks
in the early stage when wxZRColaComposerPanel is still in its
constructor. The sync uses the application's m_mainWnd to get its
settings, but the application doesn't have the m_mainWnd set yet.
Signed-off-by: Simon Rozman <simon@rozman.si>
Private-Use-Area characters are not correctly rendered unless ZRCola
font is used. The PUA characters are now displayed in blue.
This commit also required to upgrade (de)composition text box to use
RichEdit control.
Signed-off-by: Simon Rozman <simon@rozman.si>
The initial support compares characters in ZRCola font Private-Use-Area
to the characters obtained using Unicode combining characters. Those
which match sufficiently are arranged into a new transliteration.
As the ZRCola Composed to Unicode transliteration requires to be applied
_after_ ZRCola composition but UI applies additional transliterations
_before_ ZRCola composition, the ZRCola composition was reintroduced as
one of the transliterations. This allows configuring a custom
transliteration sequence.
Signed-off-by: Simon Rozman <simon@rozman.si>
Resource Compiler has an issue with the first line of an UTF-8 .h file.
The workaround is not to begin UTF-8 .h files with anything important.
A blank line would do or a comment.
Signed-off-by: Simon Rozman <simon@rozman.si>
MSVC needs them to use correct charset when Language for non-Unicode
programs is set to Windows-1252 or anything different than UTF-8.
Signed-off-by: Simon Rozman <simon@rozman.si>
C files containing non-ASCII characters in strings require UTF-8 BOM for
the MSVC to encode them correctly to the UTF-16 string. (Or switch the
computer we are building on to use UTF-8 for non-Unicode programs.)
Signed-off-by: Simon Rozman <simon@rozman.si>
Version 2.4 switched to the catalog-0001.xml file. The new catalog file
is using SHA-256 hashes and signatures.
Signed-off-by: Simon Rozman <simon@rozman.si>
Versions 2.2 and 2.3 require to update to 2.4 first (to fix Active Setup
issue which works for minor updates only), before updating to 2.5
(requires major update).
The 2.5 and beyond updates will have to be visible to 2.4 version only.
Therefore, we switch the Updater in 2.4 to a new catalog file. While the
2.4 update itself needs to be published to the existing catalog file to
instruct pre-2.4 versions to update to 2.4.
In other words:
- include\UpdaterCfg.h is about checking for future releases
- Makefile publish is about upgrading the past releases
This is also an excellent opportunity to phase out SHA-1.
Updater will treat all hashes as SHA-256 when checking for updates in
the new catalog - the future releases.
While we keep hashing and signing the old catalog file using SHA-1 - for
past releases.
Signed-off-by: Simon Rozman <simon@rozman.si>
This reverts commit 2363016a76a1fdc1bac30e4b4771a4a97f058a81.
Due to Active Setup StubPath bug in already deployed MSI packages we can
fix automatically using minor update only, we cannot change the
component GUIDs just yet.
Signed-off-by: Simon Rozman <simon@rozman.si>
This reverts commit f8f20f3667d0c5d2844f2a926146ab1714d2d1ed.
Due to Active Setup StubPath bug in already deployed MSI packages we can
fix automatically using minor update only, we cannot change the
component GUIDs just yet.
Signed-off-by: Simon Rozman <simon@rozman.si>
As the language and platform-dependent component GUIDs changed and we
wish to retain the original destination folders and filenames the
RemoveExistingProducts custom action is now invoked differently
according to the version of the product we are upgrading.
When we are upgrading an old package with legacy component GUIDs, we're
uninstalling it before installing the new one.
When we will be upgrading a modern package with platform/language
dependent component GUIDs, we will remove the leftover components after
installing the new one.
This should deliver compatible upgrades of existing versions while
providing optimal upgrading in the future.
Signed-off-by: Simon Rozman <simon@rozman.si>
This allows direct focusing in (de)compose text control even when the
character selection dialog is open.
Signed-off-by: Simon Rozman <simon@rozman.si>
Example: This allows a to be translated into ά, as a is first
translated to α and finally ZRCola composed into ά. Otherwise we'd need
to include all accented character translations in transliteration
tables.
Signed-off-by: Simon Rozman <simon@rozman.si>
Please use the Windows "official" translations for terms published at [Microsoft Language Portal](https://www.microsoft.com/en-us/language). This will provide a consistent terminology experience on Windows.
Should you need any assistance to get started, please do not hesitate to contact project maintainer at [simon.rozman@amebis.si](mailto:simon.rozman@amebis.si).
ZRCola compilation references wxWidgets libraries using `WXWIN` environment variable. Please set it to wxWidgets folder (e.g. `C:\SDK\wxWidgets`).
### Digital Signing of Build Outputs
### Digital Signing of Build Outputs
In order to have the build process digitally sign output files, one should provide the following:
In order to have the build process digitally sign output files, one should provide the following:
1. A signing certificate installed in the current user’s certificate store.
1. A signing certificate installed in the current user's certificate store.
2. The following variables in the environment:
2. The following variables in the environment:
- `ManifestCertificateThumbprint` - set the value to certificate’s SHA1 thumbprint (hexadecimal, without spaces, i.e. `bc0d8da45f9eeefcbe4e334e1fc262804df88d7e`).
- `ManifestCertificateThumbprint` - set the value to certificate's SHA1 thumbprint (hexadecimal, without spaces, e.g. `f61b973226c502a732d24f41aa85e192b009e7c0`).
- `ManifestTimestampUrl` - set the value to URL used to perform timestamp signature (i.e. `http://timestamp.verisign.com/scripts/timstamp.dll`). In order to perform timestamp signing successfully, the computer running the build should be online and able to access this URL.
- `ManifestTimestampRFC3161Url` - set the value to URL used to perform RFC3161 timestamp signature (e.g. `http://time.certum.pl`). In order to perform timestamp signing successfully, the computer running the build should be online and able to access this URL.
Please note that only Release builds are configured for timestamp signing. Debug configurations do not attempt to timestamp sign the resulting DLL and EXE files in order to speed up the building process and enable offline building.
Please note that only Release builds are configured for timestamp signing. Debug configurations do not attempt to timestamp sign the resulting DLL and EXE files in order to speed up the building process and enable offline building.
### Building
### Building
Use Microsoft NMAKE to build the project. The resulting files can be found in output subfolder.
Use Microsoft NMAKE to build the project. The resulting files can be found in output subfolder. Open _x64 Native Tools Command Prompt for VS 2017_ for building.
- `nmake Clean` Delete all intermediate and output files.
- `nmake Clean` Delete all intermediate and output files.
- `nmake Setup` Build a release version of project and release MSI setup files.
- `nmake Setup` Build a release version of project and release MSI setup files.
@ -36,7 +54,14 @@ Use Microsoft NMAKE to build the project. The resulting files can be found in ou
- `nmake Register` Build a debug version of project, install fonts (reboot required), and Start Menu shortcuts. For development purposes only!
- `nmake Register` Build a debug version of project, install fonts (reboot required), and Start Menu shortcuts. For development purposes only!
- `nmake Unregister` Remove Start Menu shortcuts, and fonts. For development purposes only!
- `nmake Unregister` Remove Start Menu shortcuts, and fonts. For development purposes only!
The `/ls` flag can be appended to the commands above to reduce NMAKE’s verbosity. You can combine multiple targets (i.e. nmake Unregister Clean). Please, see NMAKE reference for further reading.
The `/ls` flag can be appended to the commands above to reduce NMAKE's verbosity. You can combine multiple targets (e.g. nmake Unregister Clean). Please, see NMAKE reference for further reading.
## Building and installing ZRCola webservice
ZRCola is also available as a Linux web-service. See [ZRColaWS/README.md](ZRColaWS/README.md) for instructions.
## Translating ZRCola
Instructions how to translate ZRCola to your language can be found [here](LOCALIZATION.md).
## Contact Information
## Contact Information
Please contact the following addressee for further information and help:
Please contact the following addressee for further information and help:
Some files were not shown because too many files have changed in this diff
Show More
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.