completion-ignored-extension directories if there's something else.
(dired-mark-if, dired-map-over-marks, dired-readin, dired-revert)
(dired-remember-marks, dired-undo, dired-build-subdir-alist)
(dired-internal-do-deletions, dired-mark-files-in-region, dired-mark)
(dired-toggle-marks, dired-change-marks, dired-unmark-all-files):
buffer-read-only -> inhibit-read-only.
+2008-05-13 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * dired.el (dired-read-dir-and-switches): Ignore ., .., and
+ completion-ignored-extension directories if there's something else.
+ (dired-mark-if, dired-map-over-marks, dired-readin, dired-revert)
+ (dired-remember-marks, dired-undo, dired-build-subdir-alist)
+ (dired-internal-do-deletions, dired-mark-files-in-region, dired-mark)
+ (dired-toggle-marks, dired-change-marks, dired-unmark-all-files):
+ buffer-read-only -> inhibit-read-only.
+
2008-05-12 Eric S. Raymond <esr@snark.thyrsus.com>
* vc.el (vc-expand-dirs): Stop this function from tossing out
2008-05-12 Eric S. Raymond <esr@snark.thyrsus.com>
* vc.el (vc-expand-dirs): Stop this function from tossing out
MSG is a noun phrase for the type of files being marked.
It should end with a noun that can be pluralized by adding `s'.
Return value is the number of files marked, or nil if none were marked."
MSG is a noun phrase for the type of files being marked.
It should end with a noun that can be pluralized by adding `s'.
Return value is the number of files marked, or nil if none were marked."
- `(let (buffer-read-only count)
+ `(let ((inhibit-read-only t) count)
(save-excursion
(setq count 0)
(if ,msg (message "Marking %ss..." ,msg))
(save-excursion
(setq count 0)
(if ,msg (message "Marking %ss..." ,msg))
;;endless loop.
;;This warning should not apply any longer, sk 2-Sep-1991 14:10.
`(prog1
;;endless loop.
;;This warning should not apply any longer, sk 2-Sep-1991 14:10.
`(prog1
- (let (buffer-read-only case-fold-search found results)
+ (let ((inhibit-read-only t) case-fold-search found results)
(if ,arg
(if (integerp ,arg)
(progn ;; no save-excursion, want to move point.
(if ,arg
(if (integerp ,arg)
(progn ;; no save-excursion, want to move point.
nil default-directory nil)
(lexical-let ((default (and buffer-file-name
(abbreviate-file-name buffer-file-name)))
nil default-directory nil)
(lexical-let ((default (and buffer-file-name
(abbreviate-file-name buffer-file-name)))
- (defdir default-directory))
+ (defdir default-directory)
+ (cie ()))
+ (dolist (ext completion-ignored-extensions)
+ (if (eq ?/ (aref ext (1- (length ext)))) (push ext cie)))
+ (setq cie (concat (regexp-opt cie "\\(?:") "\\'"))
(minibuffer-with-setup-hook
(lambda ()
(setq minibuffer-default default)
(minibuffer-with-setup-hook
(lambda ()
(setq minibuffer-default default)
;; does not obey its `predicate' argument.
(completion-table-in-turn
(lambda (str pred action)
;; does not obey its `predicate' argument.
(completion-table-in-turn
(lambda (str pred action)
- (let ((read-file-name-predicate 'file-directory-p))
+ (let ((read-file-name-predicate
+ (lambda (f) (and (not (member f '("./" "../")))
+ ;; Hack! Faster than file-directory-p!
+ (eq (aref f (1- (length f))) ?/)
+ (not (string-match cie f))))))
(complete-with-action
action 'read-file-name-internal str nil)))
'read-file-name-internal)
(complete-with-action
action 'read-file-name-internal str nil)))
'read-file-name-internal)
(make-local-variable 'file-name-coding-system)
(setq file-name-coding-system
(or coding-system-for-read file-name-coding-system))
(make-local-variable 'file-name-coding-system)
(setq file-name-coding-system
(or coding-system-for-read file-name-coding-system))
+ (let ((inhibit-read-only t)
;; Don't make undo entries for readin.
(buffer-undo-list t))
(widen)
;; Don't make undo entries for readin.
(buffer-undo-list t))
(widen)
(hidden-subdirs (dired-remember-hidden))
(old-subdir-alist (cdr (reverse dired-subdir-alist))) ; except pwd
(case-fold-search nil) ; we check for upper case ls flags
(hidden-subdirs (dired-remember-hidden))
(old-subdir-alist (cdr (reverse dired-subdir-alist))) ; except pwd
(case-fold-search nil) ; we check for upper case ls flags
(goto-char (point-min))
(setq mark-alist;; only after dired-remember-hidden since this unhides:
(dired-remember-marks (point-min) (point-max)))
(goto-char (point-min))
(setq mark-alist;; only after dired-remember-hidden since this unhides:
(dired-remember-marks (point-min) (point-max)))
(defun dired-remember-marks (beg end)
"Return alist of files and their marks, from BEG to END."
(if selective-display ; must unhide to make this work.
(defun dired-remember-marks (beg end)
"Return alist of files and their marks, from BEG to END."
(if selective-display ; must unhide to make this work.
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(subst-char-in-region beg end ?\r ?\n)))
(let (fil chr alist)
(save-excursion
(subst-char-in-region beg end ?\r ?\n)))
(let (fil chr alist)
(save-excursion
This doesn't recover lost files, it just undoes changes in the buffer itself.
You can use it to recover marks, killed lines or subdirs."
(interactive)
This doesn't recover lost files, it just undoes changes in the buffer itself.
You can use it to recover marks, killed lines or subdirs."
(interactive)
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(undo))
(dired-build-subdir-alist)
(message "Change in dired buffer undone.
(undo))
(dired-build-subdir-alist)
(message "Change in dired buffer undone.
(dired-clear-alist)
(save-excursion
(let* ((count 0)
(dired-clear-alist)
(save-excursion
(let* ((count 0)
(buffer-undo-list t)
(switches (or switches dired-actual-switches))
new-dir-name
(buffer-undo-list t)
(switches (or switches dired-actual-switches))
new-dir-name
(let (failures);; files better be in reverse order for this loop!
(while l
(goto-char (cdr (car l)))
(let (failures);; files better be in reverse order for this loop!
(while l
(goto-char (cdr (car l)))
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(condition-case err
(let ((fn (car (car l))))
(dired-delete-file fn dired-recursive-deletes)
(condition-case err
(let ((fn (car (car l))))
(dired-delete-file fn dired-recursive-deletes)
(defun dired-delete-entry (file)
(save-excursion
(and (dired-goto-file file)
(defun dired-delete-entry (file)
(save-excursion
(and (dired-goto-file file)
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(delete-region (progn (beginning-of-line) (point))
(save-excursion (forward-line 1) (point))))))
(dired-clean-up-after-deletion file))
(delete-region (progn (beginning-of-line) (point))
(save-excursion (forward-line 1) (point))))))
(dired-clean-up-after-deletion file))
(following-char))))))
(defun dired-mark-files-in-region (start end)
(following-char))))))
(defun dired-mark-files-in-region (start end)
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(if (> start end)
(error "start > end"))
(goto-char start) ; assumed at beginning of line
(if (> start end)
(error "start > end"))
(goto-char start) ; assumed at beginning of line
(interactive "P")
(if (dired-get-subdir)
(save-excursion (dired-mark-subdir-files))
(interactive "P")
(if (dired-get-subdir)
(save-excursion (dired-mark-subdir-files))
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(dired-repeat-over-lines
(prefix-numeric-value arg)
(function (lambda () (delete-char 1) (insert dired-marker-char)))))))
(dired-repeat-over-lines
(prefix-numeric-value arg)
(function (lambda () (delete-char 1) (insert dired-marker-char)))))))
(interactive)
(save-excursion
(goto-char (point-min))
(interactive)
(save-excursion
(goto-char (point-min))
- (let (buffer-read-only)
+ (let ((inhibit-read-only t))
(while (not (eobp))
(or (dired-between-files)
(looking-at dired-re-dot)
(while (not (eobp))
(or (dired-between-files)
(looking-at dired-re-dot)
(if (or (eq old ?\r) (eq new ?\r))
(ding)
(let ((string (format "\n%c" old))
(if (or (eq old ?\r) (eq new ?\r))
(ding)
(let ((string (format "\n%c" old))
(save-excursion
(goto-char (point-min))
(while (search-forward string nil t)
(save-excursion
(goto-char (point-min))
(while (search-forward string nil t)
(interactive "cRemove marks (RET means all): \nP")
(save-excursion
(let* ((count 0)
(interactive "cRemove marks (RET means all): \nP")
(save-excursion
(let* ((count 0)
- buffer-read-only case-fold-search query
+ (inhibit-read-only t) case-fold-search query
(string (format "\n%c" mark))
(help-form "\
Type SPC or `y' to unmark one file, DEL or `n' to skip to next,
(string (format "\n%c" mark))
(help-form "\
Type SPC or `y' to unmark one file, DEL or `n' to skip to next,