home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume8 / dca2troff / do_mbd4.c < prev    next >
C/C++ Source or Header  |  1987-02-18  |  2KB  |  73 lines

  1.  
  2. #include "dca2troff.h"
  3.  
  4. /* multi byte class d4 */
  5. do_mbd4()
  6. {
  7.     switch (mb_type)
  8.     {
  9.     case 0x02:            /* BLFC  - Begin Line Fmt. Change */
  10.     case 0x04:            /* RMLF  - Return to Mstr. Line Fmt. */
  11.     case 0x05:            /* SLP   - Set Line Parameters */
  12.     case 0x06:            /* ELFC  - End Line Fmt. Change */
  13.     case 0x13:            /* ATL   - Return To Master Font */
  14.     case 0x47:            /* PPIN  - Print Page Image Number */
  15.     case 0x63:            /* PTUN  - Print Text Unit Name */
  16.     case 0x72:            /* BOS   - Begin Overstrike */
  17.     case 0x76:            /* EOS   - End Overstrike */
  18.     case 0x7a:            /* BLM   - Begin Linguistic Mark */
  19.     case 0x7e:            /* ELM   - End Linguistic Mark */
  20.         do_flush(mb_count);
  21.         return;
  22.     case 0x0a:            /* BUS   - Begin Underscore */
  23.         outstr("\\fI");
  24.         do_flush(mb_count);
  25.         return;
  26.     case 0x0b:            /* ATF   - Align Text Field */
  27.         itemp = get1ch();            /* get alignment type */
  28.         --mb_count;
  29.         jtemp = 0;
  30.         if(mb_count >= 2)
  31.         {
  32.         jtemp = get1num();        /* get alignment pos */
  33.         --mb_count;
  34.         --mb_count;
  35.         }
  36.         if(itemp == 3)            /* center request */
  37.         outstr("\n.ce\n");
  38.         do_flush(mb_count);
  39.         return;
  40.     case 0x0e:            /* EUS   - End Underscore */
  41.         outstr("\\fR");
  42.         do_flush(mb_count);
  43.         return;
  44.     case 0x0f:            /* ATL   - Align Text Line */
  45.         itemp = get1ch();            /* get alignment type */
  46.         --mb_count;
  47.         if(itemp == 1)            /* center */
  48.         outstr("\n.ce\n");
  49.         if(itemp == 2)            /* right */
  50.         ;
  51.         do_flush(mb_count);
  52.         return;
  53.     case 0x62:            /* BK    - Begin Keep */
  54.         outstr("\\\" Begin Keep\n");
  55.         do_flush(mb_count);
  56.         return;
  57.     case 0x66:            /* EK    - End Keep */
  58.         outstr("\\\" End Keep\n");
  59.         do_flush(mb_count);
  60.         return;
  61.     case 0x90:            /* DPS   - Display Prompt and Stop */
  62.         ctemp = get1ch();            /* get prompt */
  63.         sprintf(tline, "\\\" DPS found - keyboard data request, prompt=x%02x\n", ctemp);
  64.         outstr(tline);
  65.         do_flush(mb_count);
  66.         return;
  67.     default:
  68.         fprintf(stderr, "unknown mb d4 type (%02x)\n", mb_type);
  69.         do_flush(mb_count);
  70.         return;
  71.     }
  72. }
  73.