home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / text / edit / macro / scanner / sdefines.c < prev    next >
C/C++ Source or Header  |  1994-09-28  |  1KB  |  58 lines

  1.  
  2.  
  3. /*
  4. **  ***********************************************************************
  5. **
  6. **  ScanHandlerSDefine (c) by Stefan Schor
  7. **
  8. **  ***********************************************************************
  9. */
  10.  
  11.  
  12. #include <exec/types.h>
  13.  
  14. #define UPPER(a) ((a) & 95)
  15.  
  16. __asm
  17. ULONG
  18. ScanHandlerSDefine(register __d0 ULONG len, register __a0 char **text)
  19. {
  20.     const char *version = "$VER: SDefine 1.0 (24.3.94)";
  21.  
  22.     if (len > 9)
  23.     {
  24.         char *pos = *text;
  25.         int i=0;
  26.  
  27.         if (          pos[i++]  == '#'
  28.              && UPPER(pos[i++]) == 'D'
  29.              && UPPER(pos[i++]) == 'E'
  30.              && UPPER(pos[i++]) == 'F'
  31.              && UPPER(pos[i++]) == 'I'
  32.              && UPPER(pos[i++]) == 'N'
  33.              && UPPER(pos[i++]) == 'E'
  34.              &&       pos[i++]  == ' ' )
  35.  
  36.         {
  37.             /* Der Text `#define ' ist schon einmal da ! */
  38.  
  39.  
  40.             for (len -= i; len && pos[i]==' '; i++, len-- );    /* Alle Spaces übersehen */
  41.  
  42.             *text = &pos[i];                                    /* Hier beginnt der Text */
  43.  
  44.             while (len && pos[i]!=' ' && pos[i]!='(')
  45.             {
  46.                  i++;
  47.                  len--;                                         /* Solange Wort geht     */
  48.             }
  49.  
  50.             return ((ULONG)&pos[i] - (ULONG)*text);             /* Länge zurück          */
  51.         }
  52.     }
  53.  
  54.  
  55.  
  56.     return 0;
  57. }
  58.