summaryrefslogtreecommitdiff
path: root/lang/qscheme/files/patch-file.c
diff options
context:
space:
mode:
Diffstat (limited to 'lang/qscheme/files/patch-file.c')
-rw-r--r--lang/qscheme/files/patch-file.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/lang/qscheme/files/patch-file.c b/lang/qscheme/files/patch-file.c
new file mode 100644
index 000000000000..a4f96dad40e6
--- /dev/null
+++ b/lang/qscheme/files/patch-file.c
@@ -0,0 +1,27 @@
+--- file.c.orig 2009-03-03 17:38:43.000000000 +0200
++++ file.c 2009-03-03 17:40:53.000000000 +0200
+@@ -7,11 +7,13 @@
+
+ #define SCM_FILE(x) (FILE *)(SCM_AUX(x))
+ #define SCM_FILEP(x) (SCM_OBJTYPE(x) == SOBJ_T_FILE)
++#define SCM_FILE_SET SCM_AUX_SET
+
+ SOBJ scm_file_new(FILE *fp)
+ {
+ SOBJ new = scm_newcell(SOBJ_T_FILE);
+- SCM_FILE(new) = fp;
++ /*SCM_FILE(new) = fp;*/
++ SCM_FILE_SET(new, fp);
+ return(new);
+ }
+
+@@ -77,7 +79,8 @@
+ int r;
+ if (!SCM_FILEP(x)) SCM_ERR("bad file", x);
+ r = fclose(SCM_FILE(x));
+- SCM_FILE(x) = NULL;
++ /*SCM_FILE_SET(x) = NULL;*/
++ SCM_FILE_SET(x, NULL);
+ return(SCM_MKINUM(r));
+ }
+