f2bb29203c
PR: 132287 Submitted by: Vitaly Magerya <vmagerya at gmail dot com> Approved by: Erik Greenwald <erik dot greenwald at gmail dot com> (maintainer)
38 lines
971 B
C
38 lines
971 B
C
--- unix.c.orig 2009-03-03 18:14:22.000000000 +0200
|
|
+++ unix.c 2009-03-03 18:17:18.000000000 +0200
|
|
@@ -283,12 +283,14 @@
|
|
|
|
#define SCM_DIRP(x) (SCM_OBJTYPE(x) == SOBJ_T_DIR)
|
|
#define SCM_DIR(x) (DIR *)SCM_AUX(x)
|
|
+#define SCM_DIR_SET SCM_AUX_SET
|
|
|
|
void scm_dir_sweep(SOBJ x)
|
|
{
|
|
if (SCM_DIR(x) != NULL) {
|
|
closedir(SCM_DIR(x));
|
|
- SCM_DIR(x) = NULL;
|
|
+ /*SCM_DIR(x) = NULL;*/
|
|
+ SCM_DIR_SET(x, NULL);
|
|
}
|
|
}
|
|
|
|
@@ -300,7 +302,8 @@
|
|
if (!SCM_STRINGP(name)) SCM_ERR("bad dir name", name);
|
|
if ((dir = opendir(SCM_STR_VALUE(name))) != NULL) {
|
|
new = scm_newcell(SOBJ_T_DIR);
|
|
- SCM_DIR(new) = dir;
|
|
+ /*SCM_DIR(new) = dir;*/
|
|
+ SCM_DIR_SET(new, dir);
|
|
return(new);
|
|
}
|
|
return(scm_false);
|
|
@@ -312,7 +315,8 @@
|
|
if (!SCM_DIRP(dir)) SCM_ERR("bad dir", dir);
|
|
if (SCM_DIR(dir) == NULL) SCM_ERR("already closed", dir);
|
|
r = closedir(SCM_DIR(dir));
|
|
- SCM_DIR(dir) = NULL;
|
|
+ /*SCM_DIR(dir) = NULL;*/
|
|
+ SCM_DIR_SET(dir, NULL);
|
|
return(SCM_MKBOOL(r == 0));
|
|
}
|
|
|