From unknown Sun Jun 22 00:56:05 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11055: 23.4; move-file-to-trash bug in files.el.gz with patch Resent-From: David Casperson Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 21 Mar 2012 16:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 11055 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 11055@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.13323480215226 (code B ref -1); Wed, 21 Mar 2012 16:41:02 +0000 Received: (at submit) by debbugs.gnu.org; 21 Mar 2012 16:40:21 +0000 Received: from localhost ([127.0.0.1]:59837 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SAOaB-0001MD-6N for submit@debbugs.gnu.org; Wed, 21 Mar 2012 12:40:21 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34489) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SAC8H-000637-1I for submit@debbugs.gnu.org; Tue, 20 Mar 2012 23:22:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SABeZ-0004o5-0N for submit@debbugs.gnu.org; Tue, 20 Mar 2012 22:52:01 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SUBJ_OBFU_PUNCT_FEW autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:35004) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SABeY-0004nc-Sl for submit@debbugs.gnu.org; Tue, 20 Mar 2012 22:51:58 -0400 Received: from eggs.gnu.org ([208.118.235.92]:59974) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SABeV-0000yN-Sd for bug-gnu-emacs@gnu.org; Tue, 20 Mar 2012 22:51:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SABeS-0004gF-A1 for bug-gnu-emacs@gnu.org; Tue, 20 Mar 2012 22:51:55 -0400 Received: from asmtpout027.mac.com ([17.148.16.102]:33611) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SABeS-0004g7-0I for bug-gnu-emacs@gnu.org; Tue, 20 Mar 2012 22:51:52 -0400 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from tl-fac-1-226-83.unbc.ca (tl-fac-1-226-83.unbc.ca [142.207.226.83]) by asmtp027.mac.com (Oracle Communications Messaging Server 7u4-23.01 (7.0.4.23.0) 64bit (built Aug 10 2011)) with ESMTPSA id <0M17007OVRXWZO50@asmtp027.mac.com> for bug-gnu-emacs@gnu.org; Tue, 20 Mar 2012 19:51:34 -0700 (PDT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.6.7498,1.0.260,0.0.0000 definitions=2012-03-21_01:2012-03-20, 2012-03-21, 1970-01-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 ipscore=0 suspectscore=1 phishscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=6.0.2-1012030000 definitions=main-1203200333 From: David Casperson Date: Tue, 20 Mar 2012 19:51:34 -0700 Message-id: <19AFE4DF-6253-4721-B197-E745F4A35F64@me.com> X-Mailer: Apple Mail (2.1257) X-detected-operating-system: by eggs.gnu.org: Solaris 10 (1203?) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.2 (------) X-Mailman-Approved-At: Wed, 21 Mar 2012 12:40:17 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) 1. Create a file whose name is not a legal regular expression, e.g., =E2=80=9C~/[=E2=80=9C.=20 2. Provoke move-to-trash, for instance M-x eval-expression (move-file-to-trash (expand-file-name =E2=80=9C~/[=E2=80=9C)) The problem comes from using file-names as regular expressions without quoting. Here is a potential patch. You may use and copy-left as you see fit.=20=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D *** files-original.el Wed Jan 11 04:35:01 2012 --- files.el Tue Mar 20 19:37:20 2012 *************** *** 6239,6248 **** ;; If `trash-directory' is non-nil, move the file there. (let* ((trash-dir (expand-file-name trash-directory)) (fn (directory-file-name (expand-file-name filename))) (new-fn (expand-file-name (file-name-nondirectory fn) trash-dir))) ;; We can't trash a parent directory of trash-directory. ! (if (string-match fn trash-dir) (error "Trash directory `%s' is a subdirectory of `%s'" trash-dir filename)) (unless (file-directory-p trash-dir) --- 6239,6249 ---- ;; If `trash-directory' is non-nil, move the file there. (let* ((trash-dir (expand-file-name trash-directory)) (fn (directory-file-name (expand-file-name filename))) + (fn-pattern (regexp-quote fn)) (new-fn (expand-file-name (file-name-nondirectory fn) trash-dir))) ;; We can't trash a parent directory of trash-directory. ! (if (string-match fn-pattern trash-dir) (error "Trash directory `%s' is a subdirectory of `%s'" trash-dir filename)) (unless (file-directory-p trash-dir) *************** *** 6267,6283 **** "~/.local/share")))) (trash-files-dir (expand-file-name "files" xdg-data-dir)) (trash-info-dir (expand-file-name "info" xdg-data-dir)) ! (fn (directory-file-name (expand-file-name filename)))) =20=20 ;; Check if we have permissions to delete. (unless (file-writable-p (directory-file-name (file-name-directory fn))) (error "Cannot move %s to trash: Permission denied" filename)) ;; The trashed file cannot be the trash dir or its parent. ! (if (string-match fn trash-files-dir) (error "The trash directory %s is a subdirectory of %s" trash-files-dir filename)) ! (if (string-match fn trash-info-dir) (error "The trash directory %s is a subdirectory of %s" trash-info-dir filename)) =20=20 --- 6268,6285 ---- "~/.local/share")))) (trash-files-dir (expand-file-name "files" xdg-data-dir)) (trash-info-dir (expand-file-name "info" xdg-data-dir)) ! (fn (directory-file-name (expand-file-name filename))) ! (fn-pattern (regexp-quote fn))) =20=20 ;; Check if we have permissions to delete. (unless (file-writable-p (directory-file-name (file-name-directory fn))) (error "Cannot move %s to trash: Permission denied" filename)) ;; The trashed file cannot be the trash dir or its parent. ! (if (string-match fn-pattern trash-files-dir) (error "The trash directory %s is a subdirectory of %s" trash-files-dir filename)) ! (if (string-match fn-pattern trash-info-dir) (error "The trash directory %s is a subdirectory of %s" trash-info-dir filename)) =20=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D HTH, David Casperson In GNU Emacs 23.4.1 (x86_64-apple-darwin, NS apple-appkit-1038.36) of 2012-01-29 on bob.porkrind.org Windowing system distributor `Apple', version 10.3.1138 configured using `configure '--host=3Dx86_64-apple-darwin' '--build=3Di686= -apple-darwin' '--with-ns' 'build_alias=3Di686-apple-darwin' 'host_alias=3D= x86_64-apple-darwin' 'CC=3Dgcc -mmacosx-version-min=3D10.5'' 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: nil value of $XMODIFIERS: nil locale-coding-system: nil default enable-multibyte-characters: t Major mode: Text Minor modes in effect: diff-auto-refine-mode: t shell-dirtrack-mode: t msb-mode: t server-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t blink-cursor-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: l C-x C-f M-p f i l s =20 C-s m o v e - f C-w C-w C-w C-s C-s C-s C-s=20 C-s C-l C-a C-SPC C-M-f C-f C-w C-o C-n C-n C-SPC C-M-f=20 C-f M-w C-o C-y C-x C-s M-` C-g M-x m a n =20 d i f f C-o C-v C-v C-v C-v C-v C-v C-v C-o=20 C-x C-j C-x 4 b f i ? l C-x C-j=20 C M-p M-b M-b M-b M-f - o r i g i n a l C-o=20 C-o g C-x M-p C-g C M-p C-g C-o g=20 p m m ! g d x y e s M-! i d f f =20 d i f f SPC - C=20 3 SPC C-x 9 r f i l e s - =20 SPC f i l e s . e C-o C-v C-v C-v C-o=20 p f C-x 1 C-s m o v e C-g C-s ( d e f u n SPC m o v=20 e C-a C-n C-f C-f C-f C-SPC C-n C-a C-w C-x C-s C-n=20 C-n C-n C-n C-n C-n C-n C-n C-n C-n C-e M-z " C-x C-s=20 C-x C-j C-x M-p p o C-s=20 C-s C-a C-n C-SPC C-n C-n C-n C-n C-n C-n C-n C-n C-n=20 C-n C-n C-n M-w C-o C-n f C-a C-p C-p C-p C-p C-p C-p=20 C-p C-p C-p C-p C-y C-M-k C-k C-x C-s C-o C-v C-o C-x=20 C-o C-v C-v C-x C-s C-g=20 C-x C-w f i l e s - d i f f . t x t M-x r=20 e p o r Recent messages: Saving file /Users/casper/Library/emacs/lisp/Files/files.el... Wrote /Users/casper/Library/emacs/lisp/Files/files.el Directory has changed on disk; type g to update Dired Mark saved where search started Mark set [2 times] Saving file /Users/casper/Library/emacs/lisp/Files/files.el... Wrote /Users/casper/Library/emacs/lisp/Files/files.el Quit Saving file /Users/casper/Library/emacs/lisp/Files/files-diff.txt... Wrote /Users/casper/Library/emacs/lisp/Files/files-diff.txt Load-path shadows: /Users/casper/Library/emacs/lisp/progmodes/Prolog/bruda/prolog hides /Appli= cations/Emacs.app/Contents/Resources/lisp/progmodes/prolog /Users/casper/Library/emacs/lisp/Modes/nxml-mode/xsd-regexp hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/xsd-regexp /Users/casper/Library/emacs/lisp/Modes/nxml-mode/xmltok hides /Applications= /Emacs.app/Contents/Resources/lisp/nxml/xmltok /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-xsd hides /Application= s/Emacs.app/Contents/Resources/lisp/nxml/rng-xsd /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-valid hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-valid /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-util hides /Applicatio= ns/Emacs.app/Contents/Resources/lisp/nxml/rng-util /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-uri hides /Application= s/Emacs.app/Contents/Resources/lisp/nxml/rng-uri /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-pttrn hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-pttrn /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-parse hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-parse /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-nxml hides /Applicatio= ns/Emacs.app/Contents/Resources/lisp/nxml/rng-nxml /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-match hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-match /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-maint hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-maint /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-loc hides /Application= s/Emacs.app/Contents/Resources/lisp/nxml/rng-loc /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-dt hides /Applications= /Emacs.app/Contents/Resources/lisp/nxml/rng-dt /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-cmpct hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-cmpct /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-util hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/nxml-util /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-uchnm hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-uchnm /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-rap hides /Applicatio= ns/Emacs.app/Contents/Resources/lisp/nxml/nxml-rap /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-parse hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-parse /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-outln hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-outln /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-ns hides /Application= s/Emacs.app/Contents/Resources/lisp/nxml/nxml-ns /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-mode hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/nxml-mode /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-maint hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-maint /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-glyph hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-glyph /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-enc hides /Applicatio= ns/Emacs.app/Contents/Resources/lisp/nxml/nxml-enc /Applications/Emacs.app/Contents/Resources/lisp/uniquify hides /Users/caspe= r/Library/emacs/lisp/Files/uniquify /Applications/Emacs.app/Contents/Resources/lisp/files hides /Users/casper/L= ibrary/emacs/lisp/Files/files /Users/casper/Library/emacs/lisp/slinks hides /Users/casper/Library/emacs/l= isp/Obsolete/slinks /Users/casper/Library/emacs/lisp/Modes/filladapt hides /Users/casper/Librar= y/emacs/lisp/Obsolete/filladapt /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/rx hides /Users/= casper/Library/emacs/lisp/Regexps/rx /Users/casper/Library/emacs/lisp/Files/temp2 hides /Users/casper/Library/em= acs/lisp/Scratch Work/temp2 /Users/casper/Library/emacs/lisp/TeX/one-sentence-regions hides /Users/casp= er/Library/emacs/lisp/Tweaks/one-sentence-regions /Users/casper/Library/emacs/lisp/aldor-hooks hides /Users/casper/Library/em= acs/lisp/progmodes/aldor-hooks /Users/casper/Library/emacs/lisp/Dired/dired-smart-view hides /Users/casper= /Library/emacs/lisp/Dired/in-progress/dired-smart-view /Users/casper/Library/emacs/lisp/Dired/dired-after-readin-overlay hides /Us= ers/casper/Library/emacs/lisp/Dired/in-progress/dired-after-readin-overlay /Users/casper/Library/emacs/lisp/Dired/dired-hide-dot-files hides /Users/ca= sper/Library/emacs/lisp/Dired/obsolete/dired-hide-dot-files /Applications/Emacs.app/Contents/Resources/lisp/textmodes/underline hides /= Users/casper/Library/emacs/lisp/Obsolete/junk-maybe/underline /Applications/Emacs.app/Contents/Resources/lisp/obsolete/resume hides /User= s/casper/Library/emacs/lisp/Obsolete/junk-maybe/resume /Users/casper/Library/emacs/lisp/Dired/dired-fix hides /Users/casper/Librar= y/emacs/lisp/Obsolete/junk-maybe/dired-fix /Users/casper/Library/emacs/lisp/Obsolete/junk-maybe/cmutex hides /Users/ca= sper/Library/emacs/lisp/Obsolete/old/cmutex /Users/casper/Library/emacs/lisp/Obsolete/junk-maybe/cmushell hides /Users/= casper/Library/emacs/lisp/Obsolete/old/cmushell /Users/casper/Library/emacs/lisp/progmodes/C/c-cut-region-to-file hides /Us= ers/casper/Library/emacs/lisp/progmodes/C++/c-cut-region-to-file /Users/casper/Library/emacs/lisp/progmodes/eiffel-mode hides /Users/casper/= Library/emacs/lisp/progmodes/Eiffel/eiffel-mode /Applications/Emacs.app/Contents/Resources/lisp/progmodes/ruby-mode hides /= Users/casper/Library/emacs/lisp/progmodes/Ruby/ruby-mode /Users/casper/Library/emacs/lisp/progmodes/C/c-cut-region-to-file hides /Us= ers/casper/Library/emacs/lisp/progmodes/c-common/c-cut-region-to-file /Applications/Emacs.app/Contents/Resources/lisp/cedet/pulse hides /Users/ca= sper/Library/emacs/lisp/progmodes/cedet-1.0/common/pulse /Applications/Emacs.app/Contents/Resources/lisp/cedet/mode-local hides /Use= rs/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/mode-local /Applications/Emacs.app/Contents/Resources/lisp/cedet/inversion hides /User= s/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/inversion /Applications/Emacs.app/Contents/Resources/lisp/ezimage hides /Users/casper= /Library/emacs/lisp/progmodes/cedet-1.0/common/ezimage /Applications/Emacs.app/Contents/Resources/lisp/cedet/data-debug hides /Use= rs/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/data-debug /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet hides /Users/ca= sper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet-idutils hides /= Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet-idutils /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet-global hides /U= sers/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet-global /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet-files hides /Us= ers/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet-files /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet-cscope hides /U= sers/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet-cscope /Applications/Emacs.app/Contents/Resources/lisp/cedet/ede hides /Users/casp= er/Library/emacs/lisp/progmodes/cedet-1.0/ede/ede /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio hides /Use= rs/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-speedbar h= ides /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-speed= bar /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-opt hides = /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-opt /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-datadebug = hides /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-data= debug /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-custom hid= es /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-custom /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-comp hides= /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-comp /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-base hides= /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-base /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/chart hides /Use= rs/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/chart /Applications/Emacs.app/Contents/Resources/lisp/cedet/semantic hides /Users= /casper/Library/emacs/lisp/progmodes/cedet-1.0/semantic/semantic /Applications/Emacs.app/Contents/Resources/lisp/speedbar hides /Users/caspe= r/Library/emacs/lisp/progmodes/cedet-1.0/speedbar/speedbar /Applications/Emacs.app/Contents/Resources/lisp/sb-image hides /Users/caspe= r/Library/emacs/lisp/progmodes/cedet-1.0/speedbar/sb-image /Applications/Emacs.app/Contents/Resources/lisp/dframe hides /Users/casper/= Library/emacs/lisp/progmodes/cedet-1.0/speedbar/dframe /Applications/Emacs.app/Contents/Resources/lisp/cedet/srecode hides /Users/= casper/Library/emacs/lisp/progmodes/cedet-1.0/srecode/srecode Features: (shadow sort mail-extr message ecomplete rfc822 mml mml-sec password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc time-date mm-util mail-prsvr gmm-utils mailheader canlock sha1 hex-util hashcash mail-utils emacsbug tabify man assoc tmm electric jka-compr find-func vc-dispatcher vc-svn magit diff-mode log-edit easy-mmode pcvs-util add-log multi-isearch iso-transl find-dired dired-mac-open pico-server-done-function osx-osascript longlines mail-reply-mode derived ansi-color shell compile comint ring my-zap-to-char change-case rect dabbrev cc-def cc-common-def skeleton cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs arc-mode archive-mode dired-create-directory-fix wdired dired-up-directory-and-remove-buffer mule-util help-mode view dired-x dired-aux dired-mac-fix dired-follow-mac-link dired-delete-file-fix dired-fix dired regexp-opt eldoc file-mode-tools buff-menu-aux msb-fix msb cedet nxml-enc paren mic-paren diminish save-file-name-history cl cl-19 insert color-insert swap-volume rx customized-find-file dired-mac-init edmacro kmacro cus-edit wid-edit filladapt prolog sh-script executable uniquify advice help-fns advice-preload server cus-start cus-load tooltip ediff-hook vc-hooks lisp-float-type mwheel ns-win easymenu tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces cus-face files text-properties overlay md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process ns multi-tty emacs) From unknown Sun Jun 22 00:56:05 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.428 (Entity 5.428) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: David Casperson Subject: bug#11055: closed (Re: bug#11055: 23.4; move-file-to-trash bug in files.el.gz with patch) Message-ID: References: <19AFE4DF-6253-4721-B197-E745F4A35F64@me.com> X-Gnu-PR-Message: they-closed 11055 X-Gnu-PR-Package: emacs Reply-To: 11055@debbugs.gnu.org Date: Thu, 22 Mar 2012 03:21:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1332386463-14953-1" This is a multi-part message in MIME format... ------------=_1332386463-14953-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #11055: 23.4; move-file-to-trash bug in files.el.gz with patch which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 11055@debbugs.gnu.org. --=20 11055: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D11055 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1332386463-14953-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 11055-done) by debbugs.gnu.org; 22 Mar 2012 03:20:43 +0000 Received: from localhost ([127.0.0.1]:60365 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SAYZu-0003si-FL for submit@debbugs.gnu.org; Wed, 21 Mar 2012 23:20:43 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.183]:63700) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SAYZZ-0003sC-NT for 11055-done@debbugs.gnu.org; Wed, 21 Mar 2012 23:20:40 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AicFAKU/KE9FpYqr/2dsb2JhbACBX5x7eYhwnhmGGQSbGYQJ X-IronPort-AV: E=Sophos;i="4.73,1,1325480400"; d="scan'208";a="169320018" Received: from 69-165-138-171.dsl.teksavvy.com (HELO fmsmemgm.homelinux.net) ([69.165.138.171]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 21 Mar 2012 22:49:35 -0400 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 991B0AE220; Wed, 21 Mar 2012 22:49:34 -0400 (EDT) From: Stefan Monnier To: David Casperson Subject: Re: bug#11055: 23.4; move-file-to-trash bug in files.el.gz with patch Message-ID: References: <19AFE4DF-6253-4721-B197-E745F4A35F64@me.com> Date: Wed, 21 Mar 2012 22:49:34 -0400 In-Reply-To: <19AFE4DF-6253-4721-B197-E745F4A35F64@me.com> (David Casperson's message of "Tue, 20 Mar 2012 19:51:34 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11055-done Cc: 11055-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > 1. Create a file whose name is not a legal regular expression, e.g., > =E2=80=9C~/[=E2=80=9C.=20 > 2. Provoke move-to-trash, for instance > M-x eval-expression > (move-file-to-trash (expand-file-name =E2=80=9C~/[=E2=80=9C)) > The problem comes from using file-names as regular expressions without > quoting. Here is a potential patch. You may use and copy-left as you > see fit.=20=20 Thanks, I used a slightly different patch but it should be fixed now on the trunk, Stefan ------------=_1332386463-14953-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 21 Mar 2012 16:40:21 +0000 Received: from localhost ([127.0.0.1]:59837 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SAOaB-0001MD-6N for submit@debbugs.gnu.org; Wed, 21 Mar 2012 12:40:21 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34489) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SAC8H-000637-1I for submit@debbugs.gnu.org; Tue, 20 Mar 2012 23:22:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SABeZ-0004o5-0N for submit@debbugs.gnu.org; Tue, 20 Mar 2012 22:52:01 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SUBJ_OBFU_PUNCT_FEW autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:35004) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SABeY-0004nc-Sl for submit@debbugs.gnu.org; Tue, 20 Mar 2012 22:51:58 -0400 Received: from eggs.gnu.org ([208.118.235.92]:59974) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SABeV-0000yN-Sd for bug-gnu-emacs@gnu.org; Tue, 20 Mar 2012 22:51:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SABeS-0004gF-A1 for bug-gnu-emacs@gnu.org; Tue, 20 Mar 2012 22:51:55 -0400 Received: from asmtpout027.mac.com ([17.148.16.102]:33611) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SABeS-0004g7-0I for bug-gnu-emacs@gnu.org; Tue, 20 Mar 2012 22:51:52 -0400 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from tl-fac-1-226-83.unbc.ca (tl-fac-1-226-83.unbc.ca [142.207.226.83]) by asmtp027.mac.com (Oracle Communications Messaging Server 7u4-23.01 (7.0.4.23.0) 64bit (built Aug 10 2011)) with ESMTPSA id <0M17007OVRXWZO50@asmtp027.mac.com> for bug-gnu-emacs@gnu.org; Tue, 20 Mar 2012 19:51:34 -0700 (PDT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.6.7498,1.0.260,0.0.0000 definitions=2012-03-21_01:2012-03-20, 2012-03-21, 1970-01-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 ipscore=0 suspectscore=1 phishscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=6.0.2-1012030000 definitions=main-1203200333 From: David Casperson Subject: 23.4; move-file-to-trash bug in files.el.gz with patch Date: Tue, 20 Mar 2012 19:51:34 -0700 Message-id: <19AFE4DF-6253-4721-B197-E745F4A35F64@me.com> To: bug-gnu-emacs@gnu.org X-Mailer: Apple Mail (2.1257) X-detected-operating-system: by eggs.gnu.org: Solaris 10 (1203?) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 21 Mar 2012 12:40:17 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) 1. Create a file whose name is not a legal regular expression, e.g., =E2=80=9C~/[=E2=80=9C.=20 2. Provoke move-to-trash, for instance M-x eval-expression (move-file-to-trash (expand-file-name =E2=80=9C~/[=E2=80=9C)) The problem comes from using file-names as regular expressions without quoting. Here is a potential patch. You may use and copy-left as you see fit.=20=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D *** files-original.el Wed Jan 11 04:35:01 2012 --- files.el Tue Mar 20 19:37:20 2012 *************** *** 6239,6248 **** ;; If `trash-directory' is non-nil, move the file there. (let* ((trash-dir (expand-file-name trash-directory)) (fn (directory-file-name (expand-file-name filename))) (new-fn (expand-file-name (file-name-nondirectory fn) trash-dir))) ;; We can't trash a parent directory of trash-directory. ! (if (string-match fn trash-dir) (error "Trash directory `%s' is a subdirectory of `%s'" trash-dir filename)) (unless (file-directory-p trash-dir) --- 6239,6249 ---- ;; If `trash-directory' is non-nil, move the file there. (let* ((trash-dir (expand-file-name trash-directory)) (fn (directory-file-name (expand-file-name filename))) + (fn-pattern (regexp-quote fn)) (new-fn (expand-file-name (file-name-nondirectory fn) trash-dir))) ;; We can't trash a parent directory of trash-directory. ! (if (string-match fn-pattern trash-dir) (error "Trash directory `%s' is a subdirectory of `%s'" trash-dir filename)) (unless (file-directory-p trash-dir) *************** *** 6267,6283 **** "~/.local/share")))) (trash-files-dir (expand-file-name "files" xdg-data-dir)) (trash-info-dir (expand-file-name "info" xdg-data-dir)) ! (fn (directory-file-name (expand-file-name filename)))) =20=20 ;; Check if we have permissions to delete. (unless (file-writable-p (directory-file-name (file-name-directory fn))) (error "Cannot move %s to trash: Permission denied" filename)) ;; The trashed file cannot be the trash dir or its parent. ! (if (string-match fn trash-files-dir) (error "The trash directory %s is a subdirectory of %s" trash-files-dir filename)) ! (if (string-match fn trash-info-dir) (error "The trash directory %s is a subdirectory of %s" trash-info-dir filename)) =20=20 --- 6268,6285 ---- "~/.local/share")))) (trash-files-dir (expand-file-name "files" xdg-data-dir)) (trash-info-dir (expand-file-name "info" xdg-data-dir)) ! (fn (directory-file-name (expand-file-name filename))) ! (fn-pattern (regexp-quote fn))) =20=20 ;; Check if we have permissions to delete. (unless (file-writable-p (directory-file-name (file-name-directory fn))) (error "Cannot move %s to trash: Permission denied" filename)) ;; The trashed file cannot be the trash dir or its parent. ! (if (string-match fn-pattern trash-files-dir) (error "The trash directory %s is a subdirectory of %s" trash-files-dir filename)) ! (if (string-match fn-pattern trash-info-dir) (error "The trash directory %s is a subdirectory of %s" trash-info-dir filename)) =20=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D HTH, David Casperson In GNU Emacs 23.4.1 (x86_64-apple-darwin, NS apple-appkit-1038.36) of 2012-01-29 on bob.porkrind.org Windowing system distributor `Apple', version 10.3.1138 configured using `configure '--host=3Dx86_64-apple-darwin' '--build=3Di686= -apple-darwin' '--with-ns' 'build_alias=3Di686-apple-darwin' 'host_alias=3D= x86_64-apple-darwin' 'CC=3Dgcc -mmacosx-version-min=3D10.5'' 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: nil value of $XMODIFIERS: nil locale-coding-system: nil default enable-multibyte-characters: t Major mode: Text Minor modes in effect: diff-auto-refine-mode: t shell-dirtrack-mode: t msb-mode: t server-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t blink-cursor-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: l C-x C-f M-p f i l s =20 C-s m o v e - f C-w C-w C-w C-s C-s C-s C-s=20 C-s C-l C-a C-SPC C-M-f C-f C-w C-o C-n C-n C-SPC C-M-f=20 C-f M-w C-o C-y C-x C-s M-` C-g M-x m a n =20 d i f f C-o C-v C-v C-v C-v C-v C-v C-v C-o=20 C-x C-j C-x 4 b f i ? l C-x C-j=20 C M-p M-b M-b M-b M-f - o r i g i n a l C-o=20 C-o g C-x M-p C-g C M-p C-g C-o g=20 p m m ! g d x y e s M-! i d f f =20 d i f f SPC - C=20 3 SPC C-x 9 r f i l e s - =20 SPC f i l e s . e C-o C-v C-v C-v C-o=20 p f C-x 1 C-s m o v e C-g C-s ( d e f u n SPC m o v=20 e C-a C-n C-f C-f C-f C-SPC C-n C-a C-w C-x C-s C-n=20 C-n C-n C-n C-n C-n C-n C-n C-n C-n C-e M-z " C-x C-s=20 C-x C-j C-x M-p p o C-s=20 C-s C-a C-n C-SPC C-n C-n C-n C-n C-n C-n C-n C-n C-n=20 C-n C-n C-n M-w C-o C-n f C-a C-p C-p C-p C-p C-p C-p=20 C-p C-p C-p C-p C-y C-M-k C-k C-x C-s C-o C-v C-o C-x=20 C-o C-v C-v C-x C-s C-g=20 C-x C-w f i l e s - d i f f . t x t M-x r=20 e p o r Recent messages: Saving file /Users/casper/Library/emacs/lisp/Files/files.el... Wrote /Users/casper/Library/emacs/lisp/Files/files.el Directory has changed on disk; type g to update Dired Mark saved where search started Mark set [2 times] Saving file /Users/casper/Library/emacs/lisp/Files/files.el... Wrote /Users/casper/Library/emacs/lisp/Files/files.el Quit Saving file /Users/casper/Library/emacs/lisp/Files/files-diff.txt... Wrote /Users/casper/Library/emacs/lisp/Files/files-diff.txt Load-path shadows: /Users/casper/Library/emacs/lisp/progmodes/Prolog/bruda/prolog hides /Appli= cations/Emacs.app/Contents/Resources/lisp/progmodes/prolog /Users/casper/Library/emacs/lisp/Modes/nxml-mode/xsd-regexp hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/xsd-regexp /Users/casper/Library/emacs/lisp/Modes/nxml-mode/xmltok hides /Applications= /Emacs.app/Contents/Resources/lisp/nxml/xmltok /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-xsd hides /Application= s/Emacs.app/Contents/Resources/lisp/nxml/rng-xsd /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-valid hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-valid /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-util hides /Applicatio= ns/Emacs.app/Contents/Resources/lisp/nxml/rng-util /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-uri hides /Application= s/Emacs.app/Contents/Resources/lisp/nxml/rng-uri /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-pttrn hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-pttrn /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-parse hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-parse /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-nxml hides /Applicatio= ns/Emacs.app/Contents/Resources/lisp/nxml/rng-nxml /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-match hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-match /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-maint hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-maint /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-loc hides /Application= s/Emacs.app/Contents/Resources/lisp/nxml/rng-loc /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-dt hides /Applications= /Emacs.app/Contents/Resources/lisp/nxml/rng-dt /Users/casper/Library/emacs/lisp/Modes/nxml-mode/rng-cmpct hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/rng-cmpct /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-util hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/nxml-util /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-uchnm hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-uchnm /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-rap hides /Applicatio= ns/Emacs.app/Contents/Resources/lisp/nxml/nxml-rap /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-parse hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-parse /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-outln hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-outln /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-ns hides /Application= s/Emacs.app/Contents/Resources/lisp/nxml/nxml-ns /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-mode hides /Applicati= ons/Emacs.app/Contents/Resources/lisp/nxml/nxml-mode /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-maint hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-maint /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-glyph hides /Applicat= ions/Emacs.app/Contents/Resources/lisp/nxml/nxml-glyph /Users/casper/Library/emacs/lisp/Modes/nxml-mode/nxml-enc hides /Applicatio= ns/Emacs.app/Contents/Resources/lisp/nxml/nxml-enc /Applications/Emacs.app/Contents/Resources/lisp/uniquify hides /Users/caspe= r/Library/emacs/lisp/Files/uniquify /Applications/Emacs.app/Contents/Resources/lisp/files hides /Users/casper/L= ibrary/emacs/lisp/Files/files /Users/casper/Library/emacs/lisp/slinks hides /Users/casper/Library/emacs/l= isp/Obsolete/slinks /Users/casper/Library/emacs/lisp/Modes/filladapt hides /Users/casper/Librar= y/emacs/lisp/Obsolete/filladapt /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/rx hides /Users/= casper/Library/emacs/lisp/Regexps/rx /Users/casper/Library/emacs/lisp/Files/temp2 hides /Users/casper/Library/em= acs/lisp/Scratch Work/temp2 /Users/casper/Library/emacs/lisp/TeX/one-sentence-regions hides /Users/casp= er/Library/emacs/lisp/Tweaks/one-sentence-regions /Users/casper/Library/emacs/lisp/aldor-hooks hides /Users/casper/Library/em= acs/lisp/progmodes/aldor-hooks /Users/casper/Library/emacs/lisp/Dired/dired-smart-view hides /Users/casper= /Library/emacs/lisp/Dired/in-progress/dired-smart-view /Users/casper/Library/emacs/lisp/Dired/dired-after-readin-overlay hides /Us= ers/casper/Library/emacs/lisp/Dired/in-progress/dired-after-readin-overlay /Users/casper/Library/emacs/lisp/Dired/dired-hide-dot-files hides /Users/ca= sper/Library/emacs/lisp/Dired/obsolete/dired-hide-dot-files /Applications/Emacs.app/Contents/Resources/lisp/textmodes/underline hides /= Users/casper/Library/emacs/lisp/Obsolete/junk-maybe/underline /Applications/Emacs.app/Contents/Resources/lisp/obsolete/resume hides /User= s/casper/Library/emacs/lisp/Obsolete/junk-maybe/resume /Users/casper/Library/emacs/lisp/Dired/dired-fix hides /Users/casper/Librar= y/emacs/lisp/Obsolete/junk-maybe/dired-fix /Users/casper/Library/emacs/lisp/Obsolete/junk-maybe/cmutex hides /Users/ca= sper/Library/emacs/lisp/Obsolete/old/cmutex /Users/casper/Library/emacs/lisp/Obsolete/junk-maybe/cmushell hides /Users/= casper/Library/emacs/lisp/Obsolete/old/cmushell /Users/casper/Library/emacs/lisp/progmodes/C/c-cut-region-to-file hides /Us= ers/casper/Library/emacs/lisp/progmodes/C++/c-cut-region-to-file /Users/casper/Library/emacs/lisp/progmodes/eiffel-mode hides /Users/casper/= Library/emacs/lisp/progmodes/Eiffel/eiffel-mode /Applications/Emacs.app/Contents/Resources/lisp/progmodes/ruby-mode hides /= Users/casper/Library/emacs/lisp/progmodes/Ruby/ruby-mode /Users/casper/Library/emacs/lisp/progmodes/C/c-cut-region-to-file hides /Us= ers/casper/Library/emacs/lisp/progmodes/c-common/c-cut-region-to-file /Applications/Emacs.app/Contents/Resources/lisp/cedet/pulse hides /Users/ca= sper/Library/emacs/lisp/progmodes/cedet-1.0/common/pulse /Applications/Emacs.app/Contents/Resources/lisp/cedet/mode-local hides /Use= rs/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/mode-local /Applications/Emacs.app/Contents/Resources/lisp/cedet/inversion hides /User= s/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/inversion /Applications/Emacs.app/Contents/Resources/lisp/ezimage hides /Users/casper= /Library/emacs/lisp/progmodes/cedet-1.0/common/ezimage /Applications/Emacs.app/Contents/Resources/lisp/cedet/data-debug hides /Use= rs/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/data-debug /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet hides /Users/ca= sper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet-idutils hides /= Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet-idutils /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet-global hides /U= sers/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet-global /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet-files hides /Us= ers/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet-files /Applications/Emacs.app/Contents/Resources/lisp/cedet/cedet-cscope hides /U= sers/casper/Library/emacs/lisp/progmodes/cedet-1.0/common/cedet-cscope /Applications/Emacs.app/Contents/Resources/lisp/cedet/ede hides /Users/casp= er/Library/emacs/lisp/progmodes/cedet-1.0/ede/ede /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio hides /Use= rs/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-speedbar h= ides /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-speed= bar /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-opt hides = /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-opt /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-datadebug = hides /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-data= debug /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-custom hid= es /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-custom /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-comp hides= /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-comp /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eieio-base hides= /Users/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/eieio-base /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/chart hides /Use= rs/casper/Library/emacs/lisp/progmodes/cedet-1.0/eieio/chart /Applications/Emacs.app/Contents/Resources/lisp/cedet/semantic hides /Users= /casper/Library/emacs/lisp/progmodes/cedet-1.0/semantic/semantic /Applications/Emacs.app/Contents/Resources/lisp/speedbar hides /Users/caspe= r/Library/emacs/lisp/progmodes/cedet-1.0/speedbar/speedbar /Applications/Emacs.app/Contents/Resources/lisp/sb-image hides /Users/caspe= r/Library/emacs/lisp/progmodes/cedet-1.0/speedbar/sb-image /Applications/Emacs.app/Contents/Resources/lisp/dframe hides /Users/casper/= Library/emacs/lisp/progmodes/cedet-1.0/speedbar/dframe /Applications/Emacs.app/Contents/Resources/lisp/cedet/srecode hides /Users/= casper/Library/emacs/lisp/progmodes/cedet-1.0/srecode/srecode Features: (shadow sort mail-extr message ecomplete rfc822 mml mml-sec password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc time-date mm-util mail-prsvr gmm-utils mailheader canlock sha1 hex-util hashcash mail-utils emacsbug tabify man assoc tmm electric jka-compr find-func vc-dispatcher vc-svn magit diff-mode log-edit easy-mmode pcvs-util add-log multi-isearch iso-transl find-dired dired-mac-open pico-server-done-function osx-osascript longlines mail-reply-mode derived ansi-color shell compile comint ring my-zap-to-char change-case rect dabbrev cc-def cc-common-def skeleton cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs arc-mode archive-mode dired-create-directory-fix wdired dired-up-directory-and-remove-buffer mule-util help-mode view dired-x dired-aux dired-mac-fix dired-follow-mac-link dired-delete-file-fix dired-fix dired regexp-opt eldoc file-mode-tools buff-menu-aux msb-fix msb cedet nxml-enc paren mic-paren diminish save-file-name-history cl cl-19 insert color-insert swap-volume rx customized-find-file dired-mac-init edmacro kmacro cus-edit wid-edit filladapt prolog sh-script executable uniquify advice help-fns advice-preload server cus-start cus-load tooltip ediff-hook vc-hooks lisp-float-type mwheel ns-win easymenu tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces cus-face files text-properties overlay md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process ns multi-tty emacs) ------------=_1332386463-14953-1--