home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
vol_100
/
168_01
/
pcjunk.c
< prev
next >
Wrap
Text File
|
1985-08-21
|
2KB
|
80 lines
/* PCJUNK.C Misc. procedures */
#include "stdio.h"
#include "sdbio.h"
/* Replaces JUNK.C for the IBM/PC version dns */
char *alloc(n)
int n;
{
return (char*) malloc(n);
}
int getcx(fp)
FILE *fp;
{
static char buf[LINEMAX] = {0};
static char *pbuf = buf;
int ch, i;
if (fp!=stdin)
if ((ch = getc(fp)) == '\r')
return getc(fp);
else
return ch;
if (*pbuf > 0)
return *pbuf++;
pbuf = buf;
for (i = 0; (ch = getc(fp)) != -1; )
if (i < LINEMAX) {
if (ch == ESC) { i=0; putchar('\n'); fflush(stdout); } else
if (ch == BS) { if (i>0) i--; } else
buf[i++] = ch;
if (ch == '\n') break;
}
else {
printf("*** line too long ***\nRetype> ");
i = 0;
}
buf[i] = EOS;
return getcx(fp);
}
/* string copy up to n characters */
strncpy(to, from, n)
char *to, *from;
int n;
{
char *cp;
for( cp=to; n-- && (*cp++ = *from++); ) ;
if( n<0 ) *cp = 0;
return to;
}
/* string compare up to n characters */
strncmp(s1, s2, n)
char *s1, *s2;
int n;
{
for( ;n-- && (*s1==*s2); s2++ )
if( !*s1++ )
return 0;
if( n < 0 )
return 0;
if( *s1 < *s2 )
return -1;
return 1;
}
width = 1;
for (saptr = slptr->sl_attrs; saptr != NULL; saptr = saptr->sa_next)
twi