void FieldsM(void) { set_color(WHITE, BLACK); show_str( 7,16,20, getmagictype(magic.Attrib)); show_str( 8,16,14, magic.Mask); show_str( 9,16, 3, getboolean(magic.Active)); show_str(10,16, 3, getboolean(magic.Deleted)); show_str(11,16,20, magic.From); switch(magic.Attrib) { case MG_ADOPT: case MG_MOVE: show_str(12,16,20, magic.ToArea); break; case MG_EXEC: show_str(12,16,64, magic.Cmd); show_bool(13,16, magic.Compile); break; case MG_UNPACK: case MG_COPY: show_bool(13,16, magic.Compile); show_str(12,16,64, magic.Path); break; case MG_KEEPNUM: show_int(12,16, magic.KeepNum); break; } }
void ol_doc(void) { FILE *fp, *wp; char *temp, out[1024]; int nr = 0; temp = calloc(PATH_MAX, sizeof(char)); snprintf(temp, PATH_MAX, "%s/etc/oneline.data", getenv("FTND_ROOT")); if ((fp = fopen(temp, "r"))) { if ((wp = open_webdoc((char *)"oneliners.html", (char *)"Oneliners", NULL))) { fprintf(wp, "<A HREF=\"index.html\">Main</A>\n"); fprintf(wp, "<P>\n"); fprintf(wp, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<TBODY>\n"); fread(&olhdr, sizeof(olhdr), 1, fp); while (fread(&ol, olhdr.recsize, 1, fp) == 1) { nr++; html_massage(ol.Oneline, out, 1023); fprintf(wp, "<TR><TD>%d</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n", nr, out, ol.UserName, ol.DateOfEntry, getboolean(ol.Available)); } fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); close_webdoc(wp); } fclose(fp); } free(temp); }
LVAL xlc_seq_write(void) { seq_type arg1 = getseq(xlgaseq()); FILE * arg2 = getfile(xlgastream()); int arg3 = getboolean(xlgetarg()); xllastarg(); seq_write(arg1, arg2, arg3); return NIL; }
int service_doc(FILE *fp, FILE *toc, int page) { char temp[PATH_MAX]; FILE *wp, *no; int j; snprintf(temp, PATH_MAX, "%s/etc/service.data", getenv("FTND_ROOT")); if ((no = fopen(temp, "r")) == NULL) return page; page = newpage(fp, page); addtoc(fp, toc, 16, 0, page, (char *)"Service manager"); j = 0; fprintf(fp, "\n"); fprintf(fp, " Service Action Active\n"); fprintf(fp, " --------------- -------- ------\n"); fread(&servhdr, sizeof(servhdr), 1, no); wp = open_webdoc((char *)"service.html", (char *)"Mail Service Manager", NULL); fprintf(wp, "<A HREF=\"index.html\">Main</A>\n"); fprintf(wp, "<UL>\n"); fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<TBODY>\n"); fprintf(wp, "<TR><TH align='left'>Service</TH><TH align='left'>Action</TH><TH align='left'>Active</TH></TR>\n"); while ((fread(&servrec, servhdr.recsize, 1, no)) == 1) { if (j == 50) { page = newpage(fp, page); fprintf(fp, "\n"); fprintf(fp, " Service Action Active\n"); fprintf(fp, " --------------- -------- ------\n"); j = 0; } fprintf(wp, "<TR><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n", servrec.Service, getservice(servrec.Action), getboolean(servrec.Active)); fprintf(fp, " %-15s %-8s %s\n", servrec.Service, getservice(servrec.Action), getboolean(servrec.Active)); j++; } fclose(no); return page; }
int newf_group_doc(FILE *fp, FILE *toc, int page) { char *temp, group[13]; FILE *ip, *wp, *no; int i, groups, refs, nr; temp = calloc(PATH_MAX, sizeof(char)); snprintf(temp, PATH_MAX, "%s/etc/ngroups.data", getenv("FTND_ROOT")); if ((no = fopen(temp, "r")) == NULL) { free(temp); return page; } wp = open_webdoc((char *)"newgroup.html", (char *)"Newfiles groups", NULL); fprintf(wp, "<A HREF=\"index.html\">Main</A>\n"); page = newpage(fp, page); addtoc(fp, toc, 11, 0, page, (char *)"Newfiles announce groups"); fprintf(fp, "\n"); fprintf(fp, " Name Act Comment\n"); fprintf(fp, " ------------ --- --------------------------------------------------\n"); fread(&ngrouphdr, sizeof(ngrouphdr), 1, no); fseek(no, 0, SEEK_SET); fread(&ngrouphdr, ngrouphdr.hdrsize, 1, no); fprintf(wp, "<P>\n"); fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='20%%'><COL width='5%%'><COL width='75%%'>\n"); fprintf(wp, "<TBODY>\n"); fprintf(wp, "<TR><TH align='left'>Name</TH><TH align='left'>Act</TH><TH align='left'>Comment</TH></TR>\n"); while ((fread(&ngroup, ngrouphdr.recsize, 1, no)) == 1) { fprintf(fp, " %-12s %s %s\n", ngroup.Name, getboolean(ngroup.Active), ngroup.Comment); fprintf(wp, "<TR><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n", ngroup.Name, getboolean(ngroup.Active), ngroup.Comment); } fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); fseek(no, ngrouphdr.hdrsize, SEEK_SET); while ((fread(&ngroup, ngrouphdr.recsize, 1, no)) == 1) { refs = 0; snprintf(temp, PATH_MAX, "%s/etc/fareas.data", getenv("FTND_ROOT")); if ((ip = fopen(temp, "r"))) { fread(&areahdr, sizeof(areahdr), 1, ip); nr = 0; while ((fread(&area, areahdr.recsize, 1, ip)) == 1) { nr++; if (area.Available && (strcmp(ngroup.Name, area.NewGroup) == 0)) { if (refs == 0) { fprintf(wp, "<HR>\n"); fprintf(wp, "<H3>References for group %s</H3>\n", ngroup.Name); fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n"); fprintf(wp, "<TBODY>\n"); } refs++; fprintf(wp, "<TR><TD><A HREF=\"filearea_%d.html\">File area %d</A></TD><TD>%s</TD></TR>\n", nr, nr, area.Name); } } fclose(ip); } snprintf(temp, PATH_MAX, "%s/etc/fgroups.data", getenv("FTND_ROOT")); if ((ip = fopen(temp, "r"))) { fread(&fgrouphdr, fgrouphdr.hdrsize, 1, ip); while ((fread(&fgroup, fgrouphdr.recsize, 1, ip)) == 1) { if (strcmp(ngroup.Name, fgroup.AnnGroup) == 0) { if (refs == 0) { fprintf(wp, "<HR>\n"); fprintf(wp, "<H3>References for group %s</H3>\n", ngroup.Name); fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n"); fprintf(wp, "<TBODY>\n"); } refs++; fprintf(wp, "<TR><TD><A HREF=\"filegroup_%s.html\">File group %s</A></TD><TD>%s</TD></TR>\n", fgroup.Name, fgroup.Name, fgroup.Comment); } } fclose(ip); } snprintf(temp, PATH_MAX, "%s/etc/newfiles.data", getenv("FTND_ROOT")); if ((ip = fopen(temp, "r"))) { fread(&newfileshdr, sizeof(newfileshdr), 1, ip); nr = 0; while ((fread(&newfiles, newfileshdr.recsize, 1, ip)) == 1) { nr++; groups = newfileshdr.grpsize / sizeof(group); for (i = 0; i < groups; i++) { fread(&group, sizeof(group), 1, ip); if (newfiles.Active && strlen(group) && (strcmp(ngroup.Name, group) == 0)) { if (refs == 0) { fprintf(wp, "<HR>\n"); fprintf(wp, "<H3>References for group %s</H3>\n", ngroup.Name); fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n"); fprintf(wp, "<TBODY>\n"); } refs++; fprintf(wp, "<TR><TD><A HREF=\"newfiles_%d.html\">Report %d</A></TD><TD>%s</TD></TR>\n", nr, nr, newfiles.Comment); } } } fclose(ip); } if (refs) { fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); } } close_webdoc(wp); free(temp); fclose(no); return page; }
int tic_magic_doc(FILE *fp, FILE *toc, int page) { char temp[PATH_MAX]; FILE *wp, *ip, *no; int nr = 0i, j; snprintf(temp, PATH_MAX, "%s/etc/magic.data", getenv("FTND_ROOT")); if ((no = fopen(temp, "r")) == NULL) return page; page = newpage(fp, page); addtoc(fp, toc, 10, 4, page, (char *)"File Magic processing"); j = 0; fprintf(fp, "\n\n"); fread(&magichdr, sizeof(magichdr), 1, no); ip = open_webdoc((char *)"magic.html", (char *)"File Magic Processing", NULL); fprintf(ip, "<A HREF=\"index.html\">Main</A>\n"); fprintf(ip, "<P>\n"); fprintf(ip, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n"); fprintf(ip, "<TBODY>\n"); fprintf(ip, "<TR><TH align='left'>Nr</TH><TH align='left'>Mask</TH><TH align='left'>Type</TH><TH align='left'>Active</TH></TR>\n"); while (fread(&magic, magichdr.recsize, 1, no) == 1) { if (j == 6) { page = newpage(fp, page); fprintf(fp, "\n"); j = 0; } nr++; snprintf(temp, 81, "magic_%d.html", nr); fprintf(ip, " <TR><TD><A HREF=\"%s\">%d</A></TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n", temp, nr, magic.Mask, getmagictype(magic.Attrib), getboolean(magic.Active)); if ((wp = open_webdoc(temp, (char *)"File Magic", magic.Mask))) { fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"magic.html\">Back</A>\n"); fprintf(wp, "<P>\n"); fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n"); fprintf(wp, "<TBODY>\n"); add_webtable(wp, (char *)"Filemask", magic.Mask); add_webtable(wp, (char *)"Magic type", getmagictype(magic.Attrib)); add_webtable(wp, (char *)"Active", getboolean(magic.Active)); fprintf(wp, "<TR><TH align='left'>TIC Area</TH><TD><A HREF=\"ticarea_%s.html\">%s</A></TD></TR>\n", magic.From, magic.From); fprintf(fp, " Filemask %s\n", magic.Mask); fprintf(fp, " Type %s\n", getmagictype(magic.Attrib)); fprintf(fp, " Active %s\n", getboolean(magic.Active)); fprintf(fp, " Area %s\n", magic.From); switch (magic.Attrib) { case MG_ADOPT: case MG_MOVE: fprintf(fp, " To area %s\n", magic.ToArea); fprintf(wp, "<TR><TH align='left'>TIC Area</TH><TD><A HREF=\"ticarea_%s.html\">%s</A></TD></TR>\n", magic.ToArea, magic.ToArea); break; case MG_EXEC: add_webtable(wp, (char *)"Command", magic.Cmd); add_webtable(wp, (char *)"Compile nodelist", getboolean(magic.Compile)); fprintf(fp, " Command %s\n", magic.Cmd); fprintf(fp, " Compile NL %s\n", getboolean(magic.Compile)); break; case MG_UNPACK: case MG_COPY: add_webtable(wp, (char *)"Compile nodelist", getboolean(magic.Compile)); add_webtable(wp, (char *)"Destination path", magic.Path); fprintf(fp, " Compile NL %s\n", getboolean(magic.Compile)); fprintf(fp, " Path %s\n", magic.Path); break; case MG_KEEPNUM: add_webdigit(wp, (char *)"Keep # files", magic.KeepNum); fprintf(fp, " Keep # file %d\n", magic.KeepNum); break; } fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); close_webdoc(wp); } fprintf(fp, "\n\n"); j++; } fprintf(ip, "</TBODY>\n"); fprintf(ip, "</TABLE>\n"); close_webdoc(ip); fclose(no); return page; }
int mail_group_doc(FILE *fp, FILE *toc, int page) { char temp[PATH_MAX], group[13]; FILE *ti, *wp, *ip, *no; int refs, i, j; time_t tt; snprintf(temp, PATH_MAX, "%s/etc/mgroups.data", getenv("MBSE_ROOT")); if ((no = fopen(temp, "r")) == NULL) return page; addtoc(fp, toc, 9, 1, page, (char *)"Mail processing groups"); j = 0; fprintf(fp, "\n"); fread(&mgrouphdr, sizeof(mgrouphdr), 1, no); fseek(no, 0, SEEK_SET); fread(&mgrouphdr, mgrouphdr.hdrsize, 1, no); ip = open_webdoc((char *)"msggroup.html", (char *)"Message Groups", NULL); fprintf(ip, "<A HREF=\"index.html\">Main</A>\n"); fprintf(ip, "<P>\n"); fprintf(ip, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n"); fprintf(ip, "<TBODY>\n"); fprintf(ip, "<TR><TH align='left'>Group</TH><TH align='left'>Comment</TH><TH align='left'>Active</TH></TR>\n"); while ((fread(&mgroup, mgrouphdr.recsize, 1, no)) == 1) { if (j == 2) { page = newpage(fp, page); fprintf(fp, "\n"); j = 0; } snprintf(temp, 81, "msggroup_%s.html", mgroup.Name); fprintf(ip, " <TR><TD><A HREF=\"%s\">%s</A></TD><TD>%s</TD><TD>%s</TD></TR>\n", temp, mgroup.Name, mgroup.Comment, getboolean(mgroup.Active)); if ((wp = open_webdoc(temp, (char *)"Message group", mgroup.Comment))) { fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"msggroup.html\">Back</A>\n"); fprintf(wp, "<P>\n"); fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='50%%'><COL width='50%%'>\n"); fprintf(wp, "<TBODY>\n"); add_webtable(wp, (char *)"Group name", mgroup.Name); add_webtable(wp, (char *)"Comment", mgroup.Comment); add_webtable(wp, (char *)"Active", getboolean(mgroup.Active)); add_webtable(wp, (char *)"Use Aka", aka2str(mgroup.UseAka)); add_webtable(wp, (char *)"Uplink", aka2str(mgroup.UpLink)); add_webtable(wp, (char *)"Areas file", mgroup.AreaFile); add_webtable(wp, (char *)"Base path", mgroup.BasePath); add_webdigit(wp, (char *)"Netmail reply area", mgroup.NetReply); add_webdigit(wp, (char *)"Start new areas at", mgroup.StartArea); web_secflags(wp, (char *)"Read security", mgroup.RDSec); web_secflags(wp, (char *)"Write security", mgroup.WRSec); web_secflags(wp, (char *)"Sysop security", mgroup.SYSec); add_webtable(wp, (char *)"Def. link security", getflag(mgroup.LinkSec.flags, mgroup.LinkSec.notflags)); add_webtable(wp, (char *)"Use aliases", getboolean(mgroup.Aliases)); add_webtable(wp, (char *)"Add quotes", getboolean(mgroup.Quotes)); add_webtable(wp, (char *)"Auto add/del areas", getboolean(mgroup.AutoChange)); add_webtable(wp, (char *)"User add/del areas", getboolean(mgroup.UserChange)); add_webtable(wp, (char *)"Default charset", getftnchrs(mgroup.Charset)); snprintf(temp, 5, "#%03d", mgroup.GoldEDgroup); add_webtable(wp, (char *)"GoldED groupid", temp); tt = (time_t)mgroup.StartDate; add_webtable(wp, (char *)"Start area date", ctime(&tt)); tt = (time_t)mgroup.LastDate; add_webtable(wp, (char *)"Last active date", ctime(&tt)); fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); fprintf(wp, "<HR>\n"); fprintf(wp, "<H3>Message Areas Reference</H3>\n"); refs = 0; snprintf(temp, PATH_MAX, "%s/etc/mareas.data", getenv("MBSE_ROOT")); if ((ti = fopen(temp, "r"))) { fread(&tichdr, sizeof(tichdr), 1, ti); fseek(ti, 0, SEEK_SET); fread(&msgshdr, msgshdr.hdrsize, 1, ti); i = 0; while ((fread(&msgs, msgshdr.recsize, 1, ti)) == 1) { i++; if (msgs.Active && (strcmp(mgroup.Name, msgs.Group) == 0)) { if (refs == 0) { fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n"); fprintf(wp, "<TBODY>\n"); } fprintf(wp, "<TR><TD><A HREF=\"msgarea_%d.html\">Area %d</A></TD><TD>%s</TD></TR>\n", i, i, msgs.Name); refs++; } fseek(ti, msgshdr.syssize, SEEK_CUR); } fclose(ti); } if (refs == 0) fprintf(wp, "No Message Areas References\n"); else { fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); } fprintf(wp, "<HR>\n"); fprintf(wp, "<H3>Nodes Reference</H3>\n"); refs = 0; snprintf(temp, PATH_MAX, "%s/etc/nodes.data", getenv("MBSE_ROOT")); if ((ti = fopen(temp, "r"))) { fread(&nodeshdr, sizeof(nodeshdr), 1, ti); fseek(ti, 0, SEEK_SET); fread(&nodeshdr, nodeshdr.hdrsize, 1, ti); while ((fread(&nodes, nodeshdr.recsize, 1, ti)) == 1) { fseek(ti, nodeshdr.filegrp, SEEK_CUR); for (i = 0; i < nodeshdr.mailgrp / sizeof(group); i++) { fread(&group, sizeof(group), 1, ti); if (strcmp(group, mgroup.Name) == 0) { if (refs == 0) { fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n"); fprintf(wp, "<TBODY>\n"); } fprintf(wp, "<TR><TD><A HREF=\"node_%d_%d_%d_%d_%s.html\">%s</A></TD><TD>%s</TD></TR>\n", nodes.Aka[0].zone, nodes.Aka[0].net, nodes.Aka[0].node, nodes.Aka[0].point, nodes.Aka[0].domain, aka2str(nodes.Aka[0]), nodes.Sysop); refs++; } } } fclose(ti); } if (refs == 0) fprintf(wp, "No Nodes References\n"); else { fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); } fprintf(wp, "<HR>\n"); fprintf(wp, "<H3>Group Statistics</H3>\n"); add_statcnt(wp, (char *)"received messages", mgroup.MsgsRcvd); add_statcnt(wp, (char *)"sent messages", mgroup.MsgsSent); close_webdoc(wp); } fprintf(fp, " Group name %s\n", mgroup.Name); fprintf(fp, " Comment %s\n", mgroup.Comment); fprintf(fp, " Active %s\n", getboolean(mgroup.Active)); fprintf(fp, " Use Aka %s\n", aka2str(mgroup.UseAka)); fprintf(fp, " Uplink %s\n", aka2str(mgroup.UpLink)); fprintf(fp, " Areas file %s\n", mgroup.AreaFile); fprintf(fp, " Base path %s\n", mgroup.BasePath); fprintf(fp, " Netmail reply area %d\n", mgroup.NetReply); fprintf(fp, " Start new areas at %d\n", mgroup.StartArea); fprintf(fp, " Read security %s\n", get_secstr(mgroup.RDSec)); fprintf(fp, " Write security %s\n", get_secstr(mgroup.WRSec)); fprintf(fp, " Sysop security %s\n", get_secstr(mgroup.SYSec)); fprintf(fp, " Def. link security %s\n", getflag(mgroup.LinkSec.flags, mgroup.LinkSec.notflags)); fprintf(fp, " Use aliases %s\n", getboolean(mgroup.Aliases)); fprintf(fp, " Add quotes %s\n", getboolean(mgroup.Quotes)); fprintf(fp, " Auto add/del areas %s\n", getboolean(mgroup.AutoChange)); fprintf(fp, " User add/del areas %s\n", getboolean(mgroup.UserChange)); fprintf(fp, " Default charset %s\n", getftnchrs(mgroup.Charset)); fprintf(fp, " GoldED groupid #%03d\n", mgroup.GoldEDgroup); tt = (time_t)mgroup.StartDate; fprintf(fp, " Start area date %s", ctime(&tt)); tt = (time_t)mgroup.LastDate; fprintf(fp, " Last active date %s\n", ctime(&tt)); fprintf(fp, "\n\n"); j++; } fprintf(ip, "</TBODY>\n"); fprintf(ip, "</TABLE>\n"); close_webdoc(ip); fclose(no); return page; }
int fido_doc(FILE *fp, FILE *toc, int page) { char temp[PATH_MAX]; FILE *wp, *ip, *fido; int i, j; snprintf(temp, PATH_MAX, "%s/etc/fidonet.data", getenv("MBSE_ROOT")); if ((fido = fopen(temp, "r")) == NULL) return page; page = newpage(fp, page); addtoc(fp, toc, 2, 0, page, (char *)"Fidonet networks"); j = 0; fprintf(fp, "\n\n"); fread(&fidonethdr, sizeof(fidonethdr), 1, fido); ip = open_webdoc((char *)"fidonet.html", (char *)"Fidonet networks", NULL); fprintf(ip, "<A HREF=\"index.html\">Main</A>\n<P>\n"); fprintf(ip, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n"); fprintf(ip, "<TBODY>\n"); fprintf(ip, "<TR><TH align='left'>Zone</TH><TH align='left'>Comment</TH><TH align='left'>Available</TH></TR>\n"); while ((fread(&fidonet, fidonethdr.recsize, 1, fido)) == 1) { if (j == 6) { page = newpage(fp, page); fprintf(fp, "\n"); j = 0; } snprintf(temp, 81, "fidonet_%d.html", fidonet.zone[0]); fprintf(ip, " <TR><TD><A HREF=\"%s\">%d</A></TD><TD>%s</TD><TD>%s</TD></TR>\n", temp, fidonet.zone[0], fidonet.comment, getboolean(fidonet.available)); if ((wp = open_webdoc(temp, (char *)"Fidonet network", fidonet.comment))) { fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"fidonet.html\">Back</A>\n"); fprintf(wp, "<P>\n"); fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='50%%'><COL width='50%%'>\n"); fprintf(wp, "<TBODY>\n"); add_webtable(wp, (char *)"Comment", fidonet.comment); add_webtable(wp, (char *)"Domain", fidonet.domain); add_webtable(wp, (char *)"Available", getboolean(fidonet.available)); add_webtable(wp, (char *)"Nodelist", fidonet.nodelist); for (i = 0; i < 6; i++) if (strlen(fidonet.seclist[i].nodelist) || fidonet.seclist[i].zone) { snprintf(temp, 81, "%d %-8s %d:%d/%d", i+1, fidonet.seclist[i].nodelist, fidonet.seclist[i].zone, fidonet.seclist[i].net, fidonet.seclist[i].node); add_webtable(wp, (char *)"Merge list", temp); } snprintf(temp, 81, "%d", fidonet.zone[0]); for (i = 1; i < 6; i++) if (fidonet.zone[i]) snprintf(temp, 81, "%s %d", temp, fidonet.zone[i]); add_webtable(wp, (char *)"Zone(s)", temp); fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); close_webdoc(wp); } fprintf(fp, " Comment %s\n", fidonet.comment); fprintf(fp, " Domain %s\n", fidonet.domain); fprintf(fp, " Available %s\n", getboolean(fidonet.available)); fprintf(fp, " Nodelist %s\n", fidonet.nodelist); for (i = 0; i < 6; i++) if (strlen(fidonet.seclist[i].nodelist) || fidonet.seclist[i].zone) { fprintf(fp, " Merge list %d %-8s %d:%d/%d\n", i+1, fidonet.seclist[i].nodelist, fidonet.seclist[i].zone, fidonet.seclist[i].net, fidonet.seclist[i].node); } fprintf(fp, " Zone(s) "); for (i = 0; i < 6; i++) if (fidonet.zone[i]) fprintf(fp, "%d ", fidonet.zone[i]); fprintf(fp, "\n\n\n"); j++; } fprintf(ip, "</TBODY>\n"); fprintf(ip, "</TABLE>\n"); close_webdoc(ip); fclose(fido); return page; }
int ibc_doc(FILE *fp, FILE *toc, int page) { char temp[PATH_MAX]; FILE *wp, *ip, *vir; int nr = 0, j; snprintf(temp, PATH_MAX, "%s/etc/ibcsrv.data", getenv("FTND_ROOT")); if ((vir = fopen(temp, "r")) == NULL) return page; page = newpage(fp, page); addtoc(fp, toc, 20, 0, page, (char *)"Internet BBS Chatservers"); j = 0; fprintf(fp, "\n\n"); fread(&ibcsrvhdr, sizeof(ibcsrvhdr), 1, vir); ip = open_webdoc((char *)"ibcsrv.html", (char *)"Internet BBS Chatservers", NULL); fprintf(ip, "<A HREF=\"index.html\">Main</A>\n"); fprintf(ip, "<UL>\n"); while ((fread(&ibcsrv, ibcsrvhdr.recsize, 1, vir)) == 1) { if (j == 5) { page = newpage(fp, page); fprintf(fp, "\n"); j = 0; } nr++; snprintf(temp, 81, "ibcsrv_%d.html", nr); fprintf(ip, "<LI><A HREF=\"%s\">%s</A></LI>\n", temp, ibcsrv.comment); if ((wp = open_webdoc(temp, (char *)"Internet BBS Chatserver", ibcsrv.comment))) { fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"ibcsrv.html\">Back</A>\n"); fprintf(wp, "<P>\n"); fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n"); fprintf(wp, "<TBODY>\n"); add_webtable(wp, (char *)"Server comment", ibcsrv.comment); add_webtable(wp, (char *)"Server address", ibcsrv.server); add_webtable(wp, (char *)"Uses dynamic dns", getboolean(ibcsrv.Dyndns)); add_webtable(wp, (char *)"My address", ibcsrv.myname); add_webtable(wp, (char *)"Active", getboolean(ibcsrv.Active)); add_webtable(wp, (char *)"Compresion", getboolean(ibcsrv.Compress)); fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); close_webdoc(wp); } fprintf(fp, " Comment %s\n", ibcsrv.comment); fprintf(fp, " Server %s\n", ibcsrv.server); fprintf(fp, " Dynamic dns %s\n", getboolean(ibcsrv.Dyndns)); fprintf(fp, " My name %s\n", ibcsrv.myname); fprintf(fp, " Active %s\n", getboolean(ibcsrv.Active)); fprintf(fp, " Compression %s\n", getboolean(ibcsrv.Compress)); fprintf(fp, "\n\n\n"); j++; } fprintf(ip, "</UL>\n"); close_webdoc(ip); fclose(vir); return page; }
int tic_hatch_doc(FILE *fp, FILE *toc, int page) { char temp[PATH_MAX], *tmp = NULL; FILE *wp, *ip, *no; int i, j, nr = 0, All; snprintf(temp, PATH_MAX, "%s/etc/hatch.data", getenv("MBSE_ROOT")); if ((no = fopen(temp, "r")) == NULL) return page; page = newpage(fp, page); addtoc(fp, toc, 10, 3, page, (char *)"Hatch manager"); j = 1; fprintf(fp, "\n\n"); fread(&hatchhdr, sizeof(hatchhdr), 1, no); ip = open_webdoc((char *)"hatch.html", (char *)"File Areas", NULL); fprintf(ip, "<A HREF=\"index.html\">Main</A>\n"); fprintf(ip, "<P>\n"); fprintf(ip, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n"); fprintf(ip, "<TBODY>\n"); fprintf(ip, "<TR><TH align='left'>Nr</TH><TH align='left'>Pattern</TH><TH align='left'>Active</TH></TR>\n"); while ((fread(&hatch, hatchhdr.recsize, 1, no)) == 1) { nr++; if (j == 5) { page = newpage(fp, page); fprintf(fp, "\n"); j = 0; } snprintf(temp, 81, "hatch_%d.html", nr); fprintf(ip, " <TR><TD><A HREF=\"%s\">%d</A></TD><TD>%s</TD><TD>%s</TD></TR>\n", temp, nr, hatch.Spec, getboolean(hatch.Active)); if ((wp = open_webdoc(temp, (char *)"Hatch Manager", hatch.Spec))) { fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"hatch.html\">Back</A>\n"); fprintf(wp, "<P>\n"); fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n"); fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n"); fprintf(wp, "<TBODY>\n"); add_webtable(wp, (char *)"File specification", hatch.Spec); fprintf(wp, "<TR><TH align='left'>TIC File area</TH><TD><A HREF=\"ticarea_%s.html\">%s</A></TD></TR>\n", hatch.Name, hatch.Name); add_webtable(wp, (char *)"Replace file", hatch.Replace); add_webtable(wp, (char *)"Magic filename", hatch.Magic); add_webtable(wp, (char *)"File description", hatch.Desc); add_webtable(wp, (char *)"Dupe check", getboolean(hatch.DupeCheck)); add_webtable(wp, (char *)"Active", getboolean(hatch.Active)); } fprintf(fp, " File spec %s\n", hatch.Spec); fprintf(fp, " File echo %s\n", hatch.Name); fprintf(fp, " Replace file %s\n", hatch.Replace); fprintf(fp, " Magic filename %s\n", hatch.Magic); fprintf(fp, " Description %s\n", hatch.Desc); fprintf(fp, " Dupe check %s\n", getboolean(hatch.DupeCheck)); fprintf(fp, " Active %s\n", getboolean(hatch.Active)); tmp = NULL; for (i = 0; i < 7; i++) if (hatch.Days[i]) { if (tmp == NULL) { tmp = xstrcpy(Days[i]); } else { tmp = xstrcat(tmp, (char *)", "); tmp = xstrcat(tmp, Days[i]); } } if (tmp == NULL) tmp = xstrcpy((char *)"None"); if (wp != NULL) add_webtable(wp, (char *)"Hatch on days", tmp); fprintf(fp, " Hatch on days %s\n", tmp); if (tmp != NULL) { free(tmp); tmp = NULL; } All = TRUE; for (i = 0; i < 32; i++) if (!hatch.Month[i]) All = FALSE; if (!All) { for (i = 0; i < 32; i++) { if (hatch.Month[i]) { if (tmp == NULL) { tmp = xstrcpy(Month[i]); } else { tmp = xstrcat(tmp, (char *)", "); tmp = xstrcat(tmp, Month[i]); } } } } else { tmp = xstrcpy((char *)"All dates"); } if (tmp == NULL) tmp = xstrcpy((char *)"None"); if (wp != NULL) { add_webtable(wp, (char *)"Hatch on dates", tmp); fprintf(wp, "</TBODY>\n"); fprintf(wp, "</TABLE>\n"); fprintf(wp, "<HR>\n"); fprintf(wp, "<H3>Hatch Statistics</H3>\n"); add_statcnt(wp, (char *)"hatched files", hatch.Hatched); close_webdoc(wp); } fprintf(fp, " Hatch on dates %s\n", tmp); if (tmp != NULL) { free(tmp); tmp = NULL; } fprintf(fp, "\n\n"); j++; } fprintf(ip, "</TBODY>\n"); fprintf(ip, "</TABLE>\n"); close_webdoc(ip); fclose(no); return page; }