patch 7.4.861 v7.4.861
authorBram Moolenaar <Bram@vim.org>
Tue, 8 Sep 2015 18:00:22 +0000 (20:00 +0200)
committerBram Moolenaar <Bram@vim.org>
Tue, 8 Sep 2015 18:00:22 +0000 (20:00 +0200)
Problem:    pango_shape_full() is not always available.
Solution:   Add a configure check.

src/auto/configure
src/config.h.in
src/configure.in
src/gui_gtk_x11.c
src/version.c

index cdefc9c29943fd2b1bc08cde16fa3cad32ebf5fd..3bd5685f588b1126e3f07183bc0847a963ee045e 100755 (executable)
@@ -12181,6 +12181,37 @@ else
 $as_echo "yes" >&6; }
 fi
 
+if test "x$GTK_CFLAGS" != "x"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pango_shape_full" >&5
+$as_echo_n "checking for pango_shape_full... " >&6; }
+  ac_save_CFLAGS="$CFLAGS"
+  ac_save_LIBS="$LIBS"
+  CFLAGS="$CFLAGS $GTK_CFLAGS"
+  LIBS="$LIBS $GTK_LIBS"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <gtk/gtk.h>
+int
+main ()
+{
+ pango_shape_full(NULL, 0, NULL, 0, NULL, NULL);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }; $as_echo "#define HAVE_PANGO_SHAPE_FULL 1" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$ac_save_CFLAGS"
+  LIBS="$ac_save_LIBS"
+fi
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-gpm argument" >&5
 $as_echo_n "checking --disable-gpm argument... " >&6; }
 # Check whether --enable-gpm was given.
index b8168a55f6ef7575e48458f2a8330979a76f427f..e8d61831a12e8409ba0106cfef84328ec816cb9d 100644 (file)
 #undef HAVE_SOLARIS_ACL
 #undef HAVE_AIX_ACL
 
+/* Define if pango_shape_full() is available. */
+#undef HAVE_PANGO_SHAPE_FULL
+
 /* Define if you want to add support of GPM (Linux console mouse daemon) */
 #undef HAVE_GPM
 
index 80d70b0e50faec30e332ecba0cae6ba42b72977b..f17fcb9aa4581f9e2be910c9f6ab25e8a9ac5174 100644 (file)
@@ -3539,6 +3539,22 @@ else
   AC_MSG_RESULT(yes)
 fi
 
+if test "x$GTK_CFLAGS" != "x"; then
+  dnl pango_shape_full() is new, fall back to pango_shape().
+  AC_MSG_CHECKING(for pango_shape_full)
+  ac_save_CFLAGS="$CFLAGS"
+  ac_save_LIBS="$LIBS"
+  CFLAGS="$CFLAGS $GTK_CFLAGS"
+  LIBS="$LIBS $GTK_LIBS"
+  AC_TRY_COMPILE(
+  [#include <gtk/gtk.h>],
+  [ pango_shape_full(NULL, 0, NULL, 0, NULL, NULL); ],
+         AC_MSG_RESULT(yes); AC_DEFINE(HAVE_PANGO_SHAPE_FULL),
+         AC_MSG_RESULT(no))
+  CFLAGS="$ac_save_CFLAGS"
+  LIBS="$ac_save_LIBS"
+fi
+
 AC_MSG_CHECKING(--disable-gpm argument)
 AC_ARG_ENABLE(gpm,
        [  --disable-gpm           Don't use gpm (Linux mouse daemon).], ,
index 5c4abce65e67b5666622e9e33bbb6e28499241b6..bcd05c43e57e394c3b1d9f4c63986e2894d91998 100644 (file)
@@ -5063,8 +5063,13 @@ not_ascii:
             * done, because drawing the cursor would change the display. */
            item->analysis.shape_engine = default_shape_engine;
 
+#ifdef HAVE_PANGO_SHAPE_FULL
            pango_shape_full((const char *)s + item->offset, item->length,
                    (const char *)s, len, &item->analysis, glyphs);
+#else
+           pango_shape((const char *)s + item->offset, item->length,
+                       &item->analysis, glyphs);
+#endif
            /*
             * Fixed-width hack: iterate over the array and assign a fixed
             * width to each glyph, thus overriding the choice made by the
index 7ffdd18150c503b1baf8e042c657abcf106e741d..78d061c8dc065743166b0872d21d473298526081 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    861,
 /**/
     860,
 /**/