*! 7feb2012 * @@ Written by Elliott Lowy, mostly on the US government's dime (17 US Code ยง 105). program source version 11.1 mata: DoIt() end version 11.1 mata: void DoIt() { //>>def func<< class tabel scalar t adopath=pathsubsysdir(pathlist())' input=st_local("0") if (input=="profile") { files=subfiles("`:environment USERPROFILE'","profile.do",1) if (!length(files)) fowrite(files=pathto("`:environment USERPROFILE'/profile.do"),"*put your startup stuff here"+eol()) } else if (strpos(input,dirsep())) files=input //hope dirsep is always right else { if (strpos(input,".")) files=subfiles(adopath,input) else { files=subfiles(adopath,input+".ado") if (!sum(strlen(files))) files=subfiles(adopath,input+".mata") } } if (length(files)==1) { printf("{txt:%s}\n",files) launchfile(files) } else if (length(files)>1) { t.body=t.setLinks("stata",adorn(`"stata "source "',files,char(34)),files) t.present("-") } else printf("{txt:File not found: }{res:%s}",input) } end