GNU bug report logs - #13831
24.3.50; [PATCH] net-utils-mode have no revert-buffer function

Previous Next

Package: emacs;

Reported by: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>

Date: Wed, 27 Feb 2013 09:33:02 UTC

Severity: wishlist

Tags: patch

Found in version 24.3.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#13831: 24.3.50;
	[PATCH] net-utils-mode have no revert-buffer function
Date: Wed, 27 Feb 2013 10:48:50 +0100
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 69 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.