home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / SRC / SUNPAS / PDRIVERS.C < prev    next >
C/C++ Source or Header  |  1994-06-16  |  2KB  |  212 lines

  1. #include <stdio.h>
  2. #include "vogle.h"
  3.  
  4. /*
  5.  * This should match the Pascal type 'varying [n] of char'
  6.  */
  7.  
  8. typedef struct {
  9.     int    n;
  10.     char    s[1];    /* SO compiler doesn't bitch about zero length */
  11. } Vstring;
  12.  
  13. #define COPYANDTERMINATE(buf, s, l)    strncpy(buf, s, l); buf[l] = '\0';
  14.  
  15. /*
  16.  * Voutput
  17.  */
  18. void
  19. Voutput(s)
  20.     Vstring    s;
  21. {
  22.     char    *p = (char *)s.s;
  23.     char    buf[BUFSIZ];
  24.  
  25.         COPYANDTERMINATE(buf, p, s.n);
  26.     voutput(buf);
  27. }
  28.  
  29. /*
  30.  * Vinit
  31.  */
  32. void
  33. Vinit(s)
  34.     Vstring    s;
  35. {
  36.     char    *p = (char *)s.s;
  37.     char    buf[BUFSIZ];
  38.  
  39.         COPYANDTERMINATE(buf, p, s.n);
  40.         vinit(buf);
  41. }
  42.  
  43. /*
  44.  * VnewDev
  45.  */
  46. void
  47. VnewDev(s)
  48.     Vstring    s;
  49. {
  50.     char    *p = (char *)s.s;
  51.     char    buf[BUFSIZ];
  52.  
  53.         COPYANDTERMINATE(buf, p, s.n);
  54.     vnewdev(buf);
  55. }
  56.  
  57. /*
  58.  * VgetDev
  59.  */
  60. void
  61. VgetDev(s)
  62.     Vstring    *s;
  63. {
  64.     char    *p = (char *)s->s;
  65.  
  66.     (void)vgetdev(p);
  67.  
  68.     s->n = strlen(p);
  69. }
  70.  
  71. /*
  72.  * PushDev
  73.  */
  74. void
  75. PushDev(s)
  76.     Vstring    s;
  77. {
  78.     char    *p = (char *)s.s;
  79.     char    buf[BUFSIZ];
  80.  
  81.         COPYANDTERMINATE(buf, p, s.n);
  82.     pushdev(buf);
  83. }
  84.  
  85. /*
  86.  * PopDev
  87.  */
  88. void
  89. PopDev()
  90. {
  91.     popdev();
  92. }
  93.     
  94. /*
  95.  * Vexit
  96.  */
  97. void
  98. Vexit()
  99. {
  100.     vexit();
  101. }
  102.  
  103. /*
  104.  * VsetFlush
  105.  */
  106. void
  107. VsetFlush(i)
  108.     int    i;
  109. {
  110.     vsetflush(i);
  111. }
  112. /*
  113.  * Vflush
  114.  */
  115. void
  116. Vflush()
  117. {
  118.     vflush();
  119. }
  120.  
  121. /*
  122.  * Clear
  123.  */
  124. void
  125. Clear()
  126. {
  127.     clear();
  128. }
  129.  
  130. /*
  131.  * Color
  132.  */
  133. void
  134. Color(col)
  135.     int    col;
  136. {
  137.     color(col);
  138. }
  139.  
  140. /*
  141.  * MapColor
  142.  */
  143. void
  144. MapColor(indx, red, green, blue)
  145.     int    indx, red, green, blue;
  146. {
  147.     mapcolor(indx, red, green, blue);
  148. }
  149.  
  150. /*
  151.  * GetKey
  152.  */
  153. int
  154. GetKey()
  155. {
  156.     return(getkey());
  157. }
  158.  
  159. /*
  160.  * CheckKey
  161.  */
  162. int
  163. CheckKey()
  164. {
  165.     return(checkkey());
  166. }
  167.  
  168. /*
  169.  * GetDepth
  170.  */
  171. int
  172. GetDepth()
  173. {
  174.     return(getdepth());
  175. }
  176.  
  177. /*
  178.  * Locator
  179.  */
  180. int
  181. Locator(xaddr, yaddr)
  182.     double    *xaddr, *yaddr;
  183. {
  184.     float    x, y;
  185.     int    i;
  186.  
  187.     i = locator(&x, &y);
  188.  
  189.     *xaddr = x;
  190.     *yaddr = y;
  191.  
  192.     return(i);
  193. }
  194.  
  195. /*
  196.  * Slocator
  197.  */
  198. int
  199. Slocator(xaddr, yaddr)
  200.     double    *xaddr, *yaddr;
  201. {
  202.     float    x, y;
  203.     int    i;
  204.  
  205.     i = slocator(&x, &y);
  206.  
  207.     *xaddr = x;
  208.     *yaddr = y;
  209.  
  210.     return(i);
  211. }
  212.