From 9c9afd5235782bd987dea12ab89fd91e661ec89e Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 14 Jun 2024 15:11:04 +0800 Subject: [PATCH] Unconditionally prefer built-in decompression functions on Android * lisp/jka-compr.el (jka-compr-insert-file-contents): Prefer built-in decompression functions (i.e., zlib) to external agents. --- lisp/jka-compr.el | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index 8e6d14cc290..0a14f0ab2b7 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el @@ -402,15 +402,22 @@ There should be no more than seven characters after the final `/'." (setq buffer-file-name filename)) (unwind-protect ; to make sure local-copy gets deleted - (progn - (and uncompress-message jka-compr-verbose (message "%s %s..." uncompress-message base-name)) - - (if (and (not (executable-find uncompress-program)) + (if (and (or (not (executable-find uncompress-program)) + ;; Android ships a bespoke version of gzip + ;; that is absolutely useless for Emacs's + ;; purposes, not supporting decompression or + ;; reading input from elsewhere than stdin. + ;; + ;; This is only true of early releases of the + ;; OS, but, since zlib is always available on + ;; Android, simply unconditionally prefer the + ;; built-in decompression function. + (eq system-type 'android)) uncompress-function (fboundp uncompress-function)) ;; If we don't have the uncompression program, then use the