Mercurial > emacs
changeset 111888:aa074c12a65c
merge emacs-23
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 02 Dec 2010 09:44:25 +0900 |
parents | bbc996a3871b (current diff) 0eb10986b8f2 (diff) |
children | 09d5b0c593b0 2b8e51d977c3 |
files | lisp/ChangeLog |
diffstat | 12 files changed, 209 insertions(+), 138 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/lispref/ChangeLog Mon Nov 29 21:22:39 2010 +0900 +++ b/doc/lispref/ChangeLog Thu Dec 02 09:44:25 2010 +0900 @@ -1,3 +1,10 @@ +2010-12-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * backups.texi (Making Backups): + * modes.texi (Example Major Modes): Use recommended coding style. + (Major Mode Basics, Derived Modes): Encourge more strongly use of + define-derived-mode. Mention completion-at-point-functions. + 2010-11-21 Chong Yidong <cyd@stupidchicken.com> * nonascii.texi (Converting Representations): Document
--- a/doc/lispref/backups.texi Mon Nov 29 21:22:39 2010 +0900 +++ b/doc/lispref/backups.texi Thu Dec 02 09:44:25 2010 +0900 @@ -88,10 +88,8 @@ @smallexample @group (add-hook 'rmail-mode-hook - (function (lambda () - (make-local-variable - 'make-backup-files) - (setq make-backup-files nil)))) + (lambda () + (set (make-local-variable 'make-backup-files) nil))) @end group @end smallexample @end defopt
--- a/doc/lispref/modes.texi Mon Nov 29 21:22:39 2010 +0900 +++ b/doc/lispref/modes.texi Thu Dec 02 09:44:25 2010 +0900 @@ -20,10 +20,10 @@ @ref{Keymaps}, and @ref{Syntax Tables}. @menu -* Hooks:: How to use hooks; how to write code that provides hooks. -* Major Modes:: Defining major modes. -* Minor Modes:: Defining minor modes. -* Mode Line Format:: Customizing the text that appears in the mode line. +* Hooks:: How to use hooks; how to write code that provides hooks. +* Major Modes:: Defining major modes. +* Minor Modes:: Defining minor modes. +* Mode Line Format:: Customizing the text that appears in the mode line. * Imenu:: How a mode can provide a menu of definitions in the buffer. * Font Lock Mode:: How modes can highlight text according to syntax. @@ -78,8 +78,8 @@ its value is just a single function, not a list of functions. @menu -* Running Hooks:: How to run a hook. -* Setting Hooks:: How to put functions on a hook, or remove them. +* Running Hooks:: How to run a hook. +* Setting Hooks:: How to put functions on a hook, or remove them. @end menu @node Running Hooks @@ -199,16 +199,16 @@ to another major mode in the same buffer. @menu -* Major Mode Basics:: -* Major Mode Conventions:: Coding conventions for keymaps, etc. -* Auto Major Mode:: How Emacs chooses the major mode automatically. -* Mode Help:: Finding out how to use a mode. -* Derived Modes:: Defining a new major mode based on another major +* Major Mode Basics:: +* Major Mode Conventions:: Coding conventions for keymaps, etc. +* Auto Major Mode:: How Emacs chooses the major mode automatically. +* Mode Help:: Finding out how to use a mode. +* Derived Modes:: Defining a new major mode based on another major mode. -* Generic Modes:: Defining a simple major mode that supports +* Generic Modes:: Defining a simple major mode that supports comment syntax and Font Lock mode. -* Mode Hooks:: Hooks run at the end of major mode functions. -* Example Major Modes:: Text mode and Lisp modes. +* Mode Hooks:: Hooks run at the end of major mode functions. +* Example Major Modes:: Text mode and Lisp modes. @end menu @node Major Mode Basics @@ -238,9 +238,8 @@ is distinct from that of Text mode, but uses that of Text mode. Even if the new mode is not an obvious derivative of any other mode, -it is convenient to use @code{define-derived-mode} with a @code{nil} -parent argument, since it automatically enforces the most important -coding conventions for you. +we recommend to use @code{define-derived-mode}, since it automatically +enforces the most important coding conventions for you. For a very simple programming language major mode that handles comments and fontification, you can use @code{define-generic-mode}. @@ -429,6 +428,10 @@ this mode. @item +The mode can specify how to complete various keywords by adding +to the special hook @code{completion-at-point-functions}. + +@item Use @code{defvar} or @code{defcustom} to set mode-related variables, so that they are not reinitialized if they already have a value. (Such reinitialization could discard customizations made by the user.) @@ -492,7 +495,7 @@ mode as special if the parent mode is special. The special mode @code{special-mode} provides a convenient parent for other special modes to inherit from; it sets @code{buffer-read-only} to @code{t}, -and does nothing else. +and does little else. @item If you want to make the new mode the default for files with certain @@ -737,8 +740,10 @@ @subsection Defining Derived Modes @cindex derived mode - It's often useful to define a new major mode in terms of an existing -one. An easy way to do this is to use @code{define-derived-mode}. + The recommended way to define a new major mode is to derive it +from an existing one using @code{define-derived-mode}. If there is no +closely related mode, you can inherit from @code{text-mode}, +@code{special-mode}, or in the worst case @code{fundamental-mode}. @defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{} This macro defines @var{variant} as a major mode command, using @@ -979,8 +984,7 @@ Turning on Text mode runs the normal hook `text-mode-hook'." @end group @group - (make-local-variable 'text-mode-variant) - (setq text-mode-variant t) + (set (make-local-variable 'text-mode-variant) t) ;; @r{These two lines are a feature added recently.} (set (make-local-variable 'require-final-newline) mode-require-final-newline) @@ -998,9 +1002,8 @@ @smallexample @group ;; @r{This isn't needed nowadays, since @code{define-derived-mode} does it.} -(defvar text-mode-abbrev-table nil +(define-abbrev-table 'text-mode-abbrev-table () "Abbrev table used while in text mode.") -(define-abbrev-table 'text-mode-abbrev-table ()) @end group @group @@ -1022,12 +1025,10 @@ ;; @r{These four lines are absent from the current version} ;; @r{not because this is done some other way, but rather} ;; @r{because nowadays Text mode uses the normal definition of paragraphs.} - (make-local-variable 'paragraph-start) - (setq paragraph-start (concat "[ \t]*$\\|" page-delimiter)) - (make-local-variable 'paragraph-separate) - (setq paragraph-separate paragraph-start) - (make-local-variable 'indent-line-function) - (setq indent-line-function 'indent-relative-maybe) + (set (make-local-variable 'paragraph-start) + (concat "[ \t]*$\\|" page-delimiter)) + (set (make-local-variable 'paragraph-separate) paragraph-start) + (set (make-local-variable 'indent-line-function) 'indent-relative-maybe) @end group @group (setq mode-name "Text") @@ -1115,15 +1116,12 @@ @smallexample @group - (make-local-variable 'paragraph-start) - (setq paragraph-start (concat page-delimiter "\\|$" )) - (make-local-variable 'paragraph-separate) - (setq paragraph-separate paragraph-start) + (set (make-local-variable 'paragraph-start) (concat page-delimiter "\\|$" )) + (set (make-local-variable 'paragraph-separate) paragraph-start) @dots{} @end group @group - (make-local-variable 'comment-indent-function) - (setq comment-indent-function 'lisp-comment-indent)) + (set (make-local-variable 'comment-indent-function) 'lisp-comment-indent)) @dots{} @end group @end smallexample @@ -1135,16 +1133,13 @@ @smallexample @group -(defvar shared-lisp-mode-map () +(defvar shared-lisp-mode-map + (let ((map (make-sparse-keymap))) + (define-key shared-lisp-mode-map "\e\C-q" 'indent-sexp) + (define-key shared-lisp-mode-map "\177" + 'backward-delete-char-untabify) + map) "Keymap for commands shared by all sorts of Lisp modes.") - -;; @r{Putting this @code{if} after the @code{defvar} is an older style.} -(if shared-lisp-mode-map - () - (setq shared-lisp-mode-map (make-sparse-keymap)) - (define-key shared-lisp-mode-map "\e\C-q" 'indent-sexp) - (define-key shared-lisp-mode-map "\177" - 'backward-delete-char-untabify)) @end group @end smallexample @@ -1153,15 +1148,13 @@ @smallexample @group -(defvar lisp-mode-map () +(defvar lisp-mode-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map shared-lisp-mode-map) + (define-key map "\e\C-x" 'lisp-eval-defun) + (define-key map "\C-c\C-z" 'run-lisp) + map) "Keymap for ordinary Lisp mode...") - -(if lisp-mode-map - () - (setq lisp-mode-map (make-sparse-keymap)) - (set-keymap-parent lisp-mode-map shared-lisp-mode-map) - (define-key lisp-mode-map "\e\C-x" 'lisp-eval-defun) - (define-key lisp-mode-map "\C-c\C-z" 'run-lisp)) @end group @end smallexample @@ -1192,11 +1185,9 @@ ; @r{finds out what to describe.} (setq mode-name "Lisp") ; @r{This goes into the mode line.} (lisp-mode-variables t) ; @r{This defines various variables.} - (make-local-variable 'comment-start-skip) - (setq comment-start-skip - "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *") - (make-local-variable 'font-lock-keywords-case-fold-search) - (setq font-lock-keywords-case-fold-search t) + (set (make-local-variable 'comment-start-skip) + "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *") + (set (make-local-variable 'font-lock-keywords-case-fold-search) t) @end group @group (setq imenu-case-fold-search t) @@ -1580,14 +1571,14 @@ minor modes. @menu -* Base: Mode Line Basics. Basic ideas of mode line control. -* Data: Mode Line Data. The data structure that controls the mode line. -* Top: Mode Line Top. The top level variable, mode-line-format. -* Mode Line Variables:: Variables used in that data structure. -* %-Constructs:: Putting information into a mode line. -* Properties in Mode:: Using text properties in the mode line. -* Header Lines:: Like a mode line, but at the top. -* Emulating Mode Line:: Formatting text as the mode line would. +* Base: Mode Line Basics. Basic ideas of mode line control. +* Data: Mode Line Data. The data structure that controls the mode line. +* Top: Mode Line Top. The top level variable, mode-line-format. +* Mode Line Variables:: Variables used in that data structure. +* %-Constructs:: Putting information into a mode line. +* Properties in Mode:: Using text properties in the mode line. +* Header Lines:: Like a mode line, but at the top. +* Emulating Mode Line:: Formatting text as the mode line would. @end menu @node Mode Line Basics @@ -2361,7 +2352,7 @@ * Other Font Lock Variables:: Additional customization facilities. * Levels of Font Lock:: Each mode can define alternative levels so that the user can select more or less. -* Precalculated Fontification:: How Lisp programs that produce the buffer +* Precalculated Fontification:: How Lisp programs that produce the buffer contents can also specify how to fontify it. * Faces for Font Lock:: Special faces specifically for Font Lock. * Syntactic Font Lock:: Fontification based on syntax tables. @@ -3276,5 +3267,7 @@ @end defvar @ignore - arch-tag: 4c7bff41-36e6-4da6-9e7f-9b9289e27c8e + Local Variables: + fill-column: 72 + End: @end ignore
--- a/doc/lispref/text.texi Mon Nov 29 21:22:39 2010 +0900 +++ b/doc/lispref/text.texi Thu Dec 02 09:44:25 2010 +0900 @@ -2205,7 +2205,7 @@ @defvar indent-line-function This variable's value is the function to be used by @key{TAB} (and various commands) to indent the current line. The command -@code{indent-according-to-mode} does no more than call this function. +@code{indent-according-to-mode} does little more than call this function. In Lisp mode, the value is the symbol @code{lisp-indent-line}; in C mode, @code{c-indent-line}; in Fortran mode, @code{fortran-indent-line}.
--- a/lib-src/ChangeLog Mon Nov 29 21:22:39 2010 +0900 +++ b/lib-src/ChangeLog Thu Dec 02 09:44:25 2010 +0900 @@ -1,3 +1,8 @@ +2010-11-27 Joe Matarazzo <joe.matarazzo@gmail.com> (tiny change) + + * ebrowse.c (yylex): If end of input buffer encountered while + searching for a newline after "//", return YYEOF. (Bug#7446) + 2010-11-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * emacsclient.c (set_local_socket) [DARWIN_OS]: Add fall-back
--- a/lib-src/ebrowse.c Mon Nov 29 21:22:39 2010 +0900 +++ b/lib-src/ebrowse.c Thu Dec 02 09:44:25 2010 +0900 @@ -1784,6 +1784,11 @@ case '/': while (GET (c) && c != '\n') ; + /* Don't try to read past the end of the input buffer if + the file ends in a C++ comment without a newline. */ + if (c == 0) + return YYEOF; + INCREMENT_LINENO; break;
--- a/lisp/ChangeLog Mon Nov 29 21:22:39 2010 +0900 +++ b/lisp/ChangeLog Thu Dec 02 09:44:25 2010 +0900 @@ -1,4 +1,4 @@ -2010-11-29 Kenichi Handa <handa@m17n.org> +2010-12-01 Kenichi Handa <handa@m17n.org> * mail/rmailmm.el (rmail-mime-parse): Call rmail-mime-process within condition-case. @@ -7,6 +7,36 @@ (rmail-search-mime-message-function): Set to rmail-search-mime-message. +2010-12-01 Leo <sdl.web@gmail.com> + + * ido.el (ido-common-initilization): New function. (bug#3274) + (ido-mode): Use it. + (ido-completing-read): Call it. + +2010-11-27 Chong Yidong <cyd@stupidchicken.com> + + * log-edit.el (log-edit-font-lock-keywords): Don't try matching + stand-alone lines, since that is handled by log-edit-match-to-eoh + (Bug#6465). + +2010-11-27 Eduard Wiebe <usenet@pusto.de> + + * dired.el (dired-get-filename): Replace backslashes with slashes + in file names on MS-Windows, needed by `locate'. (Bug#7308) + * locate.el (locate-default-make-command-line): Don't consider + drive letter and root directory part of + `directory-listing-before-filename-regexp'. (Bug#7308) + (locate-post-command-hook, locate-post-command-hook): New defcustoms. + +2010-11-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * emacs-lisp/smie.el (smie-prec2->grammar): Simplify handling + of :smie-open/close-alist. + (smie-next-sexp): Make it accept a "start token" as argument. + (smie-indent-keyword): Be careful not to misidentify tokens that span + more than one line, as empty lines. Add argument `token'. +>>>>>>> MERGE-SOURCE + 2010-11-26 Kenichi Handa <handa@m17n.org> * mail/rmailmm.el (rmail-mime-insert-multipart): For unsupported
--- a/lisp/dired.el Mon Nov 29 21:22:39 2010 +0900 +++ b/lisp/dired.el Thu Dec 02 09:44:25 2010 +0900 @@ -2012,6 +2012,14 @@ ;; with quotation marks in their names. (while (string-match "\\(?:[^\\]\\|\\`\\)\\(\"\\)" file) (setq file (replace-match "\\\"" nil t file 1))) + + (when (eq system-type 'windows-nt) + (save-match-data + (let ((start 0)) + (while (string-match "\\\\" file start) + (aset file (match-beginning 0) ?/) + (setq start (match-end 0)))))) + (setq file (read (concat "\"" file "\""))) ;; The above `read' will return a unibyte string if FILE ;; contains eight-bit-control/graphic characters.
--- a/lisp/emacs-lisp/smie.el Mon Nov 29 21:22:39 2010 +0900 +++ b/lisp/emacs-lisp/smie.el Thu Dec 02 09:44:25 2010 +0900 @@ -76,8 +76,6 @@ ;; TODO & BUGS: ;; -;; - FIXME: I think the behavior on empty lines is wrong. It shouldn't -;; look at the next token on subsequent lines. ;; - Using the structural information SMIE gives us, it should be possible to ;; implement a `smie-align' command that would automatically figure out what ;; there is to align and how to do it (something like: align the token of @@ -470,7 +468,7 @@ (to (cdar eqs))) (setq eqs (cdr eqs)) (if (eq to from) - nil ;Nothing to do. + nil ;Nothing to do. (dolist (other-eq eqs) (if (eq from (cdr other-eq)) (setcdr other-eq to)) (when (eq from (car other-eq)) @@ -523,24 +521,23 @@ (setcar (car eq) (cadr eq)) ;; (smie-check-grammar table prec2 'step2) ) - ;; Finally, fill in the remaining vars (which only appeared on the - ;; right side of the < constraints). - (let ((classification-table (gethash :smie-open/close-alist prec2))) - (dolist (x table) - ;; When both sides are nil, it means this operator binds very - ;; very tight, but it's still just an operator, so we give it - ;; the highest precedence. - ;; OTOH if only one side is nil, it usually means it's like an - ;; open-paren, which is very important for indentation purposes, - ;; so we keep it nil if so, to make it easier to recognize. - (unless (or (nth 1 x) - (eq 'opener (cdr (assoc (car x) classification-table)))) - (setf (nth 1 x) i) - (incf i)) ;See other (incf i) above. - (unless (or (nth 2 x) - (eq 'closer (cdr (assoc (car x) classification-table)))) - (setf (nth 2 x) i) - (incf i))))) ;See other (incf i) above. + ;; Finally, fill in the remaining vars (which did not appear on the + ;; left side of any < constraint). + (dolist (x table) + (unless (nth 1 x) + (setf (nth 1 x) i) + (incf i)) ;See other (incf i) above. + (unless (nth 2 x) + (setf (nth 2 x) i) + (incf i)))) ;See other (incf i) above. + ;; Mark closers and openers. + (dolist (x (gethash :smie-open/close-alist prec2)) + (let* ((token (car x)) + (cons (case (cdr x) + (closer (cddr (assoc token table))) + (opener (cdr (assoc token table)))))) + (assert (numberp (car cons))) + (setf (car cons) (list (car cons))))) (let ((ca (gethash :smie-closer-alist prec2))) (when ca (push (cons :smie-closer-alist ca) table))) ;; (smie-check-grammar table prec2 'step3) @@ -611,6 +608,8 @@ OP-BACK is the accessor to the backward level of the level data. HALFSEXP if non-nil, means skip over a partial sexp if needed. I.e. if the first token we see is an operator, skip over its left-hand-side argument. +HALFSEXP can also be a token, in which case it means to parse as if +we had just successfully passed this token. Possible return values: (FORW-LEVEL POS TOKEN): we couldn't skip TOKEN because its back-level is too high. FORW-LEVEL is the forw-level of TOKEN, @@ -619,7 +618,10 @@ (nil POS TOKEN): we skipped over a paren-like pair. nil: we skipped over an identifier, matched parentheses, ..." (catch 'return - (let ((levels ())) + (let ((levels + (if (stringp halfsexp) + (prog1 (list (cdr (assoc halfsexp smie-grammar))) + (setq halfsexp nil))))) (while (let* ((pos (point)) (token (funcall next-token)) @@ -697,6 +699,8 @@ "Skip over one sexp. HALFSEXP if non-nil, means skip over a partial sexp if needed. I.e. if the first token we see is an operator, skip over its left-hand-side argument. +HALFSEXP can also be a token, in which case we should skip the text +assuming it is the left-hand-side argument of that token. Possible return values: (LEFT-LEVEL POS TOKEN): we couldn't skip TOKEN because its right-level is too high. LEFT-LEVEL is the left-level of TOKEN, @@ -714,7 +718,9 @@ (defun smie-forward-sexp (&optional halfsexp) "Skip over one sexp. HALFSEXP if non-nil, means skip over a partial sexp if needed. I.e. if the -first token we see is an operator, skip over its left-hand-side argument. +first token we see is an operator, skip over its right-hand-side argument. +HALFSEXP can also be a token, in which case we should skip the text +assuming it is the right-hand-side argument of that token. Possible return values: (RIGHT-LEVEL POS TOKEN): we couldn't skip TOKEN because its left-level is too high. RIGHT-LEVEL is the right-level of TOKEN, @@ -791,7 +797,7 @@ (push (car other) found)))))) (cond ((null found) (error "No known closer for opener %s" open)) - ;; FIXME: what should we do if there are various closers? + ;; What should we do if there are various closers? (t (car found)))))))))) (unless (save-excursion (skip-chars-backward " \t") (bolp)) (newline)) @@ -1094,9 +1100,6 @@ ;; line, in which case we want to align it with its enclosing parent. (cond ((and (eq method :before) (smie-rule-bolp) (not (smie-rule-sibling-p))) - ;; FIXME: Rather than consult the number of spaces, we could *set* the - ;; number of spaces so as to align the separator with the close-paren - ;; while aligning the content with the rest. (let ((parent-col (cdr (smie-rule-parent))) (parent-pos-col ;FIXME: we knew this when computing smie--parent. (save-excursion @@ -1225,39 +1228,48 @@ (smie-indent-virtual)) ;:not-hanging (scan-error nil))))) -(defun smie-indent-keyword () - ;; Align closing token with the corresponding opening one. - ;; (e.g. "of" with "case", or "in" with "let"). +(defun smie-indent-keyword (&optional token) + "Indent point based on the token that follows it immediately. +If TOKEN is non-nil, assume that that is the token that follows point. +Returns either a column number or nil if it considers that indentation +should not be computed on the basis of the following token." (save-excursion (let* ((pos (point)) - (toklevels (smie-indent-forward-token)) - (token (pop toklevels))) + (toklevels + (if token + (assoc token smie-grammar) + (let* ((res (smie-indent-forward-token))) + ;; Ignore tokens on subsequent lines. + (if (and (< pos (line-beginning-position)) + ;; Make sure `token' also *starts* on another line. + (save-excursion + (smie-indent-backward-token) + (< pos (line-beginning-position)))) + nil + (goto-char pos) + res))))) + (setq token (pop toklevels)) (cond - ((< pos (line-beginning-position)) - ;; The token we just read is actually not on the line where we started. - nil) + ((null (cdr toklevels)) nil) ;Not a keyword. ((not (numberp (car toklevels))) - (save-excursion - (goto-char pos) - ;; Different cases: - ;; - smie-indent--bolp: "indent according to others". - ;; - common hanging: "indent according to others". - ;; - SML-let hanging: "indent like parent". - ;; - if-after-else: "indent-like parent". - ;; - middle-of-line: "trust current position". - (cond - ((null (cdr toklevels)) nil) ;Not a keyword. - ((smie-indent--rule :before token)) - ((smie-indent--bolp) ;I.e. non-virtual indent. - ;; For an open-paren-like thingy at BOL, always indent only - ;; based on other rules (typically smie-indent-after-keyword). - nil) - (t - ;; By default use point unless we're hanging. - (unless (smie-indent--hanging-p) (current-column)))))) + ;; Different cases: + ;; - smie-indent--bolp: "indent according to others". + ;; - common hanging: "indent according to others". + ;; - SML-let hanging: "indent like parent". + ;; - if-after-else: "indent-like parent". + ;; - middle-of-line: "trust current position". + (cond + ((smie-indent--rule :before token)) + ((smie-indent--bolp) ;I.e. non-virtual indent. + ;; For an open-paren-like thingy at BOL, always indent only + ;; based on other rules (typically smie-indent-after-keyword). + nil) + (t + ;; By default use point unless we're hanging. + (unless (smie-indent--hanging-p) (current-column))))) (t ;; FIXME: This still looks too much like black magic!! - (let* ((parent (smie-backward-sexp 'halfsexp))) + (let* ((parent (smie-backward-sexp token))) ;; Different behaviors: ;; - align with parent. ;; - parent + offset.
--- a/lisp/ido.el Mon Nov 29 21:22:39 2010 +0900 +++ b/lisp/ido.el Thu Dec 02 09:44:25 2010 +0900 @@ -1439,6 +1439,11 @@ ;; ido kill emacs hook (ido-save-history)) +(defun ido-common-initilization () + (ido-init-completion-maps) + (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup) + (add-hook 'choose-completion-string-functions 'ido-choose-completion-string)) + (define-minor-mode ido-everywhere "Toggle using ido speed-ups everywhere file and directory names are read. With ARG, turn ido speed-up on if arg is positive, off otherwise." @@ -1482,12 +1487,9 @@ (t nil))) (ido-everywhere (if ido-everywhere 1 -1)) - (when ido-mode - (ido-init-completion-maps)) (when ido-mode - (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup) - (add-hook 'choose-completion-string-functions 'ido-choose-completion-string) + (ido-common-initilization) (ido-load-history) (add-hook 'kill-emacs-hook 'ido-kill-emacs-hook) @@ -4679,6 +4681,8 @@ (ido-directory-too-big nil) (ido-context-switch-command 'ignore) (ido-choice-list choices)) + ;; Initialize ido before invoking ido-read-internal + (ido-common-initilization) (ido-read-internal 'list prompt hist def require-match initial-input))) (defun ido-unload-function ()
--- a/lisp/locate.el Mon Nov 29 21:22:39 2010 +0900 +++ b/lisp/locate.el Thu Dec 02 09:44:25 2010 +0900 @@ -145,6 +145,11 @@ :type 'string :group 'locate) +(defcustom locate-post-command-hook nil + "List of hook functions run after `locate' (see `run-hooks')." + :type 'hook + :group 'locate) + (defvar locate-history-list nil "The history list used by the \\[locate] command.") @@ -226,6 +231,11 @@ :group 'locate :type 'boolean) +(defcustom locate-mode-hook nil + "List of hook functions run by `locate-mode' (see `run-mode-hooks')." + :type 'hook + :group 'locate) + ;; Functions (defun locate-default-make-command-line (search-string) @@ -471,9 +481,9 @@ (make-local-variable 'directory-listing-before-filename-regexp) ;; This should support both Unix and Windoze style names (setq directory-listing-before-filename-regexp - (concat "^." + (concat "^.\\(" (make-string (1- locate-filename-indentation) ?\s) - "\\(/\\|[A-Za-z]:\\)\\|" + "\\)\\|" (default-value 'directory-listing-before-filename-regexp))) (make-local-variable 'dired-actual-switches) (setq dired-actual-switches "")
--- a/lisp/log-edit.el Mon Nov 29 21:22:39 2010 +0900 +++ b/lisp/log-edit.el Thu Dec 02 09:44:25 2010 +0900 @@ -350,17 +350,16 @@ (defvar log-edit-font-lock-keywords ;; Copied/inspired by message-font-lock-keywords. `((log-edit-match-to-eoh - (,(concat "^\\(\\([a-z]+\\):\\)" log-edit-header-contents-regexp - "\\|\\(.*\\)") + (,(concat "^\\(\\([a-z]+\\):\\)" log-edit-header-contents-regexp) (progn (goto-char (match-beginning 0)) (match-end 0)) nil (1 (if (assoc (match-string 2) log-edit-headers-alist) 'log-edit-header 'log-edit-unknown-header) nil lax) + ;; From `log-edit-header-contents-regexp': (3 (or (cdr (assoc (match-string 2) log-edit-headers-alist)) 'log-edit-header) - nil lax) - (4 font-lock-warning-face))))) + nil lax))))) ;;;###autoload (defun log-edit (callback &optional setup params buffer mode &rest ignore)