home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Utilities
/
GDir
/
GDir.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-08-03
|
2KB
|
108 lines
;/* GDir v2.0 - Mark Weller (Aug 2000)
; Copies dir/file name selected from ASL file requester to ClipBoard
dcc -o GDir gdir.c clipftxt.c
quit
*/
#include <exec/types.h>
#include <exec/ports.h>
#include <exec/io.h>
#include <exec/memory.h>
#include <exec/exec.h>
#include <devices/clipboard.h>
#include <libraries/dosextens.h>
#include <libraries/dos.h>
#include <libraries/asl.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <intuition/intuition.h>
char *version = "$VER: GDir v(02-08-2000)2.0";
/* struct IntuitionBase *IntuitionBase; */
/*--Functions--*/
extern int WriteLong(struct IOClipReq *,long *);
extern struct IOClipReq *CBOpen(ULONG);
extern int CBWFTXT(struct IOClipReq *,char *);
extern void CBClose(struct IOClipReq *);
int GDirectory(char *);
main(int argc, char *argv[])
{
struct IOClipReq *ClipIO;
int error = '0';
int err = 0;
char dirname[200];
/* if(!(IntuitionBase=(struct IntuitionBase *)OpenLibrary("intuition.library",0L)))
{ exit(0); } */
err = GDirectory(dirname);
if(err == 1) { printf("Gdir -: ERROR?\n"); }
else {
/* Open clipboard.device unit 0 */
if(!(ClipIO=CBOpen(0L)))
{
printf("exit error - Can't open ClipBoard\n");
}
else
{
CBWFTXT(ClipIO,dirname);
CBClose(ClipIO);
}
}
/* if(IntuitionBase) CloseLibrary((struct Library *)IntuitionBase); */
exit(0);
}
int GDirectory(char *dirbuff)
{
struct Library *AslBase = NULL;
struct TagItem frtags[] =
{
ASL_Hail, (ULONG)"GDir v2.0 Mark Weller (c)2000",
ASL_Height, 200,
ASL_Width, 400,
ASL_LeftEdge, 50,
ASL_TopEdge, 25,
ASL_OKText, (ULONG)"OK",
ASL_CancelText, (ULONG)"Cancel",
/* ASL_File, (ULONG)"my file", */
/* ASL_Dir, (ULONG)"RAM:", */
TAG_DONE
};
struct FileRequester *fr;
int err = 0;
char filebuff[50];
if(AslBase=(struct Library *)OpenLibrary("asl.library",0L))
{
if(fr = (struct FileRequester *)AllocAslRequest(ASL_FileRequest, frtags))
{
if (AslRequest(fr, NULL))
{
sprintf(dirbuff,"%s",fr->rf_Dir);
sprintf(filebuff,"%s",fr->rf_File);
AddPart(dirbuff,filebuff,200);
}
FreeAslRequest(fr);
}
else err = 1;
CloseLibrary(AslBase);
}
return(err);
}