diff options
Diffstat (limited to 'Build/source/texk/web2c/hitexdir/hintview/src')
15 files changed, 1212 insertions, 1224 deletions
diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/basetypes.h b/Build/source/texk/web2c/hitexdir/hintview/src/basetypes.h index 6f9c1f3cff0..26fe2db801a 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/basetypes.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/basetypes.h @@ -1,5 +1,5 @@ - /*503:*/ - #line 9954 "format.w" + /*511:*/ + #line 10407 "format.w" #ifndef __BASETYPES_H__ #define __BASETYPES_H__ @@ -42,6 +42,6 @@ typedef double float64_t; #error float64 type must have size 8 #endif #define HINT_VERSION 1 -#define HINT_SUB_VERSION 3 +#define HINT_SUB_VERSION 4 #endif - /*:503*/ + /*:511*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/error.h b/Build/source/texk/web2c/hitexdir/hintview/src/error.h index e952878199c..633d1d2a92f 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/error.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/error.h @@ -1,5 +1,5 @@ /*358:*/ -#line 7159 "hint.w" +#line 7154 "hint.w" #ifndef _ERROR_H #define _ERROR_H diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/format.h b/Build/source/texk/web2c/hitexdir/hintview/src/format.h index ad6524eb274..fcfdde70d65 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/format.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/format.h @@ -1,19 +1,19 @@ - /*504:*/ - #line 10006 "format.w" + /*512:*/ + #line 10457 "format.w" #ifndef _HFORMAT_H_ #define _HFORMAT_H_ - /*349:*/ - #line 7408 "format.w" + /*357:*/ + #line 7848 "format.w" #define REF_RNG(K,N) if ((int)(N)>max_ref[K]) QUIT("Reference %d to %s out of range [0 - %d]",\ (N),definition_name[K],max_ref[K]) - /*:349*/ /*350:*/ - #line 7422 "format.w" + /*:357*/ /*358:*/ + #line 7862 "format.w" #define MAX_REF(K) ((K)==label_kind?0xFFFF:0xFF) - /*:350*/ /*423:*/ - #line 8877 "format.w" + /*:358*/ /*431:*/ + #line 9317 "format.w" #ifdef WIN32 #define SIZE_F "0x%x" @@ -31,11 +31,11 @@ if ((int)(N)<(int)(A)||(int)(N)>(int)(Z)) QUIT(S " %d out of range [%d - %d]",N,A,Z) #define TAGERR(A) QUIT("Unknown tag [%s,%d] at " SIZE_F "\n",NAME(A),INFO(A),hpos-hstart) - /*:423*/ - #line 10009 "format.w" + /*:431*/ + #line 10460 "format.w" - /*410:*/ - #line 8615 "format.w" + /*418:*/ + #line 9055 "format.w" #define DBGNONE 0x0 #define DBGBASIC 0x1 @@ -54,63 +54,63 @@ #define DBGFONT 0x2000 #define DBGRENDER 0x4000 #define DBGLABEL 0x8000 - /*:410*/ - #line 10010 "format.w" + /*:418*/ + #line 10461 "format.w" /*12:*/ - #line 635 "format.w" + #line 640 "format.w" #define KIND(T) (((T)>>3)&0x1F) #define NAME(T) content_name[KIND(T)] #define INFO(T) ((T)&0x7) #define TAG(K,I) (((K)<<3)|(I)) /*:12*/ /*77:*/ - #line 1625 "format.w" + #line 1639 "format.w" #define ROUND(X) ((int)((X)>=0.0?floor((X)+0.5):ceil((X)-0.5))) /*:77*/ /*112:*/ - #line 2126 "format.w" + #line 2139 "format.w" #define RUNNING_DIMEN 0xC0000000 /*:112*/ /*131:*/ - #line 2468 "format.w" + #line 2481 "format.w" #define ZERO_GLUE(G) ((G).w.w==0 && (G).w.h==0.0 && (G).w.v==0.0 && (G).p.f==0.0 && (G).m.f==0.0) - /*:131*/ /*236:*/ - #line 4700 "format.w" + /*:131*/ /*244:*/ + #line 5140 "format.w" #define HINT_NO_POS 0xFFFFFFFF - /*:236*/ /*243:*/ - #line 4898 "format.w" + /*:244*/ /*251:*/ + #line 5338 "format.w" #define LABEL_UNDEF 0 #define LABEL_TOP 1 #define LABEL_BOT 2 #define LABEL_MID 3 - /*:243*/ /*294:*/ - #line 6079 "format.w" + /*:251*/ /*302:*/ + #line 6519 "format.w" #define ALLOCATE(R,S,T) ((R)= (T *)calloc((S),sizeof(T)),\ (((R)==NULL)?QUIT("Out of memory for " #R):0)) #define REALLOCATE(R,S,T) ((R)= (T *)realloc((R),(S)*sizeof(T)),\ (((R)==NULL)?QUIT("Out of memory for " #R):0)) - /*:294*/ /*302:*/ - #line 6244 "format.w" + /*:302*/ /*310:*/ + #line 6684 "format.w" #define MAX_BANNER 256 - /*:302*/ /*315:*/ - #line 6448 "format.w" + /*:310*/ /*323:*/ + #line 6888 "format.w" #define MAX_TAG_DISTANCE 32 - /*:315*/ - #line 10011 "format.w" + /*:323*/ + #line 10462 "format.w" /*6:*/ - #line 487 "format.w" + #line 492 "format.w" #define DEF_KIND(C,D,N) C##_kind= N typedef enum{ /*9:*/ - #line 556 "format.w" + #line 561 "format.w" DEF_KIND(text,text,0), DEF_KIND(list,list,1), @@ -146,21 +146,21 @@ DEF_KIND(undefined3,undefined3,30), DEF_KIND(penalty,int,31) /*:9*/ - #line 489 "format.w" + #line 494 "format.w" , /*10:*/ - #line 595 "format.w" + #line 600 "format.w" font_kind= glyph_kind,int_kind= penalty_kind,dimen_kind= kern_kind,label_kind= link_kind,outline_kind= link_kind /*:10*/ - #line 489 "format.w" + #line 494 "format.w" }Kind; #undef DEF_KIND /*:6*/ /*11:*/ - #line 621 "format.w" + #line 626 "format.w" typedef enum{b000= 0,b001= 1,b010= 2,b011= 3,b100= 4,b101= 5,b110= 6,b111= 7}Info; /*:11*/ /*56:*/ - #line 1294 "format.w" + #line 1301 "format.w" #define FLT_M_BITS 23 @@ -172,43 +172,43 @@ typedef enum{b000= 0,b001= 1,b010= 2,b011= 3,b100= 4,b101= 5,b110= 6,b111= 7}Inf #define DBL_EXCESS 1023 /*:56*/ /*76:*/ - #line 1620 "format.w" + #line 1634 "format.w" typedef int32_t Scaled; #define ONE ((Scaled)(1<<16)) /*:76*/ /*81:*/ - #line 1676 "format.w" + #line 1690 "format.w" typedef Scaled Dimen; #define MAX_DIMEN ((Dimen)(0x3FFFFFFF)) /*:81*/ /*86:*/ - #line 1732 "format.w" + #line 1746 "format.w" typedef struct{ Dimen w;float32_t h,v; }Xdimen; /*:86*/ /*95:*/ - #line 1877 "format.w" + #line 1890 "format.w" typedef enum{normal_o= 0,fil_o= 1,fill_o= 2,filll_o= 3}Order; typedef struct{float64_t f;Order o;}Stretch; typedef union{float32_t f;uint32_t u;}Stch; /*:95*/ /*130:*/ - #line 2458 "format.w" + #line 2471 "format.w" typedef struct{ Xdimen w; Stretch p,m; }Glue; /*:130*/ /*180:*/ - #line 3881 "format.w" + #line 3894 "format.w" typedef struct{ Glue bs,ls; Dimen lsl; }Baseline; - /*:180*/ /*242:*/ - #line 4883 "format.w" + /*:180*/ /*250:*/ + #line 5323 "format.w" typedef struct {uint32_t pos; @@ -217,15 +217,15 @@ bool used; int next; uint32_t pos0;uint8_t f; }Label; - /*:242*/ /*373:*/ - #line 7942 "format.w" + /*:250*/ /*381:*/ + #line 8382 "format.w" #define MAX_FONT_PARAMS 11 - /*:373*/ - #line 10012 "format.w" + /*:381*/ + #line 10463 "format.w" - /*385:*/ - #line 8177 "format.w" + /*393:*/ + #line 8617 "format.w" typedef enum{ zero_int_no= 0, @@ -253,8 +253,8 @@ hang_after_no= 21, floating_penalty_no= 22 }Int_no; #define MAX_INT_DEFAULT floating_penalty_no - /*:385*/ /*387:*/ - #line 8250 "format.w" + /*:393*/ /*395:*/ + #line 8690 "format.w" typedef enum{ zero_dimen_no= 0, @@ -269,8 +269,8 @@ quad_no= 8, math_quad_no= 9 }Dimen_no; #define MAX_DIMEN_DEFAULT math_quad_no - /*:387*/ /*389:*/ - #line 8295 "format.w" + /*:395*/ /*397:*/ + #line 8735 "format.w" typedef enum{ zero_xdimen_no= 0, @@ -278,8 +278,8 @@ hsize_xdimen_no= 1, vsize_xdimen_no= 2 }Xdimen_no; #define MAX_XDIMEN_DEFAULT vsize_xdimen_no - /*:389*/ /*391:*/ - #line 8319 "format.w" + /*:397*/ /*399:*/ + #line 8759 "format.w" typedef enum{ zero_skip_no= 0, @@ -299,43 +299,43 @@ tab_skip_no= 13, par_fill_skip_no= 14 }Glue_no; #define MAX_GLUE_DEFAULT par_fill_skip_no - /*:391*/ /*393:*/ - #line 8405 "format.w" + /*:399*/ /*401:*/ + #line 8845 "format.w" typedef enum{ zero_baseline_no= 0 }Baseline_no; #define MAX_BASELINE_DEFAULT zero_baseline_no - /*:393*/ /*395:*/ - #line 8430 "format.w" + /*:401*/ /*403:*/ + #line 8870 "format.w" typedef enum{ zero_label_no= 0 }Label_no; #define MAX_LABEL_DEFAULT zero_label_no - /*:395*/ /*397:*/ - #line 8444 "format.w" + /*:403*/ /*405:*/ + #line 8884 "format.w" typedef enum{ zero_stream_no= 0 }Stream_no; #define MAX_STREAM_DEFAULT zero_stream_no - /*:397*/ /*399:*/ - #line 8460 "format.w" + /*:405*/ /*407:*/ + #line 8900 "format.w" typedef enum{ zero_page_no= 0 }Page_no; #define MAX_PAGE_DEFAULT zero_page_no - /*:399*/ /*401:*/ - #line 8477 "format.w" + /*:407*/ /*409:*/ + #line 8917 "format.w" typedef enum{ zero_range_no= 0 }Range_no; #define MAX_RANGE_DEFAULT zero_range_no - /*:401*/ - #line 10013 "format.w" + /*:409*/ + #line 10464 "format.w" extern const char*content_name[32]; @@ -352,4 +352,4 @@ extern Label label_defaults[MAX_LABEL_DEFAULT+1]; extern signed char hnode_size[0x100]; #endif - /*:504*/ + /*:512*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/get.c b/Build/source/texk/web2c/hitexdir/hintview/src/get.c index 41dadeeed3e..42e69d3e4bf 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/get.c +++ b/Build/source/texk/web2c/hitexdir/hintview/src/get.c @@ -1,5 +1,5 @@ - /*508:*/ - #line 10153 "format.w" + /*516:*/ + #line 10604 "format.w" #include "basetypes.h" #include <string.h> @@ -13,39 +13,39 @@ #include "format.h" #include "get.h" - /*244:*/ - #line 4905 "format.w" + /*252:*/ + #line 5345 "format.w" Label*labels; int first_label= -1; - /*:244*/ /*292:*/ - #line 6068 "format.w" + /*:252*/ /*300:*/ + #line 6508 "format.w" RangePos*range_pos; int next_range= 1,max_range; int*page_on; - /*:292*/ /*303:*/ - #line 6252 "format.w" + /*:300*/ /*311:*/ + #line 6692 "format.w" char hbanner[MAX_BANNER+1]; int hbanner_size= 0; - /*:303*/ /*310:*/ - #line 6393 "format.w" + /*:311*/ /*318:*/ + #line 6833 "format.w" uint8_t*hpos= NULL,*hstart= NULL,*hend= NULL,*hpos0= NULL; - /*:310*/ /*316:*/ - #line 6474 "format.w" + /*:318*/ /*324:*/ + #line 6914 "format.w" char*hin_name= NULL; uint64_t hin_size= 0; uint8_t*hin_addr= NULL; uint64_t hin_time= 0; - /*:316*/ /*372:*/ - #line 7938 "format.w" + /*:324*/ /*380:*/ + #line 8378 "format.w" char**hfont_name; - /*:372*/ /*411:*/ - #line 8638 "format.w" + /*:380*/ /*419:*/ + #line 9078 "format.w" unsigned int debugflags= DBGNONE; int option_utf8= false; @@ -56,16 +56,16 @@ int option_aux= false; int option_compress= false; char*stem_name= NULL; int stem_length= 0; - /*:411*/ /*414:*/ - #line 8772 "format.w" + /*:419*/ /*422:*/ + #line 9212 "format.w" FILE*hin= NULL,*hout= NULL,*hlog= NULL; - /*:414*/ - #line 10166 "format.w" + /*:422*/ + #line 10617 "format.w" - /*317:*/ - #line 6481 "format.w" + /*325:*/ + #line 6921 "format.w" #ifndef USE_MMAP void hget_unmap(void) @@ -158,11 +158,11 @@ return hin_size; } #endif - /*:317*/ - #line 10168 "format.w" + /*:325*/ + #line 10619 "format.w" - /*304:*/ - #line 6257 "format.w" + /*312:*/ + #line 6697 "format.w" bool hcheck_banner(char*magic) @@ -193,11 +193,11 @@ LOG("%s file version %d.%d:%s",magic,HINT_VERSION,HINT_SUB_VERSION,t); DBG(DBGDIR,"banner size=0x%x\n",hbanner_size); return true; } - /*:304*/ - #line 10169 "format.w" + /*:312*/ + #line 10620 "format.w" - /*326:*/ - #line 6814 "format.w" + /*334:*/ + #line 7254 "format.w" Entry*dir= NULL; uint16_t section_no,max_section_no; @@ -208,8 +208,8 @@ max_section_no= entries-1; ALLOCATE(dir,entries,Entry); dir[0].section_no= 0;dir[1].section_no= 1;dir[2].section_no= 2; } - /*:326*/ /*327:*/ - #line 6827 "format.w" + /*:334*/ /*335:*/ + #line 7267 "format.w" void hset_entry(Entry*e,uint16_t i,uint32_t size,uint32_t xsize,char*file_name) {e->section_no= i; @@ -220,12 +220,12 @@ else e->file_name= strdup(file_name); DBG(DBGDIR,"Creating entry %d: \"%s\" size=0x%x xsize=0x%x\n",i,file_name,size,xsize); } - /*:327*/ - #line 10170 "format.w" + /*:335*/ + #line 10621 "format.w" - /*305:*/ - #line 6296 "format.w" + /*313:*/ + #line 6736 "format.w" void hget_banner(void) {hbanner_size= 0; @@ -236,8 +236,8 @@ if(c=='\n')break; } hbanner[hbanner_size]= 0; } - /*:305*/ /*318:*/ - #line 6586 "format.w" + /*:313*/ /*326:*/ + #line 7026 "format.w" static void hdecompress(uint16_t n) @@ -273,8 +273,8 @@ dir[n].bsize= dir[n].xsize; hpos0= hpos= hstart= buffer; hend= hstart+dir[n].xsize; } - /*:318*/ /*320:*/ - #line 6674 "format.w" + /*:326*/ /*328:*/ + #line 7114 "format.w" void hget_section(uint16_t n) {DBG(DBGDIR,"Reading section %d\n",n); @@ -289,19 +289,19 @@ hend= hstart+dir[n].size; if(dir[n].xsize>0)hdecompress(n); } } - /*:320*/ /*337:*/ - #line 7052 "format.w" + /*:328*/ /*345:*/ + #line 7492 "format.w" void hget_entry(Entry*e) { /*15:*/ - #line 712 "format.w" + #line 717 "format.w" uint8_t a,z; uint32_t node_pos= hpos-hstart; if(hpos>=hend)QUIT("Attempt to read a start byte at the end of the section"); HGETTAG(a); /*:15*/ - #line 7054 "format.w" + #line 7494 "format.w" DBG(DBGDIR,"Reading directory entry\n"); switch(a) @@ -316,18 +316,18 @@ case TAG(0,b100+3):HGET_ENTRY(b100+3,*e);break; default:TAGERR(a);break; } /*16:*/ - #line 719 "format.w" + #line 724 "format.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); /*:16*/ - #line 7067 "format.w" + #line 7507 "format.w" } - /*:337*/ /*338:*/ - #line 7084 "format.w" + /*:345*/ /*346:*/ + #line 7524 "format.w" static void hget_root(Entry*root) {DBG(DBGDIR,"Root entry at "SIZE_F"\n",hpos-hstart); @@ -362,20 +362,20 @@ if(dir[i].xsize>0&&dir[i].buffer!=NULL)free(dir[i].buffer); free(dir);dir= NULL; } - /*:338*/ /*356:*/ - #line 7500 "format.w" + /*:346*/ /*364:*/ + #line 7940 "format.w" void hget_max_definitions(void) {Kind k; /*15:*/ - #line 712 "format.w" + #line 717 "format.w" uint8_t a,z; uint32_t node_pos= hpos-hstart; if(hpos>=hend)QUIT("Attempt to read a start byte at the end of the section"); HGETTAG(a); /*:15*/ - #line 7503 "format.w" + #line 7943 "format.w" if(a!=TAG(list_kind,0))QUIT("Start of maximum list expected"); for(k= 0;k<32;k++)max_ref[k]= max_default[k];max_outline= -1; @@ -388,15 +388,15 @@ k= KIND(a); if(k==list_kind)break; if(INFO(a)&b001)HGET16(n);else n= HGET8; switch(a) -{ /*238:*/ - #line 4835 "format.w" +{ /*246:*/ + #line 5275 "format.w" case TAG(outline_kind,b100): case TAG(outline_kind,b101):max_outline= n; DBG(DBGDEF|DBGLABEL,"max(outline) = %d\n",max_outline);break; - /*:238*/ - #line 7515 "format.w" + /*:246*/ + #line 7955 "format.w" default: if(max_fixed[k]>max_default[k]) @@ -407,23 +407,23 @@ DBG(DBGDEF,"max(%s) = %d\n",definition_name[k],max_ref[k]); break; } /*16:*/ - #line 719 "format.w" + #line 724 "format.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); /*:16*/ - #line 7524 "format.w" + #line 7964 "format.w" } if(INFO(a)!=0)QUIT("End of maximum list with info %d",INFO(a)); } - /*:356*/ - #line 10172 "format.w" + /*:364*/ + #line 10623 "format.w" /*52:*/ - #line 1228 "format.w" + #line 1233 "format.w" #define HGET_UTF8C(X) (X)= HGET8; if ((X&0xC0)!=0x80) \ QUIT("UTF8 continuation byte expected at " SIZE_F " got 0x%02X\n",hpos-hstart-1,X) @@ -449,7 +449,7 @@ else QUIT("UTF8 byte sequence expected"); } } /*:52*/ /*75:*/ - #line 1603 "format.w" + #line 1613 "format.w" float32_t hget_float32(void) {union{float32_t d;uint32_t bits;}u; @@ -457,7 +457,7 @@ HGET32(u.bits); return u.d; } /*:75*/ /*145:*/ - #line 2822 "format.w" + #line 2835 "format.w" void hget_size_boundary(Info info) {uint32_t n; @@ -485,35 +485,35 @@ QUIT("List expected at 0x%x",(uint32_t)(hpos-hstart)); else { /*15:*/ - #line 712 "format.w" + #line 717 "format.w" uint8_t a,z; uint32_t node_pos= hpos-hstart; if(hpos>=hend)QUIT("Attempt to read a start byte at the end of the section"); HGETTAG(a); /*:15*/ - #line 2848 "format.w" + #line 2861 "format.w" l->k= KIND(a); HGET_LIST(INFO(a),*l); /*16:*/ - #line 719 "format.w" + #line 724 "format.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); /*:16*/ - #line 2851 "format.w" + #line 2864 "format.w" DBG(DBGNODE,"Get list at 0x%x size=%u\n",l->p,l->s); } } /*:145*/ - #line 10173 "format.w" + #line 10624 "format.w" - /*426:*/ - #line 8944 "format.w" + /*434:*/ + #line 9384 "format.w" uint32_t hff_list_pos= 0,hff_list_size= 0; uint8_t hff_tag; @@ -532,8 +532,8 @@ hpos++; return; } else if(hff_tag<=TAG(param_kind,5)) - /*428:*/ - #line 8989 "format.w" + /*436:*/ + #line 9429 "format.w" switch(INFO(hff_tag)){ case 1:hff_list_pos= hpos-hstart+1;hff_list_size= 0;hpos= hpos+2;return; @@ -542,21 +542,21 @@ case 3:hpos++;HGET16(hff_list_size);hff_list_pos= hpos-hstart+1;hpos= hpos+1+hff case 4:hpos++;HGET24(hff_list_size);hff_list_pos= hpos-hstart+1;hpos= hpos+1+hff_list_size+1+3+1;return; case 5:hpos++;HGET32(hff_list_size);hff_list_pos= hpos-hstart+1;hpos= hpos+1+hff_list_size+1+4+1;return; } - /*:428*/ - #line 8962 "format.w" + /*:436*/ + #line 9402 "format.w" TAGERR(hff_tag); } - /*:426*/ /*457:*/ - #line 9397 "format.w" + /*:434*/ /*465:*/ + #line 9840 "format.w" float32_t hteg_float32(void) {union{float32_t d;uint32_t bits;}u; HTEG32(u.bits); return u.d; } - /*:457*/ /*495:*/ - #line 9825 "format.w" + /*:465*/ /*503:*/ + #line 10278 "format.w" void hteg_size_boundary(Info info) {uint32_t n; @@ -578,15 +578,15 @@ return n; } void hteg_list(List*l) -{ /*454:*/ - #line 9369 "format.w" +{ /*462:*/ + #line 9812 "format.w" uint8_t a,z; uint32_t node_pos= hpos-hstart; if(hpos<=hstart)return; HTEGTAG(z); - /*:454*/ - #line 9846 "format.w" + /*:462*/ + #line 10299 "format.w" if(KIND(z)!=list_kind&&KIND(z)!=text_kind&&KIND(z)!=param_kind) QUIT("List expected at 0x%x",(uint32_t)(hpos-hstart)); @@ -601,14 +601,14 @@ hteg_size_boundary(INFO(z)); s= hteg_list_size(INFO(z)); if(s!=l->s)QUIT("List sizes at "SIZE_F" and 0x%x do not match 0x%x != 0x%x", hpos-hstart,node_pos-1,s,l->s); - /*455:*/ - #line 9376 "format.w" + /*463:*/ + #line 9819 "format.w" HTEGTAG(a); if(a!=z)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-1); - /*:455*/ - #line 9860 "format.w" + /*:463*/ + #line 10313 "format.w" } } @@ -619,7 +619,7 @@ hteg_list(l); } - /*:495*/ - #line 10174 "format.w" + /*:503*/ + #line 10625 "format.w" - /*:508*/ + /*:516*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/get.h b/Build/source/texk/web2c/hitexdir/hintview/src/get.h index bd628745c41..0d6e924cd74 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/get.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/get.h @@ -1,25 +1,25 @@ - /*507:*/ - #line 10108 "format.w" + /*515:*/ + #line 10559 "format.w" /*1:*/ #line 328 "format.w" typedef struct{uint32_t c;uint8_t f;}Glyph; /*:1*/ /*113:*/ - #line 2153 "format.w" + #line 2166 "format.w" typedef struct{ Dimen h,d,w; }Rule; /*:113*/ /*122:*/ - #line 2267 "format.w" + #line 2280 "format.w" typedef struct{ bool x; Xdimen d; }Kern; /*:122*/ /*140:*/ - #line 2688 "format.w" + #line 2701 "format.w" typedef struct{ Kind k; @@ -27,37 +27,38 @@ uint32_t p; uint32_t s; }List; /*:140*/ /*148:*/ - #line 3110 "format.w" + #line 3123 "format.w" typedef enum{txt_font= 0x00,txt_global= 0x08,txt_local= 0x11, txt_cc= 0x1D,txt_node= 0x1E,txt_hyphen= 0x1F, txt_glue= 0x20,txt_ignore= 0xFB}Txt; /*:148*/ /*159:*/ - #line 3377 "format.w" + #line 3390 "format.w" typedef struct{Kind k;int n;}Ref; /*:159*/ /*160:*/ - #line 3414 "format.w" + #line 3427 "format.w" typedef struct{Dimen h,d,w,a;float32_t r;int8_t s,o;List l;}Box; /*:160*/ /*187:*/ - #line 3970 "format.w" + #line 3983 "format.w" typedef struct{uint8_t f;List l;}Lig; /*:187*/ /*195:*/ - #line 4087 "format.w" + #line 4100 "format.w" typedef struct{bool x;List p,q;uint8_t r;}Disc; /*:195*/ /*228:*/ - #line 4608 "format.w" + #line 4658 "format.w" typedef struct{ uint16_t n; -Dimen w,h; -Stretch p,m; +float32_t a; +Xdimen w,h; +uint8_t wr,hr; }Image; - /*:228*/ /*264:*/ - #line 5247 "format.w" + /*:228*/ /*272:*/ + #line 5687 "format.w" typedef struct{ uint8_t*t; @@ -65,16 +66,16 @@ int s; int d; uint16_t r; }Outline; - /*:264*/ /*291:*/ - #line 6063 "format.w" + /*:272*/ /*299:*/ + #line 6503 "format.w" typedef struct{uint8_t pg;uint32_t pos;bool on;int link;}RangePos; - /*:291*/ - #line 10109 "format.w" + /*:299*/ + #line 10560 "format.w" - /*325:*/ - #line 6800 "format.w" + /*333:*/ + #line 7240 "format.w" typedef struct{ uint64_t pos; @@ -84,17 +85,17 @@ char*file_name; uint8_t*buffer; uint32_t bsize; }Entry; - /*:325*/ - #line 10110 "format.w" + /*:333*/ + #line 10561 "format.w" /*37:*/ - #line 1062 "format.w" + #line 1067 "format.w" #define HGET_STRING(S) S= (char*)hpos;\ while(hpos<hend && *hpos!=0) { RNG("String character",*hpos,0x20,0x7E); hpos++;}\ hpos++; /*:37*/ /*146:*/ - #line 2857 "format.w" + #line 2870 "format.w" #define HGET_LIST(I,L) \ (L).s= hget_list_size(I); hget_size_boundary(I);\ @@ -103,8 +104,8 @@ uint32_t bsize; { uint32_t s= hget_list_size(I); \ if (s!=(L).s) \ QUIT("List sizes at 0x%x and " SIZE_F " do not match 0x%x != 0x%x",node_pos+1,hpos-hstart-I-1,(L).s,s);} - /*:146*/ /*311:*/ - #line 6401 "format.w" + /*:146*/ /*319:*/ + #line 6841 "format.w" #define HGET_ERROR QUIT("HGET overrun in section %d at " SIZE_F "\n",section_no,hpos-hstart) #define HEND ((hpos<=hend)?0:(HGET_ERROR,0)) @@ -114,8 +115,8 @@ uint32_t bsize; #define HGET24(X) ((X)= (hpos[0]<<16)+(hpos[1]<<8)+hpos[2],hpos+= 3,HEND) #define HGET32(X) ((X)= (hpos[0]<<24)+(hpos[1]<<16)+(hpos[2]<<8)+hpos[3],hpos+= 4,HEND) #define HGETTAG(A) A= HGET8,DBGTAG(A,hpos-1) - /*:311*/ /*336:*/ - #line 7028 "format.w" + /*:319*/ /*344:*/ + #line 7468 "format.w" #define HGET_SIZE(I) \ if ((I)&b100) { \ @@ -138,8 +139,8 @@ uint32_t bsize; HGET16(i); HGET_SIZE(I); HGET_STRING(file_name); \ hset_entry(&(E),i,s,xs,file_name); \ } - /*:336*/ /*456:*/ - #line 9384 "format.w" + /*:344*/ /*464:*/ + #line 9827 "format.w" #define HBACK(X) ((hpos-(X)<hstart)?(QUIT("HTEG underflow\n"),NULL):(hpos-= (X))) @@ -148,8 +149,8 @@ uint32_t bsize; #define HTEG24(X) (HBACK(3),(X)= (hpos[0]<<16)+(hpos[1]<<8)+hpos[2]) #define HTEG32(X) (HBACK(4),(X)= (hpos[0]<<24)+(hpos[1]<<16)+(hpos[2]<<8)+hpos[3]) #define HTEGTAG(X) X= HTEG8,DBGTAG(X,hpos) - /*:456*/ - #line 10111 "format.w" + /*:464*/ + #line 10562 "format.w" extern Entry*dir; @@ -187,4 +188,4 @@ extern void hteg_list(List*l); extern void hff_hpos(void); extern uint32_t hff_list_pos,hff_list_size; extern uint8_t hff_tag; - /*:507*/ + /*:515*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/hfonts.c b/Build/source/texk/web2c/hitexdir/hintview/src/hfonts.c index a9713118b0a..5ff776e60d4 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/hfonts.c +++ b/Build/source/texk/web2c/hitexdir/hintview/src/hfonts.c @@ -1,5 +1,5 @@ /*376:*/ -#line 7614 "hint.w" +#line 7609 "hint.w" #include "basetypes.h" #include "error.h" @@ -13,19 +13,19 @@ #include "rendernative.h" /*308:*/ -#line 5720 "hint.w" +#line 5748 "hint.w" static Font*fonts[0x100]= {NULL}; /*:308*//*315:*/ -#line 5856 "hint.w" +#line 5884 "hint.w" static Gcache g_undefined= {0}; /*:315*//*349:*/ -#line 7003 "hint.w" +#line 6998 "hint.w" static FT_Library ft_library= NULL; /*:349*/ -#line 7626 "hint.w" +#line 7621 "hint.w" /*35:*/ #line 562 "hint.w" @@ -33,10 +33,10 @@ static FT_Library ft_library= NULL; extern uint16_t hglyph_section(uint8_t f); extern int32_t font_at_size(uint8_t f); /*:35*/ -#line 7627 "hint.w" +#line 7622 "hint.w" /*314:*/ -#line 5813 "hint.w" +#line 5841 "hint.w" #define G0_BITS 7 #define G0_SIZE (1<<G0_BITS) @@ -71,7 +71,7 @@ return f->g0[cc]; return NULL; } /*:314*//*316:*/ -#line 5860 "hint.w" +#line 5888 "hint.w" static Gcache*hnew_g(Gcache**g) {if(*g==NULL) @@ -126,24 +126,24 @@ else if(cc<G123_SIZE*G123_SIZE*G123_SIZE*G0_SIZE)return hnew_g3(&(f->g3),cc); else return&g_undefined; } /*:316*/ -#line 7628 "hint.w" +#line 7623 "hint.w" /*353:*/ -#line 7037 "hint.w" +#line 7032 "hint.w" int unpack_ft_file(Font*f) {int e; /*350:*/ -#line 7007 "hint.w" +#line 7002 "hint.w" if(ft_library==NULL) {int e= FT_Init_FreeType(&ft_library); if(e)QUIT("Unable to initialize the FreeType library"); } /*:350*/ -#line 7041 "hint.w" +#line 7036 "hint.w" f->hpxs= 72.27/xdpi; f->vpxs= 72.27/ydpi; @@ -151,15 +151,15 @@ e= FT_New_Memory_Face(ft_library, f->font_data,f->data_size,0,&(f->tt.face)); if(e)return 0; /*354:*/ -#line 7062 "hint.w" +#line 7057 "hint.w" e= FT_Select_Charmap(f->tt.face,FT_ENCODING_ADOBE_CUSTOM); if(e)LOG("Unable to select custom encoding for font %d\n",f->n); /*:354*/ -#line 7047 "hint.w" +#line 7042 "hint.w" /*355:*/ -#line 7070 "hint.w" +#line 7065 "hint.w" e= FT_Set_Char_Size( f->tt.face, @@ -170,13 +170,13 @@ f->tt.face, if(e)QUIT("Unable to set FreeType glyph size"); FT_Set_Transform(f->tt.face,0,0); /*:355*/ -#line 7048 "hint.w" +#line 7043 "hint.w" f->ff= ft_format; return 1; } /*:353*//*356:*/ -#line 7093 "hint.w" +#line 7088 "hint.w" static void ft_unpack_glyph(Font*f,Gcache*g,uint32_t cc) {int e,i; @@ -201,22 +201,22 @@ nativeSetFreeType(g); } /*:356*/ -#line 7630 "hint.w" +#line 7625 "hint.w" /*341:*/ -#line 6708 "hint.w" +#line 6703 "hint.w" #define PK_READ_1_BYTE() (data[i++]) #define PK_READ_2_BYTE() (k= PK_READ_1_BYTE(),k= k<<8,k= k+data[i++],k) #define PK_READ_3_BYTE() (k= PK_READ_2_BYTE(),k= k<<8,k= k+data[i++],k) #define PK_READ_4_BYTE() (k= PK_READ_3_BYTE(),k= k<<8,k= k+data[i++],k) /*:341*//*343:*/ -#line 6735 "hint.w" +#line 6730 "hint.w" #define read_nybble(P) ((P).j&1?((P).data[(P).j++>>1]&0xF):(((P).data[(P).j++>>1]>>4)&0xF)) /*:343*//*344:*/ -#line 6761 "hint.w" +#line 6756 "hint.w" static int packed_number(PKparse*p) {int i,k; @@ -235,7 +235,7 @@ return packed_number(p); } } /*:344*//*345:*/ -#line 6790 "hint.w" +#line 6785 "hint.w" static void pk_runlength(Gcache*g,unsigned char*data){ PKparse p; @@ -277,7 +277,7 @@ y++; } } /*:345*//*346:*/ -#line 6842 "hint.w" +#line 6837 "hint.w" static void pk_bitmap(Gcache*g,unsigned char*data){ unsigned char*bits; @@ -298,7 +298,7 @@ if(mask==0){data++;mask= 0x80;} } } /*:346*//*347:*/ -#line 6865 "hint.w" +#line 6860 "hint.w" static void pkunpack_glyph(Gcache*g) @@ -341,7 +341,7 @@ else pk_runlength(g,data+i); nativeSetPK(g); } /*:347*//*348:*/ -#line 6910 "hint.w" +#line 6905 "hint.w" static Gcache*hnew_glyph(Font*pk,unsigned int cc); @@ -427,11 +427,11 @@ return 1; } /*:348*/ -#line 7632 "hint.w" +#line 7627 "hint.w" /*309:*/ -#line 5726 "hint.w" +#line 5754 "hint.w" struct font_s*hget_font(unsigned char f) {Font*fp; @@ -453,14 +453,14 @@ hpos= spos;hstart= sstart;hend= send; } fp->s= font_at_size(f)/(double)(1<<16); /*338:*/ -#line 6645 "hint.w" +#line 6640 "hint.w" if(fp->font_data[0]==0xF7&&fp->font_data[1]==0x59) {fp->ff= pk_format; if(!unpack_pk_file(fp)){free(fp);fp= NULL;} } /*:338*//*357:*/ -#line 7120 "hint.w" +#line 7115 "hint.w" else if(unpack_ft_file(fp)) fp->ff= ft_format; @@ -469,13 +469,13 @@ else free(fp);fp= NULL; } /*:357*/ -#line 5746 "hint.w" +#line 5774 "hint.w" fonts[f]= fp; return fonts[f]; } /*:309*//*311:*/ -#line 5764 "hint.w" +#line 5792 "hint.w" static void hfree_glyph_cache(Font*f,bool rm); @@ -489,7 +489,7 @@ if(rm){free(fonts[f]);fonts[f]= NULL;} } } /*:311*//*317:*/ -#line 5924 "hint.w" +#line 5952 "hint.w" static void hfree_g0(struct gcache_s**g,bool rm) {int i; @@ -554,7 +554,7 @@ if(rm){free(f->g3);f->g3= NULL;} } } /*:317*//*319:*/ -#line 6050 "hint.w" +#line 6078 "hint.w" Gcache*hget_glyph(Font*f,unsigned int cc) { @@ -574,7 +574,7 @@ else QUIT("Font format not supported"); return g; } /*:319*//*321:*/ -#line 6082 "hint.w" +#line 6110 "hint.w" void render_char(int x,int y,struct font_s*f,uint32_t cc,uint8_t s) @@ -590,7 +590,7 @@ nativeGlyph(SP2PT(x),dx,SP2PT(y),dy,w,h,g,s); } /*:321*/ -#line 7634 "hint.w" +#line 7629 "hint.w" /*:376*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/hfonts.h b/Build/source/texk/web2c/hitexdir/hintview/src/hfonts.h index 63166cef1b0..8aac51ace99 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/hfonts.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/hfonts.h @@ -1,18 +1,18 @@ /*375:*/ -#line 7603 "hint.w" +#line 7598 "hint.w" #ifndef _HFONTS_H #define _HFONTS_H /*306:*/ -#line 5692 "hint.w" +#line 5720 "hint.w" typedef enum{no_format,pk_format,ft_format}FontFormat; /*:306*//*307:*/ -#line 5704 "hint.w" +#line 5732 "hint.w" /*339:*/ -#line 6684 "hint.w" +#line 6679 "hint.w" typedef struct @@ -22,19 +22,19 @@ double ds; unsigned char id; }PKfont; /*:339*//*351:*/ -#line 7015 "hint.w" +#line 7010 "hint.w" typedef struct {FT_Face face; }FTfont; /*:351*//*352:*/ -#line 7022 "hint.w" +#line 7017 "hint.w" typedef struct {int dummy; }FTglyph; /*:352*/ -#line 5705 "hint.w" +#line 5733 "hint.w" typedef struct font_s{ @@ -44,7 +44,7 @@ int data_size; double s; double hpxs,vpxs; /*313:*/ -#line 5799 "hint.w" +#line 5827 "hint.w" struct gcache_s**g0; struct gcache_s***g1; @@ -52,23 +52,23 @@ struct gcache_s****g2; struct gcache_s*****g3; /*:313*/ -#line 5713 "hint.w" +#line 5741 "hint.w" FontFormat ff; union{PKfont pk;FTfont tt;}; }Font; /*:307*//*318:*/ -#line 6011 "hint.w" +#line 6039 "hint.w" /*340:*/ -#line 6697 "hint.w" +#line 6692 "hint.w" typedef struct {unsigned char flag; unsigned char*encoding; }PKglyph; /*:340*//*342:*/ -#line 6724 "hint.w" +#line 6719 "hint.w" typedef struct{ int j; @@ -77,7 +77,7 @@ int f; unsigned char*data; }PKparse; /*:342*/ -#line 6012 "hint.w" +#line 6040 "hint.w" struct gcache_s{ @@ -93,7 +93,7 @@ FTglyph tt; }; typedef struct gcache_s Gcache; /*:318*/ -#line 7607 "hint.w" +#line 7602 "hint.w" diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/hint.c b/Build/source/texk/web2c/hitexdir/hintview/src/hint.c index 5d71ec97bb2..b2463d6709d 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 7524 "hint.w" +#line 7519 "hint.w" #include "basetypes.h" #include <string.h> @@ -209,17 +209,25 @@ hget_list_pointer(); #line 3129 "hint.w" #define HGET_IMAGE(I) \ -{ pointer p;\ - p= get_node(image_node_size); type(p)= whatsit_node; subtype(p)= image_node;\ - HGET16(image_no(p));RNG("Section number",image_no(p),3,max_section_no); \ - if (I&b010) {HGET32(image_width(p)); HGET32(image_height(p));} \ - else image_width(p)= image_height(p)= 0;\ - if (I&b001) {HGET_STRETCH(image_stretch(p),image_stretch_order(p)); \ - HGET_STRETCH(image_shrink(p),image_shrink_order(p));}\ - else { image_stretch(p)= image_shrink(p)= 0;image_stretch_order(p)= image_shrink_order(p)= normal;}\ - tail_append(p);} +{pointer p; float32_t a= 0.0; scaled w,h;\ +p= get_node(image_node_size); type(p)= whatsit_node; subtype(p)= image_node;\ +HGET16(image_no(p));RNG("Section number",image_no(p),3,max_section_no); \ +if ((I)&b100) { a= hget_float32();\ + if ((I)==b111) {w= hget_xdimen_node();h= hget_xdimen_node();}\ + else if ((I)==b110) {h= hget_xdimen_ref(HGET8);w= hget_xdimen_node();}\ + else if ((I)==b101) {w= hget_xdimen_ref(HGET8);h= hget_xdimen_node();}\ + else {w= hget_xdimen_ref(HGET8);h= hget_xdimen_ref(HGET8);}\ + if (a!=0.0) { if (h==0) h= round(w/a); else if (w==0) w= round(h*a);\ + else if (w> round(h*a)) w= round(h*a); else if (h> round(w/a)) h= round(w/a);}}\ +else if((I)==b011) {HGET32(w);HGET32(h);} \ +else if((I)==b010) { a= hget_float32(); HGET32(w); h= round(w/a);}\ +else if((I)==b001){ a= hget_float32(); HGET32(h); w= round(h*a);}\ +if (w==0 || h==0) QUIT("Incomplete dimensions in image %d",image_no(p));\ +image_width(p)= w; image_height(p)= h;\ +image_alt(p)= hget_list_pointer();\ +tail_append(p);} /*:189*//*193:*/ -#line 3171 "hint.w" +#line 3194 "hint.w" #define HGET_LINK(I) \ { pointer p;\ @@ -230,7 +238,7 @@ hget_list_pointer(); label_has_name(p)= 0;\ tail_append(p);} /*:193*/ -#line 7536 "hint.w" +#line 7531 "hint.w" /*84:*/ #line 1303 "hint.w" @@ -400,20 +408,29 @@ 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 3142 "hint.w" +#line 3150 "hint.w" #define HTEG_IMAGE(I) \ -{ pointer p;\ - p= get_node(image_node_size); type(p)= whatsit_node; subtype(p)= image_node;\ - if (I&b001) {HTEG_STRETCH(image_shrink(p),image_shrink_order(p));\ - HTEG_STRETCH(image_stretch(p),image_stretch_order(p)); }\ - else { image_stretch(p)= image_shrink(p)= 0;image_stretch_order(p)= image_shrink_order(p)= normal;}\ - if (I&b010) {HTEG32(image_height(p)); HTEG32(image_width(p)); } \ - else image_width(p)= image_height(p)= 0;\ - HTEG16(image_no(p));RNG("Section number",image_no(p),3,max_section_no); \ - tail_append(p);} +{ pointer p; float32_t a= 0.0; scaled w,h;\ +p= get_node(image_node_size); type(p)= whatsit_node; subtype(p)= image_node;\ +image_alt(p)= hteg_list_pointer();\ +if ((I)&b100) {\ + if ((I)==b111) {h= hteg_xdimen_node();w= hteg_xdimen_node();}\ + else if ((I)==b110) {w= hteg_xdimen_node();h= hget_xdimen_ref(HTEG8);}\ + else if ((I)==b101) {h= hteg_xdimen_node();w= hget_xdimen_ref(HTEG8);}\ + else {h= hget_xdimen_ref(HTEG8);w= hget_xdimen_ref(HTEG8);}\ + a= hteg_float32();\ + if (a!=0.0) { if (h==0) h= round(w/a); else if (w==0) w= round(h*a);\ + else if (w> round(h*a)) w= round(h*a); else if (h> round(w/a)) h= round(w/a); }}\ +else if((I)==b011) {HTEG32(h);HTEG32(w);} \ +else if((I)==b010) { HTEG32(w); a= hteg_float32(); h= round(w/a);}\ +else if((I)==b001){ HTEG32(h); a= hteg_float32(); w= round(h*a);}\ +HTEG16(image_no(p));RNG("Section number",image_no(p),3,max_section_no); \ +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 3182 "hint.w" +#line 3205 "hint.w" #define HTEG_LINK(I) \ { pointer p;\ @@ -424,7 +441,7 @@ if ((I)&b100) hteg_xdimen_node(); else hget_xdimen_ref(HTEG8); label_has_name(p)= 0;\ tail_append(p);} /*:194*/ -#line 7537 "hint.w" +#line 7532 "hint.w" /*21:*/ @@ -455,7 +472,7 @@ typedef struct ParamDef{ struct ParamDef*next; Param p;}ParamDef; /*:37*/ -#line 7539 "hint.w" +#line 7534 "hint.w" @@ -535,16 +552,16 @@ int outline_no= -1; static ParamDef*line_break_params= NULL; /*:162*//*205:*/ -#line 3482 "hint.w" +#line 3505 "hint.w" static scaled page_height; static scaled top_so_far[8]; /*:205*//*220:*/ -#line 3760 "hint.w" +#line 3783 "hint.w" static uint32_t map[0x10000]; /*:220*//*225:*/ -#line 3824 "hint.w" +#line 3847 "hint.w" #define MAX_PAGE_POS (1<<3) @@ -552,25 +569,25 @@ uint64_t page_loc[MAX_PAGE_POS]; int cur_loc; static int lo_loc,hi_loc; /*:225*//*242:*/ -#line 4216 "hint.w" +#line 4240 "hint.w" scaled hvsize,hhsize; /*:242*//*244:*/ -#line 4244 "hint.w" +#line 4268 "hint.w" int page_v,page_h,offset_v,offset_h; /*:244*//*301:*/ -#line 5519 "hint.w" +#line 5547 "hint.w" hint_Link*hint_links= NULL; int max_link= -1; /*:301*//*359:*/ -#line 7219 "hint.w" +#line 7214 "hint.w" jmp_buf error_exit; char herror_string[MAX_HERROR]; /*:359*/ -#line 7542 "hint.w" +#line 7537 "hint.w" /*3:*/ #line 196 "hint.w" @@ -609,7 +626,7 @@ static pointer hteg_list_pointer(void); static scaled hget_xdimen_node(void); /*:124*/ -#line 7543 "hint.w" +#line 7538 "hint.w" /*9:*/ #line 253 "hint.w" @@ -1858,14 +1875,14 @@ ins_ptr(p)= list_ptr(s); list_ptr(s)= null;flush_node_list(s); } /*:184*//*224:*/ -#line 3802 "hint.w" +#line 3825 "hint.w" uint64_t hlocation(pointer p) {return PAGE_LOC(map[p],map[p+1]); } /*:224*//*227:*/ -#line 3848 "hint.w" +#line 3871 "hint.w" #define NEXT_PAGE(X) (X= (X+1)&(MAX_PAGE_POS-1)) #define PREV_PAGE(X) (X= (X-1)&(MAX_PAGE_POS-1)) @@ -1898,7 +1915,7 @@ return true; /*:227*//*230:*/ -#line 3910 "hint.w" +#line 3933 "hint.w" void hloc_set(uint64_t h) @@ -1912,12 +1929,13 @@ hloc_clear(); DBG(DBGPAGE,"loc_set: %d < %d < %d\n",lo_loc,cur_loc,hi_loc); } /*:230*//*231:*/ -#line 3934 "hint.w" +#line 3957 "hint.w" void hloc_set_next(pointer p) {int i= cur_loc; uint64_t h= hlocation(p); +if(h==page_loc[cur_loc])return; NEXT_PAGE(i); if(i==hi_loc) @@ -1934,7 +1952,7 @@ hi_loc= i; DBG(DBGPAGE,"loc_set_next: %d < %d < %d\n",lo_loc,cur_loc,hi_loc); } /*:231*//*232:*/ -#line 3970 "hint.w" +#line 3994 "hint.w" void hloc_set_prev(pointer p) {int i= cur_loc; @@ -1957,7 +1975,7 @@ cur_loc= i; DBG(DBGPAGE,"loc_set_prev: %d < %d < %d\n",lo_loc,cur_loc,hi_loc); } /*:232*//*245:*/ -#line 4254 "hint.w" +#line 4278 "hint.w" static void hset_margins(void) {if(cur_page==&(page_def[0])){ @@ -1982,14 +2000,18 @@ offset_v= (page_v-hvsize)/2; } } /*:245*//*247:*/ -#line 4286 "hint.w" +#line 4310 "hint.w" static void houtput_template(pointer p) {pointer q,r; if(p==null)return; p= vpackage(p,hvsize,exactly,page_max_depth); -r= new_kern(offset_v); +if(offset_v!=0) +{r= new_kern(offset_v); link(r)= p; +} +else +r= p; q= new_null_box(); type(q)= vlist_node; width(q)= width(p)+offset_h; @@ -1999,7 +2021,7 @@ shift_amount(p)+= offset_h; streams[0].p= q; } /*:247*//*272:*/ -#line 4928 "hint.w" +#line 4956 "hint.w" static int trv_string_size= 0; static char trv_string[256]; @@ -2028,7 +2050,7 @@ trv_string[trv_string_size]= 0; return trv_string; } /*:272*//*369:*/ -#line 7453 "hint.w" +#line 7448 "hint.w" static pointer leaks[1<<16]= {0}; @@ -2069,7 +2091,7 @@ fprintf(stderr,"ERROR:leak final: p=%d, s=%d\n",i,leaks[i]); #endif } /*:369*/ -#line 7544 "hint.w" +#line 7539 "hint.w" /*1:*/ #line 111 "hint.w" @@ -2605,7 +2627,7 @@ QUIT("Text in paragraph not yet implemented"); return null; } /*:160*/ -#line 7545 "hint.w" +#line 7540 "hint.w" /*80:*/ #line 1245 "hint.w" @@ -2816,15 +2838,18 @@ case TAG(item_kind,b111):hteg_content();(void)HTEG8;break; case TAG(stream_kind,b000):HTEG_STREAM(b000);break; case TAG(stream_kind,b010):HTEG_STREAM(b010);break; /*:188*//*192:*/ -#line 3162 "hint.w" +#line 3182 "hint.w" case TAG(image_kind,b000):hget_image_ref(HTEG8);break; +case TAG(image_kind,b001):HTEG_IMAGE(b001);break; +case TAG(image_kind,b010):HTEG_IMAGE(b010);break; +case TAG(image_kind,b011):HTEG_IMAGE(b011);break; case TAG(image_kind,b100):HTEG_IMAGE(b100);break; 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 3199 "hint.w" +#line 3222 "hint.w" case TAG(link_kind,b000):HTEG_LINK(b000);break; case TAG(link_kind,b001):HTEG_LINK(b001);break; @@ -2967,7 +2992,7 @@ line_break_params= save_lbp; } /*:170*/ -#line 7546 "hint.w" +#line 7541 "hint.w" /*18:*/ @@ -3251,15 +3276,18 @@ case TAG(item_kind,b111):(void)HGET8;hget_content();break; case TAG(stream_kind,b000):HGET_STREAM(b000);break; case TAG(stream_kind,b010):HGET_STREAM(b010);break; /*:187*//*191:*/ -#line 3155 "hint.w" +#line 3172 "hint.w" case TAG(image_kind,b000):hget_image_ref(HGET8);break; +case TAG(image_kind,b001):HGET_IMAGE(b001);break; +case TAG(image_kind,b010):HGET_IMAGE(b010);break; +case TAG(image_kind,b011):HGET_IMAGE(b011);break; case TAG(image_kind,b100):HGET_IMAGE(b100);break; 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 3193 "hint.w" +#line 3216 "hint.w" case TAG(link_kind,b000):HGET_LINK(b000);break; case TAG(link_kind,b001):HGET_LINK(b001);break; @@ -3315,7 +3343,7 @@ void set_line_break_params(void) {hset_param_list(line_break_params); } /*:163*//*199:*/ -#line 3326 "hint.w" +#line 3349 "hint.w" pointer skip(uint8_t n) {return cur_page->s[n].g;} @@ -3327,7 +3355,7 @@ scaled dimen(uint8_t n) {return xdimen(&cur_page->s[n].x);} /*:199*//*200:*/ -#line 3351 "hint.w" +#line 3374 "hint.w" void hpage_init(void) {int i; @@ -3350,7 +3378,7 @@ add_glue_ref(top_skip); } } /*:200*//*202:*/ -#line 3382 "hint.w" +#line 3405 "hint.w" void hflush_contribution_list(void) {if(link(contrib_head)!=null) @@ -3359,7 +3387,7 @@ link(contrib_head)= null;tail= contrib_head; } } /*:202*//*204:*/ -#line 3426 "hint.w" +#line 3449 "hint.w" static bool hbuild_page_up(void) { @@ -3371,12 +3399,12 @@ int pi= 0; if(link(contrib_head)==null)return false; do{p= link(contrib_head); /*209:*/ -#line 3548 "hint.w" +#line 3571 "hint.w" switch(type(p)){ case hlist_node:case vlist_node:case rule_node: /*206:*/ -#line 3492 "hint.w" +#line 3515 "hint.w" if(page_contents<box_there) {if(page_contents==empty)freeze_page_specs(box_there); @@ -3385,17 +3413,17 @@ if(depth(p)> page_max_depth) page_total= depth(p)-page_max_depth; depth(p)= 0; /*207:*/ -#line 3518 "hint.w" +#line 3541 "hint.w" {page_top_height= width(top_skip); page_total= page_total+page_top_height; } /*:207*/ -#line 3499 "hint.w" +#line 3522 "hint.w" } /*208:*/ -#line 3527 "hint.w" +#line 3550 "hint.w" {int i; for(i= 1;i<=6;i++) @@ -3404,7 +3432,7 @@ top_so_far[i]= 0; } } /*:208*/ -#line 3501 "hint.w" +#line 3524 "hint.w" page_total+= page_height+depth(p); if(height(p)> page_top_height) @@ -3414,15 +3442,15 @@ page_height= page_top_height; else page_height= height(p); /*:206*/ -#line 3551 "hint.w" +#line 3574 "hint.w" goto contribute; case whatsit_node:goto contribute; case glue_node:/*212:*/ -#line 3586 "hint.w" +#line 3609 "hint.w" if(link(p)==null)return false; /*213:*/ -#line 3593 "hint.w" +#line 3616 "hint.w" #define top_shrink top_so_far[6] #define top_total top_so_far[1] @@ -3435,15 +3463,15 @@ top_shrink+= shrink(q); top_total+= width(q); } /*:213*/ -#line 3588 "hint.w" +#line 3611 "hint.w" if(page_contents==empty||!precedes_break(link(p)))goto contribute; pi= 0; /*:212*/ -#line 3553 "hint.w" +#line 3576 "hint.w" break; case kern_node:/*214:*/ -#line 3609 "hint.w" +#line 3632 "hint.w" top_total+= width(p); if(page_contents==empty|| @@ -3452,21 +3480,21 @@ type(link(page_head))!=glue_node) goto contribute; pi= 0; /*:214*/ -#line 3554 "hint.w" +#line 3577 "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 3643 "hint.w" +#line 3666 "hint.w" if(pi<inf_penalty) {/*215:*/ -#line 3623 "hint.w" +#line 3646 "hint.w" /*216:*/ -#line 3634 "hint.w" +#line 3657 "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; @@ -3475,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 3624 "hint.w" +#line 3647 "hint.w" ; if(b<awful_bad) {if(pi<=eject_penalty)c= pi; @@ -3485,7 +3513,7 @@ else c= deplorable; else c= b; if(insert_penalties>=10000)c= awful_bad; /*:215*/ -#line 3645 "hint.w" +#line 3668 "hint.w" if(c<=least_page_cost) {best_page_break= p;best_size= page_goal; @@ -3499,7 +3527,7 @@ r= link(r); if((c==awful_bad)||(pi<=eject_penalty)) { /*218:*/ -#line 3673 "hint.w" +#line 3696 "hint.w" if(p!=best_page_break) {while(link(page_head)!=best_page_break) @@ -3511,10 +3539,10 @@ link(head)= q; } } /*:218*/ -#line 3657 "hint.w" +#line 3680 "hint.w" /*219:*/ -#line 3691 "hint.w" +#line 3714 "hint.w" hloc_set_prev(link(page_head)); while(true){ @@ -3534,7 +3562,7 @@ link(q)= link(page_head); link(page_head)= q; best_page_break= null; /*:219*/ -#line 3658 "hint.w" +#line 3681 "hint.w" hpack_page(); hfill_page_template(); @@ -3542,11 +3570,11 @@ return true; } } /*:217*/ -#line 3559 "hint.w" +#line 3582 "hint.w" contribute: /*210:*/ -#line 3566 "hint.w" +#line 3589 "hint.w" link(contrib_head)= link(p); link(p)= link(page_head); @@ -3554,31 +3582,31 @@ if(link(page_head)==null)page_tail= p; link(page_head)= p; goto done; /*:210*/ -#line 3561 "hint.w" +#line 3584 "hint.w" done1:/*211:*/ -#line 3574 "hint.w" +#line 3597 "hint.w" link(contrib_head)= link(p);link(p)= null;flush_node_list(p); /*:211*/ -#line 3562 "hint.w" +#line 3585 "hint.w" done: /*:209*/ -#line 3436 "hint.w" +#line 3459 "hint.w" ; }while(link(contrib_head)!=null); tail= contrib_head; return false; } /*:204*//*221:*/ -#line 3767 "hint.w" +#line 3790 "hint.w" static void clear_map(void) {memset(map,0,sizeof(map)); } /*:221*//*222:*/ -#line 3780 "hint.w" +#line 3803 "hint.w" void store_map(pointer p,uint32_t pos0,uint32_t offset) {map[p]= pos0; @@ -3589,7 +3617,7 @@ uint32_t hposition(pointer p) {return map[p]; } /*:222*//*229:*/ -#line 3890 "hint.w" +#line 3913 "hint.w" void hloc_init(void) {cur_loc= 0; @@ -3598,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 4026 "hint.w" +#line 4050 "hint.w" int hint_begin(void) {if(!hint_map())return 0; @@ -3635,7 +3663,7 @@ list_leaks(); hclear_dir(); } /*:234*//*238:*/ -#line 4129 "hint.w" +#line 4153 "hint.w" bool hint_forward(void) {hpage_init(); @@ -3649,7 +3677,7 @@ if(hbuild_page())return true; return false; } /*:238*//*239:*/ -#line 4170 "hint.w" +#line 4194 "hint.w" bool hint_backward(void) {hpage_init(); @@ -3663,7 +3691,7 @@ if(hbuild_page_up())return true; return false; } /*:239*//*241:*/ -#line 4198 "hint.w" +#line 4222 "hint.w" bool flush_pages(uint32_t pos) {pointer p= link(head); @@ -3680,18 +3708,18 @@ store_map(tail,pos,0); return false; } /*:241*//*263:*/ -#line 4712 "hint.w" +#line 4740 "hint.w" int hint_get_outline_max(void) {return max_outline;} /*:263*//*268:*/ -#line 4792 "hint.w" +#line 4820 "hint.w" hint_Outline*hint_get_outlines(void) {return hint_outlines; } /*:268*//*270:*/ -#line 4851 "hint.w" +#line 4879 "hint.w" static bool trv_ignore= false; static bool trv_skip_space= false; @@ -3757,7 +3785,7 @@ p= link(p); } } /*:270*/ -#line 7548 "hint.w" +#line 7543 "hint.w" /*:372*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/hint.h b/Build/source/texk/web2c/hitexdir/hintview/src/hint.h index 87cb3e016a1..0713b92ecf4 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/hint.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/hint.h @@ -1,5 +1,5 @@ /*371:*/ -#line 7511 "hint.w" +#line 7506 "hint.w" #ifndef _HINT_H_ #define _HINT_H_ @@ -43,13 +43,13 @@ extern void hget_par_node(uint32_t offset); extern void hteg_par_node(uint32_t offset); /*:171*//*197:*/ -#line 3262 "hint.w" +#line 3285 "hint.w" extern pointer*pointer_def[32]; extern scaled*dimen_def; extern int32_t*integer_def; /*:197*//*198:*/ -#line 3317 "hint.w" +#line 3340 "hint.w" extern Stream*streams; extern bool flush_pages(uint32_t pos); @@ -58,15 +58,15 @@ extern pointer*box_ptr(uint8_t n); extern int count(uint8_t n); extern scaled dimen(uint8_t n); /*:198*//*201:*/ -#line 3374 "hint.w" +#line 3397 "hint.w" extern void hpage_init(void); /*:201*//*203:*/ -#line 3391 "hint.w" +#line 3414 "hint.w" extern void hflush_contribution_list(void); /*:203*//*223:*/ -#line 3794 "hint.w" +#line 3817 "hint.w" #define HINT_NO_LOC 0xFFFFFFFFFFFFFFFF #define PAGE_LOC(POS0,OFF) (((uint64_t)((POS0)+(OFF))<<32) + (uint64_t)(OFF)) @@ -74,19 +74,19 @@ extern void hflush_contribution_list(void); #define LOC_OFF(P) ((P)&0xFFFFFFFF) #define LOC_POS0(P) (LOC_POS(P)-LOC_OFF(P)) /*:223*//*226:*/ -#line 3831 "hint.w" +#line 3854 "hint.w" extern uint64_t page_loc[]; extern int cur_loc; /*:226*//*228:*/ -#line 3880 "hint.w" +#line 3903 "hint.w" extern void hloc_clear(void); extern bool hloc_next(void); extern bool hloc_prev(void); extern uint64_t hlocation(pointer p); /*:228*//*233:*/ -#line 3995 "hint.w" +#line 4019 "hint.w" extern void hloc_init(void); extern void store_map(pointer p,uint32_t pos,uint32_t offset); @@ -94,23 +94,23 @@ extern uint32_t hposition(pointer p); extern void hloc_set(uint64_t h); extern void hloc_set_next(pointer p); /*:233*//*235:*/ -#line 4064 "hint.w" +#line 4088 "hint.w" extern int hint_begin(void); extern void hint_end(void); extern bool hint_map(void); extern void hint_unmap(void); /*:235*//*240:*/ -#line 4188 "hint.w" +#line 4212 "hint.w" extern bool hint_forward(void); extern bool hint_backward(void); /*:240*//*243:*/ -#line 4219 "hint.w" +#line 4243 "hint.w" extern scaled hvsize,hhsize; /*:243*//*264:*/ -#line 4725 "hint.w" +#line 4753 "hint.w" typedef struct{ uint64_t pos; @@ -121,26 +121,26 @@ char*title; }hint_Outline; extern hint_Outline*hint_outlines; /*:264*//*265:*/ -#line 4743 "hint.w" +#line 4771 "hint.w" #define LABEL_UNDEF 0 #define LABEL_TOP 1 #define LABEL_BOT 2 #define LABEL_MID 3 /*:265*//*269:*/ -#line 4802 "hint.w" +#line 4830 "hint.w" extern int hint_get_outline_max(void); extern hint_Outline*hint_get_outlines(void); extern uint64_t hint_outline_page(int i); /*:269*//*271:*/ -#line 4917 "hint.w" +#line 4945 "hint.w" extern void trv_init(void(*f)(uint32_t c)); extern void trv_vlist(pointer p); extern void trv_hlist(pointer p); /*:271*//*300:*/ -#line 5509 "hint.w" +#line 5537 "hint.w" typedef struct{ uint64_t pos; @@ -150,17 +150,17 @@ int top,bottom,left,right; extern hint_Link*hint_links; extern int max_link; /*:300*//*305:*/ -#line 5671 "hint.w" +#line 5699 "hint.w" extern int hint_find_link(scaled x,scaled y,scaled precission); extern uint64_t hint_link_page(int i); /*:305*//*370:*/ -#line 7494 "hint.w" +#line 7489 "hint.w" extern void leak_in(pointer p,int s); extern void leak_out(pointer p,int s); /*:370*/ -#line 7518 "hint.w" +#line 7513 "hint.w" #endif diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/hrender.c b/Build/source/texk/web2c/hitexdir/hintview/src/hrender.c index ddd7f66579a..7b9dc0aed13 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/hrender.c +++ b/Build/source/texk/web2c/hitexdir/hintview/src/hrender.c @@ -1,5 +1,5 @@ /*374:*/ -#line 7583 "hint.w" +#line 7578 "hint.w" #include "basetypes.h" #include "error.h" @@ -13,57 +13,57 @@ #include "hint.h" /*310:*/ -#line 5753 "hint.w" +#line 5781 "hint.w" extern struct font_s*hget_font(unsigned char f); /*:310*//*322:*/ -#line 6098 "hint.w" +#line 6126 "hint.w" extern void render_char(int x,int y,struct font_s*f,uint32_t cc,uint8_t s); /*:322*/ -#line 7595 "hint.w" +#line 7590 "hint.w" /*236:*/ -#line 4093 "hint.w" +#line 4117 "hint.w" double xdpi= 600.0,ydpi= 600.0; /*:236*//*254:*/ -#line 4452 "hint.w" +#line 4480 "hint.w" static bool forward_mode= false,backward_mode= false; /*:254*//*273:*/ -#line 4964 "hint.w" +#line 4992 "hint.w" static char*m_str; static int m_length,m_chars; /*:273*//*277:*/ -#line 5035 "hint.w" +#line 5063 "hint.w" #define MAX_M_DIST 512 static uint8_t m_dist[MAX_M_DIST+5]; static int m_ptr,m_max; /*:277*//*280:*/ -#line 5136 "hint.w" +#line 5164 "hint.w" static int m_state,m_spaces; static uint32_t m_d; /*:280*//*285:*/ -#line 5258 "hint.w" +#line 5286 "hint.w" static int m_focus; static uint64_t m_page; /*:285*//*288:*/ -#line 5294 "hint.w" +#line 5322 "hint.w" static bool c_ignore; static int m_style; /*:288*//*296:*/ -#line 5463 "hint.w" +#line 5491 "hint.w" static int cur_link= -1; /*:296*//*325:*/ -#line 6140 "hint.w" +#line 6169 "hint.w" static scaled cur_h,cur_v; static scaled rule_ht,rule_dp,rule_wd; @@ -71,10 +71,10 @@ static int cur_f; static struct font_s*cur_fp; static uint8_t cur_style= 0; /*:325*/ -#line 7597 "hint.w" +#line 7592 "hint.w" /*237:*/ -#line 4097 "hint.w" +#line 4121 "hint.w" void hint_resize(int px_h,int px_v,double x_dpi,double y_dpi) { @@ -96,7 +96,7 @@ forward_mode= false; backward_mode= false; } /*:237*//*248:*/ -#line 4317 "hint.w" +#line 4345 "hint.w" uint64_t hint_page_top(uint64_t h) @@ -117,7 +117,7 @@ backward_mode= false; return h; } /*:248*//*249:*/ -#line 4340 "hint.w" +#line 4368 "hint.w" uint64_t hint_page_get(void) { @@ -127,7 +127,7 @@ if(hin_addr==NULL)return 0; return page_loc[cur_loc]; } /*:249*//*250:*/ -#line 4356 "hint.w" +#line 4384 "hint.w" uint64_t hint_page(void) {uint64_t i; @@ -139,7 +139,7 @@ else return hint_page_top(i); } /*:250*//*251:*/ -#line 4372 "hint.w" +#line 4400 "hint.w" uint64_t hint_page_home(void) {uint64_t pos; @@ -155,21 +155,21 @@ pos= ((uint64_t)labels[n].pos<<32)+(labels[n].pos-labels[n].pos0); pos= ((uint64_t)labels[n].pos0<<32); #endif /*:71*/ -#line 4377 "hint.w" +#line 4405 "hint.w" /*267:*/ -#line 4765 "hint.w" +#line 4793 "hint.w" if(where==LABEL_TOP)return hint_page_top(pos); else if(where==LABEL_BOT)return hint_page_bottom(pos); else if(where==LABEL_MID)return hint_page_middle(pos); else return hint_page_get(); /*:267*/ -#line 4378 "hint.w" +#line 4406 "hint.w" } /*:251*//*252:*/ -#line 4399 "hint.w" +#line 4427 "hint.w" double hint_get_fpos(void) { @@ -179,7 +179,7 @@ if(hin_addr==NULL)return 0.0; return(double)LOC_POS(page_loc[cur_loc])/(double)(hend-hstart); } /*:252*//*253:*/ -#line 4413 "hint.w" +#line 4441 "hint.w" uint64_t hint_set_fpos(double fpos) {uint32_t pos,pos0; @@ -214,7 +214,7 @@ pos= pos0= hpos-hstart; return hint_page_top(PAGE_LOC(pos0,pos-pos0)); } /*:253*//*255:*/ -#line 4457 "hint.w" +#line 4485 "hint.w" uint64_t hint_page_next(void) {if(hin_addr==NULL)return 0; @@ -231,7 +231,7 @@ return hint_page(); } } /*:255*//*256:*/ -#line 4482 "hint.w" +#line 4510 "hint.w" uint64_t hint_page_prev(void) {if(hin_addr==NULL)return 0; @@ -249,7 +249,7 @@ else return hint_page_bottom(hint_page_get()); } /*:256*//*257:*/ -#line 4508 "hint.w" +#line 4536 "hint.w" uint64_t hint_page_bottom(uint64_t h) {if(hin_addr==NULL)return 0; @@ -264,7 +264,7 @@ forward_mode= false; return hint_page_get(); } /*:257*//*258:*/ -#line 4533 "hint.w" +#line 4561 "hint.w" uint64_t hint_page_middle(uint64_t l) {uint32_t pos,pos0,offset; @@ -283,11 +283,11 @@ hget_content(); p= link(contrib_head); if(offset> 0) {/*259:*/ -#line 4572 "hint.w" +#line 4600 "hint.w" {while(p!=null) {/*260:*/ -#line 4599 "hint.w" +#line 4627 "hint.w" switch(type(p)) {case hlist_node:case vlist_node:case rule_node: @@ -310,7 +310,7 @@ default: pi= hp= dp= 0; } /*:260*/ -#line 4574 "hint.w" +#line 4602 "hint.w" h+= d+hp; d= dp; @@ -326,7 +326,7 @@ p= link(p); if(tp==null)ht= h; if(ht>=hvsize) {/*261:*/ -#line 4626 "hint.w" +#line 4654 "hint.w" pointer q= contrib_head; scaled dh= ht-hvsize/2; @@ -334,7 +334,7 @@ p= link(contrib_head); h= d= 0; while(p!=null) {/*260:*/ -#line 4599 "hint.w" +#line 4627 "hint.w" switch(type(p)) {case hlist_node:case vlist_node:case rule_node: @@ -357,7 +357,7 @@ default: pi= hp= dp= 0; } /*:260*/ -#line 4632 "hint.w" +#line 4660 "hint.w" h= h+d+hp; d= dp; @@ -372,19 +372,19 @@ flush_node_list(link(contrib_head)); link(contrib_head)= p; } /*:261*/ -#line 4588 "hint.w" +#line 4616 "hint.w" goto found; } } /*:259*/ -#line 4550 "hint.w" +#line 4578 "hint.w" } else if(p!=null&&type(p)==penalty_node) pi= penalty(p); /*262:*/ -#line 4651 "hint.w" +#line 4679 "hint.w" {pointer h_save= link(contrib_head); pointer t_save= tail; @@ -402,7 +402,7 @@ break; else p= link(p); /*260:*/ -#line 4599 "hint.w" +#line 4627 "hint.w" switch(type(p)) {case hlist_node:case vlist_node:case rule_node: @@ -425,7 +425,7 @@ default: pi= hp= dp= 0; } /*:260*/ -#line 4667 "hint.w" +#line 4695 "hint.w" h= h+dp+hp; if(pi<best_pi) @@ -456,7 +456,7 @@ tail= t_save; hpos= hpos_save; } /*:262*/ -#line 4554 "hint.w" +#line 4582 "hint.w" found: hloc_set(PAGE_LOC(pos0,offset)); @@ -466,7 +466,7 @@ backward_mode= false; return hint_page_get(); } /*:258*//*266:*/ -#line 4754 "hint.w" +#line 4782 "hint.w" uint64_t hint_outline_page(int i) {uint64_t pos; @@ -475,24 +475,24 @@ if(i<0||i> max_outline)return hint_page_get(); pos= hint_outlines[i].pos; where= hint_outlines[i].where; /*267:*/ -#line 4765 "hint.w" +#line 4793 "hint.w" if(where==LABEL_TOP)return hint_page_top(pos); else if(where==LABEL_BOT)return hint_page_bottom(pos); else if(where==LABEL_MID)return hint_page_middle(pos); else return hint_page_get(); /*:267*/ -#line 4761 "hint.w" +#line 4789 "hint.w" } /*:266*//*274:*/ -#line 4969 "hint.w" +#line 4997 "hint.w" void hint_set_mark(char*m,int s) {m_str= m; m_length= s; /*275:*/ -#line 4980 "hint.w" +#line 5008 "hint.w" if(m_length> 0) {int i,j,k; @@ -508,12 +508,12 @@ m_length= k; m_chars= m_length-j; } /*:275*/ -#line 4973 "hint.w" +#line 5001 "hint.w" hmark_page(); } /*:274*//*278:*/ -#line 5069 "hint.w" +#line 5097 "hint.w" static void m_put(uint32_t d) {if(m_ptr<MAX_M_DIST) @@ -550,7 +550,7 @@ x= (x<<7)+y; } } /*:278*//*279:*/ -#line 5110 "hint.w" +#line 5138 "hint.w" static int m_next(int i) {while((0x80&m_dist[i])==0)i++; @@ -565,7 +565,7 @@ while(i> 0&&(0x80&m_dist[i-1])==0)i--; return i; } /*:279*//*281:*/ -#line 5141 "hint.w" +#line 5169 "hint.w" static void next_m_char(uint32_t c) { @@ -586,7 +586,7 @@ m_state= 0; } else /*282:*/ -#line 5175 "hint.w" +#line 5203 "hint.w" {int i= 0,j= 0; do{ @@ -598,13 +598,13 @@ m_state= m_state-i; goto reconsider; } /*:282*/ -#line 5160 "hint.w" +#line 5188 "hint.w" } /*:281*//*283:*/ -#line 5188 "hint.w" +#line 5216 "hint.w" #if 0 static void next_m_space(void) @@ -626,7 +626,7 @@ else if(m_state> 0) } #endif /*:283*//*284:*/ -#line 5211 "hint.w" +#line 5239 "hint.w" #if 0 static void vlist_mark(pointer p); @@ -673,7 +673,7 @@ p= link(p); } #endif /*:284*//*286:*/ -#line 5264 "hint.w" +#line 5292 "hint.w" void hmark_page(void) {if(streams==NULL||streams[0].p==null)return; @@ -695,13 +695,13 @@ m_put(0xFF); if(m_focus>=m_max)m_focus= 0; } /*:286*//*293:*/ -#line 5379 "hint.w" +#line 5407 "hint.w" void c_ignore_list(pointer p) {while(p!=null) {if(is_char_node(p)) {/*290:*/ -#line 5319 "hint.w" +#line 5347 "hint.w" {while(m_d==0) {m_style^= MARK_BIT; @@ -717,7 +717,7 @@ m_d= m_get(); m_d--; } /*:290*/ -#line 5383 "hint.w" +#line 5411 "hint.w" cur_style|= m_style; } @@ -729,7 +729,7 @@ case ligature_node: {pointer q= lig_ptr(p); while(q!=null) {/*290:*/ -#line 5319 "hint.w" +#line 5347 "hint.w" {while(m_d==0) {m_style^= MARK_BIT; @@ -745,7 +745,7 @@ m_d= m_get(); m_d--; } /*:290*/ -#line 5393 "hint.w" +#line 5421 "hint.w" cur_style|= m_style; q= link(q); @@ -758,7 +758,7 @@ p= link(p); } } /*:293*//*294:*/ -#line 5426 "hint.w" +#line 5454 "hint.w" bool hint_prev_mark(void) {m_focus= m_prev(m_focus); @@ -779,7 +779,7 @@ m_focus= m_next(0); return(m_focus!=0); } /*:294*//*302:*/ -#line 5527 "hint.w" +#line 5555 "hint.w" static int links_allocated= 0; void add_new_link(int n,pointer p,scaled h,scaled v) @@ -809,7 +809,7 @@ pos= ((uint64_t)labels[n].pos<<32)+(labels[n].pos-labels[n].pos0); pos= ((uint64_t)labels[n].pos0<<32); #endif /*:71*/ -#line 5546 "hint.w" +#line 5574 "hint.w" t->where= where; t->pos= pos; @@ -837,7 +837,7 @@ else t->bottom= v; } /*:302*//*303:*/ -#line 5596 "hint.w" +#line 5624 "hint.w" static scaled hlink_distance(scaled x,scaled y,hint_Link*t) {scaled d,dx= 0,dy= 0; @@ -893,7 +893,7 @@ return last_hit; } } /*:303*//*304:*/ -#line 5656 "hint.w" +#line 5684 "hint.w" uint64_t hint_link_page(int i) {uint64_t h; @@ -907,14 +907,14 @@ else if(w==LABEL_MID)return hint_page_middle(h); else return hint_page_get(); } /*:304*//*323:*/ -#line 6105 "hint.w" +#line 6133 "hint.w" static void render_rule(int x,int y,int w,int h) {if(w> 0&&h> 0) nativeRule(SP2PT(x),SP2PT(y),SP2PT(w),SP2PT(h)); } /*:323*//*324:*/ -#line 6116 "hint.w" +#line 6145 "hint.w" void render_image(int x,int y,int w,int h,uint32_t n) { @@ -925,7 +925,7 @@ nativeImage(SP2PT(x),SP2PT(y),SP2PT(w),SP2PT(h),hstart,hend); hpos= spos;hstart= sstart;hend= send; } /*:324*//*326:*/ -#line 6148 "hint.w" +#line 6177 "hint.w" static void vlist_render(pointer this_box); @@ -960,7 +960,7 @@ this_box,mem[this_box].i,p); base_line= cur_v; left_edge= cur_h; /*299:*/ -#line 5493 "hint.w" +#line 5521 "hint.w" if(cur_link>=0) {add_new_link(cur_link,this_box,cur_h,cur_v); @@ -968,7 +968,7 @@ local_link= cur_link; cur_link= -1; } /*:299*/ -#line 6181 "hint.w" +#line 6210 "hint.w" while(p!=null) { @@ -985,7 +985,7 @@ c= character(p); if(!c_ignore&&c!=' ') {cur_style= cur_style&~(MARK_BIT|FOCUS_BIT); /*290:*/ -#line 5319 "hint.w" +#line 5347 "hint.w" {while(m_d==0) {m_style^= MARK_BIT; @@ -1001,7 +1001,7 @@ m_d= m_get(); m_d--; } /*:290*/ -#line 6196 "hint.w" +#line 6225 "hint.w" cur_style|= m_style; } @@ -1051,7 +1051,7 @@ rule_ht= height(p);rule_dp= depth(p);rule_wd= width(p); goto fin_rule; case whatsit_node: /*292:*/ -#line 5356 "hint.w" +#line 5384 "hint.w" if(subtype(p)==ignore_node) {if(ignore_info(p)==1) @@ -1063,10 +1063,10 @@ else c_ignore= false; } /*:292*/ -#line 6244 "hint.w" +#line 6273 "hint.w" else/*297:*/ -#line 5467 "hint.w" +#line 5495 "hint.w" if(subtype(p)==start_link_node) {cur_style|= LINK_BIT; @@ -1079,29 +1079,12 @@ end_new_link(local_link,this_box,cur_h,cur_v); local_link= -1; } /*:297*/ -#line 6245 "hint.w" +#line 6274 "hint.w" else if(subtype(p)==image_node) {scaled h,w; w= image_width(p); h= image_height(p); -if(g_sign!=normal) -{if(g_sign==stretching) -{if(image_stretch_order(p)==g_order) -{vet_glue((double)(glue_set(this_box))*image_stretch(p)); -w= w+round(glue_temp); -} -} -else if(image_shrink_order(p)==g_order) -{vet_glue((double)(glue_set(this_box))*image_shrink(p)); -w= w-round(glue_temp); -} -} -if(w!=image_width(p)) -{double f; -f= (double)w/(double)image_width(p); -h= round((double)h*f); -} render_image(cur_h,cur_v,w,h,image_no(p)); cur_h= cur_h+w; } @@ -1174,7 +1157,7 @@ case ligature_node: f= font(lig_char(p)); c= character(lig_char(p)); /*291:*/ -#line 5338 "hint.w" +#line 5366 "hint.w" if(!c_ignore) {pointer q; @@ -1182,7 +1165,7 @@ cur_style= cur_style&~(MARK_BIT|FOCUS_BIT); q= lig_ptr(p); while(q!=null) {/*290:*/ -#line 5319 "hint.w" +#line 5347 "hint.w" {while(m_d==0) {m_style^= MARK_BIT; @@ -1198,14 +1181,14 @@ m_d= m_get(); m_d--; } /*:290*/ -#line 5344 "hint.w" +#line 5372 "hint.w" cur_style|= m_style; q= link(q); } } /*:291*/ -#line 6338 "hint.w" +#line 6350 "hint.w" goto render_c; default:; @@ -1232,14 +1215,14 @@ p= link(p); } } /*298:*/ -#line 5483 "hint.w" +#line 5511 "hint.w" if(local_link>=0) {end_new_link(local_link,this_box,cur_h,cur_v); cur_link= local_link; } /*:298*/ -#line 6363 "hint.w" +#line 6375 "hint.w" } @@ -1298,23 +1281,6 @@ if(subtype(p)==image_node) {scaled h,w; w= image_width(p); h= image_height(p); -if(g_sign!=normal) -{if(g_sign==stretching) -{if(image_stretch_order(p)==g_order) -{vet_glue((double)(glue_set(this_box))*image_stretch(p)); -h= h+round(glue_temp); -} -} -else if(image_shrink_order(p)==g_order) -{vet_glue((double)(glue_set(this_box))*image_shrink(p)); -h= h-round(glue_temp); -} -} -if(h!=image_height(p)) -{double f; -f= (double)h/(double)image_height(p); -w= round((double)w*f); -} cur_v= cur_v+h; render_image(cur_h,cur_v,w,h,image_no(p)); } @@ -1409,14 +1375,14 @@ p= link(p); } /*:326*//*327:*/ -#line 6538 "hint.w" +#line 6533 "hint.w" uint64_t hint_blank(void) {nativeBlank(); return 0; } /*:327*//*328:*/ -#line 6547 "hint.w" +#line 6542 "hint.w" void hint_render(void) @@ -1427,11 +1393,11 @@ cur_v= height(streams[0].p); cur_f= -1;cur_fp= NULL; cur_link= -1;max_link= -1; /*289:*/ -#line 5312 "hint.w" +#line 5340 "hint.w" m_ptr= 0;m_d= 0;m_style= MARK_BIT;c_ignore= false;cur_style= 0; /*:289*/ -#line 6556 "hint.w" +#line 6551 "hint.w" if(type(streams[0].p)==vlist_node) vlist_render(streams[0].p); @@ -1439,6 +1405,6 @@ else hlist_render(streams[0].p); } /*:328*/ -#line 7598 "hint.w" +#line 7593 "hint.w" /*:374*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/hrender.h b/Build/source/texk/web2c/hitexdir/hintview/src/hrender.h index c7e1f5e13e3..29916a01d63 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/hrender.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/hrender.h @@ -1,23 +1,23 @@ /*373:*/ -#line 7553 "hint.w" +#line 7548 "hint.w" #ifndef _HRENDER_H #define _HRENDER_H /*276:*/ -#line 5002 "hint.w" +#line 5030 "hint.w" #define MARK_BIT 0x1 #define FOCUS_BIT 0x2 /*:276*//*295:*/ -#line 5452 "hint.w" +#line 5480 "hint.w" #define LINK_BIT 0x4 /*:295*//*320:*/ -#line 6079 "hint.w" +#line 6107 "hint.w" #define SP2PT(X) ((X)/(double)(1<<16)) /*:320*/ -#line 7556 "hint.w" +#line 7551 "hint.w" extern int page_h,page_v; diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/htex.c b/Build/source/texk/web2c/hitexdir/hintview/src/htex.c index 6bbde3f5ee7..5d2bb6c3426 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/htex.c +++ b/Build/source/texk/web2c/hitexdir/hintview/src/htex.c @@ -16,19 +16,19 @@ #ifdef STAT #include "hprint.h" #endif -/*121:*/ +/*120:*/ #line 2578 "htex.w" pointer temp_ptr; -/*:121*//*122:*/ +/*:120*//*121:*/ #line 2610 "htex.w" memory_word mem0[mem_max-mem_min+1],*const mem= mem0-mem_min; pointer lo_mem_max; pointer hi_mem_min; -/*:122*//*123:*/ +/*:121*//*122:*/ #line 2623 "htex.w" static int var_used,dyn_used; @@ -40,43 +40,43 @@ static int var_used,dyn_used; #define decr_dyn_used #endif -/*:123*//*124:*/ +/*:122*//*123:*/ #line 2647 "htex.w" static pointer avail; -/*:124*//*130:*/ +/*:123*//*129:*/ #line 2750 "htex.w" static pointer rover; -/*:130*//*659:*/ -#line 13058 "htex.w" +/*:129*//*658:*/ +#line 13057 "htex.w" static scaled total_stretch0[filll-normal+1], *const total_stretch= total_stretch0-normal, total_shrink0[filll-normal+1],*const total_shrink= total_shrink0-normal; -/*:659*//*661:*/ -#line 13070 "htex.w" +/*:658*//*660:*/ +#line 13069 "htex.w" pointer adjust_tail= null; -/*:661*//*830:*/ -#line 16195 "htex.w" +/*:660*//*829:*/ +#line 16194 "htex.w" pointer just_box; -/*:830*//*838:*/ -#line 16332 "htex.w" +/*:829*//*837:*/ +#line 16331 "htex.w" static pointer passive; static pointer printed_node; static halfword pass_number; -/*:838*//*841:*/ -#line 16372 "htex.w" +/*:837*//*840:*/ +#line 16371 "htex.w" static scaled active_width0[6],*const active_width= active_width0-1; @@ -85,21 +85,21 @@ static scaled cur_active_width0[6], static scaled background0[6],*const background= background0-1; static scaled break_width0[6],*const break_width= break_width0-1; -/*:841*//*844:*/ -#line 16431 "htex.w" +/*:840*//*843:*/ +#line 16430 "htex.w" static bool no_shrink_error_yet; -/*:844*//*848:*/ -#line 16474 "htex.w" +/*:843*//*847:*/ +#line 16473 "htex.w" static pointer cur_p; static bool second_pass; static bool final_pass; static int threshold; -/*:848*//*854:*/ -#line 16576 "htex.w" +/*:847*//*853:*/ +#line 16575 "htex.w" static int minimal_demerits0[tight_fit-very_loose_fit+1], *const minimal_demerits= minimal_demerits0-very_loose_fit; @@ -113,13 +113,13 @@ static halfword best_pl_line0[tight_fit-very_loose_fit+1], *const best_pl_line= best_pl_line0-very_loose_fit; -/*:854*//*861:*/ -#line 16698 "htex.w" +/*:853*//*860:*/ +#line 16697 "htex.w" static scaled disc_width; -/*:861*//*870:*/ -#line 16841 "htex.w" +/*:860*//*869:*/ +#line 16840 "htex.w" static halfword easy_line; static halfword last_special_line; @@ -130,8 +130,8 @@ static scaled second_width; static scaled first_indent; static scaled second_indent; -/*:870*//*896:*/ -#line 17347 "htex.w" +/*:869*//*895:*/ +#line 17346 "htex.w" static pointer best_bet; static int fewest_demerits; @@ -141,14 +141,14 @@ static int actual_looseness; static int line_diff; -/*:896*//*997:*/ -#line 19151 "htex.w" +/*:895*//*996:*/ +#line 19150 "htex.w" scaled best_height_plus_depth; -/*:997*//*1006:*/ -#line 19353 "htex.w" +/*:996*//*1005:*/ +#line 19352 "htex.w" pointer page_tail; int page_contents; @@ -157,37 +157,37 @@ pointer best_page_break; int least_page_cost; scaled best_size; -/*:1006*//*1008:*/ -#line 19435 "htex.w" +/*:1005*//*1007:*/ +#line 19434 "htex.w" scaled page_so_far[8]; int insert_penalties; -/*:1008*/ +/*:1007*/ #line 271 "htex.w" -/*98:*/ +/*97:*/ #line 2100 "htex.w" void overflow(char*s,int n) {QUIT("Capacity exceeded, sorry [%s=%d=0x%X]\n",s,n,n); } -/*:98*//*99:*/ +/*:97*//*98:*/ #line 2113 "htex.w" void confusion(char*s) {QUIT("This can't happen(%s)",s);} -/*:99*/ +/*:98*/ #line 273 "htex.w" #endif -/*:4*//*104:*/ +/*:4*//*103:*/ #line 2180 "htex.w" @@ -196,13 +196,13 @@ static int half(int x) else return x/2; } -/*:104*//*109:*/ +/*:103*//*108:*/ #line 2278 "htex.w" static bool arith_error; static scaled rem; -/*:109*//*111:*/ +/*:108*//*110:*/ #line 2302 "htex.w" static scaled x_over_n(scaled x,int n) @@ -224,7 +224,7 @@ else{x_over_n= -((-x)/n);rem= -((-x)%n); if(negative)negate(rem); return x_over_n;} -/*:111*//*112:*/ +/*:110*//*111:*/ #line 2329 "htex.w" static scaled xn_over_d(scaled x,int n,int d) @@ -246,7 +246,7 @@ else{xn_over_d= -u;rem= -(v%d); } return xn_over_d;} -/*:112*//*113:*/ +/*:111*//*112:*/ #line 2369 "htex.w" halfword badness(scaled t,scaled s) @@ -262,7 +262,7 @@ else return(r*r*r+0400000)/01000000; } } -/*:113*//*126:*/ +/*:112*//*125:*/ #line 2666 "htex.w" static pointer get_avail(void) @@ -285,7 +285,7 @@ incr(dyn_used); return p; } -/*:126*//*129:*/ +/*:125*//*128:*/ #line 2713 "htex.w" static void flush_list(pointer p) @@ -302,7 +302,7 @@ link(q)= avail;avail= p; } } -/*:129*//*131:*/ +/*:128*//*130:*/ #line 2761 "htex.w" pointer get_node(int s) @@ -312,7 +312,7 @@ pointer q; int r; int t; restart:p= rover; -do{/*133:*/ +do{/*132:*/ #line 2813 "htex.w" q= p+node_size(p); @@ -324,7 +324,7 @@ llink(t)= llink(q);rlink(llink(q))= t; q= q+node_size(q); } r= q-s; -if(r> p+1)/*134:*/ +if(r> p+1)/*133:*/ #line 2828 "htex.w" {node_size(p)= r-p; @@ -333,11 +333,11 @@ rover= p; goto found; } -/*:134*/ +/*:133*/ #line 2823 "htex.w" ; if(r==p)if(rlink(p)!=p) -/*135:*/ +/*134:*/ #line 2837 "htex.w" {rover= rlink(p);t= llink(p); @@ -345,12 +345,12 @@ llink(rover)= t;rlink(t)= rover; goto found; } -/*:135*/ +/*:134*/ #line 2825 "htex.w" ; node_size(p)= q-p -/*:133*/ +/*:132*/ #line 2770 "htex.w" ; @@ -360,7 +360,7 @@ if(s==010000000000) {return max_halfword; } if(lo_mem_max+2<hi_mem_min)if(lo_mem_max+2<=mem_bot+max_halfword) -/*132:*/ +/*131:*/ #line 2798 "htex.w" {if(hi_mem_min-lo_mem_max>=1998)t= lo_mem_max+1000; @@ -373,7 +373,7 @@ lo_mem_max= t;link(lo_mem_max)= null;info(lo_mem_max)= null; rover= q;goto restart; } -/*:132*/ +/*:131*/ #line 2778 "htex.w" ; overflow("main memory size",mem_max+1-mem_min); @@ -388,7 +388,7 @@ leak_in(r,s); return r; } -/*:131*//*136:*/ +/*:130*//*135:*/ #line 2848 "htex.w" static void free_node(pointer p,halfword s) @@ -405,7 +405,7 @@ var_used= var_used-s; } -/*:136*//*142:*/ +/*:135*//*141:*/ #line 2999 "htex.w" pointer new_null_box(void) @@ -417,7 +417,7 @@ glue_sign(p)= normal;glue_order(p)= normal;set_glue_ratio_zero(glue_set(p)); return p; } -/*:142*//*145:*/ +/*:141*//*144:*/ #line 3030 "htex.w" pointer new_rule(void) @@ -428,7 +428,7 @@ width(p)= null_flag;depth(p)= null_flag;height(p)= null_flag; return p; } -/*:145*//*150:*/ +/*:144*//*149:*/ #line 3100 "htex.w" pointer new_ligature(quarterword f,quarterword c,pointer q) @@ -439,7 +439,7 @@ subtype(p)= 0;return p; } -/*:150*//*151:*/ +/*:149*//*150:*/ #line 3134 "htex.w" pointer new_disc(void) @@ -449,7 +449,7 @@ subtype(p)= 0;pre_break(p)= null;post_break(p)= null; return p; } -/*:151*//*153:*/ +/*:150*//*152:*/ #line 3169 "htex.w" pointer new_math(scaled w,small_number s) @@ -458,7 +458,7 @@ p= get_node(small_node_size);type(p)= math_node; subtype(p)= s;width(p)= w;return p; } -/*:153*//*157:*/ +/*:152*//*156:*/ #line 3252 "htex.w" pointer new_spec(pointer p) @@ -469,7 +469,7 @@ width(q)= width(p);stretch(q)= stretch(p);shrink(q)= shrink(p); return q; } -/*:157*//*159:*/ +/*:156*//*158:*/ #line 3279 "htex.w" pointer new_glue(pointer q) @@ -479,7 +479,7 @@ leader_ptr(p)= null;glue_ptr(p)= q;incr(glue_ref_count(q)); return p; } -/*:159*//*162:*/ +/*:158*//*161:*/ #line 3318 "htex.w" pointer new_kern(scaled w) @@ -490,7 +490,7 @@ width(p)= w; return p; } -/*:162*//*164:*/ +/*:161*//*163:*/ #line 3342 "htex.w" pointer new_penalty(int m) @@ -500,12 +500,12 @@ subtype(p)= 0; penalty(p)= m;return p; } -/*:164*//*170:*/ +/*:163*//*169:*/ #line 3422 "htex.w" void mem_init(void) {int k; -/*171:*/ +/*170:*/ #line 3428 "htex.w" for(k= mem_bot+1;k<=lo_mem_stat_max;k++)mem[k].sc= 0; @@ -524,34 +524,34 @@ llink(rover)= rover;rlink(rover)= rover; lo_mem_max= rover+1000;link(lo_mem_max)= null;info(lo_mem_max)= null; for(k= hi_mem_stat_min;k<=mem_top;k++) mem[k]= mem[lo_mem_max]; -/*805:*/ -#line 15738 "htex.w" +/*804:*/ +#line 15737 "htex.w" info(omit_template)= end_template_token; -/*:805*//*812:*/ -#line 15845 "htex.w" +/*:804*//*811:*/ +#line 15844 "htex.w" link(end_span)= max_quarterword+1;info(end_span)= null; -/*:812*//*836:*/ -#line 16301 "htex.w" +/*:811*//*835:*/ +#line 16300 "htex.w" type(last_active)= hyphenated;line_number(last_active)= max_halfword; subtype(last_active)= 0; -/*:836*//*1007:*/ -#line 19406 "htex.w" +/*:835*//*1006:*/ +#line 19405 "htex.w" subtype(page_ins_head)= qi(255); type(page_ins_head)= split_up;link(page_ins_head)= page_ins_head; -/*:1007*//*1014:*/ -#line 19562 "htex.w" +/*:1006*//*1013:*/ +#line 19561 "htex.w" type(page_head)= glue_node;subtype(page_head)= normal; -/*:1014*/ +/*:1013*/ #line 3445 "htex.w" ; avail= null; @@ -559,13 +559,13 @@ hi_mem_min= hi_mem_stat_min; var_used= lo_mem_stat_max+1-mem_bot;dyn_used= hi_mem_stat_usage; -/*:171*/ +/*:170*/ #line 3425 "htex.w" } -/*:170*//*210:*/ -#line 3978 "htex.w" +/*:169*//*209:*/ +#line 3976 "htex.w" static void delete_token_ref(pointer p) @@ -573,18 +573,19 @@ static void delete_token_ref(pointer p) else decr(token_ref_count(p)); } -/*:210*//*211:*/ -#line 3993 "htex.w" +/*:209*//*210:*/ +#line 3991 "htex.w" void delete_glue_ref(pointer p) fast_delete_glue_ref(p) static void delete_xdimen_ref(pointer p) -{if(xdimen_ref_count(p)==null)free_node(p,xdimen_node_size); +{if(p==null)return; +if(xdimen_ref_count(p)==null)free_node(p,xdimen_node_size); else decr(xdimen_ref_count(p)); } -/*:211*//*212:*/ -#line 4006 "htex.w" +/*:210*//*211:*/ +#line 4005 "htex.w" void flush_node_list(pointer p) { @@ -604,19 +605,19 @@ case ins_node:{flush_node_list(ins_ptr(p)); delete_glue_ref(split_top_ptr(p)); free_node(p,ins_node_size);goto done; } -case whatsit_node:/*1388:*/ -#line 25389 "htex.w" +case whatsit_node:/*1387:*/ +#line 25382 "htex.w" {switch(subtype(p)){ case close_node:case language_node:free_node(p,small_node_size);break; +case param_node: +if(param_type(p)==glue_type)fast_delete_glue_ref(param_value(p).i); +free_node(p,param_node_size);break; case par_node: -if(par_type(p)==glue_type)fast_delete_glue_ref(par_value(p).i); +delete_xdimen_ref(par_extent(p)); +flush_node_list(par_params(p)); +flush_node_list(par_list(p)); free_node(p,par_node_size);break; -case graf_node: -delete_xdimen_ref(graf_extent(p)); -flush_node_list(graf_params(p)); -flush_node_list(graf_list(p)); -free_node(p,graf_node_size);break; case disp_node: flush_node_list(display_eqno(p)); flush_node_list(display_formula(p)); @@ -633,6 +634,7 @@ delete_xdimen_ref(set_extent(p)); flush_node_list(list_ptr(p)); free_node(p,set_node_size);break; case image_node: +flush_node_list(image_alt(p)); free_node(p,image_node_size);break; case align_node: delete_xdimen_ref(align_extent(p)); @@ -679,8 +681,8 @@ default:confusion("ext3"); goto done; } -/*:1388*/ -#line 4025 "htex.w" +/*:1387*/ +#line 4024 "htex.w" case glue_node:{fast_delete_glue_ref(glue_ptr(p)); if(leader_ptr(p)!=null)flush_node_list(leader_ptr(p)); @@ -700,8 +702,8 @@ p= q; } } -/*:212*//*214:*/ -#line 4069 "htex.w" +/*:211*//*213:*/ +#line 4068 "htex.w" pointer copy_node_list(pointer p) @@ -711,13 +713,13 @@ pointer r; int words; h= get_avail();q= h; while(p!=null) -{/*215:*/ -#line 4085 "htex.w" +{/*214:*/ +#line 4084 "htex.w" words= 1; if(is_char_node(p))r= get_avail(); -else/*216:*/ -#line 4094 "htex.w" +else/*215:*/ +#line 4093 "htex.w" switch(type(p)){ case hlist_node:case vlist_node:case unset_node:{r= get_node(box_node_size); @@ -732,8 +734,8 @@ add_glue_ref(split_top_ptr(p)); ins_ptr(r)= copy_node_list(ins_ptr(p)); words= ins_node_size-1; }break; -case whatsit_node:/*1387:*/ -#line 25271 "htex.w" +case whatsit_node:/*1386:*/ +#line 25264 "htex.w" switch(subtype(p)){ case open_node:{r= get_node(open_node_size);words= open_node_size; @@ -744,17 +746,17 @@ add_token_ref(write_tokens(p));words= write_node_size; case close_node:case language_node:{r= get_node(small_node_size); words= small_node_size; }break; +case param_node: +{r= get_node(param_node_size); +if(param_type(p)==glue_type)add_glue_ref(param_value(p).i); +words= param_node_size; +}break; case par_node: {r= get_node(par_node_size); -if(par_type(p)==glue_type)add_glue_ref(par_value(p).i); -words= par_node_size; -}break; -case graf_node: -{r= get_node(graf_node_size); -add_xdimen_ref(graf_extent(p)); -graf_params(r)= copy_node_list(graf_params(p)); -graf_list(r)= copy_node_list(graf_list(p)); -words= graf_node_size-1; +add_xdimen_ref(par_extent(p)); +par_params(r)= copy_node_list(par_params(p)); +par_list(r)= copy_node_list(par_list(p)); +words= par_node_size-1; }break; case disp_node: {r= get_node(disp_node_size); @@ -771,22 +773,22 @@ words= baseline_node_size; }break; case hpack_node:case vpack_node: {r= get_node(pack_node_size); -pack_m(r)= pack_m(p); +mem[r+7]= mem[p+7];mem[r+6]= mem[p+6];mem[r+5]= mem[p+5]; list_ptr(r)= copy_node_list(list_ptr(p)); add_xdimen_ref(pack_extent(p)); -pack_limit(r)= pack_limit(p); -words= pack_node_size-3; +words= 5; }break; case hset_node:case vset_node: {r= get_node(set_node_size); mem[r+8]= mem[p+8];mem[r+7]= mem[p+7];mem[r+6]= mem[p+6];mem[r+5]= mem[p+5]; -add_xdimen_ref(set_extent(p)); list_ptr(r)= copy_node_list(list_ptr(p)); +add_xdimen_ref(set_extent(p)); words= 5; }break; case image_node: r= get_node(image_node_size); -words= image_node_size; +image_alt(r)= copy_node_list(image_alt(p)); +words= image_node_size-1; break; case align_node: {r= get_node(align_node_size); @@ -852,8 +854,8 @@ default:confusion("ext2"); } -/*:1387*/ -#line 4109 "htex.w" +/*:1386*/ +#line 4108 "htex.w" break; case glue_node:{r= get_node(small_node_size);add_glue_ref(glue_ptr(p)); glue_ptr(r)= glue_ptr(p);leader_ptr(r)= copy_node_list(leader_ptr(p)); @@ -879,15 +881,15 @@ default:confusion("copying"); } -/*:216*/ -#line 4089 "htex.w" +/*:215*/ +#line 4088 "htex.w" ; while(words> 0) {decr(words);mem[r+words]= mem[p+words]; } -/*:215*/ -#line 4078 "htex.w" +/*:214*/ +#line 4077 "htex.w" ; link(q)= r;q= r;p= link(p); } @@ -895,20 +897,20 @@ link(q)= null;q= link(h);free_avail(h); return q; } -/*:214*//*225:*/ -#line 4459 "htex.w" +/*:213*//*224:*/ +#line 4458 "htex.w" -/*223:*/ -#line 4440 "htex.w" +/*222:*/ +#line 4439 "htex.w" static list_state_record nest[nest_size+1]; int nest_ptr; static int max_nest_stack; list_state_record cur_list; -/*:223*/ -#line 4461 "htex.w" +/*:222*/ +#line 4460 "htex.w" void list_init(void) @@ -918,8 +920,8 @@ memset(&cur_list,0,sizeof(cur_list)); mode= vmode;head= contrib_head;tail= contrib_head; prev_height= prev_depth= ignore_depth; } -/*:225*//*227:*/ -#line 4479 "htex.w" +/*:224*//*226:*/ +#line 4478 "htex.w" void push_nest(void) {if(nest_ptr> max_nest_stack) @@ -932,15 +934,15 @@ incr(nest_ptr);head= get_avail();tail= head;prev_graf= 0; cur_list.bs_pos= NULL;cur_bs= baseline_skip;cur_ls= line_skip;cur_lsl= line_skip_limit; } -/*:227*//*228:*/ -#line 4496 "htex.w" +/*:226*//*227:*/ +#line 4495 "htex.w" void pop_nest(void) {free_avail(head);decr(nest_ptr);cur_list= nest[nest_ptr]; } -/*:228*//*561:*/ -#line 10872 "htex.w" +/*:227*//*560:*/ +#line 10871 "htex.w" memory_word font_info[font_mem_size+1]; @@ -990,8 +992,8 @@ static int16_t font_false_bchar0[font_max-font_base+1], *const font_false_bchar= font_false_bchar0-font_base; -/*:561*//*562:*/ -#line 10930 "htex.w" +/*:560*//*561:*/ +#line 10929 "htex.w" int char_base0[font_max-font_base+1], *const char_base= char_base0-font_base; @@ -1021,8 +1023,8 @@ static int param_base0[font_max-font_base+1], *const param_base= param_base0-font_base; -/*:562*//*572:*/ -#line 11085 "htex.w" +/*:561*//*571:*/ +#line 11084 "htex.w" void read_font_info(int f,char*nom,scaled s) { @@ -1037,19 +1039,19 @@ int bchar; scaled z; int alpha;int beta; -/*574:*/ -#line 11134 "htex.w" +/*573:*/ +#line 11133 "htex.w" -/*575:*/ -#line 11146 "htex.w" +/*574:*/ +#line 11145 "htex.w" file_opened= true -/*:575*/ -#line 11135 "htex.w" +/*:574*/ +#line 11134 "htex.w" ; -/*577:*/ -#line 11170 "htex.w" +/*576:*/ +#line 11169 "htex.w" {read_sixteen(lf); fget;read_sixteen(lh); @@ -1071,11 +1073,11 @@ if(lf!=6+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ne+np)abort; if((nw==0)||(nh==0)||(nd==0)||(ni==0))abort; } -/*:577*/ -#line 11136 "htex.w" +/*:576*/ +#line 11135 "htex.w" ; -/*578:*/ -#line 11197 "htex.w" +/*577:*/ +#line 11196 "htex.w" lf= lf-6-lh; if(np<7)lf= lf+7-np; @@ -1091,11 +1093,11 @@ kern_base[f]= lig_kern_base[f]+nl-kern_base_offset; exten_base[f]= kern_base[f]+kern_base_offset+nk; param_base[f]= exten_base[f]+ne -/*:578*/ -#line 11137 "htex.w" +/*:577*/ +#line 11136 "htex.w" ; -/*580:*/ -#line 11225 "htex.w" +/*579:*/ +#line 11224 "htex.w" {if(lh<2)abort; store_four_quarters(font_check[f]); @@ -1112,11 +1114,11 @@ else z= xn_over_d(z,-s,1000); font_size[f]= z; } -/*:580*/ -#line 11138 "htex.w" +/*:579*/ +#line 11137 "htex.w" ; -/*581:*/ -#line 11241 "htex.w" +/*580:*/ +#line 11240 "htex.w" for(k= fmem_ptr;k<=width_base[f]-1;k++) {store_four_quarters(font_info[k].qqqq); @@ -1125,8 +1127,8 @@ if((a>=nw)||(b/020>=nh)||(b%020>=nd)|| switch(c%4){ case lig_tag:if(d>=nl)abort;break; case ext_tag:if(d>=ne)abort;break; -case list_tag:/*582:*/ -#line 11262 "htex.w" +case list_tag:/*581:*/ +#line 11261 "htex.w" {check_byte_range(d); while(d<current_character_being_worked_on) @@ -1138,21 +1140,21 @@ d= qo(rem_byte(qw)); if(d==current_character_being_worked_on)abort; not_found:;} -/*:582*/ -#line 11249 "htex.w" +/*:581*/ +#line 11248 "htex.w" break; default:do_nothing; } } -/*:581*/ -#line 11139 "htex.w" +/*:580*/ +#line 11138 "htex.w" ; -/*583:*/ -#line 11297 "htex.w" +/*582:*/ +#line 11296 "htex.w" -{/*584:*/ -#line 11307 "htex.w" +{/*583:*/ +#line 11306 "htex.w" {alpha= 16; while(z>=040000000) @@ -1161,8 +1163,8 @@ while(z>=040000000) beta= 256/alpha;alpha= alpha*z; } -/*:584*/ -#line 11298 "htex.w" +/*:583*/ +#line 11297 "htex.w" ; for(k= width_base[f];k<=lig_kern_base[f]-1;k++) store_scaled(font_info[k].sc); @@ -1172,11 +1174,11 @@ if(font_info[depth_base[f]].sc!=0)abort; if(font_info[italic_base[f]].sc!=0)abort; } -/*:583*/ -#line 11140 "htex.w" +/*:582*/ +#line 11139 "htex.w" ; -/*585:*/ -#line 11321 "htex.w" +/*584:*/ +#line 11320 "htex.w" bch_label= 077777;bchar= 256; if(nl> 0) @@ -1197,11 +1199,11 @@ if(a==255)bch_label= 256*c+d; for(k= kern_base[f]+kern_base_offset;k<=exten_base[f]-1;k++) store_scaled(font_info[k].sc); -/*:585*/ -#line 11141 "htex.w" +/*:584*/ +#line 11140 "htex.w" ; -/*586:*/ -#line 11341 "htex.w" +/*585:*/ +#line 11340 "htex.w" for(k= exten_base[f];k<=param_base[f]-1;k++) {store_four_quarters(font_info[k].qqqq); @@ -1211,11 +1213,11 @@ if(c!=0)check_existence(c); check_existence(d); } -/*:586*/ -#line 11142 "htex.w" +/*:585*/ +#line 11141 "htex.w" ; -/*587:*/ -#line 11353 "htex.w" +/*586:*/ +#line 11352 "htex.w" {for(k= 1;k<=np;k++) if(k==1) @@ -1229,11 +1231,11 @@ if(hpos>=hend)abort; for(k= np+1;k<=7;k++)font_info[param_base[f]+k-1].sc= 0; } -/*:587*/ -#line 11143 "htex.w" +/*:586*/ +#line 11142 "htex.w" ; -/*588:*/ -#line 11373 "htex.w" +/*587:*/ +#line 11372 "htex.w" if(np>=7)font_params[f]= np;else font_params[f]= 7; hyphen_char[f]= skew_char[f]= -1; @@ -1252,19 +1254,19 @@ adjust(kern_base);adjust(exten_base); decr(param_base[f]); fmem_ptr= fmem_ptr+lf;goto done -/*:588*/ -#line 11144 "htex.w" +/*:587*/ +#line 11143 "htex.w" -/*:574*/ -#line 11101 "htex.w" +/*:573*/ +#line 11100 "htex.w" ; bad_tfm:QUIT("Bad tfm file: %s\n",nom); done:; } -/*:572*//*594:*/ -#line 11476 "htex.w" +/*:571*//*593:*/ +#line 11475 "htex.w" pointer new_character(internal_font_number f,eight_bits c) {pointer p; @@ -1276,8 +1278,8 @@ p= get_avail();font(p)= f;character(p)= qi(c); return p; } -/*:594*//*663:*/ -#line 13077 "htex.w" +/*:593*//*662:*/ +#line 13076 "htex.w" pointer hpack(pointer p,scaled w,small_number m) { @@ -1293,8 +1295,8 @@ eight_bits hd; r= get_node(box_node_size);type(r)= hlist_node; subtype(r)= min_quarterword;shift_amount(r)= 0; q= r+list_offset;link(q)= p; -h= 0;/*664:*/ -#line 13103 "htex.w" +h= 0;/*663:*/ +#line 13102 "htex.w" d= 0;x= 0; total_stretch[normal]= 0;total_shrink[normal]= 0; @@ -1302,16 +1304,16 @@ total_stretch[fil]= 0;total_shrink[fil]= 0; total_stretch[fill]= 0;total_shrink[fill]= 0; total_stretch[filll]= 0;total_shrink[filll]= 0 -/*:664*/ -#line 13092 "htex.w" +/*:663*/ +#line 13091 "htex.w" ; -while(p!=null)/*665:*/ -#line 13110 "htex.w" +while(p!=null)/*664:*/ +#line 13109 "htex.w" {reswitch:while(is_char_node(p)) -/*668:*/ -#line 13155 "htex.w" +/*667:*/ +#line 13154 "htex.w" {f= font(p);i= char_info(f,character(p));hd= height_depth(i); x= x+char_width(f,i); @@ -1320,15 +1322,15 @@ s= char_depth(f,hd);if(s> d)d= s; p= link(p); } -/*:668*/ -#line 13114 "htex.w" +/*:667*/ +#line 13113 "htex.w" ; if(p!=null) {switch(type(p)){ case hlist_node:case vlist_node:case rule_node: case unset_node: -/*667:*/ -#line 13143 "htex.w" +/*666:*/ +#line 13142 "htex.w" {x= x+width(p); if(type(p)>=rule_node)s= 0;else s= shift_amount(p); @@ -1336,12 +1338,12 @@ if(height(p)-s> h)h= height(p)-s; if(depth(p)+s> d)d= depth(p)+s; } -/*:667*/ -#line 13120 "htex.w" +/*:666*/ +#line 13119 "htex.w" break; case ins_node:case mark_node:case adjust_node:if(adjust_tail!=null) -/*669:*/ -#line 13170 "htex.w" +/*668:*/ +#line 13169 "htex.w" {while(link(q)!=p)q= link(q); if(type(p)==adjust_node) @@ -1354,25 +1356,22 @@ else{link(adjust_tail)= p;adjust_tail= p;p= link(p); link(q)= p;p= q; } -/*:669*/ -#line 13122 "htex.w" +/*:668*/ +#line 13121 "htex.w" break; -case whatsit_node:/*1390:*/ -#line 25471 "htex.w" +case whatsit_node:/*1389:*/ +#line 25462 "htex.w" if(subtype(p)==image_node) -{glue_ord o; -if(image_height(p)> h)h= image_height(p); +{if(image_height(p)> h)h= image_height(p); x= x+image_width(p); -o= image_stretch_order(p);total_stretch[o]= total_stretch[o]+image_stretch(p); -o= image_shrink_order(p);total_shrink[o]= total_shrink[o]+image_shrink(p); } -/*:1390*/ -#line 13123 "htex.w" +/*:1389*/ +#line 13122 "htex.w" ;break; -case glue_node:/*670:*/ -#line 13182 "htex.w" +case glue_node:/*669:*/ +#line 13181 "htex.w" {g= glue_ptr(p);x= x+width(g); o= stretch_order(g);total_stretch[o]= total_stretch[o]+stretch(g); @@ -1384,19 +1383,19 @@ if(depth(g)> d)d= depth(g); } } -/*:670*/ -#line 13124 "htex.w" +/*:669*/ +#line 13123 "htex.w" break; case kern_node:case math_node:x= x+width(p);break; -case ligature_node:/*666:*/ -#line 13134 "htex.w" +case ligature_node:/*665:*/ +#line 13133 "htex.w" {mem[lig_trick]= mem[lig_char(p)];link(lig_trick)= link(p); p= lig_trick;goto reswitch; } -/*:666*/ -#line 13126 "htex.w" +/*:665*/ +#line 13125 "htex.w" default:do_nothing; } @@ -1405,13 +1404,13 @@ p= link(p); } -/*:665*/ -#line 13095 "htex.w" +/*:664*/ +#line 13094 "htex.w" ; if(adjust_tail!=null)link(adjust_tail)= null; height(r)= h;depth(r)= d; -/*671:*/ -#line 13196 "htex.w" +/*670:*/ +#line 13195 "htex.w" if(m==additional)w= x+w; width(r)= w;x= w-x; @@ -1420,19 +1419,19 @@ if(x==0) set_glue_ratio_zero(glue_set(r)); goto end; } -else if(x> 0)/*672:*/ -#line 13209 "htex.w" +else if(x> 0)/*671:*/ +#line 13208 "htex.w" -{/*673:*/ -#line 13220 "htex.w" +{/*672:*/ +#line 13219 "htex.w" if(total_stretch[filll]!=0)o= filll; else if(total_stretch[fill]!=0)o= fill; else if(total_stretch[fil]!=0)o= fil; else o= normal -/*:673*/ -#line 13210 "htex.w" +/*:672*/ +#line 13209 "htex.w" ; glue_order(r)= o;glue_sign(r)= stretching; if(total_stretch[o]!=0)glue_set(r)= unfloat(x/(double)total_stretch[o]); @@ -1443,22 +1442,22 @@ set_glue_ratio_zero(glue_set(r)); goto end; } -/*:672*/ -#line 13205 "htex.w" +/*:671*/ +#line 13204 "htex.w" -else/*678:*/ -#line 13265 "htex.w" +else/*677:*/ +#line 13264 "htex.w" -{/*679:*/ -#line 13278 "htex.w" +{/*678:*/ +#line 13277 "htex.w" if(total_shrink[filll]!=0)o= filll; else if(total_shrink[fill]!=0)o= fill; else if(total_shrink[fil]!=0)o= fil; else o= normal -/*:679*/ -#line 13266 "htex.w" +/*:678*/ +#line 13265 "htex.w" ; glue_order(r)= o;glue_sign(r)= shrinking; if(total_shrink[o]!=0)glue_set(r)= unfloat((-x)/(double)total_shrink[o]); @@ -1471,18 +1470,18 @@ set_glue_ratio_one(glue_set(r)); goto end; } -/*:678*/ -#line 13207 "htex.w" +/*:677*/ +#line 13206 "htex.w" -/*:671*/ -#line 13099 "htex.w" +/*:670*/ +#line 13098 "htex.w" ; end:return r; } -/*:663*//*683:*/ -#line 13318 "htex.w" +/*:662*//*682:*/ +#line 13317 "htex.w" pointer vpackage(pointer p,scaled h,small_number m,scaled l) { @@ -1494,8 +1493,8 @@ glue_ord o; r= get_node(box_node_size);type(r)= vlist_node; subtype(r)= min_quarterword;shift_amount(r)= 0; list_ptr(r)= p; -w= 0;/*664:*/ -#line 13103 "htex.w" +w= 0;/*663:*/ +#line 13102 "htex.w" d= 0;x= 0; total_stretch[normal]= 0;total_shrink[normal]= 0; @@ -1503,44 +1502,41 @@ total_stretch[fil]= 0;total_shrink[fil]= 0; total_stretch[fill]= 0;total_shrink[fill]= 0; total_stretch[filll]= 0;total_shrink[filll]= 0 -/*:664*/ -#line 13329 "htex.w" +/*:663*/ +#line 13328 "htex.w" ; -while(p!=null)/*684:*/ -#line 13342 "htex.w" +while(p!=null)/*683:*/ +#line 13341 "htex.w" {if(is_char_node(p))confusion("vpack"); else switch(type(p)){ case hlist_node:case vlist_node:case rule_node: case unset_node: -/*685:*/ -#line 13359 "htex.w" +/*684:*/ +#line 13358 "htex.w" {x= x+d+height(p);d= depth(p); if(type(p)>=rule_node)s= 0;else s= shift_amount(p); if(width(p)+s> w)w= width(p)+s; } -/*:685*/ -#line 13349 "htex.w" +/*:684*/ +#line 13348 "htex.w" break; -case whatsit_node:/*1389:*/ -#line 25462 "htex.w" +case whatsit_node:/*1388:*/ +#line 25456 "htex.w" if(subtype(p)==image_node) -{glue_ord o; -if(image_width(p)> w)w= image_width(p); +{if(image_width(p)> w)w= image_width(p); x= x+d+image_height(p);d= 0; -o= image_stretch_order(p);total_stretch[o]= total_stretch[o]+image_stretch(p); -o= image_shrink_order(p);total_shrink[o]= total_shrink[o]+image_shrink(p); } -/*:1389*/ -#line 13350 "htex.w" +/*:1388*/ +#line 13349 "htex.w" ;break; -case glue_node:/*686:*/ -#line 13365 "htex.w" +case glue_node:/*685:*/ +#line 13364 "htex.w" {x= x+d;d= 0; g= glue_ptr(p);x= x+width(g); @@ -1552,8 +1548,8 @@ if(width(g)> w)w= width(g); } } -/*:686*/ -#line 13351 "htex.w" +/*:685*/ +#line 13350 "htex.w" break; case kern_node:{x= x+d+width(p);d= 0; }break; @@ -1562,16 +1558,16 @@ default:do_nothing; p= link(p); } -/*:684*/ -#line 13331 "htex.w" +/*:683*/ +#line 13330 "htex.w" ; width(r)= w; if(d> l) {x= x+d-l;depth(r)= l; } else depth(r)= d; -/*687:*/ -#line 13379 "htex.w" +/*686:*/ +#line 13378 "htex.w" if(m==additional)h= x+h; height(r)= h;x= h-x; @@ -1580,19 +1576,19 @@ if(x==0) set_glue_ratio_zero(glue_set(r)); goto end; } -else if(x> 0)/*688:*/ -#line 13392 "htex.w" +else if(x> 0)/*687:*/ +#line 13391 "htex.w" -{/*673:*/ -#line 13220 "htex.w" +{/*672:*/ +#line 13219 "htex.w" if(total_stretch[filll]!=0)o= filll; else if(total_stretch[fill]!=0)o= fill; else if(total_stretch[fil]!=0)o= fil; else o= normal -/*:673*/ -#line 13393 "htex.w" +/*:672*/ +#line 13392 "htex.w" ; glue_order(r)= o;glue_sign(r)= stretching; if(total_stretch[o]!=0)glue_set(r)= unfloat(x/(double)total_stretch[o]); @@ -1603,22 +1599,22 @@ set_glue_ratio_zero(glue_set(r)); goto end; } -/*:688*/ -#line 13388 "htex.w" +/*:687*/ +#line 13387 "htex.w" -else/*691:*/ -#line 13428 "htex.w" +else/*690:*/ +#line 13427 "htex.w" -{/*679:*/ -#line 13278 "htex.w" +{/*678:*/ +#line 13277 "htex.w" if(total_shrink[filll]!=0)o= filll; else if(total_shrink[fill]!=0)o= fill; else if(total_shrink[fil]!=0)o= fil; else o= normal -/*:679*/ -#line 13429 "htex.w" +/*:678*/ +#line 13428 "htex.w" ; glue_order(r)= o;glue_sign(r)= shrinking; if(total_shrink[o]!=0)glue_set(r)= unfloat((-x)/(double)total_shrink[o]); @@ -1631,22 +1627,22 @@ set_glue_ratio_one(glue_set(r)); goto end; } -/*:691*/ -#line 13390 "htex.w" +/*:690*/ +#line 13389 "htex.w" -/*:687*/ -#line 13338 "htex.w" +/*:686*/ +#line 13337 "htex.w" ; end:return r; } -/*:683*//*831:*/ -#line 16203 "htex.w" +/*:682*//*830:*/ +#line 16202 "htex.w" -/*694:*/ -#line 13461 "htex.w" +/*693:*/ +#line 13460 "htex.w" extern pointer happend_to_vlist(pointer b); void append_to_vlist(pointer b,uint32_t offset) @@ -1665,8 +1661,8 @@ link(tail)= p;tail= p; link(tail)= b;tail= b;prev_depth= depth(b); } -/*:694*//*845:*/ -#line 16434 "htex.w" +/*:693*//*844:*/ +#line 16433 "htex.w" static pointer finite_shrink(pointer p) {pointer q; @@ -1675,8 +1671,8 @@ q= new_spec(p);shrink_order(q)= normal; delete_glue_ref(p);return q; } -/*:845*//*849:*/ -#line 16497 "htex.w" +/*:844*//*848:*/ +#line 16496 "htex.w" static void try_break(int pi,small_number break_type) { @@ -1684,8 +1680,8 @@ pointer r; pointer prev_r; halfword old_l; bool no_break_yet; -/*850:*/ -#line 16525 "htex.w" +/*849:*/ +#line 16524 "htex.w" pointer prev_prev_r; pointer s; @@ -1705,24 +1701,24 @@ pointer save_link; #endif scaled shortfall; -/*:850*/ -#line 16504 "htex.w" +/*:849*/ +#line 16503 "htex.w" -/*851:*/ -#line 16544 "htex.w" +/*850:*/ +#line 16543 "htex.w" if(abs(pi)>=inf_penalty) if(pi> 0)goto end; else pi= eject_penalty -/*:851*/ -#line 16505 "htex.w" +/*:850*/ +#line 16504 "htex.w" ; no_break_yet= true;prev_r= active;old_l= 0; do_all_six(copy_to_cur_active); loop{resume:r= link(prev_r); -/*852:*/ -#line 16554 "htex.w" +/*851:*/ +#line 16553 "htex.w" if(type(r)==delta_node) @@ -1730,34 +1726,34 @@ if(type(r)==delta_node) prev_prev_r= prev_r;prev_r= r;goto resume; } -/*:852*/ -#line 16510 "htex.w" +/*:851*/ +#line 16509 "htex.w" ; -/*856:*/ -#line 16603 "htex.w" +/*855:*/ +#line 16602 "htex.w" {l= line_number(r); if(l> old_l) { if((minimum_demerits<awful_bad)&& ((old_l!=easy_line)||(r==last_active))) -/*857:*/ -#line 16621 "htex.w" +/*856:*/ +#line 16620 "htex.w" -{if(no_break_yet)/*858:*/ -#line 16657 "htex.w" +{if(no_break_yet)/*857:*/ +#line 16656 "htex.w" {no_break_yet= false;do_all_six(set_break_width_to_background); s= cur_p; if(break_type> unhyphenated)if(cur_p!=null) -/*862:*/ -#line 16701 "htex.w" +/*861:*/ +#line 16700 "htex.w" {t= replace_count(cur_p);v= cur_p;s= post_break(cur_p); while(t> 0) {decr(t);v= link(v); -/*863:*/ -#line 16719 "htex.w" +/*862:*/ +#line 16718 "htex.w" if(is_char_node(v)) {f= font(v); @@ -1775,13 +1771,13 @@ default:confusion("disc1"); } -/*:863*/ -#line 16705 "htex.w" +/*:862*/ +#line 16704 "htex.w" ; } while(s!=null) -{/*864:*/ -#line 16736 "htex.w" +{/*863:*/ +#line 16735 "htex.w" if(is_char_node(s)) {f= font(s); @@ -1799,8 +1795,8 @@ default:confusion("disc2"); } -/*:864*/ -#line 16708 "htex.w" +/*:863*/ +#line 16707 "htex.w" ; s= link(s); } @@ -1809,22 +1805,22 @@ if(post_break(cur_p)==null)s= link(v); } -/*:862*/ -#line 16661 "htex.w" +/*:861*/ +#line 16660 "htex.w" ; while(s!=null) {if(is_char_node(s))goto done; switch(type(s)){ -case glue_node:/*859:*/ -#line 16676 "htex.w" +case glue_node:/*858:*/ +#line 16675 "htex.w" {v= glue_ptr(s);break_width[1]= break_width[1]-width(v); break_width[2+stretch_order(v)]= break_width[2+stretch_order(v)]-stretch(v); break_width[6]= break_width[6]-shrink(v); } -/*:859*/ -#line 16665 "htex.w" +/*:858*/ +#line 16664 "htex.w" break; case penalty_node:do_nothing;break; case math_node:break_width[1]= break_width[1]-width(s);break; @@ -1836,11 +1832,11 @@ s= link(s); } done:;} -/*:858*/ -#line 16622 "htex.w" +/*:857*/ +#line 16621 "htex.w" ; -/*865:*/ -#line 16762 "htex.w" +/*864:*/ +#line 16761 "htex.w" if(type(prev_r)==delta_node) {do_all_six(convert_to_break_width); @@ -1854,16 +1850,16 @@ do_all_six(new_delta_to_break_width); link(prev_r)= q;prev_prev_r= prev_r;prev_r= q; } -/*:865*/ -#line 16623 "htex.w" +/*:864*/ +#line 16622 "htex.w" ; if(abs(adj_demerits)>=awful_bad-minimum_demerits) minimum_demerits= awful_bad-1; else minimum_demerits= minimum_demerits+abs(adj_demerits); for(fit_class= very_loose_fit;fit_class<=tight_fit;fit_class++) {if(minimal_demerits[fit_class]<=minimum_demerits) -/*867:*/ -#line 16792 "htex.w" +/*866:*/ +#line 16791 "htex.w" {q= get_node(passive_node_size); link(q)= passive;passive= q;cur_break(q)= cur_p; @@ -1879,8 +1875,8 @@ total_demerits(q)= minimal_demerits[fit_class]; link(q)= r;link(prev_r)= q;prev_r= q; #ifdef STAT if(tracing_paragraphs> 0) -/*868:*/ -#line 16812 "htex.w" +/*867:*/ +#line 16811 "htex.w" {print_nl("@@");print_int(serial(passive)); @@ -1893,21 +1889,21 @@ if(prev_break(passive)==null)print_char('0'); else print_int(serial(prev_break(passive))); } -/*:868*/ -#line 16807 "htex.w" +/*:867*/ +#line 16806 "htex.w" ; #endif } -/*:867*/ -#line 16629 "htex.w" +/*:866*/ +#line 16628 "htex.w" ; minimal_demerits[fit_class]= awful_bad; } minimum_demerits= awful_bad; -/*866:*/ -#line 16781 "htex.w" +/*865:*/ +#line 16780 "htex.w" if(r!=last_active) {q= get_node(delta_node_size);link(q)= r;type(q)= delta_node; @@ -1916,17 +1912,17 @@ do_all_six(new_delta_from_break_width); link(prev_r)= q;prev_prev_r= prev_r;prev_r= q; } -/*:866*/ -#line 16633 "htex.w" +/*:865*/ +#line 16632 "htex.w" ; } -/*:857*/ -#line 16609 "htex.w" +/*:856*/ +#line 16608 "htex.w" ; if(r==last_active)goto end; -/*873:*/ -#line 16886 "htex.w" +/*872:*/ +#line 16885 "htex.w" if(l> easy_line) {line_width= second_width;old_l= max_halfword-1; @@ -1937,24 +1933,24 @@ else if(par_shape_ptr==null)line_width= first_width; else line_width= mem[par_shape_ptr+2*l].sc; } -/*:873*/ -#line 16611 "htex.w" +/*:872*/ +#line 16610 "htex.w" ; } } -/*:856*/ -#line 16513 "htex.w" +/*:855*/ +#line 16512 "htex.w" ; -/*874:*/ -#line 16906 "htex.w" +/*873:*/ +#line 16905 "htex.w" {artificial_demerits= false; shortfall= line_width-cur_active_width[1]; if(shortfall> 0) -/*875:*/ -#line 16936 "htex.w" +/*874:*/ +#line 16935 "htex.w" if((cur_active_width[3]!=0)||(cur_active_width[4]!=0)|| (cur_active_width[5]!=0)) @@ -1971,23 +1967,23 @@ else fit_class= decent_fit; done1:; } -/*:875*/ -#line 16912 "htex.w" +/*:874*/ +#line 16911 "htex.w" -else/*876:*/ -#line 16955 "htex.w" +else/*875:*/ +#line 16954 "htex.w" {if(-shortfall> cur_active_width[6])b= inf_bad+1; else b= badness(-shortfall,cur_active_width[6]); if(b> 12)fit_class= tight_fit;else fit_class= decent_fit; } -/*:876*/ -#line 16914 "htex.w" +/*:875*/ +#line 16913 "htex.w" ; if((b> inf_bad)||(pi==eject_penalty)) -/*877:*/ -#line 16970 "htex.w" +/*876:*/ +#line 16969 "htex.w" {if(final_pass&&(minimum_demerits==awful_bad)&& (link(r)==last_active)&& @@ -1997,19 +1993,19 @@ else if(b> threshold)goto deactivate; node_r_stays_active= false; } -/*:877*/ -#line 16917 "htex.w" +/*:876*/ +#line 16916 "htex.w" else{prev_r= r; if(b> threshold)goto resume; node_r_stays_active= true; } -/*878:*/ -#line 16986 "htex.w" +/*877:*/ +#line 16985 "htex.w" if(artificial_demerits)d= 0; -else/*882:*/ -#line 17047 "htex.w" +else/*881:*/ +#line 17046 "htex.w" {d= line_penalty+b; if(abs(d)>=10000)d= 100000000;else d= d*d; @@ -2022,17 +2018,17 @@ else d= d+final_hyphen_demerits; if(abs(fit_class-fitness(r))> 1)d= d+adj_demerits; } -/*:882*/ -#line 16988 "htex.w" +/*:881*/ +#line 16987 "htex.w" ; #ifdef STAT if(tracing_paragraphs> 0) -/*879:*/ -#line 17002 "htex.w" +/*878:*/ +#line 17001 "htex.w" {if(printed_node!=cur_p) -/*880:*/ -#line 17024 "htex.w" +/*879:*/ +#line 17023 "htex.w" {print_nl(""); if(cur_p==null)short_display(link(printed_node)); @@ -2043,8 +2039,8 @@ link(cur_p)= save_link; printed_node= cur_p; } -/*:880*/ -#line 17004 "htex.w" +/*:879*/ +#line 17003 "htex.w" ; print_nl("@"); @@ -2065,8 +2061,8 @@ print(" p=");print_int(pi);print(" d="); if(artificial_demerits)print_char('*');else print_int(d); } -/*:879*/ -#line 16991 "htex.w" +/*:878*/ +#line 16990 "htex.w" ; #endif @@ -2078,16 +2074,16 @@ best_place[fit_class]= break_node(r);best_pl_line[fit_class]= l; if(d<minimum_demerits)minimum_demerits= d; } -/*:878*/ -#line 16922 "htex.w" +/*:877*/ +#line 16921 "htex.w" ; if(node_r_stays_active)goto resume; -deactivate:/*883:*/ -#line 17069 "htex.w" +deactivate:/*882:*/ +#line 17068 "htex.w" link(prev_r)= link(r);free_node(r,active_node_size); -if(prev_r==active)/*884:*/ -#line 17094 "htex.w" +if(prev_r==active)/*883:*/ +#line 17093 "htex.w" {r= link(active); if(type(r)==delta_node) @@ -2097,8 +2093,8 @@ link(active)= link(r);free_node(r,delta_node_size); } } -/*:884*/ -#line 17072 "htex.w" +/*:883*/ +#line 17071 "htex.w" else if(type(prev_r)==delta_node) {r= link(prev_r); @@ -2114,19 +2110,19 @@ link(prev_r)= link(r);free_node(r,delta_node_size); } } -/*:883*/ -#line 16924 "htex.w" +/*:882*/ +#line 16923 "htex.w" ; } -/*:874*/ -#line 16516 "htex.w" +/*:873*/ +#line 16515 "htex.w" ; } end:; #ifdef STAT -/*881:*/ -#line 17039 "htex.w" +/*880:*/ +#line 17038 "htex.w" if(cur_p==printed_node)if(cur_p!=null)if(type(cur_p)==disc_node) {t= replace_count(cur_p); @@ -2135,15 +2131,15 @@ while(t> 0) } } -/*:881*/ -#line 16520 "htex.w" +/*:880*/ +#line 16519 "htex.w" ; #endif } -/*:849*//*901:*/ -#line 17418 "htex.w" +/*:848*//*900:*/ +#line 17417 "htex.w" static void post_line_break(int final_widow_penalty) { @@ -2157,15 +2153,15 @@ scaled cur_indent; quarterword t; int pen; halfword cur_line; -/*902:*/ -#line 17469 "htex.w" +/*901:*/ +#line 17468 "htex.w" q= break_node(best_bet);cur_p= null; do{r= q;q= prev_break(q);next_break(r)= cur_p;cur_p= r; }while(!(q==null)) -/*:902*/ -#line 17432 "htex.w" +/*:901*/ +#line 17431 "htex.w" ; cur_line= prev_graf+1; next_offset= hposition(link(temp_head)); @@ -2185,11 +2181,11 @@ next_offset= next_offset-node_pos; else next_offset= 0; } -/*904:*/ -#line 17506 "htex.w" +/*903:*/ +#line 17505 "htex.w" -/*905:*/ -#line 17518 "htex.w" +/*904:*/ +#line 17517 "htex.w" q= cur_break(cur_p);disc_break= false;post_disc_break= false; if(q!=null) @@ -2200,8 +2196,8 @@ subtype(q)= right_skip_code+1;add_glue_ref(right_skip); goto done; } else{if(type(q)==disc_node) -/*906:*/ -#line 17537 "htex.w" +/*905:*/ +#line 17536 "htex.w" {pointer pre_q= pre_break(q); pointer post_q= post_break(q); @@ -2209,8 +2205,8 @@ t= replace_count(q); type(q)= whatsit_node; subtype(q)= ignore_node; ignore_info(q)= 1; -/*907:*/ -#line 17556 "htex.w" +/*906:*/ +#line 17555 "htex.w" if(t==0){ignore_list(q)= null;r= link(q);} else{r= q; @@ -2222,8 +2218,8 @@ r= link(s);link(s)= null; ignore_list(q)= link(q); } -/*:907*/ -#line 17544 "htex.w" +/*:906*/ +#line 17543 "htex.w" ; s= get_node(ignore_node_size); type(s)= whatsit_node; @@ -2231,54 +2227,54 @@ subtype(s)= ignore_node; ignore_info(s)= 0; ignore_list(s)= null; link(s)= r;r= s; -if(post_q!=null)/*908:*/ -#line 17570 "htex.w" +if(post_q!=null)/*907:*/ +#line 17569 "htex.w" {s= post_q; while(link(s)!=null)s= link(s); link(s)= r;r= post_q;post_disc_break= true; } -/*:908*/ -#line 17551 "htex.w" +/*:907*/ +#line 17550 "htex.w" ; -if(pre_q!=null)/*909:*/ -#line 17579 "htex.w" +if(pre_q!=null)/*908:*/ +#line 17578 "htex.w" {s= pre_q;link(q)= s; while(link(s)!=null)s= link(s); q= s; } -/*:909*/ -#line 17552 "htex.w" +/*:908*/ +#line 17551 "htex.w" ; link(q)= r;disc_break= true; } -/*:906*/ -#line 17528 "htex.w" +/*:905*/ +#line 17527 "htex.w" else if((type(q)==math_node)||(type(q)==kern_node))width(q)= 0; } else{q= temp_head; while(link(q)!=null)q= link(q); } -/*910:*/ -#line 17585 "htex.w" +/*909:*/ +#line 17584 "htex.w" r= new_glue(right_skip);link(r)= link(q);link(q)= r;q= r -/*:910*/ -#line 17534 "htex.w" +/*:909*/ +#line 17533 "htex.w" ; done: -/*:905*/ -#line 17508 "htex.w" +/*:904*/ +#line 17507 "htex.w" ; -/*911:*/ -#line 17592 "htex.w" +/*910:*/ +#line 17591 "htex.w" r= link(q);link(q)= null;q= link(temp_head);link(temp_head)= r; if(left_skip!=zero_glue) @@ -2286,11 +2282,11 @@ if(left_skip!=zero_glue) link(r)= q;q= r; } -/*:911*/ -#line 17509 "htex.w" +/*:910*/ +#line 17508 "htex.w" ; -/*913:*/ -#line 17618 "htex.w" +/*912:*/ +#line 17617 "htex.w" if(cur_line> last_special_line) {cur_width= second_width;cur_indent= second_indent; @@ -2304,11 +2300,11 @@ cur_indent= mem[par_shape_ptr+2*cur_line-1].sc; adjust_tail= adjust_head;just_box= hpack(q,cur_width,exactly); shift_amount(just_box)= cur_indent -/*:913*/ -#line 17510 "htex.w" +/*:912*/ +#line 17509 "htex.w" ; -/*912:*/ -#line 17599 "htex.w" +/*911:*/ +#line 17598 "htex.w" if(first_line) {pointer p= happend_to_vlist(just_box); @@ -2323,11 +2319,11 @@ if(adjust_head!=adjust_tail) } adjust_tail= null -/*:912*/ -#line 17512 "htex.w" +/*:911*/ +#line 17511 "htex.w" ; -/*914:*/ -#line 17638 "htex.w" +/*913:*/ +#line 17637 "htex.w" if(cur_line+1!=best_line) {pen= inter_line_penalty; @@ -2340,17 +2336,17 @@ link(tail)= r;tail= r; } } -/*:914*/ -#line 17513 "htex.w" +/*:913*/ +#line 17512 "htex.w" -/*:904*/ -#line 17452 "htex.w" +/*:903*/ +#line 17451 "htex.w" ; incr(cur_line);cur_p= next_break(cur_p); if(cur_p!=null)if(!post_disc_break) -/*903:*/ -#line 17481 "htex.w" +/*902:*/ +#line 17480 "htex.w" {r= temp_head; loop{q= link(r); @@ -2368,8 +2364,8 @@ link(temp_head)= q; } } -/*:903*/ -#line 17455 "htex.w" +/*:902*/ +#line 17454 "htex.w" ; }while(!(cur_p==null)); if((cur_line!=best_line)||(link(temp_head)!=null)) @@ -2378,44 +2374,44 @@ confusion("line breaking"); prev_graf= best_line-1; } -/*:901*//*919:*/ -#line 17750 "htex.w" +/*:900*//*918:*/ +#line 17749 "htex.w" -/*:919*//*967:*/ -#line 18573 "htex.w" +/*:918*//*966:*/ +#line 18572 "htex.w" #ifdef INIT #endif -/*:967*/ -#line 16205 "htex.w" +/*:966*/ +#line 16204 "htex.w" void line_break(int final_widow_penalty,pointer par_ptr) {scaled x= cur_list.hs_field; -/*885:*/ -#line 17123 "htex.w" +/*884:*/ +#line 17122 "htex.w" bool auto_breaking; pointer prev_p; pointer q,r,s; internal_font_number f; -/*:885*//*917:*/ -#line 17733 "htex.w" +/*:884*//*916:*/ +#line 17732 "htex.w" -/*:917*/ -#line 16209 "htex.w" +/*:916*/ +#line 16208 "htex.w" set_line_break_params(); -/*832:*/ -#line 16230 "htex.w" +/*831:*/ +#line 16229 "htex.w" link(temp_head)= par_ptr; -/*:832*//*846:*/ -#line 16442 "htex.w" +/*:831*//*845:*/ +#line 16441 "htex.w" no_shrink_error_yet= true; check_shrinkage(left_skip);check_shrinkage(right_skip); @@ -2425,8 +2421,8 @@ background[2+stretch_order(q)]= stretch(q); background[2+stretch_order(r)]= background[2+stretch_order(r)]+stretch(r); background[6]= shrink(q)+shrink(r); -/*:846*//*855:*/ -#line 16589 "htex.w" +/*:845*//*854:*/ +#line 16588 "htex.w" minimum_demerits= awful_bad; minimal_demerits[tight_fit]= awful_bad; @@ -2434,16 +2430,16 @@ minimal_demerits[decent_fit]= awful_bad; minimal_demerits[loose_fit]= awful_bad; minimal_demerits[very_loose_fit]= awful_bad; -/*:855*//*871:*/ -#line 16854 "htex.w" +/*:854*//*870:*/ +#line 16853 "htex.w" if(par_shape_ptr==null) if(hang_indent==0) {last_special_line= 0;second_width= x; second_indent= 0; } -else/*872:*/ -#line 16865 "htex.w" +else/*871:*/ +#line 16864 "htex.w" {last_special_line= abs(hang_after); if(hang_after<0) @@ -2459,18 +2455,18 @@ else second_indent= 0; } } -/*:872*/ -#line 16860 "htex.w" +/*:871*/ +#line 16859 "htex.w" else QUIT("parshape not yet implemented"); if(looseness==0)easy_line= last_special_line; else easy_line= max_halfword -/*:871*/ -#line 16211 "htex.w" +/*:870*/ +#line 16210 "htex.w" ; -/*886:*/ -#line 17133 "htex.w" +/*885:*/ +#line 17132 "htex.w" threshold= pretolerance; if(threshold>=0) @@ -2489,8 +2485,8 @@ final_pass= (emergency_stretch<=0); } loop{if(threshold> inf_bad)threshold= inf_bad; -/*887:*/ -#line 17186 "htex.w" +/*886:*/ +#line 17185 "htex.w" q= get_node(active_node_size); type(q)= unhyphenated;fitness(q)= decent_fit; @@ -2499,18 +2495,18 @@ line_number(q)= prev_graf+1;total_demerits(q)= 0;link(active)= q; do_all_six(store_background); passive= null;printed_node= temp_head;pass_number= 0; -/*:887*/ -#line 17151 "htex.w" +/*:886*/ +#line 17150 "htex.w" ; cur_p= link(temp_head);auto_breaking= true; prev_p= cur_p; while((cur_p!=null)&&(link(active)!=last_active)) -/*889:*/ -#line 17221 "htex.w" +/*888:*/ +#line 17220 "htex.w" {if(is_char_node(cur_p)) -/*890:*/ -#line 17255 "htex.w" +/*889:*/ +#line 17254 "htex.w" {prev_p= cur_p; do{f= font(cur_p); @@ -2519,21 +2515,21 @@ cur_p= link(cur_p); }while(!(!is_char_node(cur_p))); } -/*:890*/ -#line 17223 "htex.w" +/*:889*/ +#line 17222 "htex.w" ; switch(type(cur_p)){ case hlist_node:case vlist_node:case rule_node:act_width= act_width+width(cur_p);break; -case whatsit_node:/*1392:*/ -#line 25484 "htex.w" +case whatsit_node:/*1391:*/ +#line 25472 "htex.w" adv_past(cur_p) -/*:1392*/ -#line 17227 "htex.w" +/*:1391*/ +#line 17226 "htex.w" break; -case glue_node:{/*891:*/ -#line 17266 "htex.w" +case glue_node:{/*890:*/ +#line 17265 "htex.w" if(auto_breaking) {if(is_char_node(prev_p))try_break(0,unhyphenated); @@ -2547,8 +2543,8 @@ active_width[2+stretch_order(q)]= active_width[2+stretch_order(q)]+stretch(q); active_width[6]= active_width[6]+shrink(q) -/*:891*/ -#line 17229 "htex.w" +/*:890*/ +#line 17228 "htex.w" ; }break; case kern_node:if(subtype(cur_p)==explicit)kern_break @@ -2556,14 +2552,14 @@ else act_width= act_width+width(cur_p);break; case ligature_node:{f= font(lig_char(cur_p)); act_width= act_width+char_width(f,char_info(f,character(lig_char(cur_p)))); }break; -case disc_node:/*892:*/ -#line 17282 "htex.w" +case disc_node:/*891:*/ +#line 17281 "htex.w" {if(!is_auto_disc(cur_p)||second_pass||final_pass) {s= pre_break(cur_p);disc_width= 0; if(s==null)try_break(ex_hyphen_penalty,hyphenated); -else{do{/*893:*/ -#line 17302 "htex.w" +else{do{/*892:*/ +#line 17301 "htex.w" if(is_char_node(s)) {f= font(s); @@ -2581,8 +2577,8 @@ default:confusion("disc3"); } -/*:893*/ -#line 17286 "htex.w" +/*:892*/ +#line 17285 "htex.w" ; s= link(s); }while(!(s==null)); @@ -2593,8 +2589,8 @@ act_width= act_width-disc_width; } r= replace_count(cur_p);s= link(cur_p); while(r> 0) -{/*894:*/ -#line 17319 "htex.w" +{/*893:*/ +#line 17318 "htex.w" if(is_char_node(s)) {f= font(s); @@ -2612,16 +2608,16 @@ default:confusion("disc4"); } -/*:894*/ -#line 17296 "htex.w" +/*:893*/ +#line 17295 "htex.w" ; decr(r);s= link(s); } prev_p= cur_p;cur_p= s;goto done5; } -/*:892*/ -#line 17237 "htex.w" +/*:891*/ +#line 17236 "htex.w" case math_node:{auto_breaking= (subtype(cur_p)==after);kern_break; }break; @@ -2633,17 +2629,17 @@ default:confusion("paragraph"); prev_p= cur_p;cur_p= link(cur_p); done5:;} -/*:889*/ -#line 17157 "htex.w" +/*:888*/ +#line 17156 "htex.w" ; if(cur_p==null) -/*897:*/ -#line 17356 "htex.w" +/*896:*/ +#line 17355 "htex.w" {try_break(eject_penalty,hyphenated); if(link(active)!=last_active) -{/*898:*/ -#line 17366 "htex.w" +{/*897:*/ +#line 17365 "htex.w" r= link(active);fewest_demerits= awful_bad; do{if(type(r)!=delta_node)if(total_demerits(r)<fewest_demerits) @@ -2653,12 +2649,12 @@ r= link(r); }while(!(r==last_active)); best_line= line_number(best_bet) -/*:898*/ -#line 17359 "htex.w" +/*:897*/ +#line 17358 "htex.w" ; if(looseness==0)goto done; -/*899:*/ -#line 17380 "htex.w" +/*898:*/ +#line 17379 "htex.w" {r= link(active);actual_looseness= 0; do{if(type(r)!=delta_node) @@ -2678,18 +2674,18 @@ r= link(r); best_line= line_number(best_bet); } -/*:899*/ -#line 17361 "htex.w" +/*:898*/ +#line 17360 "htex.w" ; if((actual_looseness==looseness)||final_pass)goto done; } } -/*:897*/ -#line 17160 "htex.w" +/*:896*/ +#line 17159 "htex.w" ; -/*888:*/ -#line 17194 "htex.w" +/*887:*/ +#line 17193 "htex.w" q= link(active); while(q!=last_active) @@ -2705,8 +2701,8 @@ free_node(q,passive_node_size); q= cur_p; } -/*:888*/ -#line 17161 "htex.w" +/*:887*/ +#line 17160 "htex.w" ; if(!second_pass) { @@ -2727,19 +2723,19 @@ done: #ifdef STAT #endif -/*:886*/ -#line 16212 "htex.w" +/*:885*/ +#line 16211 "htex.w" ; -/*900:*/ -#line 17404 "htex.w" +/*899:*/ +#line 17403 "htex.w" post_line_break(final_widow_penalty) -/*:900*/ -#line 16214 "htex.w" +/*:899*/ +#line 16213 "htex.w" ; -/*888:*/ -#line 17194 "htex.w" +/*887:*/ +#line 17193 "htex.w" q= link(active); while(q!=last_active) @@ -2755,14 +2751,14 @@ free_node(q,passive_node_size); q= cur_p; } -/*:888*/ -#line 16215 "htex.w" +/*:887*/ +#line 16214 "htex.w" ; hrestore_param_list(); } -/*:831*//*993:*/ -#line 19075 "htex.w" +/*:830*//*992:*/ +#line 19074 "htex.w" #define ensure_vbox(N) @@ -2773,8 +2769,8 @@ pointer q; prev_p= temp_head;link(temp_head)= p; while(p!=null) switch(type(p)){ -case hlist_node:case vlist_node:case rule_node:/*994:*/ -#line 19098 "htex.w" +case hlist_node:case vlist_node:case rule_node:/*993:*/ +#line 19097 "htex.w" {temp_ptr= new_spec(pointer_def[glue_kind][split_top_skip_no]); q= new_glue(temp_ptr);glue_ref_count(temp_ptr)= null;link(prev_p)= q;link(q)= p; @@ -2784,8 +2780,8 @@ else width(temp_ptr)= 0; p= null; } -/*:994*/ -#line 19086 "htex.w" +/*:993*/ +#line 19085 "htex.w" break; case whatsit_node:case mark_node:case ins_node:{prev_p= p;p= link(prev_p); }break; @@ -2798,8 +2794,8 @@ default:confusion("pruning"); return link(temp_head); } -/*:993*//*995:*/ -#line 19123 "htex.w" +/*:992*//*994:*/ +#line 19122 "htex.w" static pointer vert_break(pointer p,scaled h,scaled d) @@ -2815,25 +2811,25 @@ scaled prev_dp; small_number t; prev_p= p; least_cost= awful_bad;do_all_six(set_height_zero);prev_dp= 0; -loop{/*998:*/ -#line 19159 "htex.w" +loop{/*997:*/ +#line 19158 "htex.w" if(p==null)pi= eject_penalty; -else/*999:*/ -#line 19174 "htex.w" +else/*998:*/ +#line 19173 "htex.w" switch(type(p)){ case hlist_node:case vlist_node:case rule_node:{ cur_height= cur_height+prev_dp+height(p);prev_dp= depth(p); goto not_found; } -case whatsit_node:/*1395:*/ -#line 25493 "htex.w" +case whatsit_node:/*1394:*/ +#line 25481 "htex.w" goto not_found -/*:1395*/ -#line 19180 "htex.w" +/*:1394*/ +#line 19179 "htex.w" ; case glue_node:if(precedes_break(prev_p))pi= 0; else goto update_heights;break; @@ -2847,15 +2843,15 @@ default:confusion("vertbreak"); } -/*:999*/ -#line 19163 "htex.w" +/*:998*/ +#line 19162 "htex.w" ; -/*1000:*/ -#line 19195 "htex.w" +/*999:*/ +#line 19194 "htex.w" if(pi<inf_penalty) -{/*1001:*/ -#line 19209 "htex.w" +{/*1000:*/ +#line 19208 "htex.w" if(cur_height<h) if((active_height[3]!=0)||(active_height[4]!=0)|| @@ -2864,8 +2860,8 @@ else b= badness(h-cur_height,active_height[2]); else if(cur_height-h> active_height[6])b= awful_bad; else b= badness(cur_height-h,active_height[6]) -/*:1001*/ -#line 19197 "htex.w" +/*:1000*/ +#line 19196 "htex.w" ; if(b<awful_bad) if(pi<=eject_penalty)b= pi; @@ -2878,12 +2874,12 @@ best_height_plus_depth= cur_height+prev_dp; if((b==awful_bad)||(pi<=eject_penalty))goto done; } -/*:1000*/ -#line 19165 "htex.w" +/*:999*/ +#line 19164 "htex.w" ; if((type(p)<glue_node)||(type(p)> kern_node))goto not_found; -update_heights:/*1002:*/ -#line 19221 "htex.w" +update_heights:/*1001:*/ +#line 19220 "htex.w" if(type(p)==kern_node)q= p; else{q= glue_ptr(p); @@ -2899,24 +2895,24 @@ glue_ptr(p)= r;q= r; } cur_height= cur_height+prev_dp+width(q);prev_dp= 0 -/*:1002*/ -#line 19168 "htex.w" +/*:1001*/ +#line 19167 "htex.w" ; not_found:if(prev_dp> d) {cur_height= cur_height+prev_dp-d; prev_dp= d; } -/*:998*/ -#line 19140 "htex.w" +/*:997*/ +#line 19139 "htex.w" ; prev_p= p;p= link(prev_p); } done:return best_place; } -/*:995*//*1013:*/ -#line 19520 "htex.w" +/*:994*//*1012:*/ +#line 19519 "htex.w" void freeze_page_specs(small_number s) {page_contents= s; @@ -2935,8 +2931,8 @@ end_diagnostic(false); } -/*:1013*//*1021:*/ -#line 19618 "htex.w" +/*:1012*//*1020:*/ +#line 19617 "htex.w" bool hbuild_page(void) { @@ -2946,30 +2942,31 @@ int b,c; int pi; if(link(contrib_head)==null)return false; do{resume:p= link(contrib_head); -/*1024:*/ -#line 19658 "htex.w" +/*1023:*/ +#line 19657 "htex.w" -/*1027:*/ -#line 19687 "htex.w" +/*1026:*/ +#line 19686 "htex.w" switch(type(p)){ case hlist_node:case vlist_node:case rule_node:if(page_contents<box_there) -/*1028:*/ -#line 19710 "htex.w" +/*1027:*/ +#line 19709 "htex.w" {if(page_contents==empty)freeze_page_specs(box_there); else page_contents= box_there; temp_ptr= new_spec(pointer_def[glue_kind][top_skip_no]); q= new_glue(temp_ptr);glue_ref_count(temp_ptr)= null; +{uint64_t h= page_loc[cur_loc];store_map(q,LOC_POS0(h),LOC_OFF(h));} if(width(temp_ptr)> height(p))width(temp_ptr)= width(temp_ptr)-height(p); else width(temp_ptr)= 0; link(q)= p;link(contrib_head)= q;goto resume; } -/*:1028*/ -#line 19691 "htex.w" +/*:1027*/ +#line 19690 "htex.w" -else/*1029:*/ +else/*1028:*/ #line 19720 "htex.w" {page_total= page_total+page_depth+height(p); @@ -2977,16 +2974,16 @@ page_depth= depth(p); goto contribute; } -/*:1029*/ -#line 19693 "htex.w" +/*:1028*/ +#line 19692 "htex.w" break; -case whatsit_node:/*1394:*/ -#line 25490 "htex.w" +case whatsit_node:/*1393:*/ +#line 25478 "htex.w" goto contribute -/*:1394*/ -#line 19695 "htex.w" +/*:1393*/ +#line 19694 "htex.w" ; case glue_node:if(page_contents<box_there)goto done1; else if(precedes_break(page_tail))pi= 0; @@ -3002,14 +2999,14 @@ default:confusion("page"); } -/*:1027*/ -#line 19663 "htex.w" +/*:1026*/ +#line 19662 "htex.w" ; -/*1032:*/ +/*1031:*/ #line 19748 "htex.w" if(pi<inf_penalty) -{/*1034:*/ +{/*1033:*/ #line 19794 "htex.w" if(page_total<page_goal) @@ -3019,7 +3016,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) -/*:1034*/ +/*:1033*/ #line 19751 "htex.w" ; if(b<awful_bad) @@ -3029,7 +3026,7 @@ else c= deplorable; else c= b; if(insert_penalties>=10000)c= awful_bad; #ifdef STAT -if(tracing_pages> 0)/*1033:*/ +if(tracing_pages> 0)/*1032:*/ #line 19780 "htex.w" {begin_diagnostic();print_nl("%"); @@ -3045,7 +3042,7 @@ if(c<=least_page_cost)print_char('#'); end_diagnostic(false); } -/*:1033*/ +/*:1032*/ #line 19759 "htex.w" ; #endif @@ -3068,11 +3065,11 @@ return true; } } -/*:1032*/ -#line 19666 "htex.w" +/*:1031*/ +#line 19665 "htex.w" ; if((type(p)<glue_node)||(type(p)> kern_node))goto contribute; -update_heights:/*1031:*/ +update_heights:/*1030:*/ #line 19733 "htex.w" if(type(p)==kern_node)q= p; @@ -3089,10 +3086,10 @@ glue_ptr(p)= r;q= r; } page_total= page_total+page_depth+width(q);page_depth= 0 -/*:1031*/ -#line 19669 "htex.w" +/*:1030*/ +#line 19668 "htex.w" ; -contribute:/*1030:*/ +contribute:/*1029:*/ #line 19726 "htex.w" if(page_depth> page_max_depth) @@ -3101,45 +3098,45 @@ page_total+page_depth-page_max_depth; page_depth= page_max_depth; } -/*:1030*/ -#line 19670 "htex.w" +/*:1029*/ +#line 19669 "htex.w" ; -/*1025:*/ -#line 19675 "htex.w" +/*1024:*/ +#line 19674 "htex.w" link(page_tail)= p;page_tail= p; link(contrib_head)= link(p);link(p)= null;goto done -/*:1025*/ -#line 19671 "htex.w" +/*:1024*/ +#line 19670 "htex.w" ; -done1:/*1026:*/ -#line 19679 "htex.w" +done1:/*1025:*/ +#line 19678 "htex.w" link(contrib_head)= link(p);link(p)= null;flush_node_list(p) -/*:1026*/ -#line 19672 "htex.w" +/*:1025*/ +#line 19671 "htex.w" ; done: -/*:1024*/ -#line 19629 "htex.w" +/*:1023*/ +#line 19628 "htex.w" ; }while(!(link(contrib_head)==null)); -/*1022:*/ -#line 19637 "htex.w" +/*1021:*/ +#line 19636 "htex.w" if(nest_ptr==0)tail= contrib_head; else contrib_tail= contrib_head -/*:1022*/ -#line 19631 "htex.w" +/*:1021*/ +#line 19630 "htex.w" ; return false; } -/*:1021*//*1035:*/ +/*:1020*//*1034:*/ #line 19802 "htex.w" void happend_insertion(pointer p) @@ -3151,7 +3148,7 @@ n= subtype(p);r= page_ins_head; while(n>=subtype(link(r)))r= link(r); n= qo(n); if(subtype(r)!=qi(n)) -/*1036:*/ +/*1035:*/ #line 19834 "htex.w" {q= get_node(page_ins_node_size);link(q)= link(r);link(r)= q;r= q; @@ -3169,7 +3166,7 @@ if((shrink_order(q)!=normal)&&(shrink(q)!=0)) DBG(DBGTEX,"Infinite glue shrinkage inserted from stream %d",n); } -/*:1036*/ +/*:1035*/ #line 19813 "htex.w" ; if(type(r)==split_up)insert_penalties= insert_penalties+float_cost(p); @@ -3181,7 +3178,7 @@ else h= x_over_n(height(p),1000)*count(n); if(((h<=0)||(h<=delta))&&(height(p)+height(r)<=dimen(n))) {page_goal= page_goal-h;height(r)= height(r)+height(p); } -else/*1037:*/ +else/*1036:*/ #line 19860 "htex.w" {if(count(n)<=0)w= max_dimen; @@ -3192,7 +3189,7 @@ if(w> dimen(n)-height(r))w= dimen(n)-height(r); q= vert_break(ins_ptr(p),w,depth(p)); height(r)= height(r)+best_height_plus_depth; #ifdef STAT -if(tracing_pages> 0)/*1038:*/ +if(tracing_pages> 0)/*1037:*/ #line 19880 "htex.w" {begin_diagnostic();print_nl("% split");print_int(n); @@ -3206,7 +3203,7 @@ else print_char('0'); end_diagnostic(false); } -/*:1038*/ +/*:1037*/ #line 19869 "htex.w" ; #endif @@ -3219,13 +3216,13 @@ if(q==null)insert_penalties= insert_penalties+eject_penalty; else if(type(q)==penalty_node)insert_penalties= insert_penalties+penalty(q); } -/*:1037*/ +/*:1036*/ #line 19824 "htex.w" ; } } -/*:1035*//*1042:*/ +/*:1034*//*1041:*/ #line 19952 "htex.w" void hpack_page(void) @@ -3247,7 +3244,7 @@ if(box(0)!=null) {flush_node_list(box(0));box(0)= null;} insert_penalties= 0; save_split_top_skip= split_top_skip; -/*1046:*/ +/*1045:*/ #line 20038 "htex.w" {r= link(page_ins_head); @@ -3263,13 +3260,13 @@ r= link(r); } } -/*:1046*/ +/*:1045*/ #line 19972 "htex.w" ; q= hold_head;link(q)= null;prev_p= page_head;p= link(prev_p); while(p!=best_page_break) {if(type(p)==ins_node) -{/*1048:*/ +{/*1047:*/ #line 20064 "htex.w" {r= link(page_ins_head); @@ -3277,7 +3274,7 @@ while(subtype(r)!=subtype(p))r= link(r); if(best_ins_ptr(r)==null)wait= true; else{wait= false;s= last_ins_ptr(r);link(s)= ins_ptr(p); if(best_ins_ptr(r)==p) -/*1049:*/ +/*1048:*/ #line 20080 "htex.w" {if(type(r)==split_up) @@ -3301,14 +3298,14 @@ streams[n].p= temp_ptr; streams[n].t= s; } -/*:1049*/ +/*:1048*/ #line 20071 "htex.w" else{while(link(s)!=null)s= link(s); last_ins_ptr(r)= s; } } -/*1050:*/ +/*1049:*/ #line 20102 "htex.w" link(prev_p)= link(p);link(p)= null; @@ -3320,19 +3317,19 @@ free_node(p,ins_node_size); } p= prev_p -/*:1050*/ +/*:1049*/ #line 20077 "htex.w" ; } -/*:1048*/ +/*:1047*/ #line 19977 "htex.w" ; } prev_p= p;p= link(prev_p); } split_top_skip= save_split_top_skip; -/*1045:*/ +/*1044:*/ #line 20016 "htex.w" if(p!=null) @@ -3350,10 +3347,10 @@ if(q!=hold_head) link(contrib_head)= link(hold_head); } -/*:1045*/ +/*:1044*/ #line 19983 "htex.w" ; -/*1047:*/ +/*1046:*/ #line 20052 "htex.w" r= link(page_ins_head); @@ -3362,12 +3359,12 @@ while(r!=page_ins_head) } link(page_ins_head)= page_ins_head -/*:1047*/ +/*:1046*/ #line 19984 "htex.w" ; } -/*:1042*//*1174:*/ +/*:1041*//*1173:*/ #line 21974 "htex.w" void hdisplay(pointer p,pointer a,bool l) @@ -3392,13 +3389,13 @@ pop_nest(); store_map(par_ptr,node_pos,0); line_break(display_widow_penalty,par_ptr); x= cur_list.hs_field; -/*1175:*/ +/*1174:*/ #line 22006 "htex.w" v= shift_amount(just_box)+2*dimen_def[quad_no];w= -max_dimen; p= list_ptr(just_box); while(p!=null) -{/*1176:*/ +{/*1175:*/ #line 22023 "htex.w" reswitch:if(is_char_node(p)) @@ -3408,18 +3405,18 @@ goto found; switch(type(p)){ case hlist_node:case vlist_node:case rule_node:{d= width(p);goto found; } -case ligature_node:/*666:*/ -#line 13134 "htex.w" +case ligature_node:/*665:*/ +#line 13133 "htex.w" {mem[lig_trick]= mem[lig_char(p)];link(lig_trick)= link(p); p= lig_trick;goto reswitch; } -/*:666*/ +/*:665*/ #line 22031 "htex.w" case kern_node:case math_node:d= width(p);break; -case glue_node:/*1177:*/ +case glue_node:/*1176:*/ #line 22045 "htex.w" {q= glue_ptr(p);d= width(q); @@ -3436,20 +3433,20 @@ v= max_dimen; if(subtype(p)>=a_leaders)goto found; } -/*:1177*/ +/*:1176*/ #line 22034 "htex.w" break; -case whatsit_node:/*1391:*/ -#line 25480 "htex.w" +case whatsit_node:/*1390:*/ +#line 25468 "htex.w" d= 0 -/*:1391*/ +/*:1390*/ #line 22035 "htex.w" ;break; default:d= 0; } -/*:1176*/ +/*:1175*/ #line 22011 "htex.w" ; if(v<max_dimen)v= v+d; @@ -3463,12 +3460,12 @@ not_found:p= link(p); } done: -/*:1175*/ +/*:1174*/ #line 21999 "htex.w" ; } -/*1178:*/ +/*1177:*/ #line 22063 "htex.w" if(par_shape_ptr==null) @@ -3486,16 +3483,16 @@ else p= par_shape_ptr+2*(prev_graf+2); s= mem[p-1].sc;l= mem[p].sc; } -/*:1178*/ +/*:1177*/ #line 22002 "htex.w" ; pre_display_size= w;display_width= l;display_indent= s; } -/*:1174*//*1229:*/ +/*:1173*//*1228:*/ #line 22730 "htex.w" -{/*1227:*/ +{/*1226:*/ #line 22713 "htex.w" pointer b; @@ -3509,7 +3506,7 @@ small_number g1,g2; pointer r; pointer t; -/*:1227*/ +/*:1226*/ #line 22731 "htex.w" adjust_tail= adjust_head;b= hpack(p,natural);p= list_ptr(b); @@ -3521,7 +3518,7 @@ if(a==null) else{e= width(a);q= e+math_quad; } if(w+q> z) -/*1231:*/ +/*1230:*/ #line 22769 "htex.w" {if((e!=0)&&((w-total_shrink[normal]+q<=z)|| @@ -3539,10 +3536,10 @@ b= hpack(p,z,exactly); w= width(b); } -/*:1231*/ +/*:1230*/ #line 22742 "htex.w" ; -/*1232:*/ +/*1231:*/ #line 22793 "htex.w" d= half(z-w); @@ -3551,10 +3548,10 @@ if((e> 0)&&(d<2*e)) if(p!=null)if(!is_char_node(p))if(type(p)==glue_node)d= 0; } -/*:1232*/ +/*:1231*/ #line 22744 "htex.w" ; -/*1233:*/ +/*1232:*/ #line 22806 "htex.w" tail_append(new_penalty(pre_display_penalty)); @@ -3571,10 +3568,10 @@ tail_append(new_penalty(inf_penalty));store_map(tail,node_pos,offset); } else{tail_append(new_glue(pointer_def[glue_kind][g1]));store_map(tail,node_pos,offset);} -/*:1233*/ +/*:1232*/ #line 22745 "htex.w" ; -/*1234:*/ +/*1233:*/ #line 22821 "htex.w" if(e!=0) @@ -3588,10 +3585,10 @@ b= hpack(b,natural); } shift_amount(b)= s+d;append_to_vlist(b,offset) -/*:1234*/ +/*:1233*/ #line 22746 "htex.w" ; -/*1235:*/ +/*1234:*/ #line 22833 "htex.w" if((a!=null)&&(e==0)&&!l) @@ -3608,7 +3605,7 @@ offset= (hpos-hstart)+1-node_pos; store_map(tail,node_pos,offset); if(g2> 0){tail_append(new_glue(pointer_def[glue_kind][g2]));store_map(tail,node_pos,offset);} -/*:1235*/ +/*:1234*/ #line 22747 "htex.w" ; prev_graf= prev_graf+3; @@ -3617,4 +3614,4 @@ push_nest();mode= hmode; } } -/*:1229*/ +/*:1228*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/htex.h b/Build/source/texk/web2c/hitexdir/hintview/src/htex.h index fb7a9a24427..9beef681ddd 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/htex.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/htex.h @@ -1,5 +1,5 @@ -/*1411:*/ -#line 25703 "htex.w" +/*1410:*/ +#line 25691 "htex.w" #define banner "This is TeX, Version 3.141592653 (HINT)" \ @@ -325,7 +325,7 @@ else decr(glue_ref_count(A) ) ; \ #define add_token_ref(A) incr(token_ref_count(A) ) #define add_glue_ref(A) incr(glue_ref_count(A) ) -#define add_xdimen_ref(A) incr(xdimen_ref_count(A) ) \ +#define add_xdimen_ref(A) if(A!=null) incr(xdimen_ref_count(A) ) \ #define escape 0 \ @@ -1589,21 +1589,21 @@ str_pool[k+2]= si(qo(w.b2) ) ;str_pool[k+3]= si(qo(w.b3) ) \ #define open_ext(A) link(A+2) \ #define hitex_ext language_node+1 -#define par_node hitex_ext -#define par_node_size 3 -#define par_type(A) type(A+1) +#define param_node hitex_ext +#define param_node_size 3 +#define param_type(A) type(A+1) #define int_type 0 #define dimen_type 1 #define glue_type 2 -#define par_number(A) subtype(A+1) -#define par_value(A) mem[A+2] \ +#define param_no(A) subtype(A+1) +#define param_value(A) mem[A+2] \ -#define graf_node hitex_ext+1 -#define graf_node_size 5 -#define graf_penalty(A) mem[A+1].i -#define graf_extent(A) link(A+3) -#define graf_params(A) info(A+4) -#define graf_list(A) link(A+4) \ +#define par_node hitex_ext+1 +#define par_node_size 5 +#define par_penalty(A) mem[A+1].i +#define par_extent(A) link(A+3) +#define par_params(A) info(A+4) +#define par_list(A) link(A+4) \ #define disp_node hitex_ext+2 #define disp_node_size 3 @@ -1618,18 +1618,14 @@ str_pool[k+2]= si(qo(w.b2) ) ;str_pool[k+3]= si(qo(w.b3) ) \ #define baseline_node_no(A) mem[A+1].i \ #define image_node hitex_ext+4 -#define image_node_size 9 -#define image_width(A) width(A) -#define image_height(A) height(A) -#define image_depth(A) depth(A) -#define image_no(A) mem[A+4].i -#define image_stretch(A) mem[A+5].sc -#define image_shrink(A) mem[A+6].sc -#define image_stretch_order(A) stretch_order(A+7) -#define image_shrink_order(A) shrink_order(A+7) -#define image_name(A) link(A+7) -#define image_area(A) info(A+8) -#define image_ext(A) link(A+8) \ +#define image_node_size 6 +#define image_width(A) mem[A+1].sc +#define image_height(A) mem[A+2].sc +#define image_no(A) link(A+3) +#define image_name(A) info(A+3) +#define image_area(A) info(A+4) +#define image_ext(A) link(A+4) +#define image_alt(A) link(A+5) \ #define hpack_node hitex_ext+5 #define vpack_node hitex_ext+6 @@ -1728,7 +1724,7 @@ str_pool[k+2]= si(qo(w.b2) ) ;str_pool[k+3]= si(qo(w.b3) ) \ #define end_write_token cs_token_flag+end_write \ -#line 25704 "htex.w" +#line 25692 "htex.w" enum{/*11:*/ #line 362 "htex.w" @@ -1772,7 +1768,7 @@ file_name_size= 1024, empty_string= 256 /*:11*/ -#line 25705 "htex.w" +#line 25693 "htex.w" }; /*18:*/ #line 502 "htex.w" @@ -1793,14 +1789,14 @@ typedef int32_t pool_pointer; typedef int16_t str_number; typedef uint8_t packed_ASCII_code; -/*:38*//*105:*/ +/*:38*//*104:*/ #line 2194 "htex.w" typedef int scaled; typedef int32_t nonnegative_integer; typedef int8_t small_number; -/*:105*//*114:*/ +/*:104*//*113:*/ #line 2405 "htex.w" #if __SIZEOF_FLOAT__==4 @@ -1810,7 +1806,7 @@ typedef float float32_t; #endif typedef float glue_ratio; -/*:114*//*118:*/ +/*:113*//*117:*/ #line 2514 "htex.w" typedef uint8_t quarterword; @@ -1838,13 +1834,13 @@ four_quarters qqqq; };}memory_word; typedef struct{FILE*f;memory_word d;}word_file; -/*:118*//*156:*/ +/*:117*//*155:*/ #line 3245 "htex.w" typedef int8_t glue_ord; -/*:156*//*222:*/ -#line 4409 "htex.w" +/*:155*//*221:*/ +#line 4408 "htex.w" typedef struct{int16_t mode_field; pointer head_field,tail_field; @@ -1859,42 +1855,42 @@ uint32_t np_field; memory_word aux_field; }list_state_record; -/*:222*//*280:*/ -#line 5998 "htex.w" +/*:221*//*279:*/ +#line 5997 "htex.w" typedef int8_t group_code; -/*:280*//*311:*/ -#line 6577 "htex.w" +/*:279*//*310:*/ +#line 6576 "htex.w" typedef struct{ quarterword state_field,index_field; halfword start_field,loc_field,limit_field,name_field; }in_state_record; -/*:311*//*559:*/ -#line 10859 "htex.w" +/*:310*//*558:*/ +#line 10858 "htex.w" typedef uint8_t internal_font_number; typedef uint16_t font_index; -/*:559*//*606:*/ -#line 12051 "htex.w" +/*:558*//*605:*/ +#line 12050 "htex.w" typedef int8_t dvi_index; -/*:606*//*945:*/ -#line 18317 "htex.w" +/*:605*//*944:*/ +#line 18316 "htex.w" typedef uint16_t trie_pointer; -/*:945*//*950:*/ -#line 18386 "htex.w" +/*:944*//*949:*/ +#line 18385 "htex.w" typedef int16_t hyph_pointer; -/*:950*/ -#line 25706 "htex.w" +/*:949*/ +#line 25694 "htex.w" extern void list_init(void); extern void hpack_page(void); @@ -1949,4 +1945,4 @@ extern int nest_ptr; extern void pop_nest(void); extern void push_nest(void); extern void delete_glue_ref(pointer p); -void line_break(int final_widow_penalty,pointer par_ptr);/*:1411*/ +void line_break(int final_widow_penalty,pointer par_ptr);/*:1410*/ diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/rendernative.h b/Build/source/texk/web2c/hitexdir/hintview/src/rendernative.h index 211aa545227..d8be265d7b3 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/rendernative.h +++ b/Build/source/texk/web2c/hitexdir/hintview/src/rendernative.h @@ -1,51 +1,51 @@ /*377:*/ -#line 7642 "hint.w" +#line 7637 "hint.w" #ifndef _RENDERNATIVE_H #define _RENDERNATIVE_H /*329:*/ -#line 6568 "hint.w" +#line 6563 "hint.w" extern void nativeInit(void); extern void nativeClear(void); /*:329*//*330:*/ -#line 6575 "hint.w" +#line 6570 "hint.w" extern void nativeSetSize(int px_h,int px_v,double xdpi,double ydpi); /*:330*//*331:*/ -#line 6580 "hint.w" +#line 6575 "hint.w" extern void nativeSetDark(int dark); /*:331*//*332:*/ -#line 6585 "hint.w" +#line 6580 "hint.w" extern void nativeBlank(void); /*:332*//*333:*/ -#line 6595 "hint.w" +#line 6590 "hint.w" typedef struct gcache_s*gcache_s_ptr; extern void nativeGlyph(double x,double dx,double y,double dy,double w,double h,struct gcache_s*g,uint8_t s); /*:333*//*334:*/ -#line 6606 "hint.w" +#line 6601 "hint.w" void nativeRule(double x,double y,double w,double h); /*:334*//*335:*/ -#line 6612 "hint.w" +#line 6607 "hint.w" void nativeImage(double x,double y,double w,double h,unsigned char*istart,unsigned char*iend); /*:335*//*336:*/ -#line 6618 "hint.w" +#line 6613 "hint.w" extern void nativeSetPK(struct gcache_s*g); extern void nativeSetFreeType(struct gcache_s*g); /*:336*//*337:*/ -#line 6625 "hint.w" +#line 6620 "hint.w" void nativeFreeGlyph(struct gcache_s*g); /*:337*/ -#line 7646 "hint.w" +#line 7641 "hint.w" #endif diff --git a/Build/source/texk/web2c/hitexdir/hintview/src/tables.c b/Build/source/texk/web2c/hitexdir/hintview/src/tables.c index ceec250aae4..2680d20dca9 100644 --- a/Build/source/texk/web2c/hitexdir/hintview/src/tables.c +++ b/Build/source/texk/web2c/hitexdir/hintview/src/tables.c @@ -54,7 +54,7 @@ signed char hnode_size[0x100]= { 3,0,-4*1+0,-4*1+1,3,0,-4*2+0,-4*2+1, /* disc */ 3,2,2,2,2,2,2,2, /* language */ 3,6,6,10,6,10,10,14, /* rule */ -3,0,0,0,4,12,12,20, /* image */ +3,-4*11+0,-4*11+0,-4*11+0,-4*9+0,-4*8+1,-4*8+1,-4*7+2, /* image */ 3,-4*1+0,-4*1+0,-4*1+0,0,-4*1+1,-4*1+1,-4*1+1, /* leaders */ 3,6,-4*1+0,-4*5+0,-4*1+0,-4*5+0,-4*1+1,-4*5+1, /* baseline */ -4*9+0,-4*13+0,-4*13+0,-4*17+0,-4*14+0,-4*18+0,-4*18+0,-4*22+0, /* hbox */ |