

/*
**  ***********************************************************************
**
**  ScanHandlerSDefine (c) by Stefan Schor
**
**  ***********************************************************************
*/


#include <exec/types.h>

#define UPPER(a) ((a) & 95)

__asm
ULONG
ScanHandlerSDefine(register __d0 ULONG len, register __a0 char **text)
{
    const char *version = "$VER: SDefine 1.0 (24.3.94)";

    if (len > 9)
    {
        char *pos = *text;
        int i=0;

        if (          pos[i++]  == '#'
             && UPPER(pos[i++]) == 'D'
             && UPPER(pos[i++]) == 'E'
             && UPPER(pos[i++]) == 'F'
             && UPPER(pos[i++]) == 'I'
             && UPPER(pos[i++]) == 'N'
             && UPPER(pos[i++]) == 'E'
             &&       pos[i++]  == ' ' )

        {
            /* Der Text `#define ' ist schon einmal da ! */


            for (len -= i; len && pos[i]==' '; i++, len-- );    /* Alle Spaces übersehen */

            *text = &pos[i];                                    /* Hier beginnt der Text */

            while (len && pos[i]!=' ' && pos[i]!='(')
            {
                 i++;
                 len--;                                         /* Solange Wort geht     */
            }

            return ((ULONG)&pos[i] - (ULONG)*text);             /* Länge zurück          */
        }
    }



    return 0;
}
