home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_progs
/
prt_util
/
printfls.lha
/
Source.lha
/
Source
/
prf_info.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-06-16
|
4KB
|
117 lines
/* prf_info.c */
/* v 091 */
#include "prf.h"
#include <dos/datetime.h>
long __regargs PrintProgInfo(struct prf_info *info,UBYTE *name)
{
long rc = CMD_NEUTRAL;
struct FileInfoBlock *fib;
BPTR lock;
FILE *printer;
struct DateTime dt;
UBYTE d[40],t[40];
dt.dat_StrDate = d;
dt.dat_StrTime = t;
dt.dat_StrDay = NULL;
dt.dat_Format = FORMAT_DOS;
if(fib = (struct FileInfoBlock *)AllocDosObject(DOS_FIB,NULL))
{
if(lock = Lock(name,ACCESS_READ))
{
Examine(lock,fib);
if(printer = fopen("prt:","w"))
{
PrintSettings(info,printer);
BuildStatusline(info,name);
if(*(info->Statusline)) fprintf(printer,"%s\n",info->Statusline);
if(*(info->Headline)) fprintf(printer,"%s\n",info->Headline);
fprintf(printer,"\n" T_PROGINFO_HEADER " %s\n",name);
fprintf(printer,T_PROGINFO_CHANGED);
memcpy(&dt.dat_Stamp,&fib->fib_Date,sizeof(struct DateStamp));
DateToStr(&dt);
fprintf(printer," %s %s\n",d,t);
fprintf(printer,T_PROGINFO_BYTES ":%ld\n",fib->fib_Size);
fprintf(printer,T_PROGINFO_BLOCKS ":%ld\n",fib->fib_NumBlocks);
fprintf(printer,T_PROGINFO_BITS_H "\n");
if(!(fib->fib_Protection & FIBF_READ ))fprintf(printer,T_PROGINFO_R "\n");
else if(fib->fib_Protection & FIBF_READ )fprintf(printer,T_NOT T_PROGINFO_R "\n");
if(!(fib->fib_Protection & FIBF_WRITE ))fprintf(printer,T_PROGINFO_W "\n");
else if(fib->fib_Protection & FIBF_WRITE )fprintf(printer,T_NOT T_PROGINFO_W "\n");
if(!(fib->fib_Protection & FIBF_DELETE ))fprintf(printer,T_PROGINFO_D "\n");
else if(fib->fib_Protection & FIBF_DELETE )fprintf(printer,T_NOT T_PROGINFO_D "\n");
if(!(fib->fib_Protection & FIBF_ARCHIVE))fprintf(printer,T_PROGINFO_A "\n");
else if(fib->fib_Protection & FIBF_ARCHIVE)fprintf(printer,T_NOT T_PROGINFO_A "\n");
if(!(fib->fib_Protection & FIBF_PURE ))fprintf(printer,T_NOT T_PROGINFO_P "\n");
else if(fib->fib_Protection & FIBF_PURE )fprintf(printer, T_PROGINFO_P "\n");
if(*fib->fib_Comment)fprintf(printer,T_PROGINFO_FILENOTE ": %s\n",fib->fib_Comment);
if(*(info->Footline))fprintf(printer,"%s\n",info->Footline);
fprintf(printer,T_PROGINFO_FOOT "%s \n\n",name);
if(info->flags.ff) fprintf(printer,"\f");
fclose(printer);
}
UnLock(lock);
}
FreeDosObject(DOS_FIB,(APTR)fib);
}
return (rc);
}
long __regargs PrintIconInfo(struct prf_info *info,UBYTE *name)
{
long rc = CMD_NEUTRAL;
struct DiskObject *dobj;
char buffer[30];
char filename[STR_SIZE];
FILE *printer;
if(!stricmp(name + (strlen(name) - 5), ".info"))
stccpy(filename,name,strlen(name) - 4);
else strcpy(filename,name);
if(dobj = GetDiskObject(filename))
{
if(printer = fopen("prt:","w"))
{
PrintSettings(info,printer);
BuildStatusline(info,name);
if(*(info->Statusline)) fprintf(printer,"%s\n",info->Statusline);
if(*(info->Headline)) fprintf(printer,"%s\n",info->Headline);
fprintf(printer,"\n" T_ICONINFO_HEADER "%s\n",name);
switch(dobj->do_Type)
{
case WBDISK : strcpy(buffer,ITYPE_DISK) ;break;
case WBDRAWER : strcpy(buffer,ITYPE_DRAWER) ;break;
case WBTOOL : strcpy(buffer,ITYPE_TOOL) ;break;
case WBPROJECT : strcpy(buffer,ITYPE_PROJECT) ;break;
case WBGARBAGE : strcpy(buffer,ITYPE_GARBAGE) ;break;
case WBDEVICE : strcpy(buffer,ITYPE_DEVICE) ;break;
case WBAPPICON : strcpy(buffer,ITYPE_APP) ;break;
default : strcpy(buffer,ITYPE_UNKNOWN) ;break;
}
fprintf(printer, T_ICONINFO_TTYPE " %s\n",buffer);
if(dobj->do_Type == WBTOOL)
{
fprintf(printer, T_ICONINFO_STACK " %ld\n",dobj->do_StackSize);
}
if(*dobj->do_DefaultTool)
fprintf(printer, T_ICONINFO_DEFTOOL " %s\n",dobj->do_DefaultTool);
if(*dobj->do_ToolTypes[0])
{
fprintf(printer, T_ICONINFO_TOOLTYPE "\n");
while(*dobj->do_ToolTypes)
{
fprintf(printer,"%s\n",*dobj->do_ToolTypes);
*(dobj->do_ToolTypes)++;
}
}
fprintf(printer,"\n" T_ICONINFO_FOOT " %s \n\n",name);
if(*(info->Footline))fprintf(printer,"%s\n",info->Footline);
if(info->flags.ff) fprintf(printer,"\f");
fclose(printer);
}
FreeDiskObject(dobj);
}
return (rc);
}