Skip to content

Commit c764b72

Browse files
committed
[scripts] Fix
1 parent 674ba67 commit c764b72

File tree

2 files changed

+192
-1
lines changed

2 files changed

+192
-1
lines changed

Release/FileAssociation.nsh

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
/*
2+
_____________________________________________________________________________
3+
4+
File Association
5+
_____________________________________________________________________________
6+
7+
Based on code taken from http://nsis.sourceforge.net/File_Association
8+
9+
Usage in script:
10+
1. !include "FileAssociation.nsh"
11+
2. [Section|Function]
12+
${FileAssociationFunction} "Param1" "Param2" "..." $var
13+
[SectionEnd|FunctionEnd]
14+
15+
FileAssociationFunction=[RegisterExtension|UnRegisterExtension]
16+
17+
_____________________________________________________________________________
18+
19+
${RegisterExtension} "[executable]" "[extension]" "[description]"
20+
21+
"[executable]" ; executable which opens the file format
22+
;
23+
"[extension]" ; extension, which represents the file format to open
24+
;
25+
"[description]" ; description for the extension. This will be display in Windows Explorer.
26+
;
27+
28+
29+
${UnRegisterExtension} "[extension]" "[description]"
30+
31+
"[extension]" ; extension, which represents the file format to open
32+
;
33+
"[description]" ; description for the extension. This will be display in Windows Explorer.
34+
;
35+
36+
_____________________________________________________________________________
37+
38+
Macros
39+
_____________________________________________________________________________
40+
41+
Change log window verbosity (default: 3=no script)
42+
43+
Example:
44+
!include "FileAssociation.nsh"
45+
!insertmacro RegisterExtension
46+
${FileAssociation_VERBOSE} 4 # all verbosity
47+
!insertmacro UnRegisterExtension
48+
${FileAssociation_VERBOSE} 3 # no script
49+
*/
50+
51+
52+
!ifndef FileAssociation_INCLUDED
53+
!define FileAssociation_INCLUDED
54+
55+
!include Util.nsh
56+
57+
!verbose push
58+
!verbose 3
59+
!ifndef _FileAssociation_VERBOSE
60+
!define _FileAssociation_VERBOSE 3
61+
!endif
62+
!verbose ${_FileAssociation_VERBOSE}
63+
!define FileAssociation_VERBOSE `!insertmacro FileAssociation_VERBOSE`
64+
!verbose pop
65+
66+
!macro FileAssociation_VERBOSE _VERBOSE
67+
!verbose push
68+
!verbose 3
69+
!undef _FileAssociation_VERBOSE
70+
!define _FileAssociation_VERBOSE ${_VERBOSE}
71+
!verbose pop
72+
!macroend
73+
74+
75+
76+
!macro RegisterExtensionCall _EXECUTABLE _EXTENSION _DESCRIPTION
77+
!verbose push
78+
!verbose ${_FileAssociation_VERBOSE}
79+
Push `${_DESCRIPTION}`
80+
Push `${_EXTENSION}`
81+
Push `${_EXECUTABLE}`
82+
${CallArtificialFunction} RegisterExtension_
83+
!verbose pop
84+
!macroend
85+
86+
!macro UnRegisterExtensionCall _EXTENSION _DESCRIPTION
87+
!verbose push
88+
!verbose ${_FileAssociation_VERBOSE}
89+
Push `${_EXTENSION}`
90+
Push `${_DESCRIPTION}`
91+
${CallArtificialFunction} UnRegisterExtension_
92+
!verbose pop
93+
!macroend
94+
95+
96+
97+
!define RegisterExtension `!insertmacro RegisterExtensionCall`
98+
!define un.RegisterExtension `!insertmacro RegisterExtensionCall`
99+
100+
!macro RegisterExtension
101+
!macroend
102+
103+
!macro un.RegisterExtension
104+
!macroend
105+
106+
!macro RegisterExtension_
107+
!verbose push
108+
!verbose ${_FileAssociation_VERBOSE}
109+
110+
Exch $R2 ;exe
111+
Exch
112+
Exch $R1 ;ext
113+
Exch
114+
Exch 2
115+
Exch $R0 ;desc
116+
Exch 2
117+
Push $0
118+
Push $1
119+
120+
ReadRegStr $1 HKCR $R1 "" ; read current file association
121+
StrCmp "$1" "" NoBackup ; is it empty
122+
StrCmp "$1" "$R0" NoBackup ; is it our own
123+
WriteRegStr HKCR $R1 "backup_val" "$1" ; backup current value
124+
NoBackup:
125+
WriteRegStr HKCR $R1 "" "$R0" ; set our file association
126+
127+
ReadRegStr $0 HKCR $R0 ""
128+
StrCmp $0 "" 0 Skip
129+
WriteRegStr HKCR "$R0" "" "$R0"
130+
WriteRegStr HKCR "$R0\shell" "" "open"
131+
WriteRegStr HKCR "$R0\DefaultIcon" "" "$R2,0"
132+
Skip:
133+
WriteRegStr HKCR "$R0\shell\open\command" "" '"$R2" "%1"'
134+
WriteRegStr HKCR "$R0\shell\edit" "" "Edit $R0"
135+
WriteRegStr HKCR "$R0\shell\edit\command" "" '"$R2" "%1"'
136+
137+
Pop $1
138+
Pop $0
139+
Pop $R2
140+
Pop $R1
141+
Pop $R0
142+
143+
!verbose pop
144+
!macroend
145+
146+
147+
148+
!define UnRegisterExtension `!insertmacro UnRegisterExtensionCall`
149+
!define un.UnRegisterExtension `!insertmacro UnRegisterExtensionCall`
150+
151+
!macro UnRegisterExtension
152+
!macroend
153+
154+
!macro un.UnRegisterExtension
155+
!macroend
156+
157+
!macro UnRegisterExtension_
158+
!verbose push
159+
!verbose ${_FileAssociation_VERBOSE}
160+
161+
Exch $R1 ;desc
162+
Exch
163+
Exch $R0 ;ext
164+
Exch
165+
Push $0
166+
Push $1
167+
168+
ReadRegStr $1 HKCR $R0 ""
169+
StrCmp $1 $R1 0 NoOwn ; only do this if we own it
170+
ReadRegStr $1 HKCR $R0 "backup_val"
171+
StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
172+
DeleteRegKey HKCR $R0
173+
Goto NoOwn
174+
175+
Restore:
176+
WriteRegStr HKCR $R0 "" $1
177+
DeleteRegValue HKCR $R0 "backup_val"
178+
DeleteRegKey HKCR $R1 ;Delete key with association name settings
179+
180+
NoOwn:
181+
182+
Pop $1
183+
Pop $0
184+
Pop $R1
185+
Pop $R0
186+
187+
!verbose pop
188+
!macroend
189+
190+
!endif # !FileAssociation_INCLUDED

scripts/GidQtWin.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,8 @@ bundle.win:
166166
-cd plugins; git archive master | tar -x -C ../$(RELEASE)/All\ Plugins
167167

168168
bundle.installer: bundle
169-
cp $(ROOT)\Release\*.ns* $(RELEASE).Final
169+
cp $(ROOT)/Release/*.nsi $(RELEASE).Final
170+
cp $(ROOT)/Release/*.nsh $(RELEASE).Final
170171
cd $(RELEASE).Final; $(NSIS) gideros_mui2.nsi
171172
mv $(RELEASE).Final/Gideros.exe $(ROOT)/
172173

0 commit comments

Comments
 (0)