mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-04 03:27:21 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1006 B
		
	
	
	
		
			NSIS
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1006 B
		
	
	
	
		
			NSIS
		
	
	
	
	
	
; Adapted from: https://nsis.sourceforge.io/Another_String_Replace_(and_Slash/BackSlash_Converter) (2019-08-31)
 | 
						|
 | 
						|
!macro _StrSlashConstructor out in
 | 
						|
  Push "${in}"
 | 
						|
  Push "\"
 | 
						|
  Call StrSlash
 | 
						|
  Pop ${out}
 | 
						|
!macroend
 | 
						|
 | 
						|
!define StrSlash '!insertmacro "_StrSlashConstructor"'
 | 
						|
 | 
						|
; Push $filenamestring (e.g. 'c:\this\and\that\filename.htm')
 | 
						|
; Push "\"
 | 
						|
; Call StrSlash
 | 
						|
; Pop $R0
 | 
						|
; ;Now $R0 contains 'c:/this/and/that/filename.htm'
 | 
						|
Function StrSlash
 | 
						|
  Exch $R3 ; $R3 = needle ("\" or "/")
 | 
						|
  Exch
 | 
						|
  Exch $R1 ; $R1 = String to replacement in (haystack)
 | 
						|
  Push $R2 ; Replaced haystack
 | 
						|
  Push $R4 ; $R4 = not $R3 ("/" or "\")
 | 
						|
  Push $R6
 | 
						|
  Push $R7 ; Scratch reg
 | 
						|
  StrCpy $R2 ""
 | 
						|
  StrLen $R6 $R1
 | 
						|
  StrCpy $R4 "\"
 | 
						|
  StrCmp $R3 "/" loop
 | 
						|
  StrCpy $R4 "/"
 | 
						|
loop:
 | 
						|
  StrCpy $R7 $R1 1
 | 
						|
  StrCpy $R1 $R1 $R6 1
 | 
						|
  StrCmp $R7 $R3 found
 | 
						|
  StrCpy $R2 "$R2$R7"
 | 
						|
  StrCmp $R1 "" done loop
 | 
						|
found:
 | 
						|
  StrCpy $R2 "$R2$R4"
 | 
						|
  StrCmp $R1 "" done loop
 | 
						|
done:
 | 
						|
  StrCpy $R3 $R2
 | 
						|
  Pop $R7
 | 
						|
  Pop $R6
 | 
						|
  Pop $R4
 | 
						|
  Pop $R2
 | 
						|
  Pop $R1
 | 
						|
  Exch $R3
 | 
						|
FunctionEnd
 |