diff options
Diffstat (limited to 'install-win32/ExtractAuxFile.nsi')
-rw-r--r-- | install-win32/ExtractAuxFile.nsi | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/install-win32/ExtractAuxFile.nsi b/install-win32/ExtractAuxFile.nsi deleted file mode 100644 index ffb7b34..0000000 --- a/install-win32/ExtractAuxFile.nsi +++ /dev/null @@ -1,117 +0,0 @@ -; ExtractAuxFile -; Copies a text file appended to the end of the installer EXE -; to a caller-specified output file. -; Inputs: -; output_filename (string) -- the output filename -; Outputs: -; status (int) -- 0 on success, > 0 on failure - -Function ExtractAuxFile - Exch $R1 ; output filename argument - ; locals - Push $R0 - Push $1 - Push $2 - Push $3 - Push $4 - Push $5 - - ClearErrors - - ; $R0 = installer filename - System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1' - - ; $1 = open (installer_exe) for read - FileOpen $1 $R0 r - IfErrors openin_err - - ; seek to EOF - 8 (start of 8-byte trailer) - ; $3 = seekpos - IntOp $2 0 - 8 - FileSeek $1 $2 END $3 - - ; $4 = -(content_length(auxfile) + 8) - ; seek position from end of file to beginning of content - FileReadByte $1 $4 - FileReadByte $1 $5 - IfErrors readlen_err - IntOp $5 $5 << 8 - IntOp $4 $4 + $5 - IntOp $4 $4 + 8 - IntOp $4 0 - $4 - - ; verify magic sequence 0xae, 0xb7, 0x03, 0x69, 0x42, 0x11 - FileReadByte $1 $5 - IntCmp $5 0xae 0 magic_err magic_err - FileReadByte $1 $5 - IntCmp $5 0xb7 0 magic_err magic_err - FileReadByte $1 $5 - IntCmp $5 0x03 0 magic_err magic_err - FileReadByte $1 $5 - IntCmp $5 0x69 0 magic_err magic_err - FileReadByte $1 $5 - IntCmp $5 0x42 0 magic_err magic_err - FileReadByte $1 $5 - IntCmp $5 0x11 0 magic_err magic_err - IfErrors magic_err - - ; seek to start of auxfile data - FileSeek $1 $4 END - - ; $2 = open (output_filename) for write - FileOpen $2 $R1 w - IfErrors openout_err - -loop: - ; check if we are finished - FileSeek $1 0 CUR $5 - IntCmp $5 $3 success 0 overshot_err - - ; copy next line from .exe to output file - FileRead $1 $5 - IfErrors read_err - FileWrite $2 $5 - IfErrors write_err - goto loop - -success: - IntOp $R1 0 + 0 - goto fin - -openin_err: - IntOp $R1 1 + 0 - goto fin - -openout_err: - IntOp $R1 2 + 0 - goto fin - -readlen_err: - IntOp $R1 3 + 0 - goto fin - -overshot_err: - IntOp $R1 4 + 0 - goto fin - -read_err: - IntOp $R1 5 + 0 - goto fin - -write_err: - IntOp $R1 6 + 0 - goto fin - -magic_err: - IntOp $R1 7 + 0 - goto fin - -fin: - Pop $5 - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $R0 - Exch $R1 -FunctionEnd |