--- pload.c.orig 2000-02-01 07:11:24 UTC +++ pload.c @@ -285,6 +285,14 @@ 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]; + orig_argv[i] = NULL; /* add trailing NULL pointer */ + Progname = argv[0]; toplevel = XtAppInitialize ( @@ -301,6 +309,12 @@ 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]; + argv[i] = orig_argv[i]; /* copy trailing NULL pointer */ + XtGetApplicationResources( toplevel, /* widget */ (XtPointer) &resources, /* where to put */ @@ -596,27 +610,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 +656,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);