Fix BSD battery mode over TRAMP (bug#58307)
* lisp/battery.el (battery--call-process-to-string): Simple wrapper to `call-process' that outputs to a string. (battery-bsd-apm): Use it instead of `shell-command-to-string' (bug#58307).
This commit is contained in:
parent
e24f276f8a
commit
07b2e9b909
1 changed files with 15 additions and 3 deletions
|
@ -914,6 +914,15 @@ The following %-sequences are provided:
|
|||
|
||||
;;; `apm' interface for BSD.
|
||||
|
||||
;; This function is a wrapper on `call-process' that return the
|
||||
;; standard output in a string. We are using it instead
|
||||
;; `shell-command-to-string' because this last one is trying to run
|
||||
;; PROGRAM on the remote host if the buffer is remote.
|
||||
(defun battery--call-process-to-string (program &rest args)
|
||||
(with-output-to-string
|
||||
(with-current-buffer standard-output
|
||||
(apply #'call-process program nil t nil args))))
|
||||
|
||||
(defun battery-bsd-apm ()
|
||||
"Get APM status information from BSD apm binary.
|
||||
The following %-sequences are provided:
|
||||
|
@ -929,13 +938,16 @@ The following %-sequences are provided:
|
|||
%t Remaining time (to charge or discharge) in the form `h:min'"
|
||||
(let* ((os-name (car (split-string
|
||||
;; FIXME: Can't we use something like `system-type'?
|
||||
(shell-command-to-string "/usr/bin/uname"))))
|
||||
(battery--call-process-to-string
|
||||
(executable-find "uname")))))
|
||||
(apm-flag (pcase os-name
|
||||
("OpenBSD" "mP")
|
||||
("FreeBSD" "st")
|
||||
(_ "ms")))
|
||||
(apm-cmd (concat "/usr/sbin/apm -abl" apm-flag))
|
||||
(apm-output (split-string (shell-command-to-string apm-cmd)))
|
||||
(apm-args (concat "-abl" apm-flag))
|
||||
(apm-output (split-string
|
||||
(battery--call-process-to-string
|
||||
(executable-find "apm") apm-args)))
|
||||
(indices (pcase os-name
|
||||
;; FreeBSD's manpage documents that multiple
|
||||
;; outputs are ordered by "the order in which
|
||||
|
|
Loading…
Add table
Reference in a new issue