From 3da7ba70ea2c6f2d9c25acd4a770a3e31b9dea3a Mon Sep 17 00:00:00 2001 From: Tomas Fabrizio Orsi Date: Sat, 8 Jun 2024 12:11:18 -0300 Subject: [PATCH] ping can now receive a prefix argument ping will check for a prefix argument. If given, the user will be prompted for flags to pass to ping. * etc/NEWS: Document the change * lisp/net/net-utils.el (ping): Copyright-paperwork-exempt: yes Signed-off-by: Tomas Fabrizio Orsi --- etc/NEWS | 2 ++ lisp/net/net-utils.el | 31 ++++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index d6a8fa7..74f7ed4 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1907,6 +1907,8 @@ The following new XML schemas are now supported: - Nuget packages config file ** color.el now supports the Oklab color representation. +** Netutils +*** 'ping' can now receive a prefix argument for additional options * New Modes and Packages in Emacs 30.1 diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el index 83842cd..fe68054 100644 --- a/lisp/net/net-utils.el +++ b/lisp/net/net-utils.el @@ -425,22 +425,35 @@ This variable is only used if the variable options))) ;;;###autoload -(defun ping (host) - "Ping HOST. -If your system's ping continues until interrupted, you can try setting -`ping-program-options'." +(defun ping (host &optional flags) + "Ping HOST using `ping-program'. + +The user option `ping-program-options' is passed as flags to +`ping-program'. With a \\[universal-argument] prefix arg, prompt the +user for the flags to pass. + +When called from Lisp, the optional argument FLAGS, if non-nil, is a +list of strings that will be passed as flags for the `ping-program'. If +FLAGS is nil, `ping-program-options' will be used. + +If your system's ping continues until interrupted, you can try using a +prefix argument or setting `ping-program-options'." (interactive (list (let ((default (ffap-machine-at-point))) - (read-string (format-prompt "Ping host" default) nil nil default)))) - (let ((options - (if ping-program-options + (read-string (format-prompt "Ping host" default) nil nil default)) + (when current-prefix-arg + (split-string + (read-string (format-prompt "Ping options" ping-program-options) + nil nil ping-program-options))))) + (let ((full-command + (if (or (equal flags (list "")) (not flags)) (append ping-program-options (list host)) - (list host)))) + (append flags (list host))))) (net-utils-run-program (concat "Ping" " " host) (concat "** Ping ** " ping-program " ** " host) ping-program - options))) + full-command))) ;;;###autoload (defun nslookup-host (host &optional name-server) -- 2.44.2