home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0600
/
CCE_0678.ZIP
/
CCE_0678.PD
/
E_GEM135
/
SOURCE
/
SCRAP.C
< prev
next >
Wrap
C/C++ Source or Header
|
1994-03-13
|
2KB
|
135 lines
#include <string.h>
#include <stdio.h>
#include "proto.h"
int scrp_init(char *path)
{
reg char scrap[256];
reg long handle,len;
scrp_read(scrap);
if (scrap[0]=='\0')
{
if (path)
strcpy(scrap,path);
else if ((path = getenv("CLIPBRD"))!=NULL || (path = getenv("SCRAPDIR"))!=NULL)
strcpy(scrap,path);
else
{
reg long ssp;
strcpy(scrap,"X:\\CLIPBRD");
ssp = Super(NULL);
*scrap = (char) (*((int *) 0x446)+65);
Super((void *) ssp);
}
}
if ((len = strlen(scrap))>0)
{
len--;
if (scrap[len]=='\\')
scrap[len]='\0';
handle = Dcreate(scrap);
if (handle>=0 || handle==-36)
{
scrp_write(strcat(scrap,"\\"));
return(TRUE);
}
}
scrp_write("");
return(FALSE);
}
void scrp_clear(int all)
{
reg char scrap[256];
scrp_read(scrap);
if (scrap[0]!='\0')
{
reg DTA *dta=Fgetdta();
reg char xpath[256],xname[256];
strmfp(xpath,scrap,(all) ? "*.*" : "SCRAP.*");
if (!Fsfirst(xpath,0))
do
{
strmfp(xname,scrap,dta->d_fname);
remove(xname);
}
while (!Fsnext());
}
}
int scrp_length()
{
reg char scrap[256];
scrp_read(scrap);
if (scrap[0]!='\0')
{
reg DTA *dta=Fgetdta();
reg char xpath[256];
strmfp(xpath,scrap,"SCRAP.*");
if (!Fsfirst(xpath,0))
{
reg long length = 0;
do
length += dta->d_length;
while (!Fsnext());
return ((int) ((length+512)>>10));
}
}
return (0);
}
int scrp_find(char *extension,char *filename)
{
reg char scrap[256];
scrp_read(scrap);
if (scrap[0]!='\0')
{
reg DTA *dta=Fgetdta();
reg char xpath[256];
reg int c = 0;
strcat(strmfp(xpath,scrap,"SCRAP."),extension);
if(!Fsfirst(xpath,0))
{
c++;
strmfp(filename,scrap,dta->d_fname);
while (!Fsnext()) c++;
return (c);
}
}
return (0);
}
char *strmfp(char *dest,char *path,char *file)
{
reg char *last;
reg int len;
if (path)
strcpy(dest,path);
if ((len = (int) strlen(dest))>0)
{
last = dest + len - 1;
if (*last!='\\')
{
*++last = '\\';
*++last = '\0';
}
}
return(strcat(dest,file));
}