Raymond Toy pushed to branch upstream-clx at cmucl / cmucl
Commits: 60bde987 by Raymond Toy at 2018-12-16T23:58:32Z Import upstream clx version 0.7.5-19-g623c339
Straight copy of sharplispers/clx commit 623c339
- - - - -
4 changed files:
- src/clx/README-CMUCL - src/clx/depdefs.lisp - src/clx/dependent.lisp - src/clx/manual/clx.texinfo
Changes:
===================================== src/clx/README-CMUCL ===================================== @@ -1,40 +1,9 @@ -$Id: README-CMUCL,v 1.2 2009/06/11 16:03:56 rtoy Rel $ +This is an import of Telent-CLX from the fork +https://github.com/sharplispers/clx, version +6e39a0df2a0a1d083166f405d4b8bbc463d54d85.
-This is an import of Telent-CLX as of 0.7.3. +All (almost?) files are included. A few changes to fix bugs related +to CMUCL have been added, as well as the CVS id. I've tried to make +few changes so it will be easy to merge again when desired.
-All files are included. A few changes to fix bugs related to CMUCL -have been added, as well as the CVS id. I've tried to make few -changes so it will be easy to merge again when desired. - -The following files from this directory are compiled and loaded by -CMUCL when it builds utilities: - -clx-library.lisp -package.lisp -depdefs.lisp -clx.lisp -dependent.lisp -macros.lisp -bufmac.lisp -buffer.lisp -display.lisp -gcontext.lisp -input.lisp -requests.lisp -fonts.lisp -graphics.lisp -text.lisp -attributes.lisp -translate.lisp -keysyms.lisp -manager.lisp -image.lisp -resource.lisp -shape.lisp -big-requests.lisp -xvidmode.lisp -xrender.lisp -glx.lisp -gl.lisp -dpms.lisp -provide.lisp +See src/tools/clxcom.lisp to see what files are compiled.
===================================== src/clx/depdefs.lisp ===================================== @@ -387,9 +387,7 @@ ;; FIXME: maybe we should reevaluate this? (defvar *def-clx-class-use-defclass* #+(or Genera allegro) t - #+(and cmu pcl) '(XLIB:DRAWABLE XLIB:WINDOW XLIB:PIXMAP) - #+(and cmu (not pcl)) nil - #-(or Genera cmu allegro) nil + #-(or Genera allegro) nil "Controls whether DEF-CLX-CLASS uses DEFCLASS.
If it is a list, it is interpreted by DEF-CLX-CLASS to be a list of
===================================== src/clx/dependent.lisp ===================================== @@ -884,6 +884,47 @@ :element-type '(unsigned-byte 8) :input t :output t :buffering :none))
+#+cmu +(defun open-x-stream (host display protocol) + (let ((stream-fd + (ecase protocol + ;; establish a TCP connection to the X11 server, which is + ;; listening on port 6000 + display-number + ((:internet :tcp nil) + (let ((fd (ext:connect-to-inet-socket host (+ *x-tcp-port* display)))) + (unless (plusp fd) + (error 'connection-failure + :major-version *protocol-major-version* + :minor-version *protocol-minor-version* + :host host + :display display + :reason (format nil "Cannot connect to internet socket: ~S" + (unix:get-unix-error-msg)))) + fd)) + ;; establish a connection to the X11 server over a Unix + ;; socket. (:|| comes from Darwin's weird DISPLAY + ;; environment variable) + ((:unix :local :||) + (let ((path (unix-socket-path-from-host host display))) + (unless (probe-file path) + (error 'connection-failure + :major-version *protocol-major-version* + :minor-version *protocol-minor-version* + :host host + :display display + :reason (format nil "Unix socket ~s does not exist" path))) + (let ((fd (ext:connect-to-unix-socket (namestring path)))) + (unless (plusp fd) + (error 'connection-failure + :major-version *protocol-major-version* + :minor-version *protocol-minor-version* + :host host + :display display + :reason (format nil "Can't connect to unix socket: ~S" + (unix:get-unix-error-msg)))) + fd)))))) + (system:make-fd-stream stream-fd :input t :output t :element-type '(unsigned-byte 8)))) + ;;; BUFFER-READ-DEFAULT for CMU Common Lisp. ;;; ;;; If timeout is 0, then we call LISTEN to see if there is any input. @@ -1643,7 +1684,7 @@ Returns a list of (host display-number screen protocol)." (defmacro with-underlying-simple-vector ((variable element-type pixarray) &body body) (declare (ignore element-type)) - `(#+cmu kernel::with-array-data #+sbcl sb-kernel:with-array-data + `(#+cmu lisp::with-array-data #+sbcl sb-kernel:with-array-data ((,variable ,pixarray) (start) (end)) (declare (ignore start end)) ,@body)) @@ -1762,11 +1803,11 @@ Returns a list of (host display-number screen protocol)." height width) (declare (type array-index source-width sx sy dest-width dx dy height width)) #.(declare-buffun) - (kernel::with-array-data ((sdata source) + (lisp::with-array-data ((sdata source) (sstart) (send)) (declare (ignore send)) - (kernel::with-array-data ((ddata dest) + (lisp::with-array-data ((ddata dest) (dstart) (dend)) (declare (ignore dend))
===================================== src/clx/manual/clx.texinfo ===================================== @@ -15162,11 +15162,11 @@ a keycode.
@item Convert the keycode into its corresponding keysym, based on the -current keyboard mapping. See @var{keycode->keysym}. +current keyboard mapping. See @var{keycode->keysym}.
@item Convert the keysym into the corresponding Common Lisp character. See -@var{keysym->character}. +@var{keysym->character}. @end enumerate
@menu
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/60bde987869e73a25475727ac7...