Subject: bug#11687: 24.1; (wrong-type-argument stringp nil) for `dired-do-chmod' (actually, `dired-do-uncache')

From: "Drew Adams" <[email-masked]>
Date: Tue, 12 Jun 2012 16:43:49 -0700

I did not see this with emacs -Q, but this is what I saw:
 
I marked some files in Dired, then did `dired-do-chmod'.  At the prompt
I entered "a-w".  This is the backtrace:
 
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
* find-file-name-handler(nil dired-uncache)
* (let ((handler (find-file-name-handler dir (quote dired-uncache)))) (if
handler (funcall handler (quote dired-uncache) dir)))
* dired-uncache(nil)
* (if (and test-for-subdir (dired-get-subdir)) (let* ((dir (dired-get-subdir))
(switches (cdr (assoc-string dir dired-switches-alist)))) (dired-insert-subdir
dir (when arg (read-string "Switches for listing: " (or switches
dired-subdir-switches dired-actual-switches))))) (message "Redisplaying...")
(dired-uncache (if (consp dired-directory) (car dired-directory)
dired-directory)) (dired-map-over-marks (let ((fname (dired-get-filename))
(dired-after-readin-hook nil)) (message "Redisplaying... %s" fname)
(dired-update-file-line fname)) arg) (run-hooks (quote dired-after-readin-hook))
(dired-move-to-filename) (message "Redisplaying...done"))
* dired-do-redisplay(nil)
* (let* ((files (dired-get-marked-files t arg)) (modestr (and (stringp (car
files)) (nth 8 (file-attributes (car files))))) (default (and (stringp modestr)
(string-match "^.\\(...\\)\\(...\\)\\(...\\)$" modestr)
(replace-regexp-in-string "-" "" (format "u=%s,g=%s,o=%s" (match-string 1
modestr) (match-string 2 modestr) (match-string 3 modestr))))) (modes
(dired-mark-read-string "Change mode of %s to: " nil (quote chmod) arg files
default)) num-modes) (cond ((equal modes "") (error "No file mode specified"))
((string-match "^[0-7]+" modes) (setq num-modes (string-to-number modes 8))))
(dolist (file files) (set-file-modes file (if num-modes num-modes
(file-modes-symbolic-to-number modes (file-modes file))))) (dired-do-redisplay
arg))
  dired-do-chmod(nil)
* call-interactively(dired-do-chmod nil nil)

In GNU Emacs 24.1.1 (i386-mingw-nt5.1.2600)
 of 2012-06-10 on MARVIN
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.6) --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include'