vte (1:0.28.2-5) 25_optional-ncurses.patch

Summary

 configure.in |   83 +++++++++++++++++++++++++++++++----------------------------
 src/keymap.c |    6 +++-
 src/ssfe.c   |    2 -
 3 files changed, 51 insertions(+), 40 deletions(-)

    
download this patch

Patch contents

Index: vte-0.28.2/configure.in
===================================================================
--- vte-0.28.2.orig/configure.in	2011-08-28 23:32:53.000000000 +0200
+++ vte-0.28.2/configure.in	2011-10-19 03:44:01.248817625 +0200
@@ -368,45 +368,52 @@
 AC_CHECK_FUNC(floor,,AC_CHECK_LIB(m,floor,LIBS=["$LIBS -lm"]))
 AC_CHECK_FUNCS([ceil floor])
 
-# Look for tgetent
+AC_ARG_WITH(ncurses,
+           [AS_HELP_STRING([--without-ncurses],
+                           [don't use ncurses library])
+           ], with_ncurses=$withval, with_ncurses=yes)
 
-AC_CHECK_FUNC([tgetent],[vte_cv_termcap_lib=libc],
-  [AC_CHECK_LIB([ncurses],[tgetent],[vte_cv_termcap_lib=libncurses],
-    [AC_CHECK_LIB([tinfo],[tgetent],[vte_cv_termcap_lib=libtinfo],
-      [AC_CHECK_LIB([curses],[tgetent],[vte_cv_termcap_lib=libcurses],
-        [AC_CHECK_LIB([termcap],[tgetent],[vte_cv_termcap_lib=libtermcap],
-          [vte_cv_termcap_lib=])])])])])
-
-case "$vte_cv_termcap_lib" in
-  libc)       # FIXME: which headers to include here?
-              ;;
-  libncurses) # We need ncurses.h and term.h, or ncurses/curses.h and ncurses/term.h
-              AC_CHECK_HEADERS([ncurses.h term.h],[],
-                [AC_CHECK_HEADERS([ncurses/curses.h ncurses/term.h],[],
-                  [AC_MSG_ERROR([ncurses headers not found])])])
-              LIBS="-lncurses $LIBS"
-              ;;
-  libtinfo)   # Need ncurses/curses.h and ncurses/term.h
-              AC_CHECK_HEADERS([ncurses.h term.h],[],
-                [AC_CHECK_HEADERS([ncurses/curses.h ncurses/term.h],[],
-                  [AC_MSG_ERROR([ncurses headers not found])])])
-              LIBS="-ltinfo $LIBS"
-              ;;
-  libcurses)  # Need curses.h and term.h
-              AC_CHECK_HEADERS([curses.h term.h],[],
-                [AC_MSG_ERROR([curses headers not found])],
-                [[#ifdef HAVE_CURSES_H
-                  #include <curses.h>
-                  #endif]])
-              LIBS="-lcurses $LIBS"
-              ;;
-  libtermcap) # Need termcap.h
-              AC_CHECK_HEADERS([termcap.h],[],
-                [AC_MSG_ERROR([termcap headers not found])])
-              LIBS="-ltermcap $LIBS"
-              ;;
-  *)          AC_MSG_ERROR([tgetent not found in any library]) ;;
-esac
+if test x$with_ncurses = xyes ; then
+	# Look for tgetent
+
+	AC_CHECK_FUNC([tgetent],[vte_cv_termcap_lib=libc],
+	  [AC_CHECK_LIB([ncurses],[tgetent],[vte_cv_termcap_lib=libncurses],
+	    [AC_CHECK_LIB([tinfo],[tgetent],[vte_cv_termcap_lib=libtinfo],
+	      [AC_CHECK_LIB([curses],[tgetent],[vte_cv_termcap_lib=libcurses],
+	        [AC_CHECK_LIB([termcap],[tgetent],[vte_cv_termcap_lib=libtermcap],
+	          [vte_cv_termcap_lib=])])])])])
+
+	case "$vte_cv_termcap_lib" in
+	  libc)       # FIXME: which headers to include here?
+	              ;;
+	  libncurses) # We need ncurses.h and term.h, or ncurses/curses.h and ncurses/term.h
+	              AC_CHECK_HEADERS([ncurses.h term.h],[],
+	                [AC_CHECK_HEADERS([ncurses/curses.h ncurses/term.h],[],
+	                  [AC_MSG_ERROR([ncurses headers not found])])])
+	              LIBS="-lncurses $LIBS"
+	              ;;
+	  libtinfo)   # Need ncurses/curses.h and ncurses/term.h
+	              AC_CHECK_HEADERS([ncurses.h term.h],[],
+	                [AC_CHECK_HEADERS([ncurses/curses.h ncurses/term.h],[],
+	                  [AC_MSG_ERROR([ncurses headers not found])])])
+	              LIBS="-ltinfo $LIBS"
+	              ;;
+	  libcurses)  # Need curses.h and term.h
+	              AC_CHECK_HEADERS([curses.h term.h],[],
+	                [AC_MSG_ERROR([curses headers not found])],
+	                [[#ifdef HAVE_CURSES_H
+	                  #include <curses.h>
+	                  #endif]])
+	              LIBS="-lcurses $LIBS"
+	              ;;
+	  libtermcap) # Need termcap.h
+	              AC_CHECK_HEADERS([termcap.h],[],
+	                [AC_MSG_ERROR([termcap headers not found])])
+	              LIBS="-ltermcap $LIBS"
+	              ;;
+	  *)          AC_MSG_ERROR([tgetent not found in any library]) ;;
+	esac
+fi
 
 # Search for the required modules.
 
Index: vte-0.28.2/src/keymap.c
===================================================================
--- vte-0.28.2.orig/src/keymap.c	2011-08-16 23:52:48.000000000 +0200
+++ vte-0.28.2/src/keymap.c	2011-10-19 03:44:01.252817574 +0200
@@ -50,7 +50,7 @@
 #include <termcap.h>
 #define VTE_TERMCAP_NAME "termcap"
 #else
-#error No termcap??
+#undef VTE_TERMCAP_NAME
 #endif
 
 #ifdef VTE_DEBUG
@@ -1014,8 +1014,10 @@
 	enum _vte_fkey_mode fkey_mode;
 	char *cap, *tmp;
 	const char *termcap_special = NULL;
+#ifdef VTE_TERMCAP_NAME
 	char ncurses_buffer[4096];
 	char ncurses_area[512];
+#endif
 
 	g_return_if_fail(normal != NULL);
 	g_return_if_fail(normal_length != NULL);
@@ -1169,6 +1171,7 @@
 			}
 		}
 	}
+#ifdef VTE_TERMCAP_NAME
 	if (termcap_special != NULL) {
 		tmp = g_strdup(terminal);
 		cap = NULL;
@@ -1209,6 +1212,7 @@
 			return;
 		}
 	}
+#endif
 
 	_vte_debug_print(VTE_DEBUG_KEYBOARD,
 			" (ignoring, no match for modifier state).\n");
Index: vte-0.28.2/src/ssfe.c
===================================================================
--- vte-0.28.2.orig/src/ssfe.c	2011-06-19 22:59:30.000000000 +0200
+++ vte-0.28.2/src/ssfe.c	2011-10-19 03:44:01.256817523 +0200
@@ -38,7 +38,7 @@
 #include <termcap.h>
 #define VTE_TERMCAP_NAME "termcap"
 #else
-#error No termcap??
+#undef VTE_TERMCAP_NAME
 #endif
 
 #include <sys/types.h>