home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / SRC / SUNPAS / POBJECTS.C < prev    next >
C/C++ Source or Header  |  1994-04-27  |  1KB  |  114 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.  * MakeObj
  17.  */
  18. void
  19. MakeObj(n)
  20.     int    n;
  21. {
  22.     makeobj(n);
  23. }
  24.  
  25. /*
  26.  * CloseObj
  27.  */
  28. void
  29. CloseObj()
  30. {
  31.     closeobj();
  32. }
  33.  
  34. /*
  35.  * DelObj
  36.  */
  37. void
  38. DelObj(n)
  39.     int    n;
  40. {
  41.     delobj(n);
  42. }
  43.  
  44. /*
  45.  * GenObj
  46.  */
  47. int
  48. GenObj()
  49. {
  50.     return(genobj());
  51. }
  52.  
  53. /*
  54.  * GetOpenObj
  55.  */
  56. int
  57. GetOpenObj()
  58. {
  59.     return(getopenobj());
  60. }
  61.  
  62. /*
  63.  * CallObj
  64.  */
  65. void
  66. CallObj(n)
  67.     int    n;
  68. {
  69.     callobj(n);
  70. }
  71.  
  72. /*
  73.  * IsObj
  74.  */
  75. int
  76. IsObj(n)
  77.     int    n;
  78. {
  79.     return(isobj(n));
  80. }
  81.  
  82. /*
  83.  * SaveObj
  84.  */
  85. void
  86. SaveObj(n, s)
  87.     int    n;
  88.     Vstring    s;
  89. {
  90.     char    *p = (char *)s.s;
  91.     char    buf[BUFSIZ];
  92.  
  93.         COPYANDTERMINATE(buf, p, s.n);
  94.  
  95.     saveobj(n, buf);
  96. }
  97.  
  98. /*
  99.  * LoadObj
  100.  */
  101. void
  102. LoadObj(n, s)
  103.     int    n;
  104.     Vstring    s;
  105. {
  106.     char    *p = (char *)s.s;
  107.     char    buf[BUFSIZ];
  108.  
  109.         COPYANDTERMINATE(buf, p, s.n);
  110.  
  111.     loadobj(n, buf);
  112. }
  113.  
  114.