diff --git a/LOG b/LOG index 93419364dc..e43e0d425a 100644 --- a/LOG +++ b/LOG @@ -960,5 +960,10 @@ schlib.c - Updated csug socket code to match that in examples folder csug/foreign.stex, examples/socket.ss +- add an option --disable-x11 + c/version.h, configure +- allow s_ee_get_clipboard to use the pastebuffer on macOS even when X11 is not + available. + expeditor.c - Adjust cp0 to not replace a procedure name from a let wrapper cp0.ss, misc.ms diff --git a/c/expeditor.c b/c/expeditor.c index 84c38971ca..78f6be3bfb 100644 --- a/c/expeditor.c +++ b/c/expeditor.c @@ -888,8 +888,10 @@ static void s_ee_line_feed(void) { #include #include #include +#endif /* LIBX11 */ static ptr s_ee_get_clipboard(void) { +#ifdef LIBX11 static enum {UNINITIALIZED, INITIALIZED, FAILED} status = UNINITIALIZED; static int (*pXConvertSelection)(Display *, Atom, Atom, Atom, Window, Time); static int (*pXPending)(Display *display); @@ -899,9 +901,11 @@ static ptr s_ee_get_clipboard(void) { static Display *D; static Window R, W; +#endif /* LIBX11 */ ptr p = S_G.null_string; +#ifdef LIBX11 if (status == UNINITIALIZED) { char *display_name; void *handle; @@ -986,6 +990,7 @@ static ptr s_ee_get_clipboard(void) { } } } +#endif /* LIBX11 */ #ifdef MACOSX #define PBPASTEBUFSIZE 1024 @@ -1013,11 +1018,6 @@ static ptr s_ee_get_clipboard(void) { return p; } -#else /* LIBX11 */ -static ptr s_ee_get_clipboard(void) { - return S_G.null_string; -} -#endif static void s_ee_write_char(wchar_t wch) { locale_t old; char buf[MB_LEN_MAX]; size_t n; diff --git a/c/version.h b/c/version.h index ad9ac5c4c7..ebb4937a07 100644 --- a/c/version.h +++ b/c/version.h @@ -14,6 +14,8 @@ * limitations under the License. */ +#include "config.h" + #if (machine_type == machine_type_arm32le || machine_type == machine_type_tarm32le || machine_type == machine_type_arm64le || machine_type == machine_type_tarm64le) #if (machine_type == machine_type_tarm32le || machine_type == machine_type_tarm64le) #define PTHREADS @@ -34,7 +36,9 @@ typedef int tputsputcchar; #define LOCKF #define DIRMARKERP(c) ((c) == '/') #define FLUSHCACHE +#ifndef DISABLE_X11 #define LIBX11 "libX11.so" +#endif #define LSEEK lseek64 #define OFF_T off64_t #define _LARGEFILE64_SOURCE @@ -67,7 +71,9 @@ typedef int tputsputcchar; #define LOCKF #define DIRMARKERP(c) ((c) == '/') #define FLUSHCACHE +#ifndef DISABLE_X11 #define LIBX11 "libX11.so" +#endif #define LSEEK lseek64 #define OFF_T off64_t #define _LARGEFILE64_SOURCE @@ -100,7 +106,9 @@ typedef char *memcpy_t; typedef int tputsputcchar; #define LOCKF #define DIRMARKERP(c) ((c) == '/') +#ifndef DISABLE_X11 #define LIBX11 "libX11.so" +#endif #define LSEEK lseek64 #define OFF_T off64_t #define _LARGEFILE64_SOURCE @@ -133,7 +141,9 @@ typedef char *memcpy_t; typedef int tputsputcchar; #define LOCKF #define DIRMARKERP(c) ((c) == '/') +#ifndef DISABLE_X11 #define LIBX11 "libX11.so" +#endif #define SECATIME(sb) (sb).st_atimespec.tv_sec #define SECCTIME(sb) (sb).st_ctimespec.tv_sec #define SECMTIME(sb) (sb).st_mtimespec.tv_sec @@ -164,7 +174,9 @@ typedef char *memcpy_t; typedef int tputsputcchar; #define LOCKF #define DIRMARKERP(c) ((c) == '/') +#ifndef DISABLE_X11 #define LIBX11 "libX11.so" +#endif #define SECATIME(sb) (sb).st_atimespec.tv_sec #define SECCTIME(sb) (sb).st_ctimespec.tv_sec #define SECMTIME(sb) (sb).st_mtimespec.tv_sec @@ -248,7 +260,9 @@ typedef char *memcpy_t; typedef int tputsputcchar; #define LOCKF #define DIRMARKERP(c) ((c) == '/') +#ifndef DISABLE_X11 #define LIBX11 "libX11.so" +#endif #define SECATIME(sb) (sb).st_atimespec.tv_sec #define SECCTIME(sb) (sb).st_ctimespec.tv_sec #define SECMTIME(sb) (sb).st_mtimespec.tv_sec @@ -279,7 +293,9 @@ typedef char *memcpy_t; typedef int tputsputcchar; #define LOCKF #define DIRMARKERP(c) ((c) == '/') +#ifndef DISABLE_X11 #define LIBX11 "/usr/X11R6/lib/libX11.dylib" +#endif #define _DARWIN_USE_64_BIT_INODE #define SECATIME(sb) (sb).st_atimespec.tv_sec #define SECCTIME(sb) (sb).st_ctimespec.tv_sec @@ -346,7 +362,9 @@ typedef char *memcpy_t; typedef char tputsputcchar; #define LOCKF #define DIRMARKERP(c) ((c) == '/') +#ifndef DISABLE_X11 #define LIBX11 "libX11.so" +#endif #define SECATIME(sb) (sb).st_atim.tv_sec #define SECCTIME(sb) (sb).st_ctim.tv_sec #define SECMTIME(sb) (sb).st_mtim.tv_sec diff --git a/configure b/configure index e98b581269..ca9c3398b6 100755 --- a/configure +++ b/configure @@ -37,6 +37,7 @@ installman="" installschemename="scheme" installpetitename="petite" installscriptname="scheme-script" +disablex11=no : ${CC:="gcc"} : ${CPPFLAGS:=""} : ${CFLAGS:=""} @@ -200,6 +201,9 @@ while [ $# != 0 ] ; do --help) help=yes ;; + --disable-x11) + disablex11=yes + ;; CC=*) CC=`echo $1 | sed -e 's/^CC=//'` ;; @@ -266,6 +270,7 @@ if [ "$help" = "yes" ]; then echo " -m= same as --machine ($m)" echo " --threads specify threaded version ($threads)" echo " --32|--64 specify 32/64-bit version ($bits)" + echo " --disable-x11 disabling x11" echo " --installprefix= final installation root ($installprefix)" echo " --installbin= bin directory ($installbin)" echo " --installlib= lib directory ($installlib)" @@ -368,6 +373,10 @@ cat > $w/c/config.h << END #endif END +if [ "$disablex11" = "yes" ]; then + echo '#define DISABLE_X11' >> $w/c/config.h +fi + cat > $w/c/Mf-config << END CC=$CC CPPFLAGS=$CPPFLAGS