]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - rogue/save.c
Remove definition of __cputchar.
[bsdgames-darwin.git] / rogue / save.c
index c0ce00335f1fd114803dab033ab565f4bbeb5b38..8c38a4d49e6872aeaa82e7b15bcf7fd6740895c5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: save.c,v 1.5 1998/11/10 13:01:32 hubertf Exp $ */
+/*     $NetBSD: save.c,v 1.7 1999/09/18 19:38:54 jsm Exp $     */
 
 /*
  * Copyright (c) 1988, 1993
@@ -41,7 +41,7 @@
 #if 0
 static char sccsid[] = "@(#)save.c     8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: save.c,v 1.5 1998/11/10 13:01:32 hubertf Exp $");
+__RCSID("$NetBSD: save.c,v 1.7 1999/09/18 19:38:54 jsm Exp $");
 #endif
 #endif /* not lint */
 
@@ -83,15 +83,23 @@ save_into_file(sfile)
 {
        FILE *fp;
        int file_id;
-       char name_buffer[80];
+       char *name_buffer;
+       size_t len;
        char *hptr;
        struct rogue_time rt_buf;
 
        if (sfile[0] == '~') {
                if ((hptr = md_getenv("HOME")) != NULL) {
-                       (void) strcpy(name_buffer, hptr);
-                       (void) strcat(name_buffer, sfile+1);
-                       sfile = name_buffer;
+                       len = strlen(hptr) + strlen(sfile);
+                       name_buffer = md_malloc(len);
+                       if (name_buffer == NULL) {
+                               message("out of memory for save file name", 0);
+                               sfile = error_file;
+                       } else {
+                               (void) strcpy(name_buffer, hptr);
+                               (void) strcat(name_buffer, sfile+1);
+                               sfile = name_buffer;
+                       }
                }
        }
        if (    ((fp = fopen(sfile, "w")) == NULL) ||
@@ -367,7 +375,7 @@ r_read(fp, buf, n)
        char *buf;
        int n;
 {
-       if (fread(buf, sizeof(char), n, fp) != n) {
+       if (fread(buf, sizeof(char), n, fp) != (size_t)n) {
                clean_up("read() failed, don't know why");
        }
 }
@@ -379,7 +387,7 @@ r_write(fp, buf, n)
        int n;
 {
        if (!write_failed) {
-               if (fwrite(buf, sizeof(char), n, fp) != n) {
+               if (fwrite(buf, sizeof(char), n, fp) != (size_t)n) {
                        message("write() failed, don't know why", 0);
                        sound_bell();
                        write_failed = 1;