Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: 2 queries re code in -sureg-


From   Joly.Patrick@ic.gc.ca
To   statalist@hsphsun2.harvard.edu
Subject   st: RE: 2 queries re code in -sureg-
Date   Tue, 8 Oct 2002 10:44:43 -0400

Stephen P. Jenkins wrote
> I am going through the code for -sureg-
> in detail (hoping to adapt some of it
> for my own uses!). (Similar code appears
> in related commands.)  I have two queries:
> (1) Why is there no -markout- line to
>     accompany the -markout- one?
>     [Is it because this is handled via
>     -reg3-, which -sureg- calls?]
> (2) What is the undocumented "c_local"
>     command used in the short IsStop
>     auxiliary programme used at the end?
>     Can "local" be used instead?  [The
>     IsStop program in -reg3- is very
>     similar, but uses local rather than
>     c_local.] -findit c_local- is empty.

On question (2), -c_local- defines a macro in the calling routine such that
you could code

prog def myprog
      c_local mymac "whatever"
end

and then call -myprog-

. myprog

. di "`mymac'"
whatever
    
The reason -c_local- is undocumented might be that StataCorp considers it to
be dangerous given that it may overwrite a macro of the same name in the
calling routine.  Arguably, it can be viewed as safer than the alternative
which involves using global macros to pass arguments to between the routine
and a sub.  I say safer since a macro defined by c_local remains a local
macro and excludable to all programs except the calling one.

Patrick Joly
joly.patrick@ic.gc.ca
pat.joly@utoronto.ca
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index