Sun Dec 13 19:00:08 CST 2009 rpgoldman@sift.info * acl81-input-compilation-patch Was unable to get the current version of CLX to compile on ACL, which seemed to make different assumptions about evaluation at compile time. ACL crashed trying to compile because it tried to call EXTENSION-EVENT-KEY-P at compile time. Changing it to cause it to be defined at compile time caused ACL to complain about the variable *extensions* not being defined. I made the (possibly bad) aesthetic decision to push the definition upstream in the load order, rather than wrap it in an eval-when. New patches: [acl81-input-compilation-patch rpgoldman@sift.info**20091214010008 Ignore-this: acb83f9f730d61e7d57ed1550e918474 Was unable to get the current version of CLX to compile on ACL, which seemed to make different assumptions about evaluation at compile time. ACL crashed trying to compile because it tried to call EXTENSION-EVENT-KEY-P at compile time. Changing it to cause it to be defined at compile time caused ACL to complain about the variable *extensions* not being defined. I made the (possibly bad) aesthetic decision to push the definition upstream in the load order, rather than wrap it in an eval-when. ] { hunk ./depdefs.lisp 695 (format nil "/~A:~D" host display)) (t nil))) +;;;--------------------------------------------------------------------------- +;;; Extensions +;;;--------------------------------------------------------------------------- +(defvar *extensions* nil + "alist of (extension-name-symbol events errors)") hunk ./input.lisp 84 ;; Any event-code greater than 34 is for an extension (defparameter *first-extension-event-code* 35) -(defvar *extensions* nil) ;; alist of (extension-name-symbol events errors) +(declaim (special *extensions*)) ;; alist of (extension-name-symbol events errors) (defmacro define-extension (name &key events errors) ;; Define extension NAME with EVENTS and ERRORS. hunk ./input.lisp 109 (declare (clx-values event-key)) (kintern event))) -(defun extension-event-key-p (key) - (dolist (extension *extensions* nil) - (when (member key (second extension)) - (return t)))) +;;; somehow, on ACL 8.1, extension-event-key is called, presumably +;;; because of the top-level DECLARE-EVENTs, so we get an undefined +;;; function error. [2009/12/13:rpg] +(eval-when (:compile-toplevel :load-toplevel :execute) + (defun extension-event-key-p (key) + (dolist (extension *extensions* nil) + (when (member key (second extension)) + (return t))))) (eval-when (:compile-toplevel :load-toplevel :execute) (defun allocate-extension-event-code (name) } Context: [Support for the XINERAMA extension csr21@cantab.net**20090510073252 Contributed by Julian Stecklina ] [partial mit-screen-saver support csr21@cantab.net**20090420190352 From Istvan Marko, believe it or not from 2005. *sigh*. ] [translate-default-and-nil-font csr21@cantab.net**20090420170827 As noted on portable-clx some 2 years ago, using the default gcontext causes CLX to hang waiting for input that will never come. The change that caused this dates from February 2003, when the default translate function was made to query the incoming font for its min- and max-char; the default font for a GC only has a weird implicit as-yet-unopened font, and so the query will turn into a server roundtrip, which won't happen properly within a with-buffer-flush-inhibited. Do two things: make the default translate function robust to NIL as a font name (which the documentation explicitly says is legal) and don't create the proxy font object within the draw-glyphs family, passing NIL instead. ] [render-trapezoids-1 mask-format is optional Andy Hefner **20090419194540 Ignore-this: 35492c84fb0d6aeff4ba7148ed2f0aaf ] [robustify get-wm-class c.rhodes@gold.ac.uk**20081030154635 Problem and test code from Shawn Betts ] [xtest extension implementation c.rhodes@gold.ac.uk**20081030152321 From Lionel Flandrin , motivated by stumpwm functionality discussed in message <86hc9p271a.fsf@simias.hd.free.fr> on stumpwm-devel (2008-08-13, "XTest extension support for portable-clx") ] [define pad32 accessor (useful in xtest requests) c.rhodes@gold.ac.uk**20081030152235] [mumble-equal microoptimization c.rhodes@gold.ac.uk**20081008100308 In WINDOW-EQUAL and friends, EQL arguments imply EQUAL. ] [colormap / cacheing interaction fixes c.rhodes@gold.ac.uk**20081008095922 Formally, we can't cache colormaps of other clients, or the server; this means that when we look up a colormap, we will usually be creating one. That means that we can't rely on the only colormap in town being EQL to the default colormap, which has its visual-info slot already filled in; instead, when we lookup a colormap from a window, if its visual-info is not filled in, set it to the window's visual-info. [ COLORMAP-VISUAL-INFO is exported from XLIB but not documented in the CLX manual. It might be ripe for non-exporting, particularly given that I can't find any internet-accessible code which uses it. This hole was noted from its (unnecessary) use in xrender.lisp ] ] [don't need colormap to get window visual info c.rhodes@gold.ac.uk**20081008095652 We can go directly to window-visual-info. It might be that implementing the non-:true-color branch of FIND-WINDOW-PICTURE-FORMAT will need the COLORMAP; patches subsequent to this one will probably help that out. ] [equality comparison for new uncached IDs c.rhodes@gold.ac.uk**20081006120600 Patch from Shawn ] [always return object from save-id csr21@cantab.net**20080826211255 Whoops; the previous change broke resources from other clients entirely. Spotted while testing McCLIM's highlight and paste. ] [cache only one's own resource IDs csr21@cantab.net**20080824173842 Should fix the problem described by Shawn Betts on sbcl-devel 2008-07-11 (and possibly also the one on portable-clx 2008-07-10). Analysis on clisp-devel around the same dates, too. ] [resource-id management csr21@cantab.net**20080824173713 Based on a patch from Andy Hefner: pathological programs can cause the resource ID counter to wrap, so we need to keep track of all resource IDs in use, not just those which have cache entries. ] [lock-around-resource-id-management csr21@cantab.net**20080822060143 Patch from Andy Hefner on mcclim-devel ] [Support new-style SBCL stack allocation control Nikodemus Siivola **20080801110016] [launchd-darwin-support csr21@cantab.net**20080622175327 From Rudi Schlatte ] [pict-ops update to protocol version 0.10 csr21@cantab.net**20080601120904 From Andy Hefner. ] [render clip mask fix csr21@cantab.net**20080120181118 The code for adjusting the client's view of the server's clip mask on pictures would erroneously transfer information the wrong way. Found by Andy Hefner ] [compile-with-*rdff*-double-float csr21@cam.ac.uk**20071123110204 From Stelian Ionescu (fe[nl]ix on #lisp IRC). ] [use write-sequence for buffer-write-default in sbcl csr21@cam.ac.uk**20070807092756 Since sbcl-0.9 or so, there has been a check to avoid the useless lseek() calls on dual-channel streams (including socket streams), so write-sequence should be fine for performance. ] [make event-key type extensible csr21@cam.ac.uk**20070807091111 Typechecking lisps mean that for every new implemented extension, the type EVENT-KEY in the main body of CLX needs alteration. Instead, define a suitable function for use as a SATISFIES checker, and use it in the type and in the code. ] [comment fix csr21@cam.ac.uk**20070807091026] [fix-render-composite-buffer-overflow csr21@cam.ac.uk**20070117145056 Whoops. byte count / word length confusion led to the wrong amount of space being requested of the buffer, with consequent failures in the CLIM Debugger when run with freetype. ] [fix-get-keyboard-control-autorepeats-offset csr21@cam.ac.uk**20070116120743 The offset for the auto-repeats field in the GetKeyboardControl request was wrong, probably from a transcription error (32 was the size, not the position). ] [fix-clisp-open-x-stream csr21@cam.ac.uk**20070109092939 From Evgeny M. Zubok on portable-clx. ] [fix-paren-breakage-from-clisp-support-patch csr21@cam.ac.uk**20070108161209] [clisp-support csr21@cam.ac.uk**20070108114445 CLISP support, from Evgeny M. Zubok on portable-clx 2007-01-07. ] [render-composite-glyphs-254-glyph-limit csr21@cantab.net**20070103114740 The RenderCompositeGlyphs{8,16,32} requests encode their glyphs not quite as straightforwardly as one big long sequence: instead, they come in chunks of up to 254 (a length of 255 indicates a change of glyphset). Finesse the change of glyphset issue, and fix RENDER-COMPOSITE-GLYPHS for longer sequences of glyphs. ] [begin-documenting-big-requests csr21@cantab.net**20070101173416] [big-request-extension csr21@cantab.net**20070101125353 Implement the protocol portion of the BIG-REQUESTS extension, and the function for clients to query the maximum extended request length. The extension is as yet unused in the protocol implementation of other requests. ] [minimally-refactor-buffer-readers-and-writers csr21@cantab.net**20061222182215] [rydis-fix-open-default-display-screen rydis@cd.chalmers.se**20060331124242 Fixes open-default-display to set the default screen of the display to the default screen from get-default-screen ] [TAG release_0_7_3 Daniel Barlow **20060328002248] [TAG release_0_7_2 Daniel Barlow **20060328002222] [NEWS for 0.7.3 Daniel Barlow **20060328002105] [only 256 characters csr21@cam.ac.uk**20060317213650 Whoops. Stop adding latin1 characters at char-code 255. ] [protocol type fixes csr21@cam.ac.uk**20060317143703 Fix various request argument types. From Douglash Crosher on mcclim-devel. ] [render-op type definition csr21@cam.ac.uk**20060317143424 Define a RENDER-OP type. From Douglas Crosher via mcclim-devel. ] [Add support for modern Allegro CL. Should be good for versions >= 6.2. mikel@franz.com**20060113053525 ] [latin-1-keysyms csr21@cam.ac.uk**20060314095131 For those lisps which define the character range 160-255, define character keysyms. Leave a comment about lisps which don't define that range ] [keysym-set definitions csr21@cam.ac.uk**20060314092637 Include new keysym-set definitions (taken from Appendix A of the protocol specification) ] [TAG release_0_7_2 Daniel Barlow **20060110225946] [TAG release_0_7_2 Daniel Barlow **20060110225807] [TAG release_0_7_2 Daniel Barlow **20060110224946] [0.7.2 Daniel Barlow **20060110224818] [openmcl: pixarray-32-element-type should be (unsigned-byte 32). bryan d. o'connor **20050902232903] [fast-xxx-pixarray routines actually don't exist for openmcl. bryan d. o'connor **20050902232121] [dpms Matthew Kennedy **20050712164213] [add openmcl versions of aset-float{32,64}. bryan@lunch.org**20050826183523] [back-port the openmcl-clx fork. bryan@lunch.org**20050826183407] [permissive-xauthority-parsing csr21@cam.ac.uk**20050821131945 We should not use ECASE when looking at the FAMILY bit of an .Xauthority file, because the user can legitimately have families in there that CLX does not support. Instead, be permissive, on the basis that we will never choose a family we don't support as the best authorization. (Also log a comment about IPv6 support, which triggered this patch. Report from sproingie on #lisp IRC, 2005-08-07) slight refactor to be more explicit about which conditions we are dealing with. ] [TAG release_0_7_1 Daniel Barlow **20050824224938] Patch bundle hash: 972a1f9174f042bfcdc28b29f2b92445076a384f