From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Luc Teirlinck Newsgroups: gmane.emacs.devel Subject: files.el Date: Wed, 17 Mar 2004 22:32:07 -0600 (CST) Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <200403180432.i2I4W7204170@raven.dms.auburn.edu> NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1079584546 4513 80.91.224.253 (18 Mar 2004 04:35:46 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 18 Mar 2004 04:35:46 +0000 (UTC) Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Thu Mar 18 05:35:35 2004 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1B3pFn-0001u5-00 for ; Thu, 18 Mar 2004 05:35:35 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1B3pFm-0005q2-00 for ; Thu, 18 Mar 2004 05:35:35 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1B3pF8-0006Gt-U5 for emacs-devel@quimby.gnus.org; Wed, 17 Mar 2004 23:34:54 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1B3pEb-0006Gk-9t for emacs-devel@gnu.org; Wed, 17 Mar 2004 23:34:21 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1B3pE5-00068o-Fa for emacs-devel@gnu.org; Wed, 17 Mar 2004 23:34:20 -0500 Original-Received: from [131.204.53.104] (helo=manatee.dms.auburn.edu) by monty-python.gnu.org with esmtp (Exim 4.30) id 1B3pE5-00068k-4L for emacs-devel@gnu.org; Wed, 17 Mar 2004 23:33:49 -0500 Original-Received: from raven.dms.auburn.edu (raven.dms.auburn.edu [131.204.53.29]) by manatee.dms.auburn.edu (8.12.10/8.12.10) with ESMTP id i2I4XiKt010249 for ; Wed, 17 Mar 2004 22:33:44 -0600 (CST) Original-Received: (from teirllm@localhost) by raven.dms.auburn.edu (8.11.6+Sun/8.11.6) id i2I4W7204170; Wed, 17 Mar 2004 22:32:07 -0600 (CST) X-Authentication-Warning: raven.dms.auburn.edu: teirllm set sender to teirllm@dms.auburn.edu using -f Original-To: emacs-devel@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:20567 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:20567 The function `insert-directory' is supposed to be able to handle both a second argument that is a string of options _and_ a second argument that is a list of strings of individual options. However, it currently can not, as the ielm run below shows. The culprit is the code that tries to treat the "--dired" option specially. I include a patch that fixes the problem. I can install if desired. ELISP> (set-buffer "*scratch*") # ELISP> (insert-directory "~" "-Al -t" nil t) nil ELISP> (insert-directory "~" '("-A" "-l") nil t) *** Eval error *** Wrong type argument: stringp, ("-A" "-l") ELISP> ===File ~/files.el-diff===================================== *** files.el.~1.680.~ Thu Mar 4 15:36:49 2004 --- files.el Wed Mar 17 21:46:59 2004 *************** *** 4205,4218 **** (defun insert-directory (file switches &optional wildcard full-directory-p) "Insert directory listing for FILE, formatted according to SWITCHES. Leaves point after the inserted text. ! SWITCHES may be a string of options, or a list of strings. Optional third arg WILDCARD means treat FILE as shell wildcard. Optional fourth arg FULL-DIRECTORY-P means file is a directory and switches do not contain `d', so that a full listing is expected. This works by running a directory listing program whose name is in the variable `insert-directory-program'. ! If WILDCARD, it also runs the shell specified by `shell-file-name'." ;; We need the directory in order to find the right handler. (let ((handler (find-file-name-handler (expand-file-name file) 'insert-directory))) --- 4205,4224 ---- (defun insert-directory (file switches &optional wildcard full-directory-p) "Insert directory listing for FILE, formatted according to SWITCHES. Leaves point after the inserted text. ! SWITCHES may be a string of options, or a list of strings ! representing individual options. Optional third arg WILDCARD means treat FILE as shell wildcard. Optional fourth arg FULL-DIRECTORY-P means file is a directory and switches do not contain `d', so that a full listing is expected. This works by running a directory listing program whose name is in the variable `insert-directory-program'. ! If WILDCARD, it also runs the shell specified by `shell-file-name'. ! ! When SWITCHES contains the long `--dired' option,this function ! treats it specially, for the sake of dired. However, the ! normally equivalent short `-D' option is just passed on to ! `insert-directory-program', as any other option." ;; We need the directory in order to find the right handler. (let ((handler (find-file-name-handler (expand-file-name file) 'insert-directory))) *************** *** 4301,4307 **** (access-file file "Reading directory") (error "Listing directory failed but `access-file' worked"))) ! (when (string-match "--dired\\>" switches) (forward-line -2) (when (looking-at "//SUBDIRED//") (delete-region (point) (progn (forward-line 1) (point))) --- 4307,4318 ---- (access-file file "Reading directory") (error "Listing directory failed but `access-file' worked"))) ! (when (if (stringp switches) ! (string-match "--dired\\>" switches) ! (catch 'found ! (dolist (str switches) ! (when (string= "--dired" str) ! (throw 'found t))))) (forward-line -2) (when (looking-at "//SUBDIRED//") (delete-region (point) (progn (forward-line 1) (point))) ============================================================