From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Morgan Smith Newsgroups: gmane.emacs.bugs Subject: bug#64516: [PATCH] docview: Only enable imenu when supported Date: Sat, 15 Jul 2023 19:50:52 -0400 Message-ID: References: <83lefqdatb.fsf@gnu.org> <878rbpxybj.fsf@gnu.org> <83ttu5d2h4.fsf@gnu.org> <87jzv1c8vg.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27025"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Eli Zaretskii , 64516@debbugs.gnu.org, jao@gnu.org To: Tassilo Horn Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jul 16 01:52:26 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qKp3p-0006lH-5w for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 16 Jul 2023 01:52:26 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qKp3T-00044f-QI; Sat, 15 Jul 2023 19:52:03 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qKp3S-00044P-5w for bug-gnu-emacs@gnu.org; Sat, 15 Jul 2023 19:52:02 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qKp3R-0004jO-U6 for bug-gnu-emacs@gnu.org; Sat, 15 Jul 2023 19:52:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qKp3R-0002UF-Pz for bug-gnu-emacs@gnu.org; Sat, 15 Jul 2023 19:52:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Morgan Smith Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 15 Jul 2023 23:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64516 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 64516-submit@debbugs.gnu.org id=B64516.16894650689499 (code B ref 64516); Sat, 15 Jul 2023 23:52:01 +0000 Original-Received: (at 64516) by debbugs.gnu.org; 15 Jul 2023 23:51:08 +0000 Original-Received: from localhost ([127.0.0.1]:46267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qKp2Z-0002T8-W4 for submit@debbugs.gnu.org; Sat, 15 Jul 2023 19:51:08 -0400 Original-Received: from mail-mw2nam12olkn2105.outbound.protection.outlook.com ([40.92.23.105]:42959 helo=NAM12-MW2-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qKp2T-0002SX-Vm for 64516@debbugs.gnu.org; Sat, 15 Jul 2023 19:51:06 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c50VIBT9uZHQOmA0fi+zTDKRM/mrRpSwdS17hkz7BtosT4fwWtf/5rDPKtIIMTbkLjZQqVfQCjIicqLYHYe0Gw7kMYuVvQ2YMW80XiNlS26XzexeK1TpWasDAcN+CuT9kIc/WvaE8a0OEEeipB4udlbvzlrEIC2ZvrCiwU8Xkgc++YxXPGx+HRHgImYQwrLUuCAd1hV0epfzENX7gfmunbNEdIiCr2NnD6lqs5T5N/gHqK+QZbGwoTaW2dnwJRjNZEDtXt83i/KOe5x8a0YhAIpumde5afrcJ38EVHn0cJRGnkYwafw2l1S5CKdpmWr1nBj8YRpNRfReb7aBZkS0BA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WsjF7HlONlG9uSVdTIohZvpAj4q1Lmq9zKrs4yN+E2w=; b=LS44+gasQlwGOH4HXj9yScq+fDme95Pi3zJGu6ggjZ0QB1Sx1izWxnZ0n70+pIRiVRYwlMlRSm3IiXWIfU82r5M2mOHdtfFwkew5UBn/44DH+AvLFGmYE/ZJquALE+X25QMWVpxd94o8Sqzk4T6hZ6sQkH2ITgm7P35805kYbeNfOnmeZeUn1u/ppGlr6vnu1au6zLdxnBClY0rE2JiFqP4Q8t3cuJYV7kOcRXtqzpk+ZwBl5F0FIW71ueWBiUMjeSPeNux8irBPyjTyJQVGPpew6OFo4QZpd2r8Xg3MtMOVgGsgUwUqBY2djxb9YKUeT5cy7r5Ep8KuwEmKGC8ISQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WsjF7HlONlG9uSVdTIohZvpAj4q1Lmq9zKrs4yN+E2w=; b=RTL3deeXUbg3zwSGsDMQ73/qLpaROskWP6l8fCgGvvQtWmDDyn3fvdvCF8kIYO7Bx9AuwqXGmRT50Coq/IZAPSCsYesQP46dkk2ioW8ay6GAf4J1B1OXfNg4Vm/1bSBOo26QT+QG5n9DFnJs4500lUS++Vhjc4Rku8uufwiNK2kZuSENw6huG+8lnwrGXwPFtikk01+3Drb8W1emopvWENDG6k8hn4k5zAtop0Aks3dFgPPjvOhgAa+ObUK/kexBSsJaNWuPQFJJiKdI6/Pskmf/2OXb01B1uRakpXL19k5y67nfsgEWa+yeOmPpO0eu+Dm/P0rw2lsVG27qz4VP+g== Original-Received: from DM5PR03MB3163.namprd03.prod.outlook.com (2603:10b6:4:40::24) by BY5PR03MB5079.namprd03.prod.outlook.com (2603:10b6:a03:1f2::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.31; Sat, 15 Jul 2023 23:50:55 +0000 Original-Received: from DM5PR03MB3163.namprd03.prod.outlook.com ([fe80::6d7:a135:f84c:a7b8]) by DM5PR03MB3163.namprd03.prod.outlook.com ([fe80::6d7:a135:f84c:a7b8%6]) with mapi id 15.20.6588.028; Sat, 15 Jul 2023 23:50:54 +0000 In-Reply-To: <87jzv1c8vg.fsf@gnu.org> (Tassilo Horn's message of "Sat, 15 Jul 2023 14:44:49 -0400") X-Hashcash: 1:20:230715:jao@gnu.org::bcUV0MDbJpBQ5z3E:H5ht X-Hashcash: 1:20:230715:64516@debbugs.gnu.org::zqW5rCPevzJvFLH3:0COw X-Hashcash: 1:20:230715:eliz@gnu.org::2FRWKptV1muFi5RC:1J5k X-Hashcash: 1:20:230715:tsdh@gnu.org::XDQsqD8jAeutYlRX:noO X-TMN: [gV5SxJ4Co2HNbQR0Pn3gOCvgyUFlGjPs] X-ClientProxiedBy: YT4PR01CA0139.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d5::6) To DM5PR03MB3163.namprd03.prod.outlook.com (2603:10b6:4:40::24) X-Microsoft-Original-Message-ID: <87wmz020pv.fsf@outlook.com> X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR03MB3163:EE_|BY5PR03MB5079:EE_ X-MS-Office365-Filtering-Correlation-Id: d51abd38-bd66-4483-a539-08db858e5402 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uUIvP1M3bbthIo+D0OI84xPkhkVECnbMGbLKGsM1V2BPxgZ5Oj4MhGWiKs/ozTHFlaH4V1xQb9PMObygTOf9BkimagW6TCKOshh2Uhgv6jWpExJqGN92KsoO5VmFZc13vpoGJdhzHbAErmlgDCUUGDuUBFZFXjow+/XAJq60wyF6HsxJ36XC2qvDWU8GSyKKO14EPFCSx/xtGKJPnPxjv432lqS5o4ltMjUuyjUoobZxjpd2mG/P51UEGV1ERqtgaR9YQC3VkQRTCNnTy0/saO6CtU5+pGdpnC3tautq1K/x+PexVpcC1ltmyJVHxII/Bqy2aMR0+baehMKx4UeGOQQFNeN6K5mUcfKE7B+rLnnvRZs3PiepyToKP02E983HQIou2PthtzuI2sm2zKVGCurcBq73KilGqwPMgoao1W4FVAdB6AdGyw80ay0eXLrOVGQR9Yk1uS2vAVdFJsZFv5GmyAbQI98cgTNkVIBmKMChfwGBZieT1gHWHNYXQ0jgT9dm7biu8zeSI/FYquRgH0bB2Z66UdJTRT2XQVcIll4VfYywsYNZ3wzqmtxtVlB6 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: P4oiREc0LssNG+Mr8iudq7OYhEW1BZvCN460VmsrOlPIXwUT/JlorZOlFTJzpcoKrJRZsiInt3PrRbh6KFzrqR/wzXiar3oscL7bnvK778jdGsj5ke+wiilgQspi+MMdRAr2XnSwj913unaRzk7lNJpsG1dEorHMuAHF0CP1DZeMeeWzfH3561jNoNJQl0YSemAuaNWRODhU66cejSd59qLuF/yoMKm6nvDF0rMmvhcNzlfB80zY3VEUo2IayaMIB5P5HBTDSYtAZ6UGW0MhmpmpGJxAYS5LyXaRmppsUv9cvhGLGeMVnTM9tRtBWZeIsca81Hnls9hR50ZpR6Eh5wwcd0yVuFiEjgpG1GFnJE4Hl9+UZ76hRZQg/1jYIInD8WjvftUrfmqD31Idm8e1YLlD6pPkV60Ay2VuZwApYZ738vf0sCr3CuG+R/xxJFBzsI95Frlh5soeBd1hXvJNEOSab5D0wz7+9y4QMpg1PU73kvZZfsdGU4TpXSgneJCoyj+TeftRI2c6zW2vk0447isnc0suVPuMuT152OEISWGNix+6Apj+RVO2XT4NeMUoOxJhDTk2Ns7O6fu+nJspO45QHGWGN34wBh3JUMMSV5nWw+R+bt20ZkhurtqfuTj3E4bx+OFexWspR5SPHnhJ2i78nmN2fB16Obw+bKTSPEwJU/jE8ODiFaZsbAbPxZ0j1J4fhl+ZfBTuQOPVUaiG3OZX38nMYYhn6c0UxNkFEUNS+kexZ2SOTEgJ9Q 8leThO3P4N4NOnnCKhw8vHXYeJZ5v79nu70DwQbg/rZpZPnGGtaVHs0IebPDO4t/BfA0nAzg/wi1hxtsB0BIzJ5ldUmCuRBB7Q X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d51abd38-bd66-4483-a539-08db858e5402 X-MS-Exchange-CrossTenant-AuthSource: DM5PR03MB3163.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2023 23:50:54.8450 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5079 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:265257 Archived-At: --=-=-= Content-Type: text/plain Tassilo Horn writes: > > Yes, almost. I'd rather handle the error rather putting the setup > function in a hook and let the error hit top-level and flash the screen. > I've made the requested change. Please see attached. Thank you, Morgan --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-docview-imenu-check-return-value-of-mutool.patch >From 7de1362395597d2d7210dc78dcdb104071d758ab Mon Sep 17 00:00:00 2001 From: Morgan Smith Date: Tue, 11 Jul 2023 14:08:24 -0400 Subject: [PATCH] docview: imenu: check return value of 'mutool' While 'mutool' supports many filetypes, 'mutool show' only supports PDF files. This would lead to cryptic imenu errors when opening other file types (like EPUB) since we would parse the error output. During my testing this caused 'imenu--index-alist' to have a value of '(nil). * lisp/doc-view.el (doc-view--pdf-outline): Error when 'mutool' returns an error. Use 'call-process' to get the return value and remove the call to 'shell-quote-argument' as 'call-process' doesn't want any escapes. (doc-view-mode): Ignore imenu-unavailable errors when calling 'doc-view-imenu-setup'. --- lisp/doc-view.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lisp/doc-view.el b/lisp/doc-view.el index b14655fb274..7d604a7bc86 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -147,6 +147,8 @@ (require 'filenotify) (eval-when-compile (require 'subr-x)) +(autoload 'imenu-unavailable-error "imenu") + ;;;; Customization Options (defgroup doc-view nil @@ -1910,9 +1912,10 @@ doc-view--pdf-outline (let ((fn (or file-name (buffer-file-name)))) (when fn (let ((outline nil) - (fn (shell-quote-argument (expand-file-name fn)))) + (fn (expand-file-name fn))) (with-temp-buffer - (insert (shell-command-to-string (format "mutool show %s outline" fn))) + (unless (= 0 (call-process "mutool" nil (current-buffer) nil "show" fn "outline")) + (imenu-unavailable-error "Unable to create imenu index using `mutool'")) (goto-char (point-min)) (while (re-search-forward doc-view--outline-rx nil t) (push `((level . ,(length (match-string 1))) @@ -2236,7 +2239,7 @@ doc-view-mode (setq mode-name "DocView" buffer-read-only t major-mode 'doc-view-mode) - (doc-view-imenu-setup) + (ignore-error imenu-unavailable (doc-view-imenu-setup)) (doc-view-initiate-display) ;; Switch off view-mode explicitly, because doc-view-mode is the ;; canonical view mode for PDF/PS/DVI files. This could be -- 2.41.0 --=-=-=--