# ChangeLog for x11-wm/sawfish
# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/sawfish/ChangeLog,v 1.62 2006/02/07 10:06:30 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/sawfish/ChangeLog,v 1.63 2006/02/17 14:36:44 agriffis Exp $
+
+*sawfish-1.3.20050816-r1 (17 Feb 2006)
+
+ 17 Feb 2006; Aron Griffis <agriffis@gentoo.org>
+ +files/sawfish-xft-menu-utf8.patch, +sawfish-1.3.20050816-r1.ebuild:
+ Add patch for utf8 rendering with xft #121722
07 Feb 2006; Aron Griffis <agriffis@gentoo.org>
sawfish-1.3.20050816.ebuild:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-MD5 c4aae33570307f2bfeae41ea283879d5 ChangeLog 10037
-RMD160 ea4fc38f3c82d37b388ee48a7be02f32922edf6b ChangeLog 10037
-SHA256 f6e3532949eb27276ad07bdd459d23d0d03ec7806ffc805c990f56bc69e923e7 ChangeLog 10037
+MD5 340fd5b2bf1f787ca2933860827c083a ChangeLog 10247
+RMD160 d98d4b8dff050b31babf95210c660492de83f77a ChangeLog 10247
+SHA256 01a581dc8c186d765f79eb91ace6277036c71d5c33def68f97768a5569c243fd ChangeLog 10247
MD5 caeb1eaaf77305901f5c3bc19f3637d5 files/Sawfish.desktop 449
RMD160 02c133c66b9816d252a8dabc5194483d586189c9 files/Sawfish.desktop 449
SHA256 58e5a5337604b0732484698a3b1ccda847cd2d39725346210113db0ae460f99f files/Sawfish.desktop 449
MD5 228430d4af4d182eca480e98af059875 files/digest-sawfish-1.3.20050816 74
RMD160 a7b8561d81c224df25893a287201782ba2fae05e files/digest-sawfish-1.3.20050816 74
SHA256 107b1f5d81a026c3500153fe041fe681a153d9c9589721d5bea1bddd3e77a395 files/digest-sawfish-1.3.20050816 74
+MD5 6d7e350ed295076a1d0594e3c002aefc files/digest-sawfish-1.3.20050816-r1 268
+RMD160 166266b6b60e33d9b9208a71f758abd4b8287690 files/digest-sawfish-1.3.20050816-r1 268
+SHA256 bfb44f484f8df1fa3ec2a606c7d52d54aa7e495d08f391119f21c8b830e6bfcf files/digest-sawfish-1.3.20050816-r1 268
MD5 e1a647c4cdb92365506d533ac36c7f57 files/libtool.patch 798
RMD160 ce31c467c17f0106abee438271f723c888eec641 files/libtool.patch 798
SHA256 5d2a78d80ce22591c930353be21e359c542d6b241700efac5a38c1c41864c9c2 files/libtool.patch 798
MD5 280d364bfd0878351ebbbcbc62ac19c4 files/sawfish-1.3-state-below.patch 403
RMD160 2ce7541bd8abafd778f55231a9ca4c52dc112798 files/sawfish-1.3-state-below.patch 403
SHA256 0aaca4e9095283ae21be489eb0b8a4af687f907c13db5bcc8c81d2e61cdc941d files/sawfish-1.3-state-below.patch 403
+MD5 b77a24813c32d264f4d1b8faa066b716 files/sawfish-xft-menu-utf8.patch 6130
+RMD160 6ae34f6fd972ddaf7057e363ad7a55bbf2717241 files/sawfish-xft-menu-utf8.patch 6130
+SHA256 2cc54204aa4027cfe0161394e4e486f58c33fec49fc0f6fea33b95ce8503c271 files/sawfish-xft-menu-utf8.patch 6130
MD5 683a44340139387ede0f0a8ec990f6af metadata.xml 252
RMD160 e1e9d40a05f958564b97dce796d3575508fb3b2e metadata.xml 252
SHA256 0db1ac5dbd8480024e1398a144440c9f0b77d5edf03789905ed31ae1d284aaf2 metadata.xml 252
MD5 2dfef4a3fc9332df431ea0b2b06c5ee8 sawfish-1.3.20040120.ebuild 2700
RMD160 6f6bec88aecf37db880df9a0b1761c65221f76b2 sawfish-1.3.20040120.ebuild 2700
SHA256 c7e6f737417198ed515166c3f8086c91034c934778772e273a201bcae7373fc8 sawfish-1.3.20040120.ebuild 2700
+MD5 355b4d28f3c5fe406b2fb5d73144aa64 sawfish-1.3.20050816-r1.ebuild 2919
+RMD160 c6cafc7f1ce4c0cf161ce6c5920e71e9aeeba8ff sawfish-1.3.20050816-r1.ebuild 2919
+SHA256 1bb44f6d608d5d727fadd0da8c8b0a7ef614534057ee62df76bf74a1886bce3e sawfish-1.3.20050816-r1.ebuild 2919
MD5 e03cb873481afd914cfc286f6a085be8 sawfish-1.3.20050816.ebuild 2807
RMD160 1298317baa21f75476995fc3d107499f66de91a8 sawfish-1.3.20050816.ebuild 2807
SHA256 a575e07c1b363eb9f27d000367102ab317bd01ca8a868e9fabfa3634945370f8 sawfish-1.3.20050816.ebuild 2807
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
-iD8DBQFD6HEwJrHF4yAQTrARAkCmAKDBQ7uTHLwJXEK6wO0nrS+UtxcdlgCfW6Hi
-FEWhTYKgxGrnA15NP1nYp7o=
-=geLL
+iD8DBQFD9d+JJrHF4yAQTrARAsYTAJ49c7ZTzTu8iO8R1WGhILd2nBHtzQCdHAF7
+covhUHV6IkAEx954/8tiZo4=
+=mRSA
-----END PGP SIGNATURE-----
--- /dev/null
+MD5 ce418e61e0388e9ab45b06cd68a966df sawfish-1.3.20050816.tar.bz2 1145082
+RMD160 e15e222baa1f1f52f085f4658abc3d8a37d6c8e8 sawfish-1.3.20050816.tar.bz2 1145082
+SHA256 2b4954f1605e985dba5d71fafd57c4d2914bd7e0b19941c3b937915772fc98f3 sawfish-1.3.20050816.tar.bz2 1145082
--- /dev/null
+--- config.h.in 2006-02-05 21:42:27.000000000 -0500
++++ config.h.in 2006-02-05 21:48:46.000000000 -0500
+@@ -151,4 +151,7 @@
+ #undef HAVE_PANGO_X
+ #undef HAVE_PANGO_XFT
+
++/* Define if you have glib */
++#undef HAVE_GLIB
++
+ #endif /* SAWMILL_CONFIG_H */
+--- configure.in 2006-02-05 21:42:27.000000000 -0500
++++ configure.in 2006-02-05 21:48:46.000000000 -0500
+@@ -127,7 +127,14 @@
+
+ CPPFLAGS="${_cppflags}"
+
+-dnl Checks for pango
++dnl Checks for pango. Disabled by default
++
++AC_ARG_WITH(pango,
++ [ --with-pango Enable pango font rendering engine
++ --without-pango], [],
++ [with_pango=no])
++
++if test "${with_pango}" = "yes"; then
+ PKG_CHECK_MODULES(PANGO, pango >= 1.2.0,
+ [if $PKG_CONFIG --exists pangoxft; then
+ AC_DEFINE(HAVE_PANGO_XFT, 1)
+@@ -142,6 +149,7 @@
+ PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_MODULES`
+ PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_MODULES`
+ fi], [: nothing])
++fi
+
+ dnl Check for librep
+ AM_PATH_REP(0.14)
+@@ -247,6 +255,17 @@
+ AC_DEFINE(HAVE_ESD)
+ fi
+
++AC_ARG_WITH(glib,
++ [ --with-glib Use glib for locale -> utf8
++ --without-glib], [], [with_glib=yes])
++
++if test "$with_glib" = "yes"; then
++ PKG_CHECK_MODULES(GLIB, glib-2.0 > 2.0)
++ AC_SUBST(GLIB_LIBS)
++ AC_SUBST(GLIB_CFLAGS)
++ AC_DEFINE(HAVE_GLIB)
++fi
++
+ AC_ARG_ENABLE(capplet,
+ [ --enable-capplet Build the sawfish GNOME capplet [default]
+ --disable-capplet Don't built the capplet], [],
+--- lisp/sawfish/wm/ext/beos-window-menu.jl 2006-02-05 21:42:27.000000000 -0500
++++ lisp/sawfish/wm/ext/beos-window-menu.jl 2006-02-05 21:49:07.000000000 -0500
+@@ -25,6 +25,7 @@
+ (export beos-window-menu)
+
+ (open rep
++ rep.regexp
+ sawfish.wm.windows
+ sawfish.wm.misc
+ sawfish.wm.custom
+@@ -38,9 +39,16 @@
+
+ (define (abbreviate name #!optional len)
+ (unless len (setq len 20))
+- (if (> (length name) len)
+- (concat (substring name 0 len) "...")
+- name))
++ (setq name (locale-to-utf8 name))
++ (let ((namelen (length name)))
++ (let loop ((idx len))
++ (cond ((>= idx namelen)
++ name)
++ ((string-match "[\200-\277]" (substring name idx (1+ idx)))
++ ;; move to utf-8 mbchar boundary
++ (loop (1+ idx)))
++ (t
++ (concat (substring name 0 idx) "..."))))))
+
+ (define (make-label w)
+ (let ((name (window-name w))
+--- src/fonts.c 2006-02-05 21:42:27.000000000 -0500
++++ src/fonts.c 2006-02-05 21:49:22.000000000 -0500
+@@ -42,14 +42,18 @@
+ #include <X11/Xlocale.h>
+ #include <ctype.h>
+
++#ifdef HAVE_GLIB
++# include<glib.h>
++#endif
++
+ #ifdef HAVE_X11_XFT_XFT_H
+ # include <X11/Xft/Xft.h>
+ #else
+ # undef HAVE_PANGO
+ #endif
+
++
+ #ifdef HAVE_PANGO
+-# include <glib.h>
+ # define PANGO_ENABLE_BACKEND
+ # include <pango/pango.h>
+ # undef PANGO_ENABLE_BACKEND
+@@ -364,9 +368,22 @@
+ xft_measure (Lisp_Font *f, u_char *string, size_t length)
+ {
+ XGlyphInfo info;
+-
+- XftTextExtents8 (dpy, f->font, string, length, &info);
+-
++#ifdef HAVE_GLIB
++ gsize r, w;
++ u_char *utf8str;
++ utf8str = g_locale_to_utf8 (string, length, &r, &w, NULL);
++ if (utf8str != NULL){
++ string = utf8str;
++ length = w;
++ }
++
++ XftTextExtentsUtf8 (dpy, f->font, string, length, &info);
++
++ g_free(utf8str);
++#else
++ XftTextExtents8 (dpy, f->font, string, length, &info);
++#endif
++
+ return info.xOff;
+ }
+
+@@ -375,6 +392,10 @@
+ Window id, GC gc, Lisp_Color *fg, int x, int y)
+ {
+ static XftDraw *draw;
++#ifdef HAVE_GLIB
++ gsize r, w;
++ u_char *utf8str;
++#endif
+
+ XftColor xft_color;
+
+@@ -389,8 +410,21 @@
+ xft_color.color.blue = fg->blue;
+ xft_color.color.alpha = fg->alpha;
+
++#ifdef HAVE_GLIB
++ utf8str = g_locale_to_utf8 (string, length, &r, &w, NULL);
++ if (utf8str != NULL){
++ string = utf8str;
++ length = w;
++ }
++
++ XftDrawStringUtf8 (draw, &xft_color, f->font,
++ x, y, string, length);
++ g_free(utf8str);
++#else
+ XftDrawString8 (draw, &xft_color, f->font,
+ x, y, string, length);
++#endif
++
+ }
+
+ static const Lisp_Font_Class xft_class = {
+--- src/functions.c 2006-02-05 21:42:27.000000000 -0500
++++ src/functions.c 2006-02-05 21:49:27.000000000 -0500
+@@ -43,7 +43,9 @@
+ #include "sawmill.h"
+ #include <string.h>
+ #include <X11/Xatom.h>
+-
++#ifdef HAVE_GLIB
++#include <glib.h>
++#endif
+ /* Number of outstanding server grabs made; only when this is zero is
+ the server ungrabbed. */
+ static int server_grabs;
+@@ -1340,6 +1342,37 @@
+ }
+ }
+
++DEFUN("locale-to-utf8", Flocale_to_utf8, Slocale_to_utf8,
++ (repv src), rep_Subr1)
++{
++#ifdef HAVE_GLIB
++ gsize r, w;
++ u_char *utf8str;
++ repv res;
++
++ rep_DECLARE1 (src, rep_STRINGP);
++
++ utf8str = g_locale_to_utf8 (rep_STR (src), -1, &r, &w, NULL);
++ if (utf8str == NULL) {
++ return src;
++ }
++
++ res = rep_make_string (w + 1);
++ if (!res)
++ return rep_mem_error ();
++
++ strncpy (rep_STR (res), utf8str, w);
++ rep_STR (res)[w] = '\0';
++
++ g_free (utf8str);
++ return res;
++#else
++ return src;
++#endif
++}
++
++
++
+ \f
+ /* initialisation */
+
+@@ -1380,6 +1413,7 @@
+ rep_ADD_SUBR(Shead_dimensions);
+ rep_ADD_SUBR(Shead_offset);
+ rep_ADD_SUBR(Sdisplay_message);
++ rep_ADD_SUBR(Slocale_to_utf8);
+ rep_pop_structure (tem);
+
+ tem = rep_push_structure ("sawfish.wm.events");
+--- src/Makefile.in 2006-02-05 21:42:27.000000000 -0500
++++ src/Makefile.in 2006-02-05 21:53:35.000000000 -0500
+@@ -38,14 +38,14 @@
+ sawfish/wm/util/play-sample.la
+ DL_DIRS = sawfish/wm/util
+
+-override CFLAGS := $(CFLAGS) $(REP_CFLAGS) $(IMAGE_CFLAGS) $(X11_CFLAGS) $(ESD_CFLAGS) $(PANGO_CFLAGS)
++override CFLAGS := $(CFLAGS) $(REP_CFLAGS) $(IMAGE_CFLAGS) $(X11_CFLAGS) $(ESD_CFLAGS) $(PANGO_CFLAGS) $(GLIB_CFLAGS)
+
+ all : sawfish libclient.o $(DL_OBJS) .libexec gtk-style
+
+ sawfish : $(OBJS) $(LIBOBJS)
+ $(rep_LIBTOOL) --mode=link --tag=CC $(CC) -export-dynamic $(LDFLAGS) \
+ -o sawfish $(OBJS) $(LIBOBJS) $(REP_LIBS) $(PANGO_LIBS) \
+- $(IMAGE_LIBS) $(X11_LIBS) $(EXTRA_X11_LIBS) $(LIBS)
++ $(IMAGE_LIBS) $(X11_LIBS) $(EXTRA_X11_LIBS) $(LIBS) $(GLIB_LIBS)
+
+ %.la : %.lo
+ $(rep_DL_LD) $(LDFLAGS) -o $@ $<
--- /dev/null
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/sawfish/sawfish-1.3.20050816-r1.ebuild,v 1.1 2006/02/17 14:36:44 agriffis Exp $
+
+# detect cvs snapshots; fex. 1.3.20040120
+[[ $PV == *.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] ]]
+(( snapshot = !$? ))
+
+inherit eutils gnuconfig
+
+DESCRIPTION="Extensible window manager using a Lisp-based scripting language"
+HOMEPAGE="http://sawmill.sourceforge.net/"
+if (( snapshot )); then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+else
+ SRC_URI="mirror://sourceforge/sawmill/${P}.tar.gz"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="gnome esd nls audiofile pango"
+
+DEPEND=">=dev-util/pkgconfig-0.12.0
+ >=x11-libs/rep-gtk-0.17
+ >=dev-libs/librep-0.16
+ >=x11-libs/gtk+-2.0.8
+ audiofile? ( >=media-libs/audiofile-0.2.3 )
+ esd? ( >=media-sound/esound-0.2.23 )
+ nls? ( sys-devel/gettext )"
+RDEPEND="${DEPEND}"
+
+if (( snapshot )); then
+ DEPEND="${DEPEND}
+ sys-devel/automake
+ sys-devel/autoconf"
+ S="${WORKDIR}/${PN}"
+fi
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/libtool.patch"
+ # Fix utf8 with xft #121772
+ epatch "${FILESDIR}/sawfish-xft-menu-utf8.patch"
+ # This is for alpha, but there's no reason to restrict it
+ gnuconfig_update
+}
+
+src_compile() {
+ # Make sure we include freetype2 headers before freetype1 headers,
+ # else Xft2 borks, <azarah@gentoo.org> (13 Dec 2002)
+ export C_INCLUDE_PATH="${C_INCLUDE_PATH}:/usr/include/freetype2"
+ export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:/usr/include/freetype2"
+
+ # If this is a snapshot then we need to create the autoconf stuff
+ if (( snapshot )); then
+ aclocal || die "aclocal failed"
+ autoconf || die "autoconf failed"
+ fi
+
+ set -- \
+ --disable-themer \
+ --with-gdk-pixbuf \
+ $(use_with audiofile) \
+ $(use_with esd) \
+ $(use_with pango)
+
+ if use gnome; then
+ set -- "$@" \
+ --with-gnome-prefix=/usr \
+ --enable-gnome-widgets \
+ --enable-capplet
+ else
+ set -- "$@" \
+ --disable-gnome-widgets \
+ --disable-capplet
+ fi
+
+ if ! use nls; then
+ # Use a space because configure script reads --enable-linguas="" as
+ # "install everything"
+ # Don't use --disable-linguas, because that means --enable-linguas="no",
+ # which means "install Norwegian translations"
+ set -- "$@" --enable-linguas=" "
+ elif [[ "${LINGUAS+set}" == "set" ]]; then
+ strip-linguas -i po
+ set -- "$@" --enable-linguas=" ${LINGUAS} "
+ else
+ set -- "$@" --enable-linguas=""
+ fi
+
+ econf "$@" || die "configure failed"
+
+ # The following two lines allow sawfish to compile with gcc 2.95
+ # (see bug 18294)
+ sed -i -e 's:REP_CFLAGS=:REP_CFLAGS=-I/usr/include/freetype2 :' Makedefs
+
+ # Parallel build doesn't work
+ emake -j1 || die "make failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "make install failed"
+ dodoc AUTHORS BUGS ChangeLog DOC FAQ NEWS README THANKS TODO OPTIONS
+}