Subject: bug#74616: 30.0.92; tmm always displays the *Completions* buffer

From: Juri Linkov <[email-masked]>
Date: Sun, 15 Dec 2024 09:44:00 +0200

> Thanks for finding this. The problem was that `initial-input' was passed
> directly to `completion-metadata'. I replaced `initial-input' with `(or
> initial-input "")'. See the updated patch attached to this mail.

It seems this change caused another regression: 'ffap' on a file name
fails with the error:

Debugger entered--Lisp error: (wrong-type-argument stringp ("/tmp/file" . 6))
  completion--embedded-envvar-table(("/tmp/file" . 6) file-exists-p metadata)
  complete-with-action(metadata completion--embedded-envvar-table ("/tmp/file" . 6) file-exists-p)
  read-file-name-internal(("/tmp/file" . 6) file-exists-p metadata)
  completion-metadata(("/tmp/file" . 6) read-file-name-internal file-exists-p)
  minibuffer-setup()
  completing-read-default("Find file or URL: " read-file-name-internal file-exists-p nil ("/tmp/file" . 5) file-name-history "/tmp/file" nil)
  read-file-name-default("Find file or URL: " "/tmp/" nil nil "file" nil)
  read-file-name("Find file or URL: " "/tmp/" nil nil "file")
  ffap-read-file-or-url("Find file or URL: " "./file")
  ffap-prompter()
  ffap()
  funcall-interactively(ffap)
  command-execute(ffap record)
  execute-extended-command(nil "ffap" "ffap")
  funcall-interactively(execute-extended-command nil "ffap" "ffap")
  command-execute(execute-extended-command)