*! version 2.0.1 PR 16Jun97 STB-40 dm52 program define with version 5.0 parse "`*'", parse(:) local WITH "`1'" mac shift 2 local COMM "`*'" if "`WITH'"=="" { di in red "with-list empty" exit 198 } if "`COMM'"=="" { di in red "no command" exit 198 } local varlist "opt ex" local if "opt" local in "opt" local options "noSave" parse "`WITH'" tempvar index quietly { preserve gen long `index'=_n sort `index' local fn "$S_FN" if "`save'"==""{ tempfile old save "`old'" } capture keep `if' `in' if "`varlist'"!="" {local varlist "`varlist' `index'"} capture keep `varlist' } `COMM' if "`save'"=="" { quietly { sort `index' merge `index' using `old' drop _merge global S_FN `fn' restore, not } } end