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_saveprefs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-06-16
|
14KB
|
388 lines
/* prf_saveprefs.c */
/* V091 9-3-92 */
#include "prf.h"
UWORD chip saveprefsiconI1Data[] =
{
/* Plane 0 */
0x0000,0x0000,0x0000,0x7FFF,0xFFFF,0xFFFC,0x7FE0,0x0000,
0x07FC,0x7FE4,0x4688,0x07FC,0x7FE0,0x0000,0x07FC,0x7FE7,
0xF580,0x07FC,0x7FE0,0x0000,0x07FC,0x7FE7,0xFFFD,0x87FC,
0x7FE6,0x0000,0x07FC,0x7FE3,0x7F00,0x07FC,0x7FFF,0xFFFF,
0xFFFC,0x7000,0x0000,0x000C,0x77FF,0xFFFF,0xFFEC,0x77FF,
0xFFFF,0xB6EC,0x77FF,0xFFFF,0xFFEC,0x77FF,0xFFFF,0xFFEC,
0x7000,0x0000,0x000C,0x7FFF,0xFFFF,0xFFFC,0x7FF0,0x3FFE,
0x7FFC,0x7FFB,0x9FFD,0xFFFC,0x7FFB,0xDFFD,0xFFFC,0x7FFB,
0x8998,0xC7FC,0x7FF8,0x336D,0xB7FC,0x7FFB,0xF70D,0x9FFC,
0x7FFB,0xF77D,0xE7FC,0x7FFB,0xF735,0xB7FC,0x7FF1,0xE38D,
0x8FFC,0x7FFF,0xFFFF,0xFFFC,0x0000,0x0000,0x0000,
/* Plane 1 */
0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,
0xFFFE,0xFFFB,0xB977,0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFF8,
0x0A7F,0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFF8,0x0002,0x7FFE,
0xFFF9,0xFFFF,0xFFFE,0xFFFC,0x80FF,0xFFFE,0xFFE0,0x0000,
0x03FE,0xFFFF,0xFFFF,0xFFFE,0xF800,0x0000,0x001E,0xF800,
0x0000,0x491E,0xF800,0x0000,0x001E,0xF800,0x0000,0x001E,
0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,
0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFFF,
0xFFFF,0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,0xFFFE,
0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,
0xFFFE,0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFFFF,0xFFFE,
};
struct Image saveprefsiconI1 =
{
0, 0, /* Upper left corner */
47, 29, 2, /* Width, Height, Depth */
saveprefsiconI1Data, /* Image data */
0x0003, 0x0000, /* PlanePick, PlaneOnOff */
NULL /* Next image */
};
UBYTE *saveprefsimageTools[] =
{
"CONSOLE=con:0/0/100/100/PrintFiles/AUTO",
"DONOTWAIT",
NULL
};
struct DiskObject saveprefsicon =
{
WB_DISKMAGIC, /* Magic Number */
WB_DISKVERSION, /* Version */
{ /* Embedded Gadget Structure */
NULL, /* Next Gadget Pointer */
0, 0, 47, 30, /* Left,Top,Width,Height */
GADGIMAGE | GADGBACKFILL, /* Flags */
RELVERIFY, /* Activation Flags */
BOOLGADGET, /* Gadget Type */
(APTR)&saveprefsiconI1, /* Render Image */
NULL, /* Select Image */
NULL, /* Gadget Text */
NULL, /* Mutual Exclude */
NULL, /* Special Info */
0, /* Gadget ID */
NULL, /* User Data */
},
WBPROJECT, /* Icon Type */
(char *)"SYS:rexxc/rx", /* Default Tool */
saveprefsimageTools, /* Tool Type Array */
NO_ICON_POSITION, /* Current X */
NO_ICON_POSITION, /* Current Y */
NULL, /* Drawer Structure */
NULL, /* Tool Window */
0 /* Stack Size */
};
struct st
{
UBYTE *line;
UBYTE *comment;
};
static struct st start_text[] =
{
START_L1,COMMENT_L1,
START_L2,COMMENT_L2,
START_L3,COMMENT_L3,
START_L4,COMMENT_L4,
START_L5,COMMENT_L5,
START_L6,COMMENT_L6,
NULL,NULL,
};
void __regargs SavePreferences(struct prf_info *info,UBYTE *name)
{
FILE *prefs;
UBYTE filename[STR_SIZE];
UBYTE *sp = " ";
struct FileNameNode *n;
strcpy(sp,"-CFWSRPIL");
if(name) strcpy(filename,name);
else Prf_SavePrefs(info,filename);
if(info->Swd)
{
SwdTags[0].ti_Data = (ULONG)info->Swd->LeftEdge;
SwdTags[1].ti_Data = (ULONG)info->Swd->TopEdge;
}
if(*filename)
{
if(prefs = fopen(filename,"w"))
{
fprintf(prefs,T_PREFSHEADER);
if(info->flags.sp_start)
{
long i = 0L;
fprintf(prefs,("\n"));
while(start_text[i].line)
{
fprintf(prefs,"%s ",start_text[i].line);
if(info->flags.sp_comment)
fprintf(prefs,"%s ",start_text[i].comment);
fprintf(prefs,("\n"));
i++;
}
fprintf(prefs,("\n"));
}
else fprintf(prefs,T_PREFSHEADER1);
fprintf(prefs,T_PREFSHEADER2);
if(info->flags.sp_reset)
if(info->flags.sp_comment)
fprintf(prefs, T_RX_RESET RT_RX_RESET"\n");
else fprintf(prefs, T_RX_RESET "\n");
if(info->flags.cpi == 1)
if(info->flags.sp_comment)
fprintf(prefs, T_RX_10CPI RT_RX_10CPI"\n");
else fprintf(prefs, T_RX_10CPI "\n");
if(info->flags.cpi == 2)
if(info->flags.sp_comment)
fprintf(prefs, T_RX_12CPI RT_RX_12CPI "\n");
else fprintf(prefs, T_RX_12CPI "\n");
if(info->flags.cpi == 3)
if(info->flags.sp_comment)
fprintf(prefs, T_RX_15CPI RT_RX_15CPI "\n");
else fprintf(prefs, T_RX_15CPI "\n");
if(info->flags.draft)
if(info->flags.sp_comment)
fprintf(prefs, T_RX_DRAFT RT_RX_DRAFT "\n");
else fprintf(prefs, T_RX_DRAFT "\n");
if(info->flags.lq)
if(info->flags.sp_comment)
fprintf(prefs, T_RX_LQ RT_RX_LQ "\n");
else fprintf(prefs, T_RX_LQ "\n");
if(info->flags.page)
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_PAGE " " T_RX_ON " " RT_RX_PAGE "\n");
else fprintf(prefs, T_RX_PAGE " " T_RX_ON "\n");
}
else
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_PAGE " " T_RX_OFF " " RT_RX_PAGE "\n");
else fprintf(prefs, T_RX_PAGE " " T_RX_OFF "\n");
}
if(info->flags.time)
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_TIME " " T_RX_ON " " RT_RX_TIME "\n");
else fprintf(prefs, T_RX_TIME " " T_RX_ON "\n");
}
else
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_TIME " " T_RX_OFF " " RT_RX_TIME "\n");
else fprintf(prefs, T_RX_TIME " " T_RX_OFF "\n");
}
if(info->flags.file)
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_FILE " " T_RX_ON " " RT_RX_FILE "\n");
else fprintf(prefs, T_RX_FILE " " T_RX_ON "\n");
}
else
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_FILE " " T_RX_OFF " " RT_RX_FILE "\n");
else fprintf(prefs, T_RX_FILE " " T_RX_OFF "\n");
}
if(info->flags.line)
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_LINE " " T_RX_ON " " RT_RX_LINE "\n");
else fprintf(prefs, T_RX_LINE " " T_RX_ON "\n");
}
else
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_LINE " " T_RX_OFF " " RT_RX_LINE "\n");
else fprintf(prefs, T_RX_LINE " " T_RX_OFF "\n");
}
if(info->flags.date)
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_DATE " " T_RX_ON " " RT_RX_DATE "\n");
else fprintf(prefs, T_RX_DATE " " T_RX_ON "\n");
}
else
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_DATE " " T_RX_OFF " " RT_RX_DATE "\n");
else fprintf(prefs, T_RX_DATE " " T_RX_OFF "\n");
}
if(info->flags.pitch == 1)
if(info->flags.sp_comment)
fprintf(prefs, T_RX_PITCH6 RT_RX_PITCH6 "\n");
else fprintf(prefs, T_RX_PITCH6 "\n");
if(info->flags.pitch == 2)
if(info->flags.sp_comment)
fprintf(prefs, T_RX_PITCH8 RT_RX_PITCH8 "\n");
else fprintf(prefs, T_RX_PITCH8 "\n");
if(info->flags.ff)
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_FF " " T_RX_ON " " RT_RX_FF "\n");
else fprintf(prefs, T_RX_FF " " T_RX_ON "\n");
}
else
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_FF " " T_RX_OFF " " RT_RX_FF "\n");
else fprintf(prefs, T_RX_FF " " T_RX_OFF "\n");
}
if(info->flags.ffpage)
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_FFPAGE " " T_RX_ON " " RT_RX_FFPAGE "\n");
else fprintf(prefs, T_RX_FFPAGE " " T_RX_ON "\n");
}
else
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_FFPAGE " " T_RX_OFF " " RT_RX_FFPAGE "\n");
else fprintf(prefs, T_RX_FFPAGE " " T_RX_OFF "\n");
}
if(info->flags.sp_lines)
{
if(info->flags.sp_comment)
fprintf(prefs, "%s '%s'" RT_RX_HEAD "\n", T_RX_HEAD,info->Headline);
else fprintf(prefs, "%s '%s'" "\n", T_RX_HEAD,info->Headline);
if(info->flags.sp_comment)
fprintf(prefs, "%s '%s'" RT_RX_FOOT "\n", T_RX_FOOT,info->Footline);
else fprintf(prefs, "%s '%s'" "\n", T_RX_FOOT,info->Footline);
}
if(info->flags.sp_comment)
fprintf(prefs, "%s %ld" RT_RX_LMARGIN "\n",T_RX_LMARGIN,info->Lmargin);
else fprintf(prefs, "%s %ld" "\n",T_RX_LMARGIN,info->Lmargin);
if(info->flags.sp_comment)
fprintf(prefs, "%s %ld" RT_RX_RMARGIN "\n",T_RX_RMARGIN,info->Rmargin);
else fprintf(prefs, "%s %ld" "\n",T_RX_RMARGIN,info->Rmargin);
if(info->flags.sp_comment)
fprintf(prefs, "%s %ld" RT_RX_LINES "\n",T_RX_LINES,info->Lines);
else fprintf(prefs, "%s %ld" "\n",T_RX_LINES,info->Lines);
if(info->flags.sp_files)
{
n = (struct FileNameNode *)info->FileList.lh_Head;
while(n && (n != (struct FileNameNode *)info->FileList.lh_Tail))
{
if(*(n->fnn_Name))
{
if(info->flags.sp_comment)
fprintf(prefs, "%s '%s'" RT_RX_INSFILE "\n", T_RX_INSFILE,n->fnn_Name);
else fprintf(prefs, "%s '%s'" "\n", T_RX_INSFILE,n->fnn_Name);
}
n = (struct FileNameNode *)n->fnn_Node.ln_Succ;
}
}
if(info->flags.sp_window)
{
if(info->flags.sp_comment)
{
fprintf(prefs, T_RX_OPENWINDOW " " T_RX_CONTROL " %ld %ld " RT_RX_OPENWINDOW "\n",SwdTags[0].ti_Data,SwdTags[1].ti_Data);
fprintf(prefs, T_RX_OPENWINDOW " " T_RX_PREFS " %ld %ld " RT_RX_OPEN_P_WINDOW "\n",PwdTags[0].ti_Data,PwdTags[1].ti_Data);
}
else
{
fprintf(prefs, T_RX_OPENWINDOW " " T_RX_CONTROL " %ld %ld \n",SwdTags[0].ti_Data,SwdTags[1].ti_Data);
fprintf(prefs, T_RX_OPENWINDOW " " T_RX_PREFS " %ld %ld \n",PwdTags[0].ti_Data,PwdTags[1].ti_Data);
}
}
fprintf(prefs, T_RX_SAVEPREFS );
if(info->flags.sp_comment)*(sp + 1) = tolower(*(sp+1));
if(info->flags.sp_files) *(sp + 2) = tolower(*(sp+2));
if(info->flags.sp_window) *(sp + 3) = tolower(*(sp+3));
if(info->flags.sp_start) *(sp + 4) = tolower(*(sp+4));
if(info->flags.sp_reset) *(sp + 5) = tolower(*(sp+5));
if(info->flags.sp_print) *(sp + 6) = tolower(*(sp+6));
if(info->flags.sp_icon) *(sp + 7) = tolower(*(sp+7));
if(info->flags.sp_lines) *(sp + 8) = tolower(*(sp+8));
fprintf(prefs," '%s' ",sp);
if(info->flags.sp_comment)
{
fprintf(prefs," " RT_RX_SAVEPREFS "\n");
if(*(sp + 1) == 'c') fprintf(prefs, RT_RX_SP_ON " " RT_RX_SP_COMMENT "\n");
else fprintf(prefs,RT_RX_SP_OFF " " RT_RX_SP_COMMENT "\n");
if(*(sp + 2) == 'f') fprintf(prefs, RT_RX_SP_ON " " RT_RX_SP_FILES "\n");
else fprintf(prefs,RT_RX_SP_OFF " " RT_RX_SP_FILES "\n");
if(*(sp + 3) == 'w') fprintf(prefs, RT_RX_SP_ON " " RT_RX_SP_WINDOW "\n");
else fprintf(prefs,RT_RX_SP_OFF " " RT_RX_SP_WINDOW "\n");
if(*(sp + 4) == 's') fprintf(prefs, RT_RX_SP_ON " " RT_RX_SP_START "\n");
else fprintf(prefs,RT_RX_SP_OFF " " RT_RX_SP_START "\n");
if(*(sp + 5) == 'r') fprintf(prefs, RT_RX_SP_ON " " RT_RX_SP_RESET "\n");
else fprintf(prefs,RT_RX_SP_OFF " " RT_RX_SP_RESET "\n");
if(*(sp + 6) == 'p') fprintf(prefs, RT_RX_SP_ON " " RT_RX_SP_PRINT "\n");
else fprintf(prefs,RT_RX_SP_OFF " " RT_RX_SP_PRINT "\n");
if(*(sp + 7) == 'i') fprintf(prefs, RT_RX_SP_ON " " RT_RX_SP_ICON "\n");
else fprintf(prefs,RT_RX_SP_OFF " " RT_RX_SP_ICON "\n");
if(*(sp + 8) == 'l') fprintf(prefs, RT_RX_SP_ON " " RT_RX_SP_LINES "\n");
else fprintf(prefs,RT_RX_SP_OFF " " RT_RX_SP_LINES "\n");
}
else fprintf(prefs,"\n");
fprintf(prefs, T_RX_ICON " ");
switch(info->flags.icon)
{
case 0: if(info->flags.sp_comment)
fprintf(prefs,T_RX_IGNORE " " RT_RX_ICON_NONE "\n");
else
fprintf(prefs,T_RX_IGNORE "\n");
break;
case 1: if(info->flags.sp_comment)
fprintf(prefs,T_RX_CGFX " " RT_RX_ICON_IMAGE "\n");
else
fprintf(prefs,T_RX_CGFX "\n");
break;
case 2: if(info->flags.sp_comment)
fprintf(prefs,T_RX_INFO " " RT_RX_ICON_TEXT "\n");
else
fprintf(prefs,T_RX_INFO "\n");
break;
case 3: if(info->flags.sp_comment)
fprintf(prefs,T_RX_ALL " " RT_RX_ICON_ALL "\n");
else
fprintf(prefs,T_RX_ALL "\n");
break;
}
fprintf(prefs, T_RX_PROG " ");
switch(info->flags.prog)
{
case 0: if(info->flags.sp_comment)
fprintf(prefs,T_RX_IGNORE " " RT_RX_PROG_NONE "\n");
else
fprintf(prefs,T_RX_IGNORE "\n");
break;
case 1: if(info->flags.sp_comment)
fprintf(prefs,T_RX_INFO " " RT_RX_PROG_TEXT "\n");
else
fprintf(prefs,T_RX_INFO "\n");
break;
case 2: if(info->flags.sp_comment)
fprintf(prefs,T_RX_GFX " " RT_RX_PROG_ICON "\n");
else
fprintf(prefs,T_RX_GFX "\n");
break;
case 3: if(info->flags.sp_comment)
fprintf(prefs,T_RX_ALL " " RT_RX_PROG_ALL "\n");
else
fprintf(prefs,T_RX_ALL "\n");
break;
}
if(info->flags.sp_print)
{
if(info->flags.sp_comment)
fprintf(prefs, T_RX_PRINT RT_RX_PRINT "\n");
else fprintf(prefs, T_RX_PRINT "\n");
}
fclose(prefs);
}
}
if(info->flags.sp_icon)
{
if(*filename)PutDiskObject(filename,&saveprefsicon);
}
}