Mercurial > emacs
changeset 107276:2dee04cb649f
Merge from mainline.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Thu, 11 Feb 2010 21:54:28 +0000 |
parents | cf50b15a097b (current diff) a0d4034e4be0 (diff) |
children | 260c94ced579 |
files | |
diffstat | 11 files changed, 154 insertions(+), 92 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/ChangeLog Thu Feb 11 21:54:28 2010 +0000 @@ -1,3 +1,36 @@ +2010-02-11 Stefan Monnier <monnier@iro.umontreal.ca> + + * subr.el (copy-overlay): Handle deleted overlays. + + * man.el (Man-completion-table): Don't signal an error if we can't run + manual-program (bug#4056). + +2010-02-10 Juanma Barranquero <lekktu@gmail.com> + + * textmodes/artist.el (artist-mt): Fix typos in docstring. + +2010-02-10 Thierry Volpiatto <thierry.volpiatto@gmail.com> + + * info.el (Info-bookmark-jump): Simplify. + + * bookmark.el (bookmark-handle-bookmark): Catch the right error. + (bookmark-default-handler): Accept new bookmark field `buffer'. + +2010-02-10 Chong Yidong <cyd@stupidchicken.com> + + * iswitchb.el (iswitchb-completions): Revert last change. + +2010-02-10 Michael Albinus <michael.albinus@gmx.de> + + * ls-lisp.el (ls-lisp-insert-directory): When WILDCARD-REGEXP and + FULL-DIRECTORY-P are nil, and FILE is absolute, expand it. + This prevents file names like "~/" being listed literally. + +2010-02-10 Dan Nicolaescu <dann@ics.uci.edu> + + * term/xterm.el (xterm-maybe-set-dark-background-mode): + Remove dead code. (Bug#5546) + 2010-02-09 Chong Yidong <cyd@stupidchicken.com> * eshell/em-ls.el (eshell-ls-applicable): Frob file attributes @@ -12,7 +45,7 @@ 2010-02-08 Kenichi Handa <handa@m17n.org> * international/mule-util.el (with-coding-priority): Add autoload - cookie for putting `lisp-indent-funciton'. + cookie for putting `lisp-indent-function'. 2010-02-07 Glenn Morris <rgm@gnu.org> @@ -288,10 +321,9 @@ 2010-01-25 Mark A. Hershberger <mah@everybody.org> - * progmodes/python.el: Replace reference to obsolete - c-subward-mode. - - * vc-bzr.el: (vc-bzr-revision-table) New function. + * progmodes/python.el: Replace reference to obsolete c-subword-mode. + + * vc-bzr.el (vc-bzr-revision-table): New function. 2010-01-25 Eric Hanchrow <eric.hanchrow@gmail.com> (tiny change) @@ -324,7 +356,7 @@ 2010-01-23 Stephen Leake <stephen_leake@member.fsf.org> - * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax + * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax is the same as subprogram call, not declaration. (Bug#5435). 2010-01-23 Michael Albinus <michael.albinus@gmx.de> @@ -3720,7 +3752,7 @@ (verilog-read-decls): Fix AUTOREG not detecting "assign {a,b}". Reported by Wade Smith. - (verilog-batch-execute-func) Comment on function usage. + (verilog-batch-execute-func): Comment on function usage. 2009-11-05 Michael McNamara <mac@mail.brushroad.com> @@ -4377,7 +4409,7 @@ (tramp-handle-file-truename): Use it. (tramp-handle-file-exists-p): Check file-attributes cache, assume file exists if cache value present. - (tramp-check-cached-permissions) New defun. + (tramp-check-cached-permissions): New defun. (tramp-handle-file-readable-p): Use it. (tramp-handle-file-writable-p): Likewise. (tramp-handle-file-executable-p): Likewise. @@ -4608,7 +4640,7 @@ from `rfn-eshadow-update-overlay-hook' when unloading. (tramp-methods): Add `tramp-copy-keep-tmpfile' for "rsync" and "rsyncc". Adjust doc string. - (tramp-temp-buffer-file-name) New buffer-local defvar. + (tramp-temp-buffer-file-name): New buffer-local defvar. (tramp-handle-insert-file-contents, tramp-handle-write-region): Keep temporary file when indicated by method ("rsync" and "rsyncc"). @@ -8020,7 +8052,7 @@ Don't modify last-coding-system-used by accident. (tramp-completion-file-name-handler): Apply the checks here, instead during registration. - (tramp-register-file-name-handlers) Renamed from + (tramp-register-file-name-handlers): Renamed from `tramp-register-file-name-handler'. Register both `tramp-file-name-handler' and `tramp-completion-file-name-handler'. (tramp-register-completion-file-name-handler): Remove. (Bug#4260) @@ -10114,7 +10146,7 @@ * net/tramp.el (tramp-do-copy-or-rename-file-directly): Handle also the 'rename case, when setting file modes. (Bug#3712) - (tramp-default-file-modes) Remove execute permissions. + (tramp-default-file-modes): Remove execute permissions. * net/tramp-gvfs.el (tramp-gvfs-methods): Add "synce" method. (top): Add a default for "synce" in `tramp-default-user-alist'. @@ -10139,7 +10171,7 @@ * language/chinese.el ("Chinese-GB", "Chinese-BIG5") ("Chinese-CNS", "Chinese-EUC-TW", "Chinese-GBK"): Add a - setup-funcion to make char-widht-table suitable for respective + setup-function to make char-width-table suitable for respective environments, and an exit-function to cancel that. * language/japan-util.el (setup-japanese-environment-internal): @@ -10199,7 +10231,7 @@ to support safe execution at almost anyline. (verilog-calc-1): Properly support indenting deep inside generate blocks. - (verilog-init-font) Remove definition & use of verilog-init-font, + (verilog-init-font): Remove definition & use of verilog-init-font, as it is redundant with font-lock-defaults. (verilog-mode): Alter the definition of verilog-font-lock-defaults to avoid circular calls if syntax-ppss is a function (as is the @@ -10213,7 +10245,7 @@ (verilog-defun-level-not-generate-re, verilog-defun-level-re) (verilog-defun-level-generate-only-re): Really fix the defun-list compilation issue. - (verilog-calc-1) (verilog-beg-of-statement): Enhance support for + (verilog-calc-1, verilog-beg-of-statement): Enhance support for coverpoint, constraint and cross statements. (verilog-defun-level-list, verilog-generate-defun-level-list) (verilog-all-defun-level-list): Redo these specifications - it is
--- a/lisp/bookmark.el Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/bookmark.el Thu Feb 11 21:54:28 2010 +0000 @@ -1068,7 +1068,7 @@ (funcall (or (bookmark-get-handler bookmark) 'bookmark-default-handler) (bookmark-get-bookmark bookmark)) - (file-error + (bookmark-error-no-filename ;file-error ;; We were unable to find the marked file, so ask if user wants to ;; relocate the bookmark, else remind them to consider deletion. (when (stringp bookmark) @@ -1116,24 +1116,28 @@ BMK-RECORD is a bookmark record, not a bookmark name (i.e., not a string). Changes current buffer and point and returns nil, or signals a `file-error'." (let ((file (bookmark-get-filename bmk-record)) + (buf (bookmark-prop-get bmk-record 'buffer)) (forward-str (bookmark-get-front-context-string bmk-record)) (behind-str (bookmark-get-rear-context-string bmk-record)) (place (bookmark-get-position bmk-record))) - (if (not file) - (signal 'bookmark-error-no-filename (list 'stringp file)) - (set-buffer (find-file-noselect file)) - (if place (goto-char place)) - ;; Go searching forward first. Then, if forward-str exists and - ;; was found in the file, we can search backward for behind-str. - ;; Rationale is that if text was inserted between the two in the - ;; file, it's better to be put before it so you can read it, - ;; rather than after and remain perhaps unaware of the changes. - (if forward-str - (if (search-forward forward-str (point-max) t) - (goto-char (match-beginning 0)))) - (if behind-str - (if (search-backward behind-str (point-min) t) - (goto-char (match-end 0))))) + (set-buffer + (cond + ((and file (file-readable-p file) (not (buffer-live-p buf))) + (find-file-noselect file)) + ;; No file found. See if buffer BUF have been created. + ((and buf (get-buffer buf))) + (t ;; If not, raise error. + (signal 'bookmark-error-no-filename (list 'stringp file))))) + (if place (goto-char place)) + ;; Go searching forward first. Then, if forward-str exists and + ;; was found in the file, we can search backward for behind-str. + ;; Rationale is that if text was inserted between the two in the + ;; file, it's better to be put before it so you can read it, + ;; rather than after and remain perhaps unaware of the changes. + (when (and forward-str (search-forward forward-str (point-max) t)) + (goto-char (match-beginning 0))) + (when (and behind-str (search-backward behind-str (point-min) t)) + (goto-char (match-end 0))) nil)) ;;;###autoload
--- a/lisp/info.el Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/info.el Thu Feb 11 21:54:28 2010 +0000 @@ -4797,7 +4797,7 @@ ;; Use bookmark-default-handler to move to the appropriate location ;; within the node. (bookmark-default-handler - (list* "" `(buffer . ,buf) (bookmark-get-bookmark-record bmk))))) + `("" (buffer . ,buf) . ,(bookmark-get-bookmark-record bmk))))) (provide 'info)
--- a/lisp/iswitchb.el Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/iswitchb.el Thu Feb 11 21:54:28 2010 +0000 @@ -1274,7 +1274,7 @@ ;; consult the list of past visited files, to see if we can find ;; the file which the user might thought was still open. (when (and iswitchb-use-virtual-buffers (null comps) - (or recentf-list bookmark-alist)) + recentf-list) (setq iswitchb-virtual-buffers nil) (let ((head recentf-list) name) (while head @@ -1289,30 +1289,15 @@ (setq iswitchb-virtual-buffers (cons (cons name (car head)) iswitchb-virtual-buffers))) - (setq head (cdr head)))) - (let ((head bookmark-alist) name path) - (while head - (if (and (setq path (cdr (assq 'filename (cdar head)))) - (setq name (file-name-nondirectory path)) - (string-match (if iswitchb-regexp - iswitchb-text - (regexp-quote iswitchb-text)) name) - (null (get-file-buffer path)) - (not (assoc name iswitchb-virtual-buffers)) - (not (iswitchb-ignore-buffername-p name)) - (file-exists-p path)) - (setq iswitchb-virtual-buffers - (cons (cons name path) - iswitchb-virtual-buffers))) - (setq head (cdr head)))) - (setq iswitchb-virtual-buffers (nreverse iswitchb-virtual-buffers) - comps (mapcar 'car iswitchb-virtual-buffers)) + (setq head (cdr head))) + (setq iswitchb-virtual-buffers (nreverse iswitchb-virtual-buffers) + comps (mapcar 'car iswitchb-virtual-buffers)) (let ((comp comps)) (while comp (put-text-property 0 (length (car comp)) 'face 'iswitchb-virtual-matches (car comp)) - (setq comp (cdr comp))))) + (setq comp (cdr comp)))))) (cond ((null comps) (format " %sNo match%s" open-bracket-determined
--- a/lisp/ls-lisp.el Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/ls-lisp.el Thu Feb 11 21:54:28 2010 +0000 @@ -400,6 +400,7 @@ ;; If not full-directory-p, FILE *must not* end in /, as ;; file-attributes will not recognize a symlink to a directory, ;; so must make it a relative filename as ls does: + (if (file-name-absolute-p file) (setq file (expand-file-name file))) (if (eq (aref file (1- (length file))) ?/) (setq file (substring file 0 -1))) (let ((fattr (file-attributes file 'string)))
--- a/lisp/man.el Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/man.el Thu Feb 11 21:54:28 2010 +0000 @@ -771,8 +771,13 @@ ;; quote anything. (let ((process-environment (copy-sequence process-environment))) (setenv "COLUMNS" "999") ;; don't truncate long names - (call-process manual-program nil '(t nil) nil - "-k" (concat "^" prefix))) + ;; manual-program might not even exist. And since it's + ;; run differently in Man-getpage-in-background, an error + ;; here may not necessarily mean that we'll also get an + ;; error later. + (ignore-errors + (call-process manual-program nil '(t nil) nil + "-k" (concat "^" prefix)))) (goto-char (point-min)) (while (re-search-forward "^\\([^ \t\n]+\\)\\(?: ?\\((.+?)\\)\\(?:[ \t]+- \\(.*\\)\\)?\\)?" nil t) (push (propertize (concat (match-string 1) (match-string 2))
--- a/lisp/subr.el Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/subr.el Thu Feb 11 21:54:28 2010 +0000 @@ -2232,10 +2232,14 @@ (defun copy-overlay (o) "Return a copy of overlay O." - (let ((o1 (make-overlay (overlay-start o) (overlay-end o) - ;; FIXME: there's no easy way to find the - ;; insertion-type of the two markers. - (overlay-buffer o))) + (let ((o1 (if (overlay-buffer o) + (make-overlay (overlay-start o) (overlay-end o) + ;; FIXME: there's no easy way to find the + ;; insertion-type of the two markers. + (overlay-buffer o)) + (let ((o1 (make-overlay (point-min) (point-min)))) + (delete-overlay o1) + o1))) (props (overlay-properties o))) (while props (overlay-put o1 (pop props) (pop props)))
--- a/lisp/term/xterm.el Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/term/xterm.el Thu Feb 11 21:54:28 2010 +0000 @@ -679,7 +679,6 @@ ;; Use the heuristic in `frame-set-background-mode' to decide if a ;; frame is dark. (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535))) - (setq xterm-background-mode-changed t) (set-terminal-parameter nil 'background-mode 'dark) t))
--- a/lisp/textmodes/artist.el Tue Feb 09 21:54:40 2010 +0000 +++ b/lisp/textmodes/artist.el Thu Feb 11 21:54:28 2010 +0000 @@ -859,15 +859,15 @@ can have arrows. The function is called with no arguments and must return nil or t. ARROW-SET-FN is a function that is called to set arrow end-points. - Arguments and return values for this funcion are described below. + Arguments and return values for this function are described below. INIT-FN is, if non-nil, a function that is called when the first point of the shape is set. Arguments and return values for - this funcion are described below. + this function are described below. PREP-FILL-FN is, if non-nil, a function that is called after the last point is set, but before the filling is done. - Arguments and return values for this funcion are described below. + Arguments and return values for this function are described below. EXIT-FN is, if non-nil, a function that is called after filling - is done. Arguments and return values for this funcion are + is done. Arguments and return values for this function are described below. DRAW-HOW defines the kind of shape. The kinds of shapes are: `artist-do-continously' -- Do drawing operation continuously, @@ -876,7 +876,7 @@ 1 -- Do drawing operation only once. 2 -- The drawing operation requires two points. DRAW-FN is the function to call for drawing. Arguments and - return values for this funcion are described below. + return values for this function are described below. EXTRA-DRAW-INFO the layout of this depends on the value of DRAW-HOW: If DRAW-HOW is `artist-do-continously': @@ -894,20 +894,20 @@ (UNDRAW-FN FILL-PRED FILL-FN) UNDRAW-FN is a function to call for undrawing the shape. - Arguments and return values for this funcion are + Arguments and return values for this function are described below. FILL-PRED is a function that is called to find out if the shape can have arrows. The function must take no arguments and return nil or t. FILL-FN is a function to call for filling the shape. - Arguments and return values for this funcion are + Arguments and return values for this function are described below. If DRAW-HOW is 1: () -Note! All symbols and keywords (both in the `funcion-call' INFO-PART +Note! All symbols and keywords (both in the `function-call' INFO-PART as well as in the `graphics-operation' INFO-PART) must be unique. The following table describe function arguments and return value
--- a/src/ChangeLog Tue Feb 09 21:54:40 2010 +0000 +++ b/src/ChangeLog Thu Feb 11 21:54:28 2010 +0000 @@ -1,3 +1,15 @@ +2010-02-10 Jan Djärv <jan.h.d@swipnet.se> + + * xsmfns.c (x_session_initialize): Move initialization of ice_fd and + doing_interact here. + (ice_connection_closed): New function. + (x_session_check_input, smc_die_CB, ice_io_error_handler) + (ice_conn_watch_CB, x_session_close): Call ice_connection_closed. + (x_session_check_input): Call IceCloseConnection if IceProcessMessages + returns I/O error. + (ice_conn_watch_CB): Call add_keyboard_wait_descriptor on ice_fd, + bug #5512. + 2010-02-08 Francis Devereux <francis@devrx.org> (tiny change) * nsfont.m (nsfont_open): The system's value for the font descent @@ -83,7 +95,7 @@ 2010-01-25 Jan Djärv <jan.h.d@swipnet.se> * xfns.c (Fx_create_frame): If frame height is too big, try - sizes 24 and 10. Bug #3643. + sizes 24 and 10. Bug #3643. 2010-01-24 Stefan Monnier <monnier@iro.umontreal.ca> @@ -170,7 +182,7 @@ * xfns.c (x_get_current_desktop, x_get_desktop_workarea): New functions. (Fx_create_frame): Call x_get_current_desktop and x_get_desktop_workarea to find out usable size of the desktop. Don't make frames larger than - this. Bug #3643. + this. Bug #3643. 2010-01-15 Kenichi Handa <handa@m17n.org> @@ -315,7 +327,7 @@ 2010-01-08 Jan Djärv <jan.h.d@swipnet.se> - * dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must + * dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must also be true before we can return early (bug #5339). 2010-01-06 David Reitter <david.reitter@gmail.com> @@ -347,7 +359,7 @@ * xterm.c (x_new_font): Move code for setting rows/cols before resizing ... - (x_set_window_size): ... to here. bug #2568. + (x_set_window_size): ... to here. Bug #2568. * gtkutil.c (xg_clear_under_internal_border): New function. (xg_frame_resized, xg_frame_set_char_size): @@ -1586,7 +1598,7 @@ Fix printf format. (ns_query_color): Use CGFloat where appropriate. (EmacsView<NSTextInput>, EmacsScroller): Fix method signatures. - (EmacsScroller-mouseDown:) Use long format in printf, and cast + (EmacsScroller-mouseDown:): Use long format in printf, and cast argument. * config.in (NS_HAVE_NSINTEGER): Drop. @@ -4062,7 +4074,7 @@ 2009-02-12 Stefan Monnier <monnier@iro.umontreal.ca> - * keyboard.c (adjust_point_for_property): Allow stopping betwen two + * keyboard.c (adjust_point_for_property): Allow stopping between two invisible areas. 2009-02-12 Jason Rumney <jasonr@gnu.org>
--- a/src/xsmfns.c Tue Feb 09 21:54:40 2010 +0000 +++ b/src/xsmfns.c Thu Feb 11 21:54:28 2010 +0000 @@ -52,11 +52,11 @@ /* The descriptor that we use to check for data from the session manager. */ -static int ice_fd = -1; +static int ice_fd; /* A flag that says if we are in shutdown interactions or not. */ -static int doing_interact = False; +static int doing_interact; /* The session manager object for the session manager connection. */ @@ -90,6 +90,14 @@ #define NOSPLASH_OPT "--no-splash" +static void +ice_connection_closed () +{ + if (ice_fd >= 0) + delete_keyboard_wait_descriptor (ice_fd); + ice_fd = -1; +} + /* Handle any messages from the session manager. If no connection is open to a session manager, just return 0. @@ -101,9 +109,9 @@ { SELECT_TYPE read_fds; EMACS_TIME tmout; + int ret; if (ice_fd == -1) return 0; - FD_ZERO (&read_fds); FD_SET (ice_fd, &read_fds); @@ -116,26 +124,33 @@ will be called. */ emacs_event.kind = NO_EVENT; - if (select (ice_fd+1, &read_fds, - (SELECT_TYPE *)0, (SELECT_TYPE *)0, &tmout) < 0) + ret = select (ice_fd+1, &read_fds, + (SELECT_TYPE *)0, (SELECT_TYPE *)0, &tmout); + + if (ret < 0) { - ice_fd = -1; - return 0; + ice_connection_closed (); } - + else if (ret > 0 && FD_ISSET (ice_fd, &read_fds)) + { + ret = IceProcessMessages (SmcGetIceConnection (smc_conn), + (IceReplyWaitInfo *)0, (Bool *)0); + if (ret != IceProcessMessagesSuccess) + { + /* Either IO error or Connection closed. */ + if (ret == IceProcessMessagesIOError) + IceCloseConnection (SmcGetIceConnection (smc_conn)); - if (FD_ISSET (ice_fd, &read_fds)) - IceProcessMessages (SmcGetIceConnection (smc_conn), - (IceReplyWaitInfo *)0, (Bool *)0); - + ice_connection_closed (); + } + } /* Check if smc_interact_CB was called and we shall generate a SAVE_SESSION_EVENT. */ - if (emacs_event.kind == NO_EVENT) - return 0; + if (emacs_event.kind != NO_EVENT) + bcopy (&emacs_event, bufp, sizeof (struct input_event)); - bcopy (&emacs_event, bufp, sizeof (struct input_event)); - return 1; + return emacs_event.kind != NO_EVENT ? 1 : 0; } /* Return non-zero if we have a connection to a session manager. */ @@ -284,7 +299,7 @@ SmPointer clientData; { SmcCloseConnection (smcConn, 0, 0); - ice_fd = -1; + ice_connection_closed (); } /* We don't use the next two but they are mandatory, leave them empty. @@ -356,7 +371,7 @@ IceConn iceConn; { /* Connection probably gone. */ - ice_fd = -1; + ice_connection_closed (); } /* This is called when the ICE connection is created or closed. The SM library @@ -371,7 +386,7 @@ { if (! opening) { - ice_fd = -1; + ice_connection_closed (); return; } @@ -384,6 +399,8 @@ if (interrupt_input) init_sigio (ice_fd); #endif /* ! defined (SIGIO) */ + + add_keyboard_wait_descriptor (ice_fd); } /* Create the client leader window. */ @@ -426,6 +443,9 @@ SmcCallbacks callbacks; int name_len = 0; + ice_fd = -1; + doing_interact = False; + /* Check if we where started by the session manager. If so, we will have a previous id. */ if (! EQ (Vx_session_previous_id, Qnil) && STRINGP (Vx_session_previous_id)) @@ -497,7 +517,7 @@ void x_session_close () { - ice_fd = -1; + ice_connection_closed (); }