コード例 #1
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void end_diagnostic(boolean blank_line)
{
tprint_nl("");
if(blank_line)
print_ln();
selector= global_old_setting;
}
コード例 #2
0
ファイル: extensions.c プロジェクト: clerkma/texlive-mobile
void group_warning(void)
{
boolean w= false;
int i= in_open;
base_ptr= input_ptr;
input_stack[base_ptr]= cur_input;
while((grp_stack[i]==cur_boundary)&&(i> 0)){



if(tracing_nesting_par> 0){
while((input_stack[base_ptr].state_field==token_list)||
(input_stack[base_ptr].index_field> i))
decr(base_ptr);
if(input_stack[base_ptr].name_field> 17)
w= true;
}

grp_stack[i]= save_value(save_ptr);
decr(i);
}
if(w){
tprint_nl("Warning: end of ");
print_group(true);
tprint(" of a different file");
print_ln();
if(tracing_nesting_par> 1)
show_context();
if(history==spotless)
history= warning_issued;
}
}
コード例 #3
0
ファイル: extensions.c プロジェクト: clerkma/texlive-mobile
void if_warning(void)
{
boolean w= false;
int i= in_open;
base_ptr= input_ptr;
input_stack[base_ptr]= cur_input;
while(if_stack[i]==cond_ptr){

if(tracing_nesting_par> 0){
while((input_stack[base_ptr].state_field==token_list)||
(input_stack[base_ptr].index_field> i))
decr(base_ptr);
if(input_stack[base_ptr].name_field> 17)
w= true;
}

if_stack[i]= vlink(cond_ptr);
decr(i);
}
if(w){
tprint_nl("Warning: end of ");
print_cmd_chr(if_test_cmd,cur_if);
print_if_line(if_line);
tprint(" of a different file");
print_ln();
if(tracing_nesting_par> 1)
show_context();
if(history==spotless)
history= warning_issued;
}
}
コード例 #4
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void print_nlp(void)
{
if(new_string_line> 0){
print_char(new_string_line);
}else if(((term_offset> 0)&&(odd(selector)))||
((file_offset> 0)&&(selector>=log_only))){
print_ln();
}
}
コード例 #5
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void show_box(halfword p)
{
depth_threshold= show_box_depth_par;
breadth_max= show_box_breadth_par;
if(breadth_max<=0)
breadth_max= 5;

show_node_list(p);
print_ln();
}
コード例 #6
0
ファイル: interp.c プロジェクト: plesner/neutrino
// Runs the given stack until it hits a condition or completes successfully.
static value_t run_stack_until_condition(value_t ambience, value_t stack) {
    value_t result = run_stack_pushing_signals(ambience, stack);
    if (in_condition_cause(ccSignal, result)) {
        runtime_t *runtime = get_ambience_runtime(ambience);
        frame_t frame = open_stack(stack);
        TRY_DEF(trace, capture_backtrace(runtime, &frame));
        print_ln("%9v", trace);
    }
    return result;
}
コード例 #7
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void print(int s)
{
if(s>=str_ptr){
normal_warning("print","bad string pointer");
return;
}else if(s<STRING_OFFSET){
if(s<0){
normal_warning("print","bad string offset");
}else{

if((false)&&(selector> pseudo)){

print_char(s);
return;
}
if(s==new_line_char_par){
if(selector<pseudo){
print_ln();
return;
}
}
if(s<=0x7F){
print_char(s);
}else if(s<=0x7FF){
print_char(0xC0+(s/0x40));
print_char(0x80+(s%0x40));
}else if(s<=0xFFFF){
print_char(0xE0+(s/0x1000));
print_char(0x80+((s%0x1000)/0x40));
print_char(0x80+((s%0x1000)%0x40));
}else if(s>=0x110000){
int c= s-0x110000;
if(c>=256){
formatted_warning("print","bad raw byte to print (c=%d), skipped",c);
}else{
print_char(c);
}
}else{
print_char(0xF0+(s/0x40000));
print_char(0x80+((s%0x40000)/0x1000));
print_char(0x80+(((s%0x40000)%0x1000)/0x40));
print_char(0x80+(((s%0x40000)%0x1000)%0x40));
}
}
return;
}
if(selector==new_string){
append_string(str_string(s),(unsigned)str_length(s));
return;
}
lprint(&str_lstring(s));
}
コード例 #8
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void print_banner(const char*v)
{
int callback_id= callback_defined(start_run_callback);
if(callback_id==0){
fprintf(term_out,"This is "MyName", Version %s%s ",v,WEB2CVERSION);
if(format_ident> 0)
print(format_ident);
print_ln();
if(show_luahashchars){
wterm(' ');
fprintf(term_out,"Number of bits used by the hash function ("my_name"): %d",LUAI_HASHLIMIT);
print_ln();
}
if(shellenabledp){
wterm(' ');
if(restrictedshell)
fprintf(term_out,"restricted ");
fprintf(term_out,"system commands enabled.\n");
}
}else if(callback_id> 0){
run_callback(callback_id,"->");
}
}
コード例 #9
0
ファイル: extensions.c プロジェクト: clerkma/texlive-mobile
void file_warning(void)
{
halfword p= save_ptr;
int l= cur_level;
int c= cur_group;
int i;
save_ptr= cur_boundary;
while(grp_stack[in_open]!=save_ptr){
decr(cur_level);
tprint_nl("Warning: end of file when ");
print_group(true);
tprint(" is incomplete");
cur_group= save_level(save_ptr);
save_ptr= save_value(save_ptr);
}
save_ptr= p;
cur_level= (quarterword)l;
cur_group= (group_code)c;
p= cond_ptr;
l= if_limit;
c= cur_if;
i= if_line;
while(if_stack[in_open]!=cond_ptr){
tprint_nl("Warning: end of file when ");
print_cmd_chr(if_test_cmd,cur_if);
if(if_limit==fi_code)
tprint_esc("else");
print_if_line(if_line);
tprint(" is incomplete");
if_line= if_line_field(cond_ptr);
cur_if= if_limit_subtype(cond_ptr);
if_limit= if_limit_type(cond_ptr);
cond_ptr= vlink(cond_ptr);
}
cond_ptr= p;
if_limit= l;
cur_if= c;
if_line= i;
print_ln();
if(tracing_nesting_par> 1)
show_context();
if(history==spotless)
history= warning_issued;
}
コード例 #10
0
ファイル: page.c プロジェクト: syntheticpp/cpptex
void tex::show_cur_page()
	{
	ptr	p, q;
	int	t;

	if (page_head == page_tail)
		return;
	print_nl("### current page:");
	if (output_active)
		print(" (held over for next output)");
	show_box(link(page_head));
	if (page_contents > EMPTY) {
		print_nl("total height ");
		print_totals();
		print_nl(" goal height ");
		print_scaled(page_goal);
		p = link(page_ins_head);
		while (p != page_ins_head) {
			print_ln();
			print_esc("insert");
			t = subtype(p);
			print_int(t);
			print(" adds ");
			t = x_over_n(page_ins_height(p), 1000) * count(t);
			print_scaled(t);
			if (type(p) == SPLIT_UP) {
				q = page_head;
				t = 0;
				do {
					q = link(q);
					if (type(q) == INS_NODE
					&& subtype(q) == subtype(p))
						incr(t);
				} while (q != broken_ins(p));
				print(", #");
				print_int(t);
				print(" might split");
			}
			p = link(p);
		}
	}
}
コード例 #11
0
ファイル: extensions.c プロジェクト: clerkma/texlive-mobile
void write_out(halfword p)
{
int old_setting;
int j;
char*s,*ss;
int callback_id;
int lua_retval;
expand_macros_in_tokenlist(p);
old_setting= selector;
j= write_stream(p);
if(file_can_be_written(j)){
selector= j;
}else if((j==term_only)&&(selector==term_and_log)){

selector= log_only;
tprint_nl("");
}else{
tprint_nl("");
}
s= tokenlist_to_cstring(def_ref,false,NULL);
if(selector<no_print){

callback_id= callback_defined(process_output_buffer_callback);
if(callback_id> 0){

lua_retval= run_callback(callback_id,"S->S",s,&ss);
if((lua_retval==true)&&(ss!=NULL)){
xfree(s);
s= ss;
}
}
}
tprint(s);
xfree(s);
print_ln();
flush_list(def_ref);
selector= old_setting;
}
コード例 #12
0
ファイル: eval.c プロジェクト: syntheticpp/cpptex
void tex::show_activities ()
	{
	int	a;
	int	m;
	list	*p;

	*nest_ptr = cur_list;
	print_nl(null_str);
	print_ln();
	for (p = nest_ptr; p >= nest; decr(p)) {
		m = p->mode_field;
		a = p->aux_field;
		print_nl("### ");
		print_mode(m);
		print(" entered at line ");
		print_int(abs(p->ml_field));
		if (m == HMODE) {
			if (p->lhm_field != 2 || p->rhm_field != 3) {
				print(" (hyphenmin ");
				print_int(p->lhm_field);
				print(",");
				print_int(p->rhm_field);
				print(")");
			}
		}
		if (p->ml_field < 0) {
			print(" (\\output routine)");
		}
		if (p == nest) {
			show_cur_page();
			if (link(contrib_head) != null)
				print_nl("### recent contributions:");
		}
		show_box(link(p->head_field));
		switch (abs(m) / (MAX_COMMAND + 1))
		{
		case 0:
			print_nl("prevdepth ");
			if (a <= IGNORE_DEPTH) {
				print("ignored");
			} else {
				print_scaled(a);
			}
			if (p->pg_field != 0) {
				print(", prevgraf ");
				print_int(p->pg_field);
				print(" line");
				if (p->pg_field != 1)
					print("s");
			}
			break;

		case 1:
			print_nl("spacefactor ");
			print_int(a);
			if (m > 0 && p->clang_field > 0) {
				print(", current language ");
				print_int(p->clang_field);
			}
			break;

		case 2:
			if (a != null) {
				print_nl("this will be denominator of:");
				show_box(a);
			}
			break;
		}
	}
}
コード例 #13
0
ファイル: nesting.c プロジェクト: live-clones/luatex
void show_activities(void)
{
    /*tex Index into |nest|: */
    int p;
    /*tex The mode: */
    int m;
    /*tex For showing the current page: */
    halfword q, r;
    /*tex Ditto: */
    int t;
    tprint_nl("");
    print_ln();
    for (p = nest_ptr; p >= 0; p--) {
        m = nest[p].mode_field;
        tprint_nl("### ");
        print_mode(m);
        tprint(" entered at line ");
        print_int(abs(nest[p].ml_field));
        if (nest[p].ml_field < 0)
            tprint(" (\\output routine)");
        if (p == 0) {
            /*tex Show the status of the current page */
            if (page_head != page_tail) {
                tprint_nl("### current page:");
                if (output_active)
                    tprint(" (held over for next output)");
                show_box(vlink(page_head));
                if (page_contents > empty) {
                    tprint_nl("total height ");
                    print_totals();
                    tprint_nl(" goal height ");
                    print_scaled(page_goal);
                    r = vlink(page_ins_head);
                    while (r != page_ins_head) {
                        print_ln();
                        tprint_esc("insert");
                        t = subtype(r);
                        print_int(t);
                        tprint(" adds ");
                        if (count(t) == 1000)
                            t = height(r);
                        else
                            t = x_over_n(height(r), 1000) * count(t);
                        print_scaled(t);
                        if (type(r) == split_up_node) {
                            q = page_head;
                            t = 0;
                            do {
                                q = vlink(q);
                                if ((type(q) == ins_node)
                                    && (subtype(q) == subtype(r)))
                                    incr(t);
                            } while (q != broken_ins(r));
                            tprint(", #");
                            print_int(t);
                            tprint(" might split");
                        }
                        r = vlink(r);
                    }
                }
            }
            if (vlink(contrib_head) != null)
                tprint_nl("### recent contributions:");
        }
        show_box(vlink(nest[p].head_field));
        /*tex Show the auxiliary field, |a|. */
        switch (abs(m) / (max_command_cmd + 1)) {
            case 0:
                tprint_nl("prevdepth ");
                if (nest[p].prev_depth_field <= ignore_depth)
                    tprint("ignored");
                else
                    print_scaled(nest[p].prev_depth_field);
                if (nest[p].pg_field != 0) {
                    tprint(", prevgraf ");
                    print_int(nest[p].pg_field);
                    if (nest[p].pg_field != 1)
                        tprint(" lines");
                    else
                        tprint(" line");
                }
                break;
            case 1:
                tprint_nl("spacefactor ");
                print_int(nest[p].space_factor_field);
                break;
            case 2:
                if (nest[p].incompleat_noad_field != null) {
                    tprint("this will be denominator of:");
                    show_box(nest[p].incompleat_noad_field);
                }
                break;
        }
    }
}
コード例 #14
0
ファイル: tie.c プロジェクト: luigiScarso/mflua
int main P2C(int,argc,string*,argv)
#line 1238 "../../../texk/web2c/tiedir/tie.w"
{{/*12:*/
#line 408 "../../../texk/web2c/tiedir/tie.w"

int i;


/*:12*/
#line 1238 "../../../texk/web2c/tiedir/tie.w"

/*10:*/
#line 296 "../../../texk/web2c/tiedir/tie.w"

xchr[32]= ' ';
xchr[33]= '!';
xchr[34]= '\"';
xchr[35]= '#';
xchr[36]= '$';
xchr[37]= '%';
xchr[38]= '&';
xchr[39]= '\'';
xchr[40]= '(';
xchr[41]= ')';
xchr[42]= '*';
xchr[43]= '+';
xchr[44]= ',';
xchr[45]= '-';
xchr[46]= '.';
xchr[47]= '/';
xchr[48]= '0';
xchr[49]= '1';
xchr[50]= '2';
xchr[51]= '3';
xchr[52]= '4';
xchr[53]= '5';
xchr[54]= '6';
xchr[55]= '7';
xchr[56]= '8';
xchr[57]= '9';
xchr[58]= ':';
xchr[59]= ';';
xchr[60]= '<';
xchr[61]= '=';
xchr[62]= '>';
xchr[63]= '?';
xchr[64]= '@';
xchr[65]= 'A';
xchr[66]= 'B';
xchr[67]= 'C';
xchr[68]= 'D';
xchr[69]= 'E';
xchr[70]= 'F';
xchr[71]= 'G';
xchr[72]= 'H';
xchr[73]= 'I';
xchr[74]= 'J';
xchr[75]= 'K';
xchr[76]= 'L';
xchr[77]= 'M';
xchr[78]= 'N';
xchr[79]= 'O';
xchr[80]= 'P';
xchr[81]= 'Q';
xchr[82]= 'R';
xchr[83]= 'S';
xchr[84]= 'T';
xchr[85]= 'U';
xchr[86]= 'V';
xchr[87]= 'W';
xchr[88]= 'X';
xchr[89]= 'Y';
xchr[90]= 'Z';
xchr[91]= '[';
xchr[92]= '\\';
xchr[93]= ']';
xchr[94]= '^';
xchr[95]= '_';
xchr[96]= '`';
xchr[97]= 'a';
xchr[98]= 'b';
xchr[99]= 'c';
xchr[100]= 'd';
xchr[101]= 'e';
xchr[102]= 'f';
xchr[103]= 'g';
xchr[104]= 'h';
xchr[105]= 'i';
xchr[106]= 'j';
xchr[107]= 'k';
xchr[108]= 'l';
xchr[109]= 'm';
xchr[110]= 'n';
xchr[111]= 'o';
xchr[112]= 'p';
xchr[113]= 'q';
xchr[114]= 'r';
xchr[115]= 's';
xchr[116]= 't';
xchr[117]= 'u';
xchr[118]= 'v';
xchr[119]= 'w';
xchr[120]= 'x';
xchr[121]= 'y';
xchr[122]= 'z';
xchr[123]= '{';
xchr[124]= '|';
xchr[125]= '}';
xchr[126]= '~';
xchr[0]= ' ';xchr[0x7F]= ' ';


/*:10*//*13:*/
#line 429 "../../../texk/web2c/tiedir/tie.w"

for(i= 1;i<32;xchr[i++]= ' ');
xchr[tab_mark]= '\t';
xchr[form_feed]= '\f';
xchr[nl_mark]= '\n';


/*:13*//*14:*/
#line 440 "../../../texk/web2c/tiedir/tie.w"

for(i= first_text_char;i<=last_text_char;xord[i++]= 32)do_nothing;
for(i= 1;i<=126;i++)xord[xchr[i]]= i;





/*:14*/
#line 1239 "../../../texk/web2c/tiedir/tie.w"

}
#line 106 "../../../texk/web2c/tiedir/tie-w2c.ch"
print(banner);
print_ln(versionstring);
print_ln(copyright);
#line 1243 "../../../texk/web2c/tiedir/tie.w"
actual_input= 0;
out_mode= normal;
/*56:*/
#line 1177 "../../../texk/web2c/tiedir/tie.w"

{int act_arg;
if(argc<5||argc> max_file_index+4-1)usage();
no_ch= -1;
for(act_arg= 1;act_arg<argc;act_arg++){
if(argv[act_arg][0]=='-')/*57:*/
#line 1195 "../../../texk/web2c/tiedir/tie.w"

if(prod_chf!=unknown)usage();
else
switch(argv[act_arg][1]){
case'c':
case'C':prod_chf= chf;break;
case'm':
case'M':prod_chf= master;break;
default:usage();
}


/*:57*/
#line 1182 "../../../texk/web2c/tiedir/tie.w"

else/*58:*/
#line 1211 "../../../texk/web2c/tiedir/tie.w"

{if(no_ch==(-1)){
out_name= argv[act_arg];
}else{register input_description*inp_desc;
inp_desc= (input_description*)
malloc(sizeof(input_description));
if(inp_desc==NULL)
fatal_error("! No memory for descriptor");

inp_desc->mode= search;
inp_desc->line= 0;
inp_desc->type_of_file= chf;
inp_desc->limit= 0;
inp_desc->name_of_file= argv[act_arg];
input_organization[no_ch]= inp_desc;
}
incr(no_ch);
}


/*:58*/
#line 1183 "../../../texk/web2c/tiedir/tie.w"

}
if(no_ch<=0||prod_chf==unknown)usage();
}


/*:56*/
#line 1245 "../../../texk/web2c/tiedir/tie.w"

/*34:*/
#line 788 "../../../texk/web2c/tiedir/tie.w"

{
out_file= fopen(out_name,"w");
if(out_file==NULL){
fatal_error("! Could not open/create output file");

}
}


/*:34*/
#line 1246 "../../../texk/web2c/tiedir/tie.w"

/*36:*/
#line 809 "../../../texk/web2c/tiedir/tie.w"

{input_organization[0]->the_file= 
fopen(input_organization[0]->name_of_file,"r");
if(input_organization[0]->the_file==NULL)
fatal_error("! Could not open master file");

print2("(%s)",input_organization[0]->name_of_file);
term_new_line;
input_organization[0]->type_of_file= master;
get_line(0);
}

/*:36*/
#line 1247 "../../../texk/web2c/tiedir/tie.w"

/*37:*/
#line 825 "../../../texk/web2c/tiedir/tie.w"

{file_index i;
i= 1;
while(i<no_ch){
input_organization[i]->the_file= 
fopen(input_organization[i]->name_of_file,"r");
if(input_organization[i]->the_file==NULL)
fatal_error("!Could not open change file");

print2("(%s)",input_organization[i]->name_of_file);
term_new_line;
init_change_file(i,true);
incr(i);
}
}





/*:37*/
#line 1248 "../../../texk/web2c/tiedir/tie.w"

/*53:*/
#line 1128 "../../../texk/web2c/tiedir/tie.w"

actual_input= 0;
input_has_ended= false;
while(input_has_ended==false||actual_input!=0)
/*45:*/
#line 970 "../../../texk/web2c/tiedir/tie.w"

{file_index test_file;
/*46:*/
#line 985 "../../../texk/web2c/tiedir/tie.w"

{register input_description*inp_desc;
while(actual_input> 0&&e_of_ch_module(actual_input)){
inp_desc= input_organization[actual_input];
if(inp_desc->type_of_file==master){

fatal_error("! This can't happen: change file is master file");

}
inp_desc->mode= search;
init_change_file(actual_input,true);
while((input_organization[actual_input]->mode!=reading
&&actual_input> 0))decr(actual_input);
}
}


/*:46*/
#line 972 "../../../texk/web2c/tiedir/tie.w"

if(input_has_ended&&actual_input==0)break;
/*47:*/
#line 1009 "../../../texk/web2c/tiedir/tie.w"

test_input= none;
test_file= actual_input;
while(test_input==none&&test_file<no_ch-1){
incr(test_file);
switch(input_organization[test_file]->mode){
case search:if(lines_dont_match(actual_input,test_file)==false){
input_organization[test_file]->mode= test;
test_input= test_file;
}
break;
case test:if(lines_dont_match(actual_input,test_file)==true){

input_organization[test_file]->mode= search;
err_print("! Sections do not match")(actual_input);

err_loc(test_file);
init_change_file(test_file,false);
}else test_input= test_file;
break;
case reading:do_nothing;
break;
case ignore:do_nothing;
break;
}
}


/*:47*/
#line 974 "../../../texk/web2c/tiedir/tie.w"

/*48:*/
#line 1043 "../../../texk/web2c/tiedir/tie.w"

if(prod_chf==chf){
loop{
/*49:*/
#line 1057 "../../../texk/web2c/tiedir/tie.w"

if(out_mode==normal){
if(test_input!=none){
fputc(map_xchr(64),out_file);fputc(map_xchr(120),out_file);
new_line(out_file);
out_mode= pre;
}else break;
}


/*:49*/
#line 1046 "../../../texk/web2c/tiedir/tie.w"

/*50:*/
#line 1071 "../../../texk/web2c/tiedir/tie.w"


if(out_mode==pre){
if(test_input==none){
fputc(map_xchr(64),out_file);fputc(map_xchr(121),out_file);
new_line(out_file);
out_mode= post;
}else{
if(input_organization[actual_input]->type_of_file==master)
put_line(actual_input);
break;
}
}


/*:50*/
#line 1047 "../../../texk/web2c/tiedir/tie.w"

/*51:*/
#line 1092 "../../../texk/web2c/tiedir/tie.w"

if(out_mode==post){
if(input_organization[actual_input]->type_of_file==chf){
if(test_input==none)put_line(actual_input);
break;
}else{
fputc(map_xchr(64),out_file);fputc(map_xchr(122),out_file);
new_line(out_file);
new_line(out_file);
out_mode= normal;
}
}


/*:51*/
#line 1048 "../../../texk/web2c/tiedir/tie.w"

}
}else
if(test_input==none)put_line(actual_input);
コード例 #15
0
ファイル: dpx.c プロジェクト: ufo5260987423/yandytex-src
void pdf_ship_out (pointer p)
{
  integer page_loc;
  char j, k;

  if (tracing_output > 0)
  {
    print_nl("");
    print_ln();
    prints("Completed box being shipped out");
  }

  if (term_offset > max_print_line - 9)
    print_ln();
  else if ((term_offset > 0) || (file_offset > 0))
    print_char(' ');

  print_char('[');
  j = 9;

  while ((count(j) == 0) && (j > 0))
    decr(j);

  for (k = 0; k <= j; k++)
  {
    print_int(count(k));

    if (k < j)
      print_char('.');
  }

  update_terminal();

  if (tracing_output > 0)
  {
    print_char(']');
    begin_diagnostic();
    show_box(p);
    end_diagnostic(true);
  }

  if ((height(p) > max_dimen) || (depth(p) > max_dimen) ||
      (height(p) + depth(p) + v_offset > max_dimen) ||
      (width(p) + h_offset > max_dimen))
  {
    print_err("Huge page cannot be shipped out");
    help2("The page just created is more than 18 feet tall or",
      "more than 18 feet wide, so I suspect something went wrong.");
    error();

    if (tracing_output <= 0)
    {
      begin_diagnostic();
      print_nl("The following box has been deleted:");
      show_box(p);
      end_diagnostic(true);
    }

    goto done;
  }

  if (height(p) + depth(p) + v_offset > max_v)
    max_v = height(p) + depth(p) + v_offset;

  if (width(p) + h_offset > max_h)
    max_h = width(p) + h_offset;

  dvi_h = 0;
  dvi_v = 0;
  cur_h = h_offset;
  dvi_f = null_font;
  ensure_pdf_open();

  if (total_pages == 0)
  {
    pdf_set_version(5);
    pdf_set_compression(9);
    pdf_init_fontmaps();
    read_config_file("dvipdfmx.cfg");
    pdf_doc_set_producer("Y&YTeX 2.3.0");
    pdf_doc_set_creator("TeX");
    pdf_files_init();
    pdf_init_device(0.000015202, 2, 0);
    // TODO: pdfTeX's page width and height.
    // page_width  = pdf_page_width  != 0 ? <- : width(p)             + 2 * (pdf_h_origin + h_offset);
    // page_height = pdf_page_height != 0 ? <- : height(p) + depth(p) + 2 * (pdf_v_origin + v_offset);
    pdf_open_document(pdf_file_name, 0, 595.0, 842.0, 0, 0, (1 << 4));
    spc_exec_at_begin_document();
  }

  page_loc = dvi_offset + dvi_ptr;
  pdf_doc_begin_page(1.0, 72.0, 770.0);
  spc_exec_at_begin_page();

  last_bop = page_loc;
  cur_v = height(p) + v_offset;
  temp_ptr = p;

  if (type(p) == vlist_node)
    pdf_vlist_out();
  else
    pdf_hlist_out();

  spc_exec_at_end_page();
  pdf_doc_end_page();
  incr(total_pages);
  cur_s = -1;

done:
  if (tracing_output <= 0)
    print_char(']');

  dead_cycles = 0;
  update_terminal();

#ifdef STAT
  if (tracing_stats > 1)
  {
    print_nl("Memory usage before: ");
    print_int(var_used);
    print_char('&');
    print_int(dyn_used);
    print_char(';');
  }
#endif

  flush_node_list(p);

#ifdef STAT
  if (tracing_stats > 1)
  {
    prints(" after: ");
    print_int(var_used);
    print_char('&');
    print_int(dyn_used);
    prints("; still utouched: ");
    print_int(hi_mem_min - lo_mem_max - 1);
    print_ln();
  }
#endif
}
コード例 #16
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void print_char(int s)
{
if(s<0||s> 255){
formatted_warning("print","weird character %i",s);
return;
}
if(s==new_line_char_par){
if(selector<pseudo){
print_ln();
return;
}
}
switch(selector){
case no_print:
break;
case term_only:
fix_term_offset(s);
wterm_char(s);
incr(term_offset);
if(term_offset==max_print_line){
wterm_cr();
term_offset= 0;
}
break;
case log_only:
fix_log_offset(s);
wlog(s);
incr(file_offset);
if(file_offset==max_print_line){
wlog_cr();
file_offset= 0;
}
break;
case term_and_log:
fix_term_offset(s);
fix_log_offset(s);
wterm_char(s);
wlog(s);
incr(term_offset);
incr(file_offset);
if(term_offset==max_print_line){
wterm_cr();
term_offset= 0;
}
if(file_offset==max_print_line){
wlog_cr();
file_offset= 0;
}
break;
case pseudo:
if(tally<trick_count)
trick_buf[tally%error_line]= (packed_ASCII_code)s;
break;
case new_string:
append_char(s);
break;
default:
fprintf(write_file[selector],"%c",s);
}
incr(tally);
}
コード例 #17
0
ファイル: box.c プロジェクト: syntheticpp/cpptex
void tex::show_node_list(ptr p)
	{
	int	n;

	if (cur_length() > depth_threshold) {
		if (p > null)
			print(" []");
		return;
	}
	n = 0;
	while (p > null) {
		print_ln();
		print_str();
		incr(n);
		if (n > breadth_max) {
			print("etc.");
			return;
		}
		if (is_char_node(p)) {
			print_font_and_char(p);
		} else {
			switch (type(p))
			{
			case HLIST_NODE:
			case VLIST_NODE:
			case UNSET_NODE:
				show_box1(p);
				break;

			case RULE_NODE:
				show_rule(p);
				break;
			
			case INS_NODE:
				show_insertion(p);
				break;
			
			case WHATSIT_NODE:
				show_whatsit(p);
				break;
			
			case GLUE_NODE:
				show_glue(p);
				break;
			
			case KERN_NODE:
				show_kern(p);
				break;
			
			case MATH_NODE:
				show_math(p);
				break;
			
			case LIGATURE_NODE:
				show_ligature(p);
				break;

			case PENALTY_NODE:
				show_penalty(p);
				break;
		
			case DISC_NODE:
				show_discretionary(p);
				break;
			
			case MARK_NODE:
				show_mark(p);
				break;
			
			case ADJUST_NODE:
				show_adjust(p);
				break;
			
			case STYLE_NODE:
				print_style(subtype(p));
				break;
			
			case CHOICE_NODE:
				show_choice_node(p);
				break;

			case INNER_NOAD:
			case ORD_NOAD:
			case OP_NOAD:
			case BIN_NOAD:
			case REL_NOAD:
			case OPEN_NOAD:
			case CLOSE_NOAD:
			case PUNCT_NOAD:
			case RADICAL_NOAD:
			case OVER_NOAD:
			case UNDER_NOAD:
			case VCENTER_NOAD:
			case ACCENT_NOAD:
			case LEFT_NOAD:
			case RIGHT_NOAD:
				show_normal_noad(p);
				break;
			
			case FRACTION_NOAD:
				show_fraction_noad(p);
				break;

			default:
				print("Unknown node type!");
				break;
			}
		}
		p = link(p);
	}
}