use std::io::Write;
use std::iter::Iterator;
use anyhow::Result;
pub fn shq(out: &mut dyn Write, i: & mut dyn Iterator <Item = String>, sep: &str) -> Result<()> {
let mut fullrun = false;
for arg in i {
if fullrun {
write!(out, "{}", sep)?;
}
write!(out, "'")?;
for c in arg.chars() {
if c == '\'' {
write!(out, "'\"'\"'")?;
} else {
write!(out, "{}", c)?;
}
}
write!(out, "'")?;
fullrun = true;
}
Ok(())
}