summaryrefslogtreecommitdiff
path: root/libguile/filesys.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/filesys.c')
-rw-r--r--libguile/filesys.c124
1 files changed, 59 insertions, 65 deletions
diff --git a/libguile/filesys.c b/libguile/filesys.c
index c7de1c615..7e280652e 100644
--- a/libguile/filesys.c
+++ b/libguile/filesys.c
@@ -155,9 +155,9 @@ SCM_DEFINE (scm_chown, "chown", 3, 0, 0,
else
#endif
{
- SCM_VALIDATE_ROSTRING(1,object);
- SCM_COERCE_SUBSTR (object);
- SCM_SYSCALL (rv = chown (SCM_ROCHARS (object),
+ SCM_VALIDATE_STRING (1, object);
+ SCM_STRING_COERCE_0TERMINATION_X (object);
+ SCM_SYSCALL (rv = chown (SCM_STRING_CHARS (object),
SCM_INUM (owner), SCM_INUM (group)));
}
if (rv == -1)
@@ -194,9 +194,9 @@ SCM_DEFINE (scm_chmod, "chmod", 2, 0, 0,
}
else
{
- SCM_VALIDATE_ROSTRING (1,object);
- SCM_COERCE_SUBSTR (object);
- SCM_SYSCALL (rv = chmod (SCM_ROCHARS (object), SCM_INUM (mode)));
+ SCM_VALIDATE_STRING (1, object);
+ SCM_STRING_COERCE_0TERMINATION_X (object);
+ SCM_SYSCALL (rv = chmod (SCM_STRING_CHARS (object), SCM_INUM (mode)));
}
if (rv == -1)
SCM_SYSERROR;
@@ -239,11 +239,11 @@ SCM_DEFINE (scm_open_fdes, "open-fdes", 2, 1, 0,
int iflags;
int imode;
- SCM_VALIDATE_ROSTRING (1,path);
- SCM_COERCE_SUBSTR (path);
+ SCM_VALIDATE_STRING (1, path);
+ SCM_STRING_COERCE_0TERMINATION_X (path);
iflags = SCM_NUM2LONG(2,flags);
imode = SCM_NUM2LONG_DEF(3,mode,0666);
- SCM_SYSCALL (fd = open (SCM_ROCHARS (path), iflags, imode));
+ SCM_SYSCALL (fd = open (SCM_STRING_CHARS (path), iflags, imode));
if (fd == -1)
SCM_SYSERROR;
return SCM_MAKINUM (fd);
@@ -505,10 +505,10 @@ SCM_DEFINE (scm_stat, "stat", 1, 0, 0,
else
{
SCM_VALIDATE_NIM (1,object);
- if (SCM_ROSTRINGP (object))
+ if (SCM_STRINGP (object))
{
- SCM_COERCE_SUBSTR (object);
- SCM_SYSCALL (rv = stat (SCM_ROCHARS (object), &stat_temp));
+ SCM_STRING_COERCE_0TERMINATION_X (object);
+ SCM_SYSCALL (rv = stat (SCM_STRING_CHARS (object), &stat_temp));
}
else
{
@@ -544,15 +544,11 @@ SCM_DEFINE (scm_link, "link", 2, 0, 0,
{
int val;
- SCM_VALIDATE_ROSTRING (1,oldpath);
- if (SCM_SUBSTRP (oldpath))
- oldpath = scm_makfromstr (SCM_ROCHARS (oldpath),
- SCM_STRING_LENGTH (oldpath), 0);
- SCM_VALIDATE_ROSTRING (2,newpath);
- if (SCM_SUBSTRP (newpath))
- newpath = scm_makfromstr (SCM_ROCHARS (newpath),
- SCM_STRING_LENGTH (newpath), 0);
- SCM_SYSCALL (val = link (SCM_ROCHARS (oldpath), SCM_ROCHARS (newpath)));
+ SCM_VALIDATE_STRING (1, oldpath);
+ SCM_STRING_COERCE_0TERMINATION_X (oldpath);
+ SCM_VALIDATE_STRING (2, newpath);
+ SCM_STRING_COERCE_0TERMINATION_X (newpath);
+ SCM_SYSCALL (val = link (SCM_STRING_CHARS (oldpath), SCM_STRING_CHARS (newpath)));
if (val != 0)
SCM_SYSERROR;
return SCM_UNSPECIFIED;
@@ -568,20 +564,20 @@ SCM_DEFINE (scm_rename, "rename-file", 2, 0, 0,
#define FUNC_NAME s_scm_rename
{
int rv;
- SCM_VALIDATE_ROSTRING (1,oldname);
- SCM_VALIDATE_ROSTRING (2,newname);
- SCM_COERCE_SUBSTR (oldname);
- SCM_COERCE_SUBSTR (newname);
+ SCM_VALIDATE_STRING (1, oldname);
+ SCM_VALIDATE_STRING (2, newname);
+ SCM_STRING_COERCE_0TERMINATION_X (oldname);
+ SCM_STRING_COERCE_0TERMINATION_X (newname);
#ifdef HAVE_RENAME
- SCM_SYSCALL (rv = rename (SCM_ROCHARS (oldname), SCM_ROCHARS (newname)));
+ SCM_SYSCALL (rv = rename (SCM_STRING_CHARS (oldname), SCM_STRING_CHARS (newname)));
#else
- SCM_SYSCALL (rv = link (SCM_ROCHARS (oldname), SCM_ROCHARS (newname)));
+ SCM_SYSCALL (rv = link (SCM_STRING_CHARS (oldname), SCM_STRING_CHARS (newname)));
if (rv == 0)
{
- SCM_SYSCALL (rv = unlink (SCM_ROCHARS (oldname)));;
+ SCM_SYSCALL (rv = unlink (SCM_STRING_CHARS (oldname)));;
if (rv != 0)
/* unlink failed. remove new name */
- SCM_SYSCALL (unlink (SCM_ROCHARS (newname)));
+ SCM_SYSCALL (unlink (SCM_STRING_CHARS (newname)));
}
#endif
if (rv != 0)
@@ -597,9 +593,9 @@ SCM_DEFINE (scm_delete_file, "delete-file", 1, 0, 0,
#define FUNC_NAME s_scm_delete_file
{
int ans;
- SCM_VALIDATE_ROSTRING (1,str);
- SCM_COERCE_SUBSTR (str);
- SCM_SYSCALL (ans = unlink (SCM_ROCHARS (str)));
+ SCM_VALIDATE_STRING (1, str);
+ SCM_STRING_COERCE_0TERMINATION_X (str);
+ SCM_SYSCALL (ans = unlink (SCM_STRING_CHARS (str)));
if (ans != 0)
SCM_SYSERROR;
return SCM_UNSPECIFIED;
@@ -617,18 +613,18 @@ SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
{
int rv;
mode_t mask;
- SCM_VALIDATE_ROSTRING (1,path);
- SCM_COERCE_SUBSTR (path);
+ SCM_VALIDATE_STRING (1, path);
+ SCM_STRING_COERCE_0TERMINATION_X (path);
if (SCM_UNBNDP (mode))
{
mask = umask (0);
umask (mask);
- SCM_SYSCALL (rv = mkdir (SCM_ROCHARS (path), 0777 ^ mask));
+ SCM_SYSCALL (rv = mkdir (SCM_STRING_CHARS (path), 0777 ^ mask));
}
else
{
SCM_VALIDATE_INUM (2,mode);
- SCM_SYSCALL (rv = mkdir (SCM_ROCHARS (path), SCM_INUM (mode)));
+ SCM_SYSCALL (rv = mkdir (SCM_STRING_CHARS (path), SCM_INUM (mode)));
}
if (rv != 0)
SCM_SYSERROR;
@@ -646,9 +642,9 @@ SCM_DEFINE (scm_rmdir, "rmdir", 1, 0, 0,
{
int val;
- SCM_VALIDATE_ROSTRING (1,path);
- SCM_COERCE_SUBSTR (path);
- SCM_SYSCALL (val = rmdir (SCM_ROCHARS (path)));
+ SCM_VALIDATE_STRING (1, path);
+ SCM_STRING_COERCE_0TERMINATION_X (path);
+ SCM_SYSCALL (val = rmdir (SCM_STRING_CHARS (path)));
if (val != 0)
SCM_SYSERROR;
return SCM_UNSPECIFIED;
@@ -679,9 +675,9 @@ SCM_DEFINE (scm_opendir, "opendir", 1, 0, 0,
#define FUNC_NAME s_scm_opendir
{
DIR *ds;
- SCM_VALIDATE_ROSTRING (1,dirname);
- SCM_COERCE_SUBSTR (dirname);
- SCM_SYSCALL (ds = opendir (SCM_ROCHARS (dirname)));
+ SCM_VALIDATE_STRING (1, dirname);
+ SCM_STRING_COERCE_0TERMINATION_X (dirname);
+ SCM_SYSCALL (ds = opendir (SCM_STRING_CHARS (dirname)));
if (ds == NULL)
SCM_SYSERROR;
SCM_RETURN_NEWSMOB (scm_tc16_dir | SCM_OPN, ds);
@@ -781,9 +777,9 @@ SCM_DEFINE (scm_chdir, "chdir", 1, 0, 0,
{
int ans;
- SCM_VALIDATE_ROSTRING (1,str);
- SCM_COERCE_SUBSTR (str);
- SCM_SYSCALL (ans = chdir (SCM_ROCHARS (str)));
+ SCM_VALIDATE_STRING (1, str);
+ SCM_STRING_COERCE_0TERMINATION_X (str);
+ SCM_SYSCALL (ans = chdir (SCM_STRING_CHARS (str)));
if (ans != 0)
SCM_SYSERROR;
return SCM_UNSPECIFIED;
@@ -1206,11 +1202,11 @@ SCM_DEFINE (scm_symlink, "symlink", 2, 0, 0,
{
int val;
- SCM_VALIDATE_ROSTRING (1,oldpath);
- SCM_VALIDATE_ROSTRING (2,newpath);
- SCM_COERCE_SUBSTR (oldpath);
- SCM_COERCE_SUBSTR (newpath);
- SCM_SYSCALL (val = symlink(SCM_ROCHARS(oldpath), SCM_ROCHARS(newpath)));
+ SCM_VALIDATE_STRING (1, oldpath);
+ SCM_VALIDATE_STRING (2, newpath);
+ SCM_STRING_COERCE_0TERMINATION_X (oldpath);
+ SCM_STRING_COERCE_0TERMINATION_X (newpath);
+ SCM_SYSCALL (val = symlink (SCM_STRING_CHARS (oldpath), SCM_STRING_CHARS (newpath)));
if (val != 0)
SCM_SYSERROR;
return SCM_UNSPECIFIED;
@@ -1230,10 +1226,10 @@ SCM_DEFINE (scm_readlink, "readlink", 1, 0, 0,
int size = 100;
char *buf;
SCM result;
- SCM_VALIDATE_ROSTRING (1,path);
- SCM_COERCE_SUBSTR (path);
+ SCM_VALIDATE_STRING (1, path);
+ SCM_STRING_COERCE_0TERMINATION_X (path);
buf = scm_must_malloc (size, FUNC_NAME);
- while ((rv = readlink (SCM_ROCHARS (path), buf, size)) == size)
+ while ((rv = readlink (SCM_STRING_CHARS (path), buf, size)) == size)
{
scm_must_free (buf);
size *= 2;
@@ -1259,9 +1255,9 @@ SCM_DEFINE (scm_lstat, "lstat", 1, 0, 0,
int rv;
struct stat stat_temp;
- SCM_VALIDATE_ROSTRING (1,str);
- SCM_COERCE_SUBSTR (str);
- SCM_SYSCALL(rv = lstat(SCM_ROCHARS(str), &stat_temp));
+ SCM_VALIDATE_STRING (1, str);
+ SCM_STRING_COERCE_0TERMINATION_X (str);
+ SCM_SYSCALL (rv = lstat (SCM_STRING_CHARS (str), &stat_temp));
if (rv != 0)
{
int en = errno;
@@ -1287,20 +1283,18 @@ SCM_DEFINE (scm_copy_file, "copy-file", 2, 0, 0,
char buf[BUFSIZ];
struct stat oldstat;
- SCM_VALIDATE_ROSTRING (1,oldfile);
- if (SCM_SUBSTRP (oldfile))
- oldfile = scm_makfromstr (SCM_ROCHARS (oldfile), SCM_STRING_LENGTH (oldfile), 0);
- SCM_VALIDATE_ROSTRING (2,newfile);
- if (SCM_SUBSTRP (newfile))
- newfile = scm_makfromstr (SCM_ROCHARS (newfile), SCM_STRING_LENGTH (newfile), 0);
- if (stat (SCM_ROCHARS (oldfile), &oldstat) == -1)
+ SCM_VALIDATE_STRING (1, oldfile);
+ SCM_STRING_COERCE_0TERMINATION_X (oldfile);
+ SCM_VALIDATE_STRING (2, newfile);
+ SCM_STRING_COERCE_0TERMINATION_X (newfile);
+ if (stat (SCM_STRING_CHARS (oldfile), &oldstat) == -1)
SCM_SYSERROR;
- oldfd = open (SCM_ROCHARS (oldfile), O_RDONLY);
+ oldfd = open (SCM_STRING_CHARS (oldfile), O_RDONLY);
if (oldfd == -1)
SCM_SYSERROR;
/* use POSIX flags instead of 07777?. */
- newfd = open (SCM_ROCHARS (newfile), O_WRONLY | O_CREAT | O_TRUNC,
+ newfd = open (SCM_STRING_CHARS (newfile), O_WRONLY | O_CREAT | O_TRUNC,
oldstat.st_mode & 07777);
if (newfd == -1)
SCM_SYSERROR;