URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [gen_or1k_isa/] [sources/] [chop_html.c] - Rev 1775
Go to most recent revision | Compare with Previous | Blame | View Log
/* * $Log: not supported by cvs2svn $ */ #include <stdio.h> #include <string.h> int section = 0; int table = 0; int tableend = 0; int bq = 0; int bqend = 0; int did_main2start; int desc = 0; #define MAIN1_FILE "tmp/main1.html" #define MAIN2_FILE "tmp/main2.html" #define HF_FILE "tmp/hf.html" #define ISAHTMLSRC_FILE "tmp/isa.html" /* Which tables go into header? */ #define HSTART 1 #define HEND 2 /* Which tables go into footer? */ #define FSTART 3 #define FEND 3 void do_main1() { FILE *f; f = fopen(MAIN1_FILE, "a"); if (!f) { perror("do_main1()/fopen:"); exit(1); } fprintf(f, "@page ISA%d\n", section); fprintf(f, "\t{size:8.5in 11.0in;\n"); fprintf(f, "\tmargin:1.0in 1.25in 1.0in 1.25in;\n"); fprintf(f, "\tmso-header-margin:.5in;\n"); fprintf(f, "\tmso-footer-margin:.5in;\n"); fprintf(f, "\tmso-header:url(\"./hf.html\") ISA%dh;\n", section); fprintf(f, "\tmso-footer:url(\"./hf.html\") ISA%df;\n", section); fprintf(f, "\tmso-paper-source:0;}\n"); fprintf(f, "div.ISA%d\n", section); fprintf(f, "\t{page:ISA%d;}\n", section); fclose(f); } void do_main2start() { FILE *f; f = fopen(MAIN2_FILE, "a"); if (!f) { perror("do_main2start()/fopen:"); exit(1); } did_main2start = 1; fprintf(f, "<div class=ISA%d style='text-align:left'><br><br>\n", section); fclose(f); } void do_main2end() { FILE *f; f = fopen(MAIN2_FILE, "a"); if (!f) { perror("do_main2end()/fopen:"); exit(1); } if (did_main2start) { fprintf(f, "</div>\n"); fprintf(f, "<span><br clear=all style='page-break-before:always;mso-break-type:section-break'>\n"); fprintf(f, "</span>\n"); did_main2start = 0; } fclose(f); } void do_main2(char *line) { FILE *f; char *bqp1, *bqp2; char tmpbuf[4100]; char bq_str[50] = "<blockquote>"; char justify_str[100] = " style='text-align:justify'"; f = fopen(MAIN2_FILE, "a"); if (!f) { perror("do_main2()/fopen:"); exit(1); } if (strstr(line, "Description:")) desc = 1; if (desc && (bqp1 = strstr(line, bq_str))) { strcpy(tmpbuf, line); bqp2 = strstr(tmpbuf, bq_str); strcpy(bqp2 + strlen(bq_str) - 1, justify_str); strcpy(bqp2 + strlen(bq_str) + strlen(justify_str) - 1, bqp1 + strlen(bq_str) - 1); strcpy(line, tmpbuf); desc = 0; } fprintf(f, "%s\n", line); fclose(f); } void create_main2() { FILE *f; f = fopen(MAIN2_FILE, "w"); if (!f) { perror("create_main2()/fopen:"); exit(1); } fprintf(f, "-->\n"); fprintf(f, "</style>\n"); fprintf(f, "</head>\n"); fprintf(f, "<body lang=EN-US style='tab-interval:.5in'>\n"); fclose(f); } void finish_main2() { FILE *f; f = fopen(MAIN2_FILE, "a"); if (!f) { perror("finish_main2()/fopen:"); exit(1); } fprintf(f, "</body>\n"); fprintf(f, "</html>\n"); fclose(f); } void create_hf() { FILE *f; f = fopen(HF_FILE, "w"); if (!f) { perror("create_hf()/fopen:"); exit(1); } fprintf(f, "<html xmlns:v=\"urn:schemas-microsoft-com:vml\"\n"); fprintf(f, "xmlns:o=\"urn:schemas-microsoft-com:office:office\"\n"); fprintf(f, "xmlns:w=\"urn:schemas-microsoft-com:office:word\"\n"); fprintf(f, "xmlns=\"http://www.w3.org/TR/REC-html40\">\n\n"); fprintf(f, "<head>\n"); fprintf(f, "<meta http-equiv=Content-Type content=\"text/html; charset=windows-1252\">\n"); fprintf(f, "<link id=Main-File rel=Main-File href=\"or1k_isa.html\">\n"); fprintf(f, "</head>\n\n"); fprintf(f, "<body lang=EN-US>\n\n"); fclose(f); } void finish_hf() { FILE *f; f = fopen(HF_FILE, "a"); if (!f) { perror("finish_hf()/fopen:"); exit(1); } fprintf(f, "</body>\n"); fprintf(f, "</html>\n"); fclose(f); } void do_hstart() { FILE *f; f = fopen(HF_FILE, "a"); if (!f) { perror("do_hstart()/fopen:"); exit(1); } fprintf(f, "<div style='mso-element:header' id=ISA%dh><p class=MsoHeader>\n", section); fprintf(f, "OpenCores<span style='mso-tab-count:1'> </span>\n"); fprintf(f, "OpenRISC 1000 Architecture Manual<span style='mso-tab-count:1'> </span>\n"); fprintf(f, "<!--[if supportFields]><span style='mso-element:field-begin'>\n"); fprintf(f, "</span> TIME \\@ "MMMM d, yyyy" <span style='mso-element:field-separator'>\n"); fprintf(f, "</span><![endif]-->July 2, 2001<!--[if supportFields]><span\n"); fprintf(f, "style='mso-element:field-end'></span><![endif]--><br><br>\n"); fclose(f); } void do_bottomline() { FILE *f; f = fopen(HF_FILE, "a"); if (!f) { perror("do_bottomline()/fopen:"); exit(1); } fprintf(f, "<br><a href=\"http://www.opencores.org/\">www.opencores.org</a><span\n"); fprintf(f, "style='mso-tab-count:\n"); fprintf(f, "1'> </span>Rev 1.0 <span\n"); fprintf(f, "style='mso-tab-count:1'> </span><!--[if supportFields]><span\n"); fprintf(f, "class=MsoPageNumber><span style='mso-element:field-begin'></span><span\n"); fprintf(f, "style=\"mso-spacerun: yes\"> </span>PAGE <span \n"); fprintf(f, "style='mso-element:field-separator'></span></span><![endif]--><span\n"); fprintf(f, "class=MsoPageNumber>1</span><!--[if supportFields]><span class=MsoPageNumber><span\n"); fprintf(f, "style='mso-element:field-end'></span></span><![endif]--><span\n"); fprintf(f, "class=MsoPageNumber> of </span><!--[if supportFields]><span\n"); fprintf(f, "class=MsoPageNumber><span style='mso-element:field-begin'></span><span\n"); fprintf(f, "style=\"mso-spacerun: yes\"> </span>NUMPAGES <span\n"); fprintf(f, "style='mso-element:field-separator'></span></span><![endif]--><span\n"); fprintf(f, "class=MsoPageNumber>2</span><!--[if supportFields]><span class=MsoPageNumber><span\n"); fprintf(f, "style='mso-element:field-end'></span></span><![endif]-->\n"); fclose(f); } void do_fstart() { FILE *f; f = fopen(HF_FILE, "a"); if (!f) { perror("do_fstart()/fopen:"); exit(1); } fprintf(f, "<div style='mso-element:footer' id=ISA%df><p class=MsoFooter>\n", section); fclose(f); } void do_hfend() { FILE *f; f = fopen(HF_FILE, "a"); if (!f) { perror("do_hfend()/fopen:"); exit(1); } fprintf(f, "</p></div>\n"); fclose(f); } void do_hf(char * line, int type) { FILE *f; char *tbp1, *tbp2; char tmpbuf[4100]; char tb_str[50] = "<table"; char ins_str[100] = " width=100%"; f = fopen(HF_FILE, "a"); if (!f) { perror("do_hf()/fopen:"); exit(1); } if ((table < 3) && (tbp1 = strstr(line, tb_str))) { strcpy(tmpbuf, line); tbp2 = strstr(tmpbuf, tb_str); strcpy(tbp2 + strlen(tb_str), ins_str); strcpy(tbp2 + strlen(tb_str) + strlen(ins_str), tbp1 + strlen(tb_str)); strcpy(line, tmpbuf); } fprintf(f, "%s\n", line); fclose(f); } void processline(char *line) { if (strstr(line, "<hr")) { do_main2end(); section++; table = 0; tableend = 0; do_main1(); do_main2start(); bq = 0; bqend = 0; } if (strstr(line, "<table")) { table++; if (table == HSTART) { do_hstart(); } if (table == FSTART) { do_fstart(); } } if (strstr(line, "</table>")) { tableend++; if (tableend == HEND) { do_hf(line, table); do_hfend(); } if (tableend == FEND) { do_hf(line, table); do_bottomline(); do_hfend(); } } else if ((tableend == HEND) && (table == HEND)) { char *bqp; char *bqendp; bqp = strstr(line, "<blockquote>"); bqendp = strstr(line, "</blockquote>"); if (bqp) bq++; if (bqendp) bqend++; if ((bq > 2) && bqp) { *bqp = '\0'; do_main2(line); do_main2("<left>"); *bqp = '<'; do_main2(bqp); } else if ((bqend > 2) && bqendp) { *bqendp = '\0'; do_main2(line); do_main2("</left>"); *bqendp = '<'; do_main2(bqendp); } else do_main2(line); } if (((table == HSTART) || (table == HEND)) && (tableend < HEND)) do_hf(line, table); if (table == FSTART) do_hf(line, table); } void readsrc(char *filename) { FILE *f; char line[4000]; f = fopen(filename, "r"); if (!f) { perror("readsrc()/fopen:"); exit(1); } create_main2(); create_hf(); while (!feof(f)) { fscanf(f, "%s", line); processline(line); /* printf("%s\n", line); */ } fclose(f); finish_main2(); finish_hf(); } int main() { readsrc(ISAHTMLSRC_FILE); return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log