rpms/icewm/devel icewm-fribidi.patch,NONE,1.1 icewm.spec,1.24,1.25
Gilboa Davara
gilboa at fedoraproject.org
Thu Sep 24 22:06:41 UTC 2009
Author: gilboa
Update of /cvs/pkgs/rpms/icewm/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv27189
Modified Files:
icewm.spec
Added Files:
icewm-fribidi.patch
Log Message:
icewm-fribidi.patch:
configure.in | 14 ++++++++++++++
src/yfontxft.cc | 40 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 54 insertions(+)
--- NEW FILE icewm-fribidi.patch ---
--- src/yfontxft.cc.old 2009-09-25 00:07:51.000000000 +0300
+++ src/yfontxft.cc 2009-09-25 00:18:09.000000000 +0300
@@ -6,6 +6,11 @@
#include "ypaint.h"
#include "yxapp.h"
#include "intl.h"
+#include <stdio.h>
+
+#ifdef CONFIG_FRIBIDI
+ #include <fribidi/fribidi.h>
+#endif
/******************************************************************************/
@@ -68,10 +73,45 @@
char_t * str, size_t len)
{
XftColor *c = *g.color();
+
+#ifdef CONFIG_FRIBIDI
+
+#define STATIS_STRING_SIZE 256
+
+ // Based around upstream (1.3.2) patch with some optimization
+ // on my end. (reduce unnecessary memory allocation)
+ // - Gilboa
+
+ char_t static_str[STATIS_STRING_SIZE];
+ char_t *vis_str = static_str;
+
+ if (len >= STATIS_STRING_SIZE)
+ {
+ vis_str = new char_t[len+1];
+ if (!vis_str)
+ return;
+ }
+
+ FriBidiCharType pbase_dir = FRIBIDI_TYPE_N;
+ fribidi_log2vis(str, len, &pbase_dir, //input
+ vis_str, // output
+ NULL, NULL, NULL // "statistics" that we don't need
+ );
+ str = vis_str;
+#endif
+
XftDrawString(g.handleXft(), c, font,
x - g.xorigin(),
y - g.yorigin(),
str, len);
+
+#ifdef CONFIG_FRIBIDI
+
+ if (vis_str != static_str)
+ delete[] str;
+
+#endif
+
}
static void textExtents(XftFont * font, char_t * str, size_t len,
--- configure.in.old 2009-09-25 00:05:08.000000000 +0300
+++ configure.in 2009-09-25 00:07:14.000000000 +0300
@@ -307,6 +307,20 @@
features="${features} i18n"
fi
+dnl =================================================== Right to left support ===
+dnl
+AC_ARG_ENABLE(fribidi,
+ [ --disable-fribidi Disable right to left support])
+
+if test "$enable_fribidi" != "no" && test "$enable_i18n" != "no"; then
+ PKG_CHECK_MODULES(FRIBIDI, fribidi)
+
+ AC_DEFINE(CONFIG_FRIBIDI,1, [Define to enable fribidi support])
+
+ CORE_CFLAGS="${CORE_CFLAGS} ${FRIBIDI_CFLAGS}"
+ CORE_LIBS="${CORE_LIBS} ${FRIBIDI_LIBS}"
+fi
+
dnl ============================================================ NLS Support ===
dnl
AC_ARG_ENABLE(nls,
Index: icewm.spec
===================================================================
RCS file: /cvs/pkgs/rpms/icewm/devel/icewm.spec,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -p -r1.24 -r1.25
--- icewm.spec 24 Sep 2009 21:58:23 -0000 1.24
+++ icewm.spec 24 Sep 2009 22:06:41 -0000 1.25
@@ -207,14 +207,14 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Wed Sep 24 2009 Gilboa Davara <gilboad[AT]gmail.com> - 1.2.37-3
-- Patch in missing fribidi support. (BZ #515134)
+- Patch in missing fribidi support. (#515134)
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.2.37-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Jul 15 2009 Gilboa Davara <gilboad[AT]gmail.com> - 1.2.37-1
- 1.2.37.
-- Fix missing directory ownership. (#511639)
+- Fix missing directory ownership. (#483346)
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.2.36-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
More information about the fedora-extras-commits
mailing list