# HG changeset patch # User Stefan Monnier # Date 1112788623 0 # Node ID 796b7fe4bfd8c4b2ef872d2c5aaf83351e2882f8 # Parent 0cd1f127eef01aca0551dac26f16331d743fc02d (wdired-advise-functions, wdired-add-skip-in-replace) (wdired-add-replace-advice): Remove. (wdired-change-to-wdired-mode): Use query-replace-skip-read-only. diff -r 0cd1f127eef0 -r 796b7fe4bfd8 lisp/ChangeLog --- a/lisp/ChangeLog Wed Apr 06 10:46:44 2005 +0000 +++ b/lisp/ChangeLog Wed Apr 06 11:57:03 2005 +0000 @@ -1,3 +1,9 @@ +2005-04-06 JUAN-LEON Lahoz Garcia + + * wdired.el (wdired-advise-functions, wdired-add-skip-in-replace) + (wdired-add-replace-advice): Remove. + (wdired-change-to-wdired-mode): Use query-replace-skip-read-only. + 2005-04-06 Kim F. Storm * startup.el (command-line): Add --bare-bones alias for -Q. @@ -21,8 +27,8 @@ * generic.el (generic-mode-internal): Fix 2005-03-31 change. (define-generic-mode): Ditto. Fix debug declaration. - * generic-x.el (show-tabs-tab-face, show-tabs-space-face): Put - them in the generic-x group. + * generic-x.el (show-tabs-tab-face, show-tabs-space-face): + Put them in the generic-x group. * calendar/timeclock.el (timeclock): Doc fix. @@ -80,8 +86,8 @@ 2005-04-04 Carsten Dominik - * textmodes/org.el (org-insert-mode-line-in-empty-file): Change - default value to nil. + * textmodes/org.el (org-insert-mode-line-in-empty-file): + Change default value to nil. 2005-04-04 Lute Kamstra @@ -135,11 +141,11 @@ 2005-04-03 Marcelo Toledo - * add-log.el (change-log-font-lock-keywords): The manual - describing a Change Log entry, says: (...) "Aside from these - header lines, every line in the change log starts with a space or - a tab.". The font-lock was not highlighting lines started with - spaces, added support for it. + * add-log.el (change-log-font-lock-keywords): The manual + describing a Change Log entry, says: (...) "Aside from these + header lines, every line in the change log starts with a space or + a tab.". The font-lock was not highlighting lines started with + spaces, added support for it. 2005-04-03 Roland Winkler diff -r 0cd1f127eef0 -r 796b7fe4bfd8 lisp/wdired.el --- a/lisp/wdired.el Wed Apr 06 10:46:44 2005 +0000 +++ b/lisp/wdired.el Wed Apr 06 11:57:03 2005 +0000 @@ -1,10 +1,10 @@ ;;; wdired.el --- Rename files editing their names in dired buffers -;; Copyright (C) 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. ;; Filename: wdired.el -;; Author: Juan León Lahoz García -;; Version: 1.91 +;; Author: Juan León Lahoz García +;; Version: 2.0 ;; Keywords: dired, environment, files, renaming ;; This file is part of GNU Emacs. @@ -156,9 +156,8 @@ ;;; Code: +(defvar dired-backup-overwrite) ; Only in emacs 20.x this is a custom var (eval-when-compile - (require 'advice) - (defvar dired-backup-overwrite) ; Only in emacs 20.x this is a custom var (set (make-local-variable 'byte-compile-dynamic) t)) (eval-and-compile @@ -199,19 +198,6 @@ (other :tag "As in dired mode" t)) :group 'wdired) -(defcustom wdired-advise-functions t - "*If t some editing commands are advised when wdired is loaded. -The advice only has effect in wdired mode. These commands are -`query-replace' `query-replace-regexp' `replace-string', and the -advice makes them to ignore read-only regions, so no attempts to -modify these regions are done by them, and so they don't end -prematurely. - -Setting this to nil does not unadvise the functions, if they are -already advised, but new Emacs will not advise them." - :type 'boolean - :group 'wdired) - (defcustom wdired-allow-to-redirect-links t "*If non-nil, the target of the symbolic links can be changed also. In systems without symbolic links support, this variable has no effect @@ -309,6 +295,7 @@ (interactive) (set (make-local-variable 'wdired-old-content) (buffer-substring (point-min) (point-max))) + (set (make-local-variable 'query-replace-skip-read-only) t) (use-local-map wdired-mode-map) (force-mode-line-update) (setq buffer-read-only nil) @@ -664,64 +651,6 @@ (interactive "p") (wdired-xcase-word 'capitalize-word arg)) -;; The following code is related to advice some interactive functions -;; to make some editing commands in wdired mode not to fail trying to -;; change read-only text. Notice that some advises advice and unadvise -;; them-self to another functions: search-forward and -;; re-search-forward. This is to keep these functions advised only -;; when is necessary. Since they are built-in commands used heavily in -;; lots of places, to have it permanently advised would cause some -;; performance loss. - - -(defun wdired-add-skip-in-replace (command) - "Advice COMMAND to skip matches while they have read-only properties. -This is useful to avoid \"read-only\" errors in search and replace -commands. This advice only has effect in wdired mode." - (eval - `(defadvice ,command (around wdired-discard-read-only activate) - ,(format "Make %s to work better with wdired,\n%s." command - "skipping read-only matches when invoked without argument") - ad-do-it - (if (eq major-mode 'wdired-mode) - (while (and ad-return-value - (text-property-any - (max 1 (1- (match-beginning 0))) (match-end 0) - 'read-only t)) - ad-do-it)) - ad-return-value))) - - -(defun wdired-add-replace-advice (command) - "Advice COMMAND to skip matches while they have read-only properties. -This is useful to avoid \"read-only\" errors in search and replace -commands. This advice only has effect in wdired mode." - (eval - `(defadvice ,command (around wdired-grok-read-only activate) - ,(format "Make %s to work better with wdired,\n%s." command - "skipping read-only matches when invoked without argument") - (if (eq major-mode 'wdired-mode) - (progn - (wdired-add-skip-in-replace 'search-forward) - (wdired-add-skip-in-replace 're-search-forward) - (unwind-protect - ad-do-it - (progn - (ad-remove-advice 'search-forward - 'around 'wdired-discard-read-only) - (ad-remove-advice 're-search-forward - 'around 'wdired-discard-read-only) - (ad-update 'search-forward) - (ad-update 're-search-forward)))) - ad-do-it) - ad-return-value))) - - -(if wdired-advise-functions - (progn - (mapcar 'wdired-add-replace-advice - '(query-replace query-replace-regexp replace-string)))) - ;; The following code deals with changing the access bits (or ;; permissions) of the files.