V10/cmd/daemon/lab.c

Compare this file to the similar file:
Show the results in this format:

char	dpd[]	= "/usr/spool/lab";
char	dfname[30] = "/usr/spool/lab/";
char	lock[]	= "/usr/spool/lab/lock";
char	lp[] = "/dev/lab";

/*
 *	lab - label maker dispatcher for DataSouth DS180 matrix printer
 */

#include <ctype.h>
#include <sys/ttyio.h>
#include <sys/filio.h>

#define	SPIDER	0
#define	PHONE	0
#define	LPD	1

#include	"daemon.c"

/*
 * The remaining part is the line printer interface.
 */

FILE	*lpf = NULL;

#define LINESIZE 1000

char buf[LINESIZE], ubuf[LINESIZE];
int ulen, blen;

dem_con()
{
	return(0);
}

dem_dis()
{
	FCLOSE(lpf);
	FCLOSE(dfb);
}

dem_open(file)
char	*file;
{
	struct sgttyb tb;
	struct ttydevb grime;
	static char iobuf[BUFSIZ];
	int ld = 0;
	extern int tty_ld;

	if((lpf = fopen(lp, "w")) == NULL)
		trouble("Can't open %s", lp);
	if (ioctl(fileno(lpf), FIOLOOKLD, &ld)<0 || ld!=tty_ld)
		ioctl(fileno(lpf), FIOPUSHLD, &tty_ld);
	if (ioctl(fileno(lpf), TIOCGETP, &tb) < 0)
		trouble("Can't do gtty(%s)\n", lp);
	ioctl(fileno(lpf), TIOCGDEV, &grime);
	tb.sg_ispeed = tb.sg_ospeed = B9600;	/* obsolescent */
	tb.sg_flags &= ~ALLDELAY;
	tb.sg_flags |= XTABS|TANDEM;
	if (ioctl(fileno(lpf), TIOCSETP, &tb) < 0)
		trouble("Can't do stty(%s)\n", lp);
	grime.ispeed = grime.ospeed = B9600;
	ioctl(fileno(lpf), TIOCSDEV, &grime);
	setbuf (lpf, iobuf);
}


dem_close()
{
	dem_dis();
}

get_snumb()
{
}

lwrite()
{
	/* banner(lpf, &line[1]); */
}


FILE	*ibuf;

sascii(fc)
char	fc;
{
	register int c, nblank;

	if((ibuf = fopen(&line[1], "r")) == NULL)
		return(0);

	putc(ff, lpf);

	nblank = 0;
	while ((c = getc (ibuf)) != EOF) {
		switch (c) {
		case ' ':
			nblank++;
			break;

		case '-':
			if (nblank >= 1) {
				c = getc (ibuf);
				if (c == '\n') {
					putc ('\r', lpf);
					c = ff;
				} else
					putc ('-', lpf);
			}
			/* no break */
		default:
			nblank = 0;
		}
		putc (c, lpf);
	}

	for (c = 0; c < 6; c++)
		putc (ff, lpf);

	fflush(lpf);
	fclose(ibuf);
	return(0);
}

etcp1()
{
}

/* VARARGS */
trouble(s, a1, a2, a3, a4)
char	*s;
{
	if(retcode != 0){
		dem_dis();
	}
	logerr(s, a1, a2, a3, a4);
	longjmp(env, 1);
}

/* VARARGS */
logerr(s, a1, a2, a3, a4)
char	*s;
int	a1, a2, a3, a4;
{
#ifdef DEBUG
	fprintf(stderr, s, a1, a2, a3, a4);
	putc('\n', stderr);
#endif
}

getowner()
{
}

maildname()
{
	fprintf(pmail, "Your %s job for file %s is finished, Jim.\n", DAEMNAM, mailfname);
}