From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: [rob@giardina.us: dired-details merged into dired] Date: Sat, 21 Jul 2007 21:50:00 -0400 Message-ID: Reply-To: rms@gnu.org NNTP-Posting-Host: lo.gmane.org Content-Type: text/plain; charset=ISO-8859-15 X-Trace: sea.gmane.org 1185069066 19542 80.91.229.12 (22 Jul 2007 01:51:06 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 22 Jul 2007 01:51:06 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jul 22 03:51:05 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1ICQbA-0004z7-6i for ged-emacs-devel@m.gmane.org; Sun, 22 Jul 2007 03:51:04 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ICQb9-0006sD-6k for ged-emacs-devel@m.gmane.org; Sat, 21 Jul 2007 21:51:03 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ICQYr-00057i-19 for emacs-devel@gnu.org; Sat, 21 Jul 2007 21:48:41 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ICQYo-00056Y-3W for emacs-devel@gnu.org; Sat, 21 Jul 2007 21:48:40 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ICQYo-00056P-0E for emacs-devel@gnu.org; Sat, 21 Jul 2007 21:48:38 -0400 Original-Received: from fencepost.gnu.org ([140.186.70.10]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1ICQYn-0001i0-6j for emacs-devel@gnu.org; Sat, 21 Jul 2007 21:48:37 -0400 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.60) (envelope-from ) id 1ICQa8-00038t-CP; Sat, 21 Jul 2007 21:50:00 -0400 X-detected-kernel: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:75275 Archived-At: Please try this and study it, and report what you think. ------- Start of forwarded message ------- X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=failed version=3.1.0 DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:mime-version:to:message-id:content-type:from:subject:date:x-mailer:sender; b=PLaZpyhaw3kRiXmS4V/MYNkYNwJ20zPbz/bRlpuLnSNSZ3ZB/qowGzdvARE9slexMSSDuvo5OZfWXlE7F6BxK5uCtEhqeCs7puWOu89x3zPM3dWRNbL25UGdvhB99QFPJ9w+3dmEFaLPDBkFSlQSSz6/fsgyV/mQQbcZhMdyqbE= Mime-Version: 1.0 (Apple Message framework v752.3) To: rms@gnu.org Content-Type: multipart/mixed; boundary=Apple-Mail-2-477648397 From: Rob Giardina Subject: dired-details merged into dired Date: Fri, 20 Jul 2007 10:54:38 -0400 - --Apple-Mail-2-477648397 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed I think this is a complete merge of the dired-details changes into dired. I've slightly changed the behavior to be more robust in various corner cases of dired. Notable changes are: 1) dired-virtual now calls dired-after-readin-hook as it's last step. semantically this seems reasonable but perhaps there's a user of this hook somewhere out there who would be shocked. 2) there are three key mappings for this mode: '(' -> dired-details- hide, ')' -> dired-details-show, ';' -> dired-details-toggle. Three keys worth of real estate in the dired map may be too expensive -- I think it's nice to use ( and ) to hide and show but others wanted a toggle key. Aside from that, it's had a whole week of testing ! - -Rob - --Apple-Mail-2-477648397 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name=ChangeLog Content-Disposition: attachment; filename=ChangeLog 2007-07-15 Rob Giardina * dired.el: new functions to support hiding file details in dired. (dired-revert): delete cached overlay lists (dired-details): new customize group New customizable vars. (dired-details-hidden-string) (dired-details-hide-link-targets) (dired-details-initially-hide) New buffer local vars. (dired-details-internal-overlay-cache) (dired-details-state) New functions. (dired-details-activate) (dired-details-delete-overlays) (dired-details-toggle) (dired-details-hide) (dired-details-show) (dired-details-make-current-line-overlay) (dired-details-hide-overlay) (dired-details-show-overlay) (dired-details-frob-overlays) * dired-x.el (dired-virtual): run `dired-after-readin-hook' after restoring a saved dired buffer - --Apple-Mail-2-477648397 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name=dired-x.el.patch Content-Disposition: attachment; filename=dired-x.el.patch *** old/dired-x.el Sun Jul 15 21:25:37 2007 - --- new/dired-x.el Sun Jul 15 22:00:23 2007 *************** *** 755,761 **** (set (make-local-variable 'dired-subdir-alist) nil) (dired-build-subdir-alist) (goto-char (point-min)) ! (dired-initial-position dirname)) (defun dired-virtual-guess-dir () "Guess and return appropriate working directory of this buffer. - --- 755,762 ---- (set (make-local-variable 'dired-subdir-alist) nil) (dired-build-subdir-alist) (goto-char (point-min)) ! (dired-initial-position dirname) ! (run-hooks 'dired-after-readin-hook)) (defun dired-virtual-guess-dir () "Guess and return appropriate working directory of this buffer. - --Apple-Mail-2-477648397 Content-Transfer-Encoding: quoted-printable Content-Type: application/octet-stream; x-unix-mode=0644; name=dired.el.patch Content-Disposition: attachment; filename=dired.el.patch ***=20old/dired.el=09Sun=20Jul=2015=2015:42:33=202007=0A---=20= new/dired.el=09Sun=20Jul=2015=2021:19:44=202007=0A***************=0A***=20= 1042,1047=20****=0A---=201042,1048=20----=0A=20=20=20=20=20=20(goto-char=20= (point-min))=0A=20=20=20=20=20=20(setq=20mark-alist;;=20only=20after=20= dired-remember-hidden=20since=20this=20unhides:=0A=20=20=09=20=20= (dired-remember-marks=20(point-min)=20(point-max)))=0A+=20=20=20=20=20= (dired-details-delete-overlays)=20;;ditch=20the=20entire=20overlay=20= cache=0A=20=20=20=20=20=20;;=20treat=20top=20level=20dir=20extra=20(it=20= may=20contain=20wildcards)=0A=20=20=20=20=20=20(dired-uncache=0A=20=20=20= =20=20=20=20(if=20(consp=20dired-directory)=20(car=20dired-directory)=20= dired-directory))=0A***************=0A***=201242,1247=20****=0A---=20= 1243,1251=20----=0A=20=20=20=20=20=20(define-key=20map=20"\C-n"=20= 'dired-next-line)=0A=20=20=20=20=20=20(define-key=20map=20"\C-p"=20= 'dired-previous-line)=0A=20=20=20=20=20=20(define-key=20map=20[down]=20= 'dired-next-line)=0A+=20=20=20=20=20(define-key=20map=20"("=20= 'dired-details-hide)=0A+=20=20=20=20=20(define-key=20map=20")"=20= 'dired-details-show)=0A+=20=20=20=20=20(define-key=20map=20";"=20= 'dired-details-toggle)=0A=20=20=20=20=20=20(define-key=20map=20[up]=20= 'dired-previous-line)=0A=20=20=20=20=20=20;;=20hiding=0A=20=20=20=20=20=20= (define-key=20map=20"$"=20'dired-hide-subdir)=0A***************=0A***=20= 3334,3339=20****=0A---=203338,3508=20----=0A=20=20=09=20=20=20=20=20= '(dired-mode=20.=20dired-restore-desktop-buffer))=0A=20=20=0A=20=20=0C=0A= +=20;;;=20optionally=20hide=20file=20details=20and=20link=20targets=0A+=20= =0A+=20(defgroup=20dired-details=20nil=0A+=20=20=20"Settings=20for=20to=20= hide=20file=20details=20and=20symbolic=20link=20targets."=0A+=20=20=20= :group=20'dired=0A+=20=20=20:prefix=20"dired-details-")=0A+=20=0A+=20= (defcustom=20dired-details-hidden-string=20"[...]"=0A+=20=20=20"*This=20= string=20will=20be=20shown=20in=20place=20of=20file=20details=20and=20= symbolic=20links."=0A+=20=20=20:group=20'dired-details=0A+=20=20=20:type=20= 'string)=0A+=20=0A+=20(defcustom=20dired-details-hide-link-targets=20t=0A= +=20=20=20"*Hide=20symbolic=20link=20target=20paths."=0A+=20=20=20:group=20= 'dired-details=0A+=20=20=20:type=20'boolean)=0A+=20=0A+=20(defcustom=20= dired-details-initially-hide=20nil=0A+=20=20=20"*Hide=20dired=20details=20= on=20entry=20to=20dired=20buffers."=0A+=20=20=20:group=20'dired-details=0A= +=20=20=20:type=20'boolean)=0A+=20=0A+=20(defvar=20= dired-details-internal-overlay-cache=20nil)=0A+=20= (make-variable-buffer-local=20'dired-details-internal-overlay-cache)=0A+=20= =0A+=20(defvar=20dired-details-state=20nil=0A+=20=20=20"Three=20possible=20= values:=20nil=20(has=20not=20been=20set),=20'hidden=20(details=20are=0A+=20= hidden),=20'shown=20(details=20are=20visible).")=0A+=20= (make-variable-buffer-local=20'dired-details-state)=0A+=20=0A+=20(defun=20= dired-details-activate()=0A+=20=20=20"Set=20up=20dired-details=20in=20= the=20current=20dired=20buffer.=20Called=20by=0A+=20= dired-after-readin-hook=20on=20initial=20display=20and=20when=20a=20= dired=0A+=20buffer=20is=20modified.=20If=20the=20state=20of=20detail=20= display=20has=20been=20set=0A+=20in=20this=20buffer=20then=20use=20that=20= state,=20otherwise=20use=20the=20value=20of=0A+=20= `dired-details-initially-hide'."=0A+=20=20=20(if=20(eq=20'hidden=20= dired-details-state)=0A+=20=20=20=20=20=20=20(dired-details-hide)=0A+=20=20= =20=20=20=20=20(when=20dired-details-initially-hide=0A+=20=20=20=20=20=20= =20=20=20(dired-details-hide))))=0A+=20(add-hook=20= 'dired-after-readin-hook=20'dired-details-activate)=0A+=20=0A+=20(defun=20= dired-details-delete-overlays()=0A+=20=20=20(dolist=20(dir-and-overlays=20= dired-details-internal-overlay-cache)=0A+=20=20=20=20=20(dolist=20= (overlay=20(cdr=20dir-and-overlays))=0A+=20=20=20=20=20=20=20= (delete-overlay=20overlay)))=0A+=20=20=20(setq=20= dired-details-internal-overlay-cache=20nil))=0A+=20=0A+=20(defun=20= dired-details-toggle=20(&optional=20arg=20default-too)=0A+=20=20=20= "Toggle=20visibility=20of=20dired=20details.=0A+=20With=20positive=20= prefix=20argument=20ARG=20hide=20the=20details,=20with=20negative=0A+=20= show=20them."=0A+=20=20=20(interactive=20"P")=0A+=20=20=20(let=20((hide=20= (if=20(null=20arg)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(not=20(eq=20'hidden=20dired-details-state))=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(>=20(prefix-numeric-value=20arg)=200))))=0A= +=20=20=20=20=20(if=20default-too=0A+=20=20=20=20=20=20=20=20=20(setq=20= dired-details-initially-hide=20hide))=0A+=20=20=20=20=20(if=20hide=20= (dired-details-hide)=0A+=20=20=20=20=20=20=20(dired-details-show))))=0A+=20= =0A+=20(defun=20dired-details-hide()=0A+=20=20=20"Make=20an=20invisible,=20= evaporable=20overlay=20for=20each=20visible=20file=0A+=20details=20in=20= this=20dired=20buffer.=20This=20is=20called=20from=0A+=20= dired-after-readin-hook=20in=20different=20contexts:=20(1)=20narrowed=20= to=20a=0A+=20single=20file=20(after=20copy,=20move,=20symlink=20etc.)=20=20= (2)=20narrowed=20to=20a=0A+=20single=20subdir=20(e.g.=20after=20= dired-insert-subdir)=20(3)=20with=20multiple=0A+=20visible=20subdirs=20= and=20not=20narrowed=20(e.g.=20after=20dired-revert)"=0A+=20=20=20= (interactive)=0A+=20=20=20(unless=20(memq=20major-mode=20'(dired-mode=20= vc-dired-mode))=0A+=20=20=20=20=20(error=20"dired-details-hide=20can=20= only=20be=20called=20in=20dired=20mode"))=0A+=20=0A+=20=20=20= (save-excursion=0A+=20=20=20=20=20(goto-char=20(point-min))=0A+=20=20=20=20= =20(if=20(not=20(looking-at=20dired-subdir-regexp))=0A+=20=20=20=20=20=20= =20=20=20;;a=20single=20file=20or=20files=20--=20just=20make=20an=20= overlay=20for=20each=0A+=20=20=20=20=20=20=20=20=20(let*=20((parent=20= (dired-current-directory))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(cached-parent-overlays=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(assoc=20parent=20dired-details-internal-overlay-cache)))=0A+=20=20= =20=20=20=20=20=20=20=20=20(unless=20cached-parent-overlays=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20(error=20"dired-details=20overlays=20not=20= found=20for=20directory=20%s"=20parent))=0A+=20=20=20=20=20=20=20=20=20=20= =20(dired-goto-next-file)=0A+=20=20=20=20=20=20=20=20=20=20=20(while=20= (<=20(point)=20(point-max))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= (dired-details-make-current-line-overlay=20cached-parent-overlays)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20(dired-next-line=201)))=0A+=20=0A+=20= =20=20=20=20=20=20=20=20;;hide=20each=20visible=20subdirectory=20(either=20= of=20cases=20(2)=20or=20(3)=0A+=20=20=20=20=20=20=20=20=20;;mentioned=20= above)=0A+=20=20=20=20=20=20=20=20=20(dolist=20(dir-and-pos=20= dired-subdir-alist)=0A+=20=20=20=20=20=20=20=20=20=20=20(let*=20((dir=20= (car=20dir-and-pos))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(pos=20(cdr=20dir-and-pos))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(cached-overlays=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(assoc=20dir=20dired-details-internal-overlay-cache)))=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20;;skip=20this=20directory=20if=20= it's=20outside=20of=20a=20narrowed=20region=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20(when=20(and=20(>=3D=20pos=20(point-min))=20(<=3D=20pos=20= (point-max)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20= cached-overlays=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(dired-details-frob-overlays=20t)=20;;reuse=20existing=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let=20((cache=20(list=20= dir))=20;;make=20new=20overlays=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(subdir-start=20(let=20((rest=20= pos))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;xemacs=20= compat:=20in=20xemacs,=20this=20is=20a=20list=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(if=20(atom=20rest)=20rest=20(car=20rest))))=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (subdir-end=20(1-=20(dired-get-subdir-max=20dir-and-pos))))=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(goto-char=20= subdir-start)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(dired-goto-next-file)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(while=20(<=20(point)=20subdir-end)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;nb:=20uses=20= setcdr=20to=20update=20cache=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(dired-details-make-current-line-overlay=20= cache)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(dired-next-line=201))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(setq=20dired-details-internal-overlay-cache=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cons=20cache=20dired-details-internal-overlay-cache)))))))=0A+=20=20=20=20= =20=20=20=20=20(setq=20dired-details-state=20'hidden))))=0A+=20=20=20=20=20= =0A+=20(defun=20dired-details-show()=0A+=20=20=20"Show=20whatever=20= details=20a=20call=20to=20`dired-details-hide'=20may=20have=0A+=20hidden=20= in=20this=20buffer."=0A+=20=20=20(interactive)=0A+=20=20=20= (dired-details-frob-overlays=20nil)=0A+=20=20=20(setq=20= dired-details-state=20'shown))=0A+=20=0A+=20(defun=20= dired-details-make-current-line-overlay=20(cache)=0A+=20=20=20(let=20= ((detail-overlay=20;hide=20the=20flags,=20size,=20owner,=20date,=20etc.=0A= +=20=20=20=20=20=20=20=20=20=20(make-overlay=0A+=20=20=20=20=20=20=20=20=20= =20=20(+=202=20(progn=20(beginning-of-line)=20(point)))=0A+=20=20=20=20=20= =20=20=20=20=20=20(progn=20(dired-move-to-filename)(point))))=0A+=20=20=20= =20=20=20=20=20=20=20=0A+=20=20=20=20=20=20=20=20=20(ln-target=20;hide=20= the=20destination=20of=20a=20symbolic=20when=0A+=20=20=20=20=20=20=20=20=20= =20(when=20dired-details-hide-link-targets=0A+=20=20=20=20=20=20=20=20=20= =20=20=20(if=20(progn=20(beginning-of-line)=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(search-forward-regexp=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"->=20= \\(.*\\)"=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(save-excursion=20(end-of-line)(point))=20t))=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(make-overlay=20(match-beginning=20= 1)=20(match-end=201))))))=0A+=20=0A+=20=20=20=20=20;;delete=20the=20= overlay=20when=20the=20dired=20line=20goes=20away=0A+=20=20=20=20=20= (overlay-put=20detail-overlay=20'evaporate=20t)=0A+=20=20=20=20=20= (dired-details-hide-overlay=20detail-overlay)=0A+=20=0A+=20=20=20=20=20= (when=20ln-target=0A+=20=20=20=20=20=20=20(overlay-put=20ln-target=20= 'evaporate=20t)=0A+=20=20=20=20=20=20=20(dired-details-hide-overlay=20= ln-target))=0A+=20=0A+=20=20=20=20=20(setcdr=20cache=20(append=20(if=20= ln-target=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(list=20ln-target=20detail-overlay)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(list=20detail-overlay))=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(cdr=20cache)))=0A+=20=20=20= =20=20detail-overlay))=0A+=20=0A+=20(defun=20dired-details-hide-overlay=20= (o)=0A+=20=20=20(overlay-put=20o=20'invisible=20t)=0A+=20=20=20= (overlay-put=20o=20'before-string=20dired-details-hidden-string))=0A+=20=0A= +=20(defun=20dired-details-show-overlay=20(o)=0A+=20=20=20(overlay-put=20= o=20'invisible=20nil)=0A+=20=20=20(overlay-put=20o=20'before-string=20= ""))=0A+=20=0A+=20(defun=20dired-details-frob-overlays=20(hide)=0A+=20=20= =20(when=20dired-details-internal-overlay-cache=0A+=20=20=20=20=20(let=20= ((frobber=20(if=20hide=20'dired-details-hide-overlay=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= 'dired-details-show-overlay)))=0A+=20=20=20=20=20=20=20(dolist=20= (dir-and-overlays=20dired-details-internal-overlay-cache)=0A+=20=20=20=20= =20=20=20=20=20(dolist=20(overlay=20(cdr=20dir-and-overlays))=0A+=20=20=20= =20=20=20=20=20=20=20=20(funcall=20frobber=20overlay))))))=0A+=20=20=20=0A= +=20=0C=0A+=20=0A=20=20(if=20(eq=20system-type=20'vax-vms)=0A=20=20=20=20= =20=20(load=20"dired-vms"))=0A=20=20=0A= - --Apple-Mail-2-477648397 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name=dired.texi.patch Content-Disposition: attachment; filename=dired.texi.patch *** old/dired.texi Sun Jul 15 18:00:22 2007 - --- new/dired.texi Sun Jul 15 18:00:10 2007 *************** *** 41,46 **** - --- 41,47 ---- @end ifnottex * Subdirectory Motion:: Moving across subdirectories, and up and down. * Hiding Subdirectories:: Making subdirectories visible or invisible. + * Hiding File Details:: Making file attributes visible or invisible. * Updating: Dired Updating. Discarding lines for files of no interest. * Find: Dired and Find. Using `find' to choose the files for Dired. * Wdired:: Operating on files by editing the Dired buffer. *************** *** 1011,1016 **** - --- 1012,1056 ---- without having to remove the Dired marks on files in those subdirectories. + @node Hiding File Details + @section Hiding File Details + + @cindex hiding in Dired (Dired) + @dfn{Hiding} file details means making file attributes and symbolic + link targets invisible using overlays (@pxref{Overlays,,, elisp, the + Emacs Lisp Reference Manual}). This converts the dired display to a + terse list of filenames while continuing to support all normal dired + commands. + + @table @kbd + @item @kbd{;} + @findex dired-details-toggle + @kindex @kbd{;} @r{(Dired)} + Hide or reveal file details in the current Dired buffer. + + @item @kbd{(} + @findex dired-details-hide + @kindex @kbd{(} @r{(Dired)} + Hide file details in the current Dired buffer. + + @item @kbd{)} + @findex dired-details-hide + @kindex @kbd{)} @r{(Dired)} + Show file details in the current Dired buffer. + @end table + + You can customize @code{dired-details-hidden-string} to display any + string in place of hidden details and link targets (the default is + "[...]"). + + The option @code{dired-details-hide-link-targets} can be set to + @code{nil} to show link targets when details are hidden. The default is to + hide link targets. + + Currently, the dired-sort-* family of functions do not call + @code{dired-after-readin-hook} and thus will not hide details until + the next call to @code{dired-revert} (@kbd{g}). + @node Dired Updating @section Updating the Dired Buffer @cindex updating Dired buffer - --Apple-Mail-2-477648397-- ------- End of forwarded message -------