use super::*;
use f2rust_std::*;
const FTSIZE: i32 = 5000;
const RSVUNT: i32 = 2;
const SCRUNT: i32 = 1;
const UTSIZE: i32 = ((20 + SCRUNT) + RSVUNT);
const READ: i32 = 1;
const WRITE: i32 = 2;
const SCRTCH: i32 = 3;
const NEW: i32 = 4;
const NUMAMH: i32 = 4;
const BIGI3E: i32 = 1;
const LTLI3E: i32 = 2;
const VAXGFL: i32 = 3;
const VAXDFL: i32 = 4;
const NUMBFF: i32 = 4;
const STRSIZ: i32 = 8;
const STRLEN: i32 = ((STRSIZ + 1) * NUMBFF);
const DAF: i32 = 1;
const DAS: i32 = 2;
const NUMARC: i32 = 2;
const RECL: i32 = 1024;
const FILEN: i32 = 255;
const CBFSIZ: i32 = 1024;
pub fn ZZDDHINI(
NATBFF: &mut i32,
SUPBFF: &mut [i32],
NUMSUP: &mut i32,
STRAMH: CharArrayMut,
STRARC: CharArrayMut,
STRBFF: CharArrayMut,
ctx: &mut Context,
) -> f2rust_std::Result<()> {
let mut SUPBFF = DummyArrayMut::new(SUPBFF, 1..);
let mut STRAMH = DummyCharArrayMut::new(STRAMH, None, 1..);
let mut STRARC = DummyCharArrayMut::new(STRARC, None, 1..);
let mut STRBFF = DummyCharArrayMut::new(STRBFF, None, 1..);
let mut LINSTR = [b' '; STRLEN as usize];
let mut TMPSTR = [b' '; STRSIZ as usize];
let mut I: i32 = 0;
let mut DONE: bool = false;
if RETURN(ctx) {
return Ok(());
}
{
let m1__: i32 = 1;
let m2__: i32 = NUMAMH;
let m3__: i32 = 1;
I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
ZZDDHGSD(b"METHOD", I, &mut STRAMH[I], ctx);
I += m3__;
}
}
{
let m1__: i32 = 1;
let m2__: i32 = NUMARC;
let m3__: i32 = 1;
I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
ZZDDHGSD(b"ARCH", I, &mut STRARC[I], ctx);
I += m3__;
}
}
{
let m1__: i32 = 1;
let m2__: i32 = NUMBFF;
let m3__: i32 = 1;
I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
ZZDDHGSD(b"BFF", I, &mut STRBFF[I], ctx);
I += m3__;
}
}
ZZPLATFM(b"FILE_FORMAT", &mut TMPSTR, ctx);
UCASE(&TMPSTR.clone(), &mut TMPSTR, ctx);
*NATBFF = ISRCHC(&TMPSTR, NUMBFF, STRBFF.as_arg());
if (*NATBFF == 0) {
CHKIN(b"ZZDDHINI", ctx)?;
SETMSG(b"The binary file format, \'#\', is not supported by this version of the toolkit. This is a serious problem, contact NAIF.", ctx);
ERRCH(b"#", &TMPSTR, ctx);
SIGERR(b"SPICE(BUG)", ctx)?;
CHKOUT(b"ZZDDHINI", ctx)?;
return Ok(());
}
ZZPLATFM(b"READS_BFF", &mut LINSTR, ctx);
I = 0;
DONE = false;
while !DONE {
I = (I + 1);
NEXTWD(&LINSTR.clone(), &mut TMPSTR, &mut LINSTR);
DONE = ((I > NUMBFF) || fstr::eq(&TMPSTR, b" "));
if !DONE {
SUPBFF[I] = ISRCHC(&TMPSTR, NUMBFF, STRBFF.as_arg());
if (SUPBFF[I] == 0) {
CHKIN(b"ZZDDHINI", ctx)?;
SETMSG(b"The binary file format, \'#\', is not supported by this version of the toolkit. This is a serious problem, contact NAIF. ", ctx);
ERRCH(b"#", &TMPSTR, ctx);
SIGERR(b"SPICE(BUG)", ctx)?;
CHKOUT(b"ZZDDHINI", ctx)?;
return Ok(());
}
}
}
*NUMSUP = (I - 1);
Ok(())
}