MzCOM: fix versioning and collection path

Merge bug fix to v6.0 (pending review)
(cherry picked from commit a9f64f4615)
This commit is contained in:
Matthew Flatt 2013-12-16 21:00:51 -07:00 committed by Ryan Culpepper
parent c37c9f7fe7
commit 9b9d35b290
6 changed files with 56 additions and 27 deletions

View File

@ -156,7 +156,7 @@ void setupSchemeEnv(Scheme_Env *in_env)
scheme_add_global("mzcom-exe",scheme_make_utf8_string(exeBuff),env);
scheme_set_exec_cmd(exeBuff);
scheme_set_collects_path(scheme_make_path("collects"));
scheme_set_collects_path(scheme_make_path("../collects"));
scheme_init_collection_paths(env, scheme_make_null());
// initialize namespace

View File

@ -2,3 +2,4 @@
/mzcom_i.c
/mzcom_p.c
/dlldata.c
/mzobj.rgs

View File

@ -30,6 +30,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\..\..\racket mzobj_rgs.rkt"
/>
<Tool
Name="VCCustomBuildTool"
@ -113,6 +114,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\..\..\racket mzobj_rgs.rkt"
/>
<Tool
Name="VCCustomBuildTool"
@ -198,6 +200,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\..\..\racket mzobj_rgs.rkt"
/>
<Tool
Name="VCCustomBuildTool"
@ -285,6 +288,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\..\..\racket mzobj_rgs.rkt"
/>
<Tool
Name="VCCustomBuildTool"
@ -374,6 +378,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\..\..\racket mzobj_rgs.rkt"
/>
<Tool
Name="VCCustomBuildTool"
@ -462,6 +467,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\..\..\racket mzobj_rgs.rkt"
/>
<Tool
Name="VCCustomBuildTool"

View File

@ -107,10 +107,10 @@ CAPTION "MzCOM"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
DEFPUSHBUTTON "OK",IDOK,76,69,50,14,BS_CENTER
CTEXT "MzCOM v. 5.3",IDC_STATIC,71,8,61,8
CTEXT "MzCOM v"MZSCHEME_VERSION,IDC_STATIC,71,8,61,8
CTEXT "Copyright (c) 2000-2013 PLT (Paul Steckler)",IDC_STATIC,
41,20,146,9
CTEXT "Racket v. 5.3",IDC_STATIC,64,35,75,8
CTEXT "Racket v"MZSCHEME_VERSION,IDC_STATIC,64,35,75,8
CTEXT "Copyright (c) 1995-2013 PLT Inc.",IDC_STATIC,
30,47,143,8
ICON MZICON,IDC_STATIC,11,16,20,20

View File

@ -1,24 +0,0 @@
HKCR
{
MzCOM.MzObj.5.3.5.1 = s 'MzObj Class'
{
CLSID = s '{A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}'
}
MzCOM.MzObj = s 'MzObj Class'
{
CLSID = s '{A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}'
CurVer = s 'MzCOM.MzObj.5.3.5.1'
}
NoRemove CLSID
{
ForceRemove {A3B0AF9E-2AB0-11D4-B6D2-0060089002FE} = s 'MzObj Class'
{
ProgID = s 'MzCOM.MzObj.0.0.0.0'
VersionIndependentProgID = s 'MzCOM.MzObj'
ForceRemove 'Programmable'
LocalServer32 = s '%MODULE%'
val AppID = s '{A604CB9D-2AB5-11D4-B6D3-0060089002FE}'
'TypeLib' = s '{A604CB9C-2AB5-11D4-B6D3-0060089002FE}'
}
}
}

View File

@ -0,0 +1,46 @@
#lang racket/base
(define template #<<EOS
HKCR
{
MzCOM.MzObj.@|VERSION| = s 'MzObj Class'
{
CLSID = s '{A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}'
}
MzCOM.MzObj = s 'MzObj Class'
{
CLSID = s '{A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}'
CurVer = s 'MzCOM.MzObj.@|VERSION|'
}
NoRemove CLSID
{
ForceRemove {A3B0AF9E-2AB0-11D4-B6D2-0060089002FE} = s 'MzObj Class'
{
ProgID = s 'MzCOM.MzObj.@|VERSION|'
VersionIndependentProgID = s 'MzCOM.MzObj'
ForceRemove 'Programmable'
LocalServer32 = s '%MODULE%'
val AppID = s '{A604CB9D-2AB5-11D4-B6D3-0060089002FE}'
'TypeLib' = s '{A604CB9C-2AB5-11D4-B6D3-0060089002FE}'
}
}
}
EOS
)
(define content (regexp-replace* #rx"@[|]VERSION[|]" template (version)))
(define file "mzobj.rgs")
(unless (and (file-exists? file)
(equal? content
(call-with-input-file*
file
(lambda (i)
(read-string (add1 (string-length content)) i)))))
(call-with-output-file*
file
#:exists 'truncate
(lambda (o)
(display content o))))