*!19jun2015 * @@ Written by Elliott Lowy, mostly on the US government's dime (17 US Code ยง 105). program lowyupdate version 11 syntax [anything],[Compile] qui mata mata mlib index mata: DoIt() if (!mi("`compile'")&!mi("`dopath'")) { if (mi("`anything'")) { do `"`dopath'"' } else { do `"`dopath'"' $el_base/v`anything' } } end version 11 mata: void DoIt() { if (!direxists(c("sysdir_plus")+"l")) mkdir(c("sysdir_plus")+"l") //mf lsd=findfile("lowyseattle.do") if (strlen(lsd)) { st_local("dopath",lsd) dvers=substr(cat(lsd,1,1),3) } else dvers="None" printf("{space 1}{txt:Source version (ie, newest update):} {res:%s}\n",dvers) lsm=findfile("lowyseattle.mlib") if (strlen(lsm)) { stata(`"capture mata: st_local("sv",lowyseattlev())"') mvers=st_local("sv") b1=strpos(mvers,"[")+1 b2=strpos(mvers,"]") sv=strtoreal(substr(mvers,b1,b2-b1)) mvers=substr(mvers,b2+2) } else mvers="None" printf("{txt:Library version (ie, current):}{space 6} {res:%s}\n",mvers) if (length(sv)) { printf("{txt:Library compiled under Stata:}{space 7} {res:%f}\n",sv) if (mvers!="None"&sv>c("stata_version")) printf("{err:The existing library was compiled in a later version of Stata than this one; it can't be used.}\n") } if (strlen(lsd)) printf(`"\n{txt:Click {stata "lowyupdate, compile":compile} to create a working library from the source code (for versions 11+)}\n"') } end