Version 1.0 release!
Archive was updated, see first post for link.
What's new?
1.
Unicode support! Yes, Steffen only had to wait almost 2 years for his feature request to be implemented
Sorry about that. More about Unicode and versions below
2. This version is officially called 1.0, which can be seen if starting cmdwiz without arguments or with /?
3. Some operations were previously not working if stdin and/or stdout were in use (typically, if running inside a pipe, for example with cmdgfx_input as stdin and cmdgfx as stdout). This is now fixed.
4. New operation:
fullscreen (see 1.11 above). Used to set fullscreen on/off for the console window
5. New operation:
showwindow (see 1.12). Used to minimize/maximize/restore etc the console window
6. Topmost argument added for
setwindowpos (see 1.5). Used to make the console a topmost window (i.e. always on top of other windows)
7. ReportFailedOpen argument added for
cache operation (see 10.4). Used if you want an error message printed for each file in the cache list that could not be opened
8. File size cut down about 35kb due to using "strip" on the binary
About Unicode support:
Cmdwiz.exe is the new Unicode enabled version. I'm fairly confident it works for all operations, but just to be on the safe side there is also
cmdwiz-ascii.exe included in the archive, which is the legacy version without Unicode support.
So what does it mean Cmdwiz now supports Unicode?
1. For all operations that read or write a file, the file name can now include Unicode characters. These operations are:
saveblock, playsound, getexetype, cache, insertbmp, savefont, setfont, gxyinfo
2. For operations that writes user decided output to stdout, they will now print Unicode characters (provided of course that the font used has the character). These operations are:
print, gettitle
3. String operations
stringlen and
stringfind now accept Unicode as well
4. The file used by the
cache operation can now contain file names with Unicode characters. The cache file can be saved as either Utf-8, Utf-8 BOM, Utf-16 LE, or Ansi (OEM or Windows codepage). If this sounds like overkill for such an obscure operation as "cache", then you are correct, but I used it for educating myself. Beware though, Utf-16 BE is not supported!
What is *not* Unicode?
1. The saveblock operation support saving the file with Unicode characters in the filename. However, the block saved does NOT preserve any Unicode characters. The gxy file format does not even support coding characters above 0xff at the moment, so there is no point. Also note that it is not actually recommended to save a gxy file with Unicode characters in the filename, because cmdgfx will not even be able to read it (gotoxy will, partly).
2. I might be wrong about this, but a more general problem seems to be that for Unicode command line arguments to a C program in general, you can support either Utf-8 or Utf-16, but not both, because there is no way to know which one is coming in. Utf-16 is standard on Windows (and is what I use), but there are some situations where this is not true (I can provide an example, but I don't want to get too long-winded).