Update of /cvsroot/foo/foo/elkfoo/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15070
Modified Files:
misc.c
Log Message:
time(union wait *) -> time(int *), K&R->ANSI
Index: misc.c
===================================================================
RCS file: /cvsroot/foo/foo/elkfoo/src/misc.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** misc.c 5 Aug 2004 23:13:56 -0000 1.4
--- misc.c 5 Aug 2004 23:39:47 -0000 1.5
***************
*** 35,38 ****
--- 35,39 ----
#endif
+ #define Object SchemeObject /* avoid Obj-C type clash */
#ifdef HAVE_FOOELK_SCHEME_H
#include <fooelk/scheme.h>
***************
*** 40,43 ****
--- 41,45 ----
#include <elk/scheme.h>
#endif
+ #undef Object
#ifdef HAVE_SYS_TIME_H
***************
*** 83,87 ****
! static Object P_Time()
{
struct timeval t;
--- 85,90 ----
! static SchemeObject
! P_Time ()
{
struct timeval t;
***************
*** 93,185 ****
! static Object P_Getpid()
{
! return Make_Integer(getpid());
}
! static Object P_System (cmd) Object cmd; {
! register char *s;
! register int i, n, pid;
! union wait status;
! s = Get_String(cmd);
#ifdef VFORK
! switch (pid = vfork ()) {
#else
! switch (pid = fork ()) {
#endif
case -1:
! /* where is extern errno defined ?
! Saved_Errno = errno;
! Primitive_Error ("cannot fork: ~E");
! */
! Primitive_Error ("cannot fork");
case 0:
! n = Open_Max ();
! for (i = 3; i < n; i++)
! (void)close (i);
! execl ("/bin/sh", "sh", "-c", s, (char *)0);
! _exit (127);
default:
! Disable_Interrupts;
! while ((i = wait (&status)) != pid && i != -1)
! ;
! Enable_Interrupts;
}
! if (i == -1)
! return False;
! if ((n = (status.w_status & 0377)))
! return Cons (Make_Fixnum (n), Null);
! return Make_Fixnum ((status.w_status >> 8) & 0377);
}
! static Object P_Getenv (e) Object e; {
! register char *s;
! Object ret;
! s = Get_String(e);
! ret = (s = getenv (s)) ? Make_String (s, strlen (s)) : False;
! return ret;
}
! static Object P_Getwd () {
! char buffer[PATH_MAX + 1];
! if (getcwd(buffer, PATH_MAX) == NULL)
! return False;
! else
! return Make_String(buffer, strlen(buffer));
}
! static Object P_Num_Sprintf (form, num) Object form; Object num; {
! char buffer[1024];
! char *f;
! Object ret;
!
! f = Get_String(form);
! switch (TYPE(num)) {
! case T_Fixnum:
! sprintf(buffer, f, FIXNUM(num));
! break;
! case T_Bignum:
! sprintf(buffer, f, Bignum_To_Long(num));
! break;
! case T_Flonum:
! sprintf(buffer, f, Get_Double(num));
! break;
! default:
! Primitive_Error("illegal type - expected number");
}
! ret = Make_String(buffer, strlen (buffer));
! return ret;
}
! void elk_init_misc()
{
/* "seconds" was formerly known as "time" */
--- 96,218 ----
! static SchemeObject
! P_Getpid ()
{
! return Make_Integer(getpid());
}
! static SchemeObject
! P_System (SchemeObject cmd)
! {
! register char *s;
! register int i, n, pid;
! int status;
! s = Get_String(cmd);
#ifdef VFORK
! switch (pid = vfork ())
#else
! switch (pid = fork ())
#endif
+ {
case -1:
! /* where is extern errno defined ?
! Saved_Errno = errno;
! Primitive_Error ("cannot fork: ~E");
! */
! Primitive_Error ("cannot fork");
!
case 0:
! n = Open_Max ();
! for (i = 3; i < n; i++)
! {
! (void)close (i);
! }
! execl ("/bin/sh", "sh", "-c", s, (char *)0);
! _exit (127);
!
default:
! Disable_Interrupts;
! while ((i = wait(&status)) != pid && i != -1)
! {
! ;
! }
! Enable_Interrupts;
}
! if (i == -1)
! {
! return False;
! }
! if ((n = (status.w_status & 0377)))
! {
! return Cons (Make_Fixnum (n), Null);
! }
! return Make_Fixnum ((status.w_status >> 8) & 0377);
}
! static SchemeObject
! P_Getenv (SchemeObject e)
! {
! register char *s;
! SchemeObject ret;
! s = Get_String(e);
! ret = (s = getenv (s)) ? Make_String (s, strlen (s)) : False;
! return ret;
}
! static SchemeObject
! P_Getwd ()
! {
! char buffer[PATH_MAX + 1];
! if (getcwd(buffer, PATH_MAX) == NULL)
! {
! return False;
! }
! else
! {
! return Make_String(buffer, strlen(buffer));
! }
}
! static SchemeObject
! P_Num_Sprintf (SchemeObject form,
! SchemeObject num)
! {
! char buffer[1024];
! char *f;
! SchemeObject ret;
!
! f = Get_String(form);
! switch (TYPE(num))
! {
! case T_Fixnum:
! sprintf(buffer, f, FIXNUM(num));
! break;
!
! case T_Bignum:
! sprintf(buffer, f, Bignum_To_Long(num));
! break;
!
! case T_Flonum:
! sprintf(buffer, f, Get_Double(num));
! break;
!
! default:
! Primitive_Error("illegal type - expected number");
}
! ret = Make_String(buffer, strlen (buffer));
! return ret;
}
! void
! elk_init_misc ()
{
/* "seconds" was formerly known as "time" */
|