Subject: 29.0.50; dired-do-compress assume tar files contain directories

From: Steingold <[email-masked]>
Date: Mon, 20 Dec 2021 11:36:19 -0500

emacs -Q
M-x dired RET
test/data/decompress RET
navigate to tg.tar.gz
Z (dired-do-compress)
answer yes

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (file-missing "Reading directory" "No such file or directory" "tg")
  access-file("tg" "Reading directory")
  #f(compiled-function (file switches &optional wildcard full-directory-p) "Insert directory listing for FILE, formatted according to SWITCHES.\nLeaves point after the inserted text.\nSWITCHES may be a string of options, or a list of strings\nrepresenting individual options.\nOptional third arg WILDCARD means treat FILE as shell wildcard.\nOptional fourth arg FULL-DIRECTORY-P means file is a directory and\nswitches do not contain `d', so that a full listing is expected.\n\nThis works by running a directory listing program\nwhose name is in the variable `insert-directory-program'.\nIf WILDCARD, it also runs the shell specified by `shell-file-name'.\n\nWhen SWITCHES contains the long `--dired' option, this function\ntreats it specially, for the sake of dired.  However, the\nnormally equivalent short `-D' option is just passed on to\n`insert-directory-program', as any other option." #<bytecode -0x82162a7030e6eee>)("tg" "-als -d" nil nil)
  ls-lisp--insert-directory(#f(compiled-function (file switches &optional wildcard full-directory-p) "Insert directory listing for FILE, formatted according to SWITCHES.\nLeaves point after the inserted text.\nSWITCHES may be a string of options, or a list of strings\nrepresenting individual options.\nOptional third arg WILDCARD means treat FILE as shell wildcard.\nOptional fourth arg FULL-DIRECTORY-P means file is a directory and\nswitches do not contain `d', so that a full listing is expected.\n\nThis works by running a directory listing program\nwhose name is in the variable `insert-directory-program'.\nIf WILDCARD, it also runs the shell specified by `shell-file-name'.\n\nWhen SWITCHES contains the long `--dired' option, this function\ntreats it specially, for the sake of dired.  However, the\nnormally equivalent short `-D' option is just passed on to\n`insert-directory-program', as any other option." #<bytecode -0x82162a7030e6eee>) "tg" "-als -d" nil nil)
  apply(ls-lisp--insert-directory #f(compiled-function (file switches &optional wildcard full-directory-p) "Insert directory listing for FILE, formatted according to SWITCHES.\nLeaves point after the inserted text.\nSWITCHES may be a string of options, or a list of strings\nrepresenting individual options.\nOptional third arg WILDCARD means treat FILE as shell wildcard.\nOptional fourth arg FULL-DIRECTORY-P means file is a directory and\nswitches do not contain `d', so that a full listing is expected.\n\nThis works by running a directory listing program\nwhose name is in the variable `insert-directory-program'.\nIf WILDCARD, it also runs the shell specified by `shell-file-name'.\n\nWhen SWITCHES contains the long `--dired' option, this function\ntreats it specially, for the sake of dired.  However, the\nnormally equivalent short `-D' option is just passed on to\n`insert-directory-program', as any other option." #<bytecode -0x82162a7030e6eee>) ("tg" "-als -d" nil nil))
  insert-directory("tg" "-als -d" nil nil)
  dired-insert-directory("/emacs-git-root/test/data/decompress/" "-als -d" ("tg"))
  dired-add-entry("/emacs-git-root/test/data/decompress/tg/" nil t)
  dired-update-file-line("/emacs-git-root/test/data/decompress/tg/")
  dired-compress()
  dired-map-over-marks-check(dired-compress nil compress t)
  dired-do-compress(nil)
  funcall-interactively(dired-do-compress nil)
  call-interactively(dired-do-compress nil nil)
  command-execute(dired-do-compress)
--8<---------------cut here---------------end--------------->8---

In GNU Emacs 29.0.50 (build 4, x86_64-apple-darwin20.6.0, NS appkit-2022.60 Version 11.6.2 (Build 20G314))
 of 2021-12-20 built on 3c22fb11fdab.ant.amazon.com
Repository revision: 92ffe44834b8f77ee3f4d37edfdb19f30a376869
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.6.2

Configured using:
 'configure --with-imagemagick --with-mailutils --with-ns
 PKG_CONFIG_PATH=/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/imagemagick/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:/usr/local/opt/jansson/lib/pkgconfig:/usr/local/opt/libtiff/lib/pkgconfig:/usr/local/opt/libpng/lib/pkgconfig:/usr/local/opt/libjpeg/lib/pkgconfig:/usr/local/opt/freetype/lib/pkgconfig'

Configured features:
ACL GIF GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY
KQUEUE NS PDUMPER PNG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP ZLIB

Important settings:
  value of $LANG: C
  locale-coding-system: utf-8-unix

-- 
Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.2022
http://childpsy.net http://calmchildstories.com http://steingoldpsychology.com
http://think-israel.org https://iris.org.il https://www.peaceandtolerance.org/
The difference between theory and practice is that in theory there isn't any.