hschumann2/TempleOS-Source-Code
0832
1 2#help_index "DolDoc"3 4U0 DocInit()5{//CMD Defines6 CCmpCtrl *cc;7 I64 i;8 CHashGeneric *tmph;9 10 DefineLstLoad("ST_DOC_CMDS",11 "TX\0CR\0SR\0TB\0PB\0CU\0MK\0PT\0CL\0PL\0LM\0RM\0HD\0FO\0ID\0FG\0"12 "BG\0FD\0BD\0WW\0HL\0BK\0IV\0UL\0SX\0SY\0CM\0AN\0LK\0BT\0"13 "DA\0CB\0LS\0MA\0MU\0HX\0TR\0SP\0IB\0IS\0SO\0HC\0ER\0");14 DefineLstLoad("ST_DOC_FLAGS",15 "T\0LEN\0A\0D\0HTML\0LE\0LM\0RE\0RM\0BI\0BP\0RT\0SX\0SY\0SCX\0U\0"16 "LC\0LIS\0RC\0RIS\0LX\0CX\0RX\0TY\0CY\0BY\0"17 "HL\0WW\0BK\0IV\0SEL\0UL\0"18 "TC\0PRY\0MRX\0WR\0L\0X\0Q\0FST\0B\0S\0BD\0C\0CA\0RD\0UD\0P\0M\0"19 "TRM\0Z\0H\0TR\0LS\0SK\0PU\0SIF\0FS\0NC\0DD\0DL\0DRT\0");20 DefineLstLoad("ST_LINK_TYPES",21 "FI\0FA\0FF\0FL\0MN\0PI\0PF\0PL\0BF\0DN\0HI\0AD\0AI\0AA\0AF\0AL\0");22 23 doldoc.hash=HashTableNew(512);24 HashDefineLstAdd("ST_DOC_CMDS",DHT_DOC_CMD,doldoc.hash);25 HashDefineLstAdd("ST_DOC_FLAGS",DHT_DOC_FLAG,doldoc.hash);26 HashDefineLstAdd("ST_COLORS",DHT_COLOR,doldoc.hash);27 28 MemSet(doldoc.dft_de_flags, 0,sizeof(doldoc.dft_de_flags));29 MemSet(doldoc.dft_type_flags, 0,sizeof(doldoc.dft_type_flags));30 cc=CmpCtrlNew("TX+T;DA+P+TRM+T+DL+DRT;CM+LE+RE;AN+T;LK+L+UL+T;MA+X+UL+T;"31 "MU+X+UL+T;BT+X+B+T;CB+CA+P+T+DRT;LS+LS+P+T+DRT;HX+P+Z;TR+TR+C+CA+UL+T;"32 "SP+T;IB+T;IS+T;SO+T;HC+T;",CCF_DONT_FREE_BUF);33 cc->htc.hash_table_lst=NULL;34 Lex(cc);35 while (cc->token==TK_IDENT) {36 if (tmph=HashFind(cc->cur_str,doldoc.hash,DHT_DOC_CMD)) {37 i=tmph->user_data0;38 Lex(cc);39 PrsDocFlags(cc,&doldoc.dft_de_flags[i],&doldoc.dft_type_flags[i]);40 }41 if (cc->token==';')42 Lex(cc);43 }44 CmpCtrlDel(cc);45 46 for (i=0;i<DOCT_TYPES_NUM;i++)47 doldoc.dft_de_flags[i]&=~DOCG_BL_IV_UL;48 49 doldoc.type_flags_form[0]=0;50 for (i=0;i<DOCT_TYPES_NUM;i++)51 if (Bt(&doldoc.dft_de_flags[i],DOCEf_TAG) && i!=DOCT_TEXT || i==DOCT_HEX_ED)52 Bts(doldoc.type_flags_form,i);53 54 //Don't forget cmp_type_flags_src_code.55 doldoc.type_flags_nontag_invis[0]=56 1<<DOCT_PMT|57 1<<DOCT_PAGE_LEN|58 1<<DOCT_LEFT_MARGIN|59 1<<DOCT_RIGHT_MARGIN|60 1<<DOCT_HEADER|61 1<<DOCT_FOOTER|62 1<<DOCT_INDENT|63 1<<DOCT_FOREGROUND|64 1<<DOCT_BACKGROUND|65 1<<DOCT_DFT_FOREGROUND|66 1<<DOCT_DFT_BACKGROUND|67 1<<DOCT_WORD_WRAP|68 1<<DOCT_HIGHLIGHT|69 1<<DOCT_BLINK|70 1<<DOCT_INVERT|71 1<<DOCT_UNDERLINE|72 1<<DOCT_SHIFTED_X|73 1<<DOCT_SHIFTED_Y|74 1<<DOCT_SPRITE;75 76 doldoc.type_flags_data[0]=1<<DOCT_DATA|1<<DOCT_HEX_ED|1<<DOCT_CHECK_BOX;77 78 doldoc.type_flags_chk_dup[0]=79 1<<DOCT_LEFT_MARGIN|80 1<<DOCT_RIGHT_MARGIN|81 1<<DOCT_HEADER|82 1<<DOCT_FOOTER|83 1<<DOCT_FOREGROUND|84 1<<DOCT_BACKGROUND|85 1<<DOCT_DFT_FOREGROUND|86 1<<DOCT_DFT_BACKGROUND|87 1<<DOCT_WORD_WRAP|88 1<<DOCT_HIGHLIGHT|89 1<<DOCT_BLINK|90 1<<DOCT_INVERT|91 1<<DOCT_UNDERLINE|92 1<<DOCT_SHIFTED_X|93 1<<DOCT_SHIFTED_Y;94 95 Bts(doldoc.clean_scan_codes,SC_CURSOR_RIGHT);96 Bts(doldoc.clean_scan_codes,SC_CURSOR_LEFT);97 Bts(doldoc.clean_scan_codes,SC_CURSOR_UP);98 Bts(doldoc.clean_scan_codes,SC_CURSOR_DOWN);99 Bts(doldoc.clean_scan_codes,SC_PAGE_UP);100 Bts(doldoc.clean_scan_codes,SC_PAGE_DOWN);101 Bts(doldoc.clean_scan_codes,SC_ALT);102 Bts(doldoc.clean_scan_codes,SC_CTRL);103 Bts(doldoc.clean_scan_codes,SC_SHIFT);104 Bts(doldoc.clean_scan_codes,SC_CAPS);105 Bts(doldoc.clean_scan_codes,SC_NUM);106 Bts(doldoc.clean_scan_codes,SC_SCROLL);107 Bts(doldoc.clean_scan_codes,SC_HOME);108 Bts(doldoc.clean_scan_codes,SC_END);109 Bts(doldoc.clean_scan_codes,SC_GUI);110 Bts(doldoc.clean_scan_codes,SC_BACKSPACE); //Handled specially111}112 113DocInit;114 