home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Utilities / GDir / GDir.c < prev    next >
C/C++ Source or Header  |  2000-08-03  |  2KB  |  108 lines

  1. ;/*  GDir v2.0 -  Mark Weller (Aug 2000)
  2. ;    Copies dir/file name selected from ASL file requester to ClipBoard
  3.  
  4. dcc -o GDir gdir.c clipftxt.c
  5. quit
  6. */
  7.  
  8. #include <exec/types.h>
  9. #include <exec/ports.h>
  10. #include <exec/io.h>
  11. #include <exec/memory.h>
  12. #include <exec/exec.h>
  13. #include <devices/clipboard.h>
  14. #include <libraries/dosextens.h>
  15. #include <libraries/dos.h>
  16. #include <libraries/asl.h>
  17. #include <ctype.h>
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #include <intuition/intuition.h>
  21.  
  22. char *version = "$VER: GDir v(02-08-2000)2.0";
  23.  
  24. /* struct IntuitionBase *IntuitionBase; */
  25.  
  26. /*--Functions--*/
  27.  
  28. extern int WriteLong(struct IOClipReq *,long *);
  29. extern struct IOClipReq *CBOpen(ULONG);
  30. extern int CBWFTXT(struct IOClipReq *,char *);
  31. extern void CBClose(struct IOClipReq *);
  32.  
  33. int GDirectory(char *);
  34.  
  35. main(int argc, char *argv[])
  36. {
  37. struct IOClipReq *ClipIO;
  38. int    error = '0';
  39. int    err = 0;
  40. char   dirname[200];
  41.  
  42. /* if(!(IntuitionBase=(struct IntuitionBase *)OpenLibrary("intuition.library",0L)))
  43.      { exit(0); }  */
  44.  
  45.    err = GDirectory(dirname);
  46.  
  47.    if(err == 1) {  printf("Gdir -: ERROR?\n"); }
  48.    else {
  49.          /* Open clipboard.device unit 0 */
  50.          if(!(ClipIO=CBOpen(0L)))
  51.            {
  52.             printf("exit error - Can't open ClipBoard\n");
  53.            }
  54.          else
  55.            {
  56.             CBWFTXT(ClipIO,dirname);
  57.             CBClose(ClipIO);
  58.            }
  59.         }
  60.   /* if(IntuitionBase)     CloseLibrary((struct Library *)IntuitionBase); */
  61.  
  62.    exit(0);
  63. }
  64.  
  65. int GDirectory(char *dirbuff)
  66. {
  67. struct Library *AslBase = NULL;
  68.  
  69. struct TagItem frtags[] =
  70. {
  71.     ASL_Hail,       (ULONG)"GDir v2.0    Mark Weller (c)2000",
  72.     ASL_Height,     200,
  73.     ASL_Width,      400,
  74.     ASL_LeftEdge,   50,
  75.     ASL_TopEdge,    25,
  76.     ASL_OKText,     (ULONG)"OK",
  77.     ASL_CancelText, (ULONG)"Cancel",
  78.  /* ASL_File,       (ULONG)"my file", */
  79.  /* ASL_Dir,        (ULONG)"RAM:",    */
  80.     TAG_DONE
  81. };
  82.  
  83. struct FileRequester *fr;
  84. int err = 0;
  85. char filebuff[50];
  86.  
  87.  
  88.     if(AslBase=(struct Library *)OpenLibrary("asl.library",0L))
  89.       {
  90.        if(fr = (struct FileRequester *)AllocAslRequest(ASL_FileRequest, frtags))
  91.          {
  92.             if (AslRequest(fr, NULL))
  93.             {
  94.                 sprintf(dirbuff,"%s",fr->rf_Dir);
  95.                 sprintf(filebuff,"%s",fr->rf_File);
  96.                 AddPart(dirbuff,filebuff,200);
  97.             }
  98.             FreeAslRequest(fr);
  99.          }
  100.         else  err = 1;
  101.  
  102.         CloseLibrary(AslBase);
  103.       }
  104.  
  105.   return(err);
  106. }
  107.  
  108.