Now on revision 108804. ------------------------------------------------------------ revno: 108804 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-06-29 22:00:08 -0400 message: * lisp/emacs-lisp/cl-lib.el (cl-pushnew): Use macroexp-let2. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-29 11:48:08 +0000 +++ lisp/ChangeLog 2012-06-30 02:00:08 +0000 @@ -1,3 +1,7 @@ +2012-06-30 Stefan Monnier + + * emacs-lisp/cl-lib.el (cl-pushnew): Use macroexp-let2. + 2012-06-29 Dmitry Antipov * fringe.el (fringe-mode): Doc fix. === modified file 'lisp/emacs-lisp/cl-lib.el' --- lisp/emacs-lisp/cl-lib.el 2012-06-28 23:04:27 +0000 +++ lisp/emacs-lisp/cl-lib.el 2012-06-30 02:00:08 +0000 @@ -151,16 +151,15 @@ [keywordp form]))) (if (symbolp place) (if (null keys) - (let ((var (make-symbol "--cl-x--"))) - `(let ((,var ,x)) - (if (memql ,var ,place) - ;; This symbol may later on expand to actual code which then - ;; trigger warnings like "value unused" since cl-pushnew's return - ;; value is rarely used. It should not matter that other - ;; warnings may be silenced, since `place' is used earlier and - ;; should have triggered them already. - (with-no-warnings ,place) - (setq ,place (cons ,var ,place))))) + (macroexp-let2 nil var x + `(if (memql ,var ,place) + ;; This symbol may later on expand to actual code which then + ;; trigger warnings like "value unused" since cl-pushnew's + ;; return value is rarely used. It should not matter that + ;; other warnings may be silenced, since `place' is used + ;; earlier and should have triggered them already. + (with-no-warnings ,place) + (setq ,place (cons ,var ,place)))) (list 'setq place (cl-list* 'cl-adjoin x place keys))) (cl-list* 'cl-callf2 'cl-adjoin x place keys))) ------------------------------------------------------------ revno: 108803 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2012-06-29 21:52:54 +0300 message: Undo change in xdisp.c in revision 108801. src/xdisp.c (try_window_id): Undo last change. 'int' is wide enough to hold vertical pixel positions on screen. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-06-29 13:11:54 +0000 +++ src/ChangeLog 2012-06-29 18:52:54 +0000 @@ -1,5 +1,7 @@ 2012-06-29 Eli Zaretskii + * xdisp.c (try_window_id): Undo last change. + * w32.c (getwd): Adjust commentary about startup_dir. (init_environment): Always call sys_access, even in non-MSVC builds. Don't chdir to the directory of the Emacs executable. === modified file 'src/xdisp.c' --- src/xdisp.c 2012-06-29 11:48:08 +0000 +++ src/xdisp.c 2012-06-29 18:52:54 +0000 @@ -17761,8 +17761,8 @@ { /* Displayed to end of window, but no line containing text was displayed. Lines were deleted at the end of the window. */ - ptrdiff_t first_vpos = WINDOW_WANTS_HEADER_LINE_P (w) ? 1 : 0; - ptrdiff_t vpos = XFASTINT (w->window_end_vpos); + int first_vpos = WINDOW_WANTS_HEADER_LINE_P (w) ? 1 : 0; + int vpos = XFASTINT (w->window_end_vpos); struct glyph_row *current_row = current_matrix->rows + vpos; struct glyph_row *desired_row = desired_matrix->rows + vpos; ------------------------------------------------------------ revno: 108802 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2012-06-29 16:11:54 +0300 message: Fix the current directory of the Emacs process on MS-Windows. src/w32.c (getwd): Adjust commentary about startup_dir. (init_environment): Always call sys_access, even in non-MSVC builds. Don't chdir to the directory of the Emacs executable. This undoes code from 1997 which was justified by the need to "avoid conflicts when removing and renaming directories". But its downside was that every relative file name was being interpreted relative to the directory of the Emacs executable, which can never be TRT. In particular, it broke sys_access when called with relative file names. (sys_access): Map GetLastError to errno. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-06-29 11:48:08 +0000 +++ src/ChangeLog 2012-06-29 13:11:54 +0000 @@ -1,3 +1,16 @@ +2012-06-29 Eli Zaretskii + + * w32.c (getwd): Adjust commentary about startup_dir. + (init_environment): Always call sys_access, even in non-MSVC + builds. Don't chdir to the directory of the Emacs executable. + This undoes code from 1997 which was justified by the need to + "avoid conflicts when removing and renaming directories". But its + downside was that every relative file name was being interpreted + relative to the directory of the Emacs executable, which can never + be TRT. In particular, it broke sys_access when called with + relative file names. + (sys_access): Map GetLastError to errno. + 2012-06-29 Dmitry Antipov * window.h (struct window): Change type of 'fringes_outside_margins' === modified file 'src/w32.c' --- src/w32.c 2012-06-23 16:56:47 +0000 +++ src/w32.c 2012-06-29 13:11:54 +0000 @@ -778,9 +778,8 @@ return dir; return NULL; #else - /* Emacs doesn't actually change directory itself, and we want to - force our real wd to be where emacs.exe is to avoid unnecessary - conflicts when trying to rename or delete directories. */ + /* Emacs doesn't actually change directory itself, it stays in the + same directory where it was started. */ strcpy (dir, startup_dir); return dir; #endif @@ -1536,12 +1535,7 @@ read-only filesystem, like CD-ROM or a write-protected floppy. The only way to be really sure is to actually create a file and see if it succeeds. But I think that's too much to ask. */ -#ifdef _MSC_VER - /* MSVC's _access crashes with D_OK. */ if (tmp && sys_access (tmp, D_OK) == 0) -#else - if (tmp && _access (tmp, D_OK) == 0) -#endif { char * var = alloca (strlen (tmp) + 8); sprintf (var, "TMPDIR=%s", tmp); @@ -1781,27 +1775,15 @@ memcpy (*envp, "COMSPEC=", 8); } - /* Remember the initial working directory for getwd, then make the - real wd be the location of emacs.exe to avoid conflicts when - renaming or deleting directories. (We also don't call chdir when - running subprocesses for the same reason.) */ + /* Remember the initial working directory for getwd. */ if (!GetCurrentDirectory (MAXPATHLEN, startup_dir)) abort (); { - char *p; static char modname[MAX_PATH]; if (!GetModuleFileName (NULL, modname, MAX_PATH)) abort (); - if ((p = strrchr (modname, '\\')) == NULL) - abort (); - *p = 0; - - SetCurrentDirectory (modname); - - /* Ensure argv[0] has the full path to Emacs. */ - *p = '\\'; argv[0] = modname; } @@ -2667,7 +2649,8 @@ { DWORD attributes; - /* MSVC implementation doesn't recognize D_OK. */ + /* MSVCRT implementation of 'access' doesn't recognize D_OK, and its + newer versions blow up when passed D_OK. */ path = map_w32_filename (path, NULL); if (is_unc_volume (path)) { @@ -2679,9 +2662,17 @@ } else if ((attributes = GetFileAttributes (path)) == -1) { - /* Should try mapping GetLastError to errno; for now just indicate - that path doesn't exist. */ - errno = EACCES; + DWORD w32err = GetLastError (); + + switch (w32err) + { + case ERROR_FILE_NOT_FOUND: + errno = ENOENT; + break; + default: + errno = EACCES; + break; + } return -1; } if ((mode & X_OK) != 0 && !is_exec (path)) ------------------------------------------------------------ revno: 108801 committer: Dmitry Antipov branch nick: trunk timestamp: Fri 2012-06-29 15:48:08 +0400 message: * lisp/fringe.el (fringe-mode): Doc fix. * src/window.h (struct window): Change type of 'fringes_outside_margins' to bitfield. Fix comment. Adjust users accordingly. (struct window): Change type of 'window_end_bytepos' to ptrdiff_t. Adjust comment. * src/xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos' to ptrdiff_t. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-29 07:14:36 +0000 +++ lisp/ChangeLog 2012-06-29 11:48:08 +0000 @@ -1,3 +1,7 @@ +2012-06-29 Dmitry Antipov + + * fringe.el (fringe-mode): Doc fix. + 2012-06-29 Michael Albinus * net/ange-ftp.el (ange-ftp-get-passwd): Throw if `non-essential' === modified file 'lisp/fringe.el' --- lisp/fringe.el 2012-01-19 07:21:25 +0000 +++ lisp/fringe.el 2012-06-29 11:48:08 +0000 @@ -207,8 +207,8 @@ "Set the default appearance of fringes on all frames. When called interactively, query the user for MODE. Valid values -for MODE include `none', `default', `left-only', `right-only', -`minimal' and `half'. +for MODE include `no-fringes', `default', `left-only', `right-only', +`minimal' and `half-width'. When used in a Lisp program, MODE can be a cons cell where the integer in car specifies the left fringe width and the integer in === modified file 'src/ChangeLog' --- src/ChangeLog 2012-06-29 06:28:37 +0000 +++ src/ChangeLog 2012-06-29 11:48:08 +0000 @@ -1,3 +1,12 @@ +2012-06-29 Dmitry Antipov + + * window.h (struct window): Change type of 'fringes_outside_margins' + to bitfield. Fix comment. Adjust users accordingly. + (struct window): Change type of 'window_end_bytepos' to ptrdiff_t. + Adjust comment. + * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos' + to ptrdiff_t. + 2012-06-29 Andreas Schwab * gnutls.c (emacs_gnutls_handshake): === modified file 'src/window.c' --- src/window.c 2012-06-28 15:50:11 +0000 +++ src/window.c 2012-06-29 11:48:08 +0000 @@ -5542,7 +5542,7 @@ w->right_margin_cols = p->right_margin_cols; w->left_fringe_width = p->left_fringe_width; w->right_fringe_width = p->right_fringe_width; - w->fringes_outside_margins = p->fringes_outside_margins; + w->fringes_outside_margins = !NILP (p->fringes_outside_margins); w->scroll_bar_width = p->scroll_bar_width; w->vertical_scroll_bar_type = p->vertical_scroll_bar_type; w->dedicated = p->dedicated; @@ -5858,7 +5858,7 @@ p->right_margin_cols = w->right_margin_cols; p->left_fringe_width = w->left_fringe_width; p->right_fringe_width = w->right_fringe_width; - p->fringes_outside_margins = w->fringes_outside_margins; + p->fringes_outside_margins = w->fringes_outside_margins ? Qt : Qnil; p->scroll_bar_width = w->scroll_bar_width; p->vertical_scroll_bar_type = w->vertical_scroll_bar_type; p->dedicated = w->dedicated; @@ -6095,6 +6095,7 @@ (Lisp_Object window, Lisp_Object left_width, Lisp_Object right_width, Lisp_Object outside_margins) { struct window *w = decode_window (window); + int outside = !NILP (outside_margins); if (!NILP (left_width)) CHECK_NATNUM (left_width); @@ -6105,11 +6106,11 @@ if (FRAME_WINDOW_P (WINDOW_XFRAME (w)) && (!EQ (w->left_fringe_width, left_width) || !EQ (w->right_fringe_width, right_width) - || !EQ (w->fringes_outside_margins, outside_margins))) + || w->fringes_outside_margins != outside)) { w->left_fringe_width = left_width; w->right_fringe_width = right_width; - w->fringes_outside_margins = outside_margins; + w->fringes_outside_margins = outside; adjust_window_margins (w); === modified file 'src/window.h' --- src/window.h 2012-06-28 12:29:37 +0000 +++ src/window.h 2012-06-29 11:48:08 +0000 @@ -159,9 +159,6 @@ /* Width of left and right fringes. A value of nil or t means use frame values. */ Lisp_Object left_fringe_width, right_fringe_width; - /* Non-nil means fringes are drawn outside display margins; - othersize draw them between margin areas and text. */ - Lisp_Object fringes_outside_margins; /* Pixel width of scroll bars. A value of nil or t means use frame values. */ @@ -330,13 +327,17 @@ accept that. */ unsigned frozen_window_start_p : 1; + /* Non-zero means fringes are drawn outside display margins. + Otherwise draw them between margin areas and text. */ + unsigned fringes_outside_margins : 1; + /* Amount by which lines of this window are scrolled in y-direction (smooth scrolling). */ int vscroll; - /* Z_BYTE - the buffer position of the last glyph in the current matrix - of W. Only valid if WINDOW_END_VALID is not nil. */ - int window_end_bytepos; + /* Z_BYTE - the buffer position of the last glyph in the current matrix of W. + Should be nonnegative, and only valid if window_end_valid is not nil. */ + ptrdiff_t window_end_bytepos; }; /* 1 if W is a minibuffer window. */ @@ -612,7 +613,7 @@ /* Are fringes outside display margins in window W. */ #define WINDOW_HAS_FRINGES_OUTSIDE_MARGINS(W) \ - (!NILP ((W)->fringes_outside_margins)) + ((W)->fringes_outside_margins) /* Say whether scroll bars are currently enabled for window W, and which side they are on. */ === modified file 'src/xdisp.c' --- src/xdisp.c 2012-06-28 12:29:37 +0000 +++ src/xdisp.c 2012-06-29 11:48:08 +0000 @@ -17761,8 +17761,8 @@ { /* Displayed to end of window, but no line containing text was displayed. Lines were deleted at the end of the window. */ - int first_vpos = WINDOW_WANTS_HEADER_LINE_P (w) ? 1 : 0; - int vpos = XFASTINT (w->window_end_vpos); + ptrdiff_t first_vpos = WINDOW_WANTS_HEADER_LINE_P (w) ? 1 : 0; + ptrdiff_t vpos = XFASTINT (w->window_end_vpos); struct glyph_row *current_row = current_matrix->rows + vpos; struct glyph_row *desired_row = desired_matrix->rows + vpos; ------------------------------------------------------------ revno: 108800 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-06-29 06:17:31 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/configure' --- autogen/configure 2012-06-29 06:28:37 +0000 +++ autogen/configure 2012-06-29 10:17:31 +0000 @@ -1365,7 +1365,6 @@ with_gameuser with_gnustep_conf enable_ns_self_contained -enable_asserts enable_locallisppath enable_checking enable_check_lisp_object_type @@ -1374,6 +1373,7 @@ enable_dependency_tracking enable_largefile enable_gcc_warnings +enable_link_time_optimization with_x ' ac_precious_vars='build_alias @@ -2011,7 +2011,6 @@ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-ns-self-contained disable self contained build under NeXTstep - --enable-asserts compile code with asserts enabled --enable-locallisppath=PATH directories Emacs should search for lisp files specific to this site @@ -2033,6 +2032,9 @@ --enable-dependency-tracking do not reject slow dependency extractors --disable-largefile omit support for large files --enable-gcc-warnings turn on lots of GCC warnings (for developers) + --enable-link-time-optimization + build emacs with link-time optimization. This is + supported only for GCC since 4.5.0. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -4209,14 +4211,6 @@ fi -# Check whether --enable-asserts was given. -if test "${enable_asserts+set}" = set; then : - enableval=$enable_asserts; USE_XASSERTS=$enableval -else - USE_XASSERTS=no -fi - - # Check whether --enable-locallisppath was given. if test "${enable_locallisppath+set}" = set; then : enableval=$enable_locallisppath; if test "${enableval}" = "no"; then @@ -4244,21 +4238,21 @@ ac_gc_check_string_free_list= ; ac_xmalloc_overrun= ; ac_gc_check_cons_list= ; - ac_check_glyphs= ;; + ac_glyphs_debug= ;; all) ac_enable_checking=1 ; ac_gc_check_stringbytes=1 ; ac_gc_check_string_overrun=1 ; ac_gc_check_string_free_list=1 ; ac_xmalloc_overrun=1 ; ac_gc_check_cons_list=1 ; - ac_check_glyphs=1 ;; + ac_glyphs_debug=1 ;; # these enable particular checks stringbytes) ac_gc_check_stringbytes=1 ;; stringoverrun) ac_gc_check_string_overrun=1 ;; stringfreelist) ac_gc_check_string_free_list=1 ;; xmallocoverrun) ac_xmalloc_overrun=1 ;; conslist) ac_gc_check_cons_list=1 ;; - glyphs) ac_check_glyphs=1 ;; + glyphs) ac_glyphs_debug=1 ;; *) as_fn_error "unknown check category $check" "$LINENO" 5 ;; esac done @@ -4294,7 +4288,7 @@ $as_echo "#define GC_CHECK_CONS_LIST 1" >>confdefs.h fi -if test x$ac_check_glyphs != x ; then +if test x$ac_glyphs_debug != x ; then $as_echo "#define GLYPH_DEBUG 1" >>confdefs.h @@ -7025,6 +7019,49 @@ fi +# Check whether --enable-link-time-optimization was given. +if test "${enable_link_time_optimization+set}" = set; then : + enableval=$enable_link_time_optimization; if test "${enableval}" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link-time optimization is supported" >&5 +$as_echo_n "checking whether link-time optimization is supported... " >&6; } + ac_lto_supported=no + if test x$GCC = xyes; then + CPUS=`getconf _NPROCESSORS_ONLN 2>/dev/null` + if test x$CPUS != x; then + LTO="-flto=$CPUS" + else + LTO="-flto" + fi + old_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $LTO" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lto_supported=yes +else + ac_lto_supported=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$old_CFLAGS" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_lto_supported" >&5 +$as_echo "$ac_lto_supported" >&6; } + if test "$ac_lto_supported" = "yes"; then + CFLAGS="$CFLAGS $LTO" + fi +fi +fi + + # gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found]) # ------------------------------------------------ # If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND. @@ -23024,11 +23061,6 @@ echo " Environment variable EMACSDOC set to: $EMACSDOC" fi -if test $USE_XASSERTS = yes; then - echo " Compiling with asserts turned on." - CPPFLAGS="$CPPFLAGS -DXASSERTS=1" -fi - echo if test "$HAVE_NS" = "yes"; then ------------------------------------------------------------ revno: 108799 committer: Michael Albinus branch nick: trunk timestamp: Fri 2012-06-29 09:14:36 +0200 message: * net/ange-ftp.el (ange-ftp-get-passwd): Throw if `non-essential' is non-nil. (ange-ftp-ignore-errors-if-non-essential): New defmacro. (ange-ftp-file-name-all-completions): Use it. (Bug#11808) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-29 06:28:37 +0000 +++ lisp/ChangeLog 2012-06-29 07:14:36 +0000 @@ -1,3 +1,10 @@ +2012-06-29 Michael Albinus + + * net/ange-ftp.el (ange-ftp-get-passwd): Throw if `non-essential' + is non-nil. + (ange-ftp-ignore-errors-if-non-essential): New defmacro. + (ange-ftp-file-name-all-completions): Use it. (Bug#11808) + 2012-06-29 Andreas Schwab * calendar/cal-dst.el (calendar-current-time-zone): === modified file 'lisp/net/ange-ftp.el' --- lisp/net/ange-ftp.el 2012-06-20 06:51:53 +0000 +++ lisp/net/ange-ftp.el 2012-06-29 07:14:36 +0000 @@ -1200,6 +1200,11 @@ (defun ange-ftp-get-passwd (host user) "Return the password for specified HOST and USER, asking user if necessary." + ;; If `non-essential' is non-nil, don't ask for a password. It will + ;; be catched in Tramp. + (when non-essential + (throw 'non-essential 'non-essential)) + (ange-ftp-parse-netrc) ;; look up password in the hash table first; user might have overridden the @@ -3969,10 +3974,15 @@ (string-match "\\`[a-zA-Z]:[/\\]\\'" dir)) (string-equal "/" dir))) +(defmacro ange-ftp-ignore-errors-if-non-essential (&rest body) + `(if non-essential + (ignore-errors ,@body) + (progn ,@body))) + (defun ange-ftp-file-name-all-completions (file dir) (let ((ange-ftp-this-dir (expand-file-name dir))) (if (ange-ftp-ftp-name ange-ftp-this-dir) - (progn + (ange-ftp-ignore-errors-if-non-essential (ange-ftp-barf-if-not-directory ange-ftp-this-dir) (setq ange-ftp-this-dir (ange-ftp-real-file-name-as-directory ange-ftp-this-dir)) ------------------------------------------------------------ revno: 108798 [merge] committer: Glenn Morris branch nick: trunk timestamp: Thu 2012-06-28 23:28:37 -0700 message: Merge from emacs-24; up to r108062 diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-06-27 03:24:29 +0000 +++ doc/emacs/ChangeLog 2012-06-29 06:28:37 +0000 @@ -1,3 +1,11 @@ +2012-06-29 Glenn Morris + + * fixit.texi (Undo): Grammar fixes. (Bug#11779) + +2012-06-29 Michael Witten (tiny change) + + * fixit.texi (Undo): Fix typo. (Bug#11775) + 2012-06-27 Glenn Morris * ack.texi (Acknowledgments): Tiny update. === modified file 'doc/emacs/fixit.texi' --- doc/emacs/fixit.texi 2012-05-27 01:25:06 +0000 +++ doc/emacs/fixit.texi 2012-06-29 06:28:37 +0000 @@ -35,7 +35,7 @@ The @dfn{undo} command reverses recent changes in the buffer's text. Each buffer records changes individually, and the undo command always applies to the current buffer. You can undo all the changes in a -buffer for as far as back its records go. Usually, each editing +buffer for as far back as the buffer's records go. Usually, each editing command makes a separate entry in the undo records, but some commands such as @code{query-replace} divide their changes into multiple entries for flexibility in undoing. Consecutive character insertion @@ -109,9 +109,9 @@ @vindex undo-strong-limit @vindex undo-outer-limit @cindex undo limit - When the undo records for a buffer becomes too large, Emacs discards -the oldest undo records from time to time (during @dfn{garbage -collection}). You can specify how much undo records to keep by + When the undo information for a buffer becomes too large, Emacs discards +the oldest records from time to time (during @dfn{garbage +collection}). You can specify how much undo information to keep by setting the variables @code{undo-limit}, @code{undo-strong-limit}, and @code{undo-outer-limit}. Their values are expressed in bytes. === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2012-06-04 17:17:48 +0000 +++ etc/PROBLEMS 2012-06-29 06:28:37 +0000 @@ -255,6 +255,36 @@ If you need Emacs to be able to recover from closing displays, compile it with the Lucid toolkit instead of GTK. +** Emacs crashes when you try to view a file with complex characters. +For example, the etc/HELLO file (as shown by C-h h). +The message "symbol lookup error: /usr/bin/emacs: undefined symbol: OTF_open" +is shown in the terminal from which you launched Emacs. +This problem only happens when you use a graphical display (ie not +with -nw) and compiled Emacs with the "libotf" library for complex +text handling. + +This problem occurs because unfortunately there are two libraries +called "libotf". One is the library for handling OpenType fonts, +http://www.m17n.org/libotf/, which is the one that Emacs expects. +The other is a library for Open Trace Format, and is used by some +versions of the MPI message passing interface for parallel +programming. + +For example, on RHEL6 GNU/Linux, the OpenMPI rpm provides a version +of "libotf.so" in /usr/lib/openmpi/lib. This directory is not +normally in the ld search path, but if you want to use OpenMPI, +you must issue the command "module load openmpi". This adds +/usr/lib/openmpi/lib to LD_LIBRARY_PATH. If you then start Emacs from +the same shell, you will encounter this crash. +Ref: + +There is no good solution to this problem if you need to use both +OpenMPI and Emacs with libotf support. The best you can do is use a +wrapper shell script (or function) "emacs" that removes the offending +element from LD_LIBRARY_PATH before starting emacs proper. +Or you could recompile Emacs with an -Wl,-rpath option that +gives the location of the correct libotf. + * General runtime problems ** Lisp problems === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-28 23:04:27 +0000 +++ lisp/ChangeLog 2012-06-29 06:28:37 +0000 @@ -1,3 +1,32 @@ +2012-06-29 Andreas Schwab + + * calendar/cal-dst.el (calendar-current-time-zone): + Return calendar-current-time-zone-cache if non-nil. + +2012-06-29 Masatake YAMATO + + * progmodes/which-func.el (which-func-format): + Add mouse-face. (Bug#11698) + +2012-06-29 Leo Liu + + * textmodes/enriched.el (enriched-next-annotation): Use eq (Bug#11528). + +2012-06-29 Stefan Monnier + + * minibuffer.el (minibuffer-confirm-exit-commands): + Add completion-at-point (bug#11725). + +2012-06-29 Glenn Morris + + * progmodes/f90.el (f90-font-lock-keywords-2): + Add some preprocessor elements. (Bug#10499) + +2012-06-29 Stefan Monnier + + * progmodes/cperl-mode.el (cperl-update-syntaxification): + Use syntax-propertize (bug#11739). + 2012-06-28 Juanma Barranquero * emacs-lisp/cl-lib.el (cl-pushnew): Don't capture X (bug#11811). === modified file 'lisp/calendar/cal-dst.el' --- lisp/calendar/cal-dst.el 2012-01-19 07:21:25 +0000 +++ lisp/calendar/cal-dst.el 2012-06-28 12:13:38 +0000 @@ -347,8 +347,8 @@ Some operating systems cannot provide all this information to Emacs; in this case, `calendar-current-time-zone' returns a list containing nil for the data it can't find." - (unless calendar-current-time-zone-cache - (setq calendar-current-time-zone-cache (calendar-dst-find-data)))) + (or calendar-current-time-zone-cache + (setq calendar-current-time-zone-cache (calendar-dst-find-data)))) ;; Following options should be set based on conditions when the code === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2012-06-23 03:48:18 +0000 +++ lisp/minibuffer.el 2012-06-29 06:28:37 +0000 @@ -1136,7 +1136,8 @@ (completion--cache-all-sorted-completions (cdr all))))))) (defvar minibuffer-confirm-exit-commands - '(minibuffer-complete minibuffer-complete-word PC-complete PC-complete-word) + '(completion-at-point minibuffer-complete + minibuffer-complete-word PC-complete PC-complete-word) "A list of commands which cause an immediately following `minibuffer-complete-and-exit' to ask for extra confirmation.") === modified file 'lisp/progmodes/cperl-mode.el' --- lisp/progmodes/cperl-mode.el 2012-06-26 16:23:01 +0000 +++ lisp/progmodes/cperl-mode.el 2012-06-29 06:28:37 +0000 @@ -8950,14 +8950,15 @@ (setq cperl-syntax-done-to (min cperl-syntax-done-to beg)))) (defun cperl-update-syntaxification (from to) - (if (and cperl-use-syntax-table-text-property - cperl-syntaxify-by-font-lock - (or (null cperl-syntax-done-to) - (< cperl-syntax-done-to to))) - (progn - (save-excursion - (goto-char from) - (cperl-fontify-syntaxically to))))) + (cond + ((not cperl-use-syntax-table-text-property) nil) + ((fboundp 'syntax-propertize) (syntax-propertize to)) + ((and cperl-syntaxify-by-font-lock + (or (null cperl-syntax-done-to) + (< cperl-syntax-done-to to))) + (save-excursion + (goto-char from) + (cperl-fontify-syntaxically to))))) (defvar cperl-version (let ((v "Revision: 6.2")) === modified file 'lisp/progmodes/f90.el' --- lisp/progmodes/f90.el 2012-05-05 02:50:20 +0000 +++ lisp/progmodes/f90.el 2012-06-29 06:28:37 +0000 @@ -233,6 +233,7 @@ :safe 'stringp :group 'f90-indent) +;; Should we add ^# to this? That's not really a comment. (defcustom f90-directive-comment-re "!hpf\\$" "Regexp of comment-like directive like \"!HPF\\\\$\", not to be indented." :type 'regexp @@ -627,7 +628,14 @@ '("\\<\\(do\\|go[ \t]*to\\)\\>[ \t]*\\([0-9]+\\)" (1 font-lock-keyword-face) (2 font-lock-constant-face)) ;; Line numbers (lines whose first character after number is letter). - '("^[ \t]*\\([0-9]+\\)[ \t]*[a-z]+" (1 font-lock-constant-face t)))) + '("^[ \t]*\\([0-9]+\\)[ \t]*[a-z]+" (1 font-lock-constant-face t)) + ;; Override eg for "#include". + '("^#[ \t]*\\w+" (0 font-lock-preprocessor-face t) + ("\\" nil nil (0 font-lock-preprocessor-face))) + '("^#" ("\\(&&\\|||\\)" nil nil (0 font-lock-constant-face t))) + '("^#[ \t]*define[ \t]+\\(\\w+\\)(" (1 font-lock-function-name-face)) + '("^#[ \t]*define[ \t]+\\(\\w+\\)" (1 font-lock-variable-name-face)) + '("^#[ \t]*include[ \t]+\\(<.+>\\)" (1 font-lock-string-face)))) "Highlights declarations, do-loops and other constructs.") (defvar f90-font-lock-keywords-3 === modified file 'lisp/progmodes/which-func.el' --- lisp/progmodes/which-func.el 2012-06-03 11:10:44 +0000 +++ lisp/progmodes/which-func.el 2012-06-29 06:28:37 +0000 @@ -144,12 +144,13 @@ (:propertize which-func-current local-map ,which-func-keymap face which-func - ;;mouse-face highlight ; currently not evaluated :-( + mouse-face mode-line-highlight help-echo "mouse-1: go to beginning\n\ mouse-2: toggle rest visibility\n\ mouse-3: go to end") "]") "Format for displaying the function in the mode line." + :version "24.2" ; added mouse-face :group 'which-func :type 'sexp) ;;;###autoload (put 'which-func-format 'risky-local-variable t) === modified file 'lisp/textmodes/enriched.el' --- lisp/textmodes/enriched.el 2012-02-08 02:12:24 +0000 +++ lisp/textmodes/enriched.el 2012-06-23 13:33:44 +0000 @@ -437,7 +437,7 @@ (progn (goto-char (match-beginning 0)) (not (looking-at enriched-annotation-regexp)))) (forward-char 1) - (if (= ?< (char-after (point))) + (if (eq ?< (char-after (point))) (delete-char 1) ;; A single < that does not start an annotation is an error, ;; which we note and then ignore. === modified file 'src/ChangeLog' --- src/ChangeLog 2012-06-29 02:19:32 +0000 +++ src/ChangeLog 2012-06-29 06:28:37 +0000 @@ -1,3 +1,12 @@ +2012-06-29 Andreas Schwab + + * gnutls.c (emacs_gnutls_handshake): + Add QUIT to make the loop interruptible. + +2012-06-29 Glenn Morris + + * charset.c (init_charset): Make lack of etc/charsets fatal. + 2012-06-29 Dmitry Antipov * editfns.c (region_limit): Fix type mismatch. === modified file 'src/charset.c' --- src/charset.c 2012-05-31 06:06:42 +0000 +++ src/charset.c 2012-06-29 06:28:37 +0000 @@ -2296,11 +2296,15 @@ tempdir = Fexpand_file_name (build_string ("charsets"), Vdata_directory); if (access (SSDATA (tempdir), 0) < 0) { - dir_warning ("Error: charsets directory (%s) does not exist.\n\ + /* This used to be non-fatal (dir_warning), but it should not + happen, and if it does sooner or later it will cause some + obscure problem (eg bug#6401), so better abort. */ + fprintf (stderr, "Error: charsets directory not found:\n\ +%s\n\ Emacs will not function correctly without the character map files.\n\ Please check your installation!\n", - tempdir); - /* TODO should this be a fatal error? (Bug#909) */ + SDATA (tempdir)); + exit (1); } Vcharset_map_path = Fcons (tempdir, Qnil); === modified file 'src/gnutls.c' --- src/gnutls.c 2012-05-25 18:19:24 +0000 +++ src/gnutls.c 2012-06-29 06:28:37 +0000 @@ -322,6 +322,7 @@ { ret = fn_gnutls_handshake (state); emacs_gnutls_handle_error (state, ret); + QUIT; } while (ret < 0 && fn_gnutls_error_is_fatal (ret) == 0); ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.