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!"