51 lines
1.4 KiB
Text
51 lines
1.4 KiB
Text
#! /bin/sh -e
|
|
## 12_fix-tile.dpatch by Rémi Guyomarch <rguyom@pobox.com> (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);
|