[mod.computers.gould] size

rossiter@GVAX.CS.CORNELL.EDU ("David G. Rossiter") (11/21/85)

Reference:/usr/src/bin/size/size.c

Problem:
The size(1) command didn't work right: it always returned an error status of -1. 

Solution:
 Here's the context diff:

*** size.c.old	Wed Nov 20 16:15:28 1985
--- size.c	Wed Nov 20 15:52:37 1985
***************
*** 4,9 ****
--- 4,11 ----
   * size
   */
  
+ /* return the correct status on exit -- dgr cucs 19851120 */
+ 
  #include	<stdio.h>
  #include 	<a.out.h>
  
***************
*** 15,20 ****
--- 17,23 ----
  	struct exec buf;
  	long sum;
  	int gorp,i;
+ 	int err = 0;
  	FILE *f;
  
  	if (argc==1) {
***************
*** 27,32 ****
--- 30,36 ----
  		++argv;
  		if ((f = fopen(*argv, "r"))==NULL) {
  			printf("size: %s not found\n", *argv);
+ 			err++;
  			continue;
  		}
  		if (fread((char *)&buf, sizeof(buf), 1, f) != 1 ||
***************
*** 33,38 ****
--- 37,43 ----
  		    N_BADMAG(buf)) {
  			printf("size: %s not an object file\n", *argv);
  			fclose(f);
+ 			err++;
  			continue;
  		}
  		if (header == 0) {
***************
*** 47,50 ****
--- 52,56 ----
  		printf("\n");
  		fclose(f);
  	}
+ 	exit(err);
  }


------- and here's an ed(1) script to effect the change:
49a
	exit(err);
.
35a
			err++;
.
29a
			err++;
.
17a
	int err = 0;
.
6a
/* return the correct status on exit -- dgr cucs 19851120 */

.

------- then 'make all ; make install' in /usr/src/bin/size