From: Jack Jansen Date: Mon, 22 Jul 1996 15:26:01 +0000 (+0000) Subject: Added SetFolder method which sets Standard File initial folder X-Git-Tag: v1.4b2~181 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d99d2833837fa2f6f593190db2d7a653101dea0b;p=python Added SetFolder method which sets Standard File initial folder --- diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c index 69725cccc8..9bcdf622bc 100644 --- a/Mac/Modules/macfsmodule.c +++ b/Mac/Modules/macfsmodule.c @@ -31,6 +31,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include #include +#include #include "nfullpath.h" @@ -689,6 +690,33 @@ mfs_StandardPutFile(self, args) return mkvalue("(Oi)",newmfssobject(&reply.sfFile), reply.sfGood); } +/* +** Set initial directory for file dialogs */ +static object * +mfs_SetFolder(self, args) + object *self; + object *args; +{ + FSSpec spec; + FSSpec ospec; + short orefnum; + long oparid; + + /* Get old values */ + orefnum = -LMGetSFSaveDisk(); + oparid = LMGetCurDirStore(); + (void)FSMakeFSSpec(orefnum, oparid, "\pplaceholder", &ospec); + + /* Go to working directory by default */ + (void)FSMakeFSSpec(0, 0, "\p:placeholder", &spec); + if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &spec)) + return NULL; + /* Set standard-file working directory */ + LMSetSFSaveDisk(-spec.vRefNum); + LMSetCurDirStore(spec.parID); + return (object *)newmfssobject(&ospec); +} + static object * mfs_FSSpec(self, args) object *self; /* Not used */ @@ -794,6 +822,7 @@ static struct methodlist mfs_methods[] = { {"PromptGetFile", mfs_PromptGetFile, 1}, {"StandardPutFile", mfs_StandardPutFile, 1}, {"GetDirectory", mfs_GetDirectory, 1}, + {"SetFolder", mfs_SetFolder, 1}, {"FSSpec", mfs_FSSpec, 1}, {"RawFSSpec", mfs_RawFSSpec, 1}, {"RawAlias", mfs_RawAlias, 1},