# 2.11BSD#431 - /usr/src/usr.bin/tbl/tv.c

##### Functions

    barent            X
    drawvert          X
    midbar            X
    midbcol           X

       1: #ifndef lint
       2: static char sccsid[] = "@(#)tv.c	4.3 8/11/83";
       3: #endif
       4:
       5:  /* tv.c: draw vertical lines */
       6: # include "t..c"
       7: drawvert(start,end, c, lwid)
       8: {
       9: char *exb=0, *ext=0;
      10: int tp=0, sl, ln, pos, epb, ept, vm;
      11: end++;
      12: vm='v';
      13: /* note: nr 35 has value of 1m outside of linesize */
      14: while (instead[end]) end++;
      15: for(ln=0; ln<lwid; ln++)
      16:     {
      17:     epb=ept=0;
      18:     pos = 2*ln-lwid+1;
      19:     if (pos!=tp) fprintf(tabout, "\\h'%dp'", pos-tp);
      20:     tp = pos;
      21:     if (end<nlin)
      22:         {
      23:         if (fullbot[end]|| (!instead[end] && allh(end)))
      24:             epb=2;
      25:         else
      26:         switch (midbar(end,c))
      27:             {
      28:             case '-':
      29:             exb = "1v-.5m"; break;
      30:             case '=':
      31:             exb = "1v-.5m";
      32:             epb = 1; break;
      33:             }
      34:         }
      35:     if (lwid>1)
      36:     switch(interh(end, c))
      37:         {
      38:         case THRU: epb -= 1; break;
      39:         case RIGHT: epb += (ln==0 ? 1 : -1); break;
      40:         case LEFT: epb += (ln==1 ? 1 : -1); break;
      41:         }
      42:     if (lwid==1)
      43:     switch(interh(end,c))
      44:         {
      45:         case THRU: epb -= 1; break;
      46:         case RIGHT: case LEFT: epb += 1; break;
      47:         }
      48:     if (start>0)
      49:         {
      50:         sl = start-1;
      51:         while (sl>=0 && instead[sl]) sl--;
      52:         if (sl>=0 && (fullbot[sl] || allh(sl)))
      53:             ept=0;
      54:         else
      55:         if (sl>=0)
      56:         switch(midbar(sl,c))
      57:             {
      58:             case '-':
      59:             ext = ".5m"; break;
      60:             case '=':
      61:             ext= ".5m"; ept = -1; break;
      62:             default:
      63:                 vm = 'm'; break;
      64:             }
      65:         else
      66:             ept = -4;
      67:         }
      68:     else if (start==0 && allh(0))
      69:         {
      70:         ept=0;
      71:         vm = 'm';
      72:         }
      73:     if (lwid>1)
      74:         switch(interh(start,c))
      75:             {
      76:             case THRU: ept += 1; break;
      77:             case LEFT: ept += (ln==0 ? 1 : -1); break;
      78:             case RIGHT: ept += (ln==1 ? 1 : -1); break;
      79:             }
      80:     else if (lwid==1)
      81:         switch(interh(start,c))
      82:             {
      83:             case THRU: ept += 1; break;
      84:             case LEFT: case RIGHT: ept -= 1; break;
      85:             }
      86:     if (exb)
      87:         fprintf(tabout, "\\v'%s'", exb);
      88:     if (epb)
      89:         fprintf(tabout, "\\v'%dp'", epb);
      90:     fprintf(tabout, "\\s\\n(%d",LSIZE);
      91:     if (linsize)
      92:         fprintf(tabout, "\\v'-\\n(%dp/6u'", LSIZE);
      93:     fprintf(tabout, "\\h'-\\n(#~u'"); /* adjustment for T450 nroff boxes */
      94:     fprintf(tabout, "\\L'|\\n(#%cu-%s", linestop[start]+'a'-1, vm=='v'? "1v" : "\\n(35u");
      95:     if (ext)
      96:         fprintf(tabout, "-(%s)",ext);
      97:     if (exb)
      98:         fprintf(tabout, "-(%s)", exb);
      99:     pos = ept-epb;
     100:     if (pos)
     101:         fprintf(tabout, "%s%dp", pos>=0? "+" : "", pos);
     102:     /* the string #d is either "nl" or ".d" depending
     103: 	   on diversions; on GCOS not the same */
     104:     fprintf(tabout, "'\\s0\\v'\\n(\\*(#du-\\n(#%cu+%s", linestop[start]+'a'-1,vm=='v' ? "1v" : "\\n(35u");
     105:     if (ext)
     106:         fprintf(tabout, "+%s",ext);
     107:     if (ept)
     108:         fprintf(tabout, "%s%dp", (-ept)>0 ? "+" : "", (-ept));
     109:     fprintf(tabout, "'");
     110:     if (linsize)
     111:         fprintf(tabout, "\\v'\\n(%dp/6u'", LSIZE);
     112:     }
     113: }
     114:
     115:
     116: midbar(i,c)
     117: {
     118: int k;
     119: k = midbcol(i,c);
     120: if (k==0 && c>0)
     121:     k = midbcol(i, c-1);
     122: return(k);
     123: }
     124: midbcol(i,c)
     125: {
     126: int ct;
     127: while ( (ct=ctype(i,c)) == 's')
     128:     c--;
     129: if (ct=='-' || ct == '=')
     130:     return(ct);
     131: if (ct=barent(table[i][c].col))
     132:     return(ct);
     133: return(0);
     134: }
     135:
     136: barent(s)
     137:     char *s;
     138: {
     139: if (s==0) return (1);
     140: if (!point(s)) return(1);
     141: if (s[0]== '\\') s++;
     142: if (s[1]!= 0)
     143:     return(0);
     144: switch(s[0])
     145:     {
     146:     case '_':
     147:         return('-');
     148:     case '=':
     149:         return('=');
     150:     }
     151: return(0);
     152: }

#### Defined functions

barent defined in line 136; used 4 times

- in line 131
- in /usr/src/usr.bin/tbl/t6.c line 57, 97
- in /usr/src/usr.bin/tbl/tt.c line 86

drawvert defined in line 7; used 4 times

- in /usr/src/usr.bin/tbl/t7.c line 122, 130
- in /usr/src/usr.bin/tbl/t8.c line 102, 314

midbar defined in line 116; used 2 times

- in line 26, 56

midbcol defined in line 124; used 2 times

- in line 119-121(2)

#### Defined variables

sccsid defined in line 2; never used

Last modified: 1987-02-17 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 979 |