home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / develop / gadtoolsbox / gengtxsource / source / support.c < prev   
C/C++ Source or Header  |  1995-02-27  |  2KB  |  98 lines

  1. /*
  2. **      $Filename: Support.c $
  3. **      $Release: 1.0 $
  4. **      $Revision: 38.1 $
  5. **
  6. **      GenGTXSource support routines.
  7. **
  8. **      (C) Copyright 1992 Jaba Development.
  9. **          Written by Jan van den Baard.
  10. **/
  11.  
  12. #include "GenGTXSource.h"
  13.  
  14. /*
  15.  *      Exported routines.
  16.  */
  17. Prototype ULONG MyFPrintf( BPTR, UBYTE *, ... );
  18. Prototype ULONG Print( UBYTE *, ... );
  19. Prototype LONG SpecialRequest( UBYTE *, UBYTE *, ... );
  20. Prototype struct Library *OpenDiskLibrary( UBYTE *, ULONG );
  21.  
  22. /*
  23.  *      Perform formatted output to an AmigaDOS stream.
  24.  */
  25. ULONG MyFPrintf( BPTR stream, UBYTE *format, ... )
  26. {
  27.     va_list         arguments;
  28.     ULONG           rc;
  29.  
  30.     va_start( arguments, format );
  31.  
  32.     rc = VFPrintf( stream, format, arguments );
  33.  
  34.     va_end( arguments );
  35.  
  36.     return( rc );
  37. }
  38.  
  39. /*
  40.  *      Print information on the console if:
  41.  *          A) Where not running QUIET
  42.  *          B) Where running quiet and it is an error
  43.  */
  44. ULONG Print( UBYTE *format, ... )
  45. {
  46.     va_list         arguments;
  47.     ULONG           rc;
  48.  
  49.     va_start( arguments, format );
  50.  
  51.     if ( stdOut ) {
  52.         if ( ! Arguments.Quiet || ! strncmp( format, STRING( MSG_ERROR ), strlen( STRING( MSG_ERROR ))))
  53.             rc = VFPrintf( stdOut, format, arguments );
  54.     }
  55.  
  56.     va_end( arguments );
  57.  
  58.     return( rc );
  59. }
  60.  
  61. /*
  62.  *      Put up a requester when a disk library failed to open.
  63.  */
  64. LONG SpecialRequest( UBYTE *gadgets, UBYTE *body, ... )
  65. {
  66.     static struct EasyStruct req = {
  67.         sizeof( struct EasyRequest ), NULL, NULL, NULL, NULL };
  68.     va_list                  args;
  69.     LONG                     rc;
  70.  
  71.     va_start( args, body );
  72.  
  73.     req.es_Title        = "GenGTXSource";
  74.     req.es_TextFormat   = body;
  75.     req.es_GadgetFormat = gadgets;
  76.  
  77.     rc = EasyRequestArgs( NULL, &req, NULL, args );
  78.  
  79.     va_end( args );
  80.  
  81.     return( rc );
  82. }
  83.  
  84. /*
  85.  *      A special OpenLibrary routine.
  86.  */
  87. struct Library *OpenDiskLibrary( UBYTE *name, ULONG version )
  88. {
  89.     struct Library  *lib;
  90.     LONG             ok;
  91.  
  92.     do {
  93.         if ( ! ( lib = OpenLibrary( name, version )))
  94.             ok = SpecialRequest( "Retry|Cancel", "%s V%ld++ failed to open!", name, version );
  95.     } while( ! lib && ok );
  96.     return( lib );
  97. }
  98.