summaryrefslogtreecommitdiff
path: root/lisp/doc-view.el
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2023-09-08 16:12:12 +0800
committerPo Lu <luangruo@yahoo.com>2023-09-08 16:12:12 +0800
commit237cadf2468e04deefcc69887981b7e144dfb206 (patch)
treef70dff5251fd4c0903bf6867c0b7915e50e93034 /lisp/doc-view.el
parent46249f6139d1ea9aeb856febeffe2e4bac912e06 (diff)
downloademacs-237cadf2468e04deefcc69887981b7e144dfb206.tar.gz
Properly detect content files in Doc View
* lisp/doc-view.el (doc-view-mode): Detect if file name starts with /content or /assets, and don't regard it as available to subprocesses in that case.
Diffstat (limited to 'lisp/doc-view.el')
-rw-r--r--lisp/doc-view.el11
1 files changed, 9 insertions, 2 deletions
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index e25e63a97ee..b856b09c8b7 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -2238,8 +2238,15 @@ toggle between displaying the document or editing it as text.
;; 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))))
+ (or (not (and buffer-file-name
+ (file-readable-p buffer-file-name)))
+ ;; If the system is Android and the file name
+ ;; begins with /content or /assets, it's not
+ ;; readable by local processes.
+ (and (eq system-type 'android)
+ (string-match-p "/\\(content\\|assets\\)[/$]"
+ (expand-file-name
+ buffer-file-name)))))
;; FIXME: there's a risk of name conflicts here.
(expand-file-name
(if buffer-file-name