GNU bug report logs -
#13831
24.3.50; [PATCH] net-utils-mode have no revert-buffer function
Previous Next
Full log
View this message in rfc822 format
Thierry Volpiatto <thierry.volpiatto <at> gmail.com> writes:
> Hello,
> net-utils-mode have no revert-buffer function.
> This patch allow using "g" in e.g "*netstat*" buffer.
diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el
index 28fd5c6..3a20add 100644
--- a/lisp/net/net-utils.el
+++ b/lisp/net/net-utils.el
@@ -1,3 +1,5 @@
+
+Process nil processus arrĂȘtĂ©
;;; net-utils.el --- network functions
;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
@@ -285,7 +287,10 @@ This variable is only used if the variable
(define-derived-mode net-utils-mode special-mode "NetworkUtil"
"Major mode for interacting with an external network utility."
(set (make-local-variable 'font-lock-defaults)
- '((net-utils-font-lock-keywords))))
+ '((net-utils-font-lock-keywords)))
+ (set (make-local-variable 'revert-buffer-function)
+ 'net-utils-revert-function)
+ (define-key net-utils-mode-map (kbd "g") 'revert-buffer))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Utility functions
@@ -354,14 +359,17 @@ This variable is only used if the variable
;; General network utilities (diagnostic)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defvar net-utils-program-name nil)
+(defvar net-utils-program-args nil)
(defun net-utils-run-simple (buffer-name program-name args)
"Run a network utility for diagnostic output only."
- (interactive)
(when (get-buffer buffer-name)
(kill-buffer buffer-name))
(get-buffer-create buffer-name)
(with-current-buffer buffer-name
(net-utils-mode)
+ (set (make-local-variable 'net-utils-program-name) program-name)
+ (set (make-local-variable 'net-utils-program-args) args)
(set-process-filter
(apply 'start-process (format "%s" program-name)
buffer-name program-name args)
@@ -369,6 +377,31 @@ This variable is only used if the variable
(goto-char (point-min)))
(display-buffer buffer-name))
+(defun net-utils-revert-function (&optional ignore-auto noconfirm)
+ (message "Reverting `%s'..." (buffer-name))
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (set-process-filter
+ (apply 'start-process (format "%s" net-utils-program-name)
+ (buffer-name) net-utils-program-name net-utils-program-args)
+ #'(lambda (process output-string)
+ (let ((filtered-string output-string))
+ (set-buffer (process-buffer process))
+ (let ((inhibit-read-only t))
+ (while (string-match "\r" filtered-string)
+ (setq filtered-string
+ (replace-match "" nil nil filtered-string)))
+ (save-excursion
+ ;; Insert the text, moving the process-marker.
+ (goto-char (process-mark process))
+ (insert filtered-string)
+ (set-marker (process-mark process) (point)))))))
+ (set-process-sentinel
+ (get-process net-utils-program-name)
+ #'(lambda (process event)
+ (when (string= event "finished\n")
+ (message "reverting `%s' done" (buffer-name)))))))
+
;;;###autoload
(defun ifconfig ()
"Run ifconfig and display diagnostic output."
@@ -428,9 +461,8 @@ This variable is only used if the variable
(if traceroute-program-options
(append traceroute-program-options (list target))
(list target))))
- (net-utils-run-program
+ (net-utils-run-simple
(concat "Traceroute" " " target)
- (concat "** Traceroute ** " traceroute-program " ** " target)
traceroute-program
options)))
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
This bug report was last modified 12 years and 68 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.