plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

text.c (1032B)


      1 /*
      2           t string  Place the string so that its first character is
      3                     centered on the current point (default).  If
      4                     string begins with `\C' (`\R'), it is centered
      5                     (right-adjusted) on the current point.  A
      6                     backslash at the beginning of the string may be
      7                     escaped with another backslash.
      8  */
      9 #include "mplot.h"
     10 void text(char *s){
     11 	register int	kx, ky;
     12 	int centered, right, more;
     13 	char *ss;
     14 	ss=s;
     15 	for(;;){
     16 		centered=right=more=0;
     17 		if(*ss=='\\'){
     18 			ss++;
     19 			switch(*ss){
     20 			case 'C': centered++; ss++; break;
     21 			case 'R': right++; ss++; break;
     22 			case 'L': ss++; break;
     23 			case 'n': --ss; break;
     24 			}
     25 		}
     26 		for(s=ss;*ss!='\0';ss++)
     27 			if(ss[0]=='\\' && ss[1]=='n'){
     28 				more++;
     29 				break;
     30 			}
     31 		kx = SCX(e1->copyx);
     32 		ky = SCY(e1->copyy);
     33 		ky=m_text(kx, ky, s, ss, e1->foregr, centered, right);
     34 		if(!more)break;
     35 		e1->copyy = ( (double)(ky) - e1->bottom)/e1->scaley + e1->ymin + .5;
     36 		move(e1->copyx, e1->copyy);
     37 		ss+=2;
     38 	}
     39 }