int save_file (CELL *c)
{
FILE *out = NULL;
if ((out = fopen(current_path, "w")))
{
int i = 0;
mvwaddstr(c->window, c->erow + 3, c->scol , "Saving file now.......");
fprintf(out, "#define _USE_LOCAL_CONFIG\n");
fprintf(out, "\n\n\n/*\n * Compile Time options\n */\n");
for (i = 0; compile_default[i].option; i++)
{
if (*(compile_default[i].help))
fprintf(out, "/*\n * %s\n */\n", compile_default[i].help);
if (compile_default[i].integer)
fprintf(out, "#define %-50s1\n\n", compile_default[i].out);
else
fprintf(out, "/* #undef %s */\n\n", compile_default[i].out);
}
fprintf(out, "\n\n\n/*\n * Userlist options\n */\n");
for (i = 0; userlist_default[i].option; i++)
{
if (*(userlist_default[i].help))
fprintf(out, "/*\n * %s\n */\n", userlist_default[i].help);
switch(userlist_default[i].type)
{
case STR_TYPE:
break;
default:
fprintf(out, "#define %-50s %d\n\n", userlist_default[i].out, userlist_default[i].integer);
}
}
fprintf(out, "\n\n\n/*\n * Flood options\n */\n");
for (i = 0; flood_default[i].option; i++)
{
if (*(flood_default[i].help))
fprintf(out, "/*\n * %s\n */\n", flood_default[i].help);
switch(flood_default[i].type)
{
case STR_TYPE:
break;
default:
fprintf(out, "#define %-50s %d\n\n", flood_default[i].out, flood_default[i].integer);
}
}
fprintf(out, "\n\n\n/*\n * DCC options\n */\n");
for (i = 0; dcc_default[i].option; i++)
{
if (*(dcc_default[i].help))
fprintf(out, "/*\n * %s\n */\n", dcc_default[i].help);
switch(dcc_default[i].type)
{
case STR_TYPE:
break;
default:
fprintf(out, "#define %-50s %d\n\n", dcc_default[i].out, dcc_default[i].integer);
}
}
fprintf(out, "\n\n\n/*\n * Server options\n */\n");
for (i = 0; server_default[i].option; i++)
{
if (*(server_default[i].help))
fprintf(out, "/*\n * %s\n */\n", server_default[i].help);
switch(server_default[i].type)
{
case STR_TYPE:
break;
default:
fprintf(out, "#define %-50s %d\n\n", server_default[i].out, server_default[i].integer);
}
}
fprintf(out, "\n\n\n/*\n * Misc options\n */\n");
for (i = 0; various_default[i].option; i++)
{
if (*(various_default[i].help))
fprintf(out, "/*\n * %s\n */\n", various_default[i].help);
switch(various_default[i].type)
{
case STR_TYPE:
break;
default:
fprintf(out, "#define %-50s %d\n\n", various_default[i].out, various_default[i].integer);
}
}
fprintf(out, "\n\n\n");
fclose(out);
}
return TRUE;
}
syntax highlighted by Code2HTML, v. 0.9.1