home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / szadb21b / source / src / prt.c < prev    next >
C/C++ Source or Header  |  1990-05-16  |  2KB  |  82 lines

  1. /* Copyright (c) 1990 by Sozobon, Limited.  Authors: Johann Ruegg, Don Dugger
  2.  *
  3.  * Permission is granted to anyone to use this software for any purpose
  4.  * on any computer system, and to redistribute it freely, with the
  5.  * following restrictions:
  6.  * 1) No charge may be made other than reasonable charges for reproduction.
  7.  * 2) Modified versions must be clearly marked as such.
  8.  * 3) The authors are not responsible for any harmful consequences
  9.  *    of using this software, even if they result from defects in it.
  10.  *
  11.  *    prt.c
  12.  */
  13.  
  14. #include "adb.h"
  15.  
  16. prtf (fmt, ap)
  17.     char           *fmt;
  18.     int             ap;
  19. {
  20.     extern char    *ccodes[], *sizes[];
  21.     register long  *lp, l;
  22.     register int   *p, opc;
  23.     register char   c, **cp;
  24.  
  25.     p = ≈
  26.     while (c = *fmt++)
  27.     switch (c) {
  28.     case '%':
  29.         switch (c = *fmt++) {
  30.         case 'i':
  31.         l = (long) *p++;
  32.         if (l < 0) {
  33.             l = -l;
  34.             putchr ('-');
  35.         }
  36.         prtn (l, 0);
  37.         break;
  38.         case 'I':
  39.         lp = (long *) p;
  40.         if ((l = *lp++) < 0) {
  41.             l = -l;
  42.             putchr ('-');
  43.         }
  44.         prtn (l, 0);
  45.         p = (int *) lp;
  46.         break;
  47.         case 'A':
  48.         lp = (long *) p;
  49.         l = *lp++;
  50.         prtad (l);
  51.         p = (int *) lp;
  52.         break;
  53.         case 'd':
  54.         putchr ('d');
  55.         putchr ('0' + *p++);
  56.         break;
  57.         case 'a':
  58.         if ((opc = *p++) == 7)
  59.             prt ("sp");
  60.         else {
  61.             putchr ('a');
  62.             putchr ('0' + opc);
  63.         }
  64.         break;
  65.         case 'c':
  66.         putchr (*p++);
  67.         break;
  68.         case 's':
  69.         cp = (char **) p;
  70.         prt (*cp++);
  71.         p = (int *) cp;
  72.         break;
  73.         }
  74.         break;
  75.     default:
  76.         putchr (c);
  77.         break;
  78.  
  79.     }
  80.     return;
  81. }
  82.