#! /bin/sh -e ## 12_fix-tile.dpatch by Rémi Guyomarch (via FreeBSD & OpenBSD) ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Fix -tile for images smaller than the screen. if [ $# -ne 1 ]; then echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" exit 1 fi case "$1" in -patch) patch -f --no-backup-if-mismatch -p1 < $0;; -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; *) echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" exit 1;; esac exit 0 diff -urNad 12.xloadimage.tmp/merge.c 12.xloadimage/merge.c --- 12.xloadimage.tmp/merge.c 1993-10-21 22:28:39.000000000 +0100 +++ 12.xloadimage/merge.c 2003-04-05 15:04:06.000000000 +0100 @@ -244,6 +244,7 @@ int x, y; unsigned int width, height, verbose; { Image *base, *tmp; + int nx, ny; if (verbose) { printf(" Tiling..."); @@ -259,16 +260,14 @@ else base = newTrueImage(width, height); - while (x < base->width) { - while(y < base->height) { - tmp = merge(base, image, x, y, 0); + for (nx = x; nx < base->width; nx += image->width) { + for(ny = y; ny < base->height; ny += image->height) { + tmp = merge(base, image, nx, ny, 0); if (tmp != base) { freeImage(base); base = tmp; } - y += image->width; } - x += image->width; } printf("done.\n"); return(base);