*! 7apr2011 program globals version 11.1 mata: DoIt() end version 11.1 mata: void DoIt() { class dataset scalar ds globpath=findfile("globals.dta") if (globpath=="") { globpath=mksubdirs("globals.dta") ds.gen("default","i",1) ds.gen("setname","s",10) ds.gen("gname","s",10) ds.gen("content","s",20) ds.writefile(globpath) } subcmd=firstword(cmd=st_local("0")) if (subcmd=="edit") { stata("usel "+globpath) stata("edit") } else { ds.read("data","globals.dta") body=ds.strdat(.,.) if (subcmd=="") { body="Def","Set Name","G Name","Content"\body t=table_createM(body) asarray(t,"head",1) table_code(t,"align","c",4,"<") } else if (anyof(("set","clear"),subcmd)) { syntaxl(cmd,&(set="[anything]")) if (set=="") body=select(body,strtoreal(body[,1])) else body=select(body,body[,2]:==strtrim(set)) nvals=subcmd=="set"?body[,4]:J(rows(body),1,"") for (r=1;r<=rows(body);r++) { st_global(body[r,3],nvals[r]) body[r,4]=st_global(body[r,3]) t=table_createM(body[,3..4]) table_code(t,"align","c",2,"<") table_code(t,"class","c",1,"headtext") } } if (rows(body)) table_present(t) //plus output options } } end