Subject: bug#2801 closed by Eli Zaretskii <[email-masked]> (Re: bug#2801: 23.0.90; ls-lisp-insert-directory: Variable binding depth exceeds max-specpdl-size)

From: [email-masked] (Emacs bug Tracking System)
Date: Fri, 27 Mar 2009 18:45:03 +0000

This is an automatic notification regarding your bug report
which was filed against the emacs package:

#2801: 23.0.90; ls-lisp-insert-directory: Variable binding depth exceeds max-specpdl-size

It has been closed by Eli Zaretskii <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Eli Zaretskii <[email-masked]> by
replying to this email.

-- 
2801: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=2801
Emacs Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#2801: 23.0.90; ls-lisp-insert-directory: Variable binding depth exceeds max-specpdl-size
From: Eli Zaretskii <[email-masked]>
To: Drew Adams <[email-masked]>, [email-masked]
Date: Fri, 27 Mar 2009 21:34:41 +0300

> From: "Drew Adams" <[email-masked]>
> Date: Fri, 27 Mar 2009 08:13:28 -0700
> Cc: 
> 
> emacs -Q
>  
> C-x 4 d, then enter -alFR and the name of a directory that has a few
> subdirectory levels. The error message appears after a few seconds.
>  
> However, using -alR works fine.

Thanks.  Fixed with the following change:

2009-03-27  Eli Zaretskii  <[email-masked]>

	* ls-lisp.el (ls-lisp-insert-directory): Allow for a trailing '/'
	when looking for "." and "..".  (Bug#2801)

Index: lisp/ls-lisp.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ls-lisp.el,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- lisp/ls-lisp.el	28 Jan 2009 19:01:42 -0000	1.81
+++ lisp/ls-lisp.el	27 Mar 2009 18:34:03 -0000	1.82
@@ -390,7 +390,10 @@
 	      (setq elt (car file-alist)
 		    file-alist (cdr file-alist))
 	      (when (and (eq (cadr elt) t) ; directory
-			 (not (string-match "\\`\\.\\.?\\'" (car elt))))
+			 ;; Under -F, we have already decorated all
+			 ;; directories, including "." and "..", with
+			 ;; a /, so allow for that as well.
+			 (not (string-match "\\`\\.\\.?/?\\'" (car elt))))
 		(setq elt (expand-file-name (car elt) dir))
 		(insert "\n" elt ":\n")
 		(ls-lisp-insert-directory

Subject: 23.0.90; ls-lisp-insert-directory: Variable binding depth exceeds max-specpdl-size
From: "Drew Adams" <[email-masked]>
To: <[email-masked]>
Date: Fri, 27 Mar 2009 08:13:28 -0700

emacs -Q
 
C-x 4 d, then enter -alFR and the name of a directory that has a few
subdirectory levels. The error message appears after a few seconds.
 
However, using -alR works fine.
 
The same bug is in Emacs 22.3.

In GNU Emacs 23.0.90.1 (i386-mingw-nt5.1.2600)
 of 2009-02-01 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4)'
 
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ENU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1252
  default-enable-multibyte-characters: t
 
Major mode: Dired by name
 
Minor modes in effect:
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
 
Recent input:
C-u C-x 4 d F R <return> C O N T R I B <return> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <menu-bar> <help-menu> <send-emacs-bug
-report>
 
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
ls-lisp-insert-directory: Variable binding depth exceeds max-specpdl-size