aboutsummaryrefslogtreecommitdiff
path: root/src/save.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2015-05-31 18:40:52 -0400
committerFranklin Wei <git@fwei.tk>2015-05-31 18:40:52 -0400
commit9ddbcfb5a63d2fb7105ab6fb2e7422858ba1615c (patch)
tree81b0ee57f2d752bec02ebab45344f4eb9545e4b1 /src/save.c
parentd8745b2854d56c6687531a150153b2d28b0f6adb (diff)
downloadmarket-sim-9ddbcfb5a63d2fb7105ab6fb2e7422858ba1615c.zip
market-sim-9ddbcfb5a63d2fb7105ab6fb2e7422858ba1615c.tar.gz
market-sim-9ddbcfb5a63d2fb7105ab6fb2e7422858ba1615c.tar.bz2
market-sim-9ddbcfb5a63d2fb7105ab6fb2e7422858ba1615c.tar.xz
add quicksave option
Diffstat (limited to 'src/save.c')
-rw-r--r--src/save.c33
1 files changed, 21 insertions, 12 deletions
diff --git a/src/save.c b/src/save.c
index 386c666..fdc366a 100644
--- a/src/save.c
+++ b/src/save.c
@@ -63,21 +63,11 @@ size_t ck_write(const char *buf, size_t sz, size_t nmemb, FILE *f)
return nmemb;
}
-void save_handler(struct player_t *player)
+void save_portfolio(struct player_t *player, const char *filename)
{
- if(restricted)
- {
- output("Saving forbidden in restricted mode.\n");
- return;
- }
- output("Enter the file to save your portfolio in: ");
-
- char *filename = read_string();
-
output("Writing data...\n");
- FILE *f = fopen(filename, "wb");
- free(filename);
+ FILE *f = fopen(filename, "wb");
cksum = 0;
@@ -120,5 +110,24 @@ void save_handler(struct player_t *player)
fclose(f);
+ if(player->filename && player->filename != filename)
+ free(player->filename);
+
+ player->filename = (char*)filename;
+
output("Done saving.\n");
}
+
+void save_handler(struct player_t *player)
+{
+ if(restricted)
+ {
+ output("Saving forbidden in restricted mode.\n");
+ return;
+ }
+ output("Enter the file to save your portfolio in: ");
+
+ char *filename = read_string();
+
+ save_portfolio(player, filename);
+}