|
|
researchv10 Norman
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);
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.