Fix bug #7308 with `locate' on MS-Windows.
dired.el (dired-get-filename): Replace backslashes with slashes in file names on MS-Windows, needed by `locate'. locate.el (locate-default-make-command-line): Don't consider drive letter and root directory part of `directory-listing-before-filename-regexp'. (locate-post-command-hook, locate-post-command-hook): New defcustoms.
This commit is contained in:
committed by
Eli Zaretskii
parent
da2b5401e8
commit
d1882ac7c9
@@ -1,3 +1,12 @@
|
||||
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
|
||||
|
||||
@@ -2012,6 +2012,14 @@ Otherwise, an error occurs in these cases."
|
||||
;; 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.
|
||||
|
||||
@@ -145,6 +145,11 @@ the version.)"
|
||||
: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 @@ that is, with a prefix arg, you get the default behavior."
|
||||
: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 @@ do not work in subdirectories.
|
||||
(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 "")
|
||||
|
||||
Reference in New Issue
Block a user