mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 19:50:24 +02:00
Rely on Gnulib for fsync, link, readlink, mkdir, rmdir, and rename.
* libguile/filesys.c: Remove 'fsync' wrapper for MinGW. (scm_link, scm_readlink, scm_mkdir, scm_rmdir): Define these unconditionally. (my_rename): Remove. (scm_rename): Use 'rename' instead of 'my_rename'.
This commit is contained in:
parent
3243fffcc1
commit
ca6adcc6df
1 changed files with 2 additions and 36 deletions
|
@ -1,5 +1,5 @@
|
||||||
/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2006,
|
/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2006,
|
||||||
* 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
|
* 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -110,12 +110,6 @@
|
||||||
#include <full-write.h>
|
#include <full-write.h>
|
||||||
|
|
||||||
|
|
||||||
/* Some more definitions for the native Windows port. */
|
|
||||||
#ifdef __MINGW32__
|
|
||||||
# define fsync(fd) _commit (fd)
|
|
||||||
#endif /* __MINGW32__ */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Two helper macros for an often used pattern */
|
/* Two helper macros for an often used pattern */
|
||||||
|
@ -590,7 +584,6 @@ SCM_DEFINE (scm_lstat, "lstat", 1, 0, 0,
|
||||||
/* {Modifying Directories}
|
/* {Modifying Directories}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_LINK
|
|
||||||
SCM_DEFINE (scm_link, "link", 2, 0, 0,
|
SCM_DEFINE (scm_link, "link", 2, 0, 0,
|
||||||
(SCM oldpath, SCM newpath),
|
(SCM oldpath, SCM newpath),
|
||||||
"Creates a new name @var{newpath} in the file system for the\n"
|
"Creates a new name @var{newpath} in the file system for the\n"
|
||||||
|
@ -609,7 +602,6 @@ SCM_DEFINE (scm_link, "link", 2, 0, 0,
|
||||||
return SCM_UNSPECIFIED;
|
return SCM_UNSPECIFIED;
|
||||||
}
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
#endif /* HAVE_LINK */
|
|
||||||
|
|
||||||
|
|
||||||
/* {Navigating Directories}
|
/* {Navigating Directories}
|
||||||
|
@ -1012,7 +1004,6 @@ SCM_DEFINE (scm_symlink, "symlink", 2, 0, 0,
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
#endif /* HAVE_SYMLINK */
|
#endif /* HAVE_SYMLINK */
|
||||||
|
|
||||||
#ifdef HAVE_READLINK
|
|
||||||
SCM_DEFINE (scm_readlink, "readlink", 1, 0, 0,
|
SCM_DEFINE (scm_readlink, "readlink", 1, 0, 0,
|
||||||
(SCM path),
|
(SCM path),
|
||||||
"Return the value of the symbolic link named by @var{path} (a\n"
|
"Return the value of the symbolic link named by @var{path} (a\n"
|
||||||
|
@ -1051,7 +1042,6 @@ SCM_DEFINE (scm_readlink, "readlink", 1, 0, 0,
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
#endif /* HAVE_READLINK */
|
|
||||||
|
|
||||||
SCM_DEFINE (scm_copy_file, "copy-file", 2, 0, 0,
|
SCM_DEFINE (scm_copy_file, "copy-file", 2, 0, 0,
|
||||||
(SCM oldfile, SCM newfile),
|
(SCM oldfile, SCM newfile),
|
||||||
|
@ -1254,7 +1244,6 @@ SCM_DEFINE (scm_getcwd, "getcwd", 0, 0, 0,
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
#endif /* HAVE_GETCWD */
|
#endif /* HAVE_GETCWD */
|
||||||
|
|
||||||
#ifdef HAVE_MKDIR
|
|
||||||
SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
|
SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
|
||||||
(SCM path, SCM mode),
|
(SCM path, SCM mode),
|
||||||
"Create a new directory named by @var{path}. If @var{mode} is omitted\n"
|
"Create a new directory named by @var{path}. If @var{mode} is omitted\n"
|
||||||
|
@ -1281,9 +1270,7 @@ SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
|
||||||
return SCM_UNSPECIFIED;
|
return SCM_UNSPECIFIED;
|
||||||
}
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
#endif /* HAVE_MKDIR */
|
|
||||||
|
|
||||||
#ifdef HAVE_RMDIR
|
|
||||||
SCM_DEFINE (scm_rmdir, "rmdir", 1, 0, 0,
|
SCM_DEFINE (scm_rmdir, "rmdir", 1, 0, 0,
|
||||||
(SCM path),
|
(SCM path),
|
||||||
"Remove the existing directory named by @var{path}. The directory must\n"
|
"Remove the existing directory named by @var{path}. The directory must\n"
|
||||||
|
@ -1298,27 +1285,6 @@ SCM_DEFINE (scm_rmdir, "rmdir", 1, 0, 0,
|
||||||
return SCM_UNSPECIFIED;
|
return SCM_UNSPECIFIED;
|
||||||
}
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_RENAME
|
|
||||||
#define my_rename rename
|
|
||||||
#else
|
|
||||||
static int
|
|
||||||
my_rename (const char *oldname, const char *newname)
|
|
||||||
{
|
|
||||||
int rv;
|
|
||||||
|
|
||||||
SCM_SYSCALL (rv = link (oldname, newname));
|
|
||||||
if (rv == 0)
|
|
||||||
{
|
|
||||||
SCM_SYSCALL (rv = unlink (oldname));
|
|
||||||
if (rv != 0)
|
|
||||||
/* unlink failed. remove new name */
|
|
||||||
SCM_SYSCALL (unlink (newname));
|
|
||||||
}
|
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SCM_DEFINE (scm_rename, "rename-file", 2, 0, 0,
|
SCM_DEFINE (scm_rename, "rename-file", 2, 0, 0,
|
||||||
(SCM oldname, SCM newname),
|
(SCM oldname, SCM newname),
|
||||||
|
@ -1330,7 +1296,7 @@ SCM_DEFINE (scm_rename, "rename-file", 2, 0, 0,
|
||||||
|
|
||||||
STRING2_SYSCALL (oldname, c_oldname,
|
STRING2_SYSCALL (oldname, c_oldname,
|
||||||
newname, c_newname,
|
newname, c_newname,
|
||||||
rv = my_rename (c_oldname, c_newname));
|
rv = rename (c_oldname, c_newname));
|
||||||
if (rv != 0)
|
if (rv != 0)
|
||||||
SCM_SYSERROR;
|
SCM_SYSERROR;
|
||||||
return SCM_UNSPECIFIED;
|
return SCM_UNSPECIFIED;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue