From 13dfab3fb2dc9ded4609434c37e6559c05b38c90 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 5 Jun 2020 15:57:15 +0200 Subject: [PATCH] ox-texinfo: Tiny refactoring * lisp/ox-texinfo.el (org-texinfo-link): Use `org-texinfo--sanitize-content'. (cherry picked from commit 8fd24c0a539531023be2e5d1df6b2438be8f78ba) [km]: This fixes a double-escaping regression introduced by 706970efb (ox-texinfo.el: Fix escaping special chars in raw-path, 2020-06-05). --- lisp/ox-texinfo.el | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/lisp/ox-texinfo.el b/lisp/ox-texinfo.el index f39a39dbb..f5fae3970 100644 --- a/lisp/ox-texinfo.el +++ b/lisp/ox-texinfo.el @@ -1046,17 +1046,16 @@ DESC is the description part of the link, or the empty string. INFO is a plist holding contextual information. See `org-export-data'." (let* ((type (org-element-property :type link)) - (raw-path - (replace-regexp-in-string - "[@{}]" "@\\&" - (org-element-property :path link))) + (raw-path (org-element-property :path link)) ;; Ensure DESC really exists, or set it to nil. (desc (and (not (string= desc "")) desc)) - (path (cond - ((member type '("http" "https" "ftp")) - (concat type ":" raw-path)) - ((string= type "file") (org-export-file-uri raw-path)) - (t raw-path)))) + (path (org-texinfo--sanitize-content + (cond + ((member type '("http" "https" "ftp")) + (concat type ":" raw-path)) + ((string-equal type "file") + (org-export-file-uri raw-path)) + (t raw-path))))) (cond ((org-export-custom-protocol-maybe link desc 'texinfo)) ((org-export-inline-image-p link org-texinfo-inline-image-rules) @@ -1072,8 +1071,7 @@ INFO is a plist holding contextual information. See (org-export-resolve-id-link link info)))) (pcase (org-element-type destination) (`nil - (format org-texinfo-link-with-unknown-path-format - (org-texinfo--sanitize-content path))) + (format org-texinfo-link-with-unknown-path-format path)) ;; Id link points to an external file. (`plain-text (if desc (format "@uref{file://%s,%s}" destination desc) @@ -1091,8 +1089,7 @@ INFO is a plist holding contextual information. See (_ (org-texinfo--@ref destination desc info))))) ((string= type "mailto") (format "@email{%s}" - (concat (org-texinfo--sanitize-content path) - (and desc (concat ", " desc))))) + (concat path (and desc (concat ", " desc))))) ;; External link with a description part. ((and path desc) (format "@uref{%s, %s}" path desc)) ;; External link without a description part.