///|
fn auth_arguments(
args : ArrayView[String],
specs : Array[@cli.OptionSpec],
) -> Array[String] {
let output : Array[String] = []
let mut literal = false
let mut value_next = false
for arg in args {
if literal || value_next {
output.push(arg)
value_next = false
continue
}
if arg == "--" {
literal = true
}
if arg == "--auth-no-challenge" {
output.push(arg + "=on")
continue
}
output.push(arg)
if arg.has_prefix("--") && !arg.contains("=") {
value_next = specs.any(spec => spec.takes_value && arg == "--" + spec.name)
} else if arg.has_prefix("-") && !arg.has_prefix("--") {
let chars = arg.iter().to_array()
for index = 1; index < chars.length(); index = index + 1 {
if specs.any(spec => {
spec.takes_value && spec.short == Some(chars[index])
}) {
value_next = index == chars.length() - 1
break
}
}
}
}
output
}