#ifdef	ournix
#include "ournix.h"
#endif
char sccsID[] =
	"@(#) stretch.c V1.0 Copyright Julian H. Stacey, Munich, June 1989\n" ;

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define FALSE	0
#define TRUE	1

int	length = 2 ;
char	**ARGV ;

main(argc, argv)
	int	argc;
	char	**argv;
	{
	FILE	*fp;
	char	*p;
	int	onef = FALSE;

	ARGV = argv ;
#ifdef	VSL	/* { */
#include	"../../include/vsl.h"
#endif		/* } */
	for(argc--, argv++ ; argc ; argv++, argc--)
		{
		if(**argv != '-') break;
		p = *argv + 1;
		while(*p) switch(*p++)
			{
			case 'l':
			case 'L':
				if (*p) 
					{
					length = atoi(p);
					if (length < 1)
						{
						fprintf(stderr,
			"%s: cannot have < 1 extra blank line\n", *ARGV) ;
						exit(1);
						}
					while ((*p >='0')&&(*p<='9')) p++;
					}
				break;
			default:
				fprintf(stderr,
			 "Unknown flag %c, Syntax: %s -[lL]number file[s]\n",
					*ARGV, *(p-1));
				break;
			}
		}
	if(argc == 0) doit(stdin);
	else	{ 
		if(argc == 1) onef = TRUE;
		do	{
			fp = fopen(*argv++, "r");
			if(fp == NULL)
				{
				fprintf(stderr,"%s: cannot open '%s'\n",
					*ARGV, *(argv-1));
				continue;
				}
			if(!onef) printf("%s: ", *(argv-1));
			doit(fp);
			(void) fclose(fp);
			}
		while(--argc);
		}
	exit(0);
	}

doit(fp)
	register FILE	*fp;
	{
	int	i;
	register int	c;
	char	alpha = FALSE;	/* set if an alphabetic occurs on line */
	char	lastchar = '\n' ;
	
	while((c = getc(fp)) != EOF)
		{
		/* treat new page & carriage return as new line */
		if ((c == '\f') || (c == '\r') ) c = '\n' ;
		if (c == '\n')
			{
			if (lastchar == '\n') continue ;
			if (alpha == TRUE) /* allow translation space */
				for (i= length; i-- ; putc('\n',stdout)) ;
			alpha = FALSE ;
			lastchar = '\n' ;
			}
		else
			{
			if (isalpha(c)) alpha = TRUE ;
			if (!isspace(c)) lastchar = c ;
			}
		putc(c,stdout);
		}
	}
