fix $VAR-names and properly print single control chars
@@ -277,7 +277,7 @@ fn numbervar(n: Integer) -> Var {
let i = n.mod_u(26) as usize;
let j = n.div_rem_floor(Integer::from(26));
- let j = <(Integer, Integer)>::from(j).1;
+ let j = <(Integer, Integer)>::from(j).0;
if j == 0 {
CHAR_CODES[i].to_string()
@@ -843,7 +843,9 @@ fn print_constant(&mut self, c: Constant, op: &Option<DirectedOp>) {
Constant::Char(c) => {
let mut result = String::new();
- if self.quoted {
+ if c.is_control() {
+ result = c.to_string();
+ } else if self.quoted {
result.push('\'');
result += &char_to_string(c);
result.push('\'');
