* Added -no-undefined to all plugins' LDFLAGS.
* Disabled most of the unix plugin code under Windows. * Replaced remaining index/rindex calls with strchr/strrchr. * Updated the Win32 build. git-svn-id: svn://svn.zoy.org/elk/trunk@164 55e467fa-43c5-0310-a8a2-de718669efc6
This commit is contained in:
parent
7d3267a72c
commit
69724a8ba7
|
@ -13,10 +13,11 @@ rm -Rf "${DIRNAME}"
|
||||||
rm -f "${DIRNAME}.zip"
|
rm -f "${DIRNAME}.zip"
|
||||||
mkdir "${DIRNAME}"
|
mkdir "${DIRNAME}"
|
||||||
|
|
||||||
# To build for win32, I use ./configure --host=i586-mingw32msvc
|
# To build for win32, I use:
|
||||||
(cd src && make && cp elk.exe "${DESTDIR}")
|
# ./configure --host=i586-mingw32msvc --prefix=/ --bindir=/ --libdir=/
|
||||||
(cd scm && make install DESTDIR="${DESTDIR}" datadir="/")
|
# make pkglibdir=/lib pkgdatadir=/scm
|
||||||
mv "${DESTDIR}/elk" "${DESTDIR}/scm"
|
make install DESTDIR="${DESTDIR}" pkglibdir=/lib pkgdatadir=/scm
|
||||||
|
cp "src/.libs/libelk-0.dll" "${DESTDIR}"
|
||||||
|
|
||||||
# Pack the directory
|
# Pack the directory
|
||||||
zip "${DIRNAME}.zip" `find "${DIRNAME}"`
|
zip "${DIRNAME}.zip" `find "${DIRNAME}"`
|
||||||
|
|
|
@ -383,7 +383,7 @@ AC_DEFINE(ANSI_CPP, 1, [FIXME HARD])
|
||||||
|
|
||||||
# The UNIX extension likes to know which of the following system calls,
|
# The UNIX extension likes to know which of the following system calls,
|
||||||
# library functions, and include files are supported by the system.
|
# library functions, and include files are supported by the system.
|
||||||
AC_CHECK_HEADERS(utime.h sys/wait.h)
|
AC_CHECK_HEADERS(utime.h sys/utime.h sys/wait.h dirent.h)
|
||||||
AC_CHECK_FUNCS(waitpid wait3 wait4 vfork uname gethostname gettimeofday ftime)
|
AC_CHECK_FUNCS(waitpid wait3 wait4 vfork uname gethostname gettimeofday ftime)
|
||||||
AC_CHECK_FUNCS(mktemp tmpnam tempnam getcwd getwd rename regcomp)
|
AC_CHECK_FUNCS(mktemp tmpnam tempnam getcwd getwd rename regcomp)
|
||||||
|
|
||||||
|
@ -410,7 +410,7 @@ AC_DEFINE_UNQUOTED(LIB_DIR, "${prefix}/lib/elk", [Plugins directory])
|
||||||
#define FIND_AOUT defined(USE_LD) || defined(CAN_DUMP) || defined(INIT_OBJECTS)
|
#define FIND_AOUT defined(USE_LD) || defined(CAN_DUMP) || defined(INIT_OBJECTS)
|
||||||
AC_DEFINE(FIND_AOUT, 1, [FIXME HARD])
|
AC_DEFINE(FIND_AOUT, 1, [FIXME HARD])
|
||||||
|
|
||||||
AC_CHECK_HEADERS(pwd.h sys/resource.h)
|
AC_CHECK_HEADERS(pwd.h grp.h sys/resource.h)
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl Check for available compiler features
|
dnl Check for available compiler features
|
||||||
|
|
|
@ -19,7 +19,7 @@ unix_la_SOURCES = \
|
||||||
unix.c \
|
unix.c \
|
||||||
wait.c \
|
wait.c \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
unix_la_LDFLAGS = -module -avoid-version
|
unix_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
unix_la_LIBADD = $(top_builddir)/src/libelk.la
|
unix_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
extensions_HEADERS = unix.h
|
extensions_HEADERS = unix.h
|
||||||
|
|
|
@ -62,7 +62,9 @@ static SYMDESCR Fcntl_Flags[] = {
|
||||||
#ifdef O_SYNCIO
|
#ifdef O_SYNCIO
|
||||||
{ "syncio", O_SYNCIO },
|
{ "syncio", O_SYNCIO },
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef O_NDELAY
|
||||||
{ "ndelay", O_NDELAY },
|
{ "ndelay", O_NDELAY },
|
||||||
|
#endif
|
||||||
#ifdef O_NONBLOCK
|
#ifdef O_NONBLOCK
|
||||||
{ "nonblock", O_NONBLOCK },
|
{ "nonblock", O_NONBLOCK },
|
||||||
#endif
|
#endif
|
||||||
|
@ -91,15 +93,19 @@ static Object P_Close(Object fd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Close_On_Exec(int argc, Object *argv) {
|
static Object P_Close_On_Exec(int argc, Object *argv) {
|
||||||
int flags, fd;
|
int flags = 0, fd;
|
||||||
|
|
||||||
fd = Get_Integer(argv[0]);
|
fd = Get_Integer(argv[0]);
|
||||||
|
#ifndef WIN32
|
||||||
if ((flags = fcntl(fd, F_GETFD, 0)) == -1)
|
if ((flags = fcntl(fd, F_GETFD, 0)) == -1)
|
||||||
Raise_System_Error("fcntl(F_GETFD): ~E");
|
Raise_System_Error("fcntl(F_GETFD): ~E");
|
||||||
|
#endif
|
||||||
if (argc == 2) {
|
if (argc == 2) {
|
||||||
Check_Type(argv[1], T_Boolean);
|
Check_Type(argv[1], T_Boolean);
|
||||||
|
#ifndef WIN32
|
||||||
if (fcntl(fd, F_SETFD, Truep(argv[1])) == -1)
|
if (fcntl(fd, F_SETFD, Truep(argv[1])) == -1)
|
||||||
Raise_System_Error("fcntl(F_SETFD): ~E");
|
Raise_System_Error("fcntl(F_SETFD): ~E");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return flags & 1 ? True : False;
|
return flags & 1 ? True : False;
|
||||||
}
|
}
|
||||||
|
@ -113,14 +119,18 @@ static Object P_Dup(int argc, Object *argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Filedescriptor_Flags(int argc, Object *argv) {
|
static Object P_Filedescriptor_Flags(int argc, Object *argv) {
|
||||||
int flags, fd;
|
int flags = 0, fd;
|
||||||
|
|
||||||
fd = Get_Integer(argv[0]);
|
fd = Get_Integer(argv[0]);
|
||||||
|
#ifndef WIN32
|
||||||
if ((flags = fcntl(fd, F_GETFL, 0)) == -1)
|
if ((flags = fcntl(fd, F_GETFL, 0)) == -1)
|
||||||
Raise_System_Error("fcntl(F_GETFL): ~E");
|
Raise_System_Error("fcntl(F_GETFL): ~E");
|
||||||
|
#endif
|
||||||
if (argc == 2) {
|
if (argc == 2) {
|
||||||
|
#ifndef WIN32
|
||||||
if (fcntl(fd, F_SETFL, Symbols_To_Bits(argv[1], 1, Fcntl_Flags)) == -1)
|
if (fcntl(fd, F_SETFL, Symbols_To_Bits(argv[1], 1, Fcntl_Flags)) == -1)
|
||||||
Raise_System_Error("fcntl(F_SETFL): ~E");
|
Raise_System_Error("fcntl(F_SETFL): ~E");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return Bits_To_Symbols((unsigned long)flags, 1, Fcntl_Flags);
|
return Bits_To_Symbols((unsigned long)flags, 1, Fcntl_Flags);
|
||||||
}
|
}
|
||||||
|
@ -223,7 +233,11 @@ static Object P_Open(int argc, Object *argv) {
|
||||||
static Object P_Pipe() {
|
static Object P_Pipe() {
|
||||||
int fd[2];
|
int fd[2];
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
if (_pipe(fd, 256, O_BINARY) == -1)
|
||||||
|
#else
|
||||||
if (pipe(fd) == -1)
|
if (pipe(fd) == -1)
|
||||||
|
#endif
|
||||||
Raise_System_Error("~E");
|
Raise_System_Error("~E");
|
||||||
return Integer_Pair(fd[0], fd[1]);
|
return Integer_Pair(fd[0], fd[1]);
|
||||||
}
|
}
|
||||||
|
@ -267,12 +281,14 @@ static Object P_Writex(int argc, Object *argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Ttyname(Object fd) {
|
static Object P_Ttyname(Object fd) {
|
||||||
char *ret;
|
char *ret = NULL;
|
||||||
|
#ifndef WIN32
|
||||||
extern char *ttyname();
|
extern char *ttyname();
|
||||||
|
|
||||||
Disable_Interrupts;
|
Disable_Interrupts;
|
||||||
ret = ttyname(Get_Integer(fd));
|
ret = ttyname(Get_Integer(fd));
|
||||||
Enable_Interrupts;
|
Enable_Interrupts;
|
||||||
|
#endif
|
||||||
return ret ? Make_String(ret, strlen(ret)) : False;
|
return ret ? Make_String(ret, strlen(ret)) : False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,13 +34,15 @@
|
||||||
|
|
||||||
#ifdef HAVE_UTIME_H
|
#ifdef HAVE_UTIME_H
|
||||||
# include <utime.h>
|
# include <utime.h>
|
||||||
|
#elif HAVE_SYS_UTIME_H
|
||||||
|
# include <sys/utime.h>
|
||||||
#else
|
#else
|
||||||
struct utimbuf {
|
struct utimbuf {
|
||||||
time_t actime, modtime;
|
time_t actime, modtime;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_DIRENT
|
#ifdef HAVE_DIRENT_H
|
||||||
# include <dirent.h>
|
# include <dirent.h>
|
||||||
#else
|
#else
|
||||||
# include <sys/dir.h>
|
# include <sys/dir.h>
|
||||||
|
@ -78,26 +80,32 @@ static Object P_Chmod(Object fn, Object mode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Chown(Object fn, Object uid, Object gid) {
|
static Object P_Chown(Object fn, Object uid, Object gid) {
|
||||||
|
#ifndef WIN32
|
||||||
if (chown(Get_Strsym(fn), Get_Integer(uid), Get_Integer(gid)) == -1)
|
if (chown(Get_Strsym(fn), Get_Integer(uid), Get_Integer(gid)) == -1)
|
||||||
Raise_System_Error1("~s: ~E", fn);
|
Raise_System_Error1("~s: ~E", fn);
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Link(Object fn1, Object fn2) {
|
static Object P_Link(Object fn1, Object fn2) {
|
||||||
|
#ifndef WIN32
|
||||||
if (link(Get_Strsym(fn1), Get_Strsym(fn2)) == -1)
|
if (link(Get_Strsym(fn1), Get_Strsym(fn2)) == -1)
|
||||||
Raise_System_Error2("(~s ~s): ~E", fn1, fn2);
|
Raise_System_Error2("(~s ~s): ~E", fn1, fn2);
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Mkdir(Object fn, Object mode) {
|
static Object P_Mkdir(Object fn, Object mode) {
|
||||||
|
#ifndef WIN32
|
||||||
if (mkdir(Get_Strsym(fn), Get_Integer(mode)) == -1)
|
if (mkdir(Get_Strsym(fn), Get_Integer(mode)) == -1)
|
||||||
Raise_System_Error1("~s: ~E", fn);
|
Raise_System_Error1("~s: ~E", fn);
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Read_Directory(Object fn) {
|
static Object P_Read_Directory(Object fn) {
|
||||||
DIR *d;
|
DIR *d;
|
||||||
#ifdef HAVE_DIRENT
|
#ifdef HAVE_DIRENT_H
|
||||||
struct dirent *dp;
|
struct dirent *dp;
|
||||||
#else
|
#else
|
||||||
struct direct *dp;
|
struct direct *dp;
|
||||||
|
@ -155,7 +163,7 @@ static Object General_Stat(Object obj, Object ret, int l) {
|
||||||
Object x;
|
Object x;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
char *s, *fn = NULL;
|
char *s, *fn = NULL;
|
||||||
int fd = -1, result;
|
int fd = -1, result = 0;
|
||||||
GC_Node;
|
GC_Node;
|
||||||
|
|
||||||
Check_Result_Vector(ret, 11);
|
Check_Result_Vector(ret, 11);
|
||||||
|
@ -268,9 +276,11 @@ static Object P_Utime(int argc, Object *argv) {
|
||||||
ut.actime = (time_t)Get_Unsigned_Long(argv[1]);
|
ut.actime = (time_t)Get_Unsigned_Long(argv[1]);
|
||||||
ut.modtime = (time_t)Get_Unsigned_Long(argv[2]);
|
ut.modtime = (time_t)Get_Unsigned_Long(argv[2]);
|
||||||
}
|
}
|
||||||
|
#ifndef WIN32
|
||||||
if (utime(Get_Strsym(argv[0]), argc == 1 ? (struct utimbuf *)0 : &ut)
|
if (utime(Get_Strsym(argv[0]), argc == 1 ? (struct utimbuf *)0 : &ut)
|
||||||
== -1)
|
== -1)
|
||||||
Raise_System_Error1("~s: ~E", argv[0]);
|
Raise_System_Error1("~s: ~E", argv[0]);
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
static Object P_Getpass(Object prompt) {
|
static Object P_Getpass(Object prompt) {
|
||||||
char *ret;
|
char *ret;
|
||||||
extern char *getpass();
|
extern char *getpass();
|
||||||
|
@ -47,3 +48,4 @@ static Object P_Getpass(Object prompt) {
|
||||||
void elk_init_unix_misc() {
|
void elk_init_unix_misc() {
|
||||||
Def_Prim(P_Getpass, "unix-getpass", 1, 1, EVAL);
|
Def_Prim(P_Getpass, "unix-getpass", 1, 1, EVAL);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -31,10 +31,15 @@
|
||||||
#include "unix.h"
|
#include "unix.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#ifdef HAVE_PWD_H
|
||||||
# include <pwd.h>
|
# include <pwd.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_GRP_H
|
||||||
# include <grp.h>
|
# include <grp.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
static Object P_Get_Passwd(int argc, Object *argv) {
|
static Object P_Get_Passwd(int argc, Object *argv) {
|
||||||
|
#ifndef WIN32
|
||||||
struct passwd *p;
|
struct passwd *p;
|
||||||
Object arg, x;
|
Object arg, x;
|
||||||
|
|
||||||
|
@ -77,24 +82,30 @@ static Object P_Get_Passwd(int argc, Object *argv) {
|
||||||
VECTOR(argv[0])->data[5] = x;
|
VECTOR(argv[0])->data[5] = x;
|
||||||
x = Make_String(p->pw_shell, strlen(p->pw_shell));
|
x = Make_String(p->pw_shell, strlen(p->pw_shell));
|
||||||
VECTOR(argv[0])->data[6] = x;
|
VECTOR(argv[0])->data[6] = x;
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Rewind_Passwd() {
|
static Object P_Rewind_Passwd() {
|
||||||
|
#ifndef WIN32
|
||||||
Disable_Interrupts;
|
Disable_Interrupts;
|
||||||
setpwent();
|
setpwent();
|
||||||
Enable_Interrupts;
|
Enable_Interrupts;
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_End_Passwd() {
|
static Object P_End_Passwd() {
|
||||||
|
#ifndef WIN32
|
||||||
Disable_Interrupts;
|
Disable_Interrupts;
|
||||||
endpwent();
|
endpwent();
|
||||||
Enable_Interrupts;
|
Enable_Interrupts;
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Get_Group(int argc, Object *argv) {
|
static Object P_Get_Group(int argc, Object *argv) {
|
||||||
|
#ifndef WIN32
|
||||||
char **pp;
|
char **pp;
|
||||||
struct group *p;
|
struct group *p;
|
||||||
Object arg, member, x;
|
Object arg, member, x;
|
||||||
|
@ -140,20 +151,25 @@ static Object P_Get_Group(int argc, Object *argv) {
|
||||||
x = P_Reverse(x);
|
x = P_Reverse(x);
|
||||||
GC_Unlink;
|
GC_Unlink;
|
||||||
VECTOR(argv[0])->data[3] = x;
|
VECTOR(argv[0])->data[3] = x;
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Rewind_Group() {
|
static Object P_Rewind_Group() {
|
||||||
|
#ifndef WIN32
|
||||||
Disable_Interrupts;
|
Disable_Interrupts;
|
||||||
setgrent();
|
setgrent();
|
||||||
Enable_Interrupts;
|
Enable_Interrupts;
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_End_Group() {
|
static Object P_End_Group() {
|
||||||
|
#ifndef WIN32
|
||||||
Disable_Interrupts;
|
Disable_Interrupts;
|
||||||
endgrent();
|
endgrent();
|
||||||
Enable_Interrupts;
|
Enable_Interrupts;
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,8 +32,11 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_SYS_TIMES_H
|
||||||
# include <sys/times.h>
|
# include <sys/times.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
/* "extern" in front of the next declaration causes the Ultrix 4.2 linker
|
/* "extern" in front of the next declaration causes the Ultrix 4.2 linker
|
||||||
* to fail when dynamically loading unix.o (but omitting it does no longer
|
* to fail when dynamically loading unix.o (but omitting it does no longer
|
||||||
* work with modern C compilers):
|
* work with modern C compilers):
|
||||||
|
@ -50,7 +53,7 @@ static Object P_Environ() {
|
||||||
GC_Link2(ret, cell);
|
GC_Link2(ret, cell);
|
||||||
for (ep = environ; *ep; ep++) {
|
for (ep = environ; *ep; ep++) {
|
||||||
cell = Cons(Null, Null);
|
cell = Cons(Null, Null);
|
||||||
p = index(*ep, '=');
|
p = strchr(*ep, '=');
|
||||||
if (p)
|
if (p)
|
||||||
*p++ = 0;
|
*p++ = 0;
|
||||||
else p = c+1;
|
else p = c+1;
|
||||||
|
@ -343,7 +346,7 @@ err:
|
||||||
}
|
}
|
||||||
if (fgets(buf, max, fp) == 0)
|
if (fgets(buf, max, fp) == 0)
|
||||||
goto err;
|
goto err;
|
||||||
if (p = index(buf, '\n')) *p = '\0';
|
if (p = strchr(buf, '\n')) *p = '\0';
|
||||||
(void)pclose(fp);
|
(void)pclose(fp);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -374,3 +377,4 @@ void elk_init_unix_process() {
|
||||||
Def_Prim(P_Umask, "unix-umask", 1, 1, EVAL);
|
Def_Prim(P_Umask, "unix-umask", 1, 1, EVAL);
|
||||||
Def_Prim(P_Working_Directory, "unix-working-directory", 0, 0, EVAL);
|
Def_Prim(P_Working_Directory, "unix-working-directory", 0, 0, EVAL);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -33,17 +33,27 @@
|
||||||
static Object Sym_Exit, Sym_Default, Sym_Ignore;
|
static Object Sym_Exit, Sym_Default, Sym_Ignore;
|
||||||
|
|
||||||
static SYMDESCR Signal_Syms[] = {
|
static SYMDESCR Signal_Syms[] = {
|
||||||
|
#ifdef SIGALRM
|
||||||
{ "sigalrm", SIGALRM },
|
{ "sigalrm", SIGALRM },
|
||||||
|
#endif
|
||||||
#ifdef SIGBUS
|
#ifdef SIGBUS
|
||||||
{ "sigbus", SIGBUS },
|
{ "sigbus", SIGBUS },
|
||||||
#endif
|
#endif
|
||||||
{ "sigfpe", SIGFPE },
|
{ "sigfpe", SIGFPE },
|
||||||
|
#ifdef SIGHUP
|
||||||
{ "sighup", SIGHUP },
|
{ "sighup", SIGHUP },
|
||||||
|
#endif
|
||||||
{ "sigill", SIGILL },
|
{ "sigill", SIGILL },
|
||||||
{ "sigint", SIGINT },
|
{ "sigint", SIGINT },
|
||||||
|
#ifdef SIGKILL
|
||||||
{ "sigkill", SIGKILL },
|
{ "sigkill", SIGKILL },
|
||||||
|
#endif
|
||||||
|
#ifdef SIGPIPE
|
||||||
{ "sigpipe", SIGPIPE },
|
{ "sigpipe", SIGPIPE },
|
||||||
|
#endif
|
||||||
|
#ifdef SIGQUIT
|
||||||
{ "sigquit", SIGQUIT },
|
{ "sigquit", SIGQUIT },
|
||||||
|
#endif
|
||||||
{ "sigsegv", SIGSEGV },
|
{ "sigsegv", SIGSEGV },
|
||||||
{ "sigterm", SIGTERM },
|
{ "sigterm", SIGTERM },
|
||||||
#ifdef SIGABRT
|
#ifdef SIGABRT
|
||||||
|
@ -179,6 +189,7 @@ static SYMDESCR Signal_Syms[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static Object P_Kill(Object pid, Object sig) {
|
static Object P_Kill(Object pid, Object sig) {
|
||||||
|
#ifndef WIN32
|
||||||
int t, s;
|
int t, s;
|
||||||
|
|
||||||
if ((t = TYPE(sig)) == T_Fixnum || t == T_Bignum)
|
if ((t = TYPE(sig)) == T_Fixnum || t == T_Bignum)
|
||||||
|
@ -189,6 +200,7 @@ static Object P_Kill(Object pid, Object sig) {
|
||||||
Wrong_Type_Combination(sig, "symbol or integer");
|
Wrong_Type_Combination(sig, "symbol or integer");
|
||||||
if (kill(Get_Integer(pid), s) == -1)
|
if (kill(Get_Integer(pid), s) == -1)
|
||||||
Raise_System_Error("~E");
|
Raise_System_Error("~E");
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,8 +209,11 @@ static Object P_List_Signals() {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object P_Pause() {
|
static Object P_Pause() {
|
||||||
|
#ifndef WIN32
|
||||||
pause();
|
pause();
|
||||||
Fatal_Error("pause() returned unexpectedly");
|
Fatal_Error("pause() returned unexpectedly");
|
||||||
|
#endif
|
||||||
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAVE_SIGPROCMASK) || defined(HAVE_SIGBLOCK)
|
#if defined(HAVE_SIGPROCMASK) || defined(HAVE_SIGBLOCK)
|
||||||
|
|
|
@ -192,7 +192,7 @@ static Object P_System_Info(Object ret) {
|
||||||
GC_Link(ret);
|
GC_Link(ret);
|
||||||
x = Make_String(p, strlen(p)); VECTOR(ret)->data[0] = x;
|
x = Make_String(p, strlen(p)); VECTOR(ret)->data[0] = x;
|
||||||
strcpy(systype, SYSTEMTYPE);
|
strcpy(systype, SYSTEMTYPE);
|
||||||
if ((p = index(systype, '-')) && (q = index(p+1, '-'))) {
|
if ((p = strchr(systype, '-')) && (q = strchr(p+1, '-'))) {
|
||||||
*p++ = 0; *q = 0;
|
*p++ = 0; *q = 0;
|
||||||
} else p = "?";
|
} else p = "?";
|
||||||
x = Make_String(systype, strlen(systype)); VECTOR(ret)->data[1] = x;
|
x = Make_String(systype, strlen(systype)); VECTOR(ret)->data[1] = x;
|
||||||
|
|
|
@ -34,7 +34,9 @@
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#ifdef HAVE_SYS_WAIT_H
|
||||||
# include <sys/wait.h>
|
# include <sys/wait.h>
|
||||||
|
#endif
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,7 @@ static SYMDESCR Wait_Flags[] = {
|
||||||
|
|
||||||
static Object General_Wait(Object ret, Object ruret,
|
static Object General_Wait(Object ret, Object ruret,
|
||||||
int haspid, int pid, int options) {
|
int haspid, int pid, int options) {
|
||||||
|
#ifndef WIN32
|
||||||
int retpid, st, code;
|
int retpid, st, code;
|
||||||
char *status;
|
char *status;
|
||||||
#ifdef WAIT_RUSAGE
|
#ifdef WAIT_RUSAGE
|
||||||
|
@ -137,6 +138,7 @@ static Object General_Wait(Object ret, Object ruret,
|
||||||
VECTOR(ruret)->data[1] = x;
|
VECTOR(ruret)->data[1] = x;
|
||||||
#endif
|
#endif
|
||||||
GC_Unlink;
|
GC_Unlink;
|
||||||
|
#endif
|
||||||
return Void;
|
return Void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ xlib_la_SOURCES = \
|
||||||
xobjects.c \
|
xobjects.c \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
xlib_la_CFLAGS = @X_CFLAGS@
|
xlib_la_CFLAGS = @X_CFLAGS@
|
||||||
xlib_la_LDFLAGS = -module -avoid-version
|
xlib_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
xlib_la_LIBADD = $(top_builddir)/src/libelk.la @X_LIBS@
|
xlib_la_LIBADD = $(top_builddir)/src/libelk.la @X_LIBS@
|
||||||
|
|
||||||
extensions_HEADERS = xlib.h
|
extensions_HEADERS = xlib.h
|
||||||
|
|
|
@ -18,12 +18,12 @@ endif
|
||||||
|
|
||||||
xaw_xt_la_SOURCES = $(SOURCES_XT)
|
xaw_xt_la_SOURCES = $(SOURCES_XT)
|
||||||
xaw_xt_la_CFLAGS = -I$(srcdir)/../xlib @XAW_CFLAGS@
|
xaw_xt_la_CFLAGS = -I$(srcdir)/../xlib @XAW_CFLAGS@
|
||||||
xaw_xt_la_LDFLAGS = -module -avoid-version
|
xaw_xt_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
xaw_xt_la_LIBADD = $(top_builddir)/src/libelk.la @XAW_LIBS@
|
xaw_xt_la_LIBADD = $(top_builddir)/src/libelk.la @XAW_LIBS@
|
||||||
|
|
||||||
motif_xt_la_SOURCES = $(SOURCES_XT)
|
motif_xt_la_SOURCES = $(SOURCES_XT)
|
||||||
motif_xt_la_CFLAGS = -I$(srcdir)/../xlib @MOTIF_CFLAGS@
|
motif_xt_la_CFLAGS = -I$(srcdir)/../xlib @MOTIF_CFLAGS@
|
||||||
motif_xt_la_LDFLAGS = -module -avoid-version
|
motif_xt_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
motif_xt_la_LIBADD = $(top_builddir)/src/libelk.la @MOTIF_LIBS@
|
motif_xt_la_LIBADD = $(top_builddir)/src/libelk.la @MOTIF_LIBS@
|
||||||
|
|
||||||
extensions_HEADERS = xt.h
|
extensions_HEADERS = xt.h
|
||||||
|
|
|
@ -12,7 +12,7 @@ endif
|
||||||
nodist_motif_widgets_la_SOURCES = $(SOURCES_C)
|
nodist_motif_widgets_la_SOURCES = $(SOURCES_C)
|
||||||
motif_widgets_la_SOURCES = init.c
|
motif_widgets_la_SOURCES = init.c
|
||||||
motif_widgets_la_CFLAGS = -I$(srcdir)/../../xlib @MOTIF_CFLAGS@
|
motif_widgets_la_CFLAGS = -I$(srcdir)/../../xlib @MOTIF_CFLAGS@
|
||||||
motif_widgets_la_LDFLAGS = -module -avoid-version -u XmIsMotifWMRunning
|
motif_widgets_la_LDFLAGS = -module -avoid-version -no-undefined -u XmIsMotifWMRunning
|
||||||
motif_widgets_la_LIBADD = $(top_builddir)/src/libelk.la @MOTIF_LIBS@
|
motif_widgets_la_LIBADD = $(top_builddir)/src/libelk.la @MOTIF_LIBS@
|
||||||
|
|
||||||
.d.c:
|
.d.c:
|
||||||
|
|
|
@ -12,7 +12,7 @@ endif
|
||||||
nodist_xaw_widgets_la_SOURCES = $(SOURCES_C)
|
nodist_xaw_widgets_la_SOURCES = $(SOURCES_C)
|
||||||
xaw_widgets_la_SOURCES = init.c
|
xaw_widgets_la_SOURCES = init.c
|
||||||
xaw_widgets_la_CFLAGS = -I$(srcdir)/../../xlib @XAW_CFLAGS@
|
xaw_widgets_la_CFLAGS = -I$(srcdir)/../../xlib @XAW_CFLAGS@
|
||||||
xaw_widgets_la_LDFLAGS = -module -avoid-version
|
xaw_widgets_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
xaw_widgets_la_LIBADD = $(top_builddir)/src/libelk.la @XAW_LIBS@
|
xaw_widgets_la_LIBADD = $(top_builddir)/src/libelk.la @XAW_LIBS@
|
||||||
|
|
||||||
.d.c:
|
.d.c:
|
||||||
|
|
Loading…
Reference in New Issue