Now on revision 111786. ------------------------------------------------------------ revno: 111786 [merge] committer: Paul Eggert branch nick: trunk timestamp: Thu 2013-02-14 22:35:54 -0800 message: Merge from emacs-24; up to r111266 diff: === modified file 'ChangeLog' --- ChangeLog 2013-02-12 03:52:04 +0000 +++ ChangeLog 2013-02-15 06:35:54 +0000 @@ -1,3 +1,8 @@ +2013-02-15 Paul Eggert + + Fix AIX port (Bug#13650). + * configure.ac (DATA_START, DATA_SEG_BITS): Set to 0x20000000 on AIX. + 2013-02-12 Eli Zaretskii * lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/memrchr.$(O). === modified file 'configure.ac' --- configure.ac 2013-02-12 00:51:24 +0000 +++ configure.ac 2013-02-15 06:35:54 +0000 @@ -3750,6 +3750,11 @@ AC_DEFINE(DATA_START, [({ extern int data_start; (char *) &data_start; })]) ;; + aix*) + dnl This works with 32-bit executables; Emacs doesn't support 64-bit. + AC_DEFINE(DATA_START, [0x20000000]) + AC_DEFINE(DATA_SEG_BITS, [0x20000000]) + ;; hpux*) dnl The data segment on this machine always starts at address 0x40000000. AC_DEFINE(DATA_START, [0x40000000]) === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-02-13 04:31:09 +0000 +++ doc/lispref/ChangeLog 2013-02-15 06:35:54 +0000 @@ -1,3 +1,7 @@ +2013-02-14 Glenn Morris + + * modes.texi (Basic Major Modes): 'z' no longer bound in special-mode. + 2013-02-13 Glenn Morris * objects.texi (Char-Table Type): Add footnote about #^^. === modified file 'doc/lispref/modes.texi' --- doc/lispref/modes.texi 2013-02-13 04:31:09 +0000 +++ doc/lispref/modes.texi 2013-02-15 06:35:54 +0000 @@ -905,9 +905,8 @@ of @code{special} (@pxref{Major Mode Conventions}). Special mode sets the buffer to read-only. Its keymap defines several -common bindings, including @kbd{q} for @code{quit-window}, @kbd{z} for -@code{kill-this-buffer}, and @kbd{g} for @code{revert-buffer} -(@pxref{Reverting}). +common bindings, including @kbd{q} for @code{quit-window} and @kbd{g} +for @code{revert-buffer} (@pxref{Reverting}). An example of a major mode derived from Special mode is Buffer Menu mode, which is used by the @file{*Buffer List*} buffer. @xref{List === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-15 01:30:11 +0000 +++ lisp/ChangeLog 2013-02-15 06:35:54 +0000 @@ -1,3 +1,30 @@ +2013-02-15 Michael Albinus + + * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix. + +2013-02-15 Stefan Monnier + + * net/goto-addr.el (goto-address-fontify): Add start and end args. + (goto-address-fontify-region): Use them instead of narrowing, so + syntax-ppss has access to the whole buffer. + +2013-02-15 Fabián Ezequiel Gallina + + * progmodes/python.el: Explain how to restore "cc-mode"-like + forward-sexp movement in header documentation (Bug#13642). + (python-nav--forward-sexp): Behave like emacs-lisp-mode in + comments and strings (GH bug 114). + +2013-02-15 Fabián Ezequiel Gallina + + * progmodes/python.el (python-info-current-defun): Fix current + defun detection (Bug#13618). + +2013-02-15 Chong Yidong + + * xml.el (xml-parse-string): Fix typo in handling of bad character + references. + 2013-02-15 Glenn Morris * play/fortune.el (fortune-compile): Simplify and fix previous change. === modified file 'lisp/emacs-lisp/easy-mmode.el' --- lisp/emacs-lisp/easy-mmode.el 2013-01-01 09:11:05 +0000 +++ lisp/emacs-lisp/easy-mmode.el 2013-02-14 17:16:47 +0000 @@ -132,13 +132,14 @@ :require SYM Same as in `defcustom'. :variable PLACE The location to use instead of the variable MODE to store the state of the mode. This can be simply a different - named variable, or more generally anything that can be used - with the CL macro `setf'. PLACE can also be of the form - \(GET . SET), where GET is an expression that returns the - current state, and SET is a function that takes one argument, - the new state, and sets it. If you specify a :variable, - this function does not define a MODE variable (nor any of - the terms used in :variable). + named variable, or a generalized variable. + PLACE can also be of the form \(GET . SET), where GET is + an expression that returns the current state, and SET is + a function that takes one argument, the new state, and + sets it. If you specify a :variable, this function does + not define a MODE variable (nor any of the terms used + in :variable). + :after-hook A single lisp form which is evaluated after the mode hooks have been run. It should not be quoted. === modified file 'lisp/net/goto-addr.el' --- lisp/net/goto-addr.el 2013-01-01 09:11:05 +0000 +++ lisp/net/goto-addr.el 2013-02-14 15:53:46 +0000 @@ -156,18 +156,19 @@ (defvar goto-address-prog-mode) -(defun goto-address-fontify () +(defun goto-address-fontify (&optional start end) "Fontify the URLs and e-mail addresses in the current buffer. This function implements `goto-address-highlight-p' and `goto-address-fontify-p'." ;; Clean up from any previous go. - (goto-address-unfontify (point-min) (point-max)) + (goto-address-unfontify (or start (point-min)) (or end (point-max))) (save-excursion (let ((inhibit-point-motion-hooks t)) - (goto-char (point-min)) + (goto-char (or start (point-min))) (when (or (eq t goto-address-fontify-maximum-size) - (< (- (point-max) (point)) goto-address-fontify-maximum-size)) - (while (re-search-forward goto-address-url-regexp nil t) + (< (- (or end (point-max)) (point)) + goto-address-fontify-maximum-size)) + (while (re-search-forward goto-address-url-regexp end t) (let* ((s (match-beginning 0)) (e (match-end 0)) this-overlay) @@ -187,8 +188,8 @@ (overlay-put this-overlay 'keymap goto-address-highlight-keymap) (overlay-put this-overlay 'goto-address t)))) - (goto-char (point-min)) - (while (re-search-forward goto-address-mail-regexp nil t) + (goto-char (or start (point-min))) + (while (re-search-forward goto-address-mail-regexp end t) (let* ((s (match-beginning 0)) (e (match-end 0)) this-overlay) @@ -212,11 +213,9 @@ (defun goto-address-fontify-region (start end) "Fontify URLs and e-mail addresses in the given region." (save-excursion - (save-restriction - (let ((beg-line (progn (goto-char start) (line-beginning-position))) - (end-line (progn (goto-char end) (line-end-position)))) - (narrow-to-region beg-line end-line) - (goto-address-fontify))))) + (let ((beg-line (progn (goto-char start) (line-beginning-position))) + (end-line (progn (goto-char end) (line-end-position)))) + (goto-address-fontify beg-line end-line)))) ;; code to find and goto addresses; much of this has been blatantly ;; snarfed from browse-url.el === modified file 'lisp/progmodes/python.el' --- lisp/progmodes/python.el 2013-02-02 06:04:06 +0000 +++ lisp/progmodes/python.el 2013-02-15 06:35:54 +0000 @@ -54,8 +54,13 @@ ;; `python-nav-beginning-of-statement', `python-nav-end-of-statement', ;; `python-nav-beginning-of-block' and `python-nav-end-of-block' are ;; included but no bound to any key. At last but not least the -;; specialized `python-nav-forward-sexp' allows easy -;; navigation between code blocks. +;; specialized `python-nav-forward-sexp' allows easy navigation +;; between code blocks. If you prefer `cc-mode'-like `forward-sexp' +;; movement, setting `forward-sexp-function' to nil is enough, You can +;; do that using the `python-mode-hook': + +;; (add-hook 'python-mode-hook +;; (lambda () (setq forward-sexp-function nil))) ;; Shell interaction: is provided and allows you to execute easily any ;; block of code of your current buffer in an inferior Python process. @@ -1349,13 +1354,10 @@ 're-search-backward)) (context-type (python-syntax-context-type))) (cond - ((eq context-type 'string) + ((memq context-type '(string comment)) ;; Inside of a string, get out of it. - (while (and (funcall re-search-fn "[\"']" nil t) - (python-syntax-context 'string)))) - ((eq context-type 'comment) - ;; Inside of a comment, just move forward. - (python-util-forward-comment dir)) + (let ((forward-sexp-function)) + (forward-sexp dir))) ((or (eq context-type 'paren) (and forward-p (looking-at (python-rx open-paren))) (and (not forward-p) @@ -1378,16 +1380,16 @@ (save-excursion (python-nav-lisp-forward-sexp-safe dir) (point))) - (next-sexp-context - (save-excursion - (goto-char next-sexp-pos) - (cond - ((python-info-beginning-of-block-p) 'block-start) - ((python-info-end-of-block-p) 'block-end) - ((python-info-beginning-of-statement-p) 'statement-start) - ((python-info-end-of-statement-p) 'statement-end) - ((python-info-statement-starts-block-p) 'starts-block) - ((python-info-statement-ends-block-p) 'ends-block))))) + (next-sexp-context + (save-excursion + (goto-char next-sexp-pos) + (cond + ((python-info-beginning-of-block-p) 'block-start) + ((python-info-end-of-block-p) 'block-end) + ((python-info-beginning-of-statement-p) 'statement-start) + ((python-info-end-of-statement-p) 'statement-end) + ((python-info-statement-starts-block-p) 'starts-block) + ((python-info-statement-ends-block-p) 'ends-block))))) (if forward-p (cond ((and (not (eobp)) (python-info-current-line-empty-p)) @@ -1411,8 +1413,8 @@ (t (goto-char next-sexp-pos))) (cond ((and (not (bobp)) (python-info-current-line-empty-p)) - (python-util-forward-comment dir) - (python-nav--forward-sexp dir)) + (python-util-forward-comment dir) + (python-nav--forward-sexp dir)) ((eq context 'block-end) (python-nav-beginning-of-block)) ((eq context 'statement-end) @@ -2946,40 +2948,61 @@ This function is compatible to be used as `add-log-current-defun-function' since it returns nil if point is not inside a defun." - (save-restriction - (widen) - (save-excursion - (end-of-line 1) - (let ((names) - (starting-indentation - (save-excursion - (and - (python-nav-beginning-of-defun 1) - ;; This extra number is just for checking code - ;; against indentation to work well on first run. - (+ (current-indentation) 4)))) - (starting-point (point))) - ;; Check point is inside a defun. - (when (and starting-indentation - (< starting-point + (save-restriction + (widen) + (save-excursion + (end-of-line 1) + (let ((names) + (starting-indentation (current-indentation)) + (starting-pos (point)) + (first-run t) + (last-indent) + (type)) + (catch 'exit + (while (python-nav-beginning-of-defun 1) + (when (and + (or (not last-indent) + (< (current-indentation) last-indent)) + (or + (and first-run (save-excursion - (python-nav-end-of-defun) - (point)))) - (catch 'exit - (while (python-nav-beginning-of-defun 1) - (when (< (current-indentation) starting-indentation) - (setq starting-indentation (current-indentation)) - (setq names - (cons - (if (not include-type) - (match-string-no-properties 1) - (mapconcat 'identity - (split-string - (match-string-no-properties 0)) " ")) - names))) - (and (= (current-indentation) 0) (throw 'exit t))))) - (and names - (mapconcat (lambda (string) string) names ".")))))) + ;; If this is the first run, we may add + ;; the current defun at point. + (setq first-run nil) + (goto-char starting-pos) + (python-nav-beginning-of-statement) + (beginning-of-line 1) + (looking-at-p + python-nav-beginning-of-defun-regexp))) + (< starting-pos + (save-excursion + (let ((min-indent + (+ (current-indentation) + python-indent-offset))) + (if (< starting-indentation min-indent) + ;; If the starting indentation is not + ;; within the min defun indent make the + ;; check fail. + starting-pos + ;; Else go to the end of defun and add + ;; up the current indentation to the + ;; ending position. + (python-nav-end-of-defun) + (+ (point) + (if (>= (current-indentation) min-indent) + (1+ (current-indentation)) + 0)))))))) + (setq last-indent (current-indentation)) + (if (or (not include-type) type) + (setq names (cons (match-string-no-properties 1) names)) + (let ((match (split-string (match-string-no-properties 0)))) + (setq type (car match)) + (setq names (cons (cadr match) names))))) + ;; Stop searching ASAP. + (and (= (current-indentation) 0) (throw 'exit t)))) + (and names + (concat (and type (format "%s " type)) + (mapconcat 'identity names "."))))))) (defun python-info-current-symbol (&optional replace-self) "Return current symbol using dotty syntax. === modified file 'lisp/xml.el' --- lisp/xml.el 2013-01-23 06:25:50 +0000 +++ lisp/xml.el 2013-02-13 07:24:11 +0000 @@ -611,7 +611,7 @@ xml-validating-parser (error "XML: (Validity) Invalid character reference `%s'" (match-string 0))) - (replace-match (or (string val) xml-undefined-entity) t t)) + (replace-match (if val (string val) xml-undefined-entity) t t)) ;; For an entity reference, search again from the start of ;; the replaced text, since the replacement can contain ;; entity or character references, or markup. @@ -620,7 +620,7 @@ (and (null val) xml-validating-parser (error "XML: (Validity) Undefined entity `%s'" ref)) - (replace-match (cdr val) t t) + (replace-match (or (cdr val) xml-undefined-entity) t t) (goto-char (match-beginning 0))) ;; Check for XML bombs. (and xml-entity-expansion-limit === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-14 19:01:12 +0000 +++ src/ChangeLog 2013-02-15 06:35:54 +0000 @@ -1,3 +1,23 @@ +2013-02-15 Paul Eggert + + Fix AIX port (Bug#13650). + * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]: + Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set, + was #undeffed earlier, so it cannot be used as a macro here. + Use the constant and not the macro. + +2013-02-15 Eli Zaretskii + + * w32proc.c (new_child): If no vacant slots are found in + child_procs[], make another pass looking for slots whose process + has exited or died. (Bug#13546) + + * w32.c (sys_pipe): When failing due to file descriptors above + MAXDESC, set errno to EMFILE. + (_sys_read_ahead): Update cp->status when failing to read serial + communications input, so that the status doesn't stay at + STATUS_READ_IN_PROGRESS. (Bug#13546) + 2013-02-14 Jan Djärv * gtkutil.c (tb_size_cb): New function. === modified file 'src/lisp.h' --- src/lisp.h 2013-02-11 23:37:18 +0000 +++ src/lisp.h 2013-02-15 06:35:54 +0000 @@ -505,13 +505,9 @@ (XIL ((EMACS_INT) ((EMACS_UINT) (type) << VALBITS) \ + ((intptr_t) (ptr) & VALMASK))) -#if DATA_SEG_BITS /* DATA_SEG_BITS forces extra bits to be or'd in with any pointers which were stored in a Lisp_Object. */ #define XPNTR(a) ((uintptr_t) ((XLI (a) & VALMASK)) | DATA_SEG_BITS)) -#else -#define XPNTR(a) ((uintptr_t) (XLI (a) & VALMASK)) -#endif #endif /* not USE_LSB_TAG */ === modified file 'src/w32.c' --- src/w32.c 2013-02-02 17:14:24 +0000 +++ src/w32.c 2013-02-15 06:35:54 +0000 @@ -6800,6 +6800,7 @@ { _close (phandles[0]); _close (phandles[1]); + errno = EMFILE; rc = -1; } else @@ -6873,19 +6874,31 @@ /* Configure timeouts for blocking read. */ if (!GetCommTimeouts (hnd, &ct)) - return STATUS_READ_ERROR; + { + cp->status = STATUS_READ_ERROR; + return STATUS_READ_ERROR; + } ct.ReadIntervalTimeout = 0; ct.ReadTotalTimeoutMultiplier = 0; ct.ReadTotalTimeoutConstant = 0; if (!SetCommTimeouts (hnd, &ct)) - return STATUS_READ_ERROR; + { + cp->status = STATUS_READ_ERROR; + return STATUS_READ_ERROR; + } if (!ReadFile (hnd, &cp->chr, sizeof (char), (DWORD*) &rc, ovl)) { if (GetLastError () != ERROR_IO_PENDING) - return STATUS_READ_ERROR; + { + cp->status = STATUS_READ_ERROR; + return STATUS_READ_ERROR; + } if (!GetOverlappedResult (hnd, ovl, (DWORD*) &rc, TRUE)) - return STATUS_READ_ERROR; + { + cp->status = STATUS_READ_ERROR; + return STATUS_READ_ERROR; + } } } else if (fd_info[fd].flags & FILE_SOCKET) === modified file 'src/w32proc.c' --- src/w32proc.c 2013-02-02 17:14:24 +0000 +++ src/w32proc.c 2013-02-15 06:35:54 +0000 @@ -803,6 +803,33 @@ if (!CHILD_ACTIVE (cp) && cp->procinfo.hProcess == NULL) goto Initialize; if (child_proc_count == MAX_CHILDREN) + { + DebPrint (("new_child: No vacant slots, looking for dead processes\n")); + for (cp = child_procs + (child_proc_count-1); cp >= child_procs; cp--) + if (!CHILD_ACTIVE (cp) && cp->procinfo.hProcess) + { + DWORD status = 0; + + if (!GetExitCodeProcess (cp->procinfo.hProcess, &status)) + { + DebPrint (("new_child.GetExitCodeProcess: error %lu for PID %lu\n", + GetLastError (), cp->procinfo.dwProcessId)); + status = STILL_ACTIVE; + } + if (status != STILL_ACTIVE + || WaitForSingleObject (cp->procinfo.hProcess, 0) == WAIT_OBJECT_0) + { + DebPrint (("new_child: Freeing slot of dead process %d\n", + cp->procinfo.dwProcessId)); + CloseHandle (cp->procinfo.hProcess); + cp->procinfo.hProcess = NULL; + CloseHandle (cp->procinfo.hThread); + cp->procinfo.hThread = NULL; + goto Initialize; + } + } + } + if (child_proc_count == MAX_CHILDREN) return NULL; cp = &child_procs[child_proc_count++]; ------------------------------------------------------------ revno: 111785 committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-02-14 20:30:11 -0500 message: * lisp/play/fortune.el (fortune-compile): Simplify and fix previous change. Since file-newer-than-p returns non-nil if FILE2 does not exist, the actual fix for bug#5338 is just a one-liner. But there is no test case or explanation of what the issue actually is in bug#5338, so one has to wonder if the initial (file-exists-p fortune-dat) test was there for a reason... diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-14 13:32:04 +0000 +++ lisp/ChangeLog 2013-02-15 01:30:11 +0000 @@ -1,3 +1,7 @@ +2013-02-15 Glenn Morris + + * play/fortune.el (fortune-compile): Simplify and fix previous change. + 2013-02-14 Michael Albinus * net/tramp.el (tramp-debug-message): Add === modified file 'lisp/play/fortune.el' --- lisp/play/fortune.el 2013-02-13 08:10:41 +0000 +++ lisp/play/fortune.el 2013-02-15 01:30:11 +0000 @@ -244,17 +244,14 @@ (let* ((fortune-file (expand-file-name (substitute-in-file-name file))) (fortune-dat (expand-file-name (substitute-in-file-name - (concat fortune-file fortune-database-extension)))) - (fortune-dat-exist (file-exists-p fortune-dat))) - (cond ((file-exists-p fortune-file) - (if (or (not fortune-dat-exist) - (and fortune-dat-exist - (file-newer-than-file-p fortune-file fortune-dat))) - (message "Compiling new fortune database %s" fortune-dat) - (shell-command - (concat fortune-strfile fortune-strfile-options - " " fortune-file fortune-quiet-strfile-options)))) - (t (error "Can't compile fortune file %s" fortune-file))))) + (concat fortune-file fortune-database-extension))))) + (cond ((file-exists-p fortune-file) + (cond ((file-newer-than-file-p fortune-file fortune-dat) + (message "Compiling new fortune database %s" fortune-dat) + (shell-command + (concat fortune-strfile fortune-strfile-options + " " fortune-file fortune-quiet-strfile-options))))) + (t (error "Can't compile fortune file %s" fortune-file))))) ;;; ************** ------------------------------------------------------------ revno: 111784 fixes bug: http://debbugs.gnu.org/13512 committer: Jan D. branch nick: trunk timestamp: Thu 2013-02-14 20:01:12 +0100 message: * gtkutil.c (tb_size_cb): New function. (xg_create_tool_bar): Connect size-allocate to tb_size_cb. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-14 14:40:54 +0000 +++ src/ChangeLog 2013-02-14 19:01:12 +0000 @@ -1,3 +1,8 @@ +2013-02-14 Jan Djärv + + * gtkutil.c (tb_size_cb): New function. + (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512). + 2013-02-14 Stefan Monnier * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not === modified file 'src/gtkutil.c' --- src/gtkutil.c 2013-01-24 05:41:28 +0000 +++ src/gtkutil.c 2013-02-14 19:01:12 +0000 @@ -4353,6 +4353,21 @@ x->toolbar_is_packed = true; } +static bool xg_update_tool_bar_sizes (FRAME_PTR f); + +static void +tb_size_cb (GtkWidget *widget, + GdkRectangle *allocation, + gpointer user_data) +{ + /* When tool bar is created it has one preferred size. But when size is + allocated between widgets, it may get another. So we must update + size hints if tool bar size changes. Seen on Fedora 18 at least. */ + FRAME_PTR f = (FRAME_PTR) user_data; + if (xg_update_tool_bar_sizes (f)) + x_wm_set_size_hint (f, 0, 0); +} + /* Create a tool bar for frame F. */ static void @@ -4384,6 +4399,8 @@ gtk_toolbar_set_style (GTK_TOOLBAR (x->toolbar_widget), GTK_TOOLBAR_ICONS); toolbar_set_orientation (x->toolbar_widget, GTK_ORIENTATION_HORIZONTAL); + g_signal_connect (x->toolbar_widget, "size-allocate", + G_CALLBACK (tb_size_cb), f); #if GTK_CHECK_VERSION (3, 3, 6) gsty = gtk_widget_get_style_context (x->toolbar_widget); gtk_style_context_add_class (gsty, "primary-toolbar"); ------------------------------------------------------------ revno: 111783 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2013-02-14 09:40:54 -0500 message: * src/keyboard.c (active_maps): Fcurrent_active_maps expects a position, not an event. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-13 19:43:06 +0000 +++ src/ChangeLog 2013-02-14 14:40:54 +0000 @@ -1,3 +1,8 @@ +2013-02-14 Stefan Monnier + + * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not + an event. + 2013-02-13 Stefan Monnier * keyboard.c (syms_of_keyboard): Further tweaks of docstring. === modified file 'src/keyboard.c' --- src/keyboard.c 2013-02-13 19:43:06 +0000 +++ src/keyboard.c 2013-02-14 14:40:54 +0000 @@ -8644,7 +8644,8 @@ static Lisp_Object active_maps (Lisp_Object first_event) { - Lisp_Object position = INTEGERP (first_event) ? Qnil : first_event; + Lisp_Object position + = CONSP (first_event) ? CAR_SAFE (XCDR (first_event)) : Qnil; return Fcons (Qkeymap, Fcurrent_active_maps (Qt, position)); } ------------------------------------------------------------ revno: 111782 committer: Michael Albinus + + * net/tramp.el (tramp-debug-message): Add + `tramp-condition-case-unless-debug'. + (tramp-debug-on-error): New defvar. + (tramp-condition-case-unless-debug): New defun. + (tramp-file-name-handler): Use it. + 2013-02-14 Juri Linkov * info.el (Info-isearch-filter): Treat non-nil values of === modified file 'lisp/net/tramp.el' --- lisp/net/tramp.el 2013-02-13 16:23:15 +0000 +++ lisp/net/tramp.el 2013-02-14 13:32:04 +0000 @@ -1399,6 +1399,7 @@ "tramp-compat-condition-case-unless-debug" "tramp-compat-funcall" "tramp-compat-with-temp-message" + "tramp-condition-case-unless-debug" "tramp-debug-message" "tramp-error" "tramp-error-with-buffer" @@ -2011,6 +2012,15 @@ res (cdr elt)))) res)))) +(defvar tramp-debug-on-error nil + "Like `debug-on-error' but used Tramp internal.") + +(defmacro tramp-condition-case-unless-debug + (var bodyform &rest handlers) + "Like `condition-case-unless-debug' but `tramp-debug-on-error'." + `(let ((debug-on-error tramp-debug-on-error)) + (tramp-compat-condition-case-unless-debug ,var ,bodyform ,@handlers))) + ;; Main function. ;;;###autoload (defun tramp-file-name-handler (operation &rest args) @@ -2026,7 +2036,7 @@ (with-parsed-tramp-file-name filename nil ;; Call the backend function. (if foreign - (tramp-compat-condition-case-unless-debug err + (tramp-condition-case-unless-debug err (let ((sf (symbol-function foreign)) result) ;; Some packages set the default directory to a @@ -2079,7 +2089,7 @@ ;; in order to give the user a chance to correct the ;; file name in the minibuffer. ;; In order to get a full backtrace, one could apply - ;; (setq debug-on-error t debug-on-signal t) + ;; (setq tramp-debug-on-error t) (error (cond ((and completion (zerop (length localname)) ------------------------------------------------------------ revno: 111781 committer: Michael Albinus + + * NEWS: Tramp methods "scpc" and "rsyncc" are discontinued. + 2013-02-11 Michael Albinus * NEWS: Add autorevert changes. === modified file 'etc/NEWS' --- etc/NEWS 2013-02-13 09:42:31 +0000 +++ etc/NEWS 2013-02-14 12:36:44 +0000 @@ -186,10 +186,16 @@ leave different number of spaces. ** Tramp + +++ *** New connection method "adb", which allows to access Android devices by the Android Debug Bridge. The variable `tramp-adb-sdk-dir' must be set to the Android SDK installation directory. + +*** The connection methods "scpc" and "rsyncc" are discontinued. The +ssh option "ControlMaster=auto" is set automatically in all ssh-based +methods, when possible. + +++ *** Handlers for `file-acl' and `set-file-acl' for remote machines which support POSIX ACLs. ------------------------------------------------------------ revno: 111780 fixes bug: http://debbugs.gnu.org/13402 committer: Juri Linkov branch nick: trunk timestamp: Thu 2013-02-14 11:15:55 +0200 message: * lisp/info.el (Info-isearch-filter): Treat non-nil values of `search-invisible' including its default value `open' like the value `t' to match hidden text. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-14 08:05:26 +0000 +++ lisp/ChangeLog 2013-02-14 09:15:55 +0000 @@ -1,3 +1,9 @@ +2013-02-14 Juri Linkov + + * info.el (Info-isearch-filter): Treat non-nil values of + `search-invisible' including its default value `open' + like the value `t' to match hidden text. (Bug#13402) + 2013-02-14 Glenn Morris * help-fns.el (find-lisp-object-file-name): Give special treatment === modified file 'lisp/info.el' --- lisp/info.el 2013-02-12 04:46:18 +0000 +++ lisp/info.el 2013-02-14 09:15:55 +0000 @@ -2151,7 +2151,7 @@ (let ((backward (< found beg-found))) (not (or - (and (not (eq search-invisible t)) + (and (not search-invisible) (if backward (or (text-property-not-all found beg-found 'invisible nil) (text-property-not-all found beg-found 'display nil)) ------------------------------------------------------------ revno: 111779 fixes bug: http://debbugs.gnu.org/9007 committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-02-14 00:05:26 -0800 message: * help-fns.el (find-lisp-object-file-name): Give special treatment to all ~/.foo.elc files, not just ~/.emacs. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-14 07:50:57 +0000 +++ lisp/ChangeLog 2013-02-14 08:05:26 +0000 @@ -1,3 +1,8 @@ +2013-02-14 Glenn Morris + + * help-fns.el (find-lisp-object-file-name): Give special treatment + to all ~/.foo.elc files, not just ~/.emacs. (Bug#9007) + 2013-02-14 David Biesack (tiny change) * net/quickurl.el (quickurl-save-urls): === modified file 'lisp/help-fns.el' --- lisp/help-fns.el 2013-02-01 15:56:22 +0000 +++ lisp/help-fns.el 2013-02-14 08:05:26 +0000 @@ -336,11 +336,15 @@ ;; If we don't have a file-name string by now, we lost. nil) ;; Now, `file-name' should have become an absolute file name. - ;; For files loaded from ~/.emacs.elc, try ~/.emacs. + ;; For files loaded from ~/.foo.elc, try ~/.foo. + ;; This applies to config files like ~/.emacs, + ;; which people sometimes compile. ((let (fn) - (and (string-equal file-name - (expand-file-name ".emacs.elc" "~")) - (file-readable-p (setq fn (expand-file-name ".emacs" "~"))) + (and (string-match "\\`\\..*\\.elc\\'" + (file-name-nondirectory file-name)) + (string-equal (file-name-directory file-name) + (file-name-as-directory (expand-file-name "~"))) + (file-readable-p (setq fn (file-name-sans-extension file-name))) fn))) ;; When the Elisp source file can be found in the install ;; directory, return the name of that file. ------------------------------------------------------------ revno: 111778 fixes bug: http://debbugs.gnu.org/9276 author: David Biesack committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-02-13 23:50:57 -0800 message: * net/quickurl.el (quickurl-save-urls): Ensure quickurl-urls is not truncated on printing. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-14 05:45:33 +0000 +++ lisp/ChangeLog 2013-02-14 07:50:57 +0000 @@ -1,3 +1,8 @@ +2013-02-14 David Biesack (tiny change) + + * net/quickurl.el (quickurl-save-urls): + Ensure quickurl-urls is not truncated on printing. (Bug#9276) + 2013-02-14 Dmitry Gutov * progmodes/ruby-mode.el (ruby-parse-partial): Don't increase === modified file 'lisp/net/quickurl.el' --- lisp/net/quickurl.el 2013-01-01 09:11:05 +0000 +++ lisp/net/quickurl.el 2013-02-14 07:50:57 +0000 @@ -272,7 +272,8 @@ (defun quickurl-save-urls () "Save the contents of `quickurl-urls' to `quickurl-url-file'." (with-temp-buffer - (let ((standard-output (current-buffer))) + (let ((standard-output (current-buffer)) + (print-length nil)) (princ quickurl-prefix) (pp quickurl-urls) (princ quickurl-postfix) ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.