* patch: remove advice from tramp.el, redundant function from complete.el
@ 2007-10-20 15:21 Sean O'Rourke
2007-10-22 9:00 ` Richard Stallman
0 siblings, 1 reply; 3+ messages in thread
From: Sean O'Rourke @ 2007-10-20 15:21 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 569 bytes --]
The included patch removes a defadvice from tramp.el and removes
the advised function, which seemed to be redundant with
file-expand-wildcards, from complete.el. I don't use wildcard
expansion much, so could someone who does please give it a spin?
Thanks,
Sean
2007-10-20 Sean O'Rourke <sorourke@cs.ucsd.edu>
* complete.el (PC-expand-many-files): removed.
(PC-do-completion): call file-expand-wildcards instead of
PC-expand-many-files.
* tramp.el (tramp-handle-expand-many-files): removed.
(PC-expand-many-files): remove advice.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: complete.patch --]
[-- Type: text/x-patch, Size: 5987 bytes --]
Index: lisp/net/tramp.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/net/tramp.el,v
retrieving revision 1.147
diff -p -u -w -r1.147 tramp.el
--- lisp/net/tramp.el 18 Oct 2007 22:49:05 -0000 1.147
+++ lisp/net/tramp.el 20 Oct 2007 15:09:31 -0000
@@ -4521,60 +4521,6 @@ Falls back to normal file name handler i
;;; Interactions with other packages:
-;; -- complete.el --
-
-;; This function contributed by Ed Sabol
-(defun tramp-handle-expand-many-files (name)
- "Like `PC-expand-many-files' for Tramp files."
- (with-parsed-tramp-file-name name nil
- (save-match-data
- (if (or (string-match "\\*" name)
- (string-match "\\?" name)
- (string-match "\\[.*\\]" name))
- (progn
- (let (bufstr)
- ;; CCC: To do it right, we should quote certain characters
- ;; in the file name, but since the echo command is going to
- ;; break anyway when there are spaces in the file names, we
- ;; don't bother.
- ;;-(let ((comint-file-name-quote-list
- ;;- (set-difference tramp-file-name-quote-list
- ;;- '(?\* ?\? ?[ ?]))))
- ;;- (tramp-send-command
- ;;- method user host
- ;;- (format "echo %s" (comint-quote-filename localname))))
- (tramp-send-command v (format "echo %s" localname))
- (setq bufstr (buffer-substring
- (point-min) (tramp-compat-line-end-position)))
- (with-current-buffer (tramp-get-buffer v)
- (goto-char (point-min))
- (if (string-equal localname bufstr)
- nil
- (insert "(\"")
- (while (search-forward " " nil t)
- (delete-backward-char 1)
- (insert "\" \""))
- (goto-char (point-max))
- (delete-backward-char 1)
- (insert "\")")
- (goto-char (point-min))
- (mapcar
- (function (lambda (x)
- (tramp-make-tramp-file-name method user host x)))
- (read (current-buffer)))))))
- (list (expand-file-name name))))))
-
-(eval-after-load "complete"
- '(progn
- (defadvice PC-expand-many-files
- (around tramp-advice-PC-expand-many-files (name) activate)
- "Invoke `tramp-handle-expand-many-files' for Tramp files."
- (if (tramp-tramp-file-p name)
- (setq ad-return-value (tramp-handle-expand-many-files name))
- ad-do-it))
- (add-hook 'tramp-unload-hook
- '(lambda () (ad-unadvise 'PC-expand-many-files)))))
-
;;; File name handler functions for completion mode.
(defvar tramp-completion-mode nil
Index: lisp/complete.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/complete.el,v
retrieving revision 1.79
diff -p -u -w -r1.79 complete.el
--- lisp/complete.el 6 Sep 2007 17:12:17 -0000 1.79
+++ lisp/complete.el 20 Oct 2007 15:09:32 -0000
@@ -515,7 +515,7 @@ GOTO-END is non-nil, however, it instead
"*"
(substring pat p))
p (+ p 2)))
- (setq files (PC-expand-many-files (concat pat "*")))
+ (setq files (file-expand-wildcards (concat pat "*")))
(if files
(let ((dir (file-name-directory (car files)))
(p files))
@@ -609,7 +609,7 @@ GOTO-END is non-nil, however, it instead
(setq
basestr ""
p nil
- poss (PC-expand-many-files
+ poss (file-expand-wildcards
(concat "/"
(mapconcat #'list (match-string 1 str) "*/")
"*"))
@@ -969,61 +969,6 @@ or properties are considered."
(goto-char end)
(PC-do-completion nil beg end)))
-;; Use the shell to do globbing.
-;; This could now use file-expand-wildcards instead.
-
-(defun PC-expand-many-files (name)
- (with-current-buffer (generate-new-buffer " *Glob Output*")
- (erase-buffer)
- (when (and (file-name-absolute-p name)
- (not (file-directory-p default-directory)))
- ;; If the current working directory doesn't exist `shell-command'
- ;; signals an error. So if the file names we're looking for don't
- ;; depend on the working directory, switch to a valid directory first.
- (setq default-directory "/"))
- (shell-command (concat "echo " name) t)
- (goto-char (point-min))
- ;; CSH-style shells were known to output "No match", whereas
- ;; SH-style shells tend to simply output `name' when no match is found.
- (if (looking-at (concat ".*No match\\|\\(^\\| \\)\\("
- (regexp-quote name)
- "\\|"
- (regexp-quote (expand-file-name name))
- "\\)\\( \\|$\\)"))
- nil
- (insert "(\"")
- (while (search-forward " " nil t)
- (delete-backward-char 1)
- (insert "\" \""))
- (goto-char (point-max))
- (delete-backward-char 1)
- (insert "\")")
- (goto-char (point-min))
- (let ((files (read (current-buffer))) (p nil))
- (kill-buffer (current-buffer))
- (or (equal completion-ignored-extensions PC-ignored-extensions)
- (setq PC-ignored-regexp
- (concat "\\("
- (mapconcat
- 'regexp-quote
- (setq PC-ignored-extensions
- completion-ignored-extensions)
- "\\|")
- "\\)\\'")))
- (setq p nil)
- (while files
- ;; This whole process of going through to shell, to echo, and
- ;; finally parsing the output is a hack. It breaks as soon as
- ;; there are spaces in the file names or when the no-match
- ;; message changes. To make up for it, we check that what we read
- ;; indeed exists, so we may miss some files, but we at least won't
- ;; list non-existent ones.
- (or (not (file-exists-p (car files)))
- (string-match PC-ignored-regexp (car files))
- (setq p (cons (car files) p)))
- (setq files (cdr files)))
- p))))
-
;; Facilities for loading C header files. This is independent from the
;; main completion code. See also the variable `PC-include-file-path'
;; at top of this file.
[-- Attachment #3: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: patch: remove advice from tramp.el, redundant function from complete.el
2007-10-20 15:21 patch: remove advice from tramp.el, redundant function from complete.el Sean O'Rourke
@ 2007-10-22 9:00 ` Richard Stallman
2007-10-22 9:46 ` Juanma Barranquero
0 siblings, 1 reply; 3+ messages in thread
From: Richard Stallman @ 2007-10-22 9:00 UTC (permalink / raw)
To: emacs-devel
Would someone please install this, then ack?
Sean, thanks for finding the simplification
and eliminating a defadvice.
To: emacs-devel@gnu.org
From: "Sean O'Rourke" <seano@cs.ucla.edu>
Date: Sat, 20 Oct 2007 08:21:11 -0700
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Subject: patch: remove advice from tramp.el,
redundant function from complete.el
--=-=-=
The included patch removes a defadvice from tramp.el and removes
the advised function, which seemed to be redundant with
file-expand-wildcards, from complete.el. I don't use wildcard
expansion much, so could someone who does please give it a spin?
Thanks,
Sean
2007-10-20 Sean O'Rourke <sorourke@cs.ucsd.edu>
* complete.el (PC-expand-many-files): removed.
(PC-do-completion): call file-expand-wildcards instead of
PC-expand-many-files.
* tramp.el (tramp-handle-expand-many-files): removed.
(PC-expand-many-files): remove advice.
--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline; filename=complete.patch
Index: lisp/net/tramp.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/net/tramp.el,v
retrieving revision 1.147
diff -p -u -w -r1.147 tramp.el
--- lisp/net/tramp.el 18 Oct 2007 22:49:05 -0000 1.147
+++ lisp/net/tramp.el 20 Oct 2007 15:09:31 -0000
@@ -4521,60 +4521,6 @@ Falls back to normal file name handler i
;;; Interactions with other packages:
-;; -- complete.el --
-
-;; This function contributed by Ed Sabol
-(defun tramp-handle-expand-many-files (name)
- "Like `PC-expand-many-files' for Tramp files."
- (with-parsed-tramp-file-name name nil
- (save-match-data
- (if (or (string-match "\\*" name)
- (string-match "\\?" name)
- (string-match "\\[.*\\]" name))
- (progn
- (let (bufstr)
- ;; CCC: To do it right, we should quote certain characters
- ;; in the file name, but since the echo command is going to
- ;; break anyway when there are spaces in the file names, we
- ;; don't bother.
- ;;-(let ((comint-file-name-quote-list
- ;;- (set-difference tramp-file-name-quote-list
- ;;- '(?\* ?\? ?[ ?]))))
- ;;- (tramp-send-command
- ;;- method user host
- ;;- (format "echo %s" (comint-quote-filename localname))))
- (tramp-send-command v (format "echo %s" localname))
- (setq bufstr (buffer-substring
- (point-min) (tramp-compat-line-end-position)))
- (with-current-buffer (tramp-get-buffer v)
- (goto-char (point-min))
- (if (string-equal localname bufstr)
- nil
- (insert "(\"")
- (while (search-forward " " nil t)
- (delete-backward-char 1)
- (insert "\" \""))
- (goto-char (point-max))
- (delete-backward-char 1)
- (insert "\")")
- (goto-char (point-min))
- (mapcar
- (function (lambda (x)
- (tramp-make-tramp-file-name method user host x)))
- (read (current-buffer)))))))
- (list (expand-file-name name))))))
-
-(eval-after-load "complete"
- '(progn
- (defadvice PC-expand-many-files
- (around tramp-advice-PC-expand-many-files (name) activate)
- "Invoke `tramp-handle-expand-many-files' for Tramp files."
- (if (tramp-tramp-file-p name)
- (setq ad-return-value (tramp-handle-expand-many-files name))
- ad-do-it))
- (add-hook 'tramp-unload-hook
- '(lambda () (ad-unadvise 'PC-expand-many-files)))))
-
;;; File name handler functions for completion mode.
(defvar tramp-completion-mode nil
Index: lisp/complete.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/complete.el,v
retrieving revision 1.79
diff -p -u -w -r1.79 complete.el
--- lisp/complete.el 6 Sep 2007 17:12:17 -0000 1.79
+++ lisp/complete.el 20 Oct 2007 15:09:32 -0000
@@ -515,7 +515,7 @@ GOTO-END is non-nil, however, it instead
"*"
(substring pat p))
p (+ p 2)))
- (setq files (PC-expand-many-files (concat pat "*")))
+ (setq files (file-expand-wildcards (concat pat "*")))
(if files
(let ((dir (file-name-directory (car files)))
(p files))
@@ -609,7 +609,7 @@ GOTO-END is non-nil, however, it instead
(setq
basestr ""
p nil
- poss (PC-expand-many-files
+ poss (file-expand-wildcards
(concat "/"
(mapconcat #'list (match-string 1 str) "*/")
"*"))
@@ -969,61 +969,6 @@ or properties are considered."
(goto-char end)
(PC-do-completion nil beg end)))
-;; Use the shell to do globbing.
-;; This could now use file-expand-wildcards instead.
-
-(defun PC-expand-many-files (name)
- (with-current-buffer (generate-new-buffer " *Glob Output*")
- (erase-buffer)
- (when (and (file-name-absolute-p name)
- (not (file-directory-p default-directory)))
- ;; If the current working directory doesn't exist `shell-command'
- ;; signals an error. So if the file names we're looking for don't
- ;; depend on the working directory, switch to a valid directory first.
- (setq default-directory "/"))
- (shell-command (concat "echo " name) t)
- (goto-char (point-min))
- ;; CSH-style shells were known to output "No match", whereas
- ;; SH-style shells tend to simply output `name' when no match is found.
- (if (looking-at (concat ".*No match\\|\\(^\\| \\)\\("
- (regexp-quote name)
- "\\|"
- (regexp-quote (expand-file-name name))
- "\\)\\( \\|$\\)"))
- nil
- (insert "(\"")
- (while (search-forward " " nil t)
- (delete-backward-char 1)
- (insert "\" \""))
- (goto-char (point-max))
- (delete-backward-char 1)
- (insert "\")")
- (goto-char (point-min))
- (let ((files (read (current-buffer))) (p nil))
- (kill-buffer (current-buffer))
- (or (equal completion-ignored-extensions PC-ignored-extensions)
- (setq PC-ignored-regexp
- (concat "\\("
- (mapconcat
- 'regexp-quote
- (setq PC-ignored-extensions
- completion-ignored-extensions)
- "\\|")
- "\\)\\'")))
- (setq p nil)
- (while files
- ;; This whole process of going through to shell, to echo, and
- ;; finally parsing the output is a hack. It breaks as soon as
- ;; there are spaces in the file names or when the no-match
- ;; message changes. To make up for it, we check that what we read
- ;; indeed exists, so we may miss some files, but we at least won't
- ;; list non-existent ones.
- (or (not (file-exists-p (car files)))
- (string-match PC-ignored-regexp (car files))
- (setq p (cons (car files) p)))
- (setq files (cdr files)))
- p))))
-
;; Facilities for loading C header files. This is independent from the
;; main completion code. See also the variable `PC-include-file-path'
;; at top of this file.
--=-=-=
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
--=-=-=--
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: patch: remove advice from tramp.el, redundant function from complete.el
2007-10-22 9:00 ` Richard Stallman
@ 2007-10-22 9:46 ` Juanma Barranquero
0 siblings, 0 replies; 3+ messages in thread
From: Juanma Barranquero @ 2007-10-22 9:46 UTC (permalink / raw)
To: rms; +Cc: emacs-devel
On 10/22/07, Richard Stallman <rms@gnu.org> wrote:
> Would someone please install this, then ack?
ACK
Juanma
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-10-22 9:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-20 15:21 patch: remove advice from tramp.el, redundant function from complete.el Sean O'Rourke
2007-10-22 9:00 ` Richard Stallman
2007-10-22 9:46 ` Juanma Barranquero
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).