Fixing a bug in alternatives parsing
Dependencies
- [2]
ODUDDQRYAdding the OCaml interface - [3]
SI454P2VDocumentation and cleanup - [4]
UWQB743KFirst working shell (with ocaml code)
Change contents
- edit in src/deb.rs at line 240
let mut alt_is_open = false; - edit in src/deb.rs at line 242
debug!("parse_dep {:?}", d_); - replacement in src/deb.rs at line 246
match d.pop() {Some(Dep::Alternatives { ref mut alt }) => {alt_is_open = true;if let Dep::Simple(d_) = d_ {if let Some(Dep::Alternatives { ref mut alt }) = d.last_mut() {alt.push(d_)} else {d.push(Dep::Alternatives { alt: vec![d_] })}} else {panic!("{:?}", s);}} else if let Ok((s_, _)) = tag::<_, _, ()>(",").parse(s_) {if alt_is_open {if let Some(Dep::Alternatives { ref mut alt }) = d.last_mut() { - edit in src/deb.rs at line 261
} else {panic!("{:?}", s); - replacement in src/deb.rs at line 265
p => {if let Some(p) = p {d.push(p)}} else {d.push(d_)}alt_is_open = false;s = s_;} else {if alt_is_open {if let Some(Dep::Alternatives { ref mut alt }) = d.last_mut() { - replacement in src/deb.rs at line 274
d.push(Dep::Alternatives { alt: vec![d_] })alt.push(d_) - replacement in src/deb.rs at line 276
panic!("Alternatives {:?}", s)panic!("{:?}", s); - edit in src/deb.rs at line 279
} else {d.push(d_) - edit in src/deb.rs at line 282
} else if let Ok((s_, _)) = tag::<_, _, ()>(",").parse(s_) {d.push(d_); - edit in src/deb.rs at line 283
} else {d.push(d_);s = s_;