[net.sources] Mods to C which

tcs@usna.UUCP (Terry Slattery <tcs@usna>) (09/27/85)

I've added a stat to the C version of which to omit printing
the names of directories found. I also increased the sizes of
the line buffers to prevent possible overflows.
	-tcs

*** which.c.bak	Thu Sep 26 13:35:43 1985
--- which.c	Thu Sep 26 13:35:54 1985
***************
*** 7,12
   */
  
  #include <stdio.h>
  
  char *getenv();
  char *index();

--- 7,14 -----
   */
  
  #include <stdio.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
  
  char *getenv();
  char *index();
***************
*** 16,23
  char **av;
  {
      char *origpath, *path, *cp;
!     char buf[200];
!     char patbuf[512];
      int quit, found;
  
      if (ac < 2) {

--- 18,26 -----
  char **av;
  {
      char *origpath, *path, *cp;
!     char buf[512];
!     char patbuf[1024];
!     struct stat status;
      int quit, found;
  
      if (ac < 2) {
***************
*** 44,53
  	    sprintf(buf, "%s/%s", (*path ? path:"."), *av);
  	    path = ++cp;
  
! 	    if (access(buf, 1) == 0) {
! 		printf("%s\n", buf);
! 		found++;
! 	    }
  	}
  	if (!found) 
  	    printf("No %s in %s\n", *av, origpath);

--- 47,58 -----
  	    sprintf(buf, "%s/%s", (*path ? path:"."), *av);
  	    path = ++cp;
  
! 	    if (access(buf, 1) == 0)
! 		stat(buf, &status);
! 		if (status.st_mode & S_IFREG) {
! 			printf("%s\n", buf);
! 			found++;
! 		}
  	}
  	if (!found) 
  	    printf("No %s in %s\n", *av, origpath);