Gitweb links:

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

The branch, chris/ndk32 has been updated
       via  153abba6053ec6bddc96938fce1c842a30ab2396 (commit)
       via  1467e8d610eb3e72d15264cac0f746129753bb17 (commit)
       via  bb3ac176bd361d9275228f770394918e0b119149 (commit)
       via  a8a015b224cf37a202e3b0e5f149d1e4585a0aca (commit)
       via  b8630492eae3b14ea3a9cd5c615767077e261f56 (commit)
       via  7bf6f8d0a22920e162e43234dc5b280024fc82e6 (commit)
       via  71a683438dfa8960204c693fe795b834a7ccf963 (commit)
       via  a04f2c154ba95bcd2857fb41127b3ea02b3c2d87 (commit)
       via  6ebb370a86c8f0bb1bc8fce10adb85fc1776f37f (commit)
       via  408080d5513460dc2b14d7753b50df3c87a9c6c3 (commit)
       via  0e8f33ecf1c6cd7bf517c9880be86b0326bf575a (commit)
       via  91ce4ddedf61f95a30a4ae07e2ebbcec4321db60 (commit)
       via  70a70e111222378f63f9df9aa441cc585f6e6662 (commit)
       via  b1c99fe8dd3b1a424a1e4275c9f0df3adc4e589b (commit)
       via  364a062578b50c69e64809f77e55ee898f43d2b9 (commit)
       via  7bed6dc4099621d7bd9e04f580b99c15fb30dfdd (commit)
       via  1492155bedc2dc4a72241118eedcc7b3e09f3e1b (commit)
       via  2ce21bfe45e1ec86ba72f570c1a39c8cff416123 (commit)
      from  7579fcf79ffce9cd6ab52d2873da15d92a05c44a (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/commit/?id=153abba6053ec6bddc96938fce1c842a30ab2396
commit 153abba6053ec6bddc96938fce1c842a30ab2396
Merge: 7579fcf79 1467e8d61
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>

    Merge branch 'master' into chris/ndk32

diff --cc frontends/amiga/Makefile
index 33d1170b3,d29b84b9c..11907b057
--- a/frontends/amiga/Makefile
+++ b/frontends/amiga/Makefile
@@@ -5,9 -5,9 +5,9 @@@
  CFLAGS += -std=c99 -Dnsamiga
  
  ifneq ($(SUBTARGET),os3)
-   CFLAGS += -O2 -mstrict-align -finline-functions -U__STRICT_ANSI__ 
-D__USE_INLINE__ -D__USE_BASETYPE__
+   CFLAGS += -O2 -flto -mstrict-align -finline-functions -U__STRICT_ANSI__ 
-D__USE_INLINE__ -D__USE_BASETYPE__
  else
 -  CFLAGS += -O2 -DPATH_MAX=1024 -D__m68k__ -fomit-frame-pointer -m68020-60 
-msoft-float
 +  CFLAGS += -O2 -DPATH_MAX=1024 -D__m68k__ -fomit-frame-pointer -m68020-60 
-msoft-float -DNO_INLINE_STDARG -DFANCY_GADTOOLS_MENU
  endif
  
  $(eval $(call feature_enabled,AMIGA_ICON,-DWITH_AMIGA_ICON,,Amiga icon))
diff --cc frontends/amiga/gui_options.c
index 0fdc8ae7e,9e77e4525..798b95bd8
--- a/frontends/amiga/gui_options.c
+++ b/frontends/amiga/gui_options.c
@@@ -494,7 -574,17 +494,6 @@@ static void ami_gui_opts_free(struct am
                if(nativebmopts[i]) free((APTR)nativebmopts[i]);
  
        ami_gui_opts_websearch_free(websearch_list);
--
 -#ifndef __amigaos4__
 -      ami_gui_opts_free_list(&gow->clicktablist, NSA_LIST_CLICKTAB);
 -      ami_gui_opts_free_list(&gow->screenoptslist, NSA_LIST_RADIO);
 -      ami_gui_opts_free_list(&gow->pagethemeoptslist, NSA_LIST_CHOOSER);
 -      ami_gui_opts_free_list(&gow->proxyoptslist, NSA_LIST_CHOOSER);
 -      ami_gui_opts_free_list(&gow->nativebmoptslist, NSA_LIST_CHOOSER);
 -      ami_gui_opts_free_list(&gow->ditheroptslist, NSA_LIST_CHOOSER);
 -      ami_gui_opts_free_list(&gow->fontoptslist, NSA_LIST_CHOOSER);
 -      ami_gui_opts_free_list(&gow->fontenginelist, NSA_LIST_CHOOSER);
 -#endif
  }
  
  void ami_gui_opts_open(void)


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

Summary of changes:
 .github/workflows/build.yaml           | 197 +++++++++++++++++++++++++++++++--
 .github/workflows/monkey-test.yaml     |   2 +-
 .github/workflows/static-analysis.yaml |   7 +-
 docs/env.sh                            |  25 ++++-
 frontends/amiga/Makefile               |   2 +-
 frontends/amiga/font.c                 |  22 ++++
 frontends/amiga/font_bullet.c          |   4 +-
 frontends/amiga/gui.c                  |  27 +----
 frontends/amiga/gui_options.c          |  31 +++---
 frontends/atari/Makefile               |  13 +++
 frontends/atari/Makefile.defaults      |   4 -
 frontends/atari/Makefile.tools         |  23 +++-
 frontends/riscos/print.c               |  14 ++-
 frontends/windows/Makefile             |   2 +-
 frontends/windows/Makefile.tools       |  22 +++-
 15 files changed, 319 insertions(+), 76 deletions(-)

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index fa8843807..4aeac684c 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -3,8 +3,9 @@ name: "Linux Build"
 on: [push]
 
 jobs:
-  linux:
-    name: '${{ matrix.os }}: ${{ matrix.compiler.vendor }}'
+  # Native linux builds
+  native:
+    name: 'Native: ${{ matrix.os }}: ${{ matrix.compiler.vendor }}'
     runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
@@ -57,10 +58,10 @@ jobs:
       env:
         CC: ${{ matrix.compiler.CC }}
         CXX: ${{ matrix.compiler.CXX }}
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
       run: |
-          export TARGET_WORKSPACE="$(pwd)/projects"
           source docs/env.sh
-          ns-clone -d -s
+          ns-clone -d -s -b ${GITHUB_REF_NAME}
           ns-make-tools install
           ns-make-libs install
 
@@ -78,8 +79,8 @@ jobs:
       env:
         CC: ${{ matrix.compiler.CC }}
         CXX: ${{ matrix.compiler.CXX }}
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
       run: |
-          export TARGET_WORKSPACE="$(pwd)/projects"
           source docs/env.sh
           make test
 
@@ -87,8 +88,8 @@ jobs:
       env:
         CC: ${{ matrix.compiler.CC }}
         CXX: ${{ matrix.compiler.CXX }}
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
       run: |
-          export TARGET_WORKSPACE="$(pwd)/projects"
           source docs/env.sh
           make -j"$(nproc)" TARGET=gtk
 
@@ -96,8 +97,8 @@ jobs:
       env:
         CC: ${{ matrix.compiler.CC }}
         CXX: ${{ matrix.compiler.CXX }}
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
       run: |
-          export TARGET_WORKSPACE="$(pwd)/projects"
           source docs/env.sh
           make -j"$(nproc)" TARGET=monkey
 
@@ -105,7 +106,187 @@ jobs:
       env:
         CC: ${{ matrix.compiler.CC }}
         CXX: ${{ matrix.compiler.CXX }}
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
       run: |
-          export TARGET_WORKSPACE="$(pwd)/projects"
           source docs/env.sh
           make -j"$(nproc)" TARGET=framebuffer
+
+  # Cross compile using toolchains built in the toolchains repo.
+  cross:
+    name: 'Cross: ${{ matrix.build.toolchain }}' # ATM toolchain unique across 
builds
+    runs-on: ubuntu-24.04 # Matches toolchains workflow
+    strategy:
+      fail-fast: false
+      matrix:
+        build:
+          - { toolchain: arm-riscos-gnueabi,   frontend: riscos,   pkg-file: 
netsurf.zip }
+          - { toolchain: arm-unknown-riscos,   frontend: riscos,   pkg-file: 
netsurf.zip }
+          - { toolchain: i686-w64-mingw32,     frontend: windows,  pkg-file: 
netsurf-installer.exe }
+          - { toolchain: m5475-atari-mint,     frontend: atari,    pkg-file: 
nsv4e.zip }
+          - { toolchain: m68k-atari-mint,      frontend: atari,    pkg-file: 
ns020.zip }
+          - { toolchain: m68k-unknown-amigaos, frontend: amigaos3, pkg-file: 
NetSurf_Amiga/netsurf.lha }
+          - { toolchain: ppc-amigaos,          frontend: amiga,    pkg-file: 
NetSurf_Amiga/netsurf.lha }
+          - { toolchain: x86_64-w64-mingw32,   frontend: windows,  pkg-file: 
netsurf-installer.exe }
+
+    steps:
+    - name: Checkout repository
+      uses: actions/checkout@v3
+      with:
+        fetch-depth: 1
+
+    - name: apt-get install packages
+      run: sudo apt-get update -qq &&
+           sudo apt-get install --no-install-recommends -y
+               bison
+               build-essential
+               ccache
+               check
+               clang
+               flex
+               git
+               gperf
+               jlha-utils
+               libcurl4-openssl-dev
+               libgtk-3-dev
+               libhtml-parser-perl
+               libjpeg-dev
+               libpng-dev
+               librsvg2-dev
+               llvm
+               nsis
+               pkg-config
+
+    - name: ccache
+      uses: hendrikmuhs/[email protected]
+      with:
+        key: ${{ github.job }}-${{ matrix.build.toolchain }}
+        max-size: 128M
+
+    # look for toolchain for this branch name first, then default to master
+    - name: Download toolchain
+      run: |
+        set -e
+        
+        TOOLCHAIN_NAME="${{ matrix.build.toolchain }}"
+        BRANCH_NAME="${{ github.ref_name }}"
+        
+        # Function to try downloading toolchain from a specific tag
+        download_toolchain() {
+          local ref="$1"
+          local 
download_url="https://github.com/netsurf-browser/toolchains/releases/download/${ref}/${TOOLCHAIN_NAME}.tar.gz";
+          
+          echo "Trying to download toolchain from ref: $ref"
+          echo "URL: $download_url"
+          
+          if curl -f -L -o "${TOOLCHAIN_NAME}.tar.gz" "$download_url"; then
+            echo "Got toolchain with ref: $ref"
+            return 0
+          else
+            echo "Failed to download toolchain with ref: $ref"
+            return 1
+          fi
+        }
+        
+        # Try branch-specific toolchain first
+        safe_branch=$(echo "$BRANCH_NAME" | sed 's/[^a-zA-Z0-9._-]/-/g')
+        branch_tag="gh-${safe_branch}-unstable"
+        
+        if download_toolchain "$branch_tag"; then
+          echo "Downloaded branch-specific toolchain"
+        elif download_toolchain "gh-master-unstable"; then
+          echo "Downloaded fallback master toolchain"
+        else
+          echo "Failed to download any toolchain variant"
+          exit 1
+        fi
+
+    - name: Install toolchain
+      run: |
+        echo "Installing toolchain: ${{ matrix.build.toolchain }}"
+        sudo tar -xzf "${{ matrix.build.toolchain }}.tar.gz" -C /
+        rm "${{ matrix.build.toolchain }}.tar.gz"
+        echo "Toolchain testament:"
+        cat /opt/netsurf/${{ matrix.build.toolchain }}/BUILD_INFO.txt
+
+    - name: Build and install project libs
+      env:
+        HOST: "${{ matrix.build.toolchain }}"
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
+        Q:
+      run: |
+        echo "HOST=$HOST"
+        echo "TARGET_WORKSPACE=$TARGET_WORKSPACE"
+        
+        echo "Looking for cross-compiler tools..."
+        echo "Expected path: /opt/netsurf/${HOST}/cross/bin/"
+        if [ -f "/opt/netsurf/${HOST}/cross/bin/${HOST}-gcc" ]; then
+          echo "Found: /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc"
+          echo "Testing if it's executable:"
+          /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc --version || echo "Failed 
to execute gcc --version"
+          echo "Testing dumpmachine output:"
+          /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc -dumpmachine || echo 
"Failed to execute gcc -dumpmachine"
+        else
+          echo "NOT FOUND: /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc"
+        fi
+        
+        echo "Sourcing env.sh with error checking..."
+        set -e  # Exit on any error
+        if ! source docs/env.sh; then
+          echo "env.sh failed with exit code $?"
+          exit 1
+        fi
+        echo "env.sh sourced successfully"
+        echo "BUILD=$BUILD"
+        echo "HOST=$HOST"
+        echo "TARGET_WORKSPACE=$TARGET_WORKSPACE"
+        echo "USE_CPUS=$USE_CPUS"
+
+        echo "Cloning libs..."
+        ns-clone -d -s -b ${GITHUB_REF_NAME}
+        echo "Building and installing tools..."
+        ns-make-tools install
+        echo "Building and installing libs..."
+        ns-make-libs install
+
+    - name: Build NetSurf
+      env:
+        HOST: "${{ matrix.build.toolchain }}"
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
+      run: |
+        set -e
+        if ! source docs/env.sh; then
+          echo "env.sh failed with exit code $?"
+          exit 1
+        fi
+        echo "env.sh sourced successfully"
+        echo "BUILD=$BUILD"
+        echo "HOST=$HOST"
+        echo "TARGET_WORKSPACE=$TARGET_WORKSPACE"
+        echo "USE_CPUS=$USE_CPUS"
+        make -j"$(nproc)" TARGET=${{ matrix.build.frontend }} Q=
+
+    - name: Make package
+      env:
+        HOST: "${{ matrix.build.toolchain }}"
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
+      run: |
+        set -e
+        if ! source docs/env.sh; then
+          echo "env.sh failed with exit code $?"
+          exit 1
+        fi
+        echo "env.sh sourced successfully"
+        echo "BUILD=$BUILD"
+        echo "HOST=$HOST"
+        echo "TARGET_WORKSPACE=$TARGET_WORKSPACE"
+        echo "USE_CPUS=$USE_CPUS"
+        make package TARGET=${{ matrix.build.frontend }} Q=
+
+    # Can't avoid `upload-artifact` zipping the package
+    # https://github.com/actions/upload-artifact/issues/426
+    - name: Upload artifact
+      uses: actions/upload-artifact@v4
+      with:
+        name: ${{ matrix.build.toolchain }}-${{ matrix.build.frontend }}
+        path: ${{ matrix.build.pkg-file }}
+        compression-level: 0 # Avoid pointless recompression
diff --git a/.github/workflows/monkey-test.yaml 
b/.github/workflows/monkey-test.yaml
index 8ed2b74b0..b098fb0dc 100644
--- a/.github/workflows/monkey-test.yaml
+++ b/.github/workflows/monkey-test.yaml
@@ -50,7 +50,7 @@ jobs:
       run: |
           export TARGET_WORKSPACE="$(pwd)/projects"
           source docs/env.sh
-          ns-clone -d -s
+          ns-clone -d -s -b ${GITHUB_REF_NAME}
           ns-make-tools install
           ns-make-libs install
 
diff --git a/.github/workflows/static-analysis.yaml 
b/.github/workflows/static-analysis.yaml
index 2500b3f57..548b547cf 100644
--- a/.github/workflows/static-analysis.yaml
+++ b/.github/workflows/static-analysis.yaml
@@ -45,13 +45,12 @@ jobs:
       run: |
           export TARGET_WORKSPACE="$(pwd)/projects"
           source docs/env.sh
-          ns-clone -d -s
+          ns-clone -d -s -b ${GITHUB_REF_NAME}
           ns-make-tools install
           ns-make-libs install
 
-    # Initializes the CodeQL tools for scanning.
     - name: Initialize CodeQL
-      uses: github/codeql-action/init@v3
+      uses: github/codeql-action/init@v4
       with:
         languages: ${{ matrix.language }}
 
@@ -62,4 +61,4 @@ jobs:
           make -j"$(nproc)"
 
     - name: Perform CodeQL Analysis
-      uses: github/codeql-action/analyze@v3
+      uses: github/codeql-action/analyze@v4
diff --git a/docs/env.sh b/docs/env.sh
index 0a873cc6e..00f88c78e 100644
--- a/docs/env.sh
+++ b/docs/env.sh
@@ -344,6 +344,10 @@ case "$BUILD_TARGET" in
         NS_INTERNAL_LIBS="libwapcaplet libparserutils"
         ;;
 
+    libsvgtiny)
+        NS_INTERNAL_LIBS="libwapcaplet libparserutils libhubbub libdom"
+        ;;
+
     netsurf)
         # internal libraries all frontends require (order is important)
         NS_INTERNAL_LIBS="libwapcaplet libparserutils libhubbub libdom libcss 
libnsgif libnsbmp libutf8proc libnsutils libnspsl libnslog"
@@ -370,7 +374,7 @@ case "$BUILD_TARGET" in
                 ;;
             *-atari-mint)
                 # tools required to build the browser for atari
-                NS_TOOLS=""
+                NS_TOOLS="nsgenbind"
                 # libraries required for the atari frontend
                 NS_FRONTEND_LIBS=""
                 ;;
@@ -426,6 +430,7 @@ ns-clone()
 {
     SHALLOW=""
     SKIP=""
+    BRANCH=""
     while [ $# -gt 0 ]
     do
         case "$1" in
@@ -435,6 +440,9 @@ ns-clone()
             -s | --shallow) SHALLOW="--depth 1"
                             shift
                             ;;
+            -b | --branch) BRANCH="$2"
+                            shift 2
+                            ;;
             -*) echo "Error: Unknown option: $1" >&2
                 exit 1
                 ;;
@@ -447,11 +455,22 @@ ns-clone()
     mkdir -p ${TARGET_WORKSPACE}
     for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_INTERNAL_LIBS} 
${NS_FRONTEND_LIBS} ${NS_RISCOS_LIBS} ${NS_TOOLS} ${BUILD_TARGET}) ; do
         [ "x${REPO}" != "x${SKIP}" ] || continue
-        echo -n "     GIT: Cloning ${REPO}: "
+        echo -n "     GIT: Cloning '${REPO}'; "
         if [ -f ${TARGET_WORKSPACE}/${REPO}/.git/config ]; then
             echo "Repository already present"
         else
-            (cd ${TARGET_WORKSPACE} && git clone ${SHALLOW} 
${NS_GIT}/${REPO}.git; )
+            if [ "x${BRANCH}" != "x" ]; then
+                if (cd ${TARGET_WORKSPACE} && git clone ${SHALLOW} -b 
${BRANCH} ${NS_GIT}/${REPO}.git 2>/dev/null); then
+                    echo "got branch '${BRANCH}'"
+                    continue
+                fi
+            fi
+            if (cd ${TARGET_WORKSPACE} && git clone ${SHALLOW} 
${NS_GIT}/${REPO}.git); then
+                echo "default branch"
+            else
+                echo "failure"
+                return 1
+            fi
         fi
     done
 
diff --git a/frontends/amiga/Makefile b/frontends/amiga/Makefile
index 33d1170b3..11907b057 100644
--- a/frontends/amiga/Makefile
+++ b/frontends/amiga/Makefile
@@ -5,7 +5,7 @@
 CFLAGS += -std=c99 -Dnsamiga
 
 ifneq ($(SUBTARGET),os3)
-  CFLAGS += -O2 -mstrict-align -finline-functions -U__STRICT_ANSI__ 
-D__USE_INLINE__ -D__USE_BASETYPE__
+  CFLAGS += -O2 -flto -mstrict-align -finline-functions -U__STRICT_ANSI__ 
-D__USE_INLINE__ -D__USE_BASETYPE__
 else
   CFLAGS += -O2 -DPATH_MAX=1024 -D__m68k__ -fomit-frame-pointer -m68020-60 
-msoft-float -DNO_INLINE_STDARG -DFANCY_GADTOOLS_MENU
 endif
diff --git a/frontends/amiga/font.c b/frontends/amiga/font.c
index aab37c24c..3b5e698fc 100644
--- a/frontends/amiga/font.c
+++ b/frontends/amiga/font.c
@@ -109,8 +109,30 @@ void ami_font_close_disk_font(struct TextFont *tfont)
 void ami_font_init(void)
 {
        if(nsoption_bool(bitmap_fonts) == false) {
+#ifdef __amigaos4__
+               nsoption_setnull_charp(font_sans, (char *)strdup("DejaVu 
Sans"));
+               nsoption_setnull_charp(font_serif, (char *)strdup("DejaVu 
Serif"));
+               nsoption_setnull_charp(font_mono, (char *)strdup("DejaVu Sans 
Mono"));
+               nsoption_setnull_charp(font_cursive, (char *)strdup("DejaVu 
Sans"));
+               nsoption_setnull_charp(font_fantasy, (char *)strdup("DejaVu 
Serif"));
+#else
+               /* Default CG fonts for OS3 - these work with use_diskfont both 
on and off,
+               however they are slow in both cases. The bitmap fonts don't 
work when
+               use_diskfont is off. */
+               nsoption_setnull_charp(font_sans, (char 
*)strdup("CGTriumvirate"));
+               nsoption_setnull_charp(font_serif, (char *)strdup("CGTimes"));
+               nsoption_setnull_charp(font_mono, (char 
*)strdup("LetterGothic"));
+               nsoption_setnull_charp(font_cursive, (char 
*)strdup("CGTriumvirate"));
+               nsoption_setnull_charp(font_fantasy, (char *)strdup("CGTimes"));
+#endif
                ami_font_bullet_init();
        } else {
+               nsoption_setnull_charp(font_sans, (char *)strdup("helvetica"));
+               nsoption_setnull_charp(font_serif, (char *)strdup("times"));
+               nsoption_setnull_charp(font_mono, (char *)strdup("topaz"));
+               nsoption_setnull_charp(font_cursive, (char *)strdup("garnet"));
+               nsoption_setnull_charp(font_fantasy, (char *)strdup("emerald"));
+
                ami_font_diskfont_init();
        }
 }
diff --git a/frontends/amiga/font_bullet.c b/frontends/amiga/font_bullet.c
index 34a2cdfc4..0f1ae6677 100644
--- a/frontends/amiga/font_bullet.c
+++ b/frontends/amiga/font_bullet.c
@@ -565,7 +565,7 @@ static inline int32 ami_font_plot_glyph(struct OutlineFont 
*ofont, struct RastPo
 
        if (*char2 < 0x0020) skip_c2 = true;
 #ifndef __amigaos4__
-       if((strcmp(ofont->olf_EngineName, "bullet") == 0) && (*char1 == 
0x0020)) return (emwidth / 3);
+       if(*char1 == 0x0020) return (emwidth / 3);
 #endif
 
 #ifdef __amigaos4__
@@ -674,7 +674,7 @@ static inline int32 ami_font_width_glyph(struct OutlineFont 
*ofont,
 
        if (*char2 < 0x0020) skip_c2 = true;
 #ifndef __amigaos4__
-       if((strcmp(ofont->olf_EngineName, "bullet") == 0) && (*char1 == 
0x0020)) return (emwidth / 3);
+       if(*char1 == 0x0020) return (emwidth / 3);
 #endif
 
        long_char_1 = amiga_nsfont_decode_surrogate(char1);
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index aa3866cea..a1a99e89e 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1106,32 +1106,7 @@ static nserror ami_set_options(struct nsoption_s 
*defaults)
        nsoption_setnull_charp(ca_bundle,
                               (char *)strdup("PROGDIR:Resources/ca-bundle"));
 
-       /* font defaults */
-
-       if(nsoption_bool(bitmap_fonts) == false) {
-#ifdef __amigaos4__
-               nsoption_setnull_charp(font_sans, (char *)strdup("DejaVu 
Sans"));
-               nsoption_setnull_charp(font_serif, (char *)strdup("DejaVu 
Serif"));
-               nsoption_setnull_charp(font_mono, (char *)strdup("DejaVu Sans 
Mono"));
-               nsoption_setnull_charp(font_cursive, (char *)strdup("DejaVu 
Sans"));
-               nsoption_setnull_charp(font_fantasy, (char *)strdup("DejaVu 
Serif"));
-#else
-               /* Default CG fonts for OS3 - these work with use_diskfont both 
on and off,
-               however they are slow in both cases. The bitmap fonts don't 
work when
-               use_diskfont is off. */
-               nsoption_setnull_charp(font_sans, (char 
*)strdup("CGTriumvirate"));
-               nsoption_setnull_charp(font_serif, (char *)strdup("CGTimes"));
-               nsoption_setnull_charp(font_mono, (char 
*)strdup("LetterGothic"));
-               nsoption_setnull_charp(font_cursive, (char 
*)strdup("CGTriumvirate"));
-               nsoption_setnull_charp(font_fantasy, (char *)strdup("CGTimes"));
-#endif
-       } else {
-               nsoption_setnull_charp(font_sans, (char *)strdup("helvetica"));
-               nsoption_setnull_charp(font_serif, (char *)strdup("times"));
-               nsoption_setnull_charp(font_mono, (char *)strdup("topaz"));
-               nsoption_setnull_charp(font_cursive, (char *)strdup("garnet"));
-               nsoption_setnull_charp(font_fantasy, (char *)strdup("emerald"));
-       }
+       /* Regular font defaults are set in font.c */
 
        if (nsoption_charp(font_unicode) == NULL)
        {
diff --git a/frontends/amiga/gui_options.c b/frontends/amiga/gui_options.c
index 0fdc8ae7e..798b95bd8 100755
--- a/frontends/amiga/gui_options.c
+++ b/frontends/amiga/gui_options.c
@@ -239,24 +239,24 @@ static const struct ami_win_event_table ami_guiopts_table 
= {
 };
 
 /* Default fonts */
-static struct TextAttr default_bm_font_SANS =    { "helvetica", 0, 0, 0 };
-static struct TextAttr default_bm_font_SERIF =   { "times",     0, 0, 0 };
-static struct TextAttr default_bm_font_MONO =    { "topaz",     0, 0, 0 };
-static struct TextAttr default_bm_font_CURSIVE = { "garnet",    0, 0, 0 };
-static struct TextAttr default_bm_font_FANTASY = { "emerald",   0, 0, 0 };
+static struct TextAttr default_bm_font_SANS =    { "helvetica.font", 0, 0, 0 };
+static struct TextAttr default_bm_font_SERIF =   { "times.font",     0, 0, 0 };
+static struct TextAttr default_bm_font_MONO =    { "topaz.font",     0, 0, 0 };
+static struct TextAttr default_bm_font_CURSIVE = { "garnet.font",    0, 0, 0 };
+static struct TextAttr default_bm_font_FANTASY = { "emerald.font",   0, 0, 0 };
 
 #ifdef __amigaos4__
-static struct TextAttr default_cg_font_SANS =    { "DejaVu Sans",      0, 0, 0 
};
-static struct TextAttr default_cg_font_SERIF =   { "DejaVu Serif",     0, 0, 0 
};
-static struct TextAttr default_cg_font_MONO =    { "DejaVu Sans Mono", 0, 0, 0 
};
-static struct TextAttr default_cg_font_CURSIVE = { "DejaVu Sans",      0, 0, 0 
};
-static struct TextAttr default_cg_font_FANTASY = { "DejaVu Serif",     0, 0, 0 
};
+static struct TextAttr default_cg_font_SANS =    { "DejaVu Sans.font",      0, 
0, 0 };
+static struct TextAttr default_cg_font_SERIF =   { "DejaVu Serif.font",     0, 
0, 0 };
+static struct TextAttr default_cg_font_MONO =    { "DejaVu Sans Mono.font", 0, 
0, 0 };
+static struct TextAttr default_cg_font_CURSIVE = { "DejaVu Sans.font",      0, 
0, 0 };
+static struct TextAttr default_cg_font_FANTASY = { "DejaVu Serif.font",     0, 
0, 0 };
 #else
-static struct TextAttr default_cg_font_SANS =    { "CGTriumvirate", 0, 0, 0 };
-static struct TextAttr default_cg_font_SERIF =   { "CGTimes",       0, 0, 0 };
-static struct TextAttr default_cg_font_MONO =    { "LetterGothic",  0, 0, 0 };
-static struct TextAttr default_cg_font_CURSIVE = { "CGTriumvirate", 0, 0, 0 };
-static struct TextAttr default_cg_font_FANTASY = { "CGTimes",       0, 0, 0 };
+static struct TextAttr default_cg_font_SANS =    { "CGTriumvirate.font", 0, 0, 
0 };
+static struct TextAttr default_cg_font_SERIF =   { "CGTimes.font",       0, 0, 
0 };
+static struct TextAttr default_cg_font_MONO =    { "LetterGothic.font",  0, 0, 
0 };
+static struct TextAttr default_cg_font_CURSIVE = { "CGTriumvirate.font", 0, 0, 
0 };
+static struct TextAttr default_cg_font_FANTASY = { "CGTimes.font",       0, 0, 
0 };
 #endif
 
 #define AMI_GUI_OPTS_REFRESH_FONT_BM(TYPE) RefreshSetGadgetAttrs((struct 
Gadget *)gow->objects[GID_OPTS_FONT_##TYPE], \
@@ -494,7 +494,6 @@ static void ami_gui_opts_free(struct ami_gui_opts_window 
*gow)
                if(nativebmopts[i]) free((APTR)nativebmopts[i]);
 
        ami_gui_opts_websearch_free(websearch_list);
-
 }
 
 void ami_gui_opts_open(void)
diff --git a/frontends/atari/Makefile b/frontends/atari/Makefile
index 2f6d7118b..a14e202e1 100644
--- a/frontends/atari/Makefile
+++ b/frontends/atari/Makefile
@@ -12,6 +12,19 @@ STRIP := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*-strip)
 STACK := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*stack)
 FT2CF := $(GCCSDK_INSTALL_ENV)/bin/freetype-config
 
+# Compute default atariarch: 68020-60 unless coldfire
+ifeq ($(origin ATARIARCH),undefined)
+  ifeq (,$(findstring m5475,$(shell $(CC) -dumpmachine 2>/dev/null)))
+    ATARIARCH := 68020-60
+  else
+    ATARIARCH := v4e
+  endif
+endif
+# Validate atariarch
+ifeq ($(filter 68000 68020-60 v4e,$(ATARIARCH)),)
+  $(error Unknown ATARIARCH "$(ATARIARCH)")
+endif
+
 ifeq ($(ATARIARCH),68000)
 PRGSUFFIX := 000.app
 PKGNAME := ns000.zip
diff --git a/frontends/atari/Makefile.defaults 
b/frontends/atari/Makefile.defaults
index dd040540f..7c400e159 100644
--- a/frontends/atari/Makefile.defaults
+++ b/frontends/atari/Makefile.defaults
@@ -39,10 +39,6 @@ NETSURF_USE_ATARI_VDI_FONT := NO
 # Valid options: YES, NO
 NETSURF_USE_ATARI_8BPP_SUPPORT := NO
 
-# Configure the CPU target
-# Valid options: 68000, 68020-60, 5475 (coldfire)
-ATARIARCH = 68020-60
-
 # enable optimizations
 # -O2 is currently broken with m68000 / m68020-60 builds
 CFLAGS += -O3
diff --git a/frontends/atari/Makefile.tools b/frontends/atari/Makefile.tools
index 971ab21be..da11e1c09 100644
--- a/frontends/atari/Makefile.tools
+++ b/frontends/atari/Makefile.tools
@@ -9,11 +9,28 @@ else
   ifeq ($(HOST),mint)
     PKG_CONFIG := pkg-config
   else
-    GCCSDK_INSTALL_ENV ?= /opt/netsurf/m68k-atari-mint/env
-    GCCSDK_INSTALL_CROSSBIN ?= /opt/netsurf/m68k-atari-mint/cross/bin
+    # Cross-build
+
+    # Search for the toolchain install locations if we haven't been told
+    # The search order prefers m68k over m5475
+    ifeq ($(origin GCCSDK_INSTALL_ENV),undefined)
+      ifneq ($(realpath /opt/netsurf/m68k-atari-mint/env),)
+        GCCSDK_INSTALL_ENV := /opt/netsurf/m68k-atari-mint/env
+      else
+        GCCSDK_INSTALL_ENV := /opt/netsurf/m5475-atari-mint/env
+      endif
+    endif
+
+    ifeq ($(origin GCCSDK_INSTALL_CROSSBIN),undefined)
+      ifneq ($(realpath /opt/netsurf/m68k-atari-mint/env),)
+        GCCSDK_INSTALL_CROSSBIN := /opt/netsurf/m68k-atari-mint/cross/bin
+      else
+        GCCSDK_INSTALL_CROSSBIN := /opt/netsurf/m5475-atari-mint/cross/bin
+      endif
+    endif
 
     CC := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*gcc)
 
     PKG_CONFIG := PKG_CONFIG_LIBDIR="$(GCCSDK_INSTALL_ENV)/lib/pkgconfig" 
pkg-config
   endif
-endif
\ No newline at end of file
+endif
diff --git a/frontends/riscos/print.c b/frontends/riscos/print.c
index e87f47857..2495b799e 100644
--- a/frontends/riscos/print.c
+++ b/frontends/riscos/print.c
@@ -674,10 +674,16 @@ bool print_document(struct gui_window *g, const char 
*filename)
                        NSLOG(netsurf, INFO,
                              "redrawing area: [(%d, %d), (%d, %d)]", b.x0,
                              b.y0, b.x1, b.y1);
-                       clip.x0 = (b.x0 - ro_plot_origin_x) / 2;
-                       clip.y0 = (ro_plot_origin_y - b.y1) / 2;
-                       clip.x1 = (b.x1 - ro_plot_origin_x) / 2;
-                       clip.y1 = (ro_plot_origin_y - b.y0) / 2;
+
+                       ro_plot_clip_rect.x0 = b.x0 - ro_plot_origin_x;
+                       ro_plot_clip_rect.y0 = ro_plot_origin_y - b.y0;
+                       ro_plot_clip_rect.x1 = b.x1 - ro_plot_origin_x;
+                       ro_plot_clip_rect.y1 = ro_plot_origin_y - b.y1;
+
+                       clip.x0 = (ro_plot_clip_rect.x0    ) / 2; /* left   */
+                       clip.y0 = (ro_plot_clip_rect.y1    ) / 2; /* top    */
+                       clip.x1 = (ro_plot_clip_rect.x1 + 1) / 2; /* right  */
+                       clip.y1 = (ro_plot_clip_rect.y0 + 1) / 2; /* bottom */
 
                        data.x = 0;
                        data.y = 0;
diff --git a/frontends/windows/Makefile b/frontends/windows/Makefile
index 524f716fe..4d854301a 100644
--- a/frontends/windows/Makefile
+++ b/frontends/windows/Makefile
@@ -15,7 +15,7 @@ $(eval $(call pkg_config_find_and_add,libcares,Cares))
 $(eval $(call pkg_config_find_and_add,zlib,ZLib))
 
 # libraries for windows API
-LDFLAGS += -lgnurx -lgdi32 -lcomctl32 -lws2_32 -lmsimg32 -lshlwapi -lcrypt32 
-mwindows
+LDFLAGS += -lgnurx -lgdi32 -lcomctl32 -lws2_32 -lmsimg32 -lshlwapi -liphlpapi 
-lcrypt32 -mwindows
 
 CFLAGS += -U__STRICT_ANSI__ -mwin32
 # only windows versions after XP are supported
diff --git a/frontends/windows/Makefile.tools b/frontends/windows/Makefile.tools
index 24f0f7fbd..04550ba85 100644
--- a/frontends/windows/Makefile.tools
+++ b/frontends/windows/Makefile.tools
@@ -4,9 +4,25 @@
 ##
 
 ifneq ($(HOST),windows)
-  # Set Mingw defaults
-  GCCSDK_INSTALL_ENV ?= /opt/netsurf/i686-w64-mingw32/env
-  GCCSDK_INSTALL_CROSSBIN ?= /opt/netsurf/i686-w64-mingw32/cross/bin
+  # Cross-build for Windows
+
+  # Search for the toolchain install locations if we haven't been told
+  # The search order prefers x86_64 over i686
+  ifeq ($(origin GCCSDK_INSTALL_ENV),undefined)
+    ifneq ($(realpath /opt/netsurf/x86_64-w64-mingw32/env),)
+      GCCSDK_INSTALL_ENV := /opt/netsurf/x86_64-w64-mingw32/env
+    else
+      GCCSDK_INSTALL_ENV := /opt/netsurf/i686-w64-mingw32/env
+    endif
+  endif
+
+  ifeq ($(origin GCCSDK_INSTALL_CROSSBIN),undefined)
+    ifneq ($(realpath /opt/netsurf/x86_64-w64-mingw32/env),)
+      GCCSDK_INSTALL_CROSSBIN := /opt/netsurf/x86_64-w64-mingw32/cross/bin
+    else
+      GCCSDK_INSTALL_CROSSBIN := /opt/netsurf/i686-w64-mingw32/cross/bin
+    endif
+  endif
 
   CC := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*gcc)
   WINDRES := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*windres)


-- 
NetSurf Browser

Reply via email to