+ char filename[FNLEN];
+ FILE *fp;
+
+ *errmsg = NULL;
+
+ /*
+ * Start by making sure the .putty directory and its sessions
+ * subdir actually exist. Ignore error returns from mkdir since
+ * they're perfectly likely to be `already exists', and any
+ * other error will trip us up later on so there's no real need
+ * to catch it now.
+ */
+ make_filename(filename, INDEX_DIR, sessionname);
+ mkdir(filename, 0700);
+ make_filename(filename, INDEX_SESSIONDIR, sessionname);
+ mkdir(filename, 0700);
+
+ make_filename(filename, INDEX_SESSION, sessionname);
+ fp = fopen(filename, "w");
+ if (!fp) {
+ *errmsg = dupprintf("Unable to create %s: %s",
+ filename, strerror(errno));
+ return NULL; /* can't open */
+ }
+ return fp;
+}
+
+void write_setting_s(void *handle, const char *key, const char *value)
+{
+ FILE *fp = (FILE *)handle;
+ fprintf(fp, "%s=%s\n", key, value);
+}
+
+void write_setting_i(void *handle, const char *key, int value)
+{
+ FILE *fp = (FILE *)handle;
+ fprintf(fp, "%s=%d\n", key, value);