Example #1
0
void tex::pop_cond ()
	{
	ptr	p;
	
	p = cond_ptr;
	if_line = if_line_field(p);
	cur_if = subtype(p);
	if_limit = type(p);
	cond_ptr = link(p);
	free_node(p, sizeof(if_t));
	}
Example #2
0
void tex::push_cond ()
	{
	ptr	p;
	
	p = new_node(sizeof(if_t));
	link(p) = cond_ptr;
	type(p) = if_limit;
	subtype(p) = cur_if;
	if_line_field(p) = if_line;
	cond_ptr = p;
	cur_if = cur_chr;
	if_limit = IF_CODE;
	if_line = line;
	}
Example #3
0
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;
}
Example #4
0
void tex::final_cleanup()
	{
	while(open_parens > 0) {
		print(" )");
		decr(open_parens);
		}
	if(cur_level > LEVEL_ONE) {
		std::cerr << "(\\end occurred inside a group at level " 
					 << cur_level - LEVEL_ONE << ")" << std::endl;
		}
	while(cond_ptr != null) {
		std::cerr << "(\\end occurred when ";
		print_cmd_chr(IF_TEST, cur_if);
		if (if_line != 0) {
			print(" on line ");
			print_int(if_line);
			}
		print(" was incomplete)");
		if_line = if_line_field(cond_ptr); 
		cur_if = subtype(cond_ptr);
		cond_ptr = link(cond_ptr);
		}
	close_files();
	}