mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-07 08:00:48 -08:00
(proced-auto-update-interval): Renamed from proced-timer-interval.
(proced-auto-update-flag): Renamed from proced-timer-flag. (proced-auto-update-timer): Renamed from proced-timer. (proced-toggle-auto-update): Renamed from proced-toggle-timer-flag. (proced-available): Initialize appropriately.
This commit is contained in:
parent
2f298da2f2
commit
413e65fe7e
1 changed files with 40 additions and 26 deletions
|
|
@ -33,6 +33,19 @@
|
|||
;;
|
||||
;; Wishlist
|
||||
;; - tree view like pstree(1)
|
||||
;;
|
||||
;; Thoughts and Ideas
|
||||
;; - Currently, `system-process-attributes' returns the list of
|
||||
;; command-line arguments of a process as one concatenated string.
|
||||
;; This format is compatible with `shell-command'. Also, under
|
||||
;; MS-Windows, the command-line arguments are actually stored as a
|
||||
;; single string, so that it is impossible to reverse-engineer it back
|
||||
;; into separate arguments. Alternatively, `system-process-attributes'
|
||||
;; could (try to) return a list of strings that correspond to individual
|
||||
;; command-line arguments. Then one could feed such a list of
|
||||
;; command-line arguments into `call-process' or `start-process'.
|
||||
;; Are there real-world applications when such a feature would be useful?
|
||||
;; What about something like `proced-restart-pid'?
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
@ -291,17 +304,17 @@ of `proced-grammar-alist'."
|
|||
:type '(choice (const :tag "none" nil)
|
||||
(symbol :tag "key")))
|
||||
|
||||
(defcustom proced-timer-interval 5
|
||||
(defcustom proced-auto-update-interval 5
|
||||
"Time interval in seconds for auto updating Proced buffers."
|
||||
:group 'proced
|
||||
:type 'integer)
|
||||
|
||||
(defcustom proced-timer-flag nil
|
||||
(defcustom proced-auto-update-flag nil
|
||||
"Non-nil for auto update of a Proced buffer.
|
||||
Can be changed interactively via `proced-toggle-timer-flag'."
|
||||
Can be changed interactively via `proced-toggle-auto-update'."
|
||||
:group 'proced
|
||||
:type 'boolean)
|
||||
(make-variable-buffer-local 'proced-timer-flag)
|
||||
(make-variable-buffer-local 'proced-auto-update-flag)
|
||||
|
||||
;; Internal variables
|
||||
|
||||
|
|
@ -350,8 +363,8 @@ Important: the match ends just after the marker.")
|
|||
(defvar proced-process-tree nil
|
||||
"Process tree of listing (internal variable).")
|
||||
|
||||
(defvar proced-timer nil
|
||||
"Stores if Proced timer is already installed.")
|
||||
(defvar proced-auto-update-timer nil
|
||||
"Stores if Proced auto update timer is already installed.")
|
||||
|
||||
(defvar proced-log-buffer "*Proced log*"
|
||||
"Name of Proced Log buffer.")
|
||||
|
|
@ -481,9 +494,9 @@ Important: the match ends just after the marker.")
|
|||
"--"
|
||||
["Revert" revert-buffer
|
||||
:help "Revert Process Listing"]
|
||||
["Auto Update" proced-toggle-timer-flag
|
||||
["Auto Update" proced-toggle-auto-update
|
||||
:style radio
|
||||
:selected (eval proced-timer-flag)
|
||||
:selected (eval proced-auto-update-flag)
|
||||
:help "Auto Update of Proced Buffer"]
|
||||
["Send signal" proced-send-signal
|
||||
:help "Send Signal to Marked Processes"]))
|
||||
|
|
@ -570,16 +583,17 @@ are defined in `proced-grammar-alist'.
|
|||
(set (make-local-variable 'revert-buffer-function) 'proced-revert)
|
||||
(set (make-local-variable 'font-lock-defaults)
|
||||
'(proced-font-lock-keywords t nil nil beginning-of-line))
|
||||
(if (and (not proced-timer) proced-timer-interval)
|
||||
(setq proced-timer
|
||||
(run-at-time t proced-timer-interval 'proced-timer))))
|
||||
|
||||
(defvar proced-available nil
|
||||
"Non-nil means Proced is known to work on this system.")
|
||||
(if (and (not proced-auto-update-timer) proced-auto-update-interval)
|
||||
(setq proced-auto-update-timer
|
||||
(run-at-time t proced-auto-update-interval
|
||||
'proced-auto-update-timer))))
|
||||
|
||||
;; Proced mode is suitable only for specially formatted data.
|
||||
(put 'proced-mode 'mode-class 'special)
|
||||
|
||||
(defvar proced-available (not (null (list-system-processes)))
|
||||
"Non-nil means Proced is known to work on this system.")
|
||||
|
||||
;;;###autoload
|
||||
(defun proced (&optional arg)
|
||||
"Generate a listing of UNIX system processes.
|
||||
|
|
@ -588,9 +602,8 @@ information will be displayed but not selected.
|
|||
|
||||
See `proced-mode' for a description of features available in Proced buffers."
|
||||
(interactive "P")
|
||||
(or proced-available
|
||||
(setq proced-available (not (null (list-system-processes))))
|
||||
(error "Proced is not available on this system"))
|
||||
(unless proced-available
|
||||
(error "Proced is not available on this system"))
|
||||
(let ((buffer (get-buffer-create "*Proced*")) new)
|
||||
(set-buffer buffer)
|
||||
(setq new (zerop (buffer-size)))
|
||||
|
|
@ -604,25 +617,26 @@ See `proced-mode' for a description of features available in Proced buffers."
|
|||
(substitute-command-keys
|
||||
"Type \\<proced-mode-map>\\[quit-window] to quit, \\[proced-help] for help")))))
|
||||
|
||||
(defun proced-timer ()
|
||||
(defun proced-auto-update-timer ()
|
||||
"Auto-update Proced buffers using `run-at-time'."
|
||||
(dolist (buf (buffer-list))
|
||||
(with-current-buffer buf
|
||||
(if (and (eq major-mode 'proced-mode)
|
||||
proced-timer-flag)
|
||||
proced-auto-update-flag)
|
||||
(proced-update t t)))))
|
||||
|
||||
(defun proced-toggle-timer-flag (arg)
|
||||
(defun proced-toggle-auto-update (arg)
|
||||
"Change whether this Proced buffer is updated automatically.
|
||||
With prefix ARG, update this buffer automatically if ARG is positive,
|
||||
otherwise do not update. Sets the variable `proced-timer-flag'.
|
||||
The time interval for updates is specified via `proced-timer-interval'."
|
||||
otherwise do not update. Sets the variable `proced-auto-update-flag'.
|
||||
The time interval for updates is specified via `proced-auto-update-interval'."
|
||||
(interactive (list (or current-prefix-arg 'toggle)))
|
||||
(setq proced-timer-flag
|
||||
(cond ((eq arg 'toggle) (not proced-timer-flag))
|
||||
(setq proced-auto-update-flag
|
||||
(cond ((eq arg 'toggle) (not proced-auto-update-flag))
|
||||
(arg (> (prefix-numeric-value arg) 0))
|
||||
(t (not proced-timer-flag))))
|
||||
(message "`proced-timer-flag' set to %s" proced-timer-flag))
|
||||
(t (not proced-auto-update-flag))))
|
||||
(message "Proced auto update %s"
|
||||
(if proced-auto-update-flag "enabled" "disabled")))
|
||||
|
||||
(defun proced-mark (&optional count)
|
||||
"Mark the current (or next COUNT) processes."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue