RSU32 RELEASE NOTES

25-JAN-97 V1.02

RSU32 now properly aborts the synchronization if the network goes down in all
cases. A bug in earlier versions caused data loss in some instances when during 
a synchronization over a network the network went down and the DELETE parameter 
was specified. Be sure to upgrade!

22-JAN-97 V1.01

A bug within IniAddLine that allowed to add the same line even if it was 
already present has been fixed.

05-JAN-97 V1.0

Final Release of RSU32 1.0. After half a year of an integrated beta testing/
extended development phase, RSU32 has been thoroughly tested and is very stable
now. No known bugs remain (although there are probably still quite a few 
unknown left).

30-DEC-96 R0.985

Oops - There was a bug in R0.984 that I didn't see - a case of optimizer-beats-
effectivity. Fixed.

29-DEC-96 R0.984

RSU32 now will also recoginze two files as equal (provided file name and size
match) if the two file times differ by no more than +-23 hours and +- 30 
seconds. This will allow RSU32 to cope with a WAN that spans several 
time zones. Supersedes teh behaviour in R0.983.

25-DEC-96 R0.983

RSU32 is now lazier in the comparison of File Dates/Times. Due to some as yet
unexplained behaviour in Windows NT 4, some files which are supposed to be 
equal in date and time differ very slightly. RSU32 now considers one file
equal to another if the file sizes and names are the same and the file time 
differs by no more than 30 seconds (and the hour differs by no more than 1).

12-DEC-96 R0.982

A bug has been fixed in command line option handling. A command line option 
has been added: /NOABORT will disable the Abort button in the RSU32 main 
window. It will also disable the key combination ALT+F4 and any other close 
method.

04-DEC-96 R0.981

RSU's helper app, SPAWN.EXE, is now found even if RSU has not been started from
the directory where it resides.
Besides, a bug with SynchronizeDir's Report feature and another with the 
environment handling has been fixed.

28-NOV-96 R0.98

RSU32 now checks for different file times using the built-in API function
"CompareFileTime". Besides, some minor GUI changes and bug fixes.

27-OCT-96 R0.97

bug fix... this is getting boring ;-)

20-OCT-96 R0.96

Just another tiny bug fix...

10-OCT-96 R0.957

Just a minor bug fix.

06-OCT-96 R0.956

Several fixes in the INI* commands have been made and the display of the
intro screen has been speeded up.
Besides, it should give me more info on why NT 4 is so unruly in respect
to the self-made 3D-look of RSU32.

04-OCT-96 R0.955

Just another test version.. no bug fixes, no improvements.

03-OCT-96 R0.95

This version fixes minor bugs concerning If-Registry commands that caused
RSU32 to hang in some (very particular) cases.
It also hopes to improve visual quality (what a phrase!) in Windows NT 4,
under which OS it previously showed weird behaviour in its main window
(the left one).

02-OCT-96 R0.947

This version searches SPAWN.EXE in its initial startup directory. It also
fixes a bug that made tracking the thumbbar in the output window impossible.
Furthermore, it should speed up the display in the output window with many
lines due to added high-speed assembler code.

30-SEP-96 R0.946 (in the early morning/late night hours...)

This version tracks everything it does within its function SpawnExternal,
in which the weird behaviour under Windows NT takes place.

Nothing else has been changed or added - I'm still stuck with this one.

29-SEP-96 R0.945

This version has no major enhancements nor bug fixes. It is intended to give
me more detailed information on RSU32's misbehaviour under Windows NT
when spawning external applications.

24-SEP-96 R0.94

This version changes the method by which it communicates to child processes
(i.e. DOS programs, such as del or xcopy), thereby obsoleting the usage of
TMP-files and introducing the concept of anonymous pipes.

The helper application SPAWN.EXE must be in the same directory as RSU32.EXE.

22-SEP-96 R0.93

Only Bug Fixes.

08-SEP-96 R0.92

RSU32 is now a fully-featured multi-threaded application, which allows for
a smoother, more responsive behaviour of the GUI.
Several small bugs have been eliminated.

28-AUG-96 R0.91

RSU32 now supports more command line options. In order to see the output
window, you have to specify the /OUTPUT parameter. Otherwise, RSU32 will
not show the output window. You can also save the content of the output
window to a file, using the parameter "/LOG file.ext" (you do not need to
specify the /OUTPUT parameter for this to work).
Many small bugs, especially in If Registry- and RegXXX-commands in
conjunction with Windows NT have been eliminated.

09-JUN-96 R0.55

RSU32 now can be run without a command line. In such a case, it scans the 
WIN.INI file for the line "Default Command Options=..." in the section 
[RSU32].
A bug with the /TRACE option has been fixed.

06-JUN-96 R0.5

Besides fixing some minor bugs, especially in the new Registry manipulation
commands and changing the icon (BTW: If you have an idea for a cool icon,
please let me know), this version introduces three new commands:

1.) If RegKeyExist({where}) {key} then
2.) If RegValueExist {value} then
3.a)  If RegValue({value}) = {content} then
3.b)  If RegValue({value}) <> {content} then
3.c)  If RegValue({value}) < {content} then
3.d)  If RegValue({value}) > {content} then
3.e)  If RegValue({value}) <= {content} then
3.f)  If RegValue({value}) >= {content} then

The first command finds out whether the key {key} in the registry {where}
(currently only supports "local" and remote servers) exists. It does NOT open
the key. The key most previously opened remains open and untouched. The {key} 
parameter may be relative to the current open key.
The second command determines whether a value in the currently open key
exists.
The remaining commands take the content of the value {value} in the currently
open key and compare it to {content} using the specified operator.
The form of {content} depends on the type of the value being examined. It can
have the same formats as in the RegSetValue command.

26-MAY-96 R0.35

As testing and development of RSU32 proceeds, I am now implementing the
Registry manipulation commands in RSU32. 
In the final release, RSU32 should be able to process registries on the
local machine, on the network and text file-based registries (such as created
when you export a registry or a key in the REGEDIT program).
(drop the text files - I spare them for a later version. None in 1.0!)
As of now, the former two are implemented (local and remote registries). Of
these, the manipulation of the local registry has been tested in some detail.
The commands are as follows:

RegOpenKey {where} {key}
RegSetValue {value}:{type}:{content}
RegDeleteKey {where} {key}
RegDeleteValue {value}

The RegOpenKey command opens, or, if not already present, creates the key
specified by {key}.
The RegSetValue command sets (and in doing so possibly creates) a value of
the type {type} to the content {content}.
The RegDeleteKey command deletes the key {key} with all of its subkeys and
values.
The RegDeleteValue removes one value (i.e. the one specified by {value}) from 
the current key.

In order for RegSetValue and RegDeleteValue to work, the key must have been
opened by RegOpenKey first. In later stages of RSU32 beta testing, there
will be If RegKeyExist, If RegValueExist, and If RegValue = {something}
commands to enable the RSU program to determine whether specified keys/values
exist and what they contain.

The option {where} can be either "Local", or a server name on the current
network (e.g. \\LONDONSERVER7), or a file name or a UNC name of a text file
(which is not yet supported). "Local" denotes the local registry and a server
name denotes the registry of the specified server. A file or UNC name denotes
a text file that contains registry information and is to be manipulated.

Keys have the format \\KEY\SUBKEY\SUBKEY\....\SUBKEY, e.g. 
\\HKEY_LOCAL_MACHINE\System\CurrentControlSet. 

Long key names can be word-wrapped before any backslash (\), such as:

RegOpenKey Local \\HKEY_LOCAL_MACHINE\System
		  \CurrentControlSet
		  \Services

Please note that the name of the topmost key must be preceded by two 
backslashes (\\).

Keys can also be relative to the currently open key. For instance, the
combination of the two commands

RegOpenKey Local \\HKEY_LOCAL_MACHINE\System\CurrentControlSet
RegOpenKey Local Services\Arbitrators

opens (and possibly creates) the key 
\\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Arbitrators
in the local registry.

Please note that both commands refer to the same registry. If the second
command referred to a remote registry or a file, the key name would have been
considered complete (rather than relative) and the function would have failed
(as Services\Arbitrators is not a valid complete key name).

The {type} specifier in the RegSetValue command can be REG_SZ, REG_EXPAND_SZ, 
REG_MULTI_SZ, REG_DWORD, REG_DWORD_LITTLE_ENDIAN, REG_DWORD_BIG_ENDIAN or
REG_BINARY.
The format of {content} depends on the type specified. 
REG_DWORD, REG_DWORD_LITTLE_ENDIAN and REG_DWORD_BIG_ENDIAN require one
single unsigned DWORD (which can either be specified as a hex value, e.g.
0xFFFFFFFF, or as a decimal value, e.g. 4294967296). A DWORD stores 32 bits of
unsigned data. This means a DWORD contains any number between (and including)
0 to 4294967296.
REG_SZ and REG_EXPAND_SZ require one single character string enclosed in
quotes (").
REG_MULTI_SZ requires one or more character strings enclosed in quotes and
delimited by spaces ( ) and/or commas (,). 
REG_BINARY requires one or more bytes in hexadecimal or decimal form (e.g.
0xFF or 255) delimited by commas (,).

08-MAY-96 R0.2

As a result of first testing, I have found and removed several minor 
bugs, as well as included several new features in RSU32.
You can now specify /TRACE as an command line option. If you do so, RSU 
will stop after every line in the RSU program file until you press a 
key. This allows you to debug the program more thoroughly.
Furthermore, there is a command PAUSE - which stops until a key is 
pressed. I have also included the command SHELL, which allows you to 
execute DOS commands. Syntax is SHELL <dos command>.

24-APR-96 R0.1

Thanks for your interest in RSU32. Please let me point out that this 
version is still quite untested, and that any kind of errorneous 
behaviour may occur! It would therefore be unwise to use RSU32 on live 
machines.
RSU32 has the same functionality as RSU for DOS, with the following 
exceptions:

* The IF-BIOS command is not supported. It's function will later be 
accomodated by the Registry commands (which will allow to manipulate and 
query the Windows Registry). These, however, are not yet implemented.

* The possibility to apply the INI-commands to text files (through the 
use of the REM [Section] syntax) is no longer supported.

The SynchronizeDir function should be working exactly as in RSU for DOS, 
except that you can specify long path names and UNC's. However, the code 
for the function is also new, so that proper function cannot be 
guaranteed.

Please do report any bugs you may find and suggestions on the improval 
of RSU32! It will greatly help me make the program as reliable and 
user-friendly as possible in the shortest possible time.

