I am defining a program that has non-required options. When the option starts with "no", it doesn't work as expected. If I change it to "No" it works but is case-insensitive in the code (i.e., I can call the option by no... further down in the code).
This is in Stata 16.1, running on Windows.
Is there some feature of Stata I am missing out on, which is why this is proper behavior?
See below MWE
This is in Stata 16.1, running on Windows.
Is there some feature of Stata I am missing out on, which is why this is proper behavior?
See below MWE
Code:
cap program drop doesnt_work
cap program drop works
cap program drop works_but_weird
program define doesnt_work
syntax, [no_option]
if "`no_option'" == "" {
disp "no option was called ..."
}
else {
disp "no-option used!"
}
end
program define works
syntax, [n_option]
if "`n_option'" == "" {
disp "no option was called ..."
}
else {
disp "no-option used!"
}
end
program define works_but_weird
syntax, [No_option]
if "`no_option'" == "" { // note also, case-insensitive (no v.s. No)
disp "no option was called ..."
}
else {
disp "no-option used!"
}
end
doesnt_work // prints "no option was called ..."
doesnt_work, no_option // prints "no option was called ..."
works // prints "no option was called ..."
works, n_option // prints "no-option used!"
works_but_weird // prints "no option was called ..."
works_but_weird, no_option // prints "no-option used!"
