mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-08 20:58:58 +00:00
Merge from mainline.
This commit is contained in:
commit
4a843dd730
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2011-03-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.in (AC_TYPE_SIGNAL): Remove obsolete macro.
|
||||
(AH_BOTTOM): Do not define SIGTYPE.
|
||||
|
||||
2011-03-26 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.in: Replace obsolete macros AC_TRY_COMPILE, AC_TRY_LINK,
|
||||
AC_TRY_RUN with AC_COMPILE_IFELSE, AC_LINK_IFELSE, AC_RUN_IFELSE.
|
||||
|
||||
2011-03-25 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* autogen/update_autogen: Remove useless function keyword.
|
||||
|
@ -58,7 +58,6 @@ HAVE_TERMIOS
|
||||
INTERRUPT_INPUT
|
||||
NARROWPROTO
|
||||
SEPCHAR
|
||||
SIGTYPE
|
||||
SYSTEM_TYPE
|
||||
|
||||
** Machine specific macros, decribed in detail in src/m/template.h
|
||||
@ -238,7 +237,6 @@ SIGNALS_VIA_CHARACTERS
|
||||
SIGPIPE
|
||||
SIGQUIT
|
||||
SIGTRAP
|
||||
SIGTYPE
|
||||
SOLARIS2
|
||||
STDC_HEADERS
|
||||
SYSTEM_PURESIZE_EXTRA
|
||||
|
152
configure.in
152
configure.in
@ -664,11 +664,11 @@ if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
|
||||
test x"$CPP" = x; then
|
||||
AC_MSG_CHECKING([whether we are using a Sun C compiler])
|
||||
AC_CACHE_VAL(emacs_cv_sunpro_c,
|
||||
[AC_TRY_LINK([],
|
||||
[#ifndef __SUNPRO_C
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
|
||||
[[#ifndef __SUNPRO_C
|
||||
fail;
|
||||
#endif
|
||||
], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
|
||||
]])], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
|
||||
AC_MSG_RESULT($emacs_cv_sunpro_c)
|
||||
|
||||
if test x"$emacs_cv_sunpro_c" = xyes; then
|
||||
@ -703,7 +703,7 @@ fi
|
||||
AC_MSG_CHECKING([whether gcc understands -Wdeclaration-after-statement])
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wdeclaration-after-statement"
|
||||
AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], has_option=yes, has_option=no)
|
||||
if test $has_option = yes; then
|
||||
C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
|
||||
fi
|
||||
@ -717,7 +717,7 @@ unset SAVE_CFLAGS
|
||||
AC_MSG_CHECKING([whether gcc understands -Wold-style-definition])
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wold-style-definition"
|
||||
AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], has_option=yes, has_option=no)
|
||||
if test $has_option = yes; then
|
||||
C_WARNINGS_SWITCH="-Wold-style-definition $C_WARNINGS_SWITCH"
|
||||
fi
|
||||
@ -730,7 +730,7 @@ unset SAVE_CFLAGS
|
||||
AC_MSG_CHECKING([whether gcc understands -Wimplicit-function-declaration])
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wimplicit-function-declaration"
|
||||
AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], has_option=yes, has_option=no)
|
||||
if test $has_option = yes; then
|
||||
C_WARNINGS_SWITCH="-Wimplicit-function-declaration $C_WARNINGS_SWITCH"
|
||||
fi
|
||||
@ -1137,12 +1137,12 @@ if test "${with_sound}" != "no"; then
|
||||
SAVE_LDFLAGS="$LDFLAGS"
|
||||
CFLAGS="$ALSA_CFLAGS $CFLAGS"
|
||||
LDFLAGS="$ALSA_LIBS $LDFLAGS"
|
||||
AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <asoundlib.h>]], [[snd_lib_error_set_handler (0);]])],
|
||||
emacs_alsa_normal=yes,
|
||||
emacs_alsa_normal=no)
|
||||
if test "$emacs_alsa_normal" != yes; then
|
||||
AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
|
||||
[snd_lib_error_set_handler (0);],
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <alsa/asoundlib.h>]],
|
||||
[[snd_lib_error_set_handler (0);]])],
|
||||
emacs_alsa_subdir=yes,
|
||||
emacs_alsa_subdir=no)
|
||||
if test "$emacs_alsa_subdir" != yes; then
|
||||
@ -1181,7 +1181,7 @@ AC_CHECK_HEADERS(sys/select.h sys/time.h unistd.h utime.h \
|
||||
sys/utsname.h pwd.h utmp.h dirent.h util.h)
|
||||
|
||||
AC_MSG_CHECKING(if personality LINUX32 can be set)
|
||||
AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/personality.h>]], [[personality (PER_LINUX32)]])],
|
||||
emacs_cv_personality_linux32=yes,
|
||||
emacs_cv_personality_linux32=no)
|
||||
AC_MSG_RESULT($emacs_cv_personality_linux32)
|
||||
@ -1209,7 +1209,7 @@ AC_HEADER_SYS_WAIT
|
||||
|
||||
dnl Some systems have utime.h but don't declare the struct anyplace.
|
||||
AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
|
||||
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef TIME_WITH_SYS_TIME
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#else
|
||||
@ -1221,18 +1221,15 @@ AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
|
||||
#endif
|
||||
#ifdef HAVE_UTIME_H
|
||||
#include <utime.h>
|
||||
#endif], [static struct utimbuf x; x.actime = x.modtime;],
|
||||
#endif]], [[static struct utimbuf x; x.actime = x.modtime;]])],
|
||||
emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
|
||||
if test $emacs_cv_struct_utimbuf = yes; then
|
||||
AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
|
||||
fi
|
||||
|
||||
dnl checks for typedefs
|
||||
AC_TYPE_SIGNAL
|
||||
|
||||
dnl Check for speed_t typedef.
|
||||
AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
|
||||
[AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <termios.h>]], [[speed_t x = 1;]])],
|
||||
emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
|
||||
if test $emacs_cv_speed_t = yes; then
|
||||
AC_DEFINE(HAVE_SPEED_T, 1,
|
||||
@ -1240,7 +1237,7 @@ if test $emacs_cv_speed_t = yes; then
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
|
||||
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef TIME_WITH_SYS_TIME
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#else
|
||||
@ -1249,7 +1246,7 @@ AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
|
||||
#else
|
||||
#include <time.h>
|
||||
#endif
|
||||
#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
|
||||
#endif]], [[static struct timeval x; x.tv_sec = x.tv_usec;]])],
|
||||
emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
|
||||
HAVE_TIMEVAL=$emacs_cv_struct_timeval
|
||||
if test $emacs_cv_struct_timeval = yes; then
|
||||
@ -1257,8 +1254,8 @@ if test $emacs_cv_struct_timeval = yes; then
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
|
||||
AC_TRY_COMPILE([#include <math.h>],
|
||||
[static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]],
|
||||
[[static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;]])],
|
||||
emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
|
||||
HAVE_EXCEPTION=$emacs_cv_struct_exception
|
||||
if test $emacs_cv_struct_exception != yes; then
|
||||
@ -1301,7 +1298,7 @@ dnl This isn't useful because we can't turn on use of `inline' unless
|
||||
dnl the compiler groks `extern inline'.
|
||||
dnl AC_C_INLINE
|
||||
AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
|
||||
[AC_TRY_COMPILE(, [void * foo;],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[void * foo;]])],
|
||||
emacs_cv_void_star=yes, emacs_cv_void_star=no)])
|
||||
if test $emacs_cv_void_star = yes; then
|
||||
AC_DEFINE(POINTER_TYPE, void)
|
||||
@ -1349,7 +1346,7 @@ if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
|
||||
AC_MSG_CHECKING([whether gcc understands -MMD -MF])
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -MMD -MF deps.d"
|
||||
AC_TRY_COMPILE([], [], , ac_enable_autodepend=no)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
|
||||
CFLAGS="$SAVE_CFLAGS"
|
||||
test -f deps.d || ac_enable_autodepend=no
|
||||
rm -rf deps.d
|
||||
@ -1582,7 +1579,7 @@ AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
|
||||
AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
|
||||
AC_CACHE_CHECK(whether __after_morecore_hook exists,
|
||||
emacs_cv_var___after_morecore_hook,
|
||||
[AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern void (* __after_morecore_hook)();]],[[__after_morecore_hook = 0]])],
|
||||
emacs_cv_var___after_morecore_hook=yes,
|
||||
emacs_cv_var___after_morecore_hook=no)])
|
||||
if test $emacs_cv_var___after_morecore_hook = no; then
|
||||
@ -1680,7 +1677,7 @@ aix*)
|
||||
esac
|
||||
|
||||
LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
|
||||
AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])], [], [gdb_cv_bigtoc=])
|
||||
])
|
||||
;;
|
||||
esac
|
||||
@ -1710,8 +1707,8 @@ if test "${HAVE_X11}" = "yes"; then
|
||||
|
||||
if test "${opsys}" = "gnu-linux"; then
|
||||
AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
|
||||
AC_TRY_LINK([],
|
||||
[XOpenDisplay ("foo");],
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
|
||||
[[XOpenDisplay ("foo");]])],
|
||||
[xlinux_first_failure=no],
|
||||
[xlinux_first_failure=yes])
|
||||
if test "${xlinux_first_failure}" = "yes"; then
|
||||
@ -1723,8 +1720,8 @@ if test "${HAVE_X11}" = "yes"; then
|
||||
C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
|
||||
CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
|
||||
LIBS="$LIBS -b i486-linuxaout"
|
||||
AC_TRY_LINK([],
|
||||
[XOpenDisplay ("foo");],
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
|
||||
[[XOpenDisplay ("foo");]])],
|
||||
[xlinux_second_failure=no],
|
||||
[xlinux_second_failure=yes])
|
||||
if test "${xlinux_second_failure}" = "yes"; then
|
||||
@ -1746,9 +1743,9 @@ if test "${HAVE_X11}" = "yes"; then
|
||||
# Reportedly, some broken Solaris systems have XKBlib.h but are missing
|
||||
# header files included from there.
|
||||
AC_MSG_CHECKING(for Xkb)
|
||||
AC_TRY_LINK([#include <X11/Xlib.h>
|
||||
#include <X11/XKBlib.h>],
|
||||
[XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>
|
||||
#include <X11/XKBlib.h>]],
|
||||
[[XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);]])],
|
||||
emacs_xkb=yes, emacs_xkb=no)
|
||||
AC_MSG_RESULT($emacs_xkb)
|
||||
if test $emacs_xkb = yes; then
|
||||
@ -1762,11 +1759,11 @@ fi
|
||||
if test "${window_system}" = "x11"; then
|
||||
AC_MSG_CHECKING(X11 version 6)
|
||||
AC_CACHE_VAL(emacs_cv_x11_version_6,
|
||||
[AC_TRY_LINK([#include <X11/Xlib.h>],
|
||||
[#if XlibSpecificationRelease < 6
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]],
|
||||
[[#if XlibSpecificationRelease < 6
|
||||
fail;
|
||||
#endif
|
||||
], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
|
||||
]])], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
|
||||
if test $emacs_cv_x11_version_6 = yes; then
|
||||
AC_MSG_RESULT(6 or newer)
|
||||
AC_DEFINE(HAVE_X11R6, 1,
|
||||
@ -1989,10 +1986,10 @@ if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
|
||||
if test "$with_xaw3d" != no; then
|
||||
AC_MSG_CHECKING(for xaw3d)
|
||||
AC_CACHE_VAL(emacs_cv_xaw3d,
|
||||
[AC_TRY_LINK([
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <X11/Intrinsic.h>
|
||||
#include <X11/Xaw3d/Simple.h>],
|
||||
[],
|
||||
#include <X11/Xaw3d/Simple.h>]],
|
||||
[[]])],
|
||||
[AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb,
|
||||
emacs_cv_xaw3d=yes, emacs_cv_xaw3d=no)],
|
||||
emacs_cv_xaw3d=no)])
|
||||
@ -2010,10 +2007,10 @@ if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_CHECKING(for libXaw)
|
||||
AC_CACHE_VAL(emacs_cv_xaw,
|
||||
[AC_TRY_LINK([
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <X11/Intrinsic.h>
|
||||
#include <X11/Xaw/Simple.h>],
|
||||
[],
|
||||
#include <X11/Xaw/Simple.h>]],
|
||||
[[]])],
|
||||
emacs_cv_xaw=yes,
|
||||
emacs_cv_xaw=no)])
|
||||
if test $emacs_cv_xaw = yes; then
|
||||
@ -2035,11 +2032,11 @@ LIBXTR6=
|
||||
if test "${USE_X_TOOLKIT}" != "none"; then
|
||||
AC_MSG_CHECKING(X11 toolkit version)
|
||||
AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
|
||||
[AC_TRY_LINK([#include <X11/Intrinsic.h>],
|
||||
[#if XtSpecificationRelease < 6
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Intrinsic.h>]],
|
||||
[[#if XtSpecificationRelease < 6
|
||||
fail;
|
||||
#endif
|
||||
], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
|
||||
]])], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
|
||||
HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
|
||||
if test $emacs_cv_x11_toolkit_version_6 = yes; then
|
||||
AC_MSG_RESULT(6 or newer)
|
||||
@ -2088,12 +2085,12 @@ fi
|
||||
LIBXP=
|
||||
if test "${USE_X_TOOLKIT}" = "MOTIF"; then
|
||||
AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
|
||||
[AC_TRY_COMPILE([#include <Xm/Xm.h>],
|
||||
[#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <Xm/Xm.h>]],
|
||||
[[#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
|
||||
int x = 5;
|
||||
#else
|
||||
Motif version prior to 2.1.
|
||||
#endif],
|
||||
#endif]])],
|
||||
emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
|
||||
if test $emacs_cv_motif_version_2_1 = yes; then
|
||||
AC_CHECK_LIB(Xp, XpCreateContext, LIBXP=-lXp)
|
||||
@ -2106,8 +2103,8 @@ Motif version prior to 2.1.
|
||||
OLD_CFLAGS=$CFLAGS
|
||||
CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
|
||||
CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
|
||||
[AC_TRY_COMPILE([#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
|
||||
[int x = 5;],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>]],
|
||||
[[int x = 5;]])],
|
||||
emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
|
||||
if test $emacs_cv_lesstif = yes; then
|
||||
# Make sure this -I option remains in CPPFLAGS after it is set
|
||||
@ -2151,10 +2148,10 @@ if test "${with_toolkit_scroll_bars}" != "no"; then
|
||||
fi
|
||||
|
||||
dnl See if XIM is available.
|
||||
AC_TRY_COMPILE([
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xresource.h>],
|
||||
[XIMProc callback;],
|
||||
#include <X11/Xresource.h>]],
|
||||
[[XIMProc callback;]])],
|
||||
[HAVE_XIM=yes
|
||||
AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
|
||||
HAVE_XIM=no)
|
||||
@ -2172,10 +2169,10 @@ if test "${HAVE_XIM}" != "no"; then
|
||||
if test "$GCC" = yes; then
|
||||
CFLAGS="$CFLAGS --pedantic-errors"
|
||||
fi
|
||||
AC_TRY_COMPILE([
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xresource.h>],
|
||||
[Display *display;
|
||||
#include <X11/Xresource.h>]],
|
||||
[[Display *display;
|
||||
XrmDatabase db;
|
||||
char *res_name;
|
||||
char *res_class;
|
||||
@ -2188,7 +2185,7 @@ extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
|
||||
char*, XIMProc, XPointer*);
|
||||
#endif
|
||||
(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
|
||||
client_data);],
|
||||
client_data);]])],
|
||||
[emacs_cv_arg6_star=yes])
|
||||
AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
|
||||
[Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
|
||||
@ -2540,8 +2537,8 @@ AC_SUBST(LIBXML2_CFLAGS)
|
||||
# If netdb.h doesn't declare h_errno, we must declare it by hand.
|
||||
AC_CACHE_CHECK(whether netdb declares h_errno,
|
||||
emacs_cv_netdb_declares_h_errno,
|
||||
[AC_TRY_LINK([#include <netdb.h>],
|
||||
[return h_errno;],
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
|
||||
[[return h_errno;]])],
|
||||
emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
|
||||
if test $emacs_cv_netdb_declares_h_errno = yes; then
|
||||
AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
|
||||
@ -2722,11 +2719,11 @@ case "$opsys" in
|
||||
freebsd)
|
||||
AC_MSG_CHECKING([whether FreeBSD is new enough to use terminfo])
|
||||
AC_CACHE_VAL(emacs_cv_freebsd_terminfo,
|
||||
[AC_TRY_LINK([#include <osreldate.h>],
|
||||
[#if __FreeBSD_version < 400000
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <osreldate.h>]],
|
||||
[[#if __FreeBSD_version < 400000
|
||||
fail;
|
||||
#endif
|
||||
], emacs_cv_freebsd_terminfo=yes, emacs_cv_freebsd_terminfo=no)])
|
||||
]])], emacs_cv_freebsd_terminfo=yes, emacs_cv_freebsd_terminfo=no)])
|
||||
|
||||
AC_MSG_RESULT($emacs_cv_freebsd_terminfo)
|
||||
|
||||
@ -2776,19 +2773,19 @@ AC_SUBST(TERMCAP_OBJ)
|
||||
|
||||
# Do we have res_init, for detecting changes in /etc/resolv.conf?
|
||||
resolv=no
|
||||
AC_TRY_LINK([#include <netinet/in.h>
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>
|
||||
#include <arpa/nameser.h>
|
||||
#include <resolv.h>],
|
||||
[return res_init();],
|
||||
#include <resolv.h>]],
|
||||
[[return res_init();]])],
|
||||
have_res_init=yes, have_res_init=no)
|
||||
if test "$have_res_init" = no; then
|
||||
OLIBS="$LIBS"
|
||||
LIBS="$LIBS -lresolv"
|
||||
AC_MSG_CHECKING(for res_init with -lresolv)
|
||||
AC_TRY_LINK([#include <netinet/in.h>
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>
|
||||
#include <arpa/nameser.h>
|
||||
#include <resolv.h>],
|
||||
[return res_init();],
|
||||
#include <resolv.h>]],
|
||||
[[return res_init();]])],
|
||||
have_res_init=yes, have_res_init=no)
|
||||
AC_MSG_RESULT($have_res_init)
|
||||
if test "$have_res_init" = yes ; then
|
||||
@ -2924,7 +2921,7 @@ AC_CHECK_LIB(intl, dgettext)
|
||||
AC_MSG_CHECKING(whether localtime caches TZ)
|
||||
AC_CACHE_VAL(emacs_cv_localtime_cache,
|
||||
[if test x$ac_cv_func_tzset = xyes; then
|
||||
AC_TRY_RUN([#include <time.h>
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
|
||||
char TZ_GMT0[] = "TZ=GMT0";
|
||||
char TZ_PST8[] = "TZ=PST8";
|
||||
main()
|
||||
@ -2944,7 +2941,7 @@ main()
|
||||
if (localtime (&now)->tm_hour != hour_unset)
|
||||
exit (1);
|
||||
exit (0);
|
||||
}], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
|
||||
}]])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
|
||||
[# If we have tzset, assume the worst when cross-compiling.
|
||||
emacs_cv_localtime_cache=yes])
|
||||
else
|
||||
@ -2963,7 +2960,7 @@ if test "x$HAVE_TIMEVAL" = xyes; then
|
||||
if test $ac_cv_func_gettimeofday = yes; then
|
||||
AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
|
||||
emacs_cv_gettimeofday_two_arguments,
|
||||
[AC_TRY_COMPILE([
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#ifdef TIME_WITH_SYS_TIME
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
@ -2973,9 +2970,9 @@ if test "x$HAVE_TIMEVAL" = xyes; then
|
||||
#else
|
||||
#include <time.h>
|
||||
#endif
|
||||
#endif],
|
||||
[struct timeval time;
|
||||
gettimeofday (&time, 0);],
|
||||
#endif]],
|
||||
[[struct timeval time;
|
||||
gettimeofday (&time, 0);]])],
|
||||
emacs_cv_gettimeofday_two_arguments=yes,
|
||||
emacs_cv_gettimeofday_two_arguments=no)])
|
||||
if test $emacs_cv_gettimeofday_two_arguments = no; then
|
||||
@ -3016,8 +3013,8 @@ AC_FUNC_FORK
|
||||
|
||||
dnl Adapted from Haible's version.
|
||||
AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
|
||||
[AC_TRY_LINK([#include <langinfo.h>],
|
||||
[char* cs = nl_langinfo(CODESET);],
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
|
||||
[[char* cs = nl_langinfo(CODESET);]])],
|
||||
emacs_cv_langinfo_codeset=yes,
|
||||
emacs_cv_langinfo_codeset=no)
|
||||
])
|
||||
@ -3031,7 +3028,7 @@ AC_CHECK_TYPES(size_t)
|
||||
AC_TYPE_MBSTATE_T
|
||||
|
||||
AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
|
||||
[AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void fred (int x[__restrict]);]], [[]])],
|
||||
emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
|
||||
if test "$emacs_cv_c_restrict_arr" = yes; then
|
||||
AC_DEFINE(__restrict_arr, __restrict,
|
||||
@ -3493,11 +3490,6 @@ AH_BOTTOM([
|
||||
# define SYSTEM_PURESIZE_EXTRA 30000
|
||||
#endif
|
||||
|
||||
/* SIGTYPE is the macro we actually use. */
|
||||
#ifndef SIGTYPE
|
||||
#define SIGTYPE RETSIGTYPE
|
||||
#endif
|
||||
|
||||
#ifdef emacs /* Don't do this for lib-src. */
|
||||
/* Tell regex.c to use a type compatible with Emacs. */
|
||||
#define RE_TRANSLATE_TYPE Lisp_Object
|
||||
|
@ -1,3 +1,7 @@
|
||||
2011-03-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacsclient.c: Replace SIGTYPE with void.
|
||||
|
||||
2011-03-23 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* ntlib.c: Include <ctype.h>.
|
||||
|
@ -1116,7 +1116,7 @@ socket_status (char *name)
|
||||
/* A signal handler that passes the signal to the Emacs process.
|
||||
Useful for SIGWINCH. */
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
pass_signal_to_emacs (int signalnum)
|
||||
{
|
||||
int old_errno = errno;
|
||||
@ -1131,7 +1131,7 @@ pass_signal_to_emacs (int signalnum)
|
||||
/* Signal handler for SIGCONT; notify the Emacs process that it can
|
||||
now resume our tty frame. */
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
handle_sigcont (int signalnum)
|
||||
{
|
||||
int old_errno = errno;
|
||||
@ -1157,7 +1157,7 @@ handle_sigcont (int signalnum)
|
||||
reality, we may get a SIGTSTP on C-z. Handling this signal and
|
||||
notifying Emacs about it should get things under control again. */
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
handle_sigtstp (int signalnum)
|
||||
{
|
||||
int old_errno = errno;
|
||||
|
@ -1,3 +1,9 @@
|
||||
2011-03-27 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* ansi-color.el (ansi-color-names-vector): Allow cons cell value
|
||||
for foreground and background colors.
|
||||
(ansi-color-make-color-map): Adapt.
|
||||
|
||||
2011-03-25 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* midnight.el (midnight-time-float): Remove. Note it calculates
|
||||
|
@ -132,8 +132,18 @@ Parameter Color
|
||||
37 47 white
|
||||
|
||||
This vector is used by `ansi-color-make-color-map' to create a color
|
||||
map. This color map is stored in the variable `ansi-color-map'."
|
||||
:type '(vector string string string string string string string string)
|
||||
map. This color map is stored in the variable `ansi-color-map'.
|
||||
|
||||
Each element may also be a cons cell where the car and cdr specify the
|
||||
foreground and background colors, respectively."
|
||||
:type '(vector (choice color (cons color color))
|
||||
(choice color (cons color color))
|
||||
(choice color (cons color color))
|
||||
(choice color (cons color color))
|
||||
(choice color (cons color color))
|
||||
(choice color (cons color color))
|
||||
(choice color (cons color color))
|
||||
(choice color (cons color color)))
|
||||
:set 'ansi-color-map-update
|
||||
:initialize 'custom-initialize-default
|
||||
:group 'ansi-colors)
|
||||
@ -528,7 +538,8 @@ The face definitions are based upon the variables
|
||||
(mapc
|
||||
(function (lambda (e)
|
||||
(aset ansi-color-map index
|
||||
(ansi-color-make-face 'foreground e))
|
||||
(ansi-color-make-face 'foreground
|
||||
(if (consp e) (car e) e)))
|
||||
(setq index (1+ index)) ))
|
||||
ansi-color-names-vector)
|
||||
;; background attributes
|
||||
@ -536,7 +547,8 @@ The face definitions are based upon the variables
|
||||
(mapc
|
||||
(function (lambda (e)
|
||||
(aset ansi-color-map index
|
||||
(ansi-color-make-face 'background e))
|
||||
(ansi-color-make-face 'background
|
||||
(if (consp e) (cdr e) e)))
|
||||
(setq index (1+ index)) ))
|
||||
ansi-color-names-vector)
|
||||
ansi-color-map))
|
||||
|
@ -1,3 +1,39 @@
|
||||
2011-03-26 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* proto-stream.el: Changes preparatory to merging open-protocol-stream
|
||||
with open-network-stream.
|
||||
(proto-stream-always-use-starttls): Option removed.
|
||||
(open-protocol-stream): Return a process object by default. Provide a
|
||||
new parameter :return-list specifying a list-type return value, which
|
||||
now has the form (PROP . PLIST) instead of a fixed-length list. Change
|
||||
:type `network' to `try-starttls', and `network-only' to `default'.
|
||||
Make `default' the default, for compatibility with open-network-stream.
|
||||
Handle the no-parameter case exactly as open-network-stream, with no
|
||||
additional stream processing. Search plists using plist-get.
|
||||
Explicitly add :end-of-commend parameter if it is missing.
|
||||
(proto-stream-open-default): Renamed from
|
||||
proto-stream-open-network-only. Return 'default as the type.
|
||||
(proto-stream-open-starttls): Rename from proto-stream-open-network.
|
||||
Use plist-get. Don't return `tls' as the type if STARTTLS negotiation
|
||||
failed. Always return a list with a (possibly dead) process as the
|
||||
first element, for compatibility with open-network-stream.
|
||||
(proto-stream-open-tls): Use plist-get. Always return a list.
|
||||
(proto-stream-open-shell): Return `default' as connection type.
|
||||
(proto-stream-capability-open): Use plist-get.
|
||||
(proto-stream-eoc): Function deleted.
|
||||
|
||||
* nnimap.el (nnimap-stream, nnimap-open-connection)
|
||||
(nnimap-open-connection-1): Handle renaming of :type parameter for
|
||||
open-protocol-stream.
|
||||
(nnimap-open-connection-1): Pass a :return-list parameter
|
||||
open-protocol-stream to obtain a list return value. Parse this list
|
||||
using plist-get.
|
||||
|
||||
* nntp.el (nntp-open-connection): Handle renaming of :type parameter
|
||||
for open-protocol-stream. Accept open-protocol-stream return value
|
||||
that is a subprocess object instead of a list. Handle the case of a
|
||||
dead returned process.
|
||||
|
||||
2011-03-25 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* mm-util.el (mm-handle-filename): Move to mm-decode.el (bug#8330).
|
||||
|
@ -62,9 +62,9 @@ it will default to `imap'.")
|
||||
|
||||
(defvoo nnimap-stream 'undecided
|
||||
"How nnimap will talk to the IMAP server.
|
||||
Values are `ssl', `network', `network-only, `starttls' or
|
||||
Values are `ssl', `default', `try-starttls', `starttls' or
|
||||
`shell'. The default is to try `ssl' first, and then
|
||||
`network'.")
|
||||
`try-starttls'.")
|
||||
|
||||
(defvoo nnimap-shell-program (if (boundp 'imap-shell-program)
|
||||
(if (listp imap-shell-program)
|
||||
@ -319,7 +319,7 @@ textual parts.")
|
||||
(setq nnimap-stream 'ssl))
|
||||
(let ((stream
|
||||
(if (eq nnimap-stream 'undecided)
|
||||
(loop for type in '(ssl network)
|
||||
(loop for type in '(ssl try-starttls)
|
||||
for stream = (let ((nnimap-stream type))
|
||||
(nnimap-open-connection-1 buffer))
|
||||
while (eq stream 'no-connect)
|
||||
@ -339,9 +339,7 @@ textual parts.")
|
||||
(port nil)
|
||||
(ports
|
||||
(cond
|
||||
((or (eq nnimap-stream 'network)
|
||||
(eq nnimap-stream 'network-only)
|
||||
(eq nnimap-stream 'starttls))
|
||||
((memq nnimap-stream '(try-starttls default starttls))
|
||||
(nnheader-message 7 "Opening connection to %s..."
|
||||
nnimap-address)
|
||||
'("imap" "143"))
|
||||
@ -355,21 +353,28 @@ textual parts.")
|
||||
'("imaps" "imap" "993" "143"))
|
||||
(t
|
||||
(error "Unknown stream type: %s" nnimap-stream))))
|
||||
(proto-stream-always-use-starttls t)
|
||||
login-result credentials)
|
||||
(when nnimap-server-port
|
||||
(push nnimap-server-port ports))
|
||||
(destructuring-bind (stream greeting capabilities stream-type)
|
||||
(open-protocol-stream
|
||||
"*nnimap*" (current-buffer) nnimap-address (car ports)
|
||||
:type nnimap-stream
|
||||
:shell-command nnimap-shell-program
|
||||
:capability-command "1 CAPABILITY\r\n"
|
||||
:success " OK "
|
||||
:starttls-function
|
||||
(lambda (capabilities)
|
||||
(when (gnus-string-match-p "STARTTLS" capabilities)
|
||||
"1 STARTTLS\r\n")))
|
||||
(let* ((stream-list
|
||||
(open-protocol-stream
|
||||
"*nnimap*" (current-buffer) nnimap-address (car ports)
|
||||
:type nnimap-stream
|
||||
:return-list t
|
||||
:shell-command nnimap-shell-program
|
||||
:capability-command "1 CAPABILITY\r\n"
|
||||
:success " OK "
|
||||
:starttls-function
|
||||
(lambda (capabilities)
|
||||
(when (gnus-string-match-p "STARTTLS" capabilities)
|
||||
"1 STARTTLS\r\n"))))
|
||||
(stream (car stream-list))
|
||||
(props (cdr stream-list))
|
||||
(greeting (plist-get props :greeting))
|
||||
(capabilities (plist-get props :capabilities))
|
||||
(stream-type (plist-get props :type)))
|
||||
(when (and stream (not (memq (process-status stream) '(open run))))
|
||||
(setq stream nil))
|
||||
(setf (nnimap-process nnimap-object) stream)
|
||||
(setf (nnimap-stream-type nnimap-object) stream-type)
|
||||
(if (not stream)
|
||||
|
@ -1339,26 +1339,26 @@ password contained in '~/.nntp-authinfo'."
|
||||
(condition-case err
|
||||
(let ((coding-system-for-read nntp-coding-system-for-read)
|
||||
(coding-system-for-write nntp-coding-system-for-write)
|
||||
(map '((nntp-open-network-stream network)
|
||||
(network-only network-only)
|
||||
(map '((nntp-open-network-stream try-starttls)
|
||||
(network-only default)
|
||||
(nntp-open-ssl-stream tls)
|
||||
(nntp-open-tls-stream tls))))
|
||||
(if (assoc nntp-open-connection-function map)
|
||||
(car (open-protocol-stream
|
||||
"nntpd" pbuffer nntp-address nntp-port-number
|
||||
:type (cadr
|
||||
(assoc nntp-open-connection-function map))
|
||||
:end-of-command "^\\([2345]\\|[.]\\).*\n"
|
||||
:capability-command "CAPABILITIES\r\n"
|
||||
:success "^3"
|
||||
:starttls-function
|
||||
(lambda (capabilities)
|
||||
(if (not (string-match "STARTTLS" capabilities))
|
||||
nil
|
||||
"STARTTLS\r\n"))))
|
||||
(open-protocol-stream
|
||||
"nntpd" pbuffer nntp-address nntp-port-number
|
||||
:type (or (cadr (assoc nntp-open-connection-function map))
|
||||
'try-starttls)
|
||||
:end-of-command "^\\([2345]\\|[.]\\).*\n"
|
||||
:capability-command "CAPABILITIES\r\n"
|
||||
:success "^3"
|
||||
:starttls-function
|
||||
(lambda (capabilities)
|
||||
(if (not (string-match "STARTTLS" capabilities))
|
||||
nil
|
||||
"STARTTLS\r\n")))
|
||||
(funcall nntp-open-connection-function pbuffer)))
|
||||
(error
|
||||
(nnheader-report 'nntp "%s" err))
|
||||
(nnheader-report 'nntp ">>> %s" err))
|
||||
(quit
|
||||
(message "Quit opening connection to %s" nntp-address)
|
||||
(nntp-kill-buffer pbuffer)
|
||||
@ -1366,6 +1366,9 @@ password contained in '~/.nntp-authinfo'."
|
||||
nil))))
|
||||
(when timer
|
||||
(nnheader-cancel-timer timer))
|
||||
(when (and process
|
||||
(not (memq (process-status process) '(open run))))
|
||||
(setq process nil))
|
||||
(unless process
|
||||
(nntp-kill-buffer pbuffer))
|
||||
(when (and (buffer-name pbuffer)
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
;; (open-protocol-stream
|
||||
;; "*nnimap*" buffer address port
|
||||
;; :type 'network
|
||||
;; :type 'try-starttls
|
||||
;; :capability-command "1 CAPABILITY\r\n"
|
||||
;; :success " OK "
|
||||
;; :starttls-function
|
||||
@ -48,171 +48,164 @@
|
||||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile
|
||||
(require 'cl))
|
||||
(require 'tls)
|
||||
(require 'starttls)
|
||||
(require 'format-spec)
|
||||
|
||||
(defcustom proto-stream-always-use-starttls (fboundp 'open-gnutls-stream)
|
||||
"If non-nil, always try to upgrade network connections with STARTTLS."
|
||||
:version "24.1"
|
||||
:type 'boolean
|
||||
:group 'comm)
|
||||
|
||||
(declare-function gnutls-negotiate "gnutls"
|
||||
(proc type &optional priority-string trustfiles keyfiles))
|
||||
|
||||
;;;###autoload
|
||||
(defun open-protocol-stream (name buffer host service &rest parameters)
|
||||
"Open a network stream to HOST, upgrading to STARTTLS if possible.
|
||||
The first four parameters have the same meaning as in
|
||||
`open-network-stream'. The function returns a list where the
|
||||
first element is the stream, the second element is the greeting
|
||||
the server replied with after connecting, and the third element
|
||||
is a string representing the capabilities of the server (if any).
|
||||
"Open a network stream to HOST, possibly with encryption.
|
||||
Normally, return a network process object; with a non-nil
|
||||
:return-list parameter, return a list instead (see below).
|
||||
|
||||
The PARAMETERS is a keyword list that can have the following
|
||||
values:
|
||||
The first four parameters, NAME, BUFFER, HOST, and SERVICE, have
|
||||
the same meanings as in `open-network-stream'. The remaining
|
||||
PARAMETERS should be a sequence of keywords and values:
|
||||
|
||||
:type -- either `network', `network-only, `tls', `shell' or
|
||||
`starttls'. If omitted, the default is `network'. `network'
|
||||
will be opportunistically upgraded to STARTTLS if both the server
|
||||
and Emacs supports it. If you don't want STARTTLS upgrades, use
|
||||
`network-only'.
|
||||
:type specifies the connection type, one of the following:
|
||||
`default' -- An ordinary network connection.
|
||||
`try-starttls'
|
||||
-- Begin an ordinary network connection, and try
|
||||
upgrading it to an encrypted connection via
|
||||
STARTTLS if both HOST and Emacs support TLS. If
|
||||
that fails, keep the unencrypted connection.
|
||||
`starttls' -- Begin an ordinary connection, and try upgrading
|
||||
it via STARTTLS. If that fails for any reason,
|
||||
drop the connection; in this case, the returned
|
||||
process object is a killed process.
|
||||
`tls' or `ssl' -- A TLS connection.
|
||||
`shell' -- A shell connection.
|
||||
|
||||
:end-of-command -- a regexp saying what the end of a command is.
|
||||
This defaults to \"\\n\".
|
||||
:return-list specifies this function's return value.
|
||||
If omitted or nil, return a process object. A non-nil means to
|
||||
return (PROC . PROPS), where PROC is a process object and PROPS
|
||||
is a plist of connection properties, with these keywords:
|
||||
:greeting -- the greeting returned by HOST (a string), or nil.
|
||||
:capabilities -- a string representing HOST's capabilities,
|
||||
or nil if none could be found.
|
||||
:type -- the actual connection type; either `default' for an
|
||||
unencrypted connection, or `tls'.
|
||||
|
||||
:success -- a regexp saying whether the STARTTLS command was
|
||||
successful or not. For instance, for NNTP this is \"^3\".
|
||||
:end-of-command specifies a regexp matching the end of a command.
|
||||
If non-nil, it defaults to \"\\n\".
|
||||
|
||||
:capability-command -- a string representing the command used to
|
||||
query server for capabilities. For instance, for IMAP this is
|
||||
\"1 CAPABILITY\\r\\n\".
|
||||
:success specifies a regexp matching a message indicating a
|
||||
successful STARTTLS negotiation. For instance, the default
|
||||
should be \"^3\" for an NNTP connection. If this is not
|
||||
supplied, STARTTLS will always fail.
|
||||
|
||||
:starttls-function -- a function that takes one parameter, which
|
||||
is the response to the capaibility command. It should return nil
|
||||
if it turns out that the server doesn't support STARTTLS, or the
|
||||
command to switch on STARTTLS otherwise.
|
||||
:capability-command specifies a command used to query the HOST
|
||||
for its capabilities. For instance, for IMAP this should be
|
||||
\"1 CAPABILITY\\r\\n\".
|
||||
|
||||
The return value from this function is a four-element list, where
|
||||
the first element is the stream (if connection was successful);
|
||||
the second element is the \"greeting\", i. e., the string the
|
||||
server sent over on initial contact; the third element is the
|
||||
capability string; and the fourth element is either `network' or
|
||||
`tls', depending on whether the connection ended up being
|
||||
encrypted or not."
|
||||
(let ((type (or (cadr (memq :type parameters)) 'network)))
|
||||
(cond
|
||||
((eq type 'starttls)
|
||||
(setq type 'network))
|
||||
((eq type 'ssl)
|
||||
(setq type 'tls)))
|
||||
(let ((open-result
|
||||
(funcall (intern (format "proto-stream-open-%s" type) obarray)
|
||||
name buffer host service parameters)))
|
||||
(if (null open-result)
|
||||
(list nil nil nil type)
|
||||
(let ((stream (car open-result)))
|
||||
(list (and stream
|
||||
(memq (process-status stream)
|
||||
'(open run))
|
||||
stream)
|
||||
(nth 1 open-result)
|
||||
(nth 2 open-result)
|
||||
(nth 3 open-result)))))))
|
||||
:starttls-function specifies a function for handling STARTTLS.
|
||||
This function should take one parameter, the response to the
|
||||
capability command, and should return the command to switch on
|
||||
STARTTLS if the server supports STARTTLS, and nil otherwise."
|
||||
(let ((type (plist-get parameters :type))
|
||||
(return-list (plist-get parameters :return-list)))
|
||||
(if (and (null return-list) (memq type '(nil default)))
|
||||
;; The simplest case---no encryption, and no need to report
|
||||
;; connection properties. Like `open-network-stream', this
|
||||
;; doesn't read anything into BUFFER yet.
|
||||
(open-network-stream name buffer host service)
|
||||
;; For everything else, refer to proto-stream-open-*.
|
||||
(unless (plist-get parameters :end-of-command)
|
||||
(setq parameters
|
||||
(append '(:end-of-command "\r\n") parameters)))
|
||||
(let* ((connection-function
|
||||
(cond
|
||||
((memq type '(nil default))
|
||||
'proto-stream-open-default)
|
||||
((memq type '(try-starttls starttls))
|
||||
'proto-stream-open-starttls)
|
||||
((memq type '(tls ssl))
|
||||
'proto-stream-open-tls)
|
||||
((eq type 'shell)
|
||||
'proto-stream-open-shell)
|
||||
(t
|
||||
(error "Invalid connection type %s" type))))
|
||||
(result (funcall connection-function
|
||||
name buffer host service parameters)))
|
||||
(if return-list
|
||||
(list (car result)
|
||||
:greeting (nth 1 result)
|
||||
:capabilities (nth 2 result)
|
||||
:type (nth 3 result))
|
||||
(car result))))))
|
||||
|
||||
(defun proto-stream-open-network-only (name buffer host service parameters)
|
||||
(defun proto-stream-open-default (name buffer host service parameters)
|
||||
(let ((start (with-current-buffer buffer (point)))
|
||||
(stream (open-network-stream name buffer host service)))
|
||||
(list stream
|
||||
(proto-stream-get-response
|
||||
stream start (proto-stream-eoc parameters))
|
||||
(proto-stream-get-response stream start
|
||||
(plist-get parameters :end-of-command))
|
||||
nil
|
||||
'network)))
|
||||
'default)))
|
||||
|
||||
(defun proto-stream-open-network (name buffer host service parameters)
|
||||
(defun proto-stream-open-starttls (name buffer host service parameters)
|
||||
(let* ((start (with-current-buffer buffer (point)))
|
||||
;; This should be `starttls' or `try-starttls'.
|
||||
(type (plist-get parameters :type))
|
||||
(starttls-function (plist-get parameters :starttls-function))
|
||||
(success-string (plist-get parameters :success))
|
||||
(capability-command (plist-get parameters :capability-command))
|
||||
(eoc (plist-get parameters :end-of-command))
|
||||
;; Return (STREAM GREETING CAPABILITIES RESULTING-TYPE)
|
||||
(stream (open-network-stream name buffer host service))
|
||||
(capability-command (cadr (memq :capability-command parameters)))
|
||||
(eoc (proto-stream-eoc parameters))
|
||||
(type (cadr (memq :type parameters)))
|
||||
(greeting (proto-stream-get-response stream start eoc))
|
||||
success)
|
||||
(if (not capability-command)
|
||||
(list stream greeting nil 'network)
|
||||
(let* ((capabilities
|
||||
(proto-stream-command stream capability-command eoc))
|
||||
(starttls-command
|
||||
(funcall (cadr (memq :starttls-function parameters))
|
||||
capabilities)))
|
||||
(cond
|
||||
;; If this server doesn't support STARTTLS, but we have
|
||||
;; requested it explicitly, then close the connection and
|
||||
;; return nil.
|
||||
((or (not starttls-command)
|
||||
(and (not (eq type 'starttls))
|
||||
(not proto-stream-always-use-starttls)))
|
||||
(if (eq type 'starttls)
|
||||
(progn
|
||||
(delete-process stream)
|
||||
nil)
|
||||
;; Otherwise, just return this plain network connection.
|
||||
(list stream greeting capabilities 'network)))
|
||||
;; We have some kind of STARTTLS support, so we try to
|
||||
;; upgrade the connection opportunistically.
|
||||
((or (fboundp 'open-gnutls-stream)
|
||||
(executable-find "gnutls-cli"))
|
||||
(unless (fboundp 'open-gnutls-stream)
|
||||
(delete-process stream)
|
||||
(setq start (with-current-buffer buffer (point-max)))
|
||||
(let* ((starttls-use-gnutls t)
|
||||
(starttls-extra-arguments
|
||||
(if (not (eq type 'starttls))
|
||||
;; When doing opportunistic TLS upgrades we
|
||||
;; don't really care about the identity of the
|
||||
;; peer.
|
||||
(cons "--insecure" starttls-extra-arguments)
|
||||
starttls-extra-arguments)))
|
||||
(setq stream (starttls-open-stream name buffer host service)))
|
||||
(proto-stream-get-response stream start eoc))
|
||||
(if (not
|
||||
(string-match
|
||||
(cadr (memq :success parameters))
|
||||
(proto-stream-command stream starttls-command eoc)))
|
||||
;; We got an error back from the STARTTLS command.
|
||||
(progn
|
||||
(if (eq type 'starttls)
|
||||
(progn
|
||||
(delete-process stream)
|
||||
nil)
|
||||
(list stream greeting capabilities 'network)))
|
||||
;; The server said it was OK to start doing STARTTLS negotiations.
|
||||
(if (fboundp 'open-gnutls-stream)
|
||||
(gnutls-negotiate stream nil)
|
||||
(unless (starttls-negotiate stream)
|
||||
(delete-process stream)
|
||||
(setq stream nil)))
|
||||
(when (or (null stream)
|
||||
(not (memq (process-status stream)
|
||||
'(open run))))
|
||||
;; It didn't successfully negotiate STARTTLS, so we reopen
|
||||
;; the connection.
|
||||
(setq stream (open-network-stream name buffer host service))
|
||||
(proto-stream-get-response stream start eoc))
|
||||
;; Re-get the capabilities, since they may have changed
|
||||
;; after switching to TLS.
|
||||
(list stream greeting
|
||||
(proto-stream-command stream capability-command eoc) 'tls)))
|
||||
;; We don't have STARTTLS support available, but the caller
|
||||
;; requested a STARTTLS connection, so we give up.
|
||||
((eq (cadr (memq :type parameters)) 'starttls)
|
||||
(delete-process stream)
|
||||
nil)
|
||||
;; Fall back on using a plain network stream.
|
||||
(t
|
||||
(list stream greeting capabilities 'network)))))))
|
||||
(capabilities (when capability-command
|
||||
(proto-stream-command stream
|
||||
capability-command eoc)))
|
||||
(resulting-type 'default)
|
||||
starttls-command)
|
||||
|
||||
;; If we have STARTTLS support, try to upgrade the connection.
|
||||
(when (and (or (fboundp 'open-gnutls-stream)
|
||||
(executable-find "gnutls-cli"))
|
||||
capabilities success-string starttls-function
|
||||
(setq starttls-command
|
||||
(funcall starttls-function capabilities)))
|
||||
;; If using external STARTTLS, drop this connection and start
|
||||
;; anew with `starttls-open-stream'.
|
||||
(unless (fboundp 'open-gnutls-stream)
|
||||
(delete-process stream)
|
||||
(setq start (with-current-buffer buffer (point-max)))
|
||||
(let* ((starttls-use-gnutls t)
|
||||
(starttls-extra-arguments
|
||||
(if (not (eq type 'starttls))
|
||||
;; For opportunistic TLS upgrades, we don't
|
||||
;; really care about the identity of the peer.
|
||||
(cons "--insecure" starttls-extra-arguments)
|
||||
starttls-extra-arguments)))
|
||||
(setq stream (starttls-open-stream name buffer host service)))
|
||||
(proto-stream-get-response stream start eoc))
|
||||
(when (string-match success-string
|
||||
(proto-stream-command stream starttls-command eoc))
|
||||
;; The server said it was OK to begin STARTTLS negotiations.
|
||||
(if (fboundp 'open-gnutls-stream)
|
||||
(gnutls-negotiate stream nil)
|
||||
(unless (starttls-negotiate stream)
|
||||
(delete-process stream)))
|
||||
(if (memq (process-status stream) '(open run))
|
||||
(setq resulting-type 'tls)
|
||||
;; We didn't successfully negotiate STARTTLS; if TLS
|
||||
;; isn't demanded, reopen an unencrypted connection.
|
||||
(when (eq type 'try-starttls)
|
||||
(setq stream (open-network-stream name buffer host service))
|
||||
(proto-stream-get-response stream start eoc)))
|
||||
;; Re-get the capabilities, which may have now changed.
|
||||
(setq capabilities
|
||||
(proto-stream-command stream capability-command eoc))))
|
||||
|
||||
;; If TLS is mandatory, close the connection if it's unencrypted.
|
||||
(and (eq type 'starttls)
|
||||
(eq resulting-type 'default)
|
||||
(delete-process stream))
|
||||
;; Return value:
|
||||
(list stream greeting capabilities resulting-type)))
|
||||
|
||||
(defun proto-stream-command (stream command eoc)
|
||||
(let ((start (with-current-buffer (process-buffer stream) (point-max))))
|
||||
@ -241,47 +234,43 @@ encrypted or not."
|
||||
(funcall (if (fboundp 'open-gnutls-stream)
|
||||
'open-gnutls-stream
|
||||
'open-tls-stream)
|
||||
name buffer host service)))
|
||||
name buffer host service))
|
||||
(eoc (plist-get parameters :end-of-command)))
|
||||
(if (null stream)
|
||||
nil
|
||||
(list nil nil nil 'default)
|
||||
;; If we're using tls.el, we have to delete the output from
|
||||
;; openssl/gnutls-cli.
|
||||
(unless (fboundp 'open-gnutls-stream)
|
||||
(proto-stream-get-response
|
||||
stream start (proto-stream-eoc parameters))
|
||||
(proto-stream-get-response stream start eoc)
|
||||
(goto-char (point-min))
|
||||
(when (re-search-forward (proto-stream-eoc parameters) nil t)
|
||||
(when (re-search-forward eoc nil t)
|
||||
(goto-char (match-beginning 0))
|
||||
(delete-region (point-min) (line-beginning-position))))
|
||||
(proto-stream-capability-open start stream parameters 'tls)))))
|
||||
|
||||
(defun proto-stream-open-shell (name buffer host service parameters)
|
||||
(require 'format-spec)
|
||||
(proto-stream-capability-open
|
||||
(with-current-buffer buffer (point))
|
||||
(let ((process-connection-type nil))
|
||||
(start-process name buffer shell-file-name
|
||||
shell-command-switch
|
||||
(format-spec
|
||||
(cadr (memq :shell-command parameters))
|
||||
(plist-get parameters :shell-command)
|
||||
(format-spec-make
|
||||
?s host
|
||||
?p service))))
|
||||
parameters 'network))
|
||||
parameters 'default))
|
||||
|
||||
(defun proto-stream-capability-open (start stream parameters stream-type)
|
||||
(let ((capability-command (cadr (memq :capability-command parameters)))
|
||||
(greeting (proto-stream-get-response
|
||||
stream start (proto-stream-eoc parameters))))
|
||||
(let* ((capability-command (plist-get parameters :capability-command))
|
||||
(eoc (plist-get parameters :end-of-command))
|
||||
(greeting (proto-stream-get-response stream start eoc)))
|
||||
(list stream greeting
|
||||
(and capability-command
|
||||
(proto-stream-command
|
||||
stream capability-command (proto-stream-eoc parameters)))
|
||||
(proto-stream-command stream capability-command eoc))
|
||||
stream-type)))
|
||||
|
||||
(defun proto-stream-eoc (parameters)
|
||||
(or (cadr (memq :end-of-command parameters))
|
||||
"\r\n"))
|
||||
|
||||
(provide 'proto-stream)
|
||||
|
||||
;;; proto-stream.el ends here
|
||||
|
@ -1,3 +1,7 @@
|
||||
2011-03-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* config.nt: Remove RETSIGTYPE, SIGTYPE (identical to void).
|
||||
|
||||
2011-03-25 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* addpm.c (main): Remove unused variable `retval'.
|
||||
|
@ -393,15 +393,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
#undef STACK_DIRECTION
|
||||
#endif
|
||||
|
||||
/* Define the return type of signal handlers if the s-xxx file
|
||||
did not already do so. */
|
||||
#define RETSIGTYPE void
|
||||
|
||||
/* SIGTYPE is the macro we actually use. */
|
||||
#ifndef SIGTYPE
|
||||
#define SIGTYPE RETSIGTYPE
|
||||
#endif
|
||||
|
||||
#ifdef emacs /* Don't do this for lib-src. */
|
||||
/* Tell regex.c to use a type compatible with Emacs. */
|
||||
#define RE_TRANSLATE_TYPE Lisp_Object
|
||||
|
@ -27,6 +27,20 @@
|
||||
(stack_copy_size): Now size_t, not int.
|
||||
(stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
|
||||
|
||||
2011-03-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* syssignal.h: Replace RETSIGTYPE with void.
|
||||
* atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
|
||||
* keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
|
||||
Replace SIGTYPE with void everywhere.
|
||||
* s/usg5-4-common.h (SIGTYPE): Remove definition.
|
||||
* s/template.h (SIGTYPE): Remove commented out definition.
|
||||
|
||||
2011-03-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* xdisp.c (redisplay_window): Don't check buffer's clip_changed
|
||||
flag as a prerequisite for invoking try_scrolling. (Bug#6671)
|
||||
|
||||
2011-03-26 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* w32.c (read_unc_volume): Use parameter `henum', instead of
|
||||
|
@ -64,7 +64,7 @@ static void set_alarm (void);
|
||||
static void schedule_atimer (struct atimer *);
|
||||
static struct atimer *append_atimer_lists (struct atimer *,
|
||||
struct atimer *);
|
||||
SIGTYPE alarm_signal_handler (int signo);
|
||||
void alarm_signal_handler (int signo);
|
||||
|
||||
|
||||
/* Start a new atimer of type TYPE. TIME specifies when the timer is
|
||||
@ -388,7 +388,7 @@ run_timers (void)
|
||||
/* Signal handler for SIGALRM. SIGNO is the signal number, i.e.
|
||||
SIGALRM. */
|
||||
|
||||
SIGTYPE
|
||||
void
|
||||
alarm_signal_handler (int signo)
|
||||
{
|
||||
#ifndef SYNC_INPUT
|
||||
|
@ -3301,7 +3301,7 @@ syms_of_data (void)
|
||||
XSYMBOL (intern_c_string ("most-negative-fixnum"))->constant = 1;
|
||||
}
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
arith_error (int signo)
|
||||
{
|
||||
sigsetmask (SIGEMPTYMASK);
|
||||
|
@ -5566,7 +5566,7 @@ marginal_area_string (struct window *w, enum window_part part,
|
||||
|
||||
#ifdef SIGWINCH
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
window_change_signal (int signalnum) /* If we don't have an argument, */
|
||||
/* some compilers complain in signal calls. */
|
||||
{
|
||||
|
@ -308,7 +308,7 @@ pthread_t main_thread;
|
||||
|
||||
|
||||
/* Handle bus errors, invalid instruction, etc. */
|
||||
SIGTYPE
|
||||
void
|
||||
fatal_error_signal (int sig)
|
||||
{
|
||||
SIGNAL_THREAD_CHECK (sig);
|
||||
@ -345,7 +345,7 @@ fatal_error_signal (int sig)
|
||||
#ifdef SIGDANGER
|
||||
|
||||
/* Handler for SIGDANGER. */
|
||||
SIGTYPE
|
||||
void
|
||||
memory_warning_signal (sig)
|
||||
int sig;
|
||||
{
|
||||
|
@ -103,7 +103,7 @@ extern double logb (double);
|
||||
#endif
|
||||
|
||||
#ifdef FLOAT_CATCH_SIGILL
|
||||
static SIGTYPE float_error ();
|
||||
static void float_error ();
|
||||
#endif
|
||||
|
||||
/* Nonzero while executing in floating point.
|
||||
@ -126,7 +126,7 @@ static const char *float_error_fn_name;
|
||||
Handle errors which may result in signals or may set errno.
|
||||
|
||||
Note that float_error may be declared to return void, so you can't
|
||||
just cast the zero after the colon to (SIGTYPE) to make the types
|
||||
just cast the zero after the colon to (void) to make the types
|
||||
check properly. */
|
||||
|
||||
#ifdef FLOAT_CHECK_ERRNO
|
||||
@ -960,7 +960,7 @@ Rounds the value toward zero. */)
|
||||
}
|
||||
|
||||
#ifdef FLOAT_CATCH_SIGILL
|
||||
static SIGTYPE
|
||||
static void
|
||||
float_error (signo)
|
||||
int signo;
|
||||
{
|
||||
|
@ -434,15 +434,15 @@ static void restore_getcjmp (jmp_buf);
|
||||
static Lisp_Object apply_modifiers (int, Lisp_Object);
|
||||
static void clear_event (struct input_event *);
|
||||
static Lisp_Object restore_kboard_configuration (Lisp_Object);
|
||||
static SIGTYPE interrupt_signal (int signalnum);
|
||||
static void interrupt_signal (int signalnum);
|
||||
#ifdef SIGIO
|
||||
static SIGTYPE input_available_signal (int signo);
|
||||
static void input_available_signal (int signo);
|
||||
#endif
|
||||
static void handle_interrupt (void);
|
||||
static void timer_start_idle (void);
|
||||
static void timer_stop_idle (void);
|
||||
static void timer_resume_idle (void);
|
||||
static SIGTYPE handle_user_signal (int);
|
||||
static void handle_user_signal (int);
|
||||
static char *find_user_signal_name (int);
|
||||
static int store_user_signal_events (void);
|
||||
|
||||
@ -7082,7 +7082,7 @@ process_pending_signals (void)
|
||||
#ifdef SIGIO /* for entire page */
|
||||
/* Note SIGIO has been undef'd if FIONREAD is missing. */
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
input_available_signal (int signo)
|
||||
{
|
||||
/* Must preserve main program's value of errno. */
|
||||
@ -7160,7 +7160,7 @@ add_user_signal (int sig, const char *name)
|
||||
signal (sig, handle_user_signal);
|
||||
}
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
handle_user_signal (int sig)
|
||||
{
|
||||
int old_errno = errno;
|
||||
@ -10712,7 +10712,7 @@ clear_waiting_for_input (void)
|
||||
SIGINT was generated by C-g, so we call handle_interrupt.
|
||||
Otherwise, the handler kills Emacs. */
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
interrupt_signal (int signalnum) /* If we don't have an argument, some */
|
||||
/* compilers complain in signal calls. */
|
||||
{
|
||||
|
@ -485,7 +485,7 @@ extern void push_frame_kboard (struct frame *);
|
||||
extern void pop_kboard (void);
|
||||
extern void temporarily_switch_to_single_kboard (struct frame *);
|
||||
extern void record_asynch_buffer_change (void);
|
||||
extern SIGTYPE input_poll_signal (int);
|
||||
extern void input_poll_signal (int);
|
||||
extern void start_polling (void);
|
||||
extern void stop_polling (void);
|
||||
extern void set_poll_suppress_count (int);
|
||||
|
@ -3181,7 +3181,7 @@ extern Lisp_Object decode_env_path (const char *, const char *);
|
||||
extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
|
||||
extern Lisp_Object Qfile_name_handler_alist;
|
||||
extern void (*fatal_error_signal_hook) (void);
|
||||
extern SIGTYPE fatal_error_signal (int);
|
||||
extern void fatal_error_signal (int);
|
||||
EXFUN (Fkill_emacs, 1) NO_RETURN;
|
||||
#if HAVE_SETLOCALE
|
||||
void fixup_locale (void);
|
||||
|
@ -5471,7 +5471,7 @@ read_process_output (Lisp_Object proc, register int channel)
|
||||
jmp_buf send_process_frame;
|
||||
Lisp_Object process_sent_to;
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
send_process_trap (int ignore)
|
||||
{
|
||||
SIGNAL_THREAD_CHECK (SIGPIPE);
|
||||
@ -5498,7 +5498,7 @@ send_process (volatile Lisp_Object proc, const char *volatile buf,
|
||||
EMACS_INT rv;
|
||||
struct coding_system *coding;
|
||||
struct gcpro gcpro1;
|
||||
SIGTYPE (*volatile old_sigpipe) (int);
|
||||
void (*volatile old_sigpipe) (int);
|
||||
|
||||
GCPRO1 (object);
|
||||
|
||||
@ -5620,7 +5620,7 @@ send_process (volatile Lisp_Object proc, const char *volatile buf,
|
||||
while (this > 0)
|
||||
{
|
||||
int outfd = p->outfd;
|
||||
old_sigpipe = (SIGTYPE (*) (int)) signal (SIGPIPE, send_process_trap);
|
||||
old_sigpipe = (void (*) (int)) signal (SIGPIPE, send_process_trap);
|
||||
#ifdef DATAGRAM_SOCKETS
|
||||
if (DATAGRAM_CHAN_P (outfd))
|
||||
{
|
||||
@ -6380,7 +6380,7 @@ process has been transmitted to the serial port. */)
|
||||
indirectly; if it does, that is a bug */
|
||||
|
||||
#ifdef SIGCHLD
|
||||
static SIGTYPE
|
||||
static void
|
||||
sigchld_handler (int signo)
|
||||
{
|
||||
int old_errno = errno;
|
||||
|
@ -77,15 +77,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
a file that someone else has modified in his Emacs. */
|
||||
#define CLASH_DETECTION
|
||||
|
||||
/* Define this if your operating system declares signal handlers to
|
||||
have a type other than the usual. `The usual' is `void' for ANSI C
|
||||
systems (i.e. when the __STDC__ macro is defined), and `int' for
|
||||
pre-ANSI systems. If you're using GCC on an older system, __STDC__
|
||||
will be defined, but the system's include files will still say that
|
||||
signal returns int or whatever; in situations like that, define
|
||||
this to be what the system's include files want. */
|
||||
/* #define SIGTYPE int */
|
||||
|
||||
/* If the character used to separate elements of the executable path
|
||||
is not ':', #define this to be the appropriate character constant. */
|
||||
/* #define SEPCHAR ':' */
|
||||
|
@ -38,9 +38,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
/* The docs for system V/386 suggest v.3 has sigpause, so let's try it. */
|
||||
#define HAVE_SYSV_SIGPAUSE
|
||||
|
||||
/* On USG systems signal handlers return void. */
|
||||
#define SIGTYPE void
|
||||
|
||||
/* Get FIONREAD from <sys/filio.h>. Get <sys/ttold.h> to get struct tchars.
|
||||
But get <termio.h> first to make sure ttold.h doesn't interfere.
|
||||
And don't try to use SIGIO yet. */
|
||||
|
@ -449,7 +449,7 @@ child_setup_tty (int out)
|
||||
struct save_signal
|
||||
{
|
||||
int code;
|
||||
SIGTYPE (*handler) (int);
|
||||
void (*handler) (int);
|
||||
};
|
||||
|
||||
static void save_signal_handlers (struct save_signal *);
|
||||
@ -608,7 +608,7 @@ save_signal_handlers (struct save_signal *saved_handlers)
|
||||
while (saved_handlers->code)
|
||||
{
|
||||
saved_handlers->handler
|
||||
= (SIGTYPE (*) (int)) signal (saved_handlers->code, SIG_IGN);
|
||||
= (void (*) (int)) signal (saved_handlers->code, SIG_IGN);
|
||||
saved_handlers++;
|
||||
}
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ extern sigset_t sys_sigmask ();
|
||||
|
||||
/* Whether this is what all systems want or not, this is what
|
||||
appears to be assumed in the source, for example data.c:arith_error. */
|
||||
typedef RETSIGTYPE (*signal_handler_t) (int);
|
||||
typedef void (*signal_handler_t) (int);
|
||||
|
||||
signal_handler_t sys_signal (int signal_number, signal_handler_t action);
|
||||
sigset_t sys_sigblock (sigset_t new_mask);
|
||||
|
@ -14176,7 +14176,6 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
|
||||
|| temp_scroll_step
|
||||
|| NUMBERP (BVAR (current_buffer, scroll_up_aggressively))
|
||||
|| NUMBERP (BVAR (current_buffer, scroll_down_aggressively)))
|
||||
&& !current_buffer->clip_changed
|
||||
&& CHARPOS (startp) >= BEGV
|
||||
&& CHARPOS (startp) <= ZV)
|
||||
{
|
||||
|
@ -349,7 +349,7 @@ static int handle_one_xevent (struct x_display_info *, XEvent *,
|
||||
int *, struct input_event *);
|
||||
/* Don't declare this NO_RETURN because we want no
|
||||
interference with debugging failing X calls. */
|
||||
static SIGTYPE x_connection_closed (Display *, const char *);
|
||||
static void x_connection_closed (Display *, const char *);
|
||||
|
||||
|
||||
/* Flush display of frame F, or of all frames if F is null. */
|
||||
@ -7650,7 +7650,7 @@ x_trace_wire (void)
|
||||
SIGPIPE will fail, causing Xlib to invoke the X IO error handler,
|
||||
which will do the appropriate cleanup for us. */
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
x_connection_signal (int signalnum) /* If we don't have an argument, */
|
||||
/* some compilers complain in signal calls. */
|
||||
{
|
||||
@ -7673,7 +7673,7 @@ static char *error_msg;
|
||||
/* Handle the loss of connection to display DPY. ERROR_MESSAGE is
|
||||
the text of an error message that lead to the connection loss. */
|
||||
|
||||
static SIGTYPE
|
||||
static void
|
||||
x_connection_closed (Display *dpy, const char *error_message)
|
||||
{
|
||||
struct x_display_info *dpyinfo = x_display_info_for_display (dpy);
|
||||
|
Loading…
x
Reference in New Issue
Block a user