source: osm/applications/nsis/INIStrNS.nsh@ 3486

Last change on this file since 3486 was 2601, checked in by ulf, 18 years ago

very first (alpha) version of an osm Win32 installer

File size: 1.4 KB
Line 
1;
2; Write to INI style file with no section headings
3;
4; http://nsis.sourceforge.net/Write_to_INI_style_file_with_no_section_headings
5;
6; some more at: http://nsis.sourceforge.net/Category:INI%2C_CSV_%26_Registry_Functions
7
8Function WriteINIStrNS
9 Exch $R0 ; new value
10 Exch
11 Exch $R1 ; key
12 Exch 2
13 Exch $R2 ; ini file
14 Exch 2
15 Push $R3
16 Push $R4
17 Push $R5
18 Push $R6
19 Push $R7
20 Push $R8
21 Push $R9
22
23 StrCpy $R9 0
24
25 FileOpen $R3 $R2 r
26 GetTempFileName $R4
27 FileOpen $R5 $R4 w
28
29 LoopRead:
30 ClearErrors
31 FileRead $R3 $R6
32 IfErrors End
33
34 StrCpy $R7 -1
35 LoopGetVal:
36 IntOp $R7 $R7 + 1
37 StrCpy $R8 $R6 1 $R7
38 StrCmp $R8 "" LoopRead
39 StrCmp $R8 = 0 LoopGetVal
40
41 StrCpy $R8 $R6 $R7
42 StrCmp $R8 $R1 0 +4
43
44 FileWrite $R5 "$R1=$R0$\r$\n"
45 StrCpy $R9 1
46 Goto LoopRead
47
48 FileWrite $R5 $R6
49 Goto LoopRead
50
51 End:
52 StrCmp $R9 1 +2
53 FileWrite $R5 "$R1=$R0$\r$\n"
54
55 FileClose $R5
56 FileClose $R3
57
58 SetDetailsPrint none
59 Delete $R2
60 Rename $R4 $R2
61 SetDetailsPrint both
62
63 Pop $R9
64 Pop $R8
65
66 Pop $R7
67 Pop $R6
68 Pop $R5
69 Pop $R4
70 Pop $R3
71 Pop $R2
72 Pop $R1
73 Pop $R0
74FunctionEnd
75
76!define WriteINIStrNS "!insertmacro WriteINIStrNS"
77!macro WriteINIStrNS Var File Key Value
78 Push "${File}"
79 Push "${Key}"
80 Push "${Value}"
81 Call WriteINIStrNS
82 Pop "${Var}"
83!macroend
84
85
Note: See TracBrowser for help on using the repository browser.