# HG changeset patch # User Katsumi Yamaoka # Date 1270381227 0 # Node ID d6e3aa27b97d561f26141842f2597317bd1e8ce9 # Parent 8ce52346653167389b8968ef368cbf40624fae39# Parent 41e0da544208fcd506218d0e1a2d2c62c41dec7e Merge from mainline. diff -r 8ce523466531 -r d6e3aa27b97d lisp/ChangeLog --- a/lisp/ChangeLog Sat Apr 03 12:47:25 2010 +0000 +++ b/lisp/ChangeLog Sun Apr 04 11:40:27 2010 +0000 @@ -1,3 +1,38 @@ +2010-04-04 John Wiegley + + * ido.el (ido-use-virtual-buffers): New variable to indicate + whether "virtual buffer" support is enabled for IDO. Essentially + it works as follows: Say you are visiting a file and the buffer + gets cleaned up by mignight.el. Later, you want to switch to that + buffer, but find it's no longer open. With virtual buffers + enabled, the buffer name stays in the buffer list (using the + ido-virtual face, and always at the end), and if you select it, it + opens the file back up again. This allows you to think less about + whether recently opened files are still open or not. Most of the + time you can quit Emacs, restart, and then switch to a file buffer + that was previously open as if it still were. NOTE: This feature + has been present in iswitchb for several years now, and I'm + porting the same logic to IDO. + (ido-virtual): Face used to indicate virtual buffers in the list. + (ido-buffer-internal): If a buffer is chosen, and no such buffer + exists, but a virtual buffer of that name does (which would be why + it was in the list), recreate the buffer by reopening the file. + (ido-make-buffer-list): If virtual buffers are being used, call + `ido-add-virtual-buffers-to-list' before the make list hook. + (ido-virtual-buffers): New variable which contains a copy of the + current contents of the `recentf-list', albeit pared down for the + sake of speed, and with proper faces applied. + (ido-add-virtual-buffers-to-list): Using the `recentf-list', + create a list of "virtual buffers" to present to the user in + addition to the currently open set. Note that this logic could + get rather slow if that list is too large. With the default + `recentf-max-saved-items' of 200, there is little speed penalty. + +2010-04-03 Stefan Monnier + + * font-lock.el: Require CL when compiling. + (font-lock-turn-on-thing-lock): Use `case'. + 2010-04-03 Eli Zaretskii * emacs-lisp/authors.el (authors-fixed-entries): Add entry for Eli @@ -23,11 +58,11 @@ * vc-hg.el (vc-hg-push, vc-hg-pull): Use `apply' when calling `vc-hg-command' with a list of flags. - * progmodes/bug-reference.el (bug-reference-bug-regexp): Also - accept "patch" and "RFE". + * progmodes/bug-reference.el (bug-reference-bug-regexp): + Also accept "patch" and "RFE". (bug-reference-fontify): `bug-reference-url-format' can also be a function to be able to handle the bug kind. - (turn-on-bug-reference-mode, turn-on-bug-reference-prog-mode): Add + (turn-on-bug-reference-mode, turn-on-bug-reference-prog-mode): Add. 2010-04-02 Jan Djärv @@ -36,8 +71,7 @@ 2010-03-31 Chong Yidong - * cus-edit.el (custom-buffer-sort-alphabetically): Update - :version. + * cus-edit.el (custom-buffer-sort-alphabetically): Update :version. 2010-03-31 Juri Linkov diff -r 8ce523466531 -r d6e3aa27b97d lisp/font-lock.el --- a/lisp/font-lock.el Sat Apr 03 12:47:25 2010 +0000 +++ b/lisp/font-lock.el Sun Apr 04 11:40:27 2010 +0000 @@ -209,6 +209,7 @@ ;;; Code: (require 'syntax) +(eval-when-compile (require 'cl)) ;; Define core `font-lock' group. (defgroup font-lock '((jit-lock custom-group)) @@ -902,26 +903,24 @@ (declare-function lazy-lock-mode "lazy-lock") (defun font-lock-turn-on-thing-lock () - (let ((thing-mode (font-lock-value-in-major-mode font-lock-support-mode))) - (cond ((eq thing-mode 'fast-lock-mode) - (fast-lock-mode t)) - ((eq thing-mode 'lazy-lock-mode) - (lazy-lock-mode t)) - ((eq thing-mode 'jit-lock-mode) - ;; Prepare for jit-lock - (remove-hook 'after-change-functions - 'font-lock-after-change-function t) - (set (make-local-variable 'font-lock-fontify-buffer-function) - 'jit-lock-refontify) - ;; Don't fontify eagerly (and don't abort if the buffer is large). - (set (make-local-variable 'font-lock-fontified) t) - ;; Use jit-lock. - (jit-lock-register 'font-lock-fontify-region - (not font-lock-keywords-only)) - ;; Tell jit-lock how we extend the region to refontify. - (add-hook 'jit-lock-after-change-extend-region-functions - 'font-lock-extend-jit-lock-region-after-change - nil t))))) + (case (font-lock-value-in-major-mode font-lock-support-mode) + (fast-lock-mode (fast-lock-mode t)) + (lazy-lock-mode (lazy-lock-mode t)) + (jit-lock-mode + ;; Prepare for jit-lock + (remove-hook 'after-change-functions + 'font-lock-after-change-function t) + (set (make-local-variable 'font-lock-fontify-buffer-function) + 'jit-lock-refontify) + ;; Don't fontify eagerly (and don't abort if the buffer is large). + (set (make-local-variable 'font-lock-fontified) t) + ;; Use jit-lock. + (jit-lock-register 'font-lock-fontify-region + (not font-lock-keywords-only)) + ;; Tell jit-lock how we extend the region to refontify. + (add-hook 'jit-lock-after-change-extend-region-functions + 'font-lock-extend-jit-lock-region-after-change + nil t)))) (defun font-lock-turn-off-thing-lock () (cond ((bound-and-true-p fast-lock-mode) diff -r 8ce523466531 -r d6e3aa27b97d lisp/ido.el --- a/lisp/ido.el Sat Apr 03 12:47:25 2010 +0000 +++ b/lisp/ido.el Sun Apr 04 11:40:27 2010 +0000 @@ -774,6 +774,13 @@ :type '(repeat string) :group 'ido) +(defcustom ido-use-virtual-buffers nil + "If non-nil, refer to past buffers as well as existing ones. +This feature relies upon the `recentf' package, which will be +enabled if this variable is configured to a non-nil value." + :type 'boolean + :group 'ido) + (defcustom ido-use-faces t "Non-nil means use ido faces to highlighting first match, only match and subdirs in the alternatives." @@ -798,6 +805,10 @@ "Face used by ido for highlighting subdirs in the alternatives." :group 'ido) +(defface ido-virtual '((t (:inherit font-lock-builtin-face))) + "Face used by ido for matching virtual buffer names." + :group 'ido) + (defface ido-indicator '((((min-colors 88) (class color)) (:foreground "yellow1" :background "red1" @@ -2155,7 +2166,8 @@ (ido-directory-too-big nil) (require-match (confirm-nonexistent-file-or-buffer)) (buf (ido-read-internal 'buffer (or prompt "Buffer: ") 'ido-buffer-history default - require-match initial))) + require-match initial)) + filename) ;; Choose the buffer name: either the text typed in, or the head ;; of the list of matches @@ -2191,6 +2203,16 @@ (point)))) (ido-visit-buffer buf method t))) + ;; check for a virtual buffer reference + ((and ido-use-virtual-buffers ido-virtual-buffers + (setq filename (assoc buf ido-virtual-buffers))) + (ido-visit-buffer (find-file-noselect (cdr filename)) method t)) + + ((and (eq ido-create-new-buffer 'prompt) + (null require-match) + (not (y-or-n-p (format "No buffer matching `%s', create one? " buf)))) + nil) + ;; buffer doesn't exist ((and (eq ido-create-new-buffer 'never) (null require-match)) @@ -3350,9 +3372,41 @@ (delete default ido-temp-list)) (setq ido-temp-list (cons default ido-temp-list)))) + (if ido-use-virtual-buffers + (ido-add-virtual-buffers-to-list)) (run-hooks 'ido-make-buffer-list-hook) ido-temp-list)) +(defvar ido-virtual-buffers nil) + +(defun ido-add-virtual-buffers-to-list () + "Add recently visited files, and bookmark files, to the buffer list. +This is to make them appear as if they were \"virtual buffers\"." + ;; If no buffers matched, and virtual buffers are being used, then + ;; consult the list of past visited files, to see if we can find + ;; the file which the user might thought was still open. + (setq ido-virtual-buffers nil) + (let ((head recentf-list) name) + (while head + (if (and (setq name (file-name-nondirectory (car head))) + (null (get-file-buffer (car head))) + (not (assoc name ido-virtual-buffers)) + (not (ido-ignore-item-p name ido-ignore-buffers)) + ;;(file-exists-p (car head)) + ) + (setq ido-virtual-buffers + (cons (cons name (car head)) ido-virtual-buffers))) + (setq head (cdr head)))) + (when ido-virtual-buffers + (if ido-use-faces + (dolist (comp ido-virtual-buffers) + (put-text-property 0 (length (car comp)) + 'face 'ido-virtual + (car comp)))) + (setq ido-temp-list + (nconc ido-temp-list + (nreverse (mapcar #'car ido-virtual-buffers)))))) + (defun ido-make-choice-list (default) ;; Return the current list of choices. ;; If DEFAULT is non-nil, and corresponds to an element of choices, diff -r 8ce523466531 -r d6e3aa27b97d lisp/ldefs-boot.el --- a/lisp/ldefs-boot.el Sat Apr 03 12:47:25 2010 +0000 +++ b/lisp/ldefs-boot.el Sun Apr 04 11:40:27 2010 +0000 @@ -10464,13 +10464,7 @@ ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off ;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) -<<<<<<< TREE ;;;;;; "flyspell" "textmodes/flyspell.el" (19370 36541)) -||||||| BASE-REVISION -;;;;;; "flyspell" "textmodes/flyspell.el" (19352 21362)) -======= -;;;;;; "flyspell" "textmodes/flyspell.el" (19369 7847)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from textmodes/flyspell.el (autoload 'flyspell-prog-mode "flyspell" "\ @@ -10792,7 +10786,6 @@ ;;;*** -<<<<<<< TREE ;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el" ;;;;;; (19375 49830)) ;;; Generated autoloads from progmodes/gdb-mi.el @@ -10803,19 +10796,6 @@ (custom-autoload 'gdb-enable-debug "gdb-mi" t) (autoload 'gdb "gdb-mi" "\ -||||||| BASE-REVISION -;;;### (autoloads (gdb-enable-debug gdb) "gdb-ui" "progmodes/gdb-ui.el" -;;;;;; (19352 21362)) -;;; Generated autoloads from progmodes/gdb-ui.el - -(autoload 'gdb "gdb-ui" "\ -======= -;;;### (autoloads (gdb-enable-debug gdb) "gdb-ui" "progmodes/gdb-ui.el" -;;;;;; (19372 60979)) -;;; Generated autoloads from progmodes/gdb-ui.el - -(autoload 'gdb "gdb-ui" "\ ->>>>>>> MERGE-SOURCE Run gdb on program FILE in buffer *gud-FILE*. The directory containing FILE becomes the initial working directory and source-file directory for your debugger. @@ -13669,16 +13649,8 @@ ;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file ;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer ;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window -<<<<<<< TREE ;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (19292 ;;;;;; 15231)) -||||||| BASE-REVISION -;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (19352 -;;;;;; 21354)) -======= -;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (19355 -;;;;;; 62587)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ @@ -14170,13 +14142,7 @@ ;;;;;; image-dired-jump-thumbnail-buffer image-dired-delete-tag ;;;;;; image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs ;;;;;; image-dired-dired-with-window-configuration image-dired-dired-insert-marked-thumbs) -<<<<<<< TREE ;;;;;; "image-dired" "image-dired.el" (19370 36540)) -||||||| BASE-REVISION -;;;;;; "image-dired" "image-dired.el" (19352 21354)) -======= -;;;;;; "image-dired" "image-dired.el" (19367 42949)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from image-dired.el (autoload 'image-dired-dired-insert-marked-thumbs "image-dired" "\ @@ -15428,13 +15394,7 @@ ;;;*** -<<<<<<< TREE ;;;### (autoloads (js-mode) "js" "progmodes/js.el" (19279 5151)) -||||||| BASE-REVISION -;;;### (autoloads (js-mode) "js" "progmodes/js.el" (19352 21355)) -======= -;;;### (autoloads (js-mode) "js" "progmodes/js.el" (19375 48608)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from progmodes/js.el (autoload 'js-mode "js" "\ @@ -16543,13 +16503,7 @@ ;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode ;;;;;; makefile-gmake-mode makefile-automake-mode makefile-mode) -<<<<<<< TREE ;;;;;; "make-mode" "progmodes/make-mode.el" (19372 27330)) -||||||| BASE-REVISION -;;;;;; "make-mode" "progmodes/make-mode.el" (19352 21355)) -======= -;;;;;; "make-mode" "progmodes/make-mode.el" (19370 15152)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from progmodes/make-mode.el (autoload 'makefile-mode "make-mode" "\ @@ -16781,13 +16735,7 @@ ;;;;;; message-forward-make-body message-forward message-recover ;;;;;; message-supersede message-cancel-news message-followup message-wide-reply ;;;;;; message-reply message-news message-mail message-mode) "message" -<<<<<<< TREE ;;;;;; "gnus/message.el" (19370 36541)) -||||||| BASE-REVISION -;;;;;; "gnus/message.el" (19352 21361)) -======= -;;;;;; "gnus/message.el" (19374 17766)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from gnus/message.el (define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook) @@ -17433,13 +17381,7 @@ ;;;*** ;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu" -<<<<<<< TREE ;;;;;; "gnus/mm-uu.el" (19279 5150)) -||||||| BASE-REVISION -;;;;;; "gnus/mm-uu.el" (19352 21355)) -======= -;;;;;; "gnus/mm-uu.el" (19382 2266)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from gnus/mm-uu.el (autoload 'mm-uu-dissect "mm-uu" "\ @@ -22665,16 +22607,8 @@ ;;;*** -<<<<<<< TREE ;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (19370 ;;;;;; 36541)) -||||||| BASE-REVISION -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (19352 -;;;;;; 21358)) -======= -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (19367 -;;;;;; 42950)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from textmodes/reftex-vars.el (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) @@ -22926,16 +22860,8 @@ ;;;;;; rmail-secondary-file-directory rmail-primary-inbox-list rmail-highlighted-headers ;;;;;; rmail-retry-ignored-headers rmail-displayed-headers rmail-ignored-headers ;;;;;; rmail-dont-reply-to-names rmail-user-mail-address-regexp -<<<<<<< TREE ;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (19370 ;;;;;; 36541)) -||||||| BASE-REVISION -;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (19352 -;;;;;; 21360)) -======= -;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (19363 -;;;;;; 36802)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from mail/rmail.el (autoload 'rmail-movemail-variant-p "rmail" "\ @@ -23902,13 +23828,7 @@ ;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name ;;;;;; mail-header-separator send-mail-function mail-interactive ;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style) -<<<<<<< TREE ;;;;;; "sendmail" "mail/sendmail.el" (19338 9841)) -||||||| BASE-REVISION -;;;;;; "sendmail" "mail/sendmail.el" (19352 21361)) -======= -;;;;;; "sendmail" "mail/sendmail.el" (19374 15070)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style 'default "\ @@ -24787,13 +24707,7 @@ ;;;*** ;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el" -<<<<<<< TREE ;;;;;; (19370 36541)) -||||||| BASE-REVISION -;;;;;; (19352 21358)) -======= -;;;;;; (19367 42950)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from gnus/smiley.el (autoload 'smiley-region "smiley" "\ @@ -26811,13 +26725,7 @@ ;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command ;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp ;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el" -<<<<<<< TREE ;;;;;; (19323 49698)) -||||||| BASE-REVISION -;;;;;; (19352 21363)) -======= -;;;;;; (19371 46148)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ @@ -27812,13 +27720,7 @@ ;;;*** ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" -<<<<<<< TREE ;;;;;; "tmm.el" (19279 5148)) -||||||| BASE-REVISION -;;;;;; "tmm.el" (19352 21359)) -======= -;;;;;; "tmm.el" (19376 53416)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse) @@ -28068,13 +27970,7 @@ ;;;*** ;;;### (autoloads (trace-function-background trace-function trace-buffer) -<<<<<<< TREE ;;;;;; "trace" "emacs-lisp/trace.el" (19370 36541)) -||||||| BASE-REVISION -;;;;;; "trace" "emacs-lisp/trace.el" (19352 21359)) -======= -;;;;;; "trace" "emacs-lisp/trace.el" (19367 42950)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer (purecopy "*trace-output*") "\ @@ -28111,13 +28007,7 @@ ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion ;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers ;;;;;; tramp-file-name-handler tramp-syntax tramp-mode) "tramp" -<<<<<<< TREE ;;;;;; "net/tramp.el" (19370 36541)) -||||||| BASE-REVISION -;;;;;; "net/tramp.el" (19352 21361)) -======= -;;;;;; "net/tramp.el" (19356 59749)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from net/tramp.el (defvar tramp-mode t "\ @@ -29340,13 +29230,7 @@ ;;;;;; vc-create-tag vc-merge vc-insert-headers vc-revision-other-window ;;;;;; vc-root-diff vc-diff vc-version-diff vc-register vc-next-action ;;;;;; vc-before-checkin-hook vc-checkin-hook vc-checkout-hook) -<<<<<<< TREE ;;;;;; "vc" "vc.el" (19370 36540)) -||||||| BASE-REVISION -;;;;;; "vc" "vc.el" (19352 21359)) -======= -;;;;;; "vc" "vc.el" (19371 62620)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from vc.el (defvar vc-checkout-hook nil "\ @@ -31607,13 +31491,7 @@ ;;;*** ;;;### (autoloads (woman-find-file woman-dired-find-file woman woman-locale) -<<<<<<< TREE ;;;;;; "woman" "woman.el" (19370 36540)) -||||||| BASE-REVISION -;;;;;; "woman" "woman.el" (19352 21359)) -======= -;;;;;; "woman" "woman.el" (19359 48737)) ->>>>>>> MERGE-SOURCE ;;; Generated autoloads from woman.el (defvar woman-locale nil "\ @@ -31967,7 +31845,6 @@ ;;;;;; "cedet/semantic/edit.el" "cedet/semantic/find.el" "cedet/semantic/format.el" ;;;;;; "cedet/semantic/fw.el" "cedet/semantic/grammar-wy.el" "cedet/semantic/grammar.el" ;;;;;; "cedet/semantic/html.el" "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el" -<<<<<<< TREE ;;;;;; "cedet/semantic/idle.el" "cedet/semantic/imenu.el" "cedet/semantic/java.el" ;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/loaddefs.el" ;;;;;; "cedet/semantic/mru-bookmark.el" "cedet/semantic/sb.el" "cedet/semantic/scope.el" @@ -31976,25 +31853,6 @@ ;;;;;; "cedet/semantic/symref/global.el" "cedet/semantic/symref/grep.el" ;;;;;; "cedet/semantic/symref/idutils.el" "cedet/semantic/symref/list.el" ;;;;;; "cedet/semantic/tag-file.el" "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" -||||||| BASE-REVISION -;;;;;; "cedet/semantic/idle.el" "cedet/semantic/java.el" "cedet/semantic/lex-spp.el" -;;;;;; "cedet/semantic/lex.el" "cedet/semantic/mru-bookmark.el" -;;;;;; "cedet/semantic/sb.el" "cedet/semantic/scope.el" "cedet/semantic/senator.el" -;;;;;; "cedet/semantic/sort.el" "cedet/semantic/symref.el" "cedet/semantic/symref/cscope.el" -;;;;;; "cedet/semantic/symref/filter.el" "cedet/semantic/symref/global.el" -;;;;;; "cedet/semantic/symref/grep.el" "cedet/semantic/symref/idutils.el" -;;;;;; "cedet/semantic/symref/list.el" "cedet/semantic/tag-file.el" -;;;;;; "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" -======= -;;;;;; "cedet/semantic/idle.el" "cedet/semantic/imenu.el" "cedet/semantic/java.el" -;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/mru-bookmark.el" -;;;;;; "cedet/semantic/sb.el" "cedet/semantic/scope.el" "cedet/semantic/senator.el" -;;;;;; "cedet/semantic/sort.el" "cedet/semantic/symref.el" "cedet/semantic/symref/cscope.el" -;;;;;; "cedet/semantic/symref/filter.el" "cedet/semantic/symref/global.el" -;;;;;; "cedet/semantic/symref/grep.el" "cedet/semantic/symref/idutils.el" -;;;;;; "cedet/semantic/symref/list.el" "cedet/semantic/tag-file.el" -;;;;;; "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" ->>>>>>> MERGE-SOURCE ;;;;;; "cedet/semantic/tag.el" "cedet/semantic/texi.el" "cedet/semantic/util-modes.el" ;;;;;; "cedet/semantic/util.el" "cedet/semantic/wisent.el" "cedet/semantic/wisent/comp.el" ;;;;;; "cedet/semantic/wisent/java-tags.el" "cedet/semantic/wisent/javascript.el" @@ -32108,7 +31966,6 @@ ;;;;;; "org/org-mac-message.el" "org/org-macs.el" "org/org-mew.el" ;;;;;; "org/org-mhe.el" "org/org-mouse.el" "org/org-protocol.el" ;;;;;; "org/org-rmail.el" "org/org-src.el" "org/org-vm.el" "org/org-w3m.el" -<<<<<<< TREE ;;;;;; "org/org-wl.el" "patcomp.el" "pcvs-info.el" "pcvs-parse.el" ;;;;;; "pcvs-util.el" "pgg-def.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" ;;;;;; "play/gamegrid.el" "play/gametree.el" "play/meese.el" "progmodes/ada-prj.el" @@ -32131,55 +31988,6 @@ ;;;;;; "url/url-nfs.el" "url/url-proxy.el" "url/url-vars.el" "vc-dav.el" ;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-fns.el" ;;;;;; "w32-vars.el" "x-dnd.el") (19375 51700 955763)) -||||||| BASE-REVISION -;;;;;; "org/org-wl.el" "password-cache.el" "patcomp.el" "pcvs-info.el" -;;;;;; "pcvs-parse.el" "pcvs-util.el" "pgg-def.el" "pgg-parse.el" -;;;;;; "pgg-pgp.el" "pgg-pgp5.el" "play/gamegrid.el" "play/gametree.el" -;;;;;; "play/meese.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" -;;;;;; "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el" -;;;;;; "progmodes/cc-defs.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el" -;;;;;; "progmodes/cc-menus.el" "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el" -;;;;;; "progmodes/ebnf-dtd.el" "progmodes/ebnf-ebx.el" "progmodes/ebnf-iso.el" -;;;;;; "progmodes/ebnf-otz.el" "progmodes/ebnf-yac.el" "progmodes/idlw-complete-structtag.el" -;;;;;; "progmodes/idlw-help.el" "progmodes/idlw-toolbar.el" "progmodes/mantemp.el" -;;;;;; "progmodes/xscheme.el" "ps-def.el" "ps-mule.el" "ps-samp.el" -;;;;;; "s-region.el" "saveplace.el" "sb-image.el" "scroll-bar.el" -;;;;;; "select.el" "soundex.el" "subdirs.el" "tempo.el" "textmodes/bib-mode.el" -;;;;;; "textmodes/makeinfo.el" "textmodes/page-ext.el" "textmodes/refbib.el" -;;;;;; "textmodes/refer.el" "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" -;;;;;; "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" -;;;;;; "textmodes/texnfo-upd.el" "timezone.el" "tooltip.el" "tree-widget.el" -;;;;;; "uniquify.el" "url/url-about.el" "url/url-cookie.el" "url/url-dired.el" -;;;;;; "url/url-expand.el" "url/url-ftp.el" "url/url-history.el" -;;;;;; "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el" -;;;;;; "url/url-vars.el" "vc-dav.el" "vcursor.el" "vt-control.el" -;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "x-dnd.el") (19352 -;;;;;; 23109 108328)) -======= -;;;;;; "org/org-wl.el" "password-cache.el" "patcomp.el" "pcvs-info.el" -;;;;;; "pcvs-parse.el" "pcvs-util.el" "pgg-def.el" "pgg-parse.el" -;;;;;; "pgg-pgp.el" "pgg-pgp5.el" "play/gamegrid.el" "play/gametree.el" -;;;;;; "play/meese.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" -;;;;;; "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el" -;;;;;; "progmodes/cc-defs.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el" -;;;;;; "progmodes/cc-menus.el" "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el" -;;;;;; "progmodes/ebnf-dtd.el" "progmodes/ebnf-ebx.el" "progmodes/ebnf-iso.el" -;;;;;; "progmodes/ebnf-otz.el" "progmodes/ebnf-yac.el" "progmodes/idlw-complete-structtag.el" -;;;;;; "progmodes/idlw-help.el" "progmodes/idlw-toolbar.el" "progmodes/mantemp.el" -;;;;;; "progmodes/xscheme.el" "ps-def.el" "ps-mule.el" "ps-samp.el" -;;;;;; "s-region.el" "saveplace.el" "sb-image.el" "scroll-bar.el" -;;;;;; "select.el" "soundex.el" "subdirs.el" "tempo.el" "textmodes/bib-mode.el" -;;;;;; "textmodes/makeinfo.el" "textmodes/page-ext.el" "textmodes/refbib.el" -;;;;;; "textmodes/refer.el" "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" -;;;;;; "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" -;;;;;; "textmodes/texnfo-upd.el" "timezone.el" "tooltip.el" "tree-widget.el" -;;;;;; "uniquify.el" "url/url-about.el" "url/url-cookie.el" "url/url-dired.el" -;;;;;; "url/url-expand.el" "url/url-ftp.el" "url/url-history.el" -;;;;;; "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el" -;;;;;; "url/url-vars.el" "vc-dav.el" "vcursor.el" "vt-control.el" -;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "x-dnd.el") (19382 -;;;;;; 35538 347447)) ->>>>>>> MERGE-SOURCE ;;;*** diff -r 8ce523466531 -r d6e3aa27b97d src/ChangeLog --- a/src/ChangeLog Sat Apr 03 12:47:25 2010 +0000 +++ b/src/ChangeLog Sun Apr 04 11:40:27 2010 +0000 @@ -1,5 +1,14 @@ +2010-04-04 Jan Djärv + + * xfns.c (set_machine_and_pid_properties): New function. + (Fx_create_frame): Call set_machine_and_pid_properties. + 2010-04-03 Eli Zaretskii + * bidi.c (bidi_resolve_explicit, bidi_level_of_next_char): Check + bidi_it->bytepos against ZV_BYTE instead of bidi_it->ch against + BIDI_EOB. Fixes infloop with vertical cursor motion at ZV. + * w32fns.c (x_create_tip_frame): Copy `parms' before we modify it in this function. (Bug#5703) diff -r 8ce523466531 -r d6e3aa27b97d src/bidi.c --- a/src/bidi.c Sat Apr 03 12:47:25 2010 +0000 +++ b/src/bidi.c Sun Apr 04 11:40:27 2010 +0000 @@ -1242,7 +1242,7 @@ if (prev_level < new_level && bidi_it->type == WEAK_BN && bidi_it->ignore_bn_limit == 0 /* only if not already known */ - && bidi_it->ch != BIDI_EOB /* not already at EOB */ + && bidi_it->bytepos < ZV_BYTE /* not already at EOB */ && bidi_explicit_dir_char (FETCH_CHAR (bidi_it->bytepos + bidi_it->ch_len))) { @@ -1648,7 +1648,7 @@ if (bidi_it->scan_dir == 1) { /* There's no sense in trying to advance if we hit end of text. */ - if (bidi_it->ch == BIDI_EOB) + if (bidi_it->bytepos >= ZV_BYTE) return bidi_it->resolved_level; /* Record the info about the previous character. */ diff -r 8ce523466531 -r d6e3aa27b97d src/xdisp.c --- a/src/xdisp.c Sat Apr 03 12:47:25 2010 +0000 +++ b/src/xdisp.c Sun Apr 04 11:40:27 2010 +0000 @@ -6570,7 +6570,10 @@ /* Scan forward from CHARPOS in the current buffer, until we find a stop position > current IT's position. Then handle the stop position before that. This is called when we bump into a stop - position while reordering bidirectional text. */ + position while reordering bidirectional text. CHARPOS should be + the last previously processed stop_pos (or BEGV, if none were + processed yet) whose position is less that IT's current + position. */ static void handle_stop_backwards (it, charpos) diff -r 8ce523466531 -r d6e3aa27b97d src/xfns.c --- a/src/xfns.c Sat Apr 03 12:47:25 2010 +0000 +++ b/src/xfns.c Sun Apr 04 11:40:27 2010 +0000 @@ -203,6 +203,10 @@ extern Lisp_Object Vwindow_system_version; +/* In editfns.c */ + +extern Lisp_Object Vsystem_name; + /* The below are defined in frame.c. */ #if GLYPH_DEBUG @@ -3145,6 +3149,37 @@ return Qnil; } +static void +set_machine_and_pid_properties (struct frame *f) +{ + /* See the above comment "Note: Encoding strategy". */ + XTextProperty text; + int bytes, stringp; + int do_free_text_value = 0; + + text.value = x_encode_text (Vsystem_name, + Qcompound_text, 0, &bytes, &stringp, + &do_free_text_value); + text.encoding = (stringp ? XA_STRING + : FRAME_X_DISPLAY_INFO (f)->Xatom_COMPOUND_TEXT); + text.format = 8; + text.nitems = bytes; + XSetWMClientMachine (FRAME_X_DISPLAY (f), + FRAME_OUTER_WINDOW (f), + &text); + if (do_free_text_value) + xfree (text.value); + + long pid = (long)getpid(); + XChangeProperty (FRAME_X_DISPLAY (f), + FRAME_OUTER_WINDOW (f), + XInternAtom (FRAME_X_DISPLAY (f), + "_NET_WM_PID", + False), + XA_CARDINAL, 32, PropModeReplace, + (unsigned char *) &pid, 1); +} + DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, 1, 1, 0, doc: /* Make a new X window, which is called a "frame" in Emacs terms. @@ -3531,19 +3566,24 @@ ; } + BLOCK_INPUT; + + /* Set machine name and pid for the purpose of window managers. */ + set_machine_and_pid_properties(f); + /* Set the WM leader property. GTK does this itself, so this is not needed when using GTK. */ if (dpyinfo->client_leader_window != 0) { - BLOCK_INPUT; XChangeProperty (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), dpyinfo->Xatom_wm_client_leader, XA_WINDOW, 32, PropModeReplace, (unsigned char *) &dpyinfo->client_leader_window, 1); - UNBLOCK_INPUT; } + UNBLOCK_INPUT; + /* Initialize `default-minibuffer-frame' in case this is the first frame on this terminal. */ if (FRAME_HAS_MINIBUF_P (f)