git: 82f36772565d - main - net/pload: Fix command-line args and unit display.

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Mon, 16 Jan 2023 17:34:02 UTC
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=82f36772565dc3bcf17661df5ac8360c85fe426c

commit 82f36772565dc3bcf17661df5ac8360c85fe426c
Author:     J.R. Oldroyd <fbsd@opal.com>
AuthorDate: 2023-01-16 16:56:29 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2023-01-16 17:33:55 +0000

    net/pload: Fix command-line args and unit display.
    
    This patch updates the port to fix the fact that the code calls
    XtAppInitialize() which eats the command-line args and so causes ps(1)
    to not display them. The command-line args are now saved before and restored
    after the call to XtAppInitialize().
    
    Also, correct the display of the units of total byte counts to show as "B",
    "kB", "GB" etc, rather than the imprecise/incorrect "b", "k", "G" etc.
    
    PR:             267710
    Approved by:    J.R. Oldroyd (maintainer)
---
 net/pload/Makefile                                 |   2 +-
 net/pload/files/patch-Imakefile                    |  31 ++---
 .../{patch-ioctl_stats.c => patch-ioctl__stat.c}   |  10 +-
 net/pload/files/patch-pload.c                      | 147 +++++++++++----------
 net/pload/files/patch-pload.man                    |   8 +-
 5 files changed, 95 insertions(+), 103 deletions(-)

diff --git a/net/pload/Makefile b/net/pload/Makefile
index 31de8211bf6f..6aab9b94341c 100644
--- a/net/pload/Makefile
+++ b/net/pload/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	pload
 PORTVERSION=	0.9.5
-PORTREVISION=	4
+PORTREVISION=	5
 CATEGORIES=	net sysutils
 MASTER_SITES=	http://opal.com/src/pload/ LOCAL/pav
 
diff --git a/net/pload/files/patch-Imakefile b/net/pload/files/patch-Imakefile
index ae8cc75f98c7..09a8cdabf97c 100644
--- a/net/pload/files/patch-Imakefile
+++ b/net/pload/files/patch-Imakefile
@@ -1,20 +1,11 @@
-diff -c Imakefile.orig Imakefile
-*** Imakefile.orig	Tue Feb  1 02:11:24 2000
---- Imakefile	Tue Aug  3 10:02:12 2004
-***************
-*** 15,21 ****
-  
-  ComplexProgramTarget(pload)
-  
-! distclean: clean	
-  	$(RM) Makefile osdefs.mk core \
-  	pload-$(VER).tar.gz \
-  	pload-$(VER)-1.i386.rpm \
---- 15,21 ----
-  
-  ComplexProgramTarget(pload)
-  
-! distclean:: clean	
-  	$(RM) Makefile osdefs.mk core \
-  	pload-$(VER).tar.gz \
-  	pload-$(VER)-1.i386.rpm \
+--- Imakefile.orig	2000-02-01 07:11:24 UTC
++++ Imakefile
+@@ -15,7 +15,7 @@ DEFINES = -DVERSION="\"Pload version $(VER)\"" $(OSDEF
+ 
+ ComplexProgramTarget(pload)
+ 
+-distclean: clean	
++distclean:: clean	
+ 	$(RM) Makefile osdefs.mk core \
+ 	pload-$(VER).tar.gz \
+ 	pload-$(VER)-1.i386.rpm \
diff --git a/net/pload/files/patch-ioctl_stats.c b/net/pload/files/patch-ioctl__stat.c
similarity index 91%
rename from net/pload/files/patch-ioctl_stats.c
rename to net/pload/files/patch-ioctl__stat.c
index 83962721b2c9..ad980130e51a 100644
--- a/net/pload/files/patch-ioctl_stats.c
+++ b/net/pload/files/patch-ioctl__stat.c
@@ -1,5 +1,5 @@
---- ioctl_stat.c.orig	2000-02-01 02:11:24.000000000 -0500
-+++ ioctl_stat.c	2009-06-15 15:30:03.000000000 -0400
+--- ioctl_stat.c.orig	2000-02-01 07:11:24 UTC
++++ ioctl_stat.c
 @@ -30,6 +30,12 @@
  #include <fcntl.h>		/* open */
  #include <sys/ioctl.h>		/* ioctl */
@@ -26,7 +26,7 @@
  #	endif	/* linux && __GLIBC__ < 2 */
  #else	/* STREAMS */			/* Solaris, SunOS, OSF/1, SVR4 */
  #	include <net/ppp_defs.h>
-@@ -61,8 +69,18 @@
+@@ -61,8 +69,18 @@ void getsocket(if_data *ifd)
  void ioctl_stat(if_data *ifd)
  {
  	struct ifreq ifr;
@@ -46,7 +46,7 @@
  	if (!ifd->s) getsocket(ifd);
  	
  	memset(&ifr, 0, sizeof(ifr));
-@@ -76,7 +94,9 @@
+@@ -76,7 +94,9 @@ void ioctl_stat(if_data *ifd)
  		return;
  	}
  	
@@ -56,7 +56,7 @@
  
  #ifdef linux
  	req.stats_ptr = (caddr_t) &req.stats;
-@@ -84,18 +104,36 @@
+@@ -84,18 +104,36 @@ void ioctl_stat(if_data *ifd)
  #define ifr_name ifr__name
  #endif	
  
diff --git a/net/pload/files/patch-pload.c b/net/pload/files/patch-pload.c
index 0fb88df906b1..9c6c17263337 100644
--- a/net/pload/files/patch-pload.c
+++ b/net/pload/files/patch-pload.c
@@ -1,73 +1,74 @@
-diff -c pload.c.orig pload.c
-*** pload.c.orig	Tue Feb  1 02:11:24 2000
---- pload.c	Wed Sep 22 13:13:46 2004
-***************
-*** 596,608 ****
-  void do_total(char *b, double total)
-  {
-  	if (total < 1024.0)
-! 		sprintf(b, "%s%0.0f b", b, total);
-  	else if (total < (1024.0*1024.0))
-! 		sprintf(b, "%s%0.2f k", b, total/1024.0);
-  	else if (total < (1024.0*1024.0*1024.0))
-! 		sprintf(b, "%s%0.2f M", b, total/1024.0/1024.0);
-  	else
-! 		sprintf(b, "%s%0.2f G", b, total/1024.0/1024.0/1024.0);
-  	
-  	return;
-  }
---- 596,608 ----
-  void do_total(char *b, double total)
-  {
-  	if (total < 1024.0)
-! 		sprintf(b, "%s%0.0f B", b, total);
-  	else if (total < (1024.0*1024.0))
-! 		sprintf(b, "%s%0.2f kB", b, total/1024.0);
-  	else if (total < (1024.0*1024.0*1024.0))
-! 		sprintf(b, "%s%0.2f MB", b, total/1024.0/1024.0);
-  	else
-! 		sprintf(b, "%s%0.2f GB", b, total/1024.0/1024.0/1024.0);
-  	
-  	return;
-  }
-***************
-*** 610,622 ****
-  void do_rate(char *b, double rate)
-  {
-  	if (rate < 1024.0)
-! 		sprintf(b, "%s%0.0f b/s",b, rate);
-  	else if (rate < (1024.0*1024.0))
-! 		sprintf(b, "%s%0.2f k/s",b, rate/1024.0);
-  	else if (rate < (1024.0*1024.0*1024.0))
-! 		sprintf(b, "%s%0.2f M/s",b, rate/1024.0/1024.0);
-  	else
-! 		sprintf(b, "%s%0.2f G/s", b, rate/1024.0/1024.0/1024.0);
-  	return;
-  }
-  
---- 610,622 ----
-  void do_rate(char *b, double rate)
-  {
-  	if (rate < 1024.0)
-! 		sprintf(b, "%s%0.0f B/s",b, rate);
-  	else if (rate < (1024.0*1024.0))
-! 		sprintf(b, "%s%0.2f kB/s",b, rate/1024.0);
-  	else if (rate < (1024.0*1024.0*1024.0))
-! 		sprintf(b, "%s%0.2f MB/s",b, rate/1024.0/1024.0);
-  	else
-! 		sprintf(b, "%s%0.2f GB/s", b, rate/1024.0/1024.0/1024.0);
-  	return;
-  }
-  
-***************
-*** 643,648 ****
---- 643,651 ----
-  					break;
-  				case 'M':
-  					do_rate(buff, max);
-+ 					break;
-+ 				case 'd':
-+ 					sprintf(buff, "%s", resources.device);
-  					break;
-  				case '%':	/* literal % */
-  					i = strlen(buff);
+--- pload.c.orig	2000-02-01 07:11:24 UTC
++++ pload.c
+@@ -285,6 +285,13 @@ static XtResource pload_resources[] = {
+ /************* Main () ******************/
+ int main (int argc, char *argv[])
+ {
++	char *orig_argv[64];
++	int i;
++
++	/* save original argv pointers */
++	for(i = 0; argv[i]; i++)
++		orig_argv[i] = argv[i];
++
+ 	Progname = argv[0];
+ 	
+ 	toplevel = XtAppInitialize (
+@@ -301,6 +308,11 @@ int main (int argc, char *argv[])
+ 	   and exit */	
+ 	if (argc != 1) Usage();
+ 	
++	/* XtAppInitialize() eats the arguments, so restore original
++	   argv so that ps(1) shows the command line */
++	for(i = 0; orig_argv[i]; i++)
++		argv[i] = orig_argv[i];
++
+ 	XtGetApplicationResources(
+ 		toplevel,			/* widget */
+ 		(XtPointer) &resources, 	/* where to put */
+@@ -596,27 +608,26 @@ void CheckForWMExit(	Widget w, 
+ void do_total(char *b, double total)
+ {
+ 	if (total < 1024.0)
+-		sprintf(b, "%s%0.0f b", b, total);
++		sprintf(b, "%s%0.0f B", b, total);
+ 	else if (total < (1024.0*1024.0))
+-		sprintf(b, "%s%0.2f k", b, total/1024.0);
++		sprintf(b, "%s%0.2f kiB", b, total/1024.0);
+ 	else if (total < (1024.0*1024.0*1024.0))
+-		sprintf(b, "%s%0.2f M", b, total/1024.0/1024.0);
++		sprintf(b, "%s%0.2f MiB", b, total/1024.0/1024.0);
+ 	else
+-		sprintf(b, "%s%0.2f G", b, total/1024.0/1024.0/1024.0);
+-	
++		sprintf(b, "%s%0.2f GiB", b, total/1024.0/1024.0/1024.0);
+ 	return;
+ }
+ 
+ void do_rate(char *b, double rate)
+ {
+ 	if (rate < 1024.0)
+-		sprintf(b, "%s%0.0f b/s",b, rate);
++		sprintf(b, "%s%0.0f B/s",b, rate);
+ 	else if (rate < (1024.0*1024.0))
+-		sprintf(b, "%s%0.2f k/s",b, rate/1024.0);
++		sprintf(b, "%s%0.2f kiB/s",b, rate/1024.0);
+ 	else if (rate < (1024.0*1024.0*1024.0))
+-		sprintf(b, "%s%0.2f M/s",b, rate/1024.0/1024.0);
++		sprintf(b, "%s%0.2f MiB/s",b, rate/1024.0/1024.0);
+ 	else
+-		sprintf(b, "%s%0.2f G/s", b, rate/1024.0/1024.0/1024.0);
++		sprintf(b, "%s%0.2f GiB/s", b, rate/1024.0/1024.0/1024.0);
+ 	return;
+ }
+ 
+@@ -643,6 +654,9 @@ void make_label(char *fmt, unsigned long total, double
+ 					break;
+ 				case 'M':
+ 					do_rate(buff, max);
++					break;
++				case 'd':
++					strcat(buff, resources.device);
+ 					break;
+ 				case '%':	/* literal % */
+ 					i = strlen(buff);
diff --git a/net/pload/files/patch-pload.man b/net/pload/files/patch-pload.man
index 61c502ef5e87..c943c6ca8bc1 100644
--- a/net/pload/files/patch-pload.man
+++ b/net/pload/files/patch-pload.man
@@ -1,5 +1,5 @@
---- pload.man.orig	Tue Feb  1 02:11:24 2000
-+++ pload.man	Wed Sep 22 16:44:12 2004
+--- pload.man.orig	2000-02-01 07:11:24 UTC
++++ pload.man
 @@ -18,7 +18,7 @@
  .TH PLOAD 1 "" "January 2000"
  
@@ -9,7 +9,7 @@
  
  .SH SYNOPSIS
  .ta 6n
-@@ -30,9 +30,9 @@
+@@ -30,9 +30,9 @@ pload \- display ppp throughput statistics in an X win
  [-iformat \fIfmt\fP] [-oformat \fIfmt\fP] 
  
  .SH DESCRIPTION
@@ -22,7 +22,7 @@
  
  .SH OPTIONS
  .PP
-@@ -144,7 +144,7 @@
+@@ -144,7 +144,7 @@ Display \fImessage\fP in the labels when offline. The 
  .TP 8
  .B \-iformat \fIfmt\fP
  Use string \fIfmt\fP for the inbound label. The \fIfmt\fP string will be displayed