home *** CD-ROM | disk | FTP | other *** search
- /* *** 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