From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Jordan Wilson Newsgroups: gmane.emacs.bugs Subject: bug#32989: 26.1; Opening PDF attachments in Gnus with doc-view-mode causes error on Windows Date: Wed, 10 Oct 2018 11:45:57 +0100 Message-ID: <877eiqhyfu.fsf@gmx.com> References: <87y3b8xztk.fsf@gmx.com> <83pnwkyzon.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1539168312 9800 195.159.176.226 (10 Oct 2018 10:45:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 10 Oct 2018 10:45:12 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (windows-nt) Cc: 32989@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 10 12:45:08 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gABzE-0002LT-Ik for geb-bug-gnu-emacs@m.gmane.org; Wed, 10 Oct 2018 12:45:04 +0200 Original-Received: from localhost ([::1]:56481 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAC1L-00059z-1H for geb-bug-gnu-emacs@m.gmane.org; Wed, 10 Oct 2018 06:47:15 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47774) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAC1D-00059m-0c for bug-gnu-emacs@gnu.org; Wed, 10 Oct 2018 06:47:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAC19-0005QI-02 for bug-gnu-emacs@gnu.org; Wed, 10 Oct 2018 06:47:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:38686) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gAC18-0005Pl-RT for bug-gnu-emacs@gnu.org; Wed, 10 Oct 2018 06:47:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gAC18-0005Wo-Dv for bug-gnu-emacs@gnu.org; Wed, 10 Oct 2018 06:47:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jordan Wilson Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 10 Oct 2018 10:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32989 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 32989-submit@debbugs.gnu.org id=B32989.153916836518676 (code B ref 32989); Wed, 10 Oct 2018 10:47:02 +0000 Original-Received: (at 32989) by debbugs.gnu.org; 10 Oct 2018 10:46:05 +0000 Original-Received: from localhost ([127.0.0.1]:42944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gAC0D-0004qn-20 for submit@debbugs.gnu.org; Wed, 10 Oct 2018 06:46:05 -0400 Original-Received: from mout.gmx.net ([212.227.17.20]:35935) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gAC0B-0004k2-0z for 32989@debbugs.gnu.org; Wed, 10 Oct 2018 06:46:03 -0400 Original-Received: from A715-WIN ([31.205.37.19]) by mail.gmx.com (mrgmx102 [212.227.17.174]) with ESMTPSA (Nemesis) id 0MWhRH-1gCbtP0RT9-00XwNW; Wed, 10 Oct 2018 12:45:56 +0200 Original-Received: from A715-WIN ([31.205.37.19]) by mail.gmx.com (mrgmx102 [212.227.17.174]) with ESMTPSA (Nemesis) id 0MWhRH-1gCbtP0RT9-00XwNW; Wed, 10 Oct 2018 12:45:56 +0200 In-Reply-To: <83pnwkyzon.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 08 Oct 2018 23:02:32 +0300") X-Provags-ID: V03:K1:wne82qo5/MqwrWAfD/1Or0summxPM5kXfk1EvHHZCO9IPRIxGA/ ZwtomUnI32iVpiucPp6ZqL0B5j6ajx/nPr9Noq9rHjs2y7xcYBF5ndou/24lbWMxuNhKW1g DaT6fZdzS9iErsQZSdmmJ90CxfHzRxGOyDIdR6hrfaPVJhfL3yoHSYOo0h+w+HNvggRwiMv xV9ABb47t6iEC9Hb/+v0w== X-UI-Out-Filterresults: notjunk:1;V01:K0:omJFAoZGlI4=:tC3OklnfaAjC6sgHSmi8Mt UXhcj76j4HtmMXJ1WPO8CfKcLwoRjoGnXU9D31csF1Pg/o1O6+26SZk7kuJ2dWvG9sR0DVGdv qLrmPi9tQ4fuOUYwYre2nZRcuQSXPdGXzTiYet/FHQIfoRHbFPuVUmkMwwq2THQ8EVpPHUH3Y 9/stWAYKHt9jHC6SfnA5Hat9d/GjmEawZyirYX4jotYAoLDx9oT+L1uSOuoEbUwdjj96+oj2S DZNPQ5/2tDDW6uFilPIOB1Z02DHzFLOtWwyFXGoIL3YkyIM5imgUskJ39JgwNsxcNfvhWXj7z 4XOnrxdx/3EAYeRg8ClUHSnJP+fMX+C/hvEPVruugoEGDrWPhN9gHm0WtuGU4FXDRrGsyZt/b YY2oW/7JYWtcPy34fGHJ4OL0k+/FAK8G+vzOBz3VSYzvESTv8di7qJ0XdoUwaveKy0v4bziFf HW6nUUh8w8EkTaBpG/PZaydQM5B1hmijbITJlpbHU4duZSyh3lLfQIdGqDa3MSg0y9BcrneNx u3Cv/65f86j7f8RWHZerqvUCCUgnL67qMCEt3KcRQcsmE983PpK2NPSa2/g9kYVyBaVt8HWR3 AoS3MtnbhFTvw2aqWVerjlG/4kb/10GeYpaGWvxomP3yGT5ZyPDc+xW+5O9eH3mO0ZVdD8NjE MsPxwh1wQrFwLnRMtZhJoFeQek0FML76t4cWWLBS0Dj0YNJJ3Ob3Ps4Y1EZkUbDjwJbU6DEL/ cjyrL+gtJ0XbAk+pFSjZkSlaqQKIyrIMjPSN04TNg/QbSwVRCdXV3F2oCGO4XZQZqbmwdZZX X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:151071 Archived-At: --=-=-= Content-Type: text/plain On 2018-10-08 (Mon) at 23:02 (ZZZ), Eli Zaretskii wrote: >> From: Jordan Wilson >> Date: Mon, 08 Oct 2018 15:44:55 +0100 >> >> File error: "Opening output file", "Invalid argument", "c:/Users/Jordan/Emacs/.cache/docview-cache/ *mm*-012345" >> >> this leaves a buffer showing the file literally. If I rename that buffer >> to something not containing an asterisk, it displays fine when running >> "doc-view-mode". Windows apparently can't handle asterisks in >> directory/file names. > > Windows doesn't allow '*' (and a few other characters) in any file > name, not just in directory name. Gnus should run the file name > through convert-standard-filename to get something that is guaranteed > to work on any filesystem. Looking, it seems to be on doc-view's side -- if a buffer isn't associated with a file, it uses the buffer name for the file's cache directory. Here's a patch to the 26 and trunk branches of doc-view.el to run the file names through `convert-standard-filename'. It fixes the problem for me, at least. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=doc-view-26.diff --- doc-view-26.el 2018-10-09 16:27:18.890549900 +0100 +++ doc-view-26-2.el 2018-10-09 16:29:04.122599100 +0100 @@ -1772,27 +1772,28 @@ (doc-view-make-safe-dir doc-view-cache-directory) ;; Handle compressed files, remote files, files inside archives (setq-local doc-view--buffer-file-name - (cond - (jka-compr-really-do-compress - ;; FIXME: there's a risk of name conflicts here. - (expand-file-name - (file-name-nondirectory - (file-name-sans-extension buffer-file-name)) - doc-view-cache-directory)) - ;; Is the file readable by local processes? - ;; We used to use `file-remote-p' but it's unclear what it's - ;; supposed to return nil for things like local files accessed - ;; via `su' or via file://... - ((let ((file-name-handler-alist nil)) - (not (and buffer-file-name - (file-readable-p buffer-file-name)))) - ;; FIXME: there's a risk of name conflicts here. - (expand-file-name - (if buffer-file-name - (file-name-nondirectory buffer-file-name) - (buffer-name)) - doc-view-cache-directory)) - (t buffer-file-name))) + (convert-standard-filename + (cond + (jka-compr-really-do-compress + ;; FIXME: there's a risk of name conflicts here. + (expand-file-name + (file-name-nondirectory + (file-name-sans-extension buffer-file-name)) + doc-view-cache-directory)) + ;; Is the file readable by local processes? + ;; We used to use `file-remote-p' but it's unclear what it's + ;; supposed to return nil for things like local files accessed + ;; via `su' or via file://... + ((let ((file-name-handler-alist nil)) + (not (and buffer-file-name + (file-readable-p buffer-file-name)))) + ;; FIXME: there's a risk of name conflicts here. + (expand-file-name + (if buffer-file-name + (file-name-nondirectory buffer-file-name) + (buffer-name)) + doc-view-cache-directory)) + (t buffer-file-name)))) (when (not (string= doc-view--buffer-file-name buffer-file-name)) (write-region nil nil doc-view--buffer-file-name)) --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=doc-view-trunk.diff --- doc-view-trunk.el 2018-10-09 16:31:48.000000000 +0100 +++ doc-view-trunk-2.el 2018-10-09 16:31:31.502299800 +0100 @@ -1764,27 +1764,28 @@ (doc-view-make-safe-dir doc-view-cache-directory) ;; Handle compressed files, remote files, files inside archives (setq-local doc-view--buffer-file-name - (cond - (jka-compr-really-do-compress - ;; FIXME: there's a risk of name conflicts here. - (expand-file-name - (file-name-nondirectory - (file-name-sans-extension buffer-file-name)) - doc-view-cache-directory)) - ;; Is the file readable by local processes? - ;; We used to use `file-remote-p' but it's unclear what it's - ;; supposed to return nil for things like local files accessed - ;; via `su' or via file://... - ((let ((file-name-handler-alist nil)) - (not (and buffer-file-name - (file-readable-p buffer-file-name)))) - ;; FIXME: there's a risk of name conflicts here. - (expand-file-name - (if buffer-file-name - (file-name-nondirectory buffer-file-name) - (buffer-name)) - doc-view-cache-directory)) - (t buffer-file-name))) + (convert-standard-filename + (cond + (jka-compr-really-do-compress + ;; FIXME: there's a risk of name conflicts here. + (expand-file-name + (file-name-nondirectory + (file-name-sans-extension buffer-file-name)) + doc-view-cache-directory)) + ;; Is the file readable by local processes? + ;; We used to use `file-remote-p' but it's unclear what it's + ;; supposed to return nil for things like local files accessed + ;; via `su' or via file://... + ((let ((file-name-handler-alist nil)) + (not (and buffer-file-name + (file-readable-p buffer-file-name)))) + ;; FIXME: there's a risk of name conflicts here. + (expand-file-name + (if buffer-file-name + (file-name-nondirectory buffer-file-name) + (buffer-name)) + doc-view-cache-directory)) + (t buffer-file-name)))) (when (not (string= doc-view--buffer-file-name buffer-file-name)) (write-region nil nil doc-view--buffer-file-name)) --=-=-= Content-Type: text/plain -- Jordan Wilson Sent from Gnus v5.13, GNU Emacs 26.1 --=-=-=--