Various error-handling fixes, mostly in Unix PuTTY but one (failure
[u/mdw/putty] / mac / macstore.c
index 30eb1cf..548b7ac 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: macstore.c,v 1.17 2003/03/27 22:46:28 ben Exp $ */
+/* $Id: macstore.c,v 1.19 2003/04/01 18:10:25 simon Exp $ */
 
 /*
  * macstore.c: Macintosh-specific impementation of the interface
@@ -116,13 +116,15 @@ struct write_settings {
     FSSpec dstfile;
 };
 
-void *open_settings_w(char const *sessionname) {
+void *open_settings_w(char const *sessionname, char **errmsg) {
     short sessVRefNum;
     long sessDirID;
     OSErr error;
     Str255 psessionname;
     FSSpec dstfile;
-    
+
+    *errmsg = NULL;
+
     error = get_session_dir(kCreateFolder, &sessVRefNum, &sessDirID);
     if (error != noErr) return NULL;
 
@@ -149,7 +151,7 @@ void *open_settings_w_fsp(FSSpec *dstfile)
     OSErr error;
     Str255 tmpname;
 
-    ws = smalloc(sizeof *ws);
+    ws = snew(struct write_settings);
     ws->dstfile = *dstfile;
 
     /* Create a temporary file to save to first. */
@@ -278,7 +280,7 @@ void *open_settings_r_fsp(FSSpec *sessfile)
     fd = FSpOpenResFile(sessfile, fsRdPerm);
     if (fd == 0) {error = ResError(); goto out;}
 
-    handle = smalloc(sizeof *handle);
+    handle = snew(int);
     *handle = fd;
     return handle;