Hi,
On Sun, 27 Jan 2008, Kirill wrote:
> This is an implementation of TODO "Need to not hard-code the dll path"
Nice!
> Registration is implemented in somewhat hackish way:
> - not all required keys are created, only minimal set to register DLL
> at non-hard-coded location; install.reg is still required;
Should not all of install.reg be converted in one go, rather than only a
few?
For that matter, can you pass command line options when registering the
.dll?
> - not all created keys are removed, namely CLSID\{ca586...};
> for full clean up, uninstall.reg is still required.
Same here...
> diff --git a/dll.c b/dll.c
> index bab9d9a..bce60c8 100644
> --- a/dll.c
> +++ b/dll.c
> @@ -1,4 +1,6 @@
> #include <shlobj.h>
> +#include <assert.h>
Rather than assert, I'd prefer the use of debug_git_mbox() and a hard
exit.
> +#include <stdio.h>
Do you use it?
> +// as per "How to: Convert Between System::Guid and _GUID"
> +static void get_registration_path (char *string)
Two general style comments... Since this is pure C, why not do the same as
git.git and stick with /* ... */ comments? Likewise, the space between
function name and paren is not like git's source code.
(Yeah, I am a bit biased here, but it makes things easier for people
hacking both on git and cheetah.)
> + char path_to_value[MAX_PATH]; // more than necessary for registry
> key
There's a line wrap here. You are sending via GMail's web interface,
right?
As for the registry keys to be set/unset, I imagine that a key/value array
would be needed; however, this is not as trivial as it sounds, since we
have different settings depending on the mode we wish to install: for all
users, for one user, or debugging settings.
That's basically the reason why I left this for a later stage...
Ciao,
Dscho