[alt.sources] Unofficial patch to shar3.49

okamoto@hpcc01.HP.COM (Jeff Okamoto) (01/08/91)

I like the features that shar3.49 offers, but there is one small thing
that I didn't like: shar prints out some status messages to stderr
while building the sharchve.  Since I have an alias which effectively
does shar * >& shar.out you can see how that can cause problems.

I therefore submit context diffs of shar.c and shar.1 which add a new
flag: -q.  This flag prevents shar from printing any non-error messages
while it is packing the sharchive.  I hope they will be of use to you.

Jeff Okamoto
Hewlett-Packard Corporate Computing and Services
okamoto@ranma.corp.hp.com

-----Begin context diffs
*** shar.c.orig	Wed Nov 14 09:03:33 1990
--- shar.c	Wed Nov 14 09:13:18 1990
***************
*** 16,21
  
  */
  /*+:EDITS:*/
  /*:09-12-1990-14:24-rhg@cps.com-added missing return(0) to walkdown */
  /*:09-12-1990-14:13-rhg@cps.com-deleted some redundant, unused, code */
  /*:09-12-1990-00:28-rhg@cps.com-added more directions to the shar header */

--- 16,22 -----
  
  */
  /*+:EDITS:*/
+ /*:11-14-1990-09:00-okamoto@corp.hp.com-added -q */
  /*:09-12-1990-14:24-rhg@cps.com-added missing return(0) to walkdown */
  /*:09-12-1990-14:13-rhg@cps.com-deleted some redundant, unused, code */
  /*:09-12-1990-00:28-rhg@cps.com-added more directions to the shar header */
***************
*** 207,212
  int InterOW = 0;		/* interactive overwrite */
  int PosParam = 0;		/* allow positional parameters */
  int FileStrip;			/* strip directories from filenames */
  #ifdef	DEBUG
  int de_bug = 0;			/* switch for debugging on */
  #define DeBug(f,v) if (de_bug) printf(f, v)

--- 208,214 -----
  int InterOW = 0;		/* interactive overwrite */
  int PosParam = 0;		/* allow positional parameters */
  int FileStrip;			/* strip directories from filenames */
+ int Quiet = 0;			/* be quiet about what we're doing */
  #ifdef	DEBUG
  int de_bug = 0;			/* switch for debugging on */
  #define DeBug(f,v) if (de_bug) printf(f, v)
***************
*** 238,244
  extern int optind;
  extern char *optarg;
  
! 	while((c = getopt(argc,argv,"VmSvwd:BTCb:xXcfMpPFas:n:l:L:o:h")) != -1)
  	{
  		switch(c)
  		{

--- 240,246 -----
  extern int optind;
  extern char *optarg;
  
! 	while((c = getopt(argc,argv,"VmSvwd:BTCb:xXcfMpPFas:n:l:L:o:qh")) != -1)
  	{
  		switch(c)
  		{
***************
*** 337,342
  				exit(1);
  			}
  			break;
  #ifdef	DEBUG
  		case '$': /* totally undocumented $ option, debug on */
  			de_bug = 1;

--- 339,347 -----
  				exit(1);
  			}
  			break;
+ 		case 'q': /* be quiet */
+ 			Quiet = 1;
+ 			break;
  #ifdef	DEBUG
  		case '$': /* totally undocumented $ option, debug on */
  			de_bug = 1;
***************
*** 473,479
  	{
  		fputs("rm -f _shar_seq_.tmp\n",fpout);
  		fputs("echo You have unpacked the last part\n",fpout);
! 		if(!Verbose)
  			fprintf(stderr,"Created %d files\n",filenum);
  	}
  	fputs("exit 0\n",fpout);

--- 478,484 -----
  	{
  		fputs("rm -f _shar_seq_.tmp\n",fpout);
  		fputs("echo You have unpacked the last part\n",fpout);
! 		if(!Quiet)
  			fprintf(stderr,"Created %d files\n",filenum);
  	}
  	fputs("exit 0\n",fpout);
***************
*** 964,970
  			/* form the next filename */
  			sprintf(filename,"%s%02d",outname,++filenum);
  			fpout = fopen(filename,"w");
! 			if(Verbose)
  				fprintf(stderr,"Starting file %s\n",filename);
  
  			if(Archive_name)

--- 969,975 -----
  			/* form the next filename */
  			sprintf(filename,"%s%02d",outname,++filenum);
  			fpout = fopen(filename,"w");
! 			if(!Quiet)
  				fprintf(stderr,"Starting file %s\n",filename);
  
  			if(Archive_name)
***************
*** 1090,1096
  				fputs("> _shar_wnt_.tmp\n",fpout);	
  		}
  
! 		fprintf(stderr,"shar: saving %s (%s)\n",file,filetype);
  		if(Verbose)
  		{ /* info on archive and unpack */
  			fprintf(fpout,"echo 'x - extracting %s (%s)'\n",

--- 1095,1104 -----
  				fputs("> _shar_wnt_.tmp\n",fpout);	
  		}
  
! 		if(!Quiet)
! 		{ /* don't print this if we want to be quiet */
! 			fprintf(stderr,"shar: saving %s (%s)\n",file,filetype);
! 		}
  		if(Verbose)
  		{ /* info on archive and unpack */
  			fprintf(fpout,"echo 'x - extracting %s (%s)'\n",
***************
*** 1225,1231
  					else
  						fputs("if test -f _shar_wnt_.tmp; then\n",fpout);
  
! 				if(Verbose)
  				{ /* keep everybody informed */
  					fprintf(stderr,"Starting file %s\n",filename);
  					fprintf(fpout,"echo 'x - continuing file %s'\n",RstrName);

--- 1233,1239 -----
  					else
  						fputs("if test -f _shar_wnt_.tmp; then\n",fpout);
  
! 				if(!Quiet)
  				{ /* keep everybody informed */
  					fprintf(stderr,"Starting file %s\n",filename);
  				}
***************
*** 1228,1233
  				if(Verbose)
  				{ /* keep everybody informed */
  					fprintf(stderr,"Starting file %s\n",filename);
  					fprintf(fpout,"echo 'x - continuing file %s'\n",RstrName);
  				}
  				fprintf(fpout,"sed 's/^%c//' << '%s' >> '%s' &&\n",

--- 1236,1244 -----
  				if(!Quiet)
  				{ /* keep everybody informed */
  					fprintf(stderr,"Starting file %s\n",filename);
+ 				}
+ 				if(Verbose)
+ 				{ /* keep everybody informed */
  					fprintf(fpout,"echo 'x - continuing file %s'\n",RstrName);
  				}
  				fprintf(fpout,"sed 's/^%c//' << '%s' >> '%s' &&\n",
***************
*** 1338,1344
  char *helpinfo[] =
  {
  	"-V  produce \"vanilla\" shars demanding little of the unshar environment",
! 	"-v  verbose messages OFF while executing",
  	"-m  restore file modification dates & times with \"touch\" commands",
  	"-w  don't check with 'wc -c' after unpack",
  	"-a  generate Submitted-by: & Archive-name: headers",

--- 1349,1356 -----
  char *helpinfo[] =
  {
  	"-V  produce \"vanilla\" shars demanding little of the unshar environment",
! 	"-v  verbose messages OFF when unpacking archive",
! 	"-q  be quiet while packing archive",
  	"-m  restore file modification dates & times with \"touch\" commands",
  	"-w  don't check with 'wc -c' after unpack",
  	"-a  generate Submitted-by: & Archive-name: headers",

*** shar.1.orig	Wed Nov 14 09:18:42 1990
--- shar.1	Wed Nov 14 09:19:57 1990
***************
*** 34,39
  .IP "\f2\-v\f1"
  Verbose OFF. Disables the inclusion of comments to be output when the archive
  is unpacked.
  .IP "\f2\-w\f1"
  Do NOT check with 'wc \-c' after unpack. The default is to check.
  .IP "\f2\-n\f1 name"

--- 34,41 -----
  .IP "\f2\-v\f1"
  Verbose OFF. Disables the inclusion of comments to be output when the archive
  is unpacked.
+ .IP "\f2\-q\f1"
+ Do not print any non-error messages to stderr while packing the archive.
  .IP "\f2\-w\f1"
  Do NOT check with 'wc \-c' after unpack. The default is to check.
  .IP "\f2\-n\f1 name"
-----End context diffs