circle.c 743 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * The input and output function for the "circle type".
  3. */
  4. #include <stdio.h>
  5. #include <mi.h>
  6. #include "circle.h"
  7. #ifdef _WIN32
  8. #define DllExport __declspec(dllexport)
  9. #else
  10. #define DllExport
  11. #endif
  12. DllExport
  13. circle_t *
  14. circle_input( mi_lvarchar *text)
  15. {
  16. circle_t *s;
  17. char *cp;
  18. int ret;
  19. s = (circle_t *) mi_zalloc( sizeof(circle_t) );
  20. cp = mi_lvarchar_to_string( text );
  21. sscanf( cp , "%lf %lf %lf", &s->x, &s->y, &s->radius);
  22. return( s );
  23. }
  24. DllExport
  25. mi_lvarchar *
  26. circle_output(circle_t *s )
  27. {
  28. char buf[512];
  29. mi_lvarchar *val;
  30. sprintf( buf, "x = %lf, y = %lf, radius = %lf", s->x, s->y, s->radius);
  31. val = mi_new_var( strlen(buf) );
  32. mi_set_vardata( val, buf );
  33. return( val );
  34. }