File clisp-2.49.dif of Package clisp

--- configure
+++ configure	2010-07-15 08:38:16.978924992 +0000
@@ -393,11 +393,11 @@ do
         passnext=both ;;
 
       --vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*)
-        subdir_configure_args="$subdir_configure_args $arg"
+#       subdir_configure_args="$subdir_configure_args $arg"
         makemake_args="$makemake_args --vimdir="`getarg "$arg"` ;;
 
       --vimdir | --vimdi | --vimd | --vim | --vi)
-        subdir_configure_args="$subdir_configure_args $arg"
+#       subdir_configure_args="$subdir_configure_args $arg"
         makemake_args="$makemake_args --vimdir="
         prev=vimdir
         passnext=both ;;
@@ -430,11 +430,9 @@ do
         passnext=configure ;;
 
       --build=* | --buil=* | --bui=* | --bu=*)
-        target=cross
         subdir_configure_args="$subdir_configure_args $arg" ;;
 
       --build | --buil | --bui | --bu)
-        target=cross
         subdir_configure_args="$subdir_configure_args $arg"
         prev=host
         passnext=configure ;;
--- ffcall-1.10+2.43/build-aux/config.guess
+++ ffcall-1.10+2.43/build-aux/config.guess	2008-02-25 13:00:18.000000000 +0000
@@ -985,6 +985,7 @@ EOF
 		exit ;;
 	esac
 	# Determine whether the default compiler is a.out or elf
+	test -e /etc/SuSE-release && VENDOR=suse
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
 	#include <features.h>
--- ffcall-1.10+2.43/callback/trampoline_r/trampoline.c
+++ ffcall-1.10+2.43/callback/trampoline_r/trampoline.c	2008-02-25 13:00:18.000000000 +0000
@@ -191,15 +191,11 @@ extern RETGETPAGESIZETYPE getpagesize (v
 #ifdef ultrix
 #include <mips/cachectl.h>
 #else
-#ifdef linux
-#include <asm/cachectl.h>
-#else
 #ifdef HAVE_SYS_CACHECTL_H
 #include <sys/cachectl.h>
 #endif
 #endif
 #endif
-#endif
 #ifdef __m88k__
 #include <sys/syslocal.h>
 #endif
--- modules/clx/new-clx/clx.lisp
+++ modules/clx/new-clx/clx.lisp	2008-02-25 13:00:18.000000000 +0000
@@ -22,6 +22,7 @@
 ;;;; --------------------------------------------------------------------------
 ;;;;  Exports
 ;;;; --------------------------------------------------------------------------
+(export '*displays*)
 (export
  '(*version* access-control access-error access-hosts activate-screen-saver
    add-access-host add-resource add-to-save-set alist alloc-color
--- modules/clx/new-clx/demos/clx-demos.lisp
+++ modules/clx/new-clx/demos/clx-demos.lisp	2010-07-14 12:49:25.000000000 +0000
@@ -11,7 +11,7 @@
 
 (defparameter *demos*
   ;; (demo-name [package requirements])
-  '((koch) (qix) (sokoban #:xpm) (greynetic) (petal) (hanoi)
+  '((greynetic) (petal) (hanoi)
     (recurrence) (plaid) (clclock) (bball) (bwindow)))
 
 (defmacro do-demos ((fun-var) &body body)
--- modules/clx/new-clx/demos/koch.lisp
+++ modules/clx/new-clx/demos/koch.lisp	2008-02-25 13:00:18.000000000 +0000
@@ -7,7 +7,30 @@
 ;;; $Id: koch.lisp,v 1.5 2008/06/25 23:05:28 sds Exp $
 ;;; $Source: /cvsroot/clisp/clisp/modules/clx/new-clx/demos/koch.lisp,v $
 
-(in-package :clx-demos)
+(defpackage "KOCH"
+  (:use "COMMON-LISP" "XLIB" "EXT")
+  (:import-from "SYS" "GETENV")
+  (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH
+  (:export "KOCH"))
+
+(in-package :koch) 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+  "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+  (if disp
+      (let* ((pos1 (position #\: disp))
+             (pos2 (and pos1 (position #\. disp :start pos1))))
+        (values (subseq disp 0 pos1)
+                (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+                (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+      (values "" 0 0)))
+
+(defun x-open-display ()
+  "Open the appropriate X display."
+  (multiple-value-bind (host di) (x-host-display)
+    (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defun koch-point (cx width/2 height/2 scale)
   (list (round (+ width/2 (* scale width/2 (realpart cx))))
@@ -123,4 +146,8 @@ Returns the new list and an indicator of
       (xlib:unmap-window win)
       (xlib:display-finish-output dpy))))
 
+(format t "~& Koch snoflake:~%
+  (koch:koch :width :height :delay :x :y :scale :font)
+~% Call (koch:koch)~%~%")
+
 (provide "koch")
--- modules/clx/new-clx/demos/qix.lisp
+++ modules/clx/new-clx/demos/qix.lisp	2008-02-25 13:00:18.000000000 +0000
@@ -14,7 +14,30 @@
 ;;;; o or a spline option?!
 ;;;;
 
-(in-package :clx-demos)
+(defpackage "QIX"
+  (:use "COMMON-LISP" "XLIB" "EXT")
+  (:import-from "SYS" "GETENV")
+  (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH
+  (:export "QIX"))
+
+(in-package :qix)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+  "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+  (if disp
+      (let* ((pos1 (position #\: disp))
+             (pos2 (and pos1 (position #\. disp :start pos1))))
+        (values (subseq disp 0 pos1)
+                (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+                (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+      (values "" 0 0)))
+
+(defun x-open-display ()
+  "Open the appropriate X display."
+  (multiple-value-bind (host di) (x-host-display)
+    (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defvar *offset* 3)
 (defvar *delta* 6)
@@ -87,4 +110,9 @@
       (xlib:unmap-window win)
       (xlib:display-finish-output dpy))))
 
+;; since we have no herald, simply dump it:
+(format t "~& The famous swirling vectors.~%
+ (qix:qix :host :display :dpy :width :height :delay :nqixs :nlines)
+~% Call (qix:qix) or (qix:qix :delay 0)~%~%")
+
 (provide "qix")
--- modules/clx/new-clx/demos/sokoban.lisp
+++ modules/clx/new-clx/demos/sokoban.lisp	2008-02-25 13:00:18.000000000 +0000
@@ -41,7 +41,30 @@
 ;;;;  - maximum field size is hard wired to 20x20. (This is not in the LISP spirit!)
 ;;;;  - sometimes the programm could not count correctly ...
 
-(in-package :clx-demos)
+(defpackage "SOKOBAN"
+  (:use "COMMON-LISP")
+  (:import-from "SYS" "GETENV")
+  (:import-from "XLIB" "CLOSED-DISPLAY-P")
+  (:export "SOKOBAN"))
+
+(in-package :sokoban)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+  "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+  (if disp
+      (let* ((pos1 (position #\: disp))
+             (pos2 (and pos1 (position #\. disp :start pos1))))
+        (values (subseq disp 0 pos1)
+                (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+                (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+      (values "" 0 0)))
+
+(defun x-open-display ()
+  "Open the appropriate X display."
+  (multiple-value-bind (host di) (x-host-display)
+    (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;;;; First a lot of global variables ...
 (defvar *pixmaps* nil)                  ;array of pixmaps according to below indices
@@ -228,7 +251,12 @@
                  (nny (+ ny dy)))
              (when (>= (field nnx nny) %floor)
                ;;Ok its legal ...
-               (when (and (= (field nx ny) %object)
+               ;;Allow moving through
+               (when (and (= (field nx ny)   %treasure)
+                          (= (field nnx nny) %floor))
+                 (incf *n-objects*))
+               ;;Take this point
+               (when (and (= (field nx ny)   %object)
                           (= (field nnx nny) %goal))
                  (decf *n-objects*))
                (incf (field nx ny) 4)   ;remove object and add man
@@ -475,4 +503,6 @@ If you quit sokoban using 'q' the curren
          (setq *level* 1)
          (init-field))) )
 
+(format t "~&~% Call (sokoban:sokoban)~%~%")
+
 (provide "sokoban")
--- modules/postgresql/link.sh.in
+++ modules/postgresql/link.sh.in	2008-02-25 13:00:18.000000000 +0000
@@ -4,5 +4,5 @@ ${MAKE-make} clisp-module \
 NEW_MODULES='postgresql'
 NEW_FILES=''
 for f in ${NEW_MODULES}; do NEW_FILES=${NEW_FILES}" ${f}.o"; done
-NEW_LIBS="${NEW_FILES} @LIBS@"
+NEW_LIBS="${NEW_FILES} @LIBS@ -lcrypt -lssl"
 TO_LOAD='postgresql sql'
--- src/aclocal.m4
+++ src/aclocal.m4	2008-02-25 13:00:18.000000000 +0000
@@ -6668,7 +6668,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
     dnl When using libtool, the option that works for both libraries and
     dnl executables is -R. The -R options are cumulative.
     for found_dir in $ltrpathdirs; do
-      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-Wl,-rpath-link$found_dir"
     done
   fi
   popdef([P_A_C_K])
--- src/lispbibl.d
+++ src/lispbibl.d	2010-07-14 12:53:05.000000000 +0000
@@ -121,7 +121,7 @@
   #define PC386 /* IBMPC-compatible with 80386/80486-processor */
 #endif
 #ifdef GENERIC_UNIX
-  #if (defined(unix) && (defined(linux) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__)))
+  #if (defined(unix) && ((defined(linux) || defined(__linux__)) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__)))
     #define PC386
   #endif
   #if (defined(sun) && defined(unix) && defined(sparc))
@@ -218,8 +218,14 @@
 #endif
 #ifdef GENERIC_UNIX
   #define UNIX
-  #ifdef __linux__
+  #if defined(__linux__) || defined(linux)
     #define UNIX_LINUX  /* Linux (Linus Torvalds Unix) */
+    #ifndef linux
+      #define linux
+    #endif
+    #ifndef __linux__
+      #define __linux__
+    #endif
   #endif
   #ifdef __GNU__
     #define UNIX_HURD  /* the GNU system (Hurd + glibc) */
@@ -1245,7 +1251,7 @@ typedef signed int  signean;
  address of its component 'ident' and return it as number: */
 #include <stddef.h>
 #ifndef offsetof
-  #define offsetof(type,ident)  ((ULONG)&(((type*)0)->ident))
+  #define offsetof(type,ident)  ((size_t)&(((type*)0)->ident))
 #endif
 /* Determine the offset of an array 'ident' in a struct of the type 'type': */
 #if defined(__cplusplus) || defined(MICROSOFT)
@@ -3312,9 +3318,9 @@ typedef signed_int_with_n_bits(intVsize)
    type_data_object(type,data) */
   #if defined(WIDE) && defined(WIDE_STRUCT)
     #if BIG_ENDIAN_P==WIDE_ENDIANNESS
-      #define type_data_object(type,data)  ((object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP})
+      #define type_data_object(type,data)  (object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP}
     #else
-      #define type_data_object(type,data)  ((object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP})
+      #define type_data_object(type,data)  (object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP}
     #endif
   #elif !(oint_addr_shift==0)
     #define type_data_object(type,data)  \
--- src/makemake.in
+++ src/makemake.in	2010-07-16 09:24:56.183425374 +0000
@@ -228,6 +228,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false}
 # Handle --with-... arguments
 while test -z "$endofargs"; do
   case "$1" in
+    -ignore* | --ignore* )
+      shift
+      ;;
     -verb* | --verb* )
       verbose=`echol "$1"|sed 's/-*v[^=]*=*//'`
       test -n "${verbose}" || verbose=true
@@ -1335,6 +1338,10 @@ if [ $XCC_GCC = true ] ; then
     XCFLAGS=${XCFLAGS}" -pthread"
   fi
 
+  if [ -n "${MYCFLAGS}" ] ; then
+    XCFLAGS=$XCFLAGS' ${MYCFLAGS} '
+  fi
+
 else
 
   if [ $TSYS = sun4 -a $CROSS = false ] ; then
@@ -3593,7 +3600,8 @@ if [ $CROSS = false ] ; then
       echotab "    mkdir -p \"\$\$absdest/\$\$m\"; \\"
       echotab "    cd \$\$m; \$(MAKE) clisp-module-distrib LN=\"\$(INSTALL_DATA)\" distribdir=\"\$\$absdest/\$\$m\" ; cd \"\$\$here\"; \\"
       echotab "  done; fi"
-      line='linkkit/* base/*'
+      echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full"
+      line='linkkit/* base/* full/*'
     else
       echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full"
       line='linkkit/* base/* full/*'
--- src/build-aux/config.guess
+++ src/build-aux/config.guess	2010-07-14 13:01:48.000000000 +0000
@@ -870,29 +870,29 @@ EOF
         esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	echo ${UNAME_MACHINE}-suse-linux-gnu${LIBC}
 	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	    echo ${UNAME_MACHINE}-suse-linux-gnu
 	else
-	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	    echo ${UNAME_MACHINE}-suse-linux-gnueabi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     cris:Linux:*:*)
-	echo cris-axis-linux-gnu
+	echo cris-suse-linux-gnu
 	exit ;;
     crisv32:Linux:*:*)
-	echo crisv32-axis-linux-gnu
+	echo crisv32-suse-linux-gnu
 	exit ;;
     frv:Linux:*:*)
-    	echo frv-unknown-linux-gnu
+    	echo frv-suse-linux-gnu
 	exit ;;
     i*86:Linux:*:*)
 	LIBC=gnu
@@ -903,16 +903,16 @@ EOF
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	echo "${UNAME_MACHINE}-suse-linux-${LIBC}"
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -931,51 +931,51 @@ EOF
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-suse-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
-	echo or32-unknown-linux-gnu
+	echo or32-suse-linux-gnu
 	exit ;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
+	echo sparc-suse-linux-gnu
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+	echo hppa64-suse-linux-gnu
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
+	  PA7*) echo hppa1.1-suse-linux-gnu ;;
+	  PA8*) echo hppa2.0-suse-linux-gnu ;;
+	  *)    echo hppa-suse-linux-gnu ;;
 	esac
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+	echo powerpc64-suse-linux-gnu
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+	echo powerpc-suse-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
+	echo ${UNAME_MACHINE}-suse-linux
 	exit ;;
     sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+    	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
+	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
+	echo x86_64-suse-linux-gnu
 	exit ;;
     xtensa*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+    	echo ${UNAME_MACHINE}-suse-linux-gnu
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
--- utils/gctrigger.c
+++ utils/gctrigger.c	2008-02-25 13:00:18.000000000 +0000
@@ -599,6 +599,7 @@ static inline void VectorToken_delete (V
 static Token nexttoken (boolean within_prep_directive)
 {
   Token token;
+  memset(&token, 0, sizeof(Token));
  restart:
   { int c = next_char();
     switch (c) {
--- utils/modprep.lisp
+++ utils/modprep.lisp	2008-02-25 13:00:18.000000000 +0000
@@ -345,7 +345,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot);
               ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out))
               (t (format out "_~2,'0x" (char-code cc))))))
 
-(defvar *tag-length-limit* 2000
+(defvar *tag-length-limit* 4096
   "The approximate maximum length of a C name.
 This works around the failure on i18n on Alpha Linux:
 /tmp/ccYZBYCX.s: Assembler messages:
openSUSE Build Service is sponsored by