
/*
 *      skew3.c     --      stuff needed for writing output file
 *
 */


#define DEBUG 1

#include <stdio.h>
#include "skew.h"

/* flags related to gadgets & output file */
extern long Flag1;
extern long Flag2A;
extern long Flag2B;
extern long Flag3;

/* flags for cycle gadgets on display #2 (zero indexing) */
extern int WaitingMode_FLAG, Variables_FLAG, Comments_FLAG, FillIns_FLAG,
            WaitingMode_START, Variables_START, Comments_START, FillIns_START;

/* name for top-level function, as well as prefix & suffix for the rest */
extern char *IDCMP_WIN_BUF, *TOP_LEVEL_BUF, *PREFIX_BUF, *SUFFIX_BUF;

extern char *IDCMP_WIN_NAME;

/*  function prototypes  */
int GenerateCode( FILE *f );
int WriteHeader( FILE *f );
int WriteGlobalDefs( FILE *f );
int WriteLocalDefs( FILE *f );
int WriteProtos( FILE *f );
int WriteTopLevelF( FILE *f );
int WriteCases( FILE *f );
int WriteFSkeletons( FILE *f );
int WriteFillIn( FILE *f );
int Pad( *f );


int GenerateCode( FILE *f )
{
    if ( Comments_FLAG != NO_COMMENTS )
        WriteHeader( f );

    /* in the current version this flag is always made global */
    fputs( "BOOL IDCMP_DONE = FALSE;", f );
    if ( Comments_FLAG == VERBOSE_COMMENTS ) {
  fputs( "      /* you may try to make this flag local */\n", f );
    }
    else
        fputs( "\n", f );

    if ( Variables_FLAG == GLOBAL )
        WriteGlobalDefs( f );

    if ( Flag3 & Prototypes_FLAG )
        WriteProtos( f );

    WriteTopLevelF( f );

    if ( Flag3 & Skeletons_FLAG )
        WriteFSkeletons( f );

    if ( Comments_FLAG != NO_COMMENTS )
  fputs( "\n    /* ------  end of Skew-generated file  ------ */\n", f );
}


int WriteHeader( FILE *f )
{
  fputs( "\n/*\n *    Code generated by SKEleton Writer V0.92\n *\n */\n\n", f );
}


int WriteGlobalDefs( FILE *f )
{
    fputs( "\n", f );

    if ( ( Flag1 & CLASS_FLAG ) | Flag2A | Flag2B )
        fputs( "ULONG  Class;\n", f );

    if ( Flag1 & CODE_FLAG )
        fputs( "USHORT Code;\n", f );

    if ( Flag1 & QUALIFIER_FLAG )
        fputs( "USHORT Qualifier;\n", f );

    if ( Flag1 & IADDRESS_FLAG )
        fputs( "APTR   IAddress;\n", f );

    if ( Flag1 & MOUSEX_FLAG )
        fputs( "SHORT  MouseX;\n", f );

    if ( Flag1 & MOUSEY_FLAG )
        fputs( "SHORT  MouseY;\n", f );

    if ( Flag1 & SECONDS_FLAG )
        fputs( "ULONG  Seconds;\n", f );

    if ( Flag1 & MICROS_FLAG )
        fputs( "ULONG  Micros;\n", f );
}


int WriteLocalDefs( FILE *f )
{
    fputs( "\n", f );

    if ( ( Flag1 & CLASS_FLAG ) | Flag2A | Flag2B  )
        fputs( "    ULONG  class;\n", f );

    if ( Flag1 & CODE_FLAG )
        fputs( "    USHORT code;\n", f );

    if ( Flag1 & QUALIFIER_FLAG )
        fputs( "    USHORT qualifier;\n", f );

    if ( Flag1 & IADDRESS_FLAG )
        fputs( "    APTR   iaddress;\n", f );

    if ( Flag1 & MOUSEX_FLAG )
        fputs( "    SHORT  mouse_x;\n", f );

    if ( Flag1 & MOUSEY_FLAG )
        fputs( "    SHORT  mouse_y;\n", f );

    if ( Flag1 & SECONDS_FLAG )
        fputs( "    ULONG  seconds;\n", f );

    if ( Flag1 & MICROS_FLAG )
        fputs( "    ULONG  micros;\n", f );
}


int WriteProtos( FILE *f )
{
    fputs( "\n", f );

    fprintf( f, "void %s( void );\n\n", TOP_LEVEL_BUF );

    if ( Flag2A & MOUSEBUTTONS_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMouseButtons%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sMouseButtons%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & MOUSEMOVE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );;
            fprintf( f, "%sMouseMove%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );;
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sMouseMove%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & DELTAMOVE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sDeltaMove%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sDeltaMove%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & GADGETDOWN_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sGadgetDown%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sGadgetDown%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & GADGETUP_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sGadgetUp%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sGadgetUp%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & CLOSEWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sCloseWindow%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sCloseWindow%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & MENUPICK_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMenuPick%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sMenuPick%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & MENUVERIFY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMenuVerify%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sMenuVerify%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & MENUHELP_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMenuHelp%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sMenuHelp%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & RAWKEY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sRawKey%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sRawKey%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & VANILLAKEY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sVanillaKey%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sVanillaKey%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & REQSET_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sReqSet%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sReqSet%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & REQCLEAR_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sReqClear%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sReqClear%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & REQVERIFY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sReqVerify%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sReqVerify%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & NEWSIZE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sNewSize%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sNewSize%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & SIZEVERIFY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sSizeVerify%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sSizeVerify%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & ACTIVEWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sActiveWindow%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sActiveWindow%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & INACTIVEWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sInactiveWindow%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sInactiveWindow%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & CHANGEWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sChangeWindow%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sChangeWindow%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & REFRESHWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sRefreshWindow%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sRefreshWindow%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & DISKINSERTED_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sDiskInserted%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sDiskInserted%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & DISKREMOVED_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sDiskRemoved%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sDiskRemoved%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & NEWPREFS_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sNewPrefs%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sNewPrefs%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & INTUITICKS_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sIntuiTicks%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sIntuiTicks%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & IDCMPUPDATE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sIDCMPUpdate%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sIDCMPUpdate%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & LONELYMESSAGE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sLonelyMessage%s(", PREFIX_BUF, SUFFIX_BUF  );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
   fprintf( f, "void %sLonelyMessage%s( void );\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
}


WriteTopLevelF( FILE *f )
{
    fprintf( f, "\n\nvoid %s()\n{", TOP_LEVEL_BUF );

    fputs( "\n    struct IntuiMessage *im;\n", f );

    if ( Variables_FLAG == LOCAL )
        WriteLocalDefs( f );

    fputs( "\n", f );

    fputs( "    while ( !IDCMP_DONE ) {\n", f );

    if ( WaitingMode_FLAG == PASSIVE ) {
  fprintf( f, "        WaitPort( %s->UserPort );\n", IDCMP_WIN_BUF );
    }
    else {
        fputs( "\n        ", f );
        WriteFillIn( f );

        if ( Comments_FLAG == VERBOSE_COMMENTS ) {
  fputs( "  /* do your thing while you're looping */\n\n", f );
        }
        else {
            fputs( "\n\n", f );
        }
    }

    if ( Flag3 & gadtools_FLAG ) {
  fprintf( f, "        while ( im = GT_GetIMsg( %s->UserPort ) ) {\n", IDCMP_WIN_BUF );
    }
    else {
  fprintf( f, "        while ( im = GetMsg( %s->UserPort ) ) {\n", IDCMP_WIN_BUF );
    }

    fputs( "\n", f );

    /* assignements */
    if ( ( Flag1 & CLASS_FLAG ) | Flag2A | Flag2B ) {
        if ( Variables_FLAG == LOCAL )
            fputs( "            class     =  im->Class;\n", f );
        else
            fputs( "            Class     =  im->Class;\n", f );
    }

    if ( Flag1 & CODE_FLAG ) {
        if ( Variables_FLAG == LOCAL )
            fputs( "            code      =  im->Code;\n", f );
        else
            fputs( "            Code      =  im->Code;\n", f );
    }

    if ( Flag1 & QUALIFIER_FLAG ) {
        if ( Variables_FLAG == LOCAL )
            fputs( "            qualifier =  im->Qualifier;\n", f );
        else
            fputs( "            Qualifier =  im->Qualifier;\n", f );
    }

    if ( Flag1 & IADDRESS_FLAG ) {
        if ( Variables_FLAG == LOCAL )
            fputs( "            iaddress  =  im->IAddress;\n", f );
        else
            fputs( "            IAddress  =  im->IAddress;\n", f );
    }

    if ( Flag1 & MOUSEX_FLAG ) {
        if ( Variables_FLAG == LOCAL )
            fputs( "            mouse_x   =  im->MouseX;\n", f );
        else
            fputs( "            MouseX    =  im->MouseX;\n", f );
    }

    if ( Flag1 & MOUSEY_FLAG ) {
        if ( Variables_FLAG == LOCAL )
            fputs( "            mouse_y   =  im->MouseY;\n", f );
        else
            fputs( "            MouseY    =  im->MouseY;\n", f );
    }

    if ( Flag1 & SECONDS_FLAG ) {
        if ( Variables_FLAG == LOCAL )
            fputs( "            seconds   =  im->Seconds;\n", f );
        else
            fputs( "            Seconds   =  im->Seconds;\n", f );
    }

    if ( Flag1 & MICROS_FLAG ) {
        if ( Variables_FLAG == LOCAL )
            fputs( "            micros    =  im->Micros;\n", f );
        else
            fputs( "            Micros    =  im->Micros;\n", f );
    }

    fputs( "\n", f );

    /* we are replying the message... */
    if ( Flag3 & gadtools_FLAG ) {
        fprintf( f, "            GT_ReplyIMsg( im );\n", IDCMP_WIN_BUF );
    }
    else {
        fprintf( f, "            ReplyMsg( im );\n", IDCMP_WIN_BUF );
    }

    /* switch */
    if ( Variables_FLAG == LOCAL ) {
        fputs( "\n            switch ( class ) {\n", f );
    }
    else {
        fputs( "\n            switch ( Class ) {\n", f );
    }

    if ( !Flag2A && !Flag2B )
        fputs( "\n\n", f );
    else
        WriteCases( f );

    fputs( "                default:\n", f );
    fputs( "                    ", f );
    WriteFillIn( f );
    fputs( "\n                    break;\n", f );
    fputs( "            }\n        }\n    }\n", f );

    fputs( "}\n", f );

}


int WriteCases( FILE *f )
{
    if ( Flag2A & MOUSEBUTTONS_FLAG || Flag2A & MOUSEBUTTONS_F_FLAG ) {
        fputs( "                case IDCMP_MOUSEBUTTONS:\n", f );
        if ( Flag2A & MOUSEBUTTONS_F_FLAG ) {
  fprintf( f, "                    %sMouseButtons%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & MOUSEMOVE_FLAG || Flag2A & MOUSEMOVE_F_FLAG ) {
        fputs( "                case IDCMP_MOUSEMOVE:\n", f );
        if ( Flag2A & MOUSEMOVE_F_FLAG ) {
  fprintf( f, "                    %sMouseMove%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & DELTAMOVE_FLAG || Flag2A & DELTAMOVE_F_FLAG ) {
        fputs( "                case IDCMP_DELTAMOVE:\n", f );
        if ( Flag2A & DELTAMOVE_F_FLAG ) {
  fprintf( f, "                    %sDeltaMove%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & GADGETDOWN_FLAG || Flag2A & GADGETDOWN_F_FLAG ) {
        fputs( "                case IDCMP_GADGETDOWN:\n", f );
        if ( Flag2A & GADGETDOWN_F_FLAG ) {
  fprintf( f, "                    %sGadgetDown%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & GADGETUP_FLAG || Flag2A & GADGETUP_F_FLAG ) {
        fputs( "                case IDCMP_GADGETUP:\n", f );
        if ( Flag2A & GADGETUP_F_FLAG ) {
  fprintf( f, "                    %sGadgetUp%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & CLOSEWINDOW_FLAG || Flag2A & CLOSEWINDOW_F_FLAG ) {
        fputs( "                case IDCMP_CLOSEWINDOW:\n", f );
        if ( Flag2A & CLOSEWINDOW_F_FLAG ) {
  fprintf( f, "                    %sCloseWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & MENUPICK_FLAG || Flag2A & MENUPICK_F_FLAG ) {
        fputs( "                case IDCMP_MENUPICK:\n", f );
        if ( Flag2A & MENUPICK_F_FLAG ) {
  fprintf( f, "                    %sMenuPick%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & MENUVERIFY_FLAG || Flag2A & MENUVERIFY_F_FLAG ) {
        fputs( "                case IDCMP_MENUVERIFY:\n", f );
        if ( Flag2A & MENUVERIFY_F_FLAG ) {
  fprintf( f, "                    %sMenuVerify%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & MENUHELP_FLAG || Flag2A & MENUHELP_F_FLAG ) {
        fputs( "                case IDCMP_MENUHELP:\n", f );
        if ( Flag2A & MENUHELP_F_FLAG ) {
  fprintf( f, "                    %sMenuHelp%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & RAWKEY_FLAG || Flag2A & RAWKEY_F_FLAG ) {
        fputs( "                case IDCMP_RAWKEY:\n", f );
        if ( Flag2A & RAWKEY_F_FLAG ) {
  fprintf( f, "                    %sRawKey%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & VANILLAKEY_FLAG || Flag2A & VANILLAKEY_F_FLAG ) {
        fputs( "                case IDCMP_VANILLAKEY:\n", f );
        if ( Flag2A & VANILLAKEY_F_FLAG ) {
  fprintf( f, "                    %sVanillaKey%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & REQSET_FLAG || Flag2A & REQSET_F_FLAG ) {
        fputs( "                case IDCMP_REQSET:\n", f );
        if ( Flag2A & REQSET_F_FLAG ) {
  fprintf( f, "                    %sReqSet%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & REQCLEAR_FLAG || Flag2A & REQCLEAR_F_FLAG ) {
        fputs( "                case IDCMP_REQCLEAR:\n", f );
        if ( Flag2A & REQCLEAR_F_FLAG ) {
  fprintf( f, "                    %sReqClear%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2A & REQVERIFY_FLAG || Flag2A & REQVERIFY_F_FLAG ) {
        fputs( "                case IDCMP_REQVERIFY:\n", f );
        if ( Flag2A & REQVERIFY_F_FLAG ) {
  fprintf( f, "                    %sReqVerify%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & NEWSIZE_FLAG || Flag2B & NEWSIZE_F_FLAG ) {
        fputs( "                case IDCMP_NEWSIZE:\n", f );
        if ( Flag2B & NEWSIZE_F_FLAG ) {
  fprintf( f, "                    %sNewSize%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & SIZEVERIFY_FLAG || Flag2B & SIZEVERIFY_F_FLAG ) {
        fputs( "                case IDCMP_SIZEVERIFY:\n", f );
        if ( Flag2B & SIZEVERIFY_F_FLAG ) {
  fprintf( f, "                    %sSizeVerify%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & ACTIVEWINDOW_FLAG || Flag2B & ACTIVEWINDOW_F_FLAG ) {
        fputs( "                case IDCMP_ACTIVEWINDOW:\n", f );
        if ( Flag2B & ACTIVEWINDOW_F_FLAG ) {
  fprintf( f, "                    %sActiveWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & INACTIVEWINDOW_FLAG || Flag2B & INACTIVEWINDOW_F_FLAG ) {
        fputs( "                case IDCMP_INACTIVEWINDOW:\n", f );
        if ( Flag2B & INACTIVEWINDOW_F_FLAG ) {
  fprintf( f, "                    %sInactiveWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & CHANGEWINDOW_FLAG || Flag2B & CHANGEWINDOW_F_FLAG ) {
        fputs( "                case IDCMP_CHANGEWINDOW:\n", f );
        if ( Flag2B & CHANGEWINDOW_F_FLAG ) {
  fprintf( f, "                    %sChangeWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & REFRESHWINDOW_FLAG || Flag2B & REFRESHWINDOW_F_FLAG ) {
        fputs( "                case IDCMP_REFRESHWINDOW:\n", f );
        if ( Flag2B & REFRESHWINDOW_F_FLAG ) {
  fprintf( f, "                    %sRefreshWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & DISKINSERTED_FLAG || Flag2B & DISKINSERTED_F_FLAG ) {
        fputs( "                case IDCMP_DISKINSERTED:\n", f );
        if ( Flag2B & DISKINSERTED_F_FLAG ) {
  fprintf( f, "                    %sDiskInserted%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & DISKREMOVED_FLAG || Flag2B & DISKREMOVED_F_FLAG ) {
        fputs( "                case IDCMP_DISKREMOVED:\n", f );
        if ( Flag2B & DISKREMOVED_F_FLAG ) {
  fprintf( f, "                    %sDiskRemoved%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & NEWPREFS_FLAG || Flag2B & NEWPREFS_F_FLAG ) {
        fputs( "                case IDCMP_NEWPREFS:\n", f );
        if ( Flag2B & NEWPREFS_F_FLAG ) {
  fprintf( f, "                    %sNewPrefs%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & INTUITICKS_FLAG || Flag2B & INTUITICKS_F_FLAG ) {
        fputs( "                case IDCMP_INTUITICKS:\n", f );
        if ( Flag2B & INTUITICKS_F_FLAG ) {
  fprintf( f, "                    %sIntuiTicks%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & IDCMPUPDATE_FLAG || Flag2B & IDCMPUPDATE_F_FLAG ) {
        fputs( "                case IDCMP_IDCMPUPDATE:\n", f );
        if ( Flag2B & IDCMPUPDATE_F_FLAG ) {
  fprintf( f, "                    %sIDCMPUpdate%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }

    if ( Flag2B & LONELYMESSAGE_FLAG || Flag2B & LONELYMESSAGE_F_FLAG ) {
      fputs( "                case IDCMP_LONELYMESSAGE:\n", f );
        if ( Flag2B & LONELYMESSAGE_F_FLAG ) {
  fprintf( f, "                    %sLonelyMessage%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            if ( Variables_FLAG == LOCAL )
                WriteFillIn( f );
            Pad( f );
            fputs( ");\n", f );
        }
        else {
            fputs( "                    ", f );
            WriteFillIn( f );
            fputs( "\n", f );
        }
        fputs( "                    break;\n", f );
    }
}


WriteFSkeletons( FILE *f )
{
    fputs( "\n\n", f );

    if ( Flag2A & MOUSEBUTTONS_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMouseButtons%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sMouseButtons%s( void ) \n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & MOUSEMOVE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMouseMove%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sMouseMove%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & DELTAMOVE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sDeltaMove%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sDeltaMove%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & GADGETDOWN_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sGadgetDown%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sGadgetDown%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & GADGETUP_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sGadgetUp%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sGadgetUp%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & CLOSEWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sCloseWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sCloseWindow%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & MENUPICK_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMenuPick%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sMenuPick%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & MENUVERIFY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMenuVerify%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sMenuVerify%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & MENUHELP_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sMenuHelp%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sMenuHelp%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & RAWKEY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sRawKey%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sRawKey%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & VANILLAKEY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sVanillaKey%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sVanillaKey%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & REQSET_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sReqSet%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sReqSet%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & REQCLEAR_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sReqClear%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sReqClear%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2A & REQVERIFY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sReqVerify%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sReqVerify%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & NEWSIZE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sNewSize%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sNewSize%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & SIZEVERIFY_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sSizeVerify%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sSizeVerify%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & ACTIVEWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sActiveWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sActiveWindow%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & INACTIVEWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sInactiveWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sInactiveWindow%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & CHANGEWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sChangeWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sChangeWindow%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & REFRESHWINDOW_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sRefreshWindow%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sRefreshWindow%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & DISKINSERTED_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sDiskInserted%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sDiskInserted%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & DISKREMOVED_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sDiskRemoved%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sDiskRemoved%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & NEWPREFS_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sNewPrefs%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sNewPrefs%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & INTUITICKS_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sIntuiTicks%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sIntuiTicks%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & IDCMPUPDATE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sIDCMPUpdate%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {
  fprintf( f, "\nvoid %sIDCMPUpdate%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
    if ( Flag2B & LONELYMESSAGE_F_FLAG ) {
        if ( Variables_FLAG == LOCAL ) {
            WriteFillIn( f );
            Pad( f );
            fprintf( f, "%sLonelyMessage%s(", PREFIX_BUF, SUFFIX_BUF );
            Pad( f );
            WriteFillIn( f );
            Pad( f );
            fputs( ")\n{\n    ", f );
            WriteFillIn( f );
            fputs( "\n}\n\n", f );
        }
        else {

  fprintf( f, "\nvoid %sLonelyMessage%s( void )\n{\n\n}\n\n", PREFIX_BUF, SUFFIX_BUF );
        }
    }
}


int WriteFillIn( FILE *f )
{
    switch ( FillIns_FLAG ) {
        case 0:
            return( 0 );
        case 1:
            fputs( "@@@@@@@@@@", f );
            break;
        case 2:
            fputs( "/* @@ */", f );
            break;
        case 3:
            fputs( "@@", f );
            break;
    }
}


int Pad( *f )
{
    if ( FillIns_FLAG != FILLS_NONE && Variables_FLAG == LOCAL ) {
        fputs( " ", f );
    }
}