1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//
// GENERATED FILE
//
use super::*;
use f2rust_std::*;
struct SaveVars {
EQUOTE: Vec<u8>,
}
impl SaveInit for SaveVars {
fn new() -> Self {
let mut EQUOTE = vec![b' '; 1 as usize];
fstr::assign(&mut EQUOTE, b"@");
Self { EQUOTE }
}
}
//$ Disclaimer
//
// THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
// CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
// GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
// ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
// PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
// TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
// WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
// PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
// SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
// SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
//
// IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
// BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
// LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
// INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
// REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
// REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
//
// RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
// THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
// CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
// ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
//
pub fn GETEQ(LETTER: &mut [u8], ctx: &mut Context) {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
let LETTER = &mut LETTER[..1 as usize];
//
// This is simply a utility routine that sets the special
// protection character that is used by the symbol and
// query resolution software so that protected strings are
// not translated. There are two entry points GETEQ and SETEQ
// Their functions should be obvious. The default value of
// the special marker is '@'.
//
fstr::assign(LETTER, &save.EQUOTE);
}
pub fn SETEQ(LETTER: &[u8], ctx: &mut Context) {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
let LETTER = &LETTER[..1 as usize];
fstr::assign(&mut save.EQUOTE, LETTER);
}