1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00

* ioext.c (scm_read_delimited_x): use RO string macros for delims.

(scm_freopen): use RO string macros for filename and modes.
(scm_duplicate_port, scm_fdopen): use RO string macros for modes.

* posix.c (scm_getgrgid): simplify conversion of name to C string.
(scm_mknod): use RO string macros for path.

* socket.c (scm_fill_sockaddr, scm_send, scm_sendto):
use SCM_ROSTRINGP, SCM_ROCHARS, SCM_ROLENGTH.

* net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
use SCM_ROSTRINGP and SCM_ROCHARS.
This commit is contained in:
Gary Houston 1997-03-13 21:54:02 +00:00
parent 216fb10850
commit ae2fa5bc81
5 changed files with 91 additions and 56 deletions

View file

@ -1,3 +1,18 @@
Thu Mar 13 21:28:25 1997 Gary Houston <ghouston@actrix.gen.nz>
* ioext.c (scm_read_delimited_x): use RO string macros for delims.
(scm_freopen): use RO string macros for filename and modes.
(scm_duplicate_port, scm_fdopen): use RO string macros for modes.
* posix.c (scm_getgrgid): simplify conversion of name to C string.
(scm_mknod): use RO string macros for path.
* socket.c (scm_fill_sockaddr, scm_send, scm_sendto):
use SCM_ROSTRINGP, SCM_ROCHARS, SCM_ROLENGTH.
* net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
use SCM_ROSTRINGP and SCM_ROCHARS.
Thu Mar 13 18:31:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
* unif.c (scm_array_set_x): Cast ICHR (obj) to char if storing in

View file

@ -79,10 +79,10 @@ scm_read_delimited_x (delims, buf, gobble, port, start, end)
char *cdelims;
int num_delims;
SCM_ASSERT (SCM_NIMP (delims) && SCM_STRINGP (delims),
SCM_ASSERT (SCM_NIMP (delims) && SCM_ROSTRINGP (delims),
delims, SCM_ARG1, s_read_delimited_x);
cdelims = SCM_CHARS (delims);
num_delims = SCM_LENGTH (delims);
cdelims = SCM_ROCHARS (delims);
num_delims = SCM_ROLENGTH (delims);
SCM_ASSERT (SCM_NIMP (buf) && SCM_STRINGP (buf),
buf, SCM_ARG2, s_read_delimited_x);
cbuf = SCM_CHARS (buf);
@ -203,11 +203,14 @@ scm_freopen (filename, modes, port)
SCM port;
{
FILE *f;
SCM_ASSERT (SCM_NIMP (filename) && SCM_STRINGP (filename), filename, SCM_ARG1, s_freopen);
SCM_ASSERT (SCM_NIMP (modes) && SCM_STRINGP (modes), modes, SCM_ARG2, s_freopen);
SCM_ASSERT (SCM_NIMP (filename) && SCM_ROSTRINGP (filename), filename,
SCM_ARG1, s_freopen);
SCM_ASSERT (SCM_NIMP (modes) && SCM_ROSTRINGP (modes), modes, SCM_ARG2,
s_freopen);
SCM_DEFER_INTS;
SCM_ASSERT (SCM_NIMP (port) && SCM_FPORTP (port), port, SCM_ARG3, s_freopen);
SCM_SYSCALL (f = freopen (SCM_CHARS (filename), SCM_CHARS (modes), (FILE *)SCM_STREAM (port)));
SCM_SYSCALL (f = freopen (SCM_ROCHARS (filename), SCM_ROCHARS (modes),
(FILE *)SCM_STREAM (port)));
if (!f)
{
SCM p;
@ -218,9 +221,9 @@ scm_freopen (filename, modes, port)
}
else
{
SCM_SETCAR (port, scm_tc16_fport | scm_mode_bits (SCM_CHARS (modes)));
SCM_SETCAR (port, scm_tc16_fport | scm_mode_bits (SCM_ROCHARS (modes)));
SCM_SETSTREAM (port, (SCM)f);
SCM_SETCAR (port, scm_tc16_fport | scm_mode_bits (SCM_CHARS (modes)));
SCM_SETCAR (port, scm_tc16_fport | scm_mode_bits (SCM_ROCHARS (modes)));
if (SCM_BUF0 & SCM_CAR (port))
scm_setbuf0 (port);
}
@ -241,8 +244,10 @@ scm_duplicate_port (oldpt, modes)
int newfd;
FILE *f;
SCM newpt;
SCM_ASSERT (SCM_NIMP (oldpt) && SCM_OPPORTP (oldpt), oldpt, SCM_ARG1, s_duplicate_port);
SCM_ASSERT (SCM_NIMP (modes) && SCM_STRINGP (modes), modes, SCM_ARG2, s_duplicate_port);
SCM_ASSERT (SCM_NIMP (oldpt) && SCM_OPPORTP (oldpt), oldpt, SCM_ARG1,
s_duplicate_port);
SCM_ASSERT (SCM_NIMP (modes) && SCM_ROSTRINGP (modes), modes, SCM_ARG2,
s_duplicate_port);
SCM_NEWCELL (newpt);
SCM_DEFER_INTS;
oldfd = fileno ((FILE *)SCM_STREAM (oldpt));
@ -251,7 +256,7 @@ scm_duplicate_port (oldpt, modes)
SCM_SYSCALL (newfd = dup (oldfd));
if (newfd == -1)
scm_syserror (s_duplicate_port);
f = fdopen (newfd, SCM_CHARS (modes));
f = fdopen (newfd, SCM_ROCHARS (modes));
if (!f)
{
SCM_SYSCALL (close (newfd));
@ -261,7 +266,7 @@ scm_duplicate_port (oldpt, modes)
struct scm_port_table * pt;
pt = scm_add_to_port_table (newpt);
SCM_SETPTAB_ENTRY (newpt, pt);
SCM_SETCAR (newpt, scm_tc16_fport | scm_mode_bits (SCM_CHARS (modes)));
SCM_SETCAR (newpt, scm_tc16_fport | scm_mode_bits (SCM_ROCHARS (modes)));
if (SCM_BUF0 & SCM_CAR (newpt))
scm_setbuf0 (newpt);
SCM_SETSTREAM (newpt, (SCM)f);
@ -340,15 +345,16 @@ scm_fdopen (fdes, modes)
struct scm_port_table * pt;
SCM_ASSERT (SCM_INUMP (fdes), fdes, SCM_ARG1, s_fdopen);
SCM_ASSERT (SCM_NIMP (modes) && SCM_STRINGP (modes), modes, SCM_ARG2, s_fdopen);
SCM_ASSERT (SCM_NIMP (modes) && SCM_ROSTRINGP (modes), modes, SCM_ARG2,
s_fdopen);
SCM_NEWCELL (port);
SCM_DEFER_INTS;
f = fdopen (SCM_INUM (fdes), SCM_CHARS (modes));
f = fdopen (SCM_INUM (fdes), SCM_ROCHARS (modes));
if (f == NULL)
scm_syserror (s_fdopen);
pt = scm_add_to_port_table (port);
SCM_SETPTAB_ENTRY (port, pt);
SCM_SETCAR (port, scm_tc16_fport | scm_mode_bits (SCM_CHARS (modes)));
SCM_SETCAR (port, scm_tc16_fport | scm_mode_bits (SCM_ROCHARS (modes)));
if (SCM_BUF0 & SCM_CAR (port))
scm_setbuf0 (port);
SCM_SETSTREAM (port, (SCM)f);

View file

@ -171,10 +171,10 @@ scm_gethost (name)
}
else
#endif
if (SCM_NIMP (name) && SCM_STRINGP (name))
if (SCM_NIMP (name) && SCM_ROSTRINGP (name))
{
SCM_DEFER_INTS;
entry = gethostbyname (SCM_CHARS (name));
entry = gethostbyname (SCM_ROCHARS (name));
}
else
{
@ -222,10 +222,10 @@ scm_getnet (name)
SCM_DEFER_INTS;
entry = getnetent ();
}
else if (SCM_NIMP (name) && SCM_STRINGP (name))
else if (SCM_NIMP (name) && SCM_ROSTRINGP (name))
{
SCM_DEFER_INTS;
entry = getnetbyname (SCM_CHARS (name));
entry = getnetbyname (SCM_ROCHARS (name));
}
else
{
@ -261,10 +261,10 @@ scm_getproto (name)
SCM_DEFER_INTS;
entry = getprotoent ();
}
else if (SCM_NIMP (name) && SCM_STRINGP (name))
else if (SCM_NIMP (name) && SCM_ROSTRINGP (name))
{
SCM_DEFER_INTS;
entry = getprotobyname (SCM_CHARS (name));
entry = getprotobyname (SCM_ROCHARS (name));
}
else
{
@ -319,17 +319,17 @@ scm_getserv (name, proto)
SCM_ALLOW_INTS;
return scm_return_entry (entry);
}
SCM_ASSERT (SCM_NIMP (proto) && SCM_STRINGP (proto), proto, SCM_ARG2, s_getserv);
if (SCM_NIMP (name) && SCM_STRINGP (name))
SCM_ASSERT (SCM_NIMP (proto) && SCM_ROSTRINGP (proto), proto, SCM_ARG2, s_getserv);
if (SCM_NIMP (name) && SCM_ROSTRINGP (name))
{
SCM_DEFER_INTS;
entry = getservbyname (SCM_CHARS (name), SCM_CHARS (proto));
entry = getservbyname (SCM_ROCHARS (name), SCM_ROCHARS (proto));
}
else
{
SCM_ASSERT (SCM_INUMP (name), name, SCM_ARG1, s_getserv);
SCM_DEFER_INTS;
entry = getservbyport (htons (SCM_INUM (name)), SCM_CHARS (proto));
entry = getservbyport (htons (SCM_INUM (name)), SCM_ROCHARS (proto));
}
if (!entry)
scm_syserror (s_getserv);

View file

@ -353,10 +353,9 @@ scm_getgrgid (name)
SCM_SYSCALL (entry = getgrgid (SCM_INUM (name)));
else
{
SCM_ASSERT (SCM_NIMP (name) && SCM_STRINGP (name), name, SCM_ARG1, s_getgrgid);
if (SCM_SUBSTRP (name))
name = scm_makfromstr (SCM_ROCHARS (name), SCM_ROLENGTH (name), 0);
SCM_SYSCALL (entry = getgrnam (SCM_CHARS (name)));
SCM_ASSERT (SCM_NIMP (name) && SCM_ROSTRINGP (name), name, SCM_ARG1,
s_getgrgid);
SCM_SYSCALL (entry = getgrnam (SCM_ROCHARS (name)));
}
if (!entry)
scm_syserror (s_getgrgid);
@ -698,8 +697,8 @@ scm_convert_exec_args (args)
scm_sizet len;
char *dst;
char *src;
SCM_ASSERT (SCM_NIMP (SCM_CAR (args)) && SCM_ROSTRINGP (SCM_CAR (args)), SCM_CAR (args),
"wrong type in SCM_ARG", "exec arg");
SCM_ASSERT (SCM_NIMP (SCM_CAR (args)) && SCM_ROSTRINGP (SCM_CAR (args)),
SCM_CAR (args), "wrong type in SCM_ARG", "exec arg");
len = 1 + SCM_ROLENGTH (SCM_CAR (args));
dst = (char *) scm_must_malloc ((long) len, s_ttyname);
src = SCM_ROCHARS (SCM_CAR (args));
@ -739,9 +738,11 @@ scm_execlp (args)
{
char **execargv;
SCM filename = SCM_CAR (args);
SCM_ASSERT (SCM_NIMP (filename) && SCM_ROSTRINGP (filename), filename, SCM_ARG1, s_execlp);
SCM_ASSERT (SCM_NIMP (filename) && SCM_ROSTRINGP (filename), filename,
SCM_ARG1, s_execlp);
if (SCM_SUBSTRP (filename))
filename = scm_makfromstr (SCM_ROCHARS (filename), SCM_ROLENGTH (filename), 0);
filename = scm_makfromstr (SCM_ROCHARS (filename),
SCM_ROLENGTH (filename), 0);
args = SCM_CDR (args);
execargv = scm_convert_exec_args (args);
execvp (SCM_ROCHARS (filename), execargv);
@ -814,8 +815,9 @@ scm_environ (env)
{
int len;
char *src;
SCM_ASSERT (SCM_NIMP (SCM_CAR (env)) && SCM_ROSTRINGP (SCM_CAR (env)), env, SCM_ARG1,
s_environ);
SCM_ASSERT (SCM_NIMP (SCM_CAR (env))
&& SCM_ROSTRINGP (SCM_CAR (env)),
env, SCM_ARG1, s_environ);
len = 1 + SCM_ROLENGTH (SCM_CAR (env));
new_environ[i] = scm_must_malloc ((long) len, s_environ);
src = SCM_ROCHARS (SCM_CAR (env));
@ -867,10 +869,13 @@ scm_open_pipe (pipestr, modes)
register SCM z;
struct scm_port_table * pt;
SCM_ASSERT (SCM_NIMP (pipestr) && SCM_ROSTRINGP (pipestr), pipestr, SCM_ARG1, s_open_pipe);
SCM_ASSERT (SCM_NIMP (pipestr) && SCM_ROSTRINGP (pipestr), pipestr,
SCM_ARG1, s_open_pipe);
if (SCM_SUBSTRP (pipestr))
pipestr = scm_makfromstr (SCM_ROCHARS (pipestr), SCM_ROLENGTH (pipestr), 0);
SCM_ASSERT (SCM_NIMP (modes) && SCM_ROSTRINGP (modes), modes, SCM_ARG2, s_open_pipe);
pipestr = scm_makfromstr (SCM_ROCHARS (pipestr),
SCM_ROLENGTH (pipestr), 0);
SCM_ASSERT (SCM_NIMP (modes) && SCM_ROSTRINGP (modes), modes, SCM_ARG2,
s_open_pipe);
if (SCM_SUBSTRP (modes))
modes = scm_makfromstr (SCM_ROCHARS (modes), SCM_ROLENGTH (modes), 0);
SCM_NEWCELL (z);
@ -920,7 +925,8 @@ scm_utime (pathname, actime, modtime)
int rv;
struct utimbuf utm_tmp;
SCM_ASSERT (SCM_NIMP (pathname) && SCM_STRINGP (pathname), pathname, SCM_ARG1, s_utime);
SCM_ASSERT (SCM_NIMP (pathname) && SCM_STRINGP (pathname), pathname,
SCM_ARG1, s_utime);
if (SCM_UNBNDP (actime))
SCM_SYSCALL (time (&utm_tmp.actime));
@ -947,7 +953,8 @@ scm_access (path, how)
{
int rv;
SCM_ASSERT (SCM_NIMP (path) && SCM_ROSTRINGP (path), path, SCM_ARG1, s_access);
SCM_ASSERT (SCM_NIMP (path) && SCM_ROSTRINGP (path), path, SCM_ARG1,
s_access);
if (SCM_SUBSTRP (path))
path = scm_makfromstr (SCM_ROCHARS (path), SCM_ROLENGTH (path), 0);
SCM_ASSERT (SCM_INUMP (how), how, SCM_ARG2, s_access);
@ -1002,7 +1009,8 @@ scm_setlocale (category, locale)
}
else
{
SCM_ASSERT (SCM_NIMP (locale) && SCM_STRINGP (locale), locale, SCM_ARG2, s_setlocale);
SCM_ASSERT (SCM_NIMP (locale) && SCM_STRINGP (locale), locale,
SCM_ARG2, s_setlocale);
clocale = SCM_CHARS (locale);
}
@ -1032,9 +1040,11 @@ scm_strftime (format, stime)
char *fmt;
int len;
SCM_ASSERT (SCM_NIMP (format) && SCM_STRINGP (format), format, SCM_ARG1, s_strftime);
SCM_ASSERT (SCM_NIMP (stime) && SCM_VECTORP (stime) && scm_obj_length (stime) == 9,
stime, SCM_ARG2, s_strftime);
SCM_ASSERT (SCM_NIMP (format) && SCM_STRINGP (format), format, SCM_ARG1,
s_strftime);
SCM_ASSERT (SCM_NIMP (stime) && SCM_VECTORP (stime)
&& scm_obj_length (stime) == 9,
stime, SCM_ARG2, s_strftime);
fmt = SCM_ROCHARS (format);
len = SCM_ROLENGTH (format);
@ -1080,10 +1090,12 @@ scm_strptime (format, string)
char *fmt, *str, *rest;
int n;
SCM_ASSERT (SCM_NIMP (format) && SCM_ROSTRINGP (format), format, SCM_ARG1, s_strptime);
SCM_ASSERT (SCM_NIMP (format) && SCM_ROSTRINGP (format), format, SCM_ARG1,
s_strptime);
if (SCM_SUBSTRP (format))
format = scm_makfromstr (SCM_ROCHARS (format), SCM_ROLENGTH (format), 0);
SCM_ASSERT (SCM_NIMP (string) && SCM_ROSTRINGP (string), string, SCM_ARG2, s_strptime);
SCM_ASSERT (SCM_NIMP (string) && SCM_ROSTRINGP (string), string, SCM_ARG2,
s_strptime);
if (SCM_SUBSTRP (string))
string = scm_makfromstr (SCM_ROCHARS (string), SCM_ROLENGTH (string), 0);
@ -1143,10 +1155,10 @@ scm_mknod(path, mode, dev)
{
#ifdef HAVE_MKNOD
int val;
SCM_ASSERT(SCM_NIMP(path) && SCM_STRINGP(path), path, SCM_ARG1, s_mknod);
SCM_ASSERT(SCM_NIMP(path) && SCM_ROSTRINGP(path), path, SCM_ARG1, s_mknod);
SCM_ASSERT(SCM_INUMP(mode), mode, SCM_ARG2, s_mknod);
SCM_ASSERT(SCM_INUMP(dev), dev, SCM_ARG3, s_mknod);
SCM_SYSCALL(val = mknod(SCM_CHARS(path), SCM_INUM(mode), SCM_INUM(dev)));
SCM_SYSCALL(val = mknod(SCM_ROCHARS(path), SCM_INUM(mode), SCM_INUM(dev)));
if (val != 0)
scm_syserror (s_mknod);
return SCM_UNSPECIFIED;

View file

@ -356,9 +356,10 @@ scm_fill_sockaddr (fam, address, args, which_arg, proc, size)
soka = (struct sockaddr_un *)
scm_must_malloc (sizeof (struct sockaddr_un), proc);
soka->sun_family = AF_UNIX;
SCM_ASSERT (SCM_NIMP (address) && SCM_STRINGP (address), address,
which_arg, proc);
memcpy (soka->sun_path, SCM_CHARS (address), 1 + SCM_LENGTH (address));
SCM_ASSERT (SCM_NIMP (address) && SCM_ROSTRINGP (address), address,
which_arg, proc);
memcpy (soka->sun_path, SCM_ROCHARS (address),
1 + SCM_ROLENGTH (address));
*size = sizeof (struct sockaddr_un);
return (struct sockaddr *) soka;
}
@ -599,7 +600,7 @@ scm_send (sock, message, flags)
int flg;
SCM_ASSERT (SCM_NIMP (sock) && SCM_FPORTP (sock), sock, SCM_ARG1, s_send);
SCM_ASSERT (SCM_NIMP (message) && SCM_STRINGP (message), message, SCM_ARG2, s_send);
SCM_ASSERT (SCM_NIMP (message) && SCM_ROSTRINGP (message), message, SCM_ARG2, s_send);
fd = fileno ((FILE *)SCM_STREAM (sock));
if (SCM_UNBNDP (flags))
@ -607,7 +608,7 @@ scm_send (sock, message, flags)
else
flg = scm_num2ulong (flags, (char *) SCM_ARG3, s_send);
SCM_SYSCALL (rv = send (fd, SCM_CHARS (message), SCM_LENGTH (message), flg));
SCM_SYSCALL (rv = send (fd, SCM_ROCHARS (message), SCM_ROLENGTH (message), flg));
if (rv == -1)
scm_syserror (s_send);
return SCM_MAKINUM (rv);
@ -697,7 +698,8 @@ scm_sendto (sock, message, fam, address, args_and_flags)
scm_sizet size;
SCM_ASSERT (SCM_NIMP (sock) && SCM_FPORTP (sock), sock, SCM_ARG1, s_sendto);
SCM_ASSERT (SCM_NIMP (message) && SCM_STRINGP (message), message, SCM_ARG2, s_sendto);
SCM_ASSERT (SCM_NIMP (message) && SCM_ROSTRINGP (message), message,
SCM_ARG2, s_sendto);
SCM_ASSERT (SCM_INUMP (fam), fam, SCM_ARG3, s_sendto);
fd = fileno ((FILE *)SCM_STREAM (sock));
SCM_DEFER_INTS;
@ -711,8 +713,8 @@ scm_sendto (sock, message, fam, address, args_and_flags)
args_and_flags, SCM_ARG5, s_sendto);
flg = scm_num2ulong (SCM_CAR (args_and_flags), (char *) SCM_ARG5, s_sendto);
}
SCM_SYSCALL (rv = sendto (fd, SCM_CHARS (message), SCM_LENGTH (message), flg,
soka, size));
SCM_SYSCALL (rv = sendto (fd, SCM_ROCHARS (message), SCM_ROLENGTH (message),
flg, soka, size));
if (rv == -1)
scm_syserror (s_sendto);
scm_must_free ((char *) soka);