1313#define HALF_BUF 8192
1414#define FNT_NUM_0 171 /* DVI code */
1515
16- static rust_output_handle_t dvi_file ;
1716static str_number output_file_name ;
18- static eight_bits * dvi_buf = NULL ;
19- static int32_t dvi_limit ;
2017static int32_t g ;
2118static int32_t lq , lr ;
22- static int32_t dvi_ptr ;
23- static int32_t dvi_offset ;
24- static int32_t dvi_gone ;
2519static int32_t down_ptr , right_ptr ;
2620static scaled_t dvi_h , dvi_v ;
2721static internal_font_number dvi_f ;
4943initialize_shipout_variables (void )
5044{
5145 output_file_name = 0 ;
52- dvi_buf = xmalloc_array ( eight_bits , DVI_BUF_SIZE );
53- dvi_limit = DVI_BUF_SIZE ;
54- dvi_ptr = 0 ;
55- dvi_offset = 0 ;
56- dvi_gone = 0 ;
46+ resize_dvi_buf ( DVI_BUF_SIZE );
47+ set_dvi_limit ( DVI_BUF_SIZE ) ;
48+ set_dvi_ptr ( 0 ) ;
49+ set_dvi_offset ( 0 ) ;
50+ set_dvi_gone ( 0 ) ;
5751 down_ptr = TEX_NULL ;
5852 right_ptr = TEX_NULL ;
5953 cur_s = -1 ;
@@ -63,16 +57,16 @@ initialize_shipout_variables(void)
6357void
6458deinitialize_shipout_variables (void )
6559{
66- free (dvi_buf );
67- dvi_buf = NULL ;
60+ clear_dvi_buf ();
6861}
6962
7063
7164static inline void
7265dvi_out (eight_bits c )
7366{
74- dvi_buf [dvi_ptr ++ ] = c ;
75- if (dvi_ptr == dvi_limit )
67+ set_dvi_buf (dvi_ptr (), c );
68+ set_dvi_ptr (dvi_ptr ()+ 1 );
69+ if (dvi_ptr () == dvi_limit ())
7670 dvi_swap ();
7771}
7872
@@ -183,8 +177,8 @@ ship_out(int32_t p)
183177 if (job_name () == 0 )
184178 open_log_file ();
185179 pack_job_name (output_file_extension );
186- dvi_file = ttstub_output_open (name_of_file (), 0 );
187- if (dvi_file == INVALID_HANDLE )
180+ set_dvi_file ( ttstub_output_open (name_of_file (), 0 ) );
181+ if (dvi_file () == INVALID_HANDLE )
188182 _tt_abort ("cannot open output file \"%s\"" , name_of_file ());
189183 output_file_name = make_name_string ();
190184 }
@@ -213,7 +207,7 @@ ship_out(int32_t p)
213207
214208 /* ... resuming 662 ... Emit per-page preamble. */
215209
216- page_loc = dvi_offset + dvi_ptr ;
210+ page_loc = dvi_offset () + dvi_ptr () ;
217211
218212 dvi_out (BOP );
219213
@@ -547,7 +541,7 @@ hlist_out(void)
547541 if (cur_s > max_push )
548542 max_push = cur_s ;
549543
550- save_loc = dvi_offset + dvi_ptr ;
544+ save_loc = dvi_offset () + dvi_ptr () ;
551545 base_line = cur_v ;
552546 prev_p = this_box + 5 ; /* this is list_offset, the offset of the box list pointer */
553547
@@ -1136,7 +1130,7 @@ vlist_out(void)
11361130 if (cur_s > max_push )
11371131 max_push = cur_s ;
11381132
1139- save_loc = dvi_offset + dvi_ptr ;
1133+ save_loc = dvi_offset () + dvi_ptr () ;
11401134 left_edge = cur_h ;
11411135 synctex_vlist (this_box );
11421136
@@ -1884,7 +1878,7 @@ movement(scaled_t w, eight_bits o)
18841878
18851879 q = get_node (MOVEMENT_NODE_SIZE );
18861880 mem_ptr (q + 1 )-> b32 .s1 = w ;
1887- mem_ptr (q + 2 )-> b32 .s1 = dvi_offset + dvi_ptr ;
1881+ mem_ptr (q + 2 )-> b32 .s1 = dvi_offset () + dvi_ptr () ;
18881882
18891883 if (o == DOWN1 ) {
18901884 mem_ptr (q )-> b32 .s1 = down_ptr ;
@@ -1904,13 +1898,13 @@ movement(scaled_t w, eight_bits o)
19041898 case (MOV_NONE_SEEN + MOV_Y_OK ):
19051899 case (MOV_Z_SEEN + MOV_YZ_OK ):
19061900 case (MOV_Z_SEEN + MOV_Y_OK ):
1907- if (mem (p + 2 ).b32 .s1 < dvi_gone ) {
1901+ if (mem (p + 2 ).b32 .s1 < dvi_gone () ) {
19081902 goto not_found ;
19091903 } else { /*633:*/
1910- k = mem (p + 2 ).b32 .s1 - dvi_offset ;
1904+ k = mem (p + 2 ).b32 .s1 - dvi_offset () ;
19111905 if (k < 0 )
19121906 k = k + DVI_BUF_SIZE ;
1913- dvi_buf [ k ] = dvi_buf [ k ] + 5 ;
1907+ set_dvi_buf ( k , dvi_buf ( k ) + 5 ) ;
19141908 mem_ptr (p )-> b32 .s0 = MOV_Y_HERE ;
19151909 goto found ;
19161910 }
@@ -1919,13 +1913,13 @@ movement(scaled_t w, eight_bits o)
19191913 case (MOV_NONE_SEEN + MOV_Z_OK ):
19201914 case (MOV_Y_SEEN + MOV_YZ_OK ):
19211915 case (MOV_Y_SEEN + MOV_Z_OK ):
1922- if (mem (p + 2 ).b32 .s1 < dvi_gone ) {
1916+ if (mem (p + 2 ).b32 .s1 < dvi_gone () ) {
19231917 goto not_found ;
19241918 } else { /*634:*/
1925- k = mem (p + 2 ).b32 .s1 - dvi_offset ;
1919+ k = mem (p + 2 ).b32 .s1 - dvi_offset () ;
19261920 if (k < 0 )
19271921 k = k + DVI_BUF_SIZE ;
1928- dvi_buf [ k ] = dvi_buf [ k ] + 10 ;
1922+ set_dvi_buf ( k , dvi_buf ( k ) + 10 ) ;
19291923 mem_ptr (p )-> b32 .s0 = MOV_Z_HERE ;
19301924 goto found ;
19311925 }
@@ -2310,7 +2304,7 @@ finalize_dvi_file(void)
23102304
23112305 dvi_out (POST );
23122306 dvi_four (last_bop );
2313- last_bop = dvi_offset + dvi_ptr - 5 ;
2307+ last_bop = dvi_offset () + dvi_ptr () - 5 ;
23142308 dvi_four (25400000L ); /* magic values: conversion ratio for sp */
23152309 dvi_four (473628672L ); /* magic values: conversion ratio for sp */
23162310 prepare_mag ();
@@ -2336,25 +2330,25 @@ finalize_dvi_file(void)
23362330 else
23372331 dvi_out (XDV_ID_BYTE );
23382332
2339- k = 4 + (DVI_BUF_SIZE - dvi_ptr ) % 4 ;
2333+ k = 4 + (DVI_BUF_SIZE - dvi_ptr () ) % 4 ;
23402334
23412335 while (k > 0 ) {
23422336 dvi_out (223 );
23432337 k -- ;
23442338 }
23452339
2346- if (dvi_limit == HALF_BUF )
2340+ if (dvi_limit () == HALF_BUF )
23472341 write_to_dvi (HALF_BUF , DVI_BUF_SIZE - 1 );
23482342
2349- if (dvi_ptr > TEX_INFINITY - dvi_offset ) {
2343+ if (dvi_ptr () > TEX_INFINITY - dvi_offset () ) {
23502344 cur_s = -2 ;
23512345 fatal_error ("dvi length exceeds 0x7FFFFFFF" );
23522346 }
23532347
2354- if (dvi_ptr > 0 )
2355- write_to_dvi (0 , dvi_ptr - 1 );
2348+ if (dvi_ptr () > 0 )
2349+ write_to_dvi (0 , dvi_ptr () - 1 );
23562350
2357- k = ttstub_output_close (dvi_file );
2351+ k = ttstub_output_close (dvi_file () );
23582352
23592353 if (k == 0 ) {
23602354 print_nl_cstr ("Output written on " );
@@ -2366,7 +2360,7 @@ finalize_dvi_file(void)
23662360 else
23672361 print_cstr (" page" );
23682362 print_cstr (", " );
2369- print_int (dvi_offset + dvi_ptr );
2363+ print_int (dvi_offset () + dvi_ptr () );
23702364 print_cstr (" bytes)." );
23712365 } else {
23722366 print_nl_cstr ("Error " );
@@ -2387,30 +2381,30 @@ write_to_dvi(int32_t a, int32_t b)
23872381{
23882382 int32_t n = b - a + 1 ;
23892383
2390- if (ttstub_output_write (dvi_file , (char * ) & dvi_buf [ a ] , n ) != n )
2384+ if (ttstub_output_write (dvi_file () , (char * ) dvi_buf_ptr ( a ) , n ) != n )
23912385 _tt_abort ("failed to write data to XDV file" );
23922386}
23932387
23942388
23952389static void
23962390dvi_swap (void )
23972391{
2398- if (dvi_ptr > (TEX_INFINITY - dvi_offset )) {
2392+ if (dvi_ptr () > (TEX_INFINITY - dvi_offset () )) {
23992393 cur_s = -2 ;
24002394 fatal_error ("dvi length exceeds 0x7FFFFFFF" );
24012395 }
24022396
2403- if (dvi_limit == DVI_BUF_SIZE ) {
2397+ if (dvi_limit () == DVI_BUF_SIZE ) {
24042398 write_to_dvi (0 , HALF_BUF - 1 );
2405- dvi_limit = HALF_BUF ;
2406- dvi_offset = dvi_offset + DVI_BUF_SIZE ;
2407- dvi_ptr = 0 ;
2399+ set_dvi_limit ( HALF_BUF ) ;
2400+ set_dvi_offset ( dvi_offset () + DVI_BUF_SIZE ) ;
2401+ set_dvi_ptr ( 0 ) ;
24082402 } else {
24092403 write_to_dvi (HALF_BUF , DVI_BUF_SIZE - 1 );
2410- dvi_limit = DVI_BUF_SIZE ;
2404+ set_dvi_limit ( DVI_BUF_SIZE ) ;
24112405 }
24122406
2413- dvi_gone = dvi_gone + HALF_BUF ;
2407+ set_dvi_gone ( dvi_gone () + HALF_BUF ) ;
24142408}
24152409
24162410
@@ -2445,8 +2439,9 @@ dvi_two(UTF16_code s)
24452439static void
24462440dvi_pop (int32_t l )
24472441{
2448- if (l == dvi_offset + dvi_ptr && dvi_ptr > 0 )
2449- dvi_ptr -- ;
2450- else
2442+ if (l == dvi_offset () + dvi_ptr () && dvi_ptr () > 0 ) {
2443+ set_dvi_ptr ( dvi_ptr () - 1 ) ;
2444+ } else {
24512445 dvi_out (POP );
2446+ }
24522447}
0 commit comments