Subject: 26.1.90; NEWS entry for dired 'Z' is inaccurate

From: Mike Kupfer <[email-masked]>
Date: Tue, 20 Nov 2018 19:39:05 -0800

The 26.1.90 NEWS file has this (new) entry for Dired:

  *** The 'Z' command on a directory name compresses all of its files.
  It produces a compressed '.tar.gz' archive with all the files in the
  directory and all of its subdirectories.  For symmetry, 'Z' on a
  '.tar.gz' or a '.tgz' archive extracts all the archived files into a
  directory whose name is the archive name sans the '.tar.gz' or '.tgz'
  extension.  (This change was actually made in Emacs 26.1, but was not
  called out in its NEWS.)

The description of the unpacking case implies that the user will see the
described behavior for any .tar.gz or .tgz file.  In reality, 'Z' simply
unpacks the archive.  The described behavior only happens if the archive
is structured in a canonical way, e.g., if 'Z' was used to create the
.tar.gz file.

The wording should be changed, so as not to mislead the user about what
'Z' does.  A user who misunderstands what 'Z' does could lose data due
to unanticipated overwrite when the archive is unpacked.  (Note that the
docstring for dired-do-compress says nothing about creating or unpacking
archive files.)

Also, and less important, I got the impression from the discussion on
emacs-devel that this feature was partially introduced in Emacs 25.
Wasn't the change in 26.1 just to make .tar.gz and .tgz behave the same?
I'm not sure it's worth trying to be that precise in the NEWS entry, but
I thought I'd mention it.

regards,
mike

In GNU Emacs 26.1.90 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw scroll bars)
 of 2018-11-19 built on alto
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description:	Debian GNU/Linux 9.6 (stretch)

Recent messages:
Saving file /home/kupfer/.newsrc.eld...
Wrote /home/kupfer/.newsrc.eld
Saving /home/kupfer/.newsrc.eld...done
fetchmail: background fetchmail at 2089 awakened.
Scanning +inbox...done
No messages in +inbox, range (all)
setting password recognizer
Please type y or n: y
View mode: type <help> for help, h for commands, q to quit.
Mark saved where search started

Configured using:
 'configure --prefix=/usr/local'

Configured features:
XPM JPEG TIFF GIF PNG SOUND NOTIFY GNUTLS LIBXML2 FREETYPE LIBOTF XFT
ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM THREADS

Important settings:
  value of $LC_TIME: C
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: MH-Folder

Minor modes in effect:
  hl-line-mode: t
  shell-dirtrack-mode: t
  delete-selection-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow mh-identity mh-letter mh-comp emacsbug gnus-dup vc-hg mh-thread
org-rmail org-mhe org-irc org-info org-gnus nnir org-docview doc-view
jka-compr image-mode org-bibtex bibtex org-bbdb org-w3m org-element
avl-tree generator org org-macro org-footnote org-pcomplete org-list
org-faces org-entities org-version ob-emacs-lisp ob ob-tangle org-src
ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval
org-compat org-macs org-loaddefs find-func cal-menu calendar
cal-loaddefs map dired-x view pp misearch multi-isearch sort flow-fill
gnus-bcklg gnus-async gnus-kill cl-extra help-mode gnus-ml disp-table
utf-7 rfc2104 url-http url-gw url-cache url-auth url-handlers nndoc
nnrss mm-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf nndraft nnmh network-stream nsm
starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
nntp gnus-cache mh-alias crm shr-color color url-util url-parse url-vars
qp shr svg xml dom browse-url mm-archive mail-extr mh-mime mh-gnus
mh-show goto-addr thingatpt gnus-cite gnus-art mm-uu mml2015 mm-view
mml-smime smime dig mailcap gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc nnoo
parse-time gnus-spec gnus-int gnus-win gnus-range gnus nnheader wid-edit
mh-inc hl-line mh-tool-bar mh-seq mh-xface mh-utils mh-folder which-func
imenu mh-scan mh-e mh-compat mh-buffers mh-loaddefs mdk-mail smtpmail
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs sendmail
message rmc puny seq gv dired dired-loaddefs format-spec rfc822 mml
mml-sec password-cache epa derived epg epg-config gnus-util rmail
rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils
mailheader elec-pair server noutline outline easy-mmode cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
byte-opt bytecomp byte-compile cconv shell pcomplete comint ansi-color
ring xcscope easymenu advice delsel vc cl-loaddefs cl-lib vc-dispatcher
timeclock mdk-hacks time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads inotify dynamic-setting font-render-setting x-toolkit
x multi-tty make-network-process emacs)

Memory information:
((conses 16 404282 45579)
 (symbols 48 43548 3)
 (miscs 40 632 1235)
 (strings 32 108061 13428)
 (string-bytes 1 3445889)
 (vectors 16 42901)
 (vector-slots 8 945970 54386)
 (floats 8 496 693)
 (intervals 56 19850 1284)
 (buffers 992 46))