From: Chong Yidong Date: Mon, 31 Jan 2011 23:54:50 +0000 (-0500) Subject: Merge changes from emacs-23 branch X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~1048^2~46 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=14beddf4711854b01d400f36166dc71eb39435bb;p=emacs.git Merge changes from emacs-23 branch --- 14beddf4711854b01d400f36166dc71eb39435bb diff --cc ChangeLog index df753d1f005,6a57a517820..178c8d8e5d7 --- a/ChangeLog +++ b/ChangeLog @@@ -1,171 -1,9 +1,176 @@@ -2011-01-27 Chong Yidong ++2011-01-31 Chong Yidong + + * configure.in: Test existence of xaw3d library, not just the + header (Bug#7642). + -2011-01-23 Peter O'Gorman (tiny change) +2011-01-31 Eli Zaretskii + + * lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/strftime.$(O) and + $(BLD)/time_r.$(O). + ($(BLD)/dtoastr.$(O)): Depend on $(EMACS_ROOT)/src/s/ms-w32.h and + $(EMACS_ROOT)/src/m/intel386.h. - ($(BLD)/strftime.$(O)): ++ ($(BLD)/strftime.$(O)): + ($(BLD)/time_r.$(O)): Define prerequisites. + +2011-01-31 Paul Eggert + + src/emacs.c now gets version number from configure.in + * configure.in (version): Set this from $PACKAGE_VERSION, + which is set from AC_INIT, rather than scouting through src/emacs.c. + * configure: Regenerate. + * make-dist (version): Get it from configure.in, not src/emacs.c. + +2011-01-30 Paul Eggert + + strftime: import from gnulib + * Makefile.in (GNULIB_MODULES): Add strftime. + * configure.in (AC_FUNC_STRFTIME, my_strftime): Remove; no longer + needed. + * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, m4/gl-comp.m4: + Regenerate. + * lib/strftime.c, lib/strftime.h, lib/stdbool.in.h: New files, + imported from gnulib. + * m4/strftime.m4, m4/stdbool.m4, m4/tm_gmtoff.m4: Likewise. + This incorporates many changes from gnulib, including simpler + handling of multibyte formats, porting to mingw32 and other + platforms, and support for higher-resolution time stamps. + Emacs does not yet use the higher-resolution interface. + +2011-01-30 Paul Eggert + + gnulib: import mktime and move-if-change fixes from gnulib + + * configure: Regenerate from the following. + + 2011-01-30 Paul Eggert + + mktime: clarify long_int width checking + * lib/mktime.c (long_int_is_wide_enough): Move this assertion to + the top level, to make it clearer that the assumption about + long_int width is being checked. See + . + + 2011-01-29 Paul Eggert + + TYPE_MAXIMUM: avoid theoretically undefined behavior + * lib/intprops.h (TYPE_MINIMUM, TYPE_MAXIMUM): Do not shift a + negative number, which the C Standard says has undefined behavior. + In practice this is not a problem, but might as well do it by the book. + Reported by Rich Felker and Eric Blake; see + . + * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise. + * lib/mktime.c (TYPE_MAXIMUM): Redo slightly to match the others. + + mktime: #undef mktime before #defining it + * lib/mktime.c (mktime) [DEBUG]: #undef mktime before #defining it. + + mktime: systematically normalize tm_isdst comparisons + * lib/mktime.c (isdst_differ): New function. + (__mktime_internal): Use it systematically for all isdst comparisons. + This completes the fix for libc BZ #6723, and removes the need for + normalizing tm_isdst. See + + (not_equal_tm) [DEBUG]: Use isdst_differ here, too. + + mktime: fix some integer overflow issues and sidestep the rest + + This was prompted by a bug report by Benjamin Lindner for MinGW + . + His bug is due to signed integer overflow (0 - INT_MIN), and I + I scanned through mktime.c looking for other integer overflow + problems, fixing all the bugs I found. + + Although the C Standard says the resulting code is still not safe + in the presence of integer overflow, in practice it should be good + enough for all real-world two's-complement implementations, except + for debugging environments that deliberately trap on integer + overflow (e.g., gcc -ftrapv). + + * lib/mktime.c (WRAPV): New macro. + (SHR): Also check that long_int and time_t shift right in the + usual way, before using the fast-but-unportable method. + (TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE): Remove, no longer + used. The code already assumed two's complement, so there's + no need to test for alternatives. All uses removed. + (TYPE_MAXIMUM): Don't rely here on overflow behavior not defined by + the C standard. Problem reported by Rich Felker in + . + (twos_complement_arithmetic): Also check long_int and time_t. + (time_t_avg, time_t_add_ok, time_t_int_add_ok): New functions. + (guess_time_tm, ranged_convert, __mktime_internal): Use them. + (__mktime_internal): Avoid integer overflow with unary subtraction + in two instances where -1 - X is an adequate replacement for -X, + since the calculations are approximate. + + 2011-01-29 Eric Blake + + mktime: avoid infinite loop + * m4/mktime.m4 (AC_FUNC_MKTIME): Avoid overflow on possibly-signed + type; behavior is still undefined but portable to all known targets. + Reported by Rich Felker. + + 2011-01-28 Paul Eggert + + mktime: avoid problems on NetBSD 5 / i386 + * lib/mktime.c (long_int): New type. This works around a problem + on NetBSD 5 / i386, where 'long int' and 'int' are both 32 bits + but time_t is 64 bits, and where I expect the existing code is + wrong in some cases. + (leapyear, ydhms_diff, guess_time_tm, __mktime_internal): Use it. + (ydhms_diff): Bring back the compile-time check for wide-enough + year and yday. + + mktime: fix misspelling in comment + * lib/mktime.c (__mktime_internal): Fix misspelling in comment. + This merges all recent glibc changes of importance. + + 2011-01-28 Ralf Wildenhues + + move-if-change: cope with concurrent mv of identical file. + * move-if-change (CMPPROG): Accept environment + variable as an override for `cmp'. + (usage): Document CMPPROG. + Adjust comparison to drop stdout. Cope with failure of mv if + the target file exists and is identical to the source, for + parallel builds. + Report from H.J. Lu against binutils in PR binutils/12283. + +2011-01-29 Eli Zaretskii + + * lib/makefile.w32-in: + * lib/getopt_.h: New files. + +2011-01-28 Paul Eggert + + improve fix for MS-DOS file name clash + * Makefile.in (DOS_gnulib_comp.m4): Renamed from DOS-gnulib-comp.m4, + for portability to POSIX make. Reported by Bruno Haible. + (sync-from-gnulib): Copy gl-comp.m4 (if present) back to + gnulib-comp.m4 before running gnulib-tool, to prevent old gnulib + files from accumulating as garbage. Also reported by Bruno Haible. + +2011-01-27 Paul Eggert + + fix two m4/gnulib-*.m4 file names that clashed under MS-DOS + * Makefile.in (DOS-gnulib-comp.m4): New macro. + (sync-from-gnulib): Rename m4/gnulib-comp.m4 to m4/gl-comp.m4 to avoid + problems with MS-DOS 8+3 file name restrictions. + Remove m4/gnulib-cache.m4, as we can live without it. If we kept + it, it would also cause problems when extracting Emacs distribution + tarballs on MS-DOS hosts. + (ACLOCAL_INPUTS): Adjust to file renaming. + * aclocal.m4, configure, lib/Makefile.in, src/config.in: Regenerate. + * config.guess, config.sub: Sync from gnulib. + * m4/gnulib-cache.m4: Remove from repository. + * m4/gl-comp.m4: Rename from m4/gnulib-comp.m4. + +2011-01-25 Glenn Morris + + * README: Add a note about ranges in copyright years. + + * configure.in: Set CANNOT_DUMP on ia64 hpux (port from emacs-23). + +2011-01-25 Peter O'Gorman (tiny change) * configure.in: Add HP-UX on IA64 (Bug#6811). diff --cc configure index bf79cecf5b4,dd69fde936f..624981c8c0f --- a/configure +++ b/configure @@@ -10436,288 -7517,149 +10436,329 @@@ char lgetfilecon () int main () { - char *data, *data2, *data3; - const char *cdata2; - int i, pagesize; - int fd, fd2; +return lgetfilecon (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_selinux_lgetfilecon=yes +else + ac_cv_lib_selinux_lgetfilecon=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_lgetfilecon" >&5 +$as_echo "$ac_cv_lib_selinux_lgetfilecon" >&6; } +if test "x$ac_cv_lib_selinux_lgetfilecon" = xyes; then : + HAVE_LIBSELINUX=yes +else + HAVE_LIBSELINUX=no +fi - pagesize = getpagesize (); + if test "$HAVE_LIBSELINUX" = yes; then - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); +$as_echo "#define HAVE_LIBSELINUX 1" >>confdefs.h - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; + LIBSELINUX_LIBS=-lselinux + fi +fi - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes +HAVE_GNUTLS=no +if test "${with_gnutls}" = "yes" ; then + + succeeded=no + + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_func_mmap_fixed_mapped=no + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then -$as_echo "#define HAVE_MMAP 1" >>confdefs.h -fi -rm -f conftest.mmap conftest.txt + if test "$PKG_CONFIG" = "no" ; then + HAVE_GNUTLS=no + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls >= 2.2.4" >&5 +$as_echo_n "checking for gnutls >= 2.2.4... " >&6; } -if test $use_mmap_for_buffers = yes; then - REL_ALLOC=no + if $PKG_CONFIG --exists "gnutls >= 2.2.4" 2>&5; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + succeeded=yes + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGNUTLS_CFLAGS" >&5 +$as_echo_n "checking LIBGNUTLS_CFLAGS... " >&6; } + LIBGNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= 2.2.4"|sed -e 's,///*,/,g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_CFLAGS" >&5 +$as_echo "$LIBGNUTLS_CFLAGS" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGNUTLS_LIBS" >&5 +$as_echo_n "checking LIBGNUTLS_LIBS... " >&6; } + LIBGNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= 2.2.4"|sed -e 's,///*,/,g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_LIBS" >&5 +$as_echo "$LIBGNUTLS_LIBS" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + LIBGNUTLS_CFLAGS="" + LIBGNUTLS_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + LIBGNUTLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= 2.2.4"` + + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + HAVE_GNUTLS=yes + else + HAVE_GNUTLS=no + fi + + if test "${HAVE_GNUTLS}" = "yes"; then + +$as_echo "#define HAVE_GNUTLS 1" >>confdefs.h + + fi fi -LIBS="$libsrc_libs $LIBS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 -$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : + +HAVE_XAW3D=no +LUCID_LIBW= +if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then + if test "$with_xaw3d" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xaw3d" >&5 +$as_echo_n "checking for xaw3d... " >&6; } + if ${emacs_cv_xaw3d+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XawScrollbarSetThumb in -lXaw3d" >&5 ++$as_echo_n "checking for XawScrollbarSetThumb in -lXaw3d... " >&6; } ++if test "${ac_cv_lib_Xaw3d_XawScrollbarSetThumb+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet $LIBS" ++LIBS="-lXaw3d $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ + #ifdef __cplusplus + extern "C" + #endif -char dnet_ntoa (); ++char XawScrollbarSetThumb (); + int + main () + { -return dnet_ntoa (); ++return XawScrollbarSetThumb (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dnet_dnet_ntoa=yes ++ ac_cv_lib_Xaw3d_XawScrollbarSetThumb=yes + else - ac_cv_lib_dnet_dnet_ntoa=no ++ ac_cv_lib_Xaw3d_XawScrollbarSetThumb=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 -$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } -if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDNET 1 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xaw3d_XawScrollbarSetThumb" >&5 ++$as_echo "$ac_cv_lib_Xaw3d_XawScrollbarSetThumb" >&6; } ++if test "x$ac_cv_lib_Xaw3d_XawScrollbarSetThumb" = x""yes; then : + emacs_cv_xaw3d=yes +else + emacs_cv_xaw3d=no +fi ++ ++else ++ emacs_cv_xaw3d=no ++fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + else + emacs_cv_xaw3d=no + fi + if test $emacs_cv_xaw3d = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; using Lucid toolkit" >&5 +$as_echo "yes; using Lucid toolkit" >&6; } + USE_X_TOOLKIT=LUCID + HAVE_XAW3D=yes + LUCID_LIBW=-lXaw3d + +$as_echo "#define HAVE_XAW3D 1" >>confdefs.h + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libXaw" >&5 +$as_echo_n "checking for libXaw... " >&6; } + if ${emacs_cv_xaw+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int +main () +{ + + ; + return 0; +} _ACEOF +if ac_fn_c_try_link "$LINENO"; then : + emacs_cv_xaw=yes +else + emacs_cv_xaw=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi - LIBS="-ldnet $LIBS" + if test $emacs_cv_xaw = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; using Lucid toolkit" >&5 +$as_echo "yes; using Lucid toolkit" >&6; } + USE_X_TOOLKIT=LUCID + LUCID_LIBW=-lXaw + elif test x"${USE_X_TOOLKIT}" = xLUCID; then + as_fn_error $? "Lucid toolkit requires X11/Xaw include files" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no; do not use toolkit by default" >&5 +$as_echo "no; do not use toolkit by default" >&6; } + USE_X_TOOLKIT=none + fi + fi +fi + +X_TOOLKIT_TYPE=$USE_X_TOOLKIT + +LIBXTR6= +if test "${USE_X_TOOLKIT}" != "none"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking X11 toolkit version" >&5 +$as_echo_n "checking X11 toolkit version... " >&6; } + if ${emacs_cv_x11_toolkit_version_6+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +#if XtSpecificationRelease < 6 +fail; +#endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + emacs_cv_x11_toolkit_version_6=yes +else + emacs_cv_x11_toolkit_version_6=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi + HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6 + if test $emacs_cv_x11_toolkit_version_6 = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: 6 or newer" >&5 +$as_echo "6 or newer" >&6; } + +$as_echo "#define HAVE_X11XTR6 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lXbsd" >&5 -$as_echo_n "checking for main in -lXbsd... " >&6; } -if test "${ac_cv_lib_Xbsd_main+set}" = set; then : + LIBXTR6="-lSM -lICE" + case "$opsys" in + ## Use libw.a along with X11R6 Xt. + unixware) LIBXTR6="$LIBXTR6 -lw" ;; + esac + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: before 6" >&5 +$as_echo "before 6" >&6; } + fi + + OLDLIBS="$LIBS" + if test x$HAVE_X11XTR6 = xyes; then + LIBS="-lXt -lSM -lICE $LIBS" + else + LIBS="-lXt $LIBS" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XmuConvertStandardSelection in -lXmu" >&5 +$as_echo_n "checking for XmuConvertStandardSelection in -lXmu... " >&6; } +if ${ac_cv_lib_Xmu_XmuConvertStandardSelection+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS diff --cc doc/emacs/ChangeLog index c5b31d70139,f3c6afc3fa5..961fa9fb491 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@@ -1,23 -1,11 +1,31 @@@ -2011-01-28 Chong Yidong ++2011-01-31 Chong Yidong + + * search.texi (Regexps): Copyedits. Mention character classes + (Bug#7809). + + * files.texi (File Aliases): Restore explanatory text from Eli + Zaretskii, accidentally removed in 2011-01-08 commit. + +2011-01-29 Eli Zaretskii + + * makefile.w32-in (MAKEINFO): Remove options, leave only program name. + (MAKEINFO_OPTS): New variable. + (ENVADD, $(infodir)/emacs): Use $(MAKEINFO_OPTS). + (emacs.html): New target. + (clean): Remove emacs.html. + +2011-01-23 Werner Lemberg + + * Makefile.in (MAKEINFO): Now controlled by `configure'. + (MAKEINFO_OPTS): New variable. Use it where appropriate. + (ENVADD): Updated. + +2011-01-18 Glenn Morris + + * ack.texi, emacs.texi (Acknowledgments): Update for ERT addition. + + * ack.texi (Acknowledgments): Remove mention of replaced prolog.el. + 2011-01-15 Chong Yidong * building.texi (Compilation): Improve instructions for running two diff --cc doc/lispref/ChangeLog index be8803d4cb2,c651c5cab89..063ea78c09a --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@@ -1,12 -1,15 +1,23 @@@ + 2011-01-28 Chong Yidong + + * vol1.texi (Top): + * vol2.texi (Top): + * elisp.texi (Top): + * display.texi (Display Property): Shorten the menu description of + the "Other Display Specs" node (Bug#7816). + + * keymaps.texi (Defining Menus): Add "menu item" and "extended + menu item" concept index entries (Bug#7805). + -2011-01-23 Chong Yidong +2011-01-29 Eli Zaretskii + + * makefile.w32-in (texinfodir): New variable. + (usermanualdir): Remove as redundant with $(emacsdir). + (MAKEINFO): Remove options, leave only program name. + (MAKEINFO_OPTS): New variable. + (texinputdir, $(infodir)/elisp): Use $(MAKEINFO_OPTS). + +2011-01-25 Chong Yidong Richard Kim * loading.texi (Library Search): Document list-load-path-shadows diff --cc lisp/ChangeLog index 00460741961,ead0456a7b1..b2e5e98016e --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,281 -1,62 +1,329 @@@ -2011-01-31 Deniz Dogan - - * net/rcirc.el: Clean log filenames (Bug#7933). - (rcirc-log-write): Use convert-standard-filename. - (rcirc-log-filename-function): Documentation updates. - + 2011-01-31 Alan Mackenzie + + * progmodes/cc-cmds.el (c-forward-over-illiterals): Continue + parsing if we encounter a naked # (Bug#7595). + (c-beginning-of-statement): Avoid loop in locating the beginning + of a macro. + + 2011-01-31 Chong Yidong + + * files.el (copy-directory): Fix arguments to recursive call. + -2011-01-29 Chong Yidong ++2011-01-31 Chong Yidong + + * files.el (copy-directory): If destination is an existing + directory, copy into a subdirectory there. + -2011-01-29 Andreas Schwab ++2011-01-31 Andreas Schwab + + * emacs-lisp/shadow.el (load-path-shadows-find): Ignore leim-list + files. + -2011-01-28 Chong Yidong ++2011-01-31 Chong Yidong + + * image-dired.el (image-dired-mouse-display-image): No-op if no + file is found (Bug#7817). + + * mouse.el (mouse-menu-non-singleton): Doc fix (Bug#7801). + -2011-01-28 Kenichi Handa ++2011-01-31 Kenichi Handa + + * international/quail.el (quail-keyboard-layout-alist): Remove + superfluous SPC for "pc105-uk" (bug#7927). + -2011-01-27 Glenn Morris ++2011-01-31 Glenn Morris + + * msb.el (msb-menu-bar-update-buffers): Update for changed + argument handling of menu-bar-select-frame. (Bug#7902) + -2011-01-27 Chong Yidong ++2011-01-31 Chong Yidong + + * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Set a limit + to the recursion depth (Bug#7722). + -2011-01-26 Roy Liu (tiny change) ++2011-01-31 Roy Liu (tiny change) + + * term/ns-win.el (ns-find-file): Expand ns-input-file with + command-line-default-directory (Bug#7872). + +2011-01-31 Stefan Monnier + + * progmodes/compile.el (compilation--flush-directory-cache): + New function, extracted from compilation--remove-properties. + (compilation--remove-properties, compilation--parse-region): Use it. + (compilation--previous-directory): Handle one more case. + (compilation-enable-debug-messages): Remove. + (compilation-parse-errors, compilation--flush-parse): Just remove the + left over debug messages. + +2011-01-31 Sam Steingold + + * progmodes/compile.el (compilation-enable-debug-messages): + Add a variable to make the parsing messages introduced in + 2011-01-28T22:12:05Z!monnier@iro.umontreal.ca optional. + (compilation-parse-errors, compilation--flush-parse): Use it. + +2011-01-31 Deniz Dogan + + * net/rcirc.el: New customizable nick completion format. + (rcirc-nick-completion-format): New defcustom. + (rcirc-complete): Use it. + +2011-01-31 Deniz Dogan + + * net/rcirc.el: Clean log filenames (Bug#7933). + (rcirc-log-write): Use convert-standard-filename. + (rcirc-log-filename-function): Documentation updates. + +2011-01-30 Jan Djärv + + * mail/emacsbug.el (report-emacs-bug-insert-to-mailer): + Check report-emacs-bug-can-use-osx-open and use that if t. + (report-emacs-bug-can-use-osx-open): New function. + (report-emacs-bug): Rename can-xdg-email to can-insert-mail. + Check report-emacs-bug-can-use-osx-open also for can-insert-mail. + +2011-01-29 Chong Yidong + + * vc/vc-dispatcher.el (vc-set-async-update): New function for + updating Dired or VC-dir buffers after async command completes. + + * vc/vc-bzr.el (vc-bzr-async-command): Return the process buffer. + (vc-bzr-pull, vc-bzr-merge-branch): Use vc-set-async-update. + + * vc/vc-git.el (vc-git-merge-branch): Add FETCH_HEAD to branch + completions if it exists. Use vc-set-async-update. + (vc-git-pull): Use vc-set-async-update. + + * vc/vc-hg.el (vc-hg-pull): Fix default-contents arg to + read-shell-command. Use vc-set-async-update. + (vc-hg-merge-branch): Use vc-set-async-update. + +2011-01-29 Daiki Ueno + + * epg.el (epg--status-KEYEXPIRED, epg--status-KEYREVOKED): + Don't presume KEYEXPIRED and KEYREVOKED to be a fatal error status + (Bug#7931). + +2011-01-29 Stefan Monnier + + * progmodes/compile.el: Avoid an N² behavior in grep. + (compilation--previous-directory): New fun. + (compilation--previous-directory-cache): New var. + (compilation--remove-properties): Flush it. + (compilation-directory-properties, compilation-error-properties): + Use the new fun to speed up looking for the current directory. + +2011-01-29 Chong Yidong + + * vc/vc-hg.el (vc-hg-history): New var. + (vc-hg-pull): Perform default pull if called via Lisp by vc-pull. + (vc-hg-merge-branch): New function. + + * vc/vc.el (vc-pull): Make vc-update an alias for this, instead of + the other way around. + + * vc/vc-git.el (vc-git-branches, vc-git-pull) + (vc-git-merge-branch): New functions. + (vc-git-history): New var. + +2011-01-28 Chong Yidong + + * vc/vc-dispatcher.el (vc-do-async-command): New function. + + * vc/vc-bzr.el (vc-bzr-async-command): Convert into a wrapper for + vc-do-async-command. + + * vc/vc-bzr.el (vc-bzr-pull, vc-bzr-merge-branch): + Callers changed. + +2011-01-28 Leo + + * emacs-lisp/advice.el (ad-make-advised-docstring): Don't apply + highlighting to the "this function is advised" message. + + * help-mode.el (help-mode-finish): Apply highlighting here, to + avoid clobbering by substitute-command-keys (Bug#6304). + +2011-01-28 Chong Yidong + + * woman.el (woman0-roff-buffer): Process roff escape sequences + occurring prior to the first request (Bug#7843). + +2011-01-28 Stefan Monnier + + * progmodes/compile.el: Don't use font-lock any more. + (compilation-error-regexp-alist-alist): Change handling of makepp + so it preserves the warning/error distinction on subsequent files. + Simplify various rules. + (compilation-directory-properties): Use font-lock-face. + Add a compilation-message property. + (compilation-internal-error-properties): Use font-lock-face. + Don't set the compilation-debug property here. + (compilation--put-prop, compilation--remove-properties) + (compilation--parse-region, compilation--ensure-parse) + (compilation--ensure-parse): New functions. + (compilation-parse-errors): New function, largely inspired of + compilation-mode-font-lock-keywords. Set compilation-debug here. + (compilation--parsed): New var. + (compilation--flush-parse): Use compilation--ensure-parse. + (compilation-start): Don't call font-lock. + (compilation-turn-on-font-lock): Remove. + (compilation-setup): Don't set font-lock-extra-managed-props not change + other font-lock settings, other than keywords. + Don't activate font-lock-mode. + Set change-major-mode-hook and before-change-functions. + (compilation--unsetup): Remove properties and hooks. + (compilation-next-single-property-change): New function. + (compilation-next-error): Use it to parse when needed. + (compile-goto-error): Parse buffer as needed. + (compilation--compat-error-properties): Don't need a dummy `face' + property any more. + +2011-01-28 Stefan Monnier + + * progmodes/compile.el: Use accessors for clarity and fix omake hack. + (compilation-process-setup-function): Fix docstring's false promises. + (compilation-error-regexp-alist-alist): Catch omake's continuous + recompilation message and avoid reuse of old markers. + (compilation-parse-errors-function): Declare obsolete. + (compilation-buffer-modtime): Remove. + (compilation--make-cdrloc, compilation--loc->col) + (compilation--loc->line, compilation--loc->file-struct) + (compilation--loc->marker, compilation--loc->visited) + (compilation--make-file-struct, compilation--file-struct->file-spec) + (compilation--file-struct->formats) + (compilation--file-struct->loc-tree): New macros. Use them. + (compilation--message): New defstruct. Use them. + (compilation-next-error-function): Don't mess with timestamps to try + and guess when to reparse. + +2011-01-28 Stefan Monnier + + * textmodes/tex-mode.el: Get rid of compilation-parse-errors-function + (tex-old-error-file-name): New function, + extracted from tex-compilation-parse-errors. + (tex-compilation-parse-errors): Remove. + (tex-error-regexp-alist): New var. + (tex-shell): Use it to avoid compilation-parse-errors-function. + + * progmodes/grep.el (grep-regexp-alist): Tighten regexp. + (grep-mode-font-lock-keywords): Remove regexp that seems like + a left-over from before we used compile.el. + (grep-mode-font-lock-keywords): Call syntax-ppss-flush-cache when + modifying the buffer within with-silent-modifications. + + * progmodes/compile.el: Cleanup text-properties namespace by using + `compilation-message' instead of `message', `compilation-directory' + instead of `directory', and `compilation-debug' instead of `debug'. + (compilation-last-buffer, compilation-parsing-end) + (compilation-error-list, compilation-old-error-list): Move to the + compatibility part of the code. + (compilation-error-properties): If `file' is a function, let it return + a file name. + (compilation-mode-font-lock-keywords): Be more conservative with the + omake "^ *" pattern prefix, to try and minimize the risk of + pathologically slow regexp matching. + (compilation-start): Use inhibit-read-only. + (compilation--unsetup): New function. + (compilation-shell-minor-mode, compilation-minor-mode): Use it. + (compilation-filter): Minor tweaks. + (compilation-next-error-function): Try and avoid abusing variables. + (compilation--flush-file-structure): New fun. + (compilation-fake-loc): Use it to improve behavior when file is reused. + (debug-ignored-errors): Add "Moved past last ...". + (compilation--compat-error-properties) + (compilation--compat-parse-errors): Rename by doubling the "-". + + Port features from the previous prolog.el to the new one. + * progmodes/prolog.el (prolog-system): Add GNU and ECLiPSe options. + (prolog-program-name, prolog-program-switches, prolog-consult-string) + (prolog-compile-string, prolog-prompt-regexp): Get rid of the -i + variable and use a function to compute the value dynamically. + (prolog-prompt-regexp): Add regexp for GNU Prolog. + (prolog-continued-prompt-regexp): Remove, unused. + (prolog-find-value-by-system): Try and use the value of prolog-system + in the *prolog* buffer if it helps. + (prolog-mode-keybindings-common): Bind C-c C-z unconditionally... + (prolog-zip-on): ..and check prolog-system and version here instead. + (prolog-inferior-self-insert-command): New command. + (prolog-inferior-mode-map): Use it. + (prolog-inferior-error-regexp-alist): New var. + (prolog-inferior-mode): Use it, with compilation-shell-minor-mode. + (prolog-input-filter): Use derived-mode-p. + (prolog-inferior-guess-flavor): New function. + (prolog-ensure-process): Use it. Use make-comint-in-buffer rather than + make-comint to avoid running comint-mode twice. + (prolog-inferior-buffer): New fun. + (prolog-old-process-region, prolog-old-process-file): + Don't call prolog-bsts here... + (prolog-build-prolog-command): ...do it here instead. + (prolog-old-process-region, prolog-old-process-file): + Use compilation-fake-loc and compilation-forget-errors. + (prolog-consult-compile-region): Use bolp. + +2011-01-28 Chong Yidong + + * image-mode.el (image-display-size): Doc fix (Bug#7820). + +2011-01-27 Sam Steingold + + * midnight.el (clean-buffer-list-kill-never-buffer-names): + Remove "*server*" which is never created by emacs server. + +2011-01-27 Deniz Dogan + + * vc/vc-bzr.el (vc-bzr-diff): Don't pass --diff-options unless + there are some diff switches. + +2011-01-27 Stefan Monnier + + * progmodes/ruby-mode.el (ruby-syntax-propertize-function): + Copy change made to ruby-font-lock-syntactic-keywords. + + * htmlfontify.el: Make it obey the font-lock-face text property. + Miscellaneous cleanup such as: + - Don't hide expressions after a closing paren. + - Move initial setq into let. + - Hoist common parts out of ifs. + (hfy-p-to-face, hfy-p-to-face-lennart): Remove. + (hfy-face-at): Use get-text-property instead. + (hfy-prop-invisible-p): Use invisible-p if available. + (htmlfontify-manual): Use \\[...]. + (hfy-html-quote-regex): Use [...]. + (hfy-combined-face-spec): Simplify. + (hfy-compile-face-map): Don't presume point-min==1. + (hfy-css-name, hfy-buffer, htmlfontify-buffer): Use \' rather than $ to + match end of string. + (hfy-text-p): η-reduce. + (hfy-tags-for-file): Receive cache-hash directly. + (hfy-mark-tag-names): Adjust call. + +2011-01-27 Glenn Morris + + * msb.el (msb-after-load-hooks): Make it an obsolete alias. + (msb-after-load-hook): Remove eval-after-load wackiness. + +2011-01-25 Sam Steingold + + * vc/vc-svn.el (vc-svn-diff): Use `diff-command' instead of the + literal "diff" (important for windows-nt). + 2011-01-25 Glenn Morris - * comint.el (comint-mode): Doc fix. (Bug#7897) + * emacs-lisp/copyright.el (copyright-at-end-flag) + (copyright-names-regexp): Add safety properties. + (copyright-year-ranges): New option. + (copyright-find-end): New function, split from copyright-update-year. + (copyright-update-year): Use copyright-find-end. + (copyright-fix-years): Optionally, convert years to ranges. + Handle years continued over comment lines. + Do not mess with the fill-prefix. + Do not call copyright-update. + (copyright-update-directory): Optionally, fix years rather than update. + Skip directories. Find files with only safe local vars. -2011-01-24 Stefan Monnier +2011-01-25 Stefan Monnier * files.el (file-name-non-special): Only change buffer-file-name after insert-file-contents if it's `visit'ing the file (bug#7854). diff --cc lisp/erc/ChangeLog index 879dd228562,fb05e6f9d1f..ee81bc48693 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@@ -1,18 -1,9 +1,23 @@@ + 2011-01-31 Antoine Levitt (tiny change) + + * erc-track.el (track): Don't reset erc-modified-channels-object + each time erc-track-mode is activated. + -2010-10-23 Julien Danjou +2011-01-13 Stefan Monnier + + * erc.el (erc-mode): + * erc-dcc.el (erc-dcc-chat-mode): Use define-derived-mode. + +2010-11-11 Glenn Morris + + * erc-lang.el (erc-cmd-LANG): Fix what may have been a typo. + +2010-11-05 Lars Magne Ingebrigtsen + + * erc-backend.el (erc-coding-system-precedence): New variable. + (erc-decode-string-from-target): Use it. + +2010-10-24 Julien Danjou * erc-backend.el (erc-server-JOIN): Set the correct target list on join. diff --cc lisp/progmodes/cc-engine.el index 406ee1a91d9,f96cd1b5c93..f90d29bf009 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@@ -5368,9 -4393,8 +5368,11 @@@ comment at the start of cc-engine.el fo (goto-char safe-pos) t))) +;; cc-mode requires cc-fonts. +(declare-function c-fontify-recorded-types-and-refs "cc-fonts" ()) + + (defvar c-forward-<>-arglist-recur-depth) + (defun c-forward-<>-arglist (all-types) ;; The point is assumed to be at a "<". Try to treat it as the open ;; paren of an angle bracket arglist and move forward to the diff --cc lisp/term/ns-win.el index 6286b83258b,6880fdb8807..712929ecec0 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@@ -487,10 -786,13 +487,12 @@@ unless the current buffer is a scratch (defun ns-find-file () "Do a `find-file' with the `ns-input-file' as argument." (interactive) - (let* ((f (file-truename (pop ns-input-file))) - (let ((f) (file) (bufwin1) (bufwin2)) - (setq f (file-truename (expand-file-name (car ns-input-file) - command-line-default-directory))) - (setq ns-input-file (cdr ns-input-file)) - (setq file (find-file-noselect f)) - (setq bufwin1 (get-buffer-window file 'visible)) - (setq bufwin2 (get-buffer-window "*scratch*" 'visibile)) ++ (let* ((f (file-truename ++ (expand-file-name (pop ns-input-file) ++ command-line-default-directory))) + (file (find-file-noselect f)) + (bufwin1 (get-buffer-window file 'visible)) + (bufwin2 (get-buffer-window "*scratch*" 'visibile))) (cond (bufwin1 (select-frame (window-frame bufwin1)) diff --cc src/ChangeLog index 7c4401c1c81,af76f670e6c..2353116c8bd --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,93 -1,21 +1,108 @@@ -2011-01-29 Andreas Schwab ++2011-01-31 Andreas Schwab + + * image.c (DEF_IMGLIB_FN): Add parameter rettype, use it instead + of int. All uses adjusted. + (PNG_JMPBUF, png_load, jpeg_load, tiff_load, gif_load) + (svg_load_image): Remove casts. + -2011-01-29 Chong Yidong ++2011-01-31 Chong Yidong + + * image.c (fn_png_longjmp, fn_png_set_longjmp_fn): New png + function definitions for compiling with libpng-1.5. + (PNG_LONGJMP, PNG_JMPBUF): New macros for libpng-1.5. + (my_png_error, png_load): Use them. Suggested by Thomas Klausner + (Bug#7908). + +2011-01-31 Eli Zaretskii + + * s/ms-w32.h (HAVE_STRFTIME): Don't define. + + * makefile.w32-in (OBJ2): Remove strftime.$(O). + ($(BLD)/strftime.$(O)): Remove prerequisites. + +2011-01-31 Paul Eggert + + src/emacs.c now gets version number from configure.in + * emacs.c (emacs_version): Set to VERSION so that it + is determined automatically from ../configure.in. + +2011-01-31 Jim Meyering + + * charset.c (load_charset_map): Don't deref NULL on failed malloc. + Use xmalloc rather than malloc. + +2011-01-30 Paul Eggert + + strftime: import from gnulib + * Makefile.in (obj): Remove strftime.o, as gnulib now does this for us. + * deps.mk (strftime.o): Remove. + * editfns.c: Include , supplied by gnulib. + (emacs_strftimeu): Remove decl. + (emacs_memftimeu): Use nstrftime (the gnulib name) rather than + emacs_strftimeu. + * config.in: Regenerate. + * strftime.c: Remove; we now use strftime from gnulib. + + Use SSDATA when the context wants char *. + * alloc.c, buffer.c, bytecode.c, callproc.c, dired.c: + * dispnew.c, doc.c, editfns.c, emacs.c, fileio.c, filelock.c: + * fns.c, font.c, frame.c, image.c, indent.c, keyboard.c: + * lread.c, minibuf.c, print.c, process.c, search.c, widget.c: + * xdisp.c, xfaces.c, xfns.c, xml.c, xselect.c, xterm.c: + Use SSDATA (not SDATA) when the context of the expression wants + char * (not unsigned char *). + +2011-01-30 Jan Djärv + + * .gdbinit: Read global lisp variables as globals.f_V*. + +2011-01-30 Andreas Schwab + + * font.c (PROP_MATCH): Remove parameter N and use strlen instead. + All uses changed. + (PROP_SAVE): Likewise. + +2011-01-29 Chong Yidong + + * keyboard.c (make_lispy_position): Fix typo in last change + (Bug#7935). + +2011-01-29 Eli Zaretskii + + * s/ms-w32.h (HAVE_MKTIME): Remove. + + * makefile.w32-in (LOCAL_FLAGS): Add -I../lib. + (GNULIB): New variable. + (LIBS): Add $(GNULIB). + $(TEMACS): Depend on $(GNULIB). + : Fix font-lock disrupted by a lone `"'. + +2011-01-29 Jan Djärv + + * nsselect.m (ns_string_from_pasteboard): Get length of string + and use make_string instead of build_string (Bug#7934). + (ns_string_to_pasteboard_internal): Use initWithBytesNoCopy + instead of stringWithUTF8String (Bug#7934). + +2011-01-29 Anders Lindgren (tiny change) + + * nsfont.m (nsfont_open): Ensure that fonts with inexact + descenders would not become one pixel too tall (Bug#7887). + 2011-01-28 Chong Yidong - * m/intel386.h: Define NO_ARG_ARRAY. Suggested by Dan Nicolaescu. + * keyboard.c (make_lispy_position): For clicks on right fringe or + margin, compute text position using the X coordinate relative to + the left of the text area (Bug#7839). + +2011-01-28 Kenichi Handa + + * ftfont.c (ftfont_spec_pattern): Check each extra property + value. + +2011-01-28 Stefan Monnier + + * xdisp.c (safe_eval_handler): Distinguish symbols and strings. 2011-01-27 Chong Yidong diff --cc src/image.c index d533d7edee6,b814b795fab..3b846bcc400 --- a/src/image.c +++ b/src/image.c @@@ -1896,7 -1977,7 +1896,7 @@@ mark_image_cache (struct image_cache *c #ifdef HAVE_NTGUI /* Macro for defining functions that will be loaded from image DLLs. */ - #define DEF_IMGLIB_FN(func,args) int (FAR CDECL *fn_##func)args -#define DEF_IMGLIB_FN(rettype, func) rettype (FAR CDECL *fn_##func)() ++#define DEF_IMGLIB_FN(rettype,func,args) rettype (FAR CDECL *fn_##func)args /* Macro for loading those image functions from the library. */ #define LOAD_IMGLIB_FN(lib,func) { \ @@@ -3251,12 -3387,10 +3251,12 @@@ xpm_free_colors (Display *dpy, Colorma /* XPM library details. */ - DEF_IMGLIB_FN (XpmFreeAttributes, (XpmAttributes *)); - DEF_IMGLIB_FN (XpmCreateImageFromBuffer, (Display *, char *, xpm_XImage **, -DEF_IMGLIB_FN (void, XpmFreeAttributes); -DEF_IMGLIB_FN (int, XpmCreateImageFromBuffer); -DEF_IMGLIB_FN (int, XpmReadFileToImage); -DEF_IMGLIB_FN (void, XImageFree); ++DEF_IMGLIB_FN (void, XpmFreeAttributes, (XpmAttributes *)); ++DEF_IMGLIB_FN (int, XpmCreateImageFromBuffer, (Display *, char *, xpm_XImage **, + xpm_XImage **, XpmAttributes *)); - DEF_IMGLIB_FN (XpmReadFileToImage, (Display *, char *, xpm_XImage **, ++DEF_IMGLIB_FN (int, XpmReadFileToImage, (Display *, char *, xpm_XImage **, + xpm_XImage **, XpmAttributes *)); - DEF_IMGLIB_FN (XImageFree, (xpm_XImage *)); ++DEF_IMGLIB_FN (void, XImageFree, (xpm_XImage *)); static int init_xpm_functions (Lisp_Object libraries) @@@ -5419,31 -5568,32 +5419,36 @@@ png_image_p (Lisp_Object object #ifdef HAVE_NTGUI /* PNG library details. */ - DEF_IMGLIB_FN (png_get_io_ptr, (png_structp)); - DEF_IMGLIB_FN (png_sig_cmp, (png_bytep, png_size_t, png_size_t)); - DEF_IMGLIB_FN (png_create_read_struct, (png_const_charp, png_voidp, - png_error_ptr, png_error_ptr)); - DEF_IMGLIB_FN (png_create_info_struct, (png_structp)); - DEF_IMGLIB_FN (png_destroy_read_struct, (png_structpp, png_infopp, png_infopp)); - DEF_IMGLIB_FN (png_set_read_fn, (png_structp, png_voidp, png_rw_ptr)); - DEF_IMGLIB_FN (png_set_sig_bytes, (png_structp, int)); - DEF_IMGLIB_FN (png_read_info, (png_structp, png_infop)); - DEF_IMGLIB_FN (png_get_IHDR, (png_structp, png_infop, -DEF_IMGLIB_FN (png_voidp, png_get_io_ptr); -DEF_IMGLIB_FN (int, png_sig_cmp); -DEF_IMGLIB_FN (png_structp, png_create_read_struct); -DEF_IMGLIB_FN (png_infop, png_create_info_struct); -DEF_IMGLIB_FN (void, png_destroy_read_struct); -DEF_IMGLIB_FN (void, png_set_read_fn); -DEF_IMGLIB_FN (void, png_set_sig_bytes); -DEF_IMGLIB_FN (void, png_read_info); -DEF_IMGLIB_FN (png_uint_32, png_get_IHDR); -DEF_IMGLIB_FN (png_uint_32, png_get_valid); -DEF_IMGLIB_FN (void, png_set_strip_16); -DEF_IMGLIB_FN (void, png_set_expand); -DEF_IMGLIB_FN (void, png_set_gray_to_rgb); -DEF_IMGLIB_FN (void, png_set_background); -DEF_IMGLIB_FN (png_uint_32, png_get_bKGD); -DEF_IMGLIB_FN (void, png_read_update_info); -DEF_IMGLIB_FN (png_byte, png_get_channels); -DEF_IMGLIB_FN (png_size_t, png_get_rowbytes); -DEF_IMGLIB_FN (void, png_read_image); -DEF_IMGLIB_FN (void, png_read_end); -DEF_IMGLIB_FN (void, png_error); ++DEF_IMGLIB_FN (png_voidp, png_get_io_ptr, (png_structp)); ++DEF_IMGLIB_FN (int, png_sig_cmp, (png_bytep, png_size_t, png_size_t)); ++DEF_IMGLIB_FN (png_structp, png_create_read_struct, (png_const_charp, png_voidp, ++ png_error_ptr, png_error_ptr)); ++DEF_IMGLIB_FN (png_infop, png_create_info_struct, (png_structp)); ++DEF_IMGLIB_FN (void, png_destroy_read_struct, (png_structpp, png_infopp, png_infopp)); ++DEF_IMGLIB_FN (void, png_set_read_fn, (png_structp, png_voidp, png_rw_ptr)); ++DEF_IMGLIB_FN (void, png_set_sig_bytes, (png_structp, int)); ++DEF_IMGLIB_FN (void, png_read_info, (png_structp, png_infop)); ++DEF_IMGLIB_FN (png_uint_32, png_get_IHDR, (png_structp, png_infop, + png_uint_32 *, png_uint_32 *, + int *, int *, int *, int *, int *)); - DEF_IMGLIB_FN (png_get_valid, (png_structp, png_infop, png_uint_32)); - DEF_IMGLIB_FN (png_set_strip_16, (png_structp)); - DEF_IMGLIB_FN (png_set_expand, (png_structp)); - DEF_IMGLIB_FN (png_set_gray_to_rgb, (png_structp)); - DEF_IMGLIB_FN (png_set_background, (png_structp, png_color_16p, ++DEF_IMGLIB_FN (png_uint_32, png_get_valid, (png_structp, png_infop, png_uint_32)); ++DEF_IMGLIB_FN (void, png_set_strip_16, (png_structp)); ++DEF_IMGLIB_FN (void, png_set_expand, (png_structp)); ++DEF_IMGLIB_FN (void, png_set_gray_to_rgb, (png_structp)); ++DEF_IMGLIB_FN (void, png_set_background, (png_structp, png_color_16p, + int, int, double)); - DEF_IMGLIB_FN (png_get_bKGD, (png_structp, png_infop, png_color_16p *)); - DEF_IMGLIB_FN (png_read_update_info, (png_structp, png_infop)); - DEF_IMGLIB_FN (png_get_channels, (png_structp, png_infop)); - DEF_IMGLIB_FN (png_get_rowbytes, (png_structp, png_infop)); - DEF_IMGLIB_FN (png_read_image, (png_structp, png_bytepp)); - DEF_IMGLIB_FN (png_read_end, (png_structp, png_infop)); - DEF_IMGLIB_FN (png_error, (png_structp, png_const_charp)); ++DEF_IMGLIB_FN (png_uint_32, png_get_bKGD, (png_structp, png_infop, png_color_16p *)); ++DEF_IMGLIB_FN (void, png_read_update_info, (png_structp, png_infop)); ++DEF_IMGLIB_FN (png_byte, png_get_channels, (png_structp, png_infop)); ++DEF_IMGLIB_FN (png_size_t, png_get_rowbytes, (png_structp, png_infop)); ++DEF_IMGLIB_FN (void, png_read_image, (png_structp, png_bytepp)); ++DEF_IMGLIB_FN (void, png_read_end, (png_structp, png_infop)); ++DEF_IMGLIB_FN (void, png_error, (png_structp, png_const_charp)); + + #if (PNG_LIBPNG_VER >= 10500) -DEF_IMGLIB_FN (void, png_longjmp); -DEF_IMGLIB_FN (jmp_buf *, png_set_longjmp_fn); ++DEF_IMGLIB_FN (void, png_longjmp, (png_structp, int)); ++DEF_IMGLIB_FN (jmp_buf *, png_set_longjmp_fn, (png_structp, png_longjmp_ptr, size_t)); + #endif /* libpng version >= 1.5 */ static int init_png_functions (Lisp_Object libraries) @@@ -6028,14 -6216,14 +6052,14 @@@ jpeg_image_p (Lisp_Object object #ifdef HAVE_NTGUI /* JPEG library details. */ - DEF_IMGLIB_FN (jpeg_CreateDecompress, (j_decompress_ptr, int, size_t)); - DEF_IMGLIB_FN (jpeg_start_decompress, (j_decompress_ptr)); - DEF_IMGLIB_FN (jpeg_finish_decompress, (j_decompress_ptr)); - DEF_IMGLIB_FN (jpeg_destroy_decompress, (j_decompress_ptr)); - DEF_IMGLIB_FN (jpeg_read_header, (j_decompress_ptr, boolean)); - DEF_IMGLIB_FN (jpeg_read_scanlines, (j_decompress_ptr, JSAMPARRAY, JDIMENSION)); - DEF_IMGLIB_FN (jpeg_std_error, (struct jpeg_error_mgr *)); - DEF_IMGLIB_FN (jpeg_resync_to_restart, (j_decompress_ptr, int)); -DEF_IMGLIB_FN (void, jpeg_CreateDecompress); -DEF_IMGLIB_FN (boolean, jpeg_start_decompress); -DEF_IMGLIB_FN (boolean, jpeg_finish_decompress); -DEF_IMGLIB_FN (void, jpeg_destroy_decompress); -DEF_IMGLIB_FN (int, jpeg_read_header); -DEF_IMGLIB_FN (JDIMENSION, jpeg_read_scanlines); -DEF_IMGLIB_FN (struct jpeg_error_mgr *, jpeg_std_error); -DEF_IMGLIB_FN (boolean, jpeg_resync_to_restart); ++DEF_IMGLIB_FN (void, jpeg_CreateDecompress, (j_decompress_ptr, int, size_t)); ++DEF_IMGLIB_FN (boolean, jpeg_start_decompress, (j_decompress_ptr)); ++DEF_IMGLIB_FN (boolean, jpeg_finish_decompress, (j_decompress_ptr)); ++DEF_IMGLIB_FN (void, jpeg_destroy_decompress, (j_decompress_ptr)); ++DEF_IMGLIB_FN (int, jpeg_read_header, (j_decompress_ptr, boolean)); ++DEF_IMGLIB_FN (JDIMENSION, jpeg_read_scanlines, (j_decompress_ptr, JSAMPARRAY, JDIMENSION)); ++DEF_IMGLIB_FN (struct jpeg_error_mgr *, jpeg_std_error, (struct jpeg_error_mgr *)); ++DEF_IMGLIB_FN (boolean, jpeg_resync_to_restart, (j_decompress_ptr, int)); static int init_jpeg_functions (Lisp_Object libraries) @@@ -6328,16 -6538,11 +6352,15 @@@ jpeg_load (struct frame *f, struct imag return 0; } } + else if (!STRINGP (specified_data)) + { + image_error ("Invalid image data `%s'", specified_data, Qnil); + return 0; + } /* Customize libjpeg's error handling to call my_error_exit when an - error is detected. This function will perform a longjmp. - Casting return value avoids a GCC warning on W32. */ - cinfo.err = (struct jpeg_error_mgr *)fn_jpeg_std_error (&mgr.pub); + error is detected. This function will perform a longjmp. */ + cinfo.err = fn_jpeg_std_error (&mgr.pub); mgr.pub.error_exit = my_error_exit; if ((rc = setjmp (mgr.setjmp_buffer)) != 0) @@@ -6561,17 -6770,14 +6584,17 @@@ tiff_image_p (Lisp_Object object #ifdef HAVE_NTGUI /* TIFF library details. */ - DEF_IMGLIB_FN (TIFFSetErrorHandler, (TIFFErrorHandler)); - DEF_IMGLIB_FN (TIFFSetWarningHandler, (TIFFErrorHandler)); - DEF_IMGLIB_FN (TIFFOpen, (const char *, const char *)); - DEF_IMGLIB_FN (TIFFClientOpen, (const char *, const char *, thandle_t, -DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetErrorHandler); -DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetWarningHandler); -DEF_IMGLIB_FN (TIFF *, TIFFOpen); -DEF_IMGLIB_FN (TIFF *, TIFFClientOpen); -DEF_IMGLIB_FN (int, TIFFGetField); -DEF_IMGLIB_FN (int, TIFFReadRGBAImage); -DEF_IMGLIB_FN (void, TIFFClose); -DEF_IMGLIB_FN (int, TIFFSetDirectory); ++DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetErrorHandler, (TIFFErrorHandler)); ++DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetWarningHandler, (TIFFErrorHandler)); ++DEF_IMGLIB_FN (TIFF *, TIFFOpen, (const char *, const char *)); ++DEF_IMGLIB_FN (TIFF *, TIFFClientOpen, (const char *, const char *, thandle_t, + TIFFReadWriteProc, TIFFReadWriteProc, + TIFFSeekProc, TIFFCloseProc, TIFFSizeProc, + TIFFMapFileProc, TIFFUnmapFileProc)); - DEF_IMGLIB_FN (TIFFGetField, (TIFF *, ttag_t, ...)); - DEF_IMGLIB_FN (TIFFReadRGBAImage, (TIFF *, uint32, uint32, uint32 *, int)); - DEF_IMGLIB_FN (TIFFClose, (TIFF *)); - DEF_IMGLIB_FN (TIFFSetDirectory, (TIFF *, tdir_t)); ++DEF_IMGLIB_FN (int, TIFFGetField, (TIFF *, ttag_t, ...)); ++DEF_IMGLIB_FN (int, TIFFReadRGBAImage, (TIFF *, uint32, uint32, uint32 *, int)); ++DEF_IMGLIB_FN (void, TIFFClose, (TIFF *)); ++DEF_IMGLIB_FN (int, TIFFSetDirectory, (TIFF *, tdir_t)); static int init_tiff_functions (Lisp_Object libraries) @@@ -7014,10 -7248,10 +7034,10 @@@ gif_image_p (Lisp_Object object #ifdef HAVE_NTGUI /* GIF library details. */ - DEF_IMGLIB_FN (DGifCloseFile, (GifFileType *)); - DEF_IMGLIB_FN (DGifSlurp, (GifFileType *)); - DEF_IMGLIB_FN (DGifOpen, (void *, InputFunc)); - DEF_IMGLIB_FN (DGifOpenFileName, (const char *)); -DEF_IMGLIB_FN (int, DGifCloseFile); -DEF_IMGLIB_FN (int, DGifSlurp); -DEF_IMGLIB_FN (GifFileType *, DGifOpen); -DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName); ++DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *)); ++DEF_IMGLIB_FN (int, DGifSlurp, (GifFileType *)); ++DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc)); ++DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *)); static int init_gif_functions (Lisp_Object libraries)