home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
vol_100
/
153_01
/
scratt.c
< prev
next >
Wrap
Text File
|
1985-03-10
|
3KB
|
98 lines
/* *** scratt.c *** */
/* */
/* IBM - PC microsoft "C" under PC-DOS */
/* */
/* Function to turn on and off in a toggle switch manner various */
/* screen attributes such as BOLD, blink, reverse video, etc. */
/* Returns a 0 if successful or a -1 if not. */
/* */
/* Written by L. Cuthbertson, April 1984. */
/* */
/*********************************************************************/
/* */
#define NULL '\000'
#define POUND '#'
int scratt(iatt)
int iatt;
{
extern char SGR[];
char catt[3],command[20];
static int switches[9] = {0,0,0,0,0,0,0,0,0};
int i,j,inpos,outpos;
int savpos,gotone;
/* error check */
if (iatt<0 || iatt>8)
return(-1);
/* toggle selected switch */
if (iatt == 0) {
for(i=0;i<9;i++) {
switches[i] = 0;
}
} else {
switches[iatt] = !(switches[iatt]);
}
/* initialize screen controls */
scrinit();
/* turn all attributes off ***********************************/
catt[0] = '0'; /* turn all attributes off */
catt[1] = NULL;
/* build control sequence */
inpos = 0; /* position in control line */
outpos = 0; /* position in command line */
while (SGR[inpos] != POUND)
command[outpos++] = SGR[inpos++];
for (i=0;catt[i] != NULL;i++)
command[outpos++] = catt[i];
inpos++;
while(SGR[inpos] != NULL)
command[outpos++] = SGR[inpos++];
command[outpos] = NULL;
/* write command to screen */
writes(command);
/* turn selected attibutes on ********************************/
if (iatt != 0) {
gotone = 0;
/* loop through switches */
for(j=1;j<9;j++) {
if (switches[j] != 0) {
/* got an attribute */
gotone++;
inpos = 0;
outpos = 0;
sprintf(catt,"%d",j);
while (SGR[inpos] != POUND)
command[outpos++] = SGR[inpos++];
for (i=0;catt[i] != NULL;i++)
command[outpos++] = catt[i];
inpos++;
while(SGR[inpos] != NULL)
command[outpos++] = SGR[inpos++];
command[outpos] = NULL;
writes(command);
}
}
}
return(0);
}
[7] = (char)(iyr%10 + '0');
outdate[8