diff options
Diffstat (limited to 'Build/source/texk/web2c/hitexdir/hintview/src/hint.c')
-rw-r--r-- | Build/source/texk/web2c/hitexdir/hintview/src/hint.c | 726 |
1 files changed, 364 insertions, 362 deletions
diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/hint.c b/Build/source/texk/web2c/hitexdir/hintview/src/hint.c index b2463d6709d..5c99a41c7e5 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/hint.c +++ b/Build/source/texk/web2c/hitexdir/hintview/src/hint.c @@ -1,5 +1,5 @@ /*372:*/ -#line 7519 "hint.w" +#line 7534 "hint.w" #include "basetypes.h" #include <string.h> @@ -13,13 +13,13 @@ #include "hint.h" /*82:*/ -#line 1283 "hint.w" +#line 1298 "hint.w" #define HGET_STRING(S) S= (char*)hpos;\ while(hpos<hend && *hpos!=0) { RNG("String character",*hpos,0x20,0x7E); hpos++;}\ hpos++; /*:82*//*83:*/ -#line 1295 "hint.w" +#line 1310 "hint.w" #define HGET_XDIMEN(I,X) \ { if((I)&b100) HGET32((X).w); else (X).w= 0;\ @@ -27,11 +27,11 @@ if((I)&b001) (X).v= hget_float32(); else (X).v= 0.0;\ } /*:83*//*87:*/ -#line 1398 "hint.w" +#line 1413 "hint.w" #define HGET_STRETCH(F,O) { Stch _st; HGET32(_st.u); (O)= _st.u&3; _st.u&= ~3; (F)= (scaled)(_st.f*ONE); } /*:87*//*89:*/ -#line 1409 "hint.w" +#line 1424 "hint.w" #define HGET_GLYPH(I) \ {uint8_t f; uint32_t c;\ @@ -43,7 +43,7 @@ tail_append(new_character(f,c));\ } /*:89*//*97:*/ -#line 1491 "hint.w" +#line 1506 "hint.w" #define HGET_RULE(I)\ pointer p= new_rule();\ @@ -51,7 +51,7 @@ if ((I)&b100) HGET32(height(p)); else height(p)= null_flag;\ if ((I)&b010) HGET32(depth(p)); else depth(p)= null_flag;\ if ((I)&b001) HGET32(width(p)); else width(p)= null_flag; /*:97*//*103:*/ -#line 1553 "hint.w" +#line 1568 "hint.w" #define HGET_GLUE(I) \ p= get_node(glue_spec_size); \ @@ -60,12 +60,12 @@ if ((I)&b001) HGET32(width(p)); else width(p)= null_flag; if((I)&b001) HGET_STRETCH(shrink(p),shrink_order(p)) else shrink(p)= 0, shrink_order(p)= normal;\ if(I==b111) width(p)= hget_xdimen_node(); /*:103*//*110:*/ -#line 1673 "hint.w" +#line 1688 "hint.w" #define IS_LIST(X) (KIND(X)==list_kind || \ KIND(X)==text_kind || KIND(X)==param_kind) /*:110*//*115:*/ -#line 1830 "hint.w" +#line 1845 "hint.w" #define HGET_BOX(I) \ p= new_null_box();\ @@ -78,7 +78,7 @@ if ((I)&b100) {int8_t x; glue_set(p)= hget_float32();\ x= x>>4; glue_sign(p)= (x<0?shrinking:(x> 0?stretching:normal));}\ list_ptr(p)= hget_list_pointer(); /*:115*//*122:*/ -#line 1954 "hint.w" +#line 1969 "hint.w" #define HGET_SET(I) \ scaled x, st, sh; uint8_t sto, sho; \ @@ -89,7 +89,7 @@ list_ptr(p)= hget_list_pointer(); if ((I)&b100) x= hget_xdimen_node(); else x= hget_xdimen_ref(HGET8);\ list_ptr(p)= hget_list_pointer(); /*:122*//*128:*/ -#line 2097 "hint.w" +#line 2112 "hint.w" #define HGET_PACK(K,I) \ { pointer p; scaled x, s= 0, d; uint8_t m; \ @@ -102,7 +102,7 @@ list_ptr(p)= hget_list_pointer(); shift_amount(p)= s;\ happend_to_vlist(p);} /*:128*//*132:*/ -#line 2164 "hint.w" +#line 2179 "hint.w" #define HGET_KERN(I) \ pointer p; scaled x; \ @@ -114,7 +114,7 @@ p= new_kern(x);\ if ((I)&b100) subtype(p)= explicit;\ tail_append(p); /*:132*//*136:*/ -#line 2215 "hint.w" +#line 2230 "hint.w" #define HGET_LEADERS(I) \ {pointer p;\ @@ -125,7 +125,7 @@ else if (KIND(*hpos)==hbox_kind) leader_ptr(p)= hget_hbox_node(); \ else leader_ptr(p)= hget_vbox_node();\ tail_append(p);} /*:136*//*140:*/ -#line 2261 "hint.w" +#line 2276 "hint.w" #define HGET_BASELINE(I) \ cur_list.bs_pos= hpos-1; \ @@ -133,7 +133,7 @@ tail_append(p);} if((I)&b100) cur_bs= hget_glue_spec(); else cur_bs= zero_glue; \ if((I)&b010) cur_ls= hget_glue_spec(); else cur_ls= zero_glue; /*:140*//*145:*/ -#line 2315 "hint.w" +#line 2330 "hint.w" #define HGET_LIG(I) \ {pointer p,q;uint8_t f;\ @@ -144,7 +144,7 @@ p= new_ligature(f, character(q), link(q)); tail_append(p);\ link(q)= null; flush_node_list(q);\ } /*:145*//*149:*/ -#line 2367 "hint.w" +#line 2382 "hint.w" #define HGET_DISC(I)\ pointer p= new_disc(); \ @@ -154,7 +154,7 @@ link(q)= null; flush_node_list(q);\ if ((I)&b010) pre_break(p)= hget_list_pointer(); \ if ((I)&b001) post_break(p)= hget_list_pointer(); /*:149*//*155:*/ -#line 2440 "hint.w" +#line 2455 "hint.w" #define HGET_PAR(I) \ { scaled x= 0;\ @@ -166,7 +166,7 @@ link(q)= null; flush_node_list(q);\ hget_paragraph(x,0,q);\ } /*:155*//*172:*/ -#line 2925 "hint.w" +#line 2940 "hint.w" #define HGET_MATH(I) \ { ParamDef *q; pointer p= null, a= null;\ @@ -177,7 +177,7 @@ if ((I)&b001) a= hget_hbox_node();\ hset_param_list(q); hdisplay(p,a,((I)&b010)!=0); hrestore_param_list();\ } /*:172*//*178:*/ -#line 2994 "hint.w" +#line 3009 "hint.w" #define HGET_ADJUST(I) \ { pointer p;\ @@ -186,7 +186,7 @@ hset_param_list(q); hdisplay(p,a,((I)&b010)!=0); hrestore_param_list();\ tail_append(p);\ } /*:178*//*180:*/ -#line 3010 "hint.w" +#line 3025 "hint.w" #define HGET_TABLE(I) \ if(I&b010) ; else ;\ @@ -195,7 +195,7 @@ if ((I)&b100) hget_xdimen_node(); else hget_xdimen_ref(HGET8);\ hget_list_pointer(); \ hget_list_pointer(); /*:180*//*185:*/ -#line 3097 "hint.w" +#line 3112 "hint.w" #define HGET_STREAM(I) \ { ParamDef *q; pointer p;\ @@ -206,7 +206,7 @@ hget_list_pointer(); hset_stream_params(p,q); \ tail_append(p);} /*:185*//*189:*/ -#line 3129 "hint.w" +#line 3144 "hint.w" #define HGET_IMAGE(I) \ {pointer p; float32_t a= 0.0; scaled w,h;\ @@ -227,7 +227,7 @@ image_width(p)= w; image_height(p)= h;\ image_alt(p)= hget_list_pointer();\ tail_append(p);} /*:189*//*193:*/ -#line 3194 "hint.w" +#line 3209 "hint.w" #define HGET_LINK(I) \ { pointer p;\ @@ -238,21 +238,21 @@ tail_append(p);} label_has_name(p)= 0;\ tail_append(p);} /*:193*/ -#line 7531 "hint.w" +#line 7546 "hint.w" /*84:*/ -#line 1303 "hint.w" +#line 1318 "hint.w" #define HTEG_XDIMEN(I,X) \ if((I)&b001) (X).v= hteg_float32(); else (X).v= 0.0;\ if((I)&b010) (X).h= hteg_float32(); else (X).h= 0.0;\ if((I)&b100) HTEG32((X).w); else (X).w= 0;\ /*:84*//*88:*/ -#line 1401 "hint.w" +#line 1416 "hint.w" #define HTEG_STRETCH(F,O) { Stch _st; HTEG32(_st.u); (O)= _st.u&3; _st.u&= ~3; (F)= (scaled)(_st.f*ONE); } /*:88*//*90:*/ -#line 1421 "hint.w" +#line 1436 "hint.w" #define HTEG_GLYPH(I) \ {uint8_t f; uint32_t c;\ @@ -264,7 +264,7 @@ tail_append(p);} tail_append(new_character(f,c));\ } /*:90*//*98:*/ -#line 1500 "hint.w" +#line 1515 "hint.w" #define HTEG_RULE(I)\ pointer p= new_rule();\ @@ -272,7 +272,7 @@ if ((I)&b001) HTEG32(width(p)); else width(p)= null_flag;\ if ((I)&b010) HTEG32(depth(p)); else depth(p)= null_flag;\ if ((I)&b100) HTEG32(height(p)); else height(p)= null_flag; /*:98*//*105:*/ -#line 1566 "hint.w" +#line 1581 "hint.w" #define HTEG_GLUE(I) \ p= get_node(glue_spec_size); \ @@ -281,12 +281,12 @@ if ((I)&b100) HTEG32(height(p)); else height(p)= null_flag; if((I)&b010) HTEG_STRETCH(stretch(p),stretch_order(p)) else stretch(p)= 0, stretch_order(p)= normal;\ if((I)!=b111) { if ((I)&b100) HGET32(width(p)); else width(p)= 0; } /*:105*//*111:*/ -#line 1677 "hint.w" +#line 1692 "hint.w" #define IS_LIST(X) (KIND(X)==list_kind || \ KIND(X)==text_kind || KIND(X)==param_kind) /*:111*//*116:*/ -#line 1843 "hint.w" +#line 1858 "hint.w" #define HTEG_BOX(I) \ p= new_null_box();\ @@ -300,7 +300,7 @@ if ((I)&b001) HTEG32(depth(p));\ HTEG32(height(p));\ node_pos= hpos-hstart-1; /*:116*//*123:*/ -#line 1966 "hint.w" +#line 1981 "hint.w" #define HTEG_SET(I) \ scaled x, st, sh; uint8_t sto, sho; \ @@ -312,7 +312,7 @@ node_pos= hpos-hstart-1; HTEG32(width(p));if ((I)&b001) HTEG32(depth(p));HTEG32(height(p)); \ node_pos= hpos-hstart-1; /*:123*//*129:*/ -#line 2110 "hint.w" +#line 2125 "hint.w" #define HTEG_PACK(K,I) \ { pointer p; scaled x, s, d; uint8_t m; \ @@ -325,7 +325,7 @@ node_pos= hpos-hstart-1; if (K==vpack_kind) p= vpackage(p,x,m,d); else p= hpack(p,x,m);\ hprepend_to_vlist(p);} /*:129*//*133:*/ -#line 2177 "hint.w" +#line 2192 "hint.w" #define HTEG_KERN(I) \ pointer p; scaled x; \ @@ -337,7 +337,7 @@ p= new_kern(x);\ if ((I)&b100) subtype(p)= explicit;\ tail_append(p); /*:133*//*137:*/ -#line 2226 "hint.w" +#line 2241 "hint.w" #define HTEG_LEADERS(I) \ {pointer p,q;\ @@ -348,7 +348,7 @@ if ((I)&b100) p= hteg_glue_node(); else {p= spec2glue(zero_glue); incr(glue_ref_ leader_ptr(p)= q;subtype(p)= a_leaders+((I)&b011)-1;\ tail_append(p);} /*:137*//*141:*/ -#line 2269 "hint.w" +#line 2284 "hint.w" #define HTEG_BASELINE(I) \ if((I)&b010) cur_ls= hteg_glue_spec(); else cur_ls= zero_glue; \ @@ -356,7 +356,7 @@ tail_append(p);} if((I)&b001) HTEG32(cur_lsl); else cur_lsl= 0; \ cur_list.bs_pos= hpos-1; /*:141*//*146:*/ -#line 2326 "hint.w" +#line 2341 "hint.w" #define HTEG_LIG(I) \ {pointer p,q;\ @@ -368,7 +368,7 @@ link(q)= null; flush_node_list(q);\ font(lig_char(p))= HTEG8;\ } /*:146*//*150:*/ -#line 2377 "hint.w" +#line 2392 "hint.w" #define HTEG_DISC(I)\ pointer p= new_disc(); \ @@ -378,7 +378,7 @@ font(lig_char(p))= HTEG8;\ if ((r&0x80)==0) set_auto_disc(p); }\ else set_auto_disc(p); /*:150*//*173:*/ -#line 2936 "hint.w" +#line 2951 "hint.w" #define HTEG_MATH(I) \ { ParamDef *q; pointer p= null, a= null;\ @@ -389,7 +389,7 @@ if ((I)&b100) q= hteg_param_list_node(); else q= hget_param_list_ref(HTEG8);\ hset_param_list(q); hdisplay(p,a,((I)&b010)!=0); hrestore_param_list();\ } /*:173*//*181:*/ -#line 3019 "hint.w" +#line 3034 "hint.w" #define HTEG_TABLE(I) \ if(I&b010) ; else ;\ @@ -398,7 +398,7 @@ hteg_list_pointer(); \ hteg_list_pointer(); \ if ((I)&b100) hteg_xdimen_node(); else hget_xdimen_ref(HTEG8); /*:181*//*186:*/ -#line 3108 "hint.w" +#line 3123 "hint.w" #define HTEG_STREAM(I) \ {pointer p= get_node(ins_node_size); type(p)= ins_node;\ @@ -408,7 +408,7 @@ if ((I)&b100) hteg_xdimen_node(); else hget_xdimen_ref(HTEG8); subtype(p)= HTEG8;RNG("Stream",subtype(p),1,254);\ tail_append(p);} /*:186*//*190:*/ -#line 3150 "hint.w" +#line 3165 "hint.w" #define HTEG_IMAGE(I) \ { pointer p; float32_t a= 0.0; scaled w,h;\ @@ -430,7 +430,7 @@ if (w==0 || h==0) QUIT("Incomplete dimensions in image %d",image_no(p));\ image_width(p)= w; image_height(p)= h;\ tail_append(p);} /*:190*//*194:*/ -#line 3205 "hint.w" +#line 3220 "hint.w" #define HTEG_LINK(I) \ { pointer p;\ @@ -441,15 +441,15 @@ tail_append(p);} label_has_name(p)= 0;\ tail_append(p);} /*:194*/ -#line 7532 "hint.w" +#line 7547 "hint.w" /*21:*/ -#line 366 "hint.w" +#line 381 "hint.w" typedef struct{pointer bs,ls;scaled lsl;}BaselineSkip; /*:21*//*28:*/ -#line 476 "hint.w" +#line 491 "hint.w" typedef struct{ char*n; @@ -461,7 +461,7 @@ pointer p[MAX_FONT_PARAMS+1]; }FontDef; extern FontDef*font_def; /*:28*//*37:*/ -#line 581 "hint.w" +#line 596 "hint.w" typedef struct{ uint8_t n,k; @@ -472,40 +472,40 @@ typedef struct ParamDef{ struct ParamDef*next; Param p;}ParamDef; /*:37*/ -#line 7534 "hint.w" +#line 7549 "hint.w" /*2:*/ -#line 191 "hint.w" +#line 206 "hint.w" pointer*pointer_def[32]= {NULL}; /*:2*//*6:*/ -#line 240 "hint.w" +#line 255 "hint.w" int32_t*integer_def; /*:6*//*10:*/ -#line 270 "hint.w" +#line 285 "hint.w" scaled*dimen_def; /*:10*//*14:*/ -#line 300 "hint.w" +#line 315 "hint.w" Xdimen*xdimen_def; /*:14*//*22:*/ -#line 370 "hint.w" +#line 385 "hint.w" BaselineSkip*baseline_def= NULL; /*:22*//*29:*/ -#line 488 "hint.w" +#line 503 "hint.w" FontDef*font_def; /*:29*//*38:*/ -#line 593 "hint.w" +#line 608 "hint.w" ParamDef**param_def; /*:38*//*45:*/ -#line 746 "hint.w" +#line 761 "hint.w" typedef struct{ uint8_t pg; @@ -513,11 +513,11 @@ uint32_t f,t; }RangeDef; RangeDef*range_def; /*:45*//*50:*/ -#line 803 "hint.w" +#line 818 "hint.w" Stream*streams; /*:50*//*53:*/ -#line 817 "hint.w" +#line 832 "hint.w" typedef struct{ Xdimen x; @@ -529,7 +529,7 @@ pointer g; pointer h; }StreamDef; /*:53*//*57:*/ -#line 890 "hint.w" +#line 905 "hint.w" typedef struct{ char*n; @@ -543,25 +543,25 @@ StreamDef*s; PageDef*page_def; PageDef*cur_page; /*:57*//*65:*/ -#line 1025 "hint.w" +#line 1040 "hint.w" hint_Outline*hint_outlines= NULL; int outline_no= -1; /*:65*//*162:*/ -#line 2766 "hint.w" +#line 2781 "hint.w" static ParamDef*line_break_params= NULL; /*:162*//*205:*/ -#line 3505 "hint.w" +#line 3520 "hint.w" static scaled page_height; static scaled top_so_far[8]; /*:205*//*220:*/ -#line 3783 "hint.w" +#line 3798 "hint.w" static uint32_t map[0x10000]; /*:220*//*225:*/ -#line 3847 "hint.w" +#line 3862 "hint.w" #define MAX_PAGE_POS (1<<3) @@ -569,28 +569,28 @@ uint64_t page_loc[MAX_PAGE_POS]; int cur_loc; static int lo_loc,hi_loc; /*:225*//*242:*/ -#line 4240 "hint.w" +#line 4257 "hint.w" scaled hvsize,hhsize; /*:242*//*244:*/ -#line 4268 "hint.w" +#line 4285 "hint.w" int page_v,page_h,offset_v,offset_h; /*:244*//*301:*/ -#line 5547 "hint.w" +#line 5564 "hint.w" hint_Link*hint_links= NULL; int max_link= -1; /*:301*//*359:*/ -#line 7214 "hint.w" +#line 7231 "hint.w" jmp_buf error_exit; char herror_string[MAX_HERROR]; /*:359*/ -#line 7537 "hint.w" +#line 7552 "hint.w" /*3:*/ -#line 196 "hint.w" +#line 211 "hint.w" static void hget_font_def(uint8_t a,uint8_t n); static int32_t hget_integer_def(uint8_t a); @@ -604,32 +604,32 @@ static void hget_outline_or_label_def(Info i,int n); static void hget_font_metrics(); static pointer hget_definition(uint8_t a); /*:3*//*27:*/ -#line 457 "hint.w" +#line 472 "hint.w" static pointer hprepend_to_vlist(pointer b); /*:27*//*36:*/ -#line 569 "hint.w" +#line 584 "hint.w" static pointer hget_glue_spec(void); static pointer hget_disc_node(void); /*:36*//*104:*/ -#line 1562 "hint.w" +#line 1577 "hint.w" static scaled hget_xdimen_node(void); /*:104*//*117:*/ -#line 1859 "hint.w" +#line 1874 "hint.w" static pointer hget_list_pointer(void); static pointer hteg_list_pointer(void); /*:117*//*124:*/ -#line 1977 "hint.w" +#line 1992 "hint.w" static scaled hget_xdimen_node(void); /*:124*/ -#line 7538 "hint.w" +#line 7553 "hint.w" /*9:*/ -#line 253 "hint.w" +#line 268 "hint.w" static int32_t hget_integer_def(uint8_t a) {if(INFO(a)==1){int8_t n= HGET8;return n;} @@ -644,7 +644,7 @@ static int32_t hget_integer_ref(uint8_t n) return integer_def[n]; } /*:9*//*17:*/ -#line 311 "hint.w" +#line 326 "hint.w" static scaled xdimen(Xdimen*x) {return round(x->w+(double)x->h*(double)hhsize+(double)x->v*(double)hvsize); @@ -654,7 +654,7 @@ static scaled hget_xdimen_ref(uint8_t n) return xdimen(xdimen_def+n); } /*:17*//*19:*/ -#line 331 "hint.w" +#line 346 "hint.w" static pointer hget_glue_ref(uint8_t n) @@ -678,7 +678,7 @@ pointer hget_param_glue(uint8_t n) return new_glue(pointer_def[glue_kind][n]); } /*:19*//*32:*/ -#line 501 "hint.w" +#line 516 "hint.w" static void hget_font_def(uint8_t a,uint8_t n) {char*t; @@ -695,12 +695,12 @@ while(KIND(*hpos)!=font_kind) {Kind k; uint8_t n; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 516 "hint.w" +#line 531 "hint.w" k= KIND(a); n= HGET8; @@ -711,20 +711,20 @@ QUIT("Font parameter %d has invalid type %s",n,content_name[n]); RNG("Font parameter",n,0,MAX_FONT_PARAMS); f->p[n]= hget_definition(a); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 525 "hint.w" +#line 540 "hint.w" } DBG(DBGDEF,"End font definition\n"); } /*:32*//*33:*/ -#line 534 "hint.w" +#line 549 "hint.w" static void hget_font_metrics(void) {int i; @@ -739,7 +739,7 @@ font_def[i].s= font_size[i]; } } /*:33*//*41:*/ -#line 610 "hint.w" +#line 625 "hint.w" static void free_param_list(ParamDef*p) {while(p!=NULL) @@ -749,7 +749,7 @@ free(q); } } /*:41*//*42:*/ -#line 622 "hint.w" +#line 637 "hint.w" static ParamDef*hget_param_list(uint8_t a) {uint32_t s,t; @@ -764,12 +764,12 @@ QUIT("list end after before stream end\n"); while(hpos<list_end) {ParamDef*r;Param*q; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 635 "hint.w" +#line 650 "hint.w" ALLOCATE(r,1,ParamDef); q= &(r->p); @@ -781,14 +781,14 @@ else if(KIND(a)==dimen_kind)q->v= hget_dimen_def(a); else if(KIND(a)==glue_kind)q->v= hget_glue_def(a); else TAGERR(a); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 645 "hint.w" +#line 660 "hint.w" r->next= p; p= r; @@ -805,23 +805,23 @@ ParamDef*hget_param_list_node(void) else {ParamDef*p; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 660 "hint.w" +#line 675 "hint.w" p= hget_param_list(a); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 662 "hint.w" +#line 677 "hint.w" return p; } @@ -832,7 +832,7 @@ ParamDef*hget_param_list_ref(uint8_t n) return param_def[n]; } /*:42*//*43:*/ -#line 697 "hint.w" +#line 712 "hint.w" #define MAX_SAVE 100 #define SAVE_BOUNDARY 0xFF @@ -877,7 +877,7 @@ else if(q->k==glue_kind) QUIT("Parameter save stack flow"); } /*:43*//*48:*/ -#line 761 "hint.w" +#line 776 "hint.w" static void hget_range_def(uint8_t a,uint8_t pg) {static uint8_t n= 0; @@ -907,7 +907,7 @@ return 0; } #endif /*:48*//*54:*/ -#line 834 "hint.w" +#line 849 "hint.w" static void hget_xdimen_def_node(Xdimen*x); @@ -917,19 +917,19 @@ return false; else {uint8_t n; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 842 "hint.w" +#line 857 "hint.w" DBG(DBGDEF,"Defining stream %d at "SIZE_F"\n",*hpos,hpos-hstart-1); n= HGET8;REF_RNG(stream_kind,n); s= s+n; if(n> 0) {if(INFO(a)==b100)/*55:*/ -#line 865 "hint.w" +#line 880 "hint.w" {DBG(DBGDEF,"Defining normal stream %d at "SIZE_F"\n",*(hpos-1),hpos-hstart-2); hget_xdimen_def_node(&(s->x)); @@ -939,7 +939,7 @@ s->n= HGET8;if(s->n!=255)REF_RNG(stream_kind,s->n); HGET16(s->r);RNG("split ratio",s->r,0,1000); } /*:55*/ -#line 847 "hint.w" +#line 862 "hint.w" else if(INFO(a)==b101)QUIT("first stream not yet implemented"); else if(INFO(a)==b110)QUIT("last stream not yet implemented"); @@ -951,20 +951,20 @@ s->a= hget_list_pointer(); s->h= hget_glue_spec(); } /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 857 "hint.w" +#line 872 "hint.w" return true; } } /*:54*//*61:*/ -#line 934 "hint.w" +#line 949 "hint.w" static void hset_cur_page(void) @@ -991,7 +991,7 @@ hskip_list(); while(hget_stream_def(cur_page->s))continue; } /*:61*//*72:*/ -#line 1101 "hint.w" +#line 1116 "hint.w" static pointer hget_ligature_ref(uint8_t n) {REF_RNG(ligature_kind,n); @@ -1022,7 +1022,7 @@ return copy_node_list(pointer_def[leaders_kind][n]); /*:72*//*85:*/ -#line 1310 "hint.w" +#line 1325 "hint.w" static void hget_xdimen_def(Info i,Xdimen*x) @@ -1056,58 +1056,58 @@ return xdimen(&x); static scaled hget_xdimen_node(void) {scaled x= 0; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 1342 "hint.w" +#line 1357 "hint.w" if(KIND(a)==xdimen_kind) x= hget_xdimen(INFO(a)); else QUIT("Extent expected at 0x%x got %s",node_pos,NAME(a)); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 1347 "hint.w" +#line 1362 "hint.w" return x; } static void hget_xdimen_def_node(Xdimen*x) {/*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 1352 "hint.w" +#line 1367 "hint.w" if(KIND(a)==xdimen_kind) hget_xdimen_def(INFO(a),x); else QUIT("Extent expected at 0x%x got %s",node_pos,NAME(a)); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 1357 "hint.w" +#line 1372 "hint.w" } /*:85*//*86:*/ -#line 1363 "hint.w" +#line 1378 "hint.w" scaled hteg_xdimen(uint8_t a) {Xdimen x; @@ -1131,19 +1131,19 @@ return xdimen(&x); scaled hteg_xdimen_node(void) {scaled x= 0; /*78:*/ -#line 1226 "hint.w" +#line 1241 "hint.w" uint8_t a,z; z= HTEG8,DBGTAG(z,hpos); /*:78*/ -#line 1385 "hint.w" +#line 1400 "hint.w" if(KIND(z)==xdimen_kind) x= hteg_xdimen(z); else QUIT("Extent expected at 0x%x got %s",node_pos,NAME(z)); /*79:*/ -#line 1231 "hint.w" +#line 1246 "hint.w" a= HTEG8,DBGTAG(a,hpos); if(z!=a) @@ -1151,27 +1151,27 @@ QUIT("Tag mismatch [%s,%d]!=[%s,%d] at "SIZE_F" to 0x%x\n", NAME(a),INFO(a),NAME(z),INFO(z),hpos-hstart,node_pos); /*:79*/ -#line 1390 "hint.w" +#line 1405 "hint.w" return x; } /*:86*//*102:*/ -#line 1538 "hint.w" +#line 1553 "hint.w" static pointer hteg_rule_node(void) {pointer q= null; /*78:*/ -#line 1226 "hint.w" +#line 1241 "hint.w" uint8_t a,z; z= HTEG8,DBGTAG(z,hpos); /*:78*/ -#line 1541 "hint.w" +#line 1556 "hint.w" if(KIND(z)==rule_kind){HTEG_RULE(INFO(z));q= p;} else QUIT("Rule expected at 0x%x got %s",node_pos,NAME(z)); /*79:*/ -#line 1231 "hint.w" +#line 1246 "hint.w" a= HTEG8,DBGTAG(a,hpos); if(z!=a) @@ -1179,12 +1179,12 @@ QUIT("Tag mismatch [%s,%d]!=[%s,%d] at "SIZE_F" to 0x%x\n", NAME(a),INFO(a),NAME(z),INFO(z),hpos-hstart,node_pos); /*:79*/ -#line 1544 "hint.w" +#line 1559 "hint.w" return q; } /*:102*//*108:*/ -#line 1607 "hint.w" +#line 1622 "hint.w" static pointer hget_glue_spec(void) {pointer p= null; @@ -1199,14 +1199,14 @@ if(INFO(a)==b000) else {HGET_GLUE(INFO(a));} /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 1620 "hint.w" +#line 1635 "hint.w" } return p; @@ -1223,7 +1223,7 @@ static pointer hget_glue_node(void) {return spec2glue(hget_glue_spec()); } /*:108*//*109:*/ -#line 1637 "hint.w" +#line 1652 "hint.w" static pointer hteg_glue_spec(void) {pointer p= null; @@ -1235,7 +1235,7 @@ if(INFO(z)==b000)p= hget_glue_ref(HTEG8); else {HTEG_GLUE(INFO(z));} /*79:*/ -#line 1231 "hint.w" +#line 1246 "hint.w" a= HTEG8,DBGTAG(a,hpos); if(z!=a) @@ -1243,7 +1243,7 @@ QUIT("Tag mismatch [%s,%d]!=[%s,%d] at "SIZE_F" to 0x%x\n", NAME(a),INFO(a),NAME(z),INFO(z),hpos-hstart,node_pos); /*:79*/ -#line 1647 "hint.w" +#line 1662 "hint.w" return p; } @@ -1255,7 +1255,7 @@ if(p!=null)return spec2glue(p); else return new_glue(zero_glue); } /*:109*//*112:*/ -#line 1682 "hint.w" +#line 1697 "hint.w" static pointer hget_node_list(uint32_t s) {uint8_t*list_end= hpos+s; @@ -1278,12 +1278,12 @@ else {pointer p= null; uint32_t s,t; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 1703 "hint.w" +#line 1718 "hint.w" s= hget_list_size(INFO(a)); hget_size_boundary(INFO(a)); @@ -1296,20 +1296,20 @@ t= hget_list_size(INFO(a)); if(t!=s) QUIT("List sizes at 0x%x and "SIZE_F" do not match 0x%x != 0x%x",node_pos+1,hpos-hstart-s-1,s,t); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 1714 "hint.w" +#line 1729 "hint.w" return p; } } /*:112*//*113:*/ -#line 1724 "hint.w" +#line 1739 "hint.w" static void hskip_list() @@ -1347,7 +1347,7 @@ hpos= list_start; return p; } /*:113*//*114:*/ -#line 1769 "hint.w" +#line 1784 "hint.w" #if 0 static int32_t hteg_integer_def(uint8_t z) @@ -1371,12 +1371,12 @@ QUIT("list start before stream start\n"); while(list_start<hpos) {ParamDef*r;Param*q; /*78:*/ -#line 1226 "hint.w" +#line 1241 "hint.w" uint8_t a,z; z= HTEG8,DBGTAG(z,hpos); /*:78*/ -#line 1791 "hint.w" +#line 1806 "hint.w" ALLOCATE(r,1,ParamDef); q= &(r->p); @@ -1388,7 +1388,7 @@ else TAGERR(a); q->n= HTEG8; DBG(DBGTAGS,"Defining %s %d\n",definition_name[KIND(z)],q->n); /*79:*/ -#line 1231 "hint.w" +#line 1246 "hint.w" a= HTEG8,DBGTAG(a,hpos); if(z!=a) @@ -1396,7 +1396,7 @@ QUIT("Tag mismatch [%s,%d]!=[%s,%d] at "SIZE_F" to 0x%x\n", NAME(a),INFO(a),NAME(z),INFO(z),hpos-hstart,node_pos); /*:79*/ -#line 1801 "hint.w" +#line 1816 "hint.w" r->next= p; p= r; @@ -1419,22 +1419,22 @@ hpos= list_start; return p; } /*:114*//*121:*/ -#line 1928 "hint.w" +#line 1943 "hint.w" static pointer hteg_hbox_node(void) {/*78:*/ -#line 1226 "hint.w" +#line 1241 "hint.w" uint8_t a,z; z= HTEG8,DBGTAG(z,hpos); /*:78*/ -#line 1930 "hint.w" +#line 1945 "hint.w" if(KIND(z)!=hbox_kind)QUIT("Hbox expected at 0x%x got %s",node_pos,NAME(z)); {pointer p; HTEG_BOX(INFO(z)); /*79:*/ -#line 1231 "hint.w" +#line 1246 "hint.w" a= HTEG8,DBGTAG(a,hpos); if(z!=a) @@ -1442,25 +1442,25 @@ QUIT("Tag mismatch [%s,%d]!=[%s,%d] at "SIZE_F" to 0x%x\n", NAME(a),INFO(a),NAME(z),INFO(z),hpos-hstart,node_pos); /*:79*/ -#line 1934 "hint.w" +#line 1949 "hint.w" return p; } } static pointer hteg_vbox_node(void) {/*78:*/ -#line 1226 "hint.w" +#line 1241 "hint.w" uint8_t a,z; z= HTEG8,DBGTAG(z,hpos); /*:78*/ -#line 1939 "hint.w" +#line 1954 "hint.w" if(KIND(z)!=vbox_kind)QUIT("Vbox expected at 0x%x got %s",node_pos,NAME(z)); {pointer p; HTEG_BOX(INFO(z)); /*79:*/ -#line 1231 "hint.w" +#line 1246 "hint.w" a= HTEG8,DBGTAG(a,hpos); if(z!=a) @@ -1468,7 +1468,7 @@ QUIT("Tag mismatch [%s,%d]!=[%s,%d] at "SIZE_F" to 0x%x\n", NAME(a),INFO(a),NAME(z),INFO(z),hpos-hstart,node_pos); /*:79*/ -#line 1943 "hint.w" +#line 1958 "hint.w" type(p)= vlist_node; return p; @@ -1476,7 +1476,7 @@ return p; } /*:121*//*127:*/ -#line 2025 "hint.w" +#line 2040 "hint.w" static void hset(pointer p, uint8_t sto,scaled st,uint8_t sho,scaled sh,scaled w) @@ -1545,7 +1545,7 @@ glue_set(p)= 0.0; } } /*:127*//*144:*/ -#line 2304 "hint.w" +#line 2319 "hint.w" static pointer hget_text_list(uint32_t s) {pointer p= null; @@ -1555,36 +1555,36 @@ while(hpos<t){*pp= new_character(0,hget_utf8());pp= &link(*pp);} return p; } /*:144*//*153:*/ -#line 2411 "hint.w" +#line 2426 "hint.w" static pointer hget_disc_node(void) {/*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 2413 "hint.w" +#line 2428 "hint.w" if(KIND(a)!=disc_kind||INFO(a)==b000) QUIT("Hyphen expected at 0x%x got %s,%d",node_pos,NAME(a),INFO(a)); { HGET_DISC(INFO(a)); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 2418 "hint.w" +#line 2433 "hint.w" return p; } } /*:153*//*157:*/ -#line 2486 "hint.w" +#line 2501 "hint.w" static void transplant_post_break_list(void) {pointer r,q= link(head); @@ -1627,7 +1627,7 @@ link(head)= q; } } /*:157*//*158:*/ -#line 2553 "hint.w" +#line 2568 "hint.w" pointer hget_paragraph_all(scaled x) { @@ -1661,14 +1661,14 @@ t= hget_list_size(INFO(a)); if(t!=s) QUIT("List sizes at 0x%x and "SIZE_F" do not match 0x%x != 0x%x",node_pos+1,hpos-hstart-s-1,s,t); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 2585 "hint.w" +#line 2600 "hint.w" #if 0 if(offset> 0&&link(head)!=null&&!is_char_node(link(head))) @@ -1696,7 +1696,7 @@ QUIT("Text in paragraph not yet implemented"); return null; } /*:158*//*159:*/ -#line 2616 "hint.w" +#line 2631 "hint.w" pointer hget_paragraph_final(scaled x,uint8_t*from) { @@ -1726,14 +1726,14 @@ t= hget_list_size(INFO(a)); if(t!=s) QUIT("List sizes at 0x%x and "SIZE_F" do not match 0x%x != 0x%x",node_pos+1,hpos-hstart-s-1,s,t); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 2644 "hint.w" +#line 2659 "hint.w" if(link(head)!=null&&!is_char_node(link(head))) {if(type(link(head))==disc_node) @@ -1759,7 +1759,7 @@ QUIT("Text in paragraph not yet implemented"); return null; } /*:159*//*165:*/ -#line 2783 "hint.w" +#line 2798 "hint.w" pointer hget_paragraph(scaled x,uint32_t offset,ParamDef*q) { @@ -1785,12 +1785,12 @@ void hget_par_node(uint32_t offset) {scaled x= 0; ParamDef*q; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 2807 "hint.w" +#line 2822 "hint.w" if(KIND(a)!=par_kind) QUIT("Paragrap expected found tag [%s,%d] at "SIZE_F"\n",NAME(a),INFO(a),hpos-hstart); @@ -1800,18 +1800,18 @@ if(INFO(a)&b100)x= hget_xdimen_node();else x= hget_xdimen_ref(HGET8); if(INFO(a)&b010)q= hget_param_list_node();else q= hget_param_list_ref(HGET8); hget_paragraph(x,offset,q); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 2815 "hint.w" +#line 2830 "hint.w" } /*:165*//*168:*/ -#line 2837 "hint.w" +#line 2852 "hint.w" void hteg_paragraph(Info i) {scaled x= 0; @@ -1832,7 +1832,7 @@ hpos= list_start; cur_list.bs_pos= NULL; par_head= hget_paragraph(x,0,q); /*169:*/ -#line 2869 "hint.w" +#line 2884 "hint.w" {pointer p,r,par_tail; p= null; @@ -1854,12 +1854,12 @@ if(type(tail)==hlist_node||type(tail)==vlist_node) prev_height= height(tail); } /*:169*/ -#line 2856 "hint.w" +#line 2871 "hint.w" hpos= par_start; } /*:168*//*184:*/ -#line 3080 "hint.w" +#line 3095 "hint.w" static void hset_stream_params(pointer p,ParamDef*q) {pointer s; @@ -1875,14 +1875,14 @@ ins_ptr(p)= list_ptr(s); list_ptr(s)= null;flush_node_list(s); } /*:184*//*224:*/ -#line 3825 "hint.w" +#line 3840 "hint.w" uint64_t hlocation(pointer p) {return PAGE_LOC(map[p],map[p+1]); } /*:224*//*227:*/ -#line 3871 "hint.w" +#line 3886 "hint.w" #define NEXT_PAGE(X) (X= (X+1)&(MAX_PAGE_POS-1)) #define PREV_PAGE(X) (X= (X-1)&(MAX_PAGE_POS-1)) @@ -1915,7 +1915,7 @@ return true; /*:227*//*230:*/ -#line 3933 "hint.w" +#line 3948 "hint.w" void hloc_set(uint64_t h) @@ -1929,7 +1929,7 @@ hloc_clear(); DBG(DBGPAGE,"loc_set: %d < %d < %d\n",lo_loc,cur_loc,hi_loc); } /*:230*//*231:*/ -#line 3957 "hint.w" +#line 3972 "hint.w" void hloc_set_next(pointer p) @@ -1952,7 +1952,7 @@ hi_loc= i; DBG(DBGPAGE,"loc_set_next: %d < %d < %d\n",lo_loc,cur_loc,hi_loc); } /*:231*//*232:*/ -#line 3994 "hint.w" +#line 4009 "hint.w" void hloc_set_prev(pointer p) {int i= cur_loc; @@ -1975,7 +1975,7 @@ cur_loc= i; DBG(DBGPAGE,"loc_set_prev: %d < %d < %d\n",lo_loc,cur_loc,hi_loc); } /*:232*//*245:*/ -#line 4278 "hint.w" +#line 4295 "hint.w" static void hset_margins(void) {if(cur_page==&(page_def[0])){ @@ -2000,7 +2000,7 @@ offset_v= (page_v-hvsize)/2; } } /*:245*//*247:*/ -#line 4310 "hint.w" +#line 4327 "hint.w" static void houtput_template(pointer p) {pointer q,r; @@ -2021,7 +2021,7 @@ shift_amount(p)+= offset_h; streams[0].p= q; } /*:247*//*272:*/ -#line 4956 "hint.w" +#line 4973 "hint.w" static int trv_string_size= 0; static char trv_string[256]; @@ -2050,7 +2050,7 @@ trv_string[trv_string_size]= 0; return trv_string; } /*:272*//*369:*/ -#line 7448 "hint.w" +#line 7463 "hint.w" static pointer leaks[1<<16]= {0}; @@ -2091,21 +2091,21 @@ fprintf(stderr,"ERROR:leak final: p=%d, s=%d\n",i,leaks[i]); #endif } /*:369*/ -#line 7539 "hint.w" +#line 7554 "hint.w" /*1:*/ -#line 111 "hint.w" +#line 126 "hint.w" void hget_def_node(void) {Kind k; int n; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 115 "hint.w" +#line 130 "hint.w" k= KIND(a); if(k==label_kind&&(INFO(a)&b001))HGET16(n); @@ -2132,14 +2132,14 @@ if(n> max_ref[k]||n<=max_fixed[k]) QUIT("Definition %d for %s out of range [%d - %d]", n,definition_name[k],max_fixed[k]+1,max_ref[k]); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 140 "hint.w" +#line 155 "hint.w" } @@ -2172,34 +2172,34 @@ baseline_def[i].lsl= baseline_defaults[i].lsl; void free_definitions(void) {/*5:*/ -#line 226 "hint.w" +#line 241 "hint.w" {int k; for(k= 0;k<32;k++) {free(pointer_def[k]);pointer_def[k]= NULL;} } /*:5*//*8:*/ -#line 249 "hint.w" +#line 264 "hint.w" free(integer_def);integer_def= NULL; /*:8*//*12:*/ -#line 278 "hint.w" +#line 293 "hint.w" free(dimen_def);dimen_def= NULL; /*:12*//*16:*/ -#line 307 "hint.w" +#line 322 "hint.w" free(xdimen_def);xdimen_def= NULL; /*:16*//*24:*/ -#line 378 "hint.w" +#line 393 "hint.w" free(baseline_def);baseline_def= NULL; /*:24*//*31:*/ -#line 496 "hint.w" +#line 511 "hint.w" free(font_def);font_def= NULL; /*:31*//*40:*/ -#line 601 "hint.w" +#line 616 "hint.w" if(param_def!=NULL) {int i; @@ -2208,15 +2208,15 @@ free_param_list(param_def[i]); } free(param_def);param_def= NULL; /*:40*//*47:*/ -#line 757 "hint.w" +#line 772 "hint.w" free(range_def);range_def= NULL; /*:47*//*52:*/ -#line 811 "hint.w" +#line 826 "hint.w" free(streams);streams= NULL; /*:52*//*60:*/ -#line 924 "hint.w" +#line 939 "hint.w" if(page_def!=NULL) {int k; @@ -2226,7 +2226,7 @@ for(k= 0;k<=max_ref[page_kind];k++) free(page_def);page_def= NULL;cur_page= NULL; } /*:60*//*67:*/ -#line 1037 "hint.w" +#line 1052 "hint.w" free(labels);labels= NULL; {int k; @@ -2235,7 +2235,7 @@ for(k= 0;k<=max_outline;k++)free(hint_outlines[k].title); free(hint_outlines);hint_outlines= NULL;outline_no= -1; max_outline= -1; /*:67*/ -#line 171 "hint.w" +#line 186 "hint.w" } @@ -2246,7 +2246,7 @@ DBG(DBGDEF,"Reading list of maximum values\n"); free_definitions(); hget_max_definitions(); /*4:*/ -#line 211 "hint.w" +#line 226 "hint.w" {Kind k; for(k= 0;k<32;k++) @@ -2261,54 +2261,54 @@ ALLOCATE(pointer_def[k],max_ref[k]+1,pointer); } } /*:4*//*7:*/ -#line 245 "hint.w" +#line 260 "hint.w" ALLOCATE(integer_def,max_ref[int_kind]+1,int32_t); /*:7*//*11:*/ -#line 274 "hint.w" +#line 289 "hint.w" ALLOCATE(dimen_def,max_ref[dimen_kind]+1,Dimen); /*:11*//*15:*/ -#line 304 "hint.w" +#line 319 "hint.w" ALLOCATE(xdimen_def,max_ref[xdimen_kind]+1,Xdimen); /*:15*//*20:*/ -#line 355 "hint.w" +#line 370 "hint.w" ALLOCATE(pointer_def[glue_kind],max_ref[glue_kind]+1,pointer); /*:20*//*23:*/ -#line 374 "hint.w" +#line 389 "hint.w" ALLOCATE(baseline_def,max_ref[baseline_kind]+1,BaselineSkip); /*:23*//*30:*/ -#line 492 "hint.w" +#line 507 "hint.w" ALLOCATE(font_def,max_ref[font_kind]+1,FontDef); /*:30*//*39:*/ -#line 597 "hint.w" +#line 612 "hint.w" ALLOCATE(param_def,max_ref[param_kind]+1,ParamDef*); /*:39*//*46:*/ -#line 753 "hint.w" +#line 768 "hint.w" ALLOCATE(range_def,max_ref[range_kind]+1,RangeDef); /*:46*//*51:*/ -#line 807 "hint.w" +#line 822 "hint.w" ALLOCATE(streams,max_ref[stream_kind]+1,Stream); /*:51*//*58:*/ -#line 904 "hint.w" +#line 919 "hint.w" ALLOCATE(page_def,max_ref[page_kind]+1,PageDef); /*:58*//*66:*/ -#line 1030 "hint.w" +#line 1045 "hint.w" if(max_ref[label_kind]>=0) ALLOCATE(labels,max_ref[label_kind]+1,Label); if(max_outline>=0) ALLOCATE(hint_outlines,max_outline+1,hint_Outline); /*:66*/ -#line 180 "hint.w" +#line 195 "hint.w" hset_default_definitions(); DBG(DBGDEF,"Reading list of definitions\n"); @@ -2316,7 +2316,7 @@ while(hpos<hend) hget_def_node(); hget_font_metrics(); /*59:*/ -#line 908 "hint.w" +#line 923 "hint.w" page_def[0].d= max_depth; page_def[0].g= top_skip;add_glue_ref(top_skip); @@ -2332,11 +2332,11 @@ page_def[0].t= 0; ALLOCATE(page_def[0].s,max_ref[stream_kind]+1,StreamDef); cur_page= &(page_def[0]); /*:59*/ -#line 186 "hint.w" +#line 201 "hint.w" } /*:1*//*13:*/ -#line 282 "hint.w" +#line 297 "hint.w" scaled hget_dimen_ref(uint8_t n) {REF_RNG(dimen_kind,n); @@ -2350,7 +2350,7 @@ else {scaled d;HGET32(d);return d;} } /*:13*//*25:*/ -#line 382 "hint.w" +#line 397 "hint.w" static void hget_baseline_def(uint8_t a,uint8_t n) {HGET_BASELINE(INFO(a)); @@ -2385,7 +2385,7 @@ cur_list.bs_pos= NULL; return p; } /*:25*//*26:*/ -#line 436 "hint.w" +#line 451 "hint.w" static pointer hprepend_to_vlist(pointer b) {scaled d; @@ -2406,12 +2406,12 @@ cur_list.bs_pos= NULL; return p; } /*:26*//*68:*/ -#line 1050 "hint.w" +#line 1065 "hint.w" void hget_outline_or_label_def(Info i,int n) {if(i&b100) /*70:*/ -#line 1071 "hint.w" +#line 1086 "hint.w" {hint_Outline*t; uint64_t pos; @@ -2423,7 +2423,7 @@ t->depth= HGET8; t->p= hget_list_pointer(); t->title= strdup(hlist_to_string(t->p)); /*71:*/ -#line 1087 "hint.w" +#line 1102 "hint.w" where= labels[n].where; #if 1 @@ -2432,17 +2432,17 @@ pos= ((uint64_t)labels[n].pos<<32)+(labels[n].pos-labels[n].pos0); pos= ((uint64_t)labels[n].pos0<<32); #endif /*:71*/ -#line 1081 "hint.w" +#line 1096 "hint.w" t->where= where; t->pos= pos; } /*:70*/ -#line 1053 "hint.w" +#line 1068 "hint.w" else /*69:*/ -#line 1059 "hint.w" +#line 1074 "hint.w" {Label*t= labels+n; HGET32(t->pos); @@ -2454,67 +2454,67 @@ else t->pos0= t->pos; DBG(DBGDEF,"Label 0x%x+0x%x where=%d font=%d\n",t->pos0,t->pos,t->where,t->f); } /*:69*/ -#line 1055 "hint.w" +#line 1070 "hint.w" } /*:68*//*73:*/ -#line 1151 "hint.w" +#line 1166 "hint.w" static void hget_content_section() {DBG(DBGDIR,"Reading Content Section\n"); hget_section(2); } /*:73*//*101:*/ -#line 1527 "hint.w" +#line 1542 "hint.w" pointer hget_rule_node(void) {pointer q= null; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 1530 "hint.w" +#line 1545 "hint.w" if(KIND(a)==rule_kind){HGET_RULE(INFO(a));q= p;} else QUIT("Rule expected at 0x%x got %s",node_pos,NAME(a)); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 1533 "hint.w" +#line 1548 "hint.w" return q; } /*:101*//*120:*/ -#line 1903 "hint.w" +#line 1918 "hint.w" pointer hget_hbox_node(void) {/*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 1905 "hint.w" +#line 1920 "hint.w" if(KIND(a)!=hbox_kind)QUIT("Hbox expected at 0x%x got %s",node_pos,NAME(a)); {pointer p; HGET_BOX(INFO(a)); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 1909 "hint.w" +#line 1924 "hint.w" return p; } @@ -2524,32 +2524,32 @@ return p; pointer hget_vbox_node(void) { /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 1917 "hint.w" +#line 1932 "hint.w" if(KIND(a)!=vbox_kind)QUIT("Vbox expected at 0x%x got %s",node_pos,NAME(a)); {pointer p; HGET_BOX(INFO(a)); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 1921 "hint.w" +#line 1936 "hint.w" type(p)= vlist_node; return p; } } /*:120*//*160:*/ -#line 2671 "hint.w" +#line 2686 "hint.w" pointer hget_paragraph_initial(scaled x,uint8_t*to) { @@ -2587,14 +2587,14 @@ t= hget_list_size(INFO(a)); if(t!=s) QUIT("List sizes at 0x%x and "SIZE_F" do not match 0x%x != 0x%x",node_pos+1,hpos-hstart-s-1,s,t); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 2707 "hint.w" +#line 2722 "hint.w" if(needs_bs) QUIT("Unexpected trailing baseline node"); @@ -2605,7 +2605,7 @@ return null; else {pointer par_ptr= link(head); /*161:*/ -#line 2735 "hint.w" +#line 2750 "hint.w" if(is_char_node(tail))tail_append(new_penalty(inf_penalty)) else if(type(tail)!=glue_node)tail_append(new_penalty(inf_penalty)) @@ -2615,7 +2615,7 @@ flush_node_list(leader_ptr(tail));penalty(tail)= inf_penalty; } tail_append(new_glue(zero_glue)); /*:161*/ -#line 2716 "hint.w" +#line 2731 "hint.w" pop_nest(); store_map(par_ptr,node_pos,0); @@ -2627,29 +2627,29 @@ QUIT("Text in paragraph not yet implemented"); return null; } /*:160*/ -#line 7540 "hint.w" +#line 7555 "hint.w" /*80:*/ -#line 1245 "hint.w" +#line 1260 "hint.w" static void hteg_node(uint8_t z) {switch(z) { /*92:*/ -#line 1439 "hint.w" +#line 1454 "hint.w" case TAG(glyph_kind,1):HTEG_GLYPH(1);break; case TAG(glyph_kind,2):HTEG_GLYPH(2);break; case TAG(glyph_kind,3):HTEG_GLYPH(3);break; case TAG(glyph_kind,4):HTEG_GLYPH(4);break; /*:92*//*94:*/ -#line 1454 "hint.w" +#line 1469 "hint.w" case TAG(penalty_kind,0):tail_append(new_penalty(hget_integer_ref(HTEG8)));break; case TAG(penalty_kind,1):{tail_append(new_penalty(HTEG8));}break; case TAG(penalty_kind,2):{int16_t n;HTEG16(n);RNG("Penalty",n,-20000,+20000);tail_append(new_penalty(n));}break; /*:94*//*96:*/ -#line 1474 "hint.w" +#line 1489 "hint.w" case TAG(language_kind,b000):(void)HTEG8; case TAG(language_kind,1): @@ -2660,7 +2660,7 @@ case TAG(language_kind,5): case TAG(language_kind,6): case TAG(language_kind,7):break; /*:96*//*100:*/ -#line 1517 "hint.w" +#line 1532 "hint.w" case TAG(rule_kind,b000):tail_append(hget_rule_ref(HTEG8));prev_height= ignore_depth;break; case TAG(rule_kind,b011):{HTEG_RULE(b011);tail_append(p);prev_height= ignore_depth;}break; @@ -2669,7 +2669,7 @@ case TAG(rule_kind,b001):{HTEG_RULE(b001);tail_append(p);prev_height= ignore_dep case TAG(rule_kind,b110):{HTEG_RULE(b110);tail_append(p);prev_height= ignore_depth;}break; case TAG(rule_kind,b111):{HTEG_RULE(b111);tail_append(p);prev_height= ignore_depth;}break; /*:100*//*107:*/ -#line 1588 "hint.w" +#line 1603 "hint.w" case TAG(glue_kind,b000):tail_append(new_glue(hget_glue_ref(HTEG8)));break; case TAG(glue_kind,b001):{pointer p;HTEG_GLUE(b001);tail_append(spec2glue(p));}break; @@ -2680,7 +2680,7 @@ case TAG(glue_kind,b101):{pointer p;HTEG_GLUE(b101);tail_append(spec2glue(p));}b case TAG(glue_kind,b110):{pointer p;HTEG_GLUE(b110);tail_append(spec2glue(p));}break; case TAG(glue_kind,b111):{pointer p;HTEG_GLUE(b111);tail_append(spec2glue(p));}break; /*:107*//*119:*/ -#line 1884 "hint.w" +#line 1899 "hint.w" case TAG(hbox_kind,b000):{pointer p;HTEG_BOX(b000);hprepend_to_vlist(p);}break; case TAG(hbox_kind,b001):{pointer p;HTEG_BOX(b001);hprepend_to_vlist(p);}break; @@ -2699,7 +2699,7 @@ case TAG(vbox_kind,b101):{pointer p;HTEG_BOX(b101);type(p)= vlist_node;hprepend_ case TAG(vbox_kind,b110):{pointer p;HTEG_BOX(b110);type(p)= vlist_node;hprepend_to_vlist(p);}break; case TAG(vbox_kind,b111):{pointer p;HTEG_BOX(b111);type(p)= vlist_node;hprepend_to_vlist(p);}break; /*:119*//*126:*/ -#line 2002 "hint.w" +#line 2017 "hint.w" case TAG(hset_kind,b000):{pointer p;HTEG_SET(b000);hset(p,sto,st,sho,sh,x);hprepend_to_vlist(p);}break; case TAG(hset_kind,b001):{pointer p;HTEG_SET(b001);hset(p,sto,st,sho,sh,x);hprepend_to_vlist(p);}break; @@ -2719,7 +2719,7 @@ case TAG(vset_kind,b101):{pointer p;HTEG_SET(b101);vset(p,sto,st,sho,sh,x);hprep case TAG(vset_kind,b110):{pointer p;HTEG_SET(b110);vset(p,sto,st,sho,sh,x);hprepend_to_vlist(p);}break; case TAG(vset_kind,b111):{pointer p;HTEG_SET(b111);vset(p,sto,st,sho,sh,x);hprepend_to_vlist(p);}break; /*:126*//*131:*/ -#line 2142 "hint.w" +#line 2157 "hint.w" case TAG(hpack_kind,b000):HTEG_PACK(hpack_kind,b000);break; case TAG(hpack_kind,b010):HTEG_PACK(hpack_kind,b010);break; @@ -2739,7 +2739,7 @@ case TAG(vpack_kind,b011):HTEG_PACK(vpack_kind,b011);break; case TAG(vpack_kind,b101):HTEG_PACK(vpack_kind,b101);break; case TAG(vpack_kind,b111):HTEG_PACK(vpack_kind,b111);break; /*:131*//*135:*/ -#line 2201 "hint.w" +#line 2216 "hint.w" case TAG(kern_kind,b000):{HTEG_KERN(b000);}break; case TAG(kern_kind,b001):{HTEG_KERN(b001);}break; @@ -2750,7 +2750,7 @@ case TAG(kern_kind,b101):{HTEG_KERN(b101);}break; case TAG(kern_kind,b110):{HTEG_KERN(b110);}break; case TAG(kern_kind,b111):{HTEG_KERN(b111);}break; /*:135*//*139:*/ -#line 2248 "hint.w" +#line 2263 "hint.w" case TAG(leaders_kind,0):tail_append(hget_leaders_ref(HTEG8));break; case TAG(leaders_kind,1):HTEG_LEADERS(1);break; @@ -2760,7 +2760,7 @@ case TAG(leaders_kind,b100|1):HTEG_LEADERS(b100|1);break; case TAG(leaders_kind,b100|2):HTEG_LEADERS(b100|2);break; case TAG(leaders_kind,b100|3):HTEG_LEADERS(b100|3);break; /*:139*//*143:*/ -#line 2289 "hint.w" +#line 2304 "hint.w" case TAG(baseline_kind,b000):{hget_baseline_ref(HTEG8);cur_list.bs_pos= hpos-1;}break; case TAG(baseline_kind,b010):{HTEG_BASELINE(b010);}break; @@ -2770,7 +2770,7 @@ case TAG(baseline_kind,b101):{HTEG_BASELINE(b101);}break; case TAG(baseline_kind,b110):{HTEG_BASELINE(b110);}break; case TAG(baseline_kind,b111):{HTEG_BASELINE(b111);}break; /*:143*//*148:*/ -#line 2350 "hint.w" +#line 2365 "hint.w" case TAG(ligature_kind,0):tail_append(hget_ligature_ref(HTEG8));break; case TAG(ligature_kind,1):HTEG_LIG(1);break; @@ -2781,7 +2781,7 @@ case TAG(ligature_kind,5):HTEG_LIG(5);break; case TAG(ligature_kind,6):HTEG_LIG(6);break; case TAG(ligature_kind,7):HTEG_LIG(7);break; /*:148*//*152:*/ -#line 2399 "hint.w" +#line 2414 "hint.w" case TAG(disc_kind,b000):tail_append(hget_hyphen_ref(HTEG8));break; case TAG(disc_kind,b001):{HTEG_DISC(b001);tail_append(p);}break; @@ -2792,14 +2792,14 @@ case TAG(disc_kind,b101):{HTEG_DISC(b101);tail_append(p);}break; case TAG(disc_kind,b110):{HTEG_DISC(b110);tail_append(p);}break; case TAG(disc_kind,b111):{HTEG_DISC(b111);tail_append(p);}break; /*:152*//*167:*/ -#line 2824 "hint.w" +#line 2839 "hint.w" case TAG(par_kind,b000):hteg_paragraph(b000);break; case TAG(par_kind,b010):hteg_paragraph(b010);break; case TAG(par_kind,b100):hteg_paragraph(b100);break; case TAG(par_kind,b110):hteg_paragraph(b110);break; /*:167*//*175:*/ -#line 2957 "hint.w" +#line 2972 "hint.w" case TAG(math_kind,b000):HTEG_MATH(b000);break; case TAG(math_kind,b001):HTEG_MATH(b001);break; @@ -2808,12 +2808,12 @@ case TAG(math_kind,b100):HTEG_MATH(b100);break; case TAG(math_kind,b101):HTEG_MATH(b101);break; case TAG(math_kind,b110):HTEG_MATH(b110);break; /*:175*//*177:*/ -#line 2981 "hint.w" +#line 2996 "hint.w" case TAG(math_kind,b111):tail_append(new_math(0,before));break; case TAG(math_kind,b011):tail_append(new_math(0,after));break; /*:177*//*183:*/ -#line 3051 "hint.w" +#line 3066 "hint.w" case TAG(table_kind,b000):HTEG_TABLE(b000);break; case TAG(table_kind,b001):HTEG_TABLE(b001);break; @@ -2833,12 +2833,12 @@ case TAG(item_kind,b101):hteg_content();break; case TAG(item_kind,b110):hteg_content();break; case TAG(item_kind,b111):hteg_content();(void)HTEG8;break; /*:183*//*188:*/ -#line 3123 "hint.w" +#line 3138 "hint.w" case TAG(stream_kind,b000):HTEG_STREAM(b000);break; case TAG(stream_kind,b010):HTEG_STREAM(b010);break; /*:188*//*192:*/ -#line 3182 "hint.w" +#line 3197 "hint.w" case TAG(image_kind,b000):hget_image_ref(HTEG8);break; case TAG(image_kind,b001):HTEG_IMAGE(b001);break; @@ -2849,14 +2849,14 @@ case TAG(image_kind,b101):HTEG_IMAGE(b101);break; case TAG(image_kind,b110):HTEG_IMAGE(b110);break; case TAG(image_kind,b111):HTEG_IMAGE(b111);break; /*:192*//*196:*/ -#line 3222 "hint.w" +#line 3237 "hint.w" case TAG(link_kind,b000):HTEG_LINK(b000);break; case TAG(link_kind,b001):HTEG_LINK(b001);break; case TAG(link_kind,b010):HTEG_LINK(b010);break; case TAG(link_kind,b011):HTEG_LINK(b011);break; /*:196*/ -#line 1249 "hint.w" +#line 1264 "hint.w" default: TAGERR(z); @@ -2865,17 +2865,17 @@ TAGERR(z); void hteg_content(void) {/*78:*/ -#line 1226 "hint.w" +#line 1241 "hint.w" uint8_t a,z; z= HTEG8,DBGTAG(z,hpos); /*:78*/ -#line 1256 "hint.w" +#line 1271 "hint.w" node_pos= hpos-hstart; hteg_node(z); /*79:*/ -#line 1231 "hint.w" +#line 1246 "hint.w" a= HTEG8,DBGTAG(a,hpos); if(z!=a) @@ -2883,7 +2883,7 @@ QUIT("Tag mismatch [%s,%d]!=[%s,%d] at "SIZE_F" to 0x%x\n", NAME(a),INFO(a),NAME(z),INFO(z),hpos-hstart,node_pos); /*:79*/ -#line 1259 "hint.w" +#line 1274 "hint.w" node_pos= hpos-hstart; if(nest_ptr==0&&tail!=head @@ -2896,23 +2896,23 @@ if(nest_ptr==0&&tail!=head store_map(tail,node_pos,0); } /*:80*//*154:*/ -#line 2424 "hint.w" +#line 2439 "hint.w" pointer hteg_disc_node(void) {/*78:*/ -#line 1226 "hint.w" +#line 1241 "hint.w" uint8_t a,z; z= HTEG8,DBGTAG(z,hpos); /*:78*/ -#line 2426 "hint.w" +#line 2441 "hint.w" if(KIND(z)!=disc_kind||INFO(z)==b000) QUIT("Hyphen expected at 0x%x got %s,%d",node_pos,NAME(z),INFO(z)); { HTEG_DISC(INFO(z)); /*79:*/ -#line 1231 "hint.w" +#line 1246 "hint.w" a= HTEG8,DBGTAG(a,hpos); if(z!=a) @@ -2920,13 +2920,13 @@ QUIT("Tag mismatch [%s,%d]!=[%s,%d] at "SIZE_F" to 0x%x\n", NAME(a),INFO(a),NAME(z),INFO(z),hpos-hstart,node_pos); /*:79*/ -#line 2431 "hint.w" +#line 2446 "hint.w" return p; } } /*:154*//*170:*/ -#line 2893 "hint.w" +#line 2908 "hint.w" void hteg_par_node(uint32_t offset) {scaled x= 0; @@ -2936,12 +2936,12 @@ pointer par_head= tail; uint8_t*bs_pos= cur_list.bs_pos; scaled ph= prev_height; /*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 2901 "hint.w" +#line 2916 "hint.w" node_pos= (hpos-hstart)-1; if(INFO(a)&b100)x= hget_xdimen_node();else x= hget_xdimen_ref(HGET8); @@ -2949,21 +2949,21 @@ if(INFO(a)&b010)line_break_params= hget_param_list_node();else line_break_params prev_graf= 0; p= hget_paragraph_initial(x,hstart+node_pos+offset); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 2907 "hint.w" +#line 2922 "hint.w" cur_list.bs_pos= NULL; if(p!=null) line_break(hget_integer_ref(widow_penalty_no),p); if(par_head!=tail) /*169:*/ -#line 2869 "hint.w" +#line 2884 "hint.w" {pointer p,r,par_tail; p= null; @@ -2985,23 +2985,23 @@ if(type(tail)==hlist_node||type(tail)==vlist_node) prev_height= height(tail); } /*:169*/ -#line 2912 "hint.w" +#line 2927 "hint.w" hpos= hstart+node_pos; line_break_params= save_lbp; } /*:170*/ -#line 7541 "hint.w" +#line 7556 "hint.w" /*18:*/ -#line 323 "hint.w" +#line 338 "hint.w" void print_xdimen(int i) {} /*:18*//*34:*/ -#line 552 "hint.w" +#line 567 "hint.w" uint16_t hglyph_section(uint8_t f) {return font_def[f].q; @@ -3011,7 +3011,7 @@ int32_t font_at_size(uint8_t f) {return font_def[f].s; } /*:34*//*62:*/ -#line 962 "hint.w" +#line 977 "hint.w" static void hinsert_stream(uint8_t n) {REF_RNG(stream_kind,n); @@ -3038,7 +3038,7 @@ DBG(DBGPAGE,"Filling in after list %d\n",n); } } /*:62*//*63:*/ -#line 992 "hint.w" +#line 1007 "hint.w" void hfill_page_template(void) {pointer p; @@ -3059,31 +3059,31 @@ houtput_template(p); hmark_page(); } /*:63*//*76:*/ -#line 1185 "hint.w" +#line 1200 "hint.w" static void hget_node(uint8_t a) {switch(a) { /*56:*/ -#line 883 "hint.w" +#line 898 "hint.w" case TAG(stream_kind,b100):hinsert_stream(HGET8);break; /*:56*//*91:*/ -#line 1433 "hint.w" +#line 1448 "hint.w" case TAG(glyph_kind,1):HGET_GLYPH(1);break; case TAG(glyph_kind,2):HGET_GLYPH(2);break; case TAG(glyph_kind,3):HGET_GLYPH(3);break; case TAG(glyph_kind,4):HGET_GLYPH(4);break; /*:91*//*93:*/ -#line 1448 "hint.w" +#line 1463 "hint.w" case TAG(penalty_kind,0):tail_append(new_penalty(hget_integer_ref(HGET8)));break; case TAG(penalty_kind,1):{tail_append(new_penalty(HGET8));}break; case TAG(penalty_kind,2):{int16_t n;HGET16(n);RNG("Penalty",n,-20000,+20000);tail_append(new_penalty(n));}break; /*:93*//*95:*/ -#line 1462 "hint.w" +#line 1477 "hint.w" case TAG(language_kind,b000):(void)HGET8; case TAG(language_kind,1): @@ -3094,7 +3094,7 @@ case TAG(language_kind,5): case TAG(language_kind,6): case TAG(language_kind,7):break; /*:95*//*99:*/ -#line 1508 "hint.w" +#line 1523 "hint.w" case TAG(rule_kind,b000):tail_append(hget_rule_ref(HGET8));prev_depth= ignore_depth;break; case TAG(rule_kind,b011):{HGET_RULE(b011);tail_append(p);prev_depth= ignore_depth;}break; @@ -3103,7 +3103,7 @@ case TAG(rule_kind,b001):{HGET_RULE(b001);tail_append(p);prev_depth= ignore_dept case TAG(rule_kind,b110):{HGET_RULE(b110);tail_append(p);prev_depth= ignore_depth;}break; case TAG(rule_kind,b111):{HGET_RULE(b111);tail_append(p);prev_depth= ignore_depth;}break; /*:99*//*106:*/ -#line 1576 "hint.w" +#line 1591 "hint.w" case TAG(glue_kind,b000):tail_append(new_glue(hget_glue_ref(HGET8)));break; case TAG(glue_kind,b001):{pointer p;HGET_GLUE(b001);tail_append(spec2glue(p));}break; @@ -3114,7 +3114,7 @@ case TAG(glue_kind,b101):{pointer p;HGET_GLUE(b101);tail_append(spec2glue(p));}b case TAG(glue_kind,b110):{pointer p;HGET_GLUE(b110);tail_append(spec2glue(p));}break; case TAG(glue_kind,b111):{pointer p;HGET_GLUE(b111);tail_append(spec2glue(p));}break; /*:106*//*118:*/ -#line 1865 "hint.w" +#line 1880 "hint.w" case TAG(hbox_kind,b000):{pointer p;HGET_BOX(b000);happend_to_vlist(p);}break; case TAG(hbox_kind,b001):{pointer p;HGET_BOX(b001);happend_to_vlist(p);}break; @@ -3133,7 +3133,7 @@ case TAG(vbox_kind,b101):{pointer p;HGET_BOX(b101);type(p)= vlist_node;happend_t case TAG(vbox_kind,b110):{pointer p;HGET_BOX(b110);type(p)= vlist_node;happend_to_vlist(p);}break; case TAG(vbox_kind,b111):{pointer p;HGET_BOX(b111);type(p)= vlist_node;happend_to_vlist(p);}break; /*:118*//*125:*/ -#line 1981 "hint.w" +#line 1996 "hint.w" case TAG(hset_kind,b000):{pointer p;HGET_SET(b000);hset(p,sto,st,sho,sh,x);happend_to_vlist(p);}break; case TAG(hset_kind,b001):{pointer p;HGET_SET(b001);hset(p,sto,st,sho,sh,x);happend_to_vlist(p);}break; @@ -3153,7 +3153,7 @@ case TAG(vset_kind,b101):{pointer p;HGET_SET(b101);vset(p,sto,st,sho,sh,x);happe case TAG(vset_kind,b110):{pointer p;HGET_SET(b110);vset(p,sto,st,sho,sh,x);happend_to_vlist(p);}break; case TAG(vset_kind,b111):{pointer p;HGET_SET(b111);vset(p,sto,st,sho,sh,x);happend_to_vlist(p);}break; /*:125*//*130:*/ -#line 2123 "hint.w" +#line 2138 "hint.w" case TAG(hpack_kind,b000):HGET_PACK(hpack_kind,b000);break; case TAG(hpack_kind,b010):HGET_PACK(hpack_kind,b010);break; @@ -3173,7 +3173,7 @@ case TAG(vpack_kind,b011):HGET_PACK(vpack_kind,b011);break; case TAG(vpack_kind,b101):HGET_PACK(vpack_kind,b101);break; case TAG(vpack_kind,b111):HGET_PACK(vpack_kind,b111);break; /*:130*//*134:*/ -#line 2190 "hint.w" +#line 2205 "hint.w" case TAG(kern_kind,b000):{HGET_KERN(b000);}break; case TAG(kern_kind,b001):{HGET_KERN(b001);}break; @@ -3184,7 +3184,7 @@ case TAG(kern_kind,b101):{HGET_KERN(b101);}break; case TAG(kern_kind,b110):{HGET_KERN(b110);}break; case TAG(kern_kind,b111):{HGET_KERN(b111);}break; /*:134*//*138:*/ -#line 2239 "hint.w" +#line 2254 "hint.w" case TAG(leaders_kind,0):tail_append(hget_leaders_ref(HGET8));break; case TAG(leaders_kind,1):HGET_LEADERS(1);break; @@ -3194,7 +3194,7 @@ case TAG(leaders_kind,b100|1):HGET_LEADERS(b100|1);break; case TAG(leaders_kind,b100|2):HGET_LEADERS(b100|2);break; case TAG(leaders_kind,b100|3):HGET_LEADERS(b100|3);break; /*:138*//*142:*/ -#line 2279 "hint.w" +#line 2294 "hint.w" case TAG(baseline_kind,b000):{cur_list.bs_pos= hpos-1;hget_baseline_ref(HGET8);}break; case TAG(baseline_kind,b010):{HGET_BASELINE(b010);}break; @@ -3204,7 +3204,7 @@ case TAG(baseline_kind,b101):{HGET_BASELINE(b101);}break; case TAG(baseline_kind,b110):{HGET_BASELINE(b110);}break; case TAG(baseline_kind,b111):{HGET_BASELINE(b111);}break; /*:142*//*147:*/ -#line 2339 "hint.w" +#line 2354 "hint.w" case TAG(ligature_kind,0):tail_append(hget_ligature_ref(HGET8));break; case TAG(ligature_kind,1):HGET_LIG(1);break; @@ -3215,7 +3215,7 @@ case TAG(ligature_kind,5):HGET_LIG(5);break; case TAG(ligature_kind,6):HGET_LIG(6);break; case TAG(ligature_kind,7):HGET_LIG(7);break; /*:147*//*151:*/ -#line 2389 "hint.w" +#line 2404 "hint.w" case TAG(disc_kind,b000):tail_append(hget_hyphen_ref(HGET8));break; case TAG(disc_kind,b001):{HGET_DISC(b001);tail_append(p);}break; @@ -3226,14 +3226,14 @@ case TAG(disc_kind,b101):{HGET_DISC(b101);tail_append(p);}break; case TAG(disc_kind,b110):{HGET_DISC(b110);tail_append(p);}break; case TAG(disc_kind,b111):{HGET_DISC(b111);tail_append(p);}break; /*:151*//*156:*/ -#line 2452 "hint.w" +#line 2467 "hint.w" case TAG(par_kind,b000):HGET_PAR(b000);break; case TAG(par_kind,b010):HGET_PAR(b010);break; case TAG(par_kind,b100):HGET_PAR(b100);break; case TAG(par_kind,b110):HGET_PAR(b110);break; /*:156*//*174:*/ -#line 2948 "hint.w" +#line 2963 "hint.w" case TAG(math_kind,b000):HGET_MATH(b000);break; case TAG(math_kind,b001):HGET_MATH(b001);break; @@ -3242,16 +3242,16 @@ case TAG(math_kind,b100):HGET_MATH(b100);break; case TAG(math_kind,b101):HGET_MATH(b101);break; case TAG(math_kind,b110):HGET_MATH(b110);break; /*:174*//*176:*/ -#line 2977 "hint.w" +#line 2992 "hint.w" case TAG(math_kind,b111):tail_append(new_math(0,before));break; case TAG(math_kind,b011):tail_append(new_math(0,after));break; /*:176*//*179:*/ -#line 3003 "hint.w" +#line 3018 "hint.w" case TAG(adjust_kind,1):HGET_ADJUST(1);break; /*:179*//*182:*/ -#line 3031 "hint.w" +#line 3046 "hint.w" case TAG(table_kind,b000):HGET_TABLE(b000);break; case TAG(table_kind,b001):HGET_TABLE(b001);break; @@ -3271,12 +3271,12 @@ case TAG(item_kind,b101):hget_content();break; case TAG(item_kind,b110):hget_content();break; case TAG(item_kind,b111):(void)HGET8;hget_content();break; /*:182*//*187:*/ -#line 3118 "hint.w" +#line 3133 "hint.w" case TAG(stream_kind,b000):HGET_STREAM(b000);break; case TAG(stream_kind,b010):HGET_STREAM(b010);break; /*:187*//*191:*/ -#line 3172 "hint.w" +#line 3187 "hint.w" case TAG(image_kind,b000):hget_image_ref(HGET8);break; case TAG(image_kind,b001):HGET_IMAGE(b001);break; @@ -3287,14 +3287,14 @@ case TAG(image_kind,b101):HGET_IMAGE(b101);break; case TAG(image_kind,b110):HGET_IMAGE(b110);break; case TAG(image_kind,b111):HGET_IMAGE(b111);break; /*:191*//*195:*/ -#line 3216 "hint.w" +#line 3231 "hint.w" case TAG(link_kind,b000):HGET_LINK(b000);break; case TAG(link_kind,b001):HGET_LINK(b001);break; case TAG(link_kind,b010):HGET_LINK(b010);break; case TAG(link_kind,b011):HGET_LINK(b011);break; /*:195*/ -#line 1190 "hint.w" +#line 1205 "hint.w" default: TAGERR(a); @@ -3303,24 +3303,24 @@ TAGERR(a); void hget_content(void) {/*74:*/ -#line 1165 "hint.w" +#line 1180 "hint.w" uint8_t a,z; HGETTAG(a); /*:74*/ -#line 1197 "hint.w" +#line 1212 "hint.w" node_pos= (hpos-hstart)-1; hget_node(a); /*75:*/ -#line 1170 "hint.w" +#line 1185 "hint.w" HGETTAG(z); if(a!=z) QUIT("Tag mismatch [%s,%d]!=[%s,%d] at 0x%x to "SIZE_F"\n", NAME(a),INFO(a),NAME(z),INFO(z),node_pos,hpos-hstart-1); /*:75*/ -#line 1200 "hint.w" +#line 1215 "hint.w" if(nest_ptr==0&&tail!=head&&(type(tail)==penalty_node||type(tail)==glue_node||type(tail)==kern_node)) store_map(tail,node_pos,0); @@ -3337,13 +3337,13 @@ tail= head; return p; } /*:76*//*163:*/ -#line 2773 "hint.w" +#line 2788 "hint.w" void set_line_break_params(void) {hset_param_list(line_break_params); } /*:163*//*199:*/ -#line 3349 "hint.w" +#line 3364 "hint.w" pointer skip(uint8_t n) {return cur_page->s[n].g;} @@ -3355,7 +3355,7 @@ scaled dimen(uint8_t n) {return xdimen(&cur_page->s[n].x);} /*:199*//*200:*/ -#line 3374 "hint.w" +#line 3389 "hint.w" void hpage_init(void) {int i; @@ -3378,7 +3378,7 @@ add_glue_ref(top_skip); } } /*:200*//*202:*/ -#line 3405 "hint.w" +#line 3420 "hint.w" void hflush_contribution_list(void) {if(link(contrib_head)!=null) @@ -3387,7 +3387,7 @@ link(contrib_head)= null;tail= contrib_head; } } /*:202*//*204:*/ -#line 3449 "hint.w" +#line 3464 "hint.w" static bool hbuild_page_up(void) { @@ -3399,12 +3399,12 @@ int pi= 0; if(link(contrib_head)==null)return false; do{p= link(contrib_head); /*209:*/ -#line 3571 "hint.w" +#line 3586 "hint.w" switch(type(p)){ case hlist_node:case vlist_node:case rule_node: /*206:*/ -#line 3515 "hint.w" +#line 3530 "hint.w" if(page_contents<box_there) {if(page_contents==empty)freeze_page_specs(box_there); @@ -3413,17 +3413,17 @@ if(depth(p)> page_max_depth) page_total= depth(p)-page_max_depth; depth(p)= 0; /*207:*/ -#line 3541 "hint.w" +#line 3556 "hint.w" {page_top_height= width(top_skip); page_total= page_total+page_top_height; } /*:207*/ -#line 3522 "hint.w" +#line 3537 "hint.w" } /*208:*/ -#line 3550 "hint.w" +#line 3565 "hint.w" {int i; for(i= 1;i<=6;i++) @@ -3432,7 +3432,7 @@ top_so_far[i]= 0; } } /*:208*/ -#line 3524 "hint.w" +#line 3539 "hint.w" page_total+= page_height+depth(p); if(height(p)> page_top_height) @@ -3442,15 +3442,15 @@ page_height= page_top_height; else page_height= height(p); /*:206*/ -#line 3574 "hint.w" +#line 3589 "hint.w" goto contribute; case whatsit_node:goto contribute; case glue_node:/*212:*/ -#line 3609 "hint.w" +#line 3624 "hint.w" if(link(p)==null)return false; /*213:*/ -#line 3616 "hint.w" +#line 3631 "hint.w" #define top_shrink top_so_far[6] #define top_total top_so_far[1] @@ -3463,15 +3463,15 @@ top_shrink+= shrink(q); top_total+= width(q); } /*:213*/ -#line 3611 "hint.w" +#line 3626 "hint.w" if(page_contents==empty||!precedes_break(link(p)))goto contribute; pi= 0; /*:212*/ -#line 3576 "hint.w" +#line 3591 "hint.w" break; case kern_node:/*214:*/ -#line 3632 "hint.w" +#line 3647 "hint.w" top_total+= width(p); if(page_contents==empty|| @@ -3480,21 +3480,21 @@ type(link(page_head))!=glue_node) goto contribute; pi= 0; /*:214*/ -#line 3577 "hint.w" +#line 3592 "hint.w" break; case penalty_node:if(page_contents==empty)goto done1;else pi= penalty(p);break; case ins_node:happend_insertion(p);goto contribute; default:DBG(DBGTEX,"Unexpected node type %d in build_page_up ignored\n",type(p)); } /*217:*/ -#line 3666 "hint.w" +#line 3681 "hint.w" if(pi<inf_penalty) {/*215:*/ -#line 3646 "hint.w" +#line 3661 "hint.w" /*216:*/ -#line 3657 "hint.w" +#line 3672 "hint.w" if(page_total<page_goal) {if((page_so_far[3]!=0)||(page_so_far[4]!=0)||(page_so_far[5]!=0))b= 0; @@ -3503,7 +3503,7 @@ else b= badness(page_goal-page_total,page_so_far[2]); else if(page_total-page_goal> page_shrink)b= awful_bad; else b= badness(page_total-page_goal,page_shrink) /*:216*/ -#line 3647 "hint.w" +#line 3662 "hint.w" ; if(b<awful_bad) {if(pi<=eject_penalty)c= pi; @@ -3513,7 +3513,7 @@ else c= deplorable; else c= b; if(insert_penalties>=10000)c= awful_bad; /*:215*/ -#line 3668 "hint.w" +#line 3683 "hint.w" if(c<=least_page_cost) {best_page_break= p;best_size= page_goal; @@ -3527,7 +3527,7 @@ r= link(r); if((c==awful_bad)||(pi<=eject_penalty)) { /*218:*/ -#line 3696 "hint.w" +#line 3711 "hint.w" if(p!=best_page_break) {while(link(page_head)!=best_page_break) @@ -3539,10 +3539,10 @@ link(head)= q; } } /*:218*/ -#line 3680 "hint.w" +#line 3695 "hint.w" /*219:*/ -#line 3714 "hint.w" +#line 3729 "hint.w" hloc_set_prev(link(page_head)); while(true){ @@ -3562,7 +3562,7 @@ link(q)= link(page_head); link(page_head)= q; best_page_break= null; /*:219*/ -#line 3681 "hint.w" +#line 3696 "hint.w" hpack_page(); hfill_page_template(); @@ -3570,11 +3570,11 @@ return true; } } /*:217*/ -#line 3582 "hint.w" +#line 3597 "hint.w" contribute: /*210:*/ -#line 3589 "hint.w" +#line 3604 "hint.w" link(contrib_head)= link(p); link(p)= link(page_head); @@ -3582,31 +3582,31 @@ if(link(page_head)==null)page_tail= p; link(page_head)= p; goto done; /*:210*/ -#line 3584 "hint.w" +#line 3599 "hint.w" done1:/*211:*/ -#line 3597 "hint.w" +#line 3612 "hint.w" link(contrib_head)= link(p);link(p)= null;flush_node_list(p); /*:211*/ -#line 3585 "hint.w" +#line 3600 "hint.w" done: /*:209*/ -#line 3459 "hint.w" +#line 3474 "hint.w" ; }while(link(contrib_head)!=null); tail= contrib_head; return false; } /*:204*//*221:*/ -#line 3790 "hint.w" +#line 3805 "hint.w" static void clear_map(void) {memset(map,0,sizeof(map)); } /*:221*//*222:*/ -#line 3803 "hint.w" +#line 3818 "hint.w" void store_map(pointer p,uint32_t pos0,uint32_t offset) {map[p]= pos0; @@ -3617,7 +3617,7 @@ uint32_t hposition(pointer p) {return map[p]; } /*:222*//*229:*/ -#line 3913 "hint.w" +#line 3928 "hint.w" void hloc_init(void) {cur_loc= 0; @@ -3626,7 +3626,7 @@ page_loc[cur_loc]= 0; DBG(DBGPAGE,"loc_init: %d < %d < %d\n",lo_loc,cur_loc,hi_loc); } /*:229*//*234:*/ -#line 4050 "hint.w" +#line 4065 "hint.w" int hint_begin(void) {if(!hint_map())return 0; @@ -3645,6 +3645,8 @@ if(!hcheck_banner("hint")) {hint_unmap();return 0;} hget_directory(); hget_definition_section(); +page_v= hvsize= dimen_def[vsize_dimen_no]; +page_h= hhsize= dimen_def[hsize_dimen_no]; hget_content_section(); leak_clear(); clear_map(); @@ -3663,7 +3665,7 @@ list_leaks(); hclear_dir(); } /*:234*//*238:*/ -#line 4153 "hint.w" +#line 4170 "hint.w" bool hint_forward(void) {hpage_init(); @@ -3677,7 +3679,7 @@ if(hbuild_page())return true; return false; } /*:238*//*239:*/ -#line 4194 "hint.w" +#line 4211 "hint.w" bool hint_backward(void) {hpage_init(); @@ -3691,7 +3693,7 @@ if(hbuild_page_up())return true; return false; } /*:239*//*241:*/ -#line 4222 "hint.w" +#line 4239 "hint.w" bool flush_pages(uint32_t pos) {pointer p= link(head); @@ -3708,18 +3710,18 @@ store_map(tail,pos,0); return false; } /*:241*//*263:*/ -#line 4740 "hint.w" +#line 4757 "hint.w" int hint_get_outline_max(void) {return max_outline;} /*:263*//*268:*/ -#line 4820 "hint.w" +#line 4837 "hint.w" hint_Outline*hint_get_outlines(void) {return hint_outlines; } /*:268*//*270:*/ -#line 4879 "hint.w" +#line 4896 "hint.w" static bool trv_ignore= false; static bool trv_skip_space= false; @@ -3785,7 +3787,7 @@ p= link(p); } } /*:270*/ -#line 7543 "hint.w" +#line 7558 "hint.w" /*:372*/ |