Anonymous committed 936f424

Merged trunk into WIN64 branch.

Comments (0)

Files changed (11)

Contrib/Language files/Icelandic.nlf

 NLF v6
 # Start editing here
 # Language ID
 # Font and size - dash (-) means default

Contrib/Language files/Welsh.nlf

 NLF v6
 # Start editing here
 # Language ID
 # Font and size - dash (-) means default


               wsprintf(valname, _T("%u.file"), j);
-              l = (lstrlen(file)+1)*sizeof(TCHAR);
+              l = STR_SIZE*sizeof(TCHAR);
               if (FAILED(RegQueryValueEx(key, valname, NULL, &t, (LPBYTE) file, &l)) || t != REG_SZ)


                 // Get proc address
                 proc->Proc = NSISGetProcAddress(proc->Dll, proc->ProcName);
-                if (UsedTString)
+                if (UsedTString || !proc->Proc)
                     FARPROC tproc;
                     TCHAR*ProcName = proc->ProcName; // This buffer has room for us to party on
                     STRSET2CH(ProcName+cch, _T('A'), _T('\0'));
                     tproc = NSISGetProcAddress(proc->Dll, ProcName);
-                    if (tproc) proc->Proc = tproc;
+                    if (tproc)
+                        proc->Proc = tproc;
+                    else
+                        proc->ProcResult = PR_ERROR;
-                if (!proc->Proc) proc->ProcResult = PR_ERROR;
         case PT_STRUCT:


 platforms. Another option is to build zlib from scratch and install it.
 For Windows it is recommended to download \W{}{zlib} from
 Extract the contents of this zip archive to a folder of your choice, e.g.
-\c{C:\\dev\\zlib-1.2.4} and set an environment variable named \c{ZLIB_W32} 
+\c{C:\\dev\\zlib-1.2.5} and set an environment variable named \c{ZLIB_W32} 
 containing this path. 
-\c C:\>set ZLIB_W32=C:\dev\zlib-1.2.4
+\c C:\>set ZLIB_W32=C:\dev\zlib-1.2.5
 Alternatively the command line option ZLIB_W32 specifying the path
 could be passed with scons instead of the environment variable.
-\c C:\dev\nsis>scons ZLIB_W32=C:\dev\zlib-1.2.4
+\c C:\dev\nsis>scons ZLIB_W32=C:\dev\zlib-1.2.5
 The header and library files are assumed to be in %ZLIB_W32%. In addition
 scons checks for zlib header files in %ZLIB_W32%\\include, the


 \\<b\\>Example (Locate with banner - \W{}{NxS plugin} required):\\</b\\>
 \c Section
-\c 	nxs::Show /NOUNLOAD `$(^Name) Setup` /top `Setup searching something$\r$\nPlease wait... If you can..` /h 1 /can 1 /end
+\c 	nxs::Show /NOUNLOAD `$(^Name) Setup` /top \
+\c 		`Setup searching something$\r$\nPlease wait... If you can..` \
+\c 		/h 1 /can 1 /end
 \c 	${Locate} "C:\WINDOWS" "/L=F /M=*.inf /B=1" "Example8"
 \c 	nxs::Destroy
 \c SectionEnd
 \c SectionEnd
 \c Function Example6
-\c 	MessageBox MB_OKCANCEL '$$9    "Line File1" =[$9]$\n$$8    "Line #"      =[$8]$\n$$7    "Line File2" =[$7]$\n$$6    "Line #"      =[$6]' IDOK +2
+\c 	MessageBox MB_OKCANCEL '\
+\c 		$$9    "Line File1" =[$9]$\n\
+\c 		$$8    "Line #"      =[$8]$\n\
+\c 		$$7    "Line File2" =[$7]$\n\
+\c 		$$6    "Line #"      =[$6]'\
+\c 		IDOK +2
 \c 	StrCpy $0 StopTextCompare
 \c 	Push $0
 	font-family: Courier New, Courier, mono;
 	background-color: #F7F7F7;
 	padding: 1px;
+	overflow-x: auto;
 pre b {
 	text-decoration: underline;


 System::Call 'OLE32::CoCreateInstance(g "${clsid}",i 0,i ${CLSCTX_INPROC_SERVER},g "${iid}",*p.${sysoutvarIFacePtr})i${sysret}'
+!macro ComHlpr_SafeRelease _p
+${If} ${_p} <> 0
+	${IUnknown::Release} ${_p} ""
+!macro ComHlpr_SafeReleaseAndNull _p
+${If} ${_p} <> 0
+	${IUnknown::Release} ${_p} ""
+	StrCpy ${_p} 0
 !ifndef IID_IUnknown
 !define IID_IUnknown {00000000-0000-0000-C000-000000000046}
 ${NSISCOMIFACEDECL}IShellLink SetWorkingDirectory 9 (t)i
 ${NSISCOMIFACEDECL}IShellLink GetArguments 10 (t,i)i
 ${NSISCOMIFACEDECL}IShellLink SetArguments 11 (t)i
-${NSISCOMIFACEDECL}IShellLink GetHotkey 12 (*&i2)i
+${NSISCOMIFACEDECL}IShellLink GetHotkey 12 (*i0)i
 ${NSISCOMIFACEDECL}IShellLink SetHotkey 13 (&i2)i
 ${NSISCOMIFACEDECL}IShellLink GetShowCmd 14 (*i)i
 ${NSISCOMIFACEDECL}IShellLink SetShowCmd 15 (i)i
 !define /ifndef EXP_SPECIAL_FOLDER_SIG  0xA0000005
 !define /ifndef EXP_DARWIN_ID_SIG       0xA0000006
 !define /ifndef EXP_SZ_ICON_SIG         0xA0000007
+!define /ifndef EXP_PROPERTYSTORAGE_SIG 0xA0000009
-!define /ifndef SLDF_DEFAULT                               0
 !define /ifndef SLDF_HAS_ID_LIST                           0x00000001
 !define /ifndef SLDF_HAS_LINK_INFO                         0x00000002
 !define /ifndef SLDF_HAS_NAME                              0x00000004
 !define /ifndef SLDF_UNALIAS_ON_SAVE                       0x01000000
 !define /ifndef SLDF_PREFER_ENVIRONMENT_PATH               0x02000000
 !define /ifndef SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET      0x04000000
+!define /ifndef SLDF_PERSIST_VOLUME_ID_RELATIVE            0x08000000 ;[Eight+]
 !ifndef IID_IShellItem
 !define IID_IShellItem {43826d1e-e718-42ee-bc55-a1e261c37bfe}


 ;NOTE: This list is incomplete
 !define VT_EMPTY     0
-!define VT_NULL	     1
+!define VT_NULL      1
 !define VT_I4        3
 !define VT_BSTR      8
 !define VT_BOOL      11
-!define PKEY_AppUserModel_ID '"{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}",5'
-!define PKEY_AppUserModel_PreventPinning '"{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}",9'
+!define PKEY_AppUserModel_ID                          '"{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}",5'
+!define PKEY_AppUserModel_ExcludeFromShowInNewInstall '"{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}",8'
+!define PKEY_AppUserModel_PreventPinning              '"{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}",9'
 !verbose pop


 !verbose push
 !verbose 3
+!define _NSIS_DEFAW '!insertmacro _NSIS_DEFAW '
+!macro _NSIS_DEFAW d
+!define ${d} "${${d}W}"
+!define ${d} "${${d}A}"
 !define HWND_BROADCAST      0xFFFF
 #ShowWindow Commands#
 !define CCM_SETWINDOWTHEME   /math ${CCM_FIRST} + 0xB ; WinXP
 !define CCM_DPISCALE         /math ${CCM_FIRST} + 0xC
+!define CCS_TOP 1
+!define CCS_BOTTOM 3
+!define CCS_NODIVIDER 64
+!define CCS_LEFT 129
+!define CCS_RIGHT 131
+!define I_IMAGENONE -2
 #Button Control Messages#
 !define BM_CLICK           0x00F5
 !define BM_GETCHECK        0x00F0
 !define BM_SETIMAGE        0x00F7
 !define BM_SETSTATE        0x00F3
 !define BM_SETSTYLE        0x00F4
+!define BCM_SETSHIELD      0x160C ; WinVista + ComCtl32 v6
 !define BST_UNCHECKED      0
 !define BST_CHECKED        1
 !define HDM_FIRST           0x1200
 #List view control#
-!define LVM_FIRST           0x1000
+!define LVS_SINGLESEL           4
+!define LVS_SHOWSELALWAYS       8
+!define LVS_SORTASCENDING    0x10
+!define LVS_SORTDESCENDING   0x20
+!define LVS_EDITLABELS      0x200
+!define LVS_NOSCROLL       0x2000
+!define LVS_NOCOLUMNHEADER 0x4000
+!define LVS_NOSORTHEADER   0x8000
+!define LVS_ICON      0
+!define LVS_REPORT    1
+!define LVS_SMALLICON 2
+!define LVS_LIST      3
+!define LVS_EX_CHECKBOXES         4
+!define LVS_EX_FULLROWSELECT   0x20
+!define LVS_EX_INFOTIP        0x400
+!define LVS_EX_LABELTIP      0x4000
+!define LVS_EX_DOUBLEBUFFER 0x10000
+!define LVIF_TEXT  1
+!define LVIF_IMAGE 2
+!define LVIF_PARAM 4
+!define LVIF_STATE 8
+!define LVCF_FMT     1
+!define LVCF_WIDTH   2
+!define LVCF_TEXT    4
+!define LVCF_SUBITEM 8
+!define SYSSTRUCT_LVITEM_V1 (i,i,i,i,i,t,i,i,p)
+!define SYSSTRUCT_LVITEM_V2 (i,i,i,i,i,t,i,i,p,i)           ; IE3
+!define SYSSTRUCT_LVITEM_V3 (i,i,i,i,i,t,i,i,p,i,i,i,i)     ; WinXP + ComCtl32 v6
+!define SYSSTRUCT_LVITEM_V4 (i,i,i,i,i,t,i,i,p,i,i,i,i,i,i) ; WinVista + ComCtl32 v6
+!define LVSCW_AUTOSIZE -1
+!define LVM_FIRST                          0x00001000
+!define /math LVM_GETIMAGELIST             ${LVM_FIRST} +  2
+!define /math LVM_SETIMAGELIST             ${LVM_FIRST} +  3
+!define /math LVM_GETITEMCOUNT             ${LVM_FIRST} +  4
+!define /math LVM_GETITEMA                 ${LVM_FIRST} +  5
+!define /math LVM_SETITEMA                 ${LVM_FIRST} +  6
+!define /math LVM_INSERTITEMA              ${LVM_FIRST} +  7
+!define /math LVM_DELETEITEM               ${LVM_FIRST} +  8
+!define /math LVM_DELETEALLITEMS           ${LVM_FIRST} +  9
+!define /math LVM_INSERTCOLUMNA            ${LVM_FIRST} + 27
+!define /math LVM_SETCOLUMNWIDTH           ${LVM_FIRST} + 30
+!define /math LVM_SETITEMSTATE             ${LVM_FIRST} + 43
+!define /math LVM_GETITEMSTATE             ${LVM_FIRST} + 44
+!define /math LVM_SETITEMTEXTA             ${LVM_FIRST} + 46
+!define /math LVM_SETITEMCOUNT             ${LVM_FIRST} + 47
+!define /math LVM_SORTITEMS                ${LVM_FIRST} + 48
+!define /math LVM_GETITEMW                 ${LVM_FIRST} + 75
+!define /math LVM_SETITEMW                 ${LVM_FIRST} + 76
+!define /math LVM_INSERTITEMW              ${LVM_FIRST} + 77
+!define /math LVM_INSERTCOLUMNW            ${LVM_FIRST} + 97
+!define /math LVM_SETITEMTEXTW             ${LVM_FIRST} + 116
+!define /math LVM_SETSELECTEDCOLUMN        ${LVM_FIRST} + 140
 #Status bar window#
 !define SB_CONST_ALPHA      0x00000001
 !define STM_SETIMAGE                0x0172
 #Tab control#
-!define TCM_FIRST                   0x1300
+!define TCS_SCROLLOPPOSITE 0x0001
+!define TCIF_TEXT  1
+!define TCIF_PARAM 8
+!define SYSSTRUCT_TCITEM (i,i,i,t,i,i,p)
+!define TCM_FIRST             0x1300
+!define /math TCM_INSERTITEMA ${TCM_FIRST} + 7
+!define /math TCM_GETCURSEL   ${TCM_FIRST} + 11
+!define /math TCM_ADJUSTRECT  ${TCM_FIRST} + 40
+!define /math TCM_INSERTITEMW ${TCM_FIRST} + 62
+!define TCN_SELCHANGE   -551
+!define TCN_SELCHANGING -552
 #Progress bar control#
 !define PBM_SETRANGE 0x0401
 !define PBM_DELTAPOS 0x0403
 !define PBM_SETSTEP  0x0404
 !define PBM_STEPIT   0x0405
-!define PBM_SETRANGE32  0x406 ; IE3 / ComCtl32 v4.70
+!define PBM_SETRANGE32  0x406 ; IE3 + ComCtl32 v4.70
 !define PBM_GETRANGE    0x407
 !define PBM_GETPOS      0x408
-!define PBM_SETBARCOLOR 0x409 ; IE4 / ComCtl32 v4.71
+!define PBM_SETBARCOLOR 0x409 ; IE4 + ComCtl32 v4.71
-!define PBM_SETMARQUEE  0x40A ; WinXP / ComCtl32 v6
+!define PBM_SETMARQUEE  0x40A ; WinXP + ComCtl32 v6
 !define PBM_GETSTEP     0x40D ; WinVista
 !define PBM_GETBKCOLOR  0x40E
 !define PBM_GETBARCOLOR 0x40F


 !define WINVER_VISTA     0x06000000 ;6.00.6000
 !define WINVER_2008_NT   0x86000001 ;6.00.6001
 !define WINVER_2008      0x06000001 ;6.00.6001
-!define WINVER_7_NT      0x86010000 ;6.01.????
-!define WINVER_7         0x06010000 ;6.01.????
-!define WINVER_2008R2_NT 0x86010001 ;6.01.????
-!define WINVER_2008R2    0x06010001 ;6.01.????
+!define WINVER_7_NT      0x86010000 ;6.01.7600
+!define WINVER_7         0x06010000 ;6.01.7600
+!define WINVER_2008R2_NT 0x86010001 ;6.01.7600
+!define WINVER_2008R2    0x06010001 ;6.01.7600
+!define WINVER_8_NT      0x86020000 ;6.02.9200
+!define WINVER_8         0x06020000 ;6.02.9200
+!define WINVER_2012_NT   0x86020001 ;6.02.9200
+!define WINVER_2012      0x06020001 ;6.02.9200
 # use this to make all nt > 9x
   !insertmacro __WinVer_DefineOSTest ${Test} 2008   '${Suffix}'
   !insertmacro __WinVer_DefineOSTest ${Test} 7      '${Suffix}'
   !insertmacro __WinVer_DefineOSTest ${Test} 2008R2 '${Suffix}'
+  !insertmacro __WinVer_DefineOSTest ${Test} 8      '${Suffix}'
+  !insertmacro __WinVer_DefineOSTest ${Test} 2012   '${Suffix}'
 !insertmacro __WinVer_DefineOSTests AtLeast ""