Add fallback del_curterm which does nothing, used in preference to BSD curses del_curterm, which seems to do a double-free

darcs-hash:20060511115846-ac50b-8d5fc054d31cff637d30e858ae8ffe2b1d1e8c03.gz
This commit is contained in:
axel 2006-05-11 21:58:46 +10:00
parent 94abb30f94
commit 524e0aa174
3 changed files with 30 additions and 0 deletions

View file

@ -389,6 +389,20 @@ else
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
fi fi
# Check if we are using basic BSD curses - in that case we redefine
# del_curterm as a no-op, to avoid a double-free
AC_MSG_CHECKING([If we are using BSD curses])
case $target_os in
*bsd*)
AC_MSG_RESULT(yes)
AC_CHECK_LIB( ncurses, del_curterm, true, [AC_DEFINE([HAVE_BROKEN_DEL_CURTERM],[1],[We are using basic BSD curses, redefine del_curterm to a no-op to avoid a double-free bug])])
;;
*)
AC_MSG_RESULT(no)
;;
esac
# Tell the world what we know # Tell the world what we know
AC_CONFIG_FILES([Makefile fish.spec doc_src/fish.1 doc_src/Doxyfile etc/fish etc/fish_interactive.fish share/fish seq]) AC_CONFIG_FILES([Makefile fish.spec doc_src/fish.1 doc_src/Doxyfile etc/fish etc/fish_interactive.fish share/fish seq])
AC_OUTPUT AC_OUTPUT

View file

@ -997,3 +997,11 @@ wcslcpy(wchar_t *dst, const wchar_t *src, size_t siz)
#endif #endif
#ifdef HAVE_BROKEN_DEL_CURTERM
int del_curterm(TERMINAL *oterm)
{
}
#endif

View file

@ -271,4 +271,12 @@ size_t wcslcpy( wchar_t *dst, const wchar_t *src, size_t siz );
#endif #endif
#ifdef HAVE_BROKEN_DEL_CURTERM
/**
BSD del_curterm seems to do a double-free. We redefine it as a no-op
*/
int del_curterm(TERMINAL *oterm);
#endif
#endif #endif