w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

commit 25b6bceaf8bc9531fb77657c58ebd28b47f675b9
parent 91ec788120654121ff2193610af03ce28a8b71eb
Author: ukai <ukai>
Date:   Wed,  4 Aug 2004 17:32:27 +0000

[w3m-dev 04096] w3m-img gtk2
* acinclude.m4 (AC_W3M_IMAGE): add USE_GTK2
	add --with-imagelib=gtk2
* aclocal.m4 config.guess config.sub configure: regen
* config.h.in: add USE_GTK2
* w3mimg/fb/fb_gdkpixbuf.c: support USE_GTK2
* w3mimg/fb/fb_img.h: add fb_image_init()
* w3mimg/fb/fb_imlib2.h: fb_image_init() stub
* w3mimg/fb/fb_w3mimg.c: call fb_image_init()
* w3mimg/x11/x11_w3mimg.c: support USE_GTK2
From: Fumitoshi UKAI  <ukai@debian.or.jp>

Diffstat:
MChangeLog | 13+++++++++++++
Macinclude.m4 | 58+++++++++++++++++++++++++++++++++++++++++++++++-----------
Maclocal.m4 | 58+++++++++++++++++++++++++++++++++++++++++++++++-----------
Mconfig.guess | 184++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
Mconfig.h.in | 1+
Mconfig.sub | 128+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
Mconfigure | 93++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Mw3mimg/fb/fb_gdkpixbuf.c | 108++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
Mw3mimg/fb/fb_img.h | 1+
Mw3mimg/fb/fb_imlib2.c | 6++++++
Mw3mimg/fb/fb_w3mimg.c | 4++++
Mw3mimg/x11/x11_w3mimg.c | 132++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
12 files changed, 647 insertions(+), 139 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,16 @@ +2004-08-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 04096] w3m-img gtk2 + * acinclude.m4 (AC_W3M_IMAGE): add USE_GTK2 + add --with-imagelib=gtk2 + * aclocal.m4 config.guess config.sub configure: regen + * config.h.in: add USE_GTK2 + * w3mimg/fb/fb_gdkpixbuf.c: support USE_GTK2 + * w3mimg/fb/fb_img.h: add fb_image_init() + * w3mimg/fb/fb_imlib2.h: fb_image_init() stub + * w3mimg/fb/fb_w3mimg.c: call fb_image_init() + * w3mimg/x11/x11_w3mimg.c: support USE_GTK2 + 2004-08-03 WATANABE Katsuyuki <knabe@sannet.ne.jp> * [w3m-dev 04095] build fix when configure with --enable-messagel10n diff --git a/acinclude.m4 b/acinclude.m4 @@ -573,6 +573,7 @@ AC_DEFUN([AC_W3M_IMAGE], INSTALL_W3MIMGDISPLAY='${INSTALL_PROGRAM}' AC_DEFINE(INSTALL_W3MIMGDISPLAY, $INSTALL_W3MIMGDISPLAY) AC_SUBST(USE_GDKPIXBUF) + AC_SUBST(USE_GTK2) AC_SUBST(USE_IMLIB) AC_SUBST(USE_IMLIB2) AC_SUBST(IMGTARGETS) @@ -618,16 +619,17 @@ AC_DEFUN([AC_W3M_IMAGE], AC_ARG_WITH(imagelib, [ --with-imagelib=IMAGELIBS image library IMAGELIBS may be space separeted list of: - gdk-pixbuf imlib imlib2],, + gtk2 gdk-pixbuf imlib imlib2],, [with_imagelib="yes"]) if test x"$with_imagelib" = xyes; then - with_imagelib="gdk-pixbuf imlib imlib2" + with_imagelib="gtk2 gdk-pixbuf imlib imlib2" fi AC_MSG_RESULT($with_imagelib) with_imlib=no with_imlib2=no with_gdkpixbuf=no + with_gtk2=no for imagelib in $with_imagelib do case "$imagelib" in @@ -646,15 +648,31 @@ AC_DEFUN([AC_W3M_IMAGE], if test x"$GDKPIXBUF_CONFIG" = x; then GDKPIXBUF_CONFIG=gdk-pixbuf-config fi;; + gtk2) + with_gtk2="yes" + if test x"$PKG_CONFIG" = x; then + PKG_CONFIG=pkg-config + else + PKG_CONFIG=: + fi;; esac done IMGTARGETS="" - if test x"$with_gdkpixbuf" = xyes; then + if test x"$with_gtk2" = xyes; then AC_W3M_CHECK_VER([GdkPixbuf], + [`$PKG_CONFIG --modversion gdk-pixbuf-2.0 2>/dev/null`], + 2, 0, 0, + [have_gdkpixbuf="yes"; have_gtk2="yes"], + [have_gdkpixbuf="no"; have_gtk2="no"]) + fi + if test x"$with_gdkpixbuf" = xyes; then + if test x"$have_gdkpixbuf" = xno; then + AC_W3M_CHECK_VER([GdkPixbuf], [`$GDKPIXBUF_CONFIG --version 2>/dev/null`], 0, 16, 0, [have_gdkpixbuf="yes"], [have_gdkpixbuf="no"]) + fi fi if test x"$with_imlib" = xyes; then AC_W3M_CHECK_VER([Imlib], @@ -671,46 +689,64 @@ AC_DEFUN([AC_W3M_IMAGE], [have_imlib2="no"]) fi if test x"$x11" = xyes; then - if test x"$have_gdkpixbuf" = xyes; then + if test x"$have_gtk2" = xyes; then AC_DEFINE(USE_W3MIMG_X11) + IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" AC_DEFINE(USE_GDKPIXBUF) + AC_DEFINE(USE_GTK2) + IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" + IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" + elif test x"$have_gdkpixbuf" = xyes; then + AC_DEFINE(USE_W3MIMG_X11) IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" + AC_DEFINE(USE_GDKPIXBUF) IMGX11CFLAGS="`${GDKPIXBUF_CONFIG} --cflags`" IMGX11LDFLAGS="`${GDKPIXBUF_CONFIG} --libs` -lgdk_pixbuf_xlib" - IMGTARGETS="x11" elif test x"$have_imlib" = xyes; then AC_DEFINE(USE_W3MIMG_X11) - AC_DEFINE(USE_IMLIB) IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" + AC_DEFINE(USE_IMLIB) IMGX11CFLAGS="`${IMLIB_CONFIG} --cflags`" IMGX11LDFLAGS="`${IMLIB_CONFIG} --libs`" IMGTARGETS="x11" elif test x"$have_imlib2" = xyes; then AC_DEFINE(USE_W3MIMG_X11) - AC_DEFINE(USE_IMLIB2) IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" + AC_DEFINE(USE_IMLIB2) IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`" IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`" - IMGTARGETS="x11" else AC_MSG_WARN([unable to build w3mimgdisplay with X11 support]) fi fi if test x"$fb" = xyes; then - if test x"$have_gdkpixbuf" = xyes; then + if test x"$have_gtk2" = xyes; then AC_DEFINE(USE_W3MIMG_FB) + IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" AC_DEFINE(USE_GDKPIXBUF) + AC_DEFINE(USE_GTK2) + IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" + elif test x"$have_gdkpixbuf" = xyes; then + AC_DEFINE(USE_W3MIMG_FB) IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" + AC_DEFINE(USE_GDKPIXBUF) IMGFBCFLAGS="`${GDKPIXBUF_CONFIG} --cflags`" IMGFBLDFLAGS="`${GDKPIXBUF_CONFIG} --libs`" - IMGTARGETS="${IMGTARGETS} fb" elif test x"$have_imlib2" = xyes; then AC_DEFINE(USE_W3MIMG_FB) + IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" AC_DEFINE(USE_IMLIB2) IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`" IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`" - IMGTARGETS="${IMGTARGETS} fb" else AC_MSG_WARN([unable to build w3mimgdisplay with FB support]) fi diff --git a/aclocal.m4 b/aclocal.m4 @@ -585,6 +585,7 @@ AC_DEFUN([AC_W3M_IMAGE], INSTALL_W3MIMGDISPLAY='${INSTALL_PROGRAM}' AC_DEFINE(INSTALL_W3MIMGDISPLAY, $INSTALL_W3MIMGDISPLAY) AC_SUBST(USE_GDKPIXBUF) + AC_SUBST(USE_GTK2) AC_SUBST(USE_IMLIB) AC_SUBST(USE_IMLIB2) AC_SUBST(IMGTARGETS) @@ -630,16 +631,17 @@ AC_DEFUN([AC_W3M_IMAGE], AC_ARG_WITH(imagelib, [ --with-imagelib=IMAGELIBS image library IMAGELIBS may be space separeted list of: - gdk-pixbuf imlib imlib2],, + gtk2 gdk-pixbuf imlib imlib2],, [with_imagelib="yes"]) if test x"$with_imagelib" = xyes; then - with_imagelib="gdk-pixbuf imlib imlib2" + with_imagelib="gtk2 gdk-pixbuf imlib imlib2" fi AC_MSG_RESULT($with_imagelib) with_imlib=no with_imlib2=no with_gdkpixbuf=no + with_gtk2=no for imagelib in $with_imagelib do case "$imagelib" in @@ -658,15 +660,31 @@ AC_DEFUN([AC_W3M_IMAGE], if test x"$GDKPIXBUF_CONFIG" = x; then GDKPIXBUF_CONFIG=gdk-pixbuf-config fi;; + gtk2) + with_gtk2="yes" + if test x"$PKG_CONFIG" = x; then + PKG_CONFIG=pkg-config + else + PKG_CONFIG=: + fi;; esac done IMGTARGETS="" - if test x"$with_gdkpixbuf" = xyes; then + if test x"$with_gtk2" = xyes; then AC_W3M_CHECK_VER([GdkPixbuf], + [`$PKG_CONFIG --modversion gdk-pixbuf-2.0 2>/dev/null`], + 2, 0, 0, + [have_gdkpixbuf="yes"; have_gtk2="yes"], + [have_gdkpixbuf="no"; have_gtk2="no"]) + fi + if test x"$with_gdkpixbuf" = xyes; then + if test x"$have_gdkpixbuf" = xno; then + AC_W3M_CHECK_VER([GdkPixbuf], [`$GDKPIXBUF_CONFIG --version 2>/dev/null`], 0, 16, 0, [have_gdkpixbuf="yes"], [have_gdkpixbuf="no"]) + fi fi if test x"$with_imlib" = xyes; then AC_W3M_CHECK_VER([Imlib], @@ -683,46 +701,64 @@ AC_DEFUN([AC_W3M_IMAGE], [have_imlib2="no"]) fi if test x"$x11" = xyes; then - if test x"$have_gdkpixbuf" = xyes; then + if test x"$have_gtk2" = xyes; then AC_DEFINE(USE_W3MIMG_X11) + IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" AC_DEFINE(USE_GDKPIXBUF) + AC_DEFINE(USE_GTK2) + IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" + IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" + elif test x"$have_gdkpixbuf" = xyes; then + AC_DEFINE(USE_W3MIMG_X11) IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" + AC_DEFINE(USE_GDKPIXBUF) IMGX11CFLAGS="`${GDKPIXBUF_CONFIG} --cflags`" IMGX11LDFLAGS="`${GDKPIXBUF_CONFIG} --libs` -lgdk_pixbuf_xlib" - IMGTARGETS="x11" elif test x"$have_imlib" = xyes; then AC_DEFINE(USE_W3MIMG_X11) - AC_DEFINE(USE_IMLIB) IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" + AC_DEFINE(USE_IMLIB) IMGX11CFLAGS="`${IMLIB_CONFIG} --cflags`" IMGX11LDFLAGS="`${IMLIB_CONFIG} --libs`" IMGTARGETS="x11" elif test x"$have_imlib2" = xyes; then AC_DEFINE(USE_W3MIMG_X11) - AC_DEFINE(USE_IMLIB2) IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" + AC_DEFINE(USE_IMLIB2) IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`" IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`" - IMGTARGETS="x11" else AC_MSG_WARN([unable to build w3mimgdisplay with X11 support]) fi fi if test x"$fb" = xyes; then - if test x"$have_gdkpixbuf" = xyes; then + if test x"$have_gtk2" = xyes; then AC_DEFINE(USE_W3MIMG_FB) + IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" AC_DEFINE(USE_GDKPIXBUF) + AC_DEFINE(USE_GTK2) + IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" + elif test x"$have_gdkpixbuf" = xyes; then + AC_DEFINE(USE_W3MIMG_FB) IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" + AC_DEFINE(USE_GDKPIXBUF) IMGFBCFLAGS="`${GDKPIXBUF_CONFIG} --cflags`" IMGFBLDFLAGS="`${GDKPIXBUF_CONFIG} --libs`" - IMGTARGETS="${IMGTARGETS} fb" elif test x"$have_imlib2" = xyes; then AC_DEFINE(USE_W3MIMG_FB) + IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" AC_DEFINE(USE_IMLIB2) IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`" IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`" - IMGTARGETS="${IMGTARGETS} fb" else AC_MSG_WARN([unable to build w3mimgdisplay with FB support]) fi diff --git a/config.guess b/config.guess @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2003-01-10' +timestamp='2004-03-12' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -106,6 +106,7 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; @@ -196,12 +197,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; + amd64:OpenBSD:*:*) + echo x86_64-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + cats:OpenBSD:*:*) + echo arm-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; @@ -220,6 +227,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + pegasos:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; @@ -235,73 +245,70 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - *:MicroBSD:*:*) - echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE} + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit 0 ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - eval $set_cc_for_build - cat <<EOF >$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null - if test "$?" = 0 ; then - case `$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - 2-1307) - UNAME_MACHINE="alphaev68" - ;; - 3-1307) - UNAME_MACHINE="alphaev7" - ;; - esac - fi - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha*:OpenVMS:*:*) + echo alpha-hp-vms exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? @@ -324,6 +331,9 @@ EOF *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; @@ -341,6 +351,9 @@ EOF NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; @@ -413,6 +426,9 @@ EOF *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; @@ -748,7 +764,7 @@ EOF echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` @@ -756,6 +772,11 @@ EOF FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; @@ -777,7 +798,10 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + # GNU/KFreeBSD systems have a "k" prefix to indicate we are using + # FreeBSD's kernel, but not the complete OS. + case ${LIBC} in gnu) kernel_only='k' ;; esac + echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -788,8 +812,8 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; - x86:Interix*:3*) - echo i586-pc-interix3 + x86:Interix*:[34]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks @@ -810,17 +834,28 @@ EOF echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; @@ -896,6 +931,9 @@ EOF s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; @@ -953,6 +991,9 @@ EOF LIBC=gnuaout #endif #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 @@ -983,6 +1024,9 @@ EOF i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; @@ -1054,7 +1098,7 @@ EOF exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` @@ -1169,7 +1213,7 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) @@ -1210,6 +1254,12 @@ EOF *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit 0 ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff --git a/config.h.in b/config.h.in @@ -72,6 +72,7 @@ #undef W3MIMGDISPLAY_SETUID #undef USE_IMLIB #undef USE_GDKPIXBUF +#undef USE_GTK2 #undef USE_IMLIB2 #undef USE_XFACE #undef USE_DICT diff --git a/config.sub b/config.sub @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2003-01-03' +timestamp='2004-03-12' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -118,7 +118,8 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ + kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -228,14 +229,15 @@ case $basic_machine in | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | clipper \ + | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ + | ip2k | iq2000 \ + | m32r | m32rle | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -247,6 +249,7 @@ case $basic_machine in | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ @@ -257,11 +260,11 @@ case $basic_machine in | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ - | tahoe | thumb | tic80 | tron \ + | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ @@ -296,7 +299,7 @@ case $basic_machine in | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ @@ -304,8 +307,8 @@ case $basic_machine in | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ + | ip2k-* | iq2000-* \ + | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ @@ -319,6 +322,7 @@ case $basic_machine in | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ @@ -329,11 +333,13 @@ case $basic_machine in | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ @@ -357,6 +363,9 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -371,6 +380,12 @@ case $basic_machine in basic_machine=a29k-none os=-bsd ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -430,12 +445,20 @@ case $basic_machine in basic_machine=j90-cray os=-unicos ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -735,6 +758,10 @@ case $basic_machine in basic_machine=or32-unknown os=-coff ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose @@ -766,18 +793,24 @@ case $basic_machine in pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; - pentiumii | pentium2) + pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; + pentium4) + basic_machine=i786-pc + ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumii-* | pentium2-*) + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pn) basic_machine=pn-gould ;; @@ -836,6 +869,10 @@ case $basic_machine in sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; sequent) basic_machine=i386-sequent ;; @@ -843,6 +880,9 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; + sh64) + basic_machine=sh64-unknown + ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks @@ -917,14 +957,18 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -938,6 +982,10 @@ case $basic_machine in tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -1027,13 +1075,13 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) @@ -1106,19 +1154,20 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -microbsd*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1142,6 +1191,9 @@ case $os in -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -1154,6 +1206,9 @@ case $os in -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1175,6 +1230,9 @@ case $os in -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; @@ -1197,6 +1255,9 @@ case $os in -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1227,6 +1288,12 @@ case $os in -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; -none) ;; *) @@ -1258,6 +1325,9 @@ case $basic_machine in arm*-semi) os=-aout ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1436,9 +1506,15 @@ case $basic_machine in -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; diff --git a/configure b/configure @@ -310,7 +310,7 @@ ac_includes_default="\ # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION W3M W3M_LANG AWK CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SET_MAKE RANLIB ac_ct_RANLIB PERL NKF MAN build build_cpu build_vendor build_os host host_cpu host_vendor host_os W3M_TARGET W3M_LIBS USE_M17N USE_UNICODE WCTARGET WCCFLAGS DISPLAY_CHARSET SYSTEM_CHARSET DOCUMENT_CHARSET POSUBST POLANG MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB INTLTARGET NLSTARGET USE_COLOR USE_ANSI_COLOR USE_BG_COLOR USE_IMAGE USE_W3MIMG_X11 USE_W3MIMG_FB W3MIMGDISPLAY_SETUID INSTALL_W3MIMGDISPLAY USE_GDKPIXBUF USE_IMLIB USE_IMLIB2 IMGTARGETS IMGOBJS IMGX11CFLAGS IMGX11LDFLAGS IMGFBCFLAGS IMGFBLDFLAGS USE_XFACE uncompface KEYMAP_FILE HELP_FILE KEYBIND USE_MENU USE_MOUSE USE_HISTORY USE_ALARM USE_COOKIE USE_DIGEST_AUTH USE_NNTP USE_GOPHER USE_DICT USE_HELP_CGI USE_EXTERNAL_URI_LOADER USE_W3MMAILER USE_MIGEMO DEF_MIGEMO_COMMAND DEF_EDITOR DEF_MAILER DEF_EXT_BROWSER INET6 HAVE_OLD_SS_FAMILY USE_SSL USE_SSL_VERIFY PKG_CONFIG SSL_CFLAGS SSL_LIBS USE_W3M USE_SYSMOUSE AUXBIN_TARGETS EGREP USE_BINMODE_STREAM HAVE_SYS_ERRLIST HAVE_SIGSETJMP RETSIGTYPE SIGNAL_RETURN HELP_DIR RC_DIR DOCDIRS CURRENT_VERSION LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION W3M W3M_LANG AWK CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SET_MAKE RANLIB ac_ct_RANLIB PERL NKF MAN build build_cpu build_vendor build_os host host_cpu host_vendor host_os W3M_TARGET W3M_LIBS USE_M17N USE_UNICODE WCTARGET WCCFLAGS DISPLAY_CHARSET SYSTEM_CHARSET DOCUMENT_CHARSET POSUBST POLANG MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB INTLTARGET NLSTARGET USE_COLOR USE_ANSI_COLOR USE_BG_COLOR USE_IMAGE USE_W3MIMG_X11 USE_W3MIMG_FB W3MIMGDISPLAY_SETUID INSTALL_W3MIMGDISPLAY USE_GDKPIXBUF USE_GTK2 USE_IMLIB USE_IMLIB2 IMGTARGETS IMGOBJS IMGX11CFLAGS IMGX11LDFLAGS IMGFBCFLAGS IMGFBLDFLAGS USE_XFACE uncompface KEYMAP_FILE HELP_FILE KEYBIND USE_MENU USE_MOUSE USE_HISTORY USE_ALARM USE_COOKIE USE_DIGEST_AUTH USE_NNTP USE_GOPHER USE_DICT USE_HELP_CGI USE_EXTERNAL_URI_LOADER USE_W3MMAILER USE_MIGEMO DEF_MIGEMO_COMMAND DEF_EDITOR DEF_MAILER DEF_EXT_BROWSER INET6 HAVE_OLD_SS_FAMILY USE_SSL USE_SSL_VERIFY PKG_CONFIG SSL_CFLAGS SSL_LIBS USE_W3M USE_SYSMOUSE AUXBIN_TARGETS EGREP USE_BINMODE_STREAM HAVE_SYS_ERRLIST HAVE_SIGSETJMP RETSIGTYPE SIGNAL_RETURN HELP_DIR RC_DIR DOCDIRS CURRENT_VERSION LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -888,7 +888,7 @@ Optional Packages: --without-libintl-prefix don't search for libintl in includedir and libdir --with-imagelib=IMAGELIBS image library IMAGELIBS may be space separeted list of: - gdk-pixbuf imlib imlib2 + gtk2 gdk-pixbuf imlib imlib2 --with-migemo=MIGEMO_COMMAND migemo command --with-editor=EDITOR default editor (/usr/bin/vi) --with-mailer=MAILER default mailer (/usr/bin/mail) @@ -4982,6 +4982,7 @@ _ACEOF + echo "$as_me:$LINENO: checking if image is enabled" >&5 echo $ECHO_N "checking if image is enabled... $ECHO_C" >&6 # Check whether --enable-image or --disable-image was given. @@ -5038,13 +5039,14 @@ else with_imagelib="yes" fi; if test x"$with_imagelib" = xyes; then - with_imagelib="gdk-pixbuf imlib imlib2" + with_imagelib="gtk2 gdk-pixbuf imlib imlib2" fi echo "$as_me:$LINENO: result: $with_imagelib" >&5 echo "${ECHO_T}$with_imagelib" >&6 with_imlib=no with_imlib2=no with_gdkpixbuf=no + with_gtk2=no for imagelib in $with_imagelib do case "$imagelib" in @@ -5063,11 +5065,40 @@ echo "${ECHO_T}$with_imagelib" >&6 if test x"$GDKPIXBUF_CONFIG" = x; then GDKPIXBUF_CONFIG=gdk-pixbuf-config fi;; + gtk2) + with_gtk2="yes" + if test x"$PKG_CONFIG" = x; then + PKG_CONFIG=pkg-config + else + PKG_CONFIG=: + fi;; esac done IMGTARGETS="" + if test x"$with_gtk2" = xyes; then + version="`$PKG_CONFIG --modversion gdk-pixbuf-2.0 2>/dev/null`" + if test x"$version" != x; then + echo "$as_me:$LINENO: checking GdkPixbuf version" >&5 +echo $ECHO_N "checking GdkPixbuf version... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $version" >&5 +echo "${ECHO_T}$version" >&6 + set -- `echo "$version" | sed 's/[^0-9]/ /g'` + if test "$1" -ne "2" -o "$2" -lt "0" || test "$2" -eq "0" -a "$3" -lt "0"; then + { echo "$as_me:$LINENO: WARNING: GdkPixbuf is too old. Install GdkPixbuf (version >= 2.0.0)" >&5 +echo "$as_me: WARNING: GdkPixbuf is too old. Install GdkPixbuf (version >= 2.0.0)" >&2;} + have_gdkpixbuf="no"; have_gtk2="no" + else + have_gdkpixbuf="yes"; have_gtk2="yes" + fi + else + { echo "$as_me:$LINENO: WARNING: GdkPixbuf is not installed. Install GdkPixbuf (version >= 2.0.0)" >&5 +echo "$as_me: WARNING: GdkPixbuf is not installed. Install GdkPixbuf (version >= 2.0.0)" >&2;} + have_gdkpixbuf="no"; have_gtk2="no" + fi + fi if test x"$with_gdkpixbuf" = xyes; then - version="`$GDKPIXBUF_CONFIG --version 2>/dev/null`" + if test x"$have_gdkpixbuf" = xno; then + version="`$GDKPIXBUF_CONFIG --version 2>/dev/null`" if test x"$version" != x; then echo "$as_me:$LINENO: checking GdkPixbuf version" >&5 echo $ECHO_N "checking GdkPixbuf version... $ECHO_C" >&6 @@ -5086,6 +5117,7 @@ echo "$as_me: WARNING: GdkPixbuf is too old. Install GdkPixbuf (version >= 0.16. echo "$as_me: WARNING: GdkPixbuf is not installed. Install GdkPixbuf (version >= 0.16.0)" >&2;} have_gdkpixbuf="no" fi + fi fi if test x"$with_imlib" = xyes; then version="`$IMLIB_CONFIG --version 2>/dev/null`" @@ -5130,29 +5162,47 @@ echo "$as_me: WARNING: Imlib2 is not installed. Install Imlib2 (version >= 1.0. fi fi if test x"$x11" = xyes; then - if test x"$have_gdkpixbuf" = xyes; then + if test x"$have_gtk2" = xyes; then cat >>confdefs.h <<\_ACEOF #define USE_W3MIMG_X11 1 _ACEOF + IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" cat >>confdefs.h <<\_ACEOF #define USE_GDKPIXBUF 1 _ACEOF + cat >>confdefs.h <<\_ACEOF +#define USE_GTK2 1 +_ACEOF + + IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" + IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" + elif test x"$have_gdkpixbuf" = xyes; then + cat >>confdefs.h <<\_ACEOF +#define USE_W3MIMG_X11 1 +_ACEOF + IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" + cat >>confdefs.h <<\_ACEOF +#define USE_GDKPIXBUF 1 +_ACEOF + IMGX11CFLAGS="`${GDKPIXBUF_CONFIG} --cflags`" IMGX11LDFLAGS="`${GDKPIXBUF_CONFIG} --libs` -lgdk_pixbuf_xlib" - IMGTARGETS="x11" elif test x"$have_imlib" = xyes; then cat >>confdefs.h <<\_ACEOF #define USE_W3MIMG_X11 1 _ACEOF + IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" cat >>confdefs.h <<\_ACEOF #define USE_IMLIB 1 _ACEOF - IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" IMGX11CFLAGS="`${IMLIB_CONFIG} --cflags`" IMGX11LDFLAGS="`${IMLIB_CONFIG} --libs`" IMGTARGETS="x11" @@ -5161,38 +5211,57 @@ _ACEOF #define USE_W3MIMG_X11 1 _ACEOF + IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" + IMGTARGETS="x11" cat >>confdefs.h <<\_ACEOF #define USE_IMLIB2 1 _ACEOF - IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`" IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`" - IMGTARGETS="x11" else { echo "$as_me:$LINENO: WARNING: unable to build w3mimgdisplay with X11 support" >&5 echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;} fi fi if test x"$fb" = xyes; then - if test x"$have_gdkpixbuf" = xyes; then + if test x"$have_gtk2" = xyes; then cat >>confdefs.h <<\_ACEOF #define USE_W3MIMG_FB 1 _ACEOF + IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" cat >>confdefs.h <<\_ACEOF #define USE_GDKPIXBUF 1 _ACEOF + cat >>confdefs.h <<\_ACEOF +#define USE_GTK2 1 +_ACEOF + + IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" + elif test x"$have_gdkpixbuf" = xyes; then + cat >>confdefs.h <<\_ACEOF +#define USE_W3MIMG_FB 1 +_ACEOF + IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" + cat >>confdefs.h <<\_ACEOF +#define USE_GDKPIXBUF 1 +_ACEOF + IMGFBCFLAGS="`${GDKPIXBUF_CONFIG} --cflags`" IMGFBLDFLAGS="`${GDKPIXBUF_CONFIG} --libs`" - IMGTARGETS="${IMGTARGETS} fb" elif test x"$have_imlib2" = xyes; then cat >>confdefs.h <<\_ACEOF #define USE_W3MIMG_FB 1 _ACEOF + IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGTARGETS="${IMGTARGETS} fb" cat >>confdefs.h <<\_ACEOF #define USE_IMLIB2 1 _ACEOF @@ -5200,7 +5269,6 @@ _ACEOF IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`" IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`" - IMGTARGETS="${IMGTARGETS} fb" else { echo "$as_me:$LINENO: WARNING: unable to build w3mimgdisplay with FB support" >&5 echo "$as_me: WARNING: unable to build w3mimgdisplay with FB support" >&2;} @@ -10864,6 +10932,7 @@ s,@USE_W3MIMG_FB@,$USE_W3MIMG_FB,;t t s,@W3MIMGDISPLAY_SETUID@,$W3MIMGDISPLAY_SETUID,;t t s,@INSTALL_W3MIMGDISPLAY@,$INSTALL_W3MIMGDISPLAY,;t t s,@USE_GDKPIXBUF@,$USE_GDKPIXBUF,;t t +s,@USE_GTK2@,$USE_GTK2,;t t s,@USE_IMLIB@,$USE_IMLIB,;t t s,@USE_IMLIB2@,$USE_IMLIB2,;t t s,@IMGTARGETS@,$IMGTARGETS,;t t diff --git a/w3mimg/fb/fb_gdkpixbuf.c b/w3mimg/fb/fb_gdkpixbuf.c @@ -3,6 +3,11 @@ fb_gdkpixbuf.c 0.3 Copyright (C) 2002, hito **************************************************************************/ +#include "config.h" +#if defined(USE_GTK2) +#include <glib-object.h> +#include <gdk/gdk.h> +#endif #include <gdk-pixbuf/gdk-pixbuf.h> #include "fb.h" #include "fb_img.h" @@ -11,7 +16,33 @@ static void draw(FB_IMAGE * img, int bg, int x, int y, int w, int h, GdkPixbuf * pixbuf); static GdkPixbuf *resize_image(GdkPixbuf * pixbuf, int width, int height); -static void +#if defined(USE_GTK2) +static int +get_animation_size(GdkPixbufAnimation * animation, int *w, int *h, int *delay) +{ + GdkPixbufAnimationIter *iter; + int iw, ih, n, i, d = -1; + + iter = gdk_pixbuf_animation_get_iter(animation, NULL); + *w = gdk_pixbuf_animation_get_width(animation); + *h = gdk_pixbuf_animation_get_height(animation); + for (i = 1; + gdk_pixbuf_animation_iter_on_currently_loading_frame(iter) != TRUE; + i++) { + int tmp; + tmp = gdk_pixbuf_animation_iter_get_delay_time(iter); + if (tmp > d) + d = tmp; + gdk_pixbuf_animation_iter_advance(iter, NULL); + } + if (delay) + *delay = d; + n = i; + g_object_unref(G_OBJECT(iter)); + return n; +} +#else +static int get_animation_size(GdkPixbufAnimation * animation, int *w, int *h, int *delay) { GList *frames; @@ -42,6 +73,16 @@ get_animation_size(GdkPixbufAnimation * animation, int *w, int *h, int *delay) } if (delay) *delay = d; + return n; +} +#endif + +void +fb_image_init() +{ +#if defined(USE_GTK2) + g_type_init(); +#endif } int @@ -50,11 +91,19 @@ get_image_size(char *filename, int *w, int *h) GdkPixbufAnimation *animation; if (filename == NULL) return 1; +#if defined(USE_GTK2) + animation = gdk_pixbuf_animation_new_from_file(filename, NULL); +#else animation = gdk_pixbuf_animation_new_from_file(filename); +#endif if (animation == NULL) return 1; get_animation_size(animation, w, h, NULL); +#if defined(USE_GTK2) + g_object_unref(G_OBJECT(animation)); +#else gdk_pixbuf_animation_unref(animation); +#endif return 0; } @@ -62,19 +111,25 @@ FB_IMAGE ** fb_image_load(char *filename, int w, int h, int max_anim) { GdkPixbufAnimation *animation; +#if defined(USE_GTK2) + GdkPixbufAnimationIter *iter; +#else GList *frames; +#endif double ratio_w, ratio_h; int n, i, j, fw, fh, frame_num, delay; FB_IMAGE **fb_frame = NULL, *tmp_image = NULL; if (filename == NULL) return NULL; +#if defined(USE_GTK2) + animation = gdk_pixbuf_animation_new_from_file(filename, NULL); +#else animation = gdk_pixbuf_animation_new_from_file(filename); +#endif if (animation == NULL) return NULL; - frames = gdk_pixbuf_animation_get_frames(animation); - get_animation_size(animation, &fw, &fh, &delay); - frame_num = n = gdk_pixbuf_animation_get_num_frames(animation); + frame_num = n = get_animation_size(animation, &fw, &fh, &delay); if (delay <= 0) max_anim = -1; if (max_anim < 0) { @@ -108,6 +163,46 @@ fb_image_load(char *filename, int w, int h, int max_anim) fb_image_fill(tmp_image, bg_r, bg_g, bg_b); } +#if defined(USE_GTK2) + iter = gdk_pixbuf_animation_get_iter(animation, NULL); + + for (j = 0; j < n; j++) { + GdkPixbuf *org_pixbuf, *pixbuf; + int width, height; + + if (max_anim < 0) { + i = (j - n + frame_num > 0) ? (j - n + frame_num) : 0; + } + else { + i = j; + } + + if (gdk_pixbuf_animation_iter_on_currently_loading_frame(iter)) { + g_object_unref(G_OBJECT(iter)); + iter = gdk_pixbuf_animation_get_iter(animation, NULL); + } + org_pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(iter); + width = gdk_pixbuf_get_width(org_pixbuf); + height = gdk_pixbuf_get_height(org_pixbuf); + if (width == fw && height == fh) { + pixbuf = resize_image(org_pixbuf, w, h); + } else { + pixbuf = resize_image(org_pixbuf, width * ratio_w, height * ratio_h); + } + width = gdk_pixbuf_get_width(pixbuf); + height = gdk_pixbuf_get_height(pixbuf); + + fb_frame[i]->delay = gdk_pixbuf_animation_iter_get_delay_time(iter); + fb_image_copy(fb_frame[i], tmp_image); + draw(fb_frame[i], !i, 0, 0, width, height, pixbuf); + fb_image_copy(tmp_image, fb_frame[0]); /* ??? default */ + if (org_pixbuf != pixbuf) + g_object_unref(G_OBJECT(pixbuf)); + gdk_pixbuf_animation_iter_advance(iter, NULL); + } +#else + frames = gdk_pixbuf_animation_get_frames(animation); + for (j = 0; j < n; j++) { GdkPixbufFrame *frame; GdkPixbuf *org_pixbuf, *pixbuf; @@ -157,10 +252,15 @@ fb_image_load(char *filename, int w, int h, int max_anim) if (org_pixbuf != pixbuf) gdk_pixbuf_finalize(pixbuf); } +#endif END: if (tmp_image) fb_image_free(tmp_image); +#if defined(USE_GTK2) + g_object_unref(G_OBJECT(animation)); +#else gdk_pixbuf_animation_unref(animation); +#endif return fb_frame; } static void diff --git a/w3mimg/fb/fb_img.h b/w3mimg/fb/fb_img.h @@ -3,6 +3,7 @@ #define fb_img_header #include "fb.h" +void fb_image_init(); FB_IMAGE **fb_image_load(char *filename, int w, int h, int n); void fb_image_set_bg(int r, int g, int b); int fb_image_clear(int x, int y, int w, int h); diff --git a/w3mimg/fb/fb_imlib2.c b/w3mimg/fb/fb_imlib2.c @@ -11,6 +11,12 @@ static void draw(FB_IMAGE * img, Imlib_Image image); static Imlib_Image resize_image(Imlib_Image image, int width, int height); +void +fb_image_init() +{ + return; +} + int get_image_size(char *filename, int *w, int *h) { diff --git a/w3mimg/fb/fb_w3mimg.c b/w3mimg/fb/fb_w3mimg.c @@ -17,6 +17,7 @@ w3mfb_init(w3mimg_op * self) { if (self == NULL) return 0; + /* XXX */ return 1; } @@ -195,6 +196,9 @@ w3mimg_fbopen() wop->free_image = w3mfb_free_image; wop->get_image_size = w3mfb_get_image_size; + /* XXX */ + fb_image_init(); + return wop; error: free(wop); diff --git a/w3mimg/x11/x11_w3mimg.c b/w3mimg/x11/x11_w3mimg.c @@ -1,6 +1,7 @@ /* $Id$ */ #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <ctype.h> #include "config.h" @@ -11,7 +12,13 @@ #include <X11/Xutil.h> #include <Imlib2.h> #elif defined(USE_GDKPIXBUF) +#if defined(USE_GTK2) +#include <glib-object.h> +#include <gdk/gdk.h> +#include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h> +#else #include <gdk-pixbuf/gdk-pixbuf-xlib.h> +#endif #else #error no Imlib and GdkPixbuf support #endif @@ -42,7 +49,33 @@ struct x11_image { Pixmap *pixmap; }; -static void +#if defined(USE_GTK2) +static int +get_animation_size(GdkPixbufAnimation * animation, int *w, int *h, int *delay) +{ + GdkPixbufAnimationIter *iter; + int n, i, d = -1; + + iter = gdk_pixbuf_animation_get_iter(animation, NULL); + *w = gdk_pixbuf_animation_get_width(animation); + *h = gdk_pixbuf_animation_get_height(animation); + for (i = 1; + gdk_pixbuf_animation_iter_on_currently_loading_frame(iter) != TRUE; + i++) { + int tmp; + tmp = gdk_pixbuf_animation_iter_get_delay_time(iter); + if (tmp > d) + d = tmp; + gdk_pixbuf_animation_iter_advance(iter, NULL); + } + if (delay) + *delay = d; + g_object_unref(G_OBJECT(iter)); + n = i; + return n; +} +#else +static int get_animation_size(GdkPixbufAnimation * animation, int *w, int *h, int *delay) { GList *frames; @@ -74,7 +107,7 @@ get_animation_size(GdkPixbufAnimation * animation, int *w, int *h, int *delay) if (delay) *delay = d; } - +#endif #endif static int @@ -94,6 +127,9 @@ x11_init(w3mimg_op * self) } #elif defined(USE_GDKPIXBUF) if (!xi->init_flag) { +#if defined(USE_GTK2) + g_type_init(); +#endif gdk_pixbuf_xlib_init(xi->display, 0); xi->init_flag = TRUE; } @@ -290,11 +326,15 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) Imlib_Image im; #elif defined(USE_GDKPIXBUF) GdkPixbufAnimation *animation; - GList *frames; - int i, j, iw, ih, n, frame_num, delay, max_anim; + int i, j, iw, ih, n, frame_num, delay = -1, max_anim; double ratio_w, ratio_h; struct x11_image *ximg; Pixmap tmp_pixmap; +#if defined(USE_GTK2) + GdkPixbufAnimationIter *iter; +#else + GList *frames; +#endif #endif if (self == NULL) @@ -342,13 +382,14 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) imlib_free_image(); #elif defined(USE_GDKPIXBUF) max_anim = self->max_anim; +#if defined(USE_GTK2) + animation = gdk_pixbuf_animation_new_from_file(fname, NULL); +#else animation = gdk_pixbuf_animation_new_from_file(fname); +#endif if (!animation) return 0; - frames = gdk_pixbuf_animation_get_frames(animation); - frame_num = n = gdk_pixbuf_animation_get_num_frames(animation); - - get_animation_size(animation, &iw, &ih, &delay); + frame_num = n = get_animation_size(animation, &iw, &ih, &delay); if (delay <= 0) max_anim = -1; @@ -370,17 +411,83 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) } tmp_pixmap = XCreatePixmap(xi->display, xi->parent, w, h, DefaultDepth(xi->display, 0)); + XSetForeground(xi->display, xi->imageGC, xi->background_pixel); XFillRectangle(xi->display, (Pixmap) tmp_pixmap, xi->imageGC, 0, 0, w, h); if (!tmp_pixmap) { +#if defined(USE_GTK2) + g_object_unref(G_OBJECT(animation)); +#else gdk_pixbuf_animation_unref(animation); +#endif return 0; } ximg = x11_img_new(xi, w, h, frame_num); if (!ximg) { XFreePixmap(xi->display, tmp_pixmap); +#if defined(USE_GTK2) + g_object_unref(G_OBJECT(animation)); +#else gdk_pixbuf_animation_unref(animation); +#endif return 0; } +#if defined(USE_GTK2) + iter = gdk_pixbuf_animation_get_iter(animation, NULL); + + for (j = 0; j < n; j++) { + GdkPixbuf *org_pixbuf, *pixbuf; + int width, height, ofstx = 0, ofsty = 0; + + if (max_anim < 0) { + i = (j - n + frame_num > 0) ? (j - n + frame_num) : 0; + } + else { + i = j; + } + + if (gdk_pixbuf_animation_iter_on_currently_loading_frame(iter)) { + g_object_unref(G_OBJECT(iter)); + iter = gdk_pixbuf_animation_get_iter(animation, NULL); + } + org_pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(iter); + delay = gdk_pixbuf_animation_iter_get_delay_time(iter); + width = gdk_pixbuf_get_width(org_pixbuf); + height = gdk_pixbuf_get_height(org_pixbuf); + + if (width == w && height == h) { + pixbuf = resize_image(org_pixbuf, w, h); + } + else { + pixbuf = + resize_image(org_pixbuf, width * ratio_w, height * ratio_h); + } + width = gdk_pixbuf_get_width(pixbuf); + height = gdk_pixbuf_get_height(pixbuf); + + if (delay > ximg->delay) + ximg->delay = delay; + + XCopyArea(xi->display, tmp_pixmap, ximg->pixmap[i], + xi->imageGC, 0, 0, w, h, 0, 0); + gdk_pixbuf_xlib_render_to_drawable_alpha(pixbuf, + (Drawable) ximg->pixmap[i], 0, + 0, ofstx, ofsty, width, + height, + GDK_PIXBUF_ALPHA_BILEVEL, 1, + XLIB_RGB_DITHER_NORMAL, 0, 0); + /* XXX */ + XCopyArea(xi->display, ximg->pixmap[0], tmp_pixmap, + xi->imageGC, 0, 0, w, h, 0, 0); + if (org_pixbuf != pixbuf) + g_object_unref(G_OBJECT(pixbuf)); + gdk_pixbuf_animation_iter_advance(iter, NULL); + } + XFreePixmap(xi->display, tmp_pixmap); + g_object_unref(G_OBJECT(animation)); + +#else + frames = gdk_pixbuf_animation_get_frames(animation); + for (j = 0; j < n; j++) { GdkPixbufFrame *frame; GdkPixbuf *org_pixbuf, *pixbuf; @@ -448,6 +555,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) } XFreePixmap(xi->display, tmp_pixmap); gdk_pixbuf_animation_unref(animation); +#endif img->pixmap = ximg; #endif @@ -577,13 +685,21 @@ x11_get_image_size(w3mimg_op * self, W3MImage * img, char *fname, int *w, *h = imlib_image_get_height(); imlib_free_image(); #elif defined(USE_GDKPIXBUF) +#if defined(USE_GTK2) + animation = gdk_pixbuf_animation_new_from_file(fname, NULL); +#else animation = gdk_pixbuf_animation_new_from_file(fname); +#endif if (!animation) return 0; get_animation_size(animation, w, h, NULL); +#if defined(USE_GTK2) + g_object_unref(G_OBJECT(animation)); +#else gdk_pixbuf_animation_unref(animation); #endif +#endif return 1; }