Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/de982b4d3e9c7e6b6f100e383d647f0edc9321a3
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/de982b4d3e9c7e6b6f100e383d647f0edc9321a3
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/de982b4d3e9c7e6b6f100e383d647f0edc9321a3

The branch, master has been updated
       via  de982b4d3e9c7e6b6f100e383d647f0edc9321a3 (commit)
      from  786a5186aa38897170317d453bf49b55cf8e70a3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/netsurf.git/commitdiff/de982b4d3e9c7e6b6f100e383d647f0edc9321a3
commit de982b4d3e9c7e6b6f100e383d647f0edc9321a3
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>

    fix windows build format specifiers
    add install target for windows - creates installer rather than actually 
installing

diff --git a/.gitignore b/.gitignore
index 053a220..20a059f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,7 @@ nsmonkey
 nsdebug
 Makefile.config
 NetSurf.exe
+netsurf-installer.exe
 NetSurf.app
 NetSurf.dbg
 NetSurf.dmg
diff --git a/content/fetchers/data.c b/content/fetchers/data.c
index 383e3c0..3f8989e 100644
--- a/content/fetchers/data.c
+++ b/content/fetchers/data.c
@@ -280,7 +280,7 @@ static void fetch_data_poll(lwc_string *scheme)
 
                        if (c->aborted == false) {
                                snprintf(header, sizeof header, 
-                                       "Content-Length: %zd",
+                                       "Content-Length: %"SSIZET_FMT,
                                        c->datalen);
                                msg.type = FETCH_HEADER;
                                msg.data.header_or_data.buf = 
diff --git a/content/fetchers/file.c b/content/fetchers/file.c
index e3bb63e..4deb932 100644
--- a/content/fetchers/file.c
+++ b/content/fetchers/file.c
@@ -266,7 +266,7 @@ static void fetch_file_process_plain(struct 
fetch_file_context *ctx,
                return;
        }
 
-       fd = open(ctx->path, O_RDONLY);
+       fd = open(ctx->path, O_RDONLY | O_BINARY);
        if (fd < 0) {
                /* process errors as appropriate */
                fetch_file_process_error(ctx,
@@ -304,7 +304,7 @@ static void fetch_file_process_plain(struct 
fetch_file_context *ctx,
                goto fetch_file_process_aborted;
 
        /* content length */
-       if (fetch_file_send_header(ctx, "Content-Length: %zd", fdstat->st_size))
+       if (fetch_file_send_header(ctx, "Content-Length: %"SSIZET_FMT, 
fdstat->st_size))
                goto fetch_file_process_aborted;
 
        /* create etag */
diff --git a/image/image_cache.c b/image/image_cache.c
index 5e62fe0..50961b1 100644
--- a/image/image_cache.c
+++ b/image/image_cache.c
@@ -575,15 +575,15 @@ case chr :                                        \
                                slen++;
                                break;
 
-                       FMTCHR('a', "zd", params.limit);
-                       FMTCHR('b', "zd", params.hysteresis);
-                       FMTCHR('c', "zd", total_bitmap_size);
+                       FMTCHR('a', SSIZET_FMT, params.limit);
+                       FMTCHR('b', SSIZET_FMT, params.hysteresis);
+                       FMTCHR('c', SSIZET_FMT, total_bitmap_size);
                        FMTCHR('d', "d", bitmap_count);
                        FMTCHR('e', "d", current_age / 1000);
-                       FMTCHR('f', "zd", max_bitmap_size);
+                       FMTCHR('f', SSIZET_FMT, max_bitmap_size);
                        FMTCHR('g', "d", max_bitmap_size_count);
                        FMTCHR('h', "d", max_bitmap_count);
-                       FMTCHR('i', "zd", max_bitmap_count_size);
+                       FMTCHR('i', SSIZET_FMT, max_bitmap_count_size);
 
 
                        case 'j':
@@ -710,7 +710,7 @@ int image_cache_snentryf(char *string, size_t size, 
unsigned int entryn,
                                if (centry->bitmap != NULL) {
                                        slen += snprintf(string + slen,
                                                         size - slen,
-                                                        "%zd",
+                                                        "%"SSIZET_FMT,
                                                         centry->bitmap_size);
                                } else {
                                        slen += snprintf(string + slen,
diff --git a/utils/config.h b/utils/config.h
index cd64683..b8c2950 100644
--- a/utils/config.h
+++ b/utils/config.h
@@ -116,13 +116,23 @@ char *realpath(const char *path, char *resolved_path);
     #define WITH_MMAP
 #endif
 
+/* gtk */
 #if defined(gtk)
        #define WITH_THEME_INSTALL
 #endif
 
+/* amiga */
 #if defined(__amigaos4__) || defined(__AMIGA__) || \
                defined(nsatari)
        #define NO_IPV6
 #endif
 
+/* windows */
+#if (defined(_WIN32))
+#define SSIZET_FMT "Iu"
+#else
+#define SSIZET_FMT "zd"
+#define O_BINARY 0
+#endif
+
 #endif
diff --git a/windows/Makefile.target b/windows/Makefile.target
index e992266..f19d3ac 100644
--- a/windows/Makefile.target
+++ b/windows/Makefile.target
@@ -71,3 +71,15 @@ S_WINDOWS := $(addprefix windows/,$(S_WINDOWS))
 #   are not yet available
 SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_WINDOWS) $(S_RESOURCES)
 EXETARGET := NetSurf.exe
+
+# ----------------------------------------------------------------------------
+# Install target
+# ----------------------------------------------------------------------------
+
+install-windows: netsurf-installer.exe
+
+WIN_RES_OBJ := installer.nsi NetSurf.ico netsurf.png welcome.html default.css 
messages
+WIN_RES_INS_OBJ := $(addprefix windows/res/,$(WIN_RES_OBJ))
+
+netsurf-installer.exe: $(EXETARGET) $(WIN_RES_INS_OBJ)
+       makensis -V4 -NOCD windows/res/installer.nsi 
diff --git a/windows/NetSurfInstaller.nsi b/windows/NetSurfInstaller.nsi
deleted file mode 100644
index c52b5c4..0000000
--- a/windows/NetSurfInstaller.nsi
+++ /dev/null
@@ -1,94 +0,0 @@
-; install script for nullsoft msi installer creation
-; debian package name nsis
-; paths may need adapting according to local settings
-; for release, would really need to compile source tree too
-Page license
-Page directory
-Page instfiles
-; install directory $INSTDIR = $PROGRAMFILES\NetSurf
-; install resources $PROGRAMFILES\NetSurf\res
-; install dlls $SYSDIR=%SystemRoot%\System[32]
-SetCompressor lzma
-InstallDir "$PROGRAMFILES\NetSurf"
-LicenseData ../COPYING  ; \n -> \r\n
-Name NetSurf
-OutFile NetSurfInstall.exe
-Icon ../windows/res/NetSurf32.ico
-XPStyle on
-Section
-  SetShellVarContext all
-  SetOutPath $SYSDIR
-  File /usr/local/mingw/bin/libeay32.dll
-  File /usr/local/mingw/bin/libcurl-4.dll
-  File /usr/local/mingw/bin/libiconv-2.dll
-  File /usr/local/mingw/bin/ssleay32.dll
-  File /usr/local/mingw/bin/libgnurx-0.dll
-  File /usr/local/mingw/bin/libxml2-2.dll
-  File /usr/local/mingw/bin/libpng12.dll
-  File /usr/local/mingw/bin/libjpeg.dll
-  IfFileExists "$INSTDIR\*.*" +2
-    CreateDirectory "$INSTDIR"
-  SetOutPath $INSTDIR
-  File ../NetSurf.exe
-  IfFileExists "$INSTDIR\res\*.*" +2
-    CreateDirectory "$INSTDIR\res"
-  SetOutPath $INSTDIR\res
-  File ../windows/res/default.css
-  File ../windows/res/quirks.css
-  File ../windows/res/messages
-  File ../windows/res/preferences
-  File ../windows/res/*.bmp
-  File ../windows/res/*.ico
-  File ../windows/res/throbber.avi
-  IfFileExists $SMPROGRAMS\NetSurf\NetSurf.lnk +2
-    CreateDirectory "$SMPROGRAMS\NetSurf"
-  CreateShortCut "$SMPROGRAMS\NetSurf\NetSurf.lnk" "$INSTDIR\NetSurf.exe" "" 
"$INSTDIR\res\NetSurf32.ico"
-  IfFileExists "$INSTDIR\src\*.*" +2
-    CreateDirectory "$INSTDIR\src"
-  SetOutPath "$INSTDIR\src"
-  File ../Makefile
-  File ../Makefile.config
-  File ../Makefile.config.example
-  File ../Makefile.defaults
-  File ../Makefile.sources
-  File ../Makefile.resources
-  IfFileExists "$INSTDIR\src\content\*.*" +2
-    CreateDirectory "$INSTDIR\src\content"
-  SetOutPath "$INSTDIR\src\content"
-  File /r /x .svn ../content/*.c
-  File /r /x .svn ../content/*.h
-  IfFileExists "$INSTDIR\src\css\*.*" +2
-    CreateDirectory "$INSTDIR\src\css"
-  SetOutPath "$INSTDIR\src\css"
-  File /r /x .svn ../css/*.c
-  File /r /x .svn ../css/*.h
-  IfFileExists "$INSTDIR\src\desktop\*.*" +2
-    CreateDirectory "$INSTDIR\src\desktop"
-  SetOutPath "$INSTDIR\src\desktop"
-  File /r /x .svn ../desktop/*.c
-  File /r /x .svn ../desktop/*.h
-  IfFileExists "$INSTDIR\src\image\*.*" +2
-    CreateDirectory "$INSTDIR\src\image"
-  SetOutPath "$INSTDIR\src\image"
-  File /r /x .svn ../image/*.c
-  File /r /x .svn ../image/*.h
-  IfFileExists "$INSTDIR\src\render\*.*" +2
-    CreateDirectory "$INSTDIR\src\render"
-  SetOutPath "$INSTDIR\src\render"
-  File /r /x .svn ../render/*.c
-  File /r /x .svn ../render/*.h
-  IfFileExists "$INSTDIR\src\utils\*.*" +2
-    CreateDirectory "$INSTDIR\src\utils"
-  SetOutPath "$INSTDIR\src\utils"
-  File /r /x .svn ../utils/*.c
-  File /r /x .svn ../utils/*.h
-  IfFileExists "$INSTDIR\src\windows\*.*" +2
-    CreateDirectory "$INSTDIR\src\windows"
-  SetOutPath "$INSTDIR\src\windows"
-  File /r /x .svn ../windows/*.c
-  File /r /x .svn ../windows/*.h
-  IfFileExists "$INSTDIR\src\Docs\*.*" +2
-    CreateDirectory "$INSTDIR\src\Docs"
-  SetOutPath "$INSTDIR\src\Docs"
-  File /r /x .svn ../Docs/*.*
-SectionEnd
diff --git a/windows/main.c b/windows/main.c
index 6d2179a..6fbf401 100644
--- a/windows/main.c
+++ b/windows/main.c
@@ -119,7 +119,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hLastInstance, LPSTR 
lpcli, int ncmd)
                argctemp++;
        }
 
-       respaths = 
nsws_init_resource("${APPDATA}\\NetSurf:${HOME}\\.netsurf:${NETSURFRES}:${PROGRAMFILES}\\NetSurf\\res:"NETSURF_WINDOWS_RESPATH);
+       respaths = 
nsws_init_resource("${APPDATA}\\NetSurf:${HOME}\\.netsurf:${NETSURFRES}:${PROGRAMFILES}\\NetSurf\\NetSurf\\:"NETSURF_WINDOWS_RESPATH);
 
        messages = filepath_find(respaths, "messages");
 
diff --git a/windows/res/installer.nsi b/windows/res/installer.nsi
new file mode 100644
index 0000000..9f14687
--- /dev/null
+++ b/windows/res/installer.nsi
@@ -0,0 +1,133 @@
+# This installs NetSurf execuatables and resources, creates a start menu 
shortcut, builds an uninstaller, and
+# adds uninstall information to the registry for Add/Remove Programs
+ 
+# show up in a few places.
+# All the other settings can be tweaked by editing the !defines at the top of 
this script
+!define APPNAME "NetSurf"
+!define COMPANYNAME "NetSurf"
+!define DESCRIPTION "Web Browser"
+# These three must be integers
+!define VERSIONMAJOR 3
+!define VERSIONMINOR 0
+!define VERSIONBUILD 1
+# These will be displayed by the "Click here for support information" link in 
"Add/Remove Programs"
+# It is possible to use "mailto:"; links in here to open the email client
+!define HELPURL "http://www.netsurf-browser.org/"; # "Support Information" link
+!define UPDATEURL "http://www.netsurf-browser.org/"; # "Product Updates" link
+!define ABOUTURL "http://www.netsurf-browser.org/"; # "Publisher" link
+# This is the size (in kB) of all the files copied into "Program Files"
+!define INSTALLSIZE 9000
+ 
+RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned 
on)
+ 
+InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}"
+ 
+# rtf or txt file - remember if it is txt, it must be in the DOS text format 
(\r\n)
+LicenseData "COPYING"
+# This will be in the installer/uninstaller's title bar
+Name "${COMPANYNAME} - ${APPNAME}"
+Icon "windows\res\NetSurf.ico"
+outFile "netsurf-installer.exe"
+BrandingText "${COMPANYNAME}"
+ 
+!include LogicLib.nsh
+ 
+# Just three pages - license agreement, install location, and installation
+page license
+page directory
+Page instfiles
+ 
+!macro VerifyUserIsAdmin
+UserInfo::GetAccountType
+pop $0
+${If} $0 != "admin" ;Require admin rights on NT4+
+        messageBox mb_iconstop "Administrator rights required!"
+        setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
+        quit
+${EndIf}
+!macroend
+ 
+function .onInit
+       setShellVarContext all
+       !insertmacro VerifyUserIsAdmin
+functionEnd
+ 
+section "install"
+       # Files for the install directory - to build the installer, these 
should be in the same directory as the install script (this file)
+       setOutPath $INSTDIR
+       # Files added here should be removed by the uninstaller (see section 
"uninstall")
+       file "NetSurf.exe" 
+       file /oname=NetSurf.ico "windows\res\NetSurf.ico"
+       file /oname=libcares-2.dll 
"/opt/netsurf/i686-w64-mingw32/env/bin/libcares-2.dll"
+       file /oname=libgnurx-0.dll 
"/opt/netsurf/i686-w64-mingw32/env/bin/libgnurx-0.dll"
+       file /oname=default.css "windows\res\default.css"
+       file /oname=welcome.html "windows\res\welcome.html"
+       file /oname=netsurf.png "windows\res\netsurf.png"
+       file /oname=messages "windows\res\messages"
+       # Add any other files for the install directory (license files, app 
data, etc) here
+ 
+       # Uninstaller - See function un.onInit and section "uninstall" for 
configuration
+       writeUninstaller "$INSTDIR\uninstall.exe"
+ 
+       # Start Menu
+       createDirectory "$SMPROGRAMS\${COMPANYNAME}"
+       createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" 
"$INSTDIR\NetSurf.exe" "" "$INSTDIR\NetSurf.ico"
+ 
+       # Registry information for add/remove programs
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}"
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"UninstallString" "$\"$INSTDIR\uninstall.exe$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"InstallLocation" "$\"$INSTDIR$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"DisplayIcon" "$\"$INSTDIR\NetSurf.ico$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"Publisher" "$\"${COMPANYNAME}$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"HelpLink" "$\"${HELPURL}$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"URLUpdateInfo" "$\"${UPDATEURL}$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"URLInfoAbout" "$\"${ABOUTURL}$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\""
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"VersionMajor" ${VERSIONMAJOR}
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"VersionMinor" ${VERSIONMINOR}
+       # There is no option for modifying or repairing the install
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"NoModify" 1
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"NoRepair" 1
+       # Set the INSTALLSIZE constant (!defined at the top of this script) so 
Add/Remove Programs can accurately report the size
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"EstimatedSize" ${INSTALLSIZE}
+sectionEnd
+ 
+# Uninstaller
+ 
+function un.onInit
+       SetShellVarContext all
+ 
+       #Verify the uninstaller - last chance to back out
+       MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
+               Abort
+       next:
+       !insertmacro VerifyUserIsAdmin
+functionEnd
+ 
+section "uninstall"
+ 
+       # Remove Start Menu launcher
+       delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
+       # Try to remove the Start Menu folder - this will only happen if it is 
empty
+       rmDir "$SMPROGRAMS\${COMPANYNAME}"
+ 
+       # Remove files
+       delete $INSTDIR\NetSurf.exe
+       delete $INSTDIR\NetSurf.ico
+       delete $INSTDIR\libcares-2.dll
+       delete $INSTDIR\libgnurx-0.dll
+       delete $INSTDIR\default.css
+       delete $INSTDIR\welcome.html
+       delete $INSTDIR\netsurf.png
+       delete $INSTDIR\messages
+
+       # Always delete uninstaller as the last action
+       delete $INSTDIR\uninstall.exe
+ 
+       # Try to remove the install directory - this will only happen if it is 
empty
+       rmDir $INSTDIR
+ 
+       # Remove uninstaller information from the registry
+       DeleteRegKey HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
+sectionEnd
diff --git a/windows/res/internal.css b/windows/res/internal.css
new file mode 120000
index 0000000..e777d8a
--- /dev/null
+++ b/windows/res/internal.css
@@ -0,0 +1 @@
+../../!NetSurf/Resources/internal.css,f79
\ No newline at end of file
diff --git a/windows/res/netsurf.png b/windows/res/netsurf.png
new file mode 120000
index 0000000..0fbf427
--- /dev/null
+++ b/windows/res/netsurf.png
@@ -0,0 +1 @@
+../../!NetSurf/Resources/netsurf.png,b60
\ No newline at end of file
diff --git a/windows/res/welcome.html b/windows/res/welcome.html
new file mode 120000
index 0000000..5b39444
--- /dev/null
+++ b/windows/res/welcome.html
@@ -0,0 +1 @@
+../../!NetSurf/Resources/en/welcome.html,faf
\ No newline at end of file


-----------------------------------------------------------------------

Summary of changes:
 .gitignore                                |    1 +
 content/fetchers/data.c                   |    2 +-
 content/fetchers/file.c                   |    4 +-
 image/image_cache.c                       |   12 ++--
 utils/config.h                            |   10 ++
 windows/Makefile.target                   |   12 +++
 windows/NetSurfInstaller.nsi              |   94 --------------------
 windows/main.c                            |    2 +-
 windows/res/installer.nsi                 |  133 +++++++++++++++++++++++++++++
 {beos => windows}/res/internal.css        |    0
 {beos => windows}/res/netsurf.png         |    0
 {framebuffer => windows}/res/welcome.html |    0
 12 files changed, 166 insertions(+), 104 deletions(-)
 delete mode 100644 windows/NetSurfInstaller.nsi
 create mode 100644 windows/res/installer.nsi
 copy {beos => windows}/res/internal.css (100%)
 copy {beos => windows}/res/netsurf.png (100%)
 copy {framebuffer => windows}/res/welcome.html (100%)

diff --git a/.gitignore b/.gitignore
index 053a220..20a059f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,7 @@ nsmonkey
 nsdebug
 Makefile.config
 NetSurf.exe
+netsurf-installer.exe
 NetSurf.app
 NetSurf.dbg
 NetSurf.dmg
diff --git a/content/fetchers/data.c b/content/fetchers/data.c
index 383e3c0..3f8989e 100644
--- a/content/fetchers/data.c
+++ b/content/fetchers/data.c
@@ -280,7 +280,7 @@ static void fetch_data_poll(lwc_string *scheme)
 
                        if (c->aborted == false) {
                                snprintf(header, sizeof header, 
-                                       "Content-Length: %zd",
+                                       "Content-Length: %"SSIZET_FMT,
                                        c->datalen);
                                msg.type = FETCH_HEADER;
                                msg.data.header_or_data.buf = 
diff --git a/content/fetchers/file.c b/content/fetchers/file.c
index e3bb63e..4deb932 100644
--- a/content/fetchers/file.c
+++ b/content/fetchers/file.c
@@ -266,7 +266,7 @@ static void fetch_file_process_plain(struct 
fetch_file_context *ctx,
                return;
        }
 
-       fd = open(ctx->path, O_RDONLY);
+       fd = open(ctx->path, O_RDONLY | O_BINARY);
        if (fd < 0) {
                /* process errors as appropriate */
                fetch_file_process_error(ctx,
@@ -304,7 +304,7 @@ static void fetch_file_process_plain(struct 
fetch_file_context *ctx,
                goto fetch_file_process_aborted;
 
        /* content length */
-       if (fetch_file_send_header(ctx, "Content-Length: %zd", fdstat->st_size))
+       if (fetch_file_send_header(ctx, "Content-Length: %"SSIZET_FMT, 
fdstat->st_size))
                goto fetch_file_process_aborted;
 
        /* create etag */
diff --git a/image/image_cache.c b/image/image_cache.c
index 5e62fe0..50961b1 100644
--- a/image/image_cache.c
+++ b/image/image_cache.c
@@ -575,15 +575,15 @@ case chr :                                        \
                                slen++;
                                break;
 
-                       FMTCHR('a', "zd", params.limit);
-                       FMTCHR('b', "zd", params.hysteresis);
-                       FMTCHR('c', "zd", total_bitmap_size);
+                       FMTCHR('a', SSIZET_FMT, params.limit);
+                       FMTCHR('b', SSIZET_FMT, params.hysteresis);
+                       FMTCHR('c', SSIZET_FMT, total_bitmap_size);
                        FMTCHR('d', "d", bitmap_count);
                        FMTCHR('e', "d", current_age / 1000);
-                       FMTCHR('f', "zd", max_bitmap_size);
+                       FMTCHR('f', SSIZET_FMT, max_bitmap_size);
                        FMTCHR('g', "d", max_bitmap_size_count);
                        FMTCHR('h', "d", max_bitmap_count);
-                       FMTCHR('i', "zd", max_bitmap_count_size);
+                       FMTCHR('i', SSIZET_FMT, max_bitmap_count_size);
 
 
                        case 'j':
@@ -710,7 +710,7 @@ int image_cache_snentryf(char *string, size_t size, 
unsigned int entryn,
                                if (centry->bitmap != NULL) {
                                        slen += snprintf(string + slen,
                                                         size - slen,
-                                                        "%zd",
+                                                        "%"SSIZET_FMT,
                                                         centry->bitmap_size);
                                } else {
                                        slen += snprintf(string + slen,
diff --git a/utils/config.h b/utils/config.h
index cd64683..b8c2950 100644
--- a/utils/config.h
+++ b/utils/config.h
@@ -116,13 +116,23 @@ char *realpath(const char *path, char *resolved_path);
     #define WITH_MMAP
 #endif
 
+/* gtk */
 #if defined(gtk)
        #define WITH_THEME_INSTALL
 #endif
 
+/* amiga */
 #if defined(__amigaos4__) || defined(__AMIGA__) || \
                defined(nsatari)
        #define NO_IPV6
 #endif
 
+/* windows */
+#if (defined(_WIN32))
+#define SSIZET_FMT "Iu"
+#else
+#define SSIZET_FMT "zd"
+#define O_BINARY 0
+#endif
+
 #endif
diff --git a/windows/Makefile.target b/windows/Makefile.target
index e992266..f19d3ac 100644
--- a/windows/Makefile.target
+++ b/windows/Makefile.target
@@ -71,3 +71,15 @@ S_WINDOWS := $(addprefix windows/,$(S_WINDOWS))
 #   are not yet available
 SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_WINDOWS) $(S_RESOURCES)
 EXETARGET := NetSurf.exe
+
+# ----------------------------------------------------------------------------
+# Install target
+# ----------------------------------------------------------------------------
+
+install-windows: netsurf-installer.exe
+
+WIN_RES_OBJ := installer.nsi NetSurf.ico netsurf.png welcome.html default.css 
messages
+WIN_RES_INS_OBJ := $(addprefix windows/res/,$(WIN_RES_OBJ))
+
+netsurf-installer.exe: $(EXETARGET) $(WIN_RES_INS_OBJ)
+       makensis -V4 -NOCD windows/res/installer.nsi 
diff --git a/windows/NetSurfInstaller.nsi b/windows/NetSurfInstaller.nsi
deleted file mode 100644
index c52b5c4..0000000
--- a/windows/NetSurfInstaller.nsi
+++ /dev/null
@@ -1,94 +0,0 @@
-; install script for nullsoft msi installer creation
-; debian package name nsis
-; paths may need adapting according to local settings
-; for release, would really need to compile source tree too
-Page license
-Page directory
-Page instfiles
-; install directory $INSTDIR = $PROGRAMFILES\NetSurf
-; install resources $PROGRAMFILES\NetSurf\res
-; install dlls $SYSDIR=%SystemRoot%\System[32]
-SetCompressor lzma
-InstallDir "$PROGRAMFILES\NetSurf"
-LicenseData ../COPYING  ; \n -> \r\n
-Name NetSurf
-OutFile NetSurfInstall.exe
-Icon ../windows/res/NetSurf32.ico
-XPStyle on
-Section
-  SetShellVarContext all
-  SetOutPath $SYSDIR
-  File /usr/local/mingw/bin/libeay32.dll
-  File /usr/local/mingw/bin/libcurl-4.dll
-  File /usr/local/mingw/bin/libiconv-2.dll
-  File /usr/local/mingw/bin/ssleay32.dll
-  File /usr/local/mingw/bin/libgnurx-0.dll
-  File /usr/local/mingw/bin/libxml2-2.dll
-  File /usr/local/mingw/bin/libpng12.dll
-  File /usr/local/mingw/bin/libjpeg.dll
-  IfFileExists "$INSTDIR\*.*" +2
-    CreateDirectory "$INSTDIR"
-  SetOutPath $INSTDIR
-  File ../NetSurf.exe
-  IfFileExists "$INSTDIR\res\*.*" +2
-    CreateDirectory "$INSTDIR\res"
-  SetOutPath $INSTDIR\res
-  File ../windows/res/default.css
-  File ../windows/res/quirks.css
-  File ../windows/res/messages
-  File ../windows/res/preferences
-  File ../windows/res/*.bmp
-  File ../windows/res/*.ico
-  File ../windows/res/throbber.avi
-  IfFileExists $SMPROGRAMS\NetSurf\NetSurf.lnk +2
-    CreateDirectory "$SMPROGRAMS\NetSurf"
-  CreateShortCut "$SMPROGRAMS\NetSurf\NetSurf.lnk" "$INSTDIR\NetSurf.exe" "" 
"$INSTDIR\res\NetSurf32.ico"
-  IfFileExists "$INSTDIR\src\*.*" +2
-    CreateDirectory "$INSTDIR\src"
-  SetOutPath "$INSTDIR\src"
-  File ../Makefile
-  File ../Makefile.config
-  File ../Makefile.config.example
-  File ../Makefile.defaults
-  File ../Makefile.sources
-  File ../Makefile.resources
-  IfFileExists "$INSTDIR\src\content\*.*" +2
-    CreateDirectory "$INSTDIR\src\content"
-  SetOutPath "$INSTDIR\src\content"
-  File /r /x .svn ../content/*.c
-  File /r /x .svn ../content/*.h
-  IfFileExists "$INSTDIR\src\css\*.*" +2
-    CreateDirectory "$INSTDIR\src\css"
-  SetOutPath "$INSTDIR\src\css"
-  File /r /x .svn ../css/*.c
-  File /r /x .svn ../css/*.h
-  IfFileExists "$INSTDIR\src\desktop\*.*" +2
-    CreateDirectory "$INSTDIR\src\desktop"
-  SetOutPath "$INSTDIR\src\desktop"
-  File /r /x .svn ../desktop/*.c
-  File /r /x .svn ../desktop/*.h
-  IfFileExists "$INSTDIR\src\image\*.*" +2
-    CreateDirectory "$INSTDIR\src\image"
-  SetOutPath "$INSTDIR\src\image"
-  File /r /x .svn ../image/*.c
-  File /r /x .svn ../image/*.h
-  IfFileExists "$INSTDIR\src\render\*.*" +2
-    CreateDirectory "$INSTDIR\src\render"
-  SetOutPath "$INSTDIR\src\render"
-  File /r /x .svn ../render/*.c
-  File /r /x .svn ../render/*.h
-  IfFileExists "$INSTDIR\src\utils\*.*" +2
-    CreateDirectory "$INSTDIR\src\utils"
-  SetOutPath "$INSTDIR\src\utils"
-  File /r /x .svn ../utils/*.c
-  File /r /x .svn ../utils/*.h
-  IfFileExists "$INSTDIR\src\windows\*.*" +2
-    CreateDirectory "$INSTDIR\src\windows"
-  SetOutPath "$INSTDIR\src\windows"
-  File /r /x .svn ../windows/*.c
-  File /r /x .svn ../windows/*.h
-  IfFileExists "$INSTDIR\src\Docs\*.*" +2
-    CreateDirectory "$INSTDIR\src\Docs"
-  SetOutPath "$INSTDIR\src\Docs"
-  File /r /x .svn ../Docs/*.*
-SectionEnd
diff --git a/windows/main.c b/windows/main.c
index 6d2179a..6fbf401 100644
--- a/windows/main.c
+++ b/windows/main.c
@@ -119,7 +119,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hLastInstance, LPSTR 
lpcli, int ncmd)
                argctemp++;
        }
 
-       respaths = 
nsws_init_resource("${APPDATA}\\NetSurf:${HOME}\\.netsurf:${NETSURFRES}:${PROGRAMFILES}\\NetSurf\\res:"NETSURF_WINDOWS_RESPATH);
+       respaths = 
nsws_init_resource("${APPDATA}\\NetSurf:${HOME}\\.netsurf:${NETSURFRES}:${PROGRAMFILES}\\NetSurf\\NetSurf\\:"NETSURF_WINDOWS_RESPATH);
 
        messages = filepath_find(respaths, "messages");
 
diff --git a/windows/res/installer.nsi b/windows/res/installer.nsi
new file mode 100644
index 0000000..9f14687
--- /dev/null
+++ b/windows/res/installer.nsi
@@ -0,0 +1,133 @@
+# This installs NetSurf execuatables and resources, creates a start menu 
shortcut, builds an uninstaller, and
+# adds uninstall information to the registry for Add/Remove Programs
+ 
+# show up in a few places.
+# All the other settings can be tweaked by editing the !defines at the top of 
this script
+!define APPNAME "NetSurf"
+!define COMPANYNAME "NetSurf"
+!define DESCRIPTION "Web Browser"
+# These three must be integers
+!define VERSIONMAJOR 3
+!define VERSIONMINOR 0
+!define VERSIONBUILD 1
+# These will be displayed by the "Click here for support information" link in 
"Add/Remove Programs"
+# It is possible to use "mailto:"; links in here to open the email client
+!define HELPURL "http://www.netsurf-browser.org/"; # "Support Information" link
+!define UPDATEURL "http://www.netsurf-browser.org/"; # "Product Updates" link
+!define ABOUTURL "http://www.netsurf-browser.org/"; # "Publisher" link
+# This is the size (in kB) of all the files copied into "Program Files"
+!define INSTALLSIZE 9000
+ 
+RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned 
on)
+ 
+InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}"
+ 
+# rtf or txt file - remember if it is txt, it must be in the DOS text format 
(\r\n)
+LicenseData "COPYING"
+# This will be in the installer/uninstaller's title bar
+Name "${COMPANYNAME} - ${APPNAME}"
+Icon "windows\res\NetSurf.ico"
+outFile "netsurf-installer.exe"
+BrandingText "${COMPANYNAME}"
+ 
+!include LogicLib.nsh
+ 
+# Just three pages - license agreement, install location, and installation
+page license
+page directory
+Page instfiles
+ 
+!macro VerifyUserIsAdmin
+UserInfo::GetAccountType
+pop $0
+${If} $0 != "admin" ;Require admin rights on NT4+
+        messageBox mb_iconstop "Administrator rights required!"
+        setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
+        quit
+${EndIf}
+!macroend
+ 
+function .onInit
+       setShellVarContext all
+       !insertmacro VerifyUserIsAdmin
+functionEnd
+ 
+section "install"
+       # Files for the install directory - to build the installer, these 
should be in the same directory as the install script (this file)
+       setOutPath $INSTDIR
+       # Files added here should be removed by the uninstaller (see section 
"uninstall")
+       file "NetSurf.exe" 
+       file /oname=NetSurf.ico "windows\res\NetSurf.ico"
+       file /oname=libcares-2.dll 
"/opt/netsurf/i686-w64-mingw32/env/bin/libcares-2.dll"
+       file /oname=libgnurx-0.dll 
"/opt/netsurf/i686-w64-mingw32/env/bin/libgnurx-0.dll"
+       file /oname=default.css "windows\res\default.css"
+       file /oname=welcome.html "windows\res\welcome.html"
+       file /oname=netsurf.png "windows\res\netsurf.png"
+       file /oname=messages "windows\res\messages"
+       # Add any other files for the install directory (license files, app 
data, etc) here
+ 
+       # Uninstaller - See function un.onInit and section "uninstall" for 
configuration
+       writeUninstaller "$INSTDIR\uninstall.exe"
+ 
+       # Start Menu
+       createDirectory "$SMPROGRAMS\${COMPANYNAME}"
+       createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" 
"$INSTDIR\NetSurf.exe" "" "$INSTDIR\NetSurf.ico"
+ 
+       # Registry information for add/remove programs
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}"
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"UninstallString" "$\"$INSTDIR\uninstall.exe$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"InstallLocation" "$\"$INSTDIR$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"DisplayIcon" "$\"$INSTDIR\NetSurf.ico$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"Publisher" "$\"${COMPANYNAME}$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"HelpLink" "$\"${HELPURL}$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"URLUpdateInfo" "$\"${UPDATEURL}$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"URLInfoAbout" "$\"${ABOUTURL}$\""
+       WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\""
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"VersionMajor" ${VERSIONMAJOR}
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"VersionMinor" ${VERSIONMINOR}
+       # There is no option for modifying or repairing the install
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"NoModify" 1
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"NoRepair" 1
+       # Set the INSTALLSIZE constant (!defined at the top of this script) so 
Add/Remove Programs can accurately report the size
+       WriteRegDWORD HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
"EstimatedSize" ${INSTALLSIZE}
+sectionEnd
+ 
+# Uninstaller
+ 
+function un.onInit
+       SetShellVarContext all
+ 
+       #Verify the uninstaller - last chance to back out
+       MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
+               Abort
+       next:
+       !insertmacro VerifyUserIsAdmin
+functionEnd
+ 
+section "uninstall"
+ 
+       # Remove Start Menu launcher
+       delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
+       # Try to remove the Start Menu folder - this will only happen if it is 
empty
+       rmDir "$SMPROGRAMS\${COMPANYNAME}"
+ 
+       # Remove files
+       delete $INSTDIR\NetSurf.exe
+       delete $INSTDIR\NetSurf.ico
+       delete $INSTDIR\libcares-2.dll
+       delete $INSTDIR\libgnurx-0.dll
+       delete $INSTDIR\default.css
+       delete $INSTDIR\welcome.html
+       delete $INSTDIR\netsurf.png
+       delete $INSTDIR\messages
+
+       # Always delete uninstaller as the last action
+       delete $INSTDIR\uninstall.exe
+ 
+       # Try to remove the install directory - this will only happen if it is 
empty
+       rmDir $INSTDIR
+ 
+       # Remove uninstaller information from the registry
+       DeleteRegKey HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
+sectionEnd
diff --git a/beos/res/internal.css b/windows/res/internal.css
similarity index 100%
copy from beos/res/internal.css
copy to windows/res/internal.css
diff --git a/beos/res/netsurf.png b/windows/res/netsurf.png
similarity index 100%
copy from beos/res/netsurf.png
copy to windows/res/netsurf.png
diff --git a/framebuffer/res/welcome.html b/windows/res/welcome.html
similarity index 100%
copy from framebuffer/res/welcome.html
copy to windows/res/welcome.html


-- 
NetSurf Browser

_______________________________________________
netsurf-commits mailing list
[email protected]
http://vlists.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org

Reply via email to