home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / disks / disk405.lzh / GIFMachine / Sources / myprintf.c < prev    next >
C/C++ Source or Header  |  1990-11-17  |  712b  |  39 lines

  1. #include <proto/dos.h>
  2. #include <stdarg.h>
  3.  
  4. void RawDoFmt(char *, APTR, void(*)(), APTR);
  5. #pragma syscall RawDoFmt 20a ba9804
  6.  
  7. void __stdargs MyPrintf(char *fmt, ...)
  8. {
  9.     va_list args;
  10.  
  11.     va_start(args, fmt);
  12.     VPrintf((UBYTE *)fmt, (LONG *)args);
  13.     Flush(Output());
  14.     va_end(args);
  15. }
  16.  
  17. static void __regargs MySPrintfSupp(char);
  18.  
  19. void __stdargs MySPrintf(char *buf, char *fmt, ...)
  20. {
  21.     va_list args;
  22.  
  23.     va_start(args, fmt);
  24.     RawDoFmt(fmt, (APTR)args, MySPrintfSupp, (APTR)buf)
  25.     va_end(args);
  26. }
  27.  
  28. extern long __builtin_getreg(int);
  29. extern void __builtin_putreg(int, char *);
  30.  
  31. static void __regargs MySPrintfSupp(char Char)
  32. {
  33.     char *ptr;
  34.  
  35.     ptr = (char *)__builtin_getreg(11);
  36.     *ptr++ = Char;
  37.     __builtin_putreg(11, ptr);
  38. }
  39.