This file is indexed.

/usr/share/doc/nsis/Examples/System/System.nsi is in nsis-doc 2.46-7.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
; This is just an example of System Plugin
; 
; (c) brainsucker, 2002
; (r) BSForce

Name "System Plugin Example"
OutFile "System.exe"

!include "SysFunc.nsh"

Section "ThisNameIsIgnoredSoWhyBother?"
     SetOutPath $TEMP

     ; ----- Sample 1 ----- Message box with custom icon -----

     ; there are no default beeps for custom message boxes, use sysMessageBeep
     ; in case you need it (see next message box example)
     !insertmacro smMessageBox "i 0" "Message box with custom icon!" "System Example 1a" ${MB_OK} "i 103"
     ; i 0 - installer exe as module
     ; i 103 - icon ID

     ; The same example but using icon from resource.dll.
     ; You could use this dll for storing your resources, just replace FAR icon
     ; with something you really need.   
     File "Resource.dll"
     System::Call '${sysMessageBeep} (${MB_ICONHAND})'  ; custom beep
     !insertmacro smMessageBox "`$TEMP\resource.dll`" "Message box with custom icon from resource.dll!" "System Example 1b" ${MB_OKCANCEL} "i 103"
     Delete $TEMP\resource.dll

     ; ----- Sample 2 ----- Fixed disks size/space -----

     StrCpy $7 '               Disk,                Size,                Free,                Free for user:$\n$\n'

     ; Memory for paths   
     System::Alloc 1024
     Pop $1
     ; Get drives   
     System::Call '${sysGetLogicalDriveStrings}(1024, r1)'
enumok:
     ; One more drive?   
     System::Call '${syslstrlen}(i r1) .r2'
     IntCmp $2 0 enumex

     ; Is it DRIVE_FIXED?
     System::Call '${sysGetDriveType} (i r1) .r3'
     StrCmp $3 ${DRIVE_FIXED} 0 enumnext

     ; Drive space   
     System::Call '${sysGetDiskFreeSpaceEx}(i r1, .r3, .r4, .r5)'

     ; Pretty KBs will be saved on stack
     System::Int64Op $3 / 1048576
     System::Int64Op $5 / 1048576
     System::Int64Op $4 / 1048576

     ; Get pretty drive path string   
     System::Call '*$1(&t1024 .r6)'
     System::Call '${syswsprintf} (.r7, "%s%20s    %20s mb    %20s mb    %20s mb$\n", tr7, tr6, ts, ts, ts)'

enumnext:
     ; Next drive path       
     IntOp $1 $1 + $2
     IntOp $1 $1 + 1
     goto enumok   
enumex: ; End of drives or user cancel
     ; Free memory for paths   
     System::Free $1   

     ; Message box      
     System::Call '${sysMessageBox}($HWNDPARENT, s, "System Example 2", ${MB_OKCANCEL})' "$7"

     ; ----- Sample 3 ----- Direct proc defenition -----

     ; Direct specification demo
     System::Call 'user32::MessageBoxA(i $HWNDPARENT, t "Just direct MessageBoxA specification demo ;)", t "System Example 3", i ${MB_OK}) i.s'
     Pop $0

     ; ----- Sample 4 ----- Int64, mixed definition demo -----

     ; Long int demo
     StrCpy $2 "12312312"
     StrCpy $3 "12345678903"
     System::Int64Op $2 "*" $3
     Pop $4

     ; Cdecl demo (uses 3 defenitions (simple example))
     System::Call "${syswsprintf}(.R1, s,,, t, ir0) .R0 (,,tr2,tr3,$4_)" "Int64 ops and strange defenition demo, %s x %s == %s, and previous msgbox result = %d"
     MessageBox MB_OKCANCEL "Cool: '$R1'"

     ; ----- Sample 5 ----- Small structure example -----

     ; Create & Fill structure
     System::Call "*(i 123123123, &t10 'Hello', &i1 0x123dd, &i2 0xffeeddccaa) i.s"
     Pop $1
     ; Read data from structure   
     System::Call "*$1(i .r2, &t10 .r3, &i1 .r4, &i2 .r5, &l0 .r6)"
     ; Show data and delete structure
     MessageBox MB_OK "Structure example: $\nint == $2 $\nstring == $3 $\nbyte == $4 $\nshort == $5 $\nsize == $6"
     System::Free $1

     ; ----- Sample 6 ----- systemGetFileSysTime demo -----
     Call       GetInstallerExeName
     pop        $0

     !insertmacro smGetFileSysTime $0
     System::Call '*$R0${stSYSTEMTIME}(.r1, .r2, .r3, .r4, .r5, .r6, .r7, .r8)'
 
     MessageBox MB_OK "GetFileSysTime example: file '$0', year $1, month $2, dow $3, day $4, hour $5, min $6, sec $7, ms $8"     

     ; free memory from SYSTEMTIME
     System::Free $R0   

     ; ----- Sample 7 ----- systemSplash -> Callbacks demonstration -----

     ; Logo
     File /oname=spltmp.bmp "${NSISDIR}\Contrib\Graphics\Header\orange-nsis.bmp"
;     File /oname=spltmp.wav "d:\Windows\Media\tada.wav"

     ; I. systemSplash variant
     !insertmacro smSystemSplash 2000 "$TEMP\spltmp"

     ; II. Splash Plugin variant
;    splash::show 2000 $TEMP\spltmp
;    Pop $R0 ; $R0 has '1' if the user closed the splash screen early,

     ; remove logo
     Delete $TEMP\spltmp.bmp
;     Delete $TEMP\spltmp.wav

     ; Display splash result
     pop $0
     MessageBox MB_OK "Splash (callbacks) demo result $R0"

SectionEnd 

; eof