home *** CD-ROM | disk | FTP | other *** search
- /* 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);
- }
-
-