#![allow(dead_code, non_camel_case_types, non_snake_case, unused_assignments, unused_must_use, unused_mut, unused_variables)]
use crate::runtime::*;
impl<'resources> PortableTexEngine<'resources> {
pub(crate) unsafe fn terminput(&mut self) -> EngineFlow<()> {
let mut k: integer = 0;
Self::boundary_flush_file(self.state.terminal_output);
if Self::boundary_input_line(
self as *mut PortableTexEngine<'_>,
self.state.termin as *mut UFILE,
) == 0
{
self.state.curinput.limitfield = 0 as i32 as halfword;
match (&mut *(self as *mut PortableTexEngine<'_>))
.zfatalerror(65543 as i64 as strnumber)?
{};
}
self.state.termoffset = 0 as i32 as integer;
self.state.selector = self.state.selector.wrapping_sub(1);
if self.state.last != self.state.first {
let mut for_end: integer = 0;
k = self.state.first;
for_end = (self.state.last as i32 - 1 as i32) as integer;
if k <= for_end {
loop {
(&mut *(self as *mut PortableTexEngine<'_>))
.zprint(*self.state.buffer.offset(k as isize));
let fresh8 = k;
k = k + 1;
if !(fresh8 < for_end) {
break;
}
}
}
}
(&mut *(self as *mut PortableTexEngine<'_>)).println();
self.state.selector = self.state.selector.wrapping_add(1);
Ok(())
}
pub(crate) unsafe fn thetoks(&mut self) -> EngineFlow<halfword> {
let mut Result: halfword = 0;
let mut mem: *mut memoryword = self.state.zmem.as_mut_ptr();
let mut oldsetting_0: eightbits = 0;
let mut p: halfword = 0;
let mut q: halfword = 0;
let mut r: halfword = 0;
let mut b: poolpointer = 0;
let mut c_0: smallnumber = 0;
if self.state.curchr as i32 & 1 as i32 != 0 {
c_0 = self.state.curchr as smallnumber;
(&mut *(self as *mut PortableTexEngine<'_>)).scangeneraltext()?;
if c_0 as i32 == 1 as i32 {
Result = self.state.curval as halfword;
} else {
oldsetting_0 = self.state.selector;
self.state.selector = 21 as eightbits;
b = self.state.poolptr;
p = (&mut *(self as *mut PortableTexEngine<'_>)).getavail()?;
(*mem.offset(p as isize)).hh.v.RH = (*mem
.offset((self.state.memtop as i32 - 3 as i32) as isize))
.hh
.v
.RH;
(&mut *(self as *mut PortableTexEngine<'_>)).ztokenshow(p);
(&mut *(self as *mut PortableTexEngine<'_>)).zflushlist(p);
self.state.selector = oldsetting_0;
Result = (&mut *(self as *mut PortableTexEngine<'_>)).zstrtoks(b)?;
}
return Ok(Result);
}
(&mut *(self as *mut PortableTexEngine<'_>)).getxtoken()?;
(&mut *(self as *mut PortableTexEngine<'_>))
.zscansomethinginternal(5 as i32 as smallnumber, 0 as i32)?;
if self.state.curvallevel as i32 >= 4 as i32 {
p = (self.state.memtop as i32 - 3 as i32) as halfword;
(*mem.offset(p as isize)).hh.v.RH = -(268435455 as i64) as halfword;
if self.state.curvallevel as i32 == 4 as i32 {
q = (&mut *(self as *mut PortableTexEngine<'_>)).getavail()?;
(*mem.offset(p as isize)).hh.v.RH = q;
(*mem.offset(q as isize)).hh.v.LH = (33554431 as i64
+ self.state.curval as i64) as halfword;
p = q;
} else if self.state.curval as i64 != -(268435455 as i64) {
r = (*mem.offset(self.state.curval as isize)).hh.v.RH;
while r as i64 != -(268435455 as i64) {
q = self.state.avail;
if q as i64 == -(268435455 as i64) {
q = (&mut *(self as *mut PortableTexEngine<'_>)).getavail()?;
} else {
self.state.avail = (*mem.offset(q as isize)).hh.v.RH;
(*mem.offset(q as isize)).hh.v.RH = -(268435455 as i64)
as halfword;
self.state.dynused += 1;
}
(*mem.offset(p as isize)).hh.v.RH = q;
(*mem.offset(q as isize)).hh.v.LH = (*mem.offset(r as isize))
.hh
.v
.LH;
p = q;
(&mut *(self as *mut PortableTexEngine<'_>)).zsrctokencopy(p, r);
r = (*mem.offset(r as isize)).hh.v.RH;
}
}
Result = p;
} else {
oldsetting_0 = self.state.selector;
self.state.selector = 21 as eightbits;
b = self.state.poolptr;
match self.state.curvallevel as i32 {
0 => {
(&mut *(self as *mut PortableTexEngine<'_>))
.zprintint(self.state.curval);
}
1 => {
(&mut *(self as *mut PortableTexEngine<'_>))
.zprintscaled(self.state.curval);
(&mut *(self as *mut PortableTexEngine<'_>))
.zprint(65697 as i64 as integer);
}
2 => {
(&mut *(self as *mut PortableTexEngine<'_>))
.zprintspec(self.state.curval, 65697 as i64 as strnumber);
(&mut *(self as *mut PortableTexEngine<'_>))
.zdeleteglueref(self.state.curval);
}
3 => {
(&mut *(self as *mut PortableTexEngine<'_>))
.zprintspec(self.state.curval, 65625 as i64 as strnumber);
(&mut *(self as *mut PortableTexEngine<'_>))
.zdeleteglueref(self.state.curval);
}
_ => {}
}
self.state.selector = oldsetting_0;
Result = (&mut *(self as *mut PortableTexEngine<'_>)).zstrtoks(b)?;
}
return Ok(Result);
}
pub(crate) unsafe fn trapzeroglue(&mut self) {
let mut mem: *mut memoryword = self.state.zmem.as_mut_ptr();
if (*mem.offset((self.state.curval as i32 + 1 as i32) as isize)).u.CINT
== 0 as i32
&& (*mem.offset((self.state.curval as i32 + 2 as i32) as isize)).u.CINT
== 0 as i32
&& (*mem.offset((self.state.curval as i32 + 3 as i32) as isize)).u.CINT
== 0 as i32
{
let ref mut fresh171 = (*mem.offset(self.state.membot as isize)).hh.v.RH;
*fresh171 += 1;
(&mut *(self as *mut PortableTexEngine<'_>))
.zdeleteglueref(self.state.curval);
self.state.curval = self.state.membot;
}
}
}