summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/hitexdir/hintview/src
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/hitexdir/hintview/src')
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/basetypes.h8
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/error.h2
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/format.h140
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/get.c178
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/get.h69
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/hfonts.c70
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/hfonts.h28
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/hint.c216
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/hint.h40
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/hrender.c206
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/hrender.h10
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/htex.c1351
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/htex.h94
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/rendernative.h22
-rw-r--r--Build/source/texk/web2c/hitexdir/hintview/src/tables.c2
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 */