From pbrochard at common-lisp.net Sat Mar 1 12:37:11 2008
From: pbrochard at common-lisp.net (pbrochard at common-lisp.net)
Date: Sat, 1 Mar 2008 07:37:11 -0500 (EST)
Subject: [clfswm-cvs] r1 - CVS
Message-ID: <20080301123711.4BDD428274@common-lisp.net>
Author: pbrochard
Date: Sat Mar 1 07:36:13 2008
New Revision: 1
Added:
AUTHORS
COPYING
CVS/
CVS/Entries
CVS/Repository
CVS/Root
CVS/Template
ChangeLog
README
TAGS
asdf.lisp
bindings-pager.lisp
bindings-second-mode.fas
bindings-second-mode.fasl (contents, props changed)
bindings-second-mode.lib
bindings-second-mode.lisp
bindings-second-mode.lisp.bak
bindings.fas
bindings.fasl (contents, props changed)
bindings.lib
bindings.lisp
check-diff.sh (contents, props changed)
clfswm-info.fas
clfswm-info.fasl (contents, props changed)
clfswm-info.lib
clfswm-info.lisp
clfswm-internal.fas
clfswm-internal.fasl (contents, props changed)
clfswm-internal.lib
clfswm-internal.lisp
clfswm-internal.lisp.bak
clfswm-keys.fas
clfswm-keys.fasl (contents, props changed)
clfswm-keys.lib
clfswm-keys.lisp
clfswm-layout.fas
clfswm-layout.fasl (contents, props changed)
clfswm-layout.lib
clfswm-layout.lisp
clfswm-pack.lisp
clfswm-second-mode.fas
clfswm-second-mode.fasl (contents, props changed)
clfswm-second-mode.lib
clfswm-second-mode.lisp
clfswm-util.fas
clfswm-util.fasl (contents, props changed)
clfswm-util.lib
clfswm-util.lisp
clfswm.asd
clfswm.fas
clfswm.fasl (contents, props changed)
clfswm.lib
clfswm.lisp
clisp-load.lisp
config.fas
config.fasl (contents, props changed)
config.lib
config.lisp
dot-clfswmrc
keys.html
keys.txt
keysyms.fas
keysyms.fasl (contents, props changed)
keysyms.lib
keysyms.lisp
load.lisp
my-html.fas
my-html.fasl (contents, props changed)
my-html.lib
my-html.lisp
netwm-util.fas
netwm-util.fasl (contents, props changed)
netwm-util.lib
netwm-util.lisp
package.fas
package.fasl (contents, props changed)
package.lib
package.lisp
program
sbcl-load.lisp
tools.fas
tools.fasl (contents, props changed)
tools.lib
tools.lisp
xlib-util.fas
xlib-util.fasl (contents, props changed)
xlib-util.lib
xlib-util.lisp
Log:
First release
Added: AUTHORS
==============================================================================
--- (empty file)
+++ AUTHORS Sat Mar 1 07:36:13 2008
@@ -0,0 +1,14 @@
+CLFSWM - A(nother) Common Lisp FullScreen Window Manager
+---------------------------------------------------------
+
+Philippe Brochard hocwp at free dot fr
+
+
+-----------------------------------
+
+Some of the CLFSWM code is based on
+
+tinywm: http://incise.org/index.cgi/TinyWM
+
+And on the excellent Shawn Betts (sabetts at vcn bc ca)
+Stumpwm: http://www.nongnu.org/stumpwm/
Added: COPYING
==============================================================================
--- (empty file)
+++ COPYING Sat Mar 1 07:36:13 2008
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
Added: CVS/Entries
==============================================================================
--- (empty file)
+++ CVS/Entries Sat Mar 1 07:36:13 2008
@@ -0,0 +1,29 @@
+/AUTHORS/1.1/Tue May 15 19:49:49 2007//
+/asdf.lisp/1.1/Tue May 15 19:49:49 2007//
+/COPYING/1.2/Fri Dec 21 21:57:41 2007//
+/my-html.lisp/1.3/Fri Dec 21 22:00:35 2007//
+/README/1.3/Thu Jan 3 20:29:05 2008//
+/keys.html/1.4/Sat Jan 5 00:14:15 2008//
+/keys.txt/1.4/Sat Jan 5 00:14:15 2008//
+/dot-clfswmrc/1.8/Sat Jan 5 16:21:36 2008//
+/bindings-pager.lisp/1.9/Sun Feb 24 20:47:34 2008//
+/bindings.lisp/1.7/Sun Feb 24 20:47:34 2008//
+/clfswm-info.lisp/1.5/Sun Feb 24 20:47:34 2008//
+/clfswm-keys.lisp/1.6/Sun Feb 24 20:47:34 2008//
+/clfswm-pack.lisp/1.5/Sun Feb 24 20:47:34 2008//
+/clfswm-second-mode.lisp/1.11/Sun Feb 24 20:47:34 2008//
+/clfswm.asd/1.7/Sun Feb 24 20:47:34 2008//
+/keysyms.lisp/1.2/Sun Feb 24 20:47:34 2008//
+/netwm-util.lisp/1.4/Sun Feb 24 20:47:34 2008//
+/package.lisp/1.11/Mon Feb 25 20:33:22 2008//
+/tools.lisp/1.7/Tue Feb 26 20:53:55 2008//
+/load.lisp/1.8/Tue Feb 26 22:00:22 2008//
+/ChangeLog/1.17/Wed Feb 27 22:32:23 2008//
+/clfswm-layout.lisp/1.2/Wed Feb 27 21:19:57 2008//
+/config.lisp/1.9/Wed Feb 27 21:15:01 2008//
+/bindings-second-mode.lisp/1.16/Thu Feb 28 20:38:00 2008//
+/clfswm-internal.lisp/1.18/Fri Feb 29 23:03:14 2008//
+/clfswm-util.lisp/1.15/Fri Feb 29 23:03:08 2008//
+/clfswm.lisp/1.16/Fri Feb 29 23:03:00 2008//
+/xlib-util.lisp/1.7/Thu Feb 28 20:55:00 2008//
+D
Added: CVS/Repository
==============================================================================
--- (empty file)
+++ CVS/Repository Sat Mar 1 07:36:13 2008
@@ -0,0 +1 @@
+clfswm
Added: CVS/Root
==============================================================================
--- (empty file)
+++ CVS/Root Sat Mar 1 07:36:13 2008
@@ -0,0 +1 @@
+:ext:pbrochard at common-lisp.net:/project/clfswm/cvsroot
Added: CVS/Template
==============================================================================
Added: ChangeLog
==============================================================================
--- (empty file)
+++ ChangeLog Sat Mar 1 07:36:13 2008
@@ -0,0 +1,427 @@
+2008-02-27 Philippe Brochard
+
+ * clfswm-layout.lisp (*-layout): Add an optional raise-p
+ parameter in each layout.
+
+2008-02-26 Philippe Brochard
+
+ * clfswm-util.lisp (copy/cut-current-child): Does not affect the
+ root group.
+ (copy/move-current-child-by-name/number): new functions
+ (focus-group-by-name/number): new functions
+ (delete-group-by-name/number): new functions
+
+2008-02-24 Philippe Brochard
+
+ * *: Major update - No more reference to workspaces. The main
+ structure is a tree of groups or application windows.
+
+2008-02-07 Philippe Brochard
+
+ * clfswm.lisp (read-conf-file): Read configuration in
+ $HOME/.clfswmrc or in /etc/clfswmrc or in
+ $XDG_CONFIG_HOME/clfswm/clfswmrc.
+ (xdg-config-home): Return the content of $XDG-CONFIG-HOME (default
+ to $HOME/.config/).
+
+2008-01-18 Philippe Brochard
+
+ * clfswm-internal.lisp (show-all-group): Use *root* and *root-gc*
+ by default.
+
+2008-01-03 Philippe Brochard
+
+ * clfswm-internal.lisp (find-window-group): New function.
+
+ * clfswm*: Change to make clfswm run with clisp/new-clx.
+
+2008-01-01 Philippe Brochard
+
+ * clfswm-util.lisp (query-show-paren): Add show parent matching in
+ query string.
+ (query-string): Bind control+k to delete end of line.
+
+ * clfswm-second-mode.lisp (draw-second-mode-window): Display
+ the action on mouse motion in second mode.
+
+ * clfswm.lisp (handle-exposure): Redisplay groups on exposure
+ event but do not clear the root window.
+ (handle-configure-request): Adjust unmanaged window from there
+ request.
+
+ * clfswm-internal.lisp (process-new-window): Adjust new window
+ with the specified hints (max/min/base width/height).
+
+2007-12-31 Philippe Brochard
+
+ * clfswm.lisp (handle-configure-request): Send an Configuration
+ Notify event. This solve a bug with xterm and rxvt who takes some
+ times to be mapped. Now there is no delay.
+
+ * bindings-second-mode.lisp (define-shell): Run programs after
+ living the second mode.
+
+2007-12-30 Philippe Brochard
+
+ * clfswm-internal.lisp (process-new-window): Do not crop transient
+ window to group size.
+ (adapt-window-to-group): Do not crop transient window to group
+ size.
+
+ * clfswm.lisp (handle-configure-request): Adapt just the window to
+ its group and don't take care of the configure request. Remove the
+ bug with the Gimp outside the group and speed up the window
+ manipulation.
+ (handle-exposure): Remove show-all-group on exposure event
+ -> Speed up.
+
+2007-12-29 Philippe Brochard
+
+ * clfswm-util.lisp (circulate-group-up-copy-window)
+ (circulate-group-down-copy-window)
+ (circulate-workspace-up-copy-group)
+ (circulate-workspace-down-copy-group): Prevent the copy of the
+ same window in the same workspace.
+
+ * bindings-second-mode.lisp (release-copy-selected-window)
+ (release-copy-selected-group): Prevent the copy of the same window
+ in the same workspace.
+
+ * clfswm-pager.lisp (generic-pager-move-window-on-previous-line)
+ (generic-pager-move-window-on-next-line): Remove the copy
+ property.
+ (generic-pager-move-group-on-next-workspace)
+ (generic-pager-move-group-on-previous-workspace): Prevent the copy
+ of the same window in the same workspace.
+
+ * bindings-pager.lisp (mouse-pager-copy-selected-window-release)
+ (mouse-pager-copy-selected-group-release): Prevent the copy of the
+ same window in the same workspace.
+
+ * tools.lisp (setf/=): new macro to set a variable only when
+ necessary.
+
+ * clfswm-internal.lisp (adapt-window-to-group): use set/= to set
+ x, y... only when necessary.
+
+2007-12-28 Philippe Brochard
+
+ * clfswm.lisp (handle-configure-notify, *configure-notify-hook*):
+ new function and hook: force windows to stay in its group (solve a
+ bug with the Gimp).
+
+2007-12-25 Philippe Brochard
+
+ * bindings-second-mode.lisp (mouse-motion): use hide-group to have
+ less flickering when moving/resizing groups.
+
+ * clfswm-internal.lisp (hide-group): new function.
+ (show-all-group): clear-all: new parameter.
+
+2007-12-22 Philippe Brochard
+
+ * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new
+ macro.
+ * clfswm*: Color change for the pager. Typo or better description
+ in bindings definitions. Define bindings for a qwerty keyboard by
+ default. dot-clfswmrc show examples to switch to an azerty
+ keyboard.
+ License change to GPL v3.
+ * config.lisp: new file - group all globals variables in this
+ file.
+
+2007-08-26 Philippe Brochard
+
+ * xlib-util.lisp (hide-window): Remove structure-notivy events
+ when hidding a window.
+
+2007-05-16 Philippe Brochard
+
+ * package.lisp (*sm-property-notify-hook*): Readded
+ property-notify-hook in second mode.
+
+2007-05-15 Philippe Brochard
+
+ * clfswm-keys.lisp (produce-doc-html): Better clean up for strings.
+
+2007-05-13 Philippe Brochard
+
+ * clfswm-pack.lisp (tile-current-workspace-to/right/left/top/bottom):
+ Tile the current workspace with the current window on one side and
+ others on the other (this emulate the larswm, dwm, wmii way). See
+ the default configuration file to enable this mode by default.
+
+ * clfswm-pager.lisp (pager-tile-current-workspace-to): idem for
+ the pager.
+
+2007-05-12 Philippe Brochard
+
+ * clfswm-pager.lisp (pager-draw-window-in-group): Add
+ ensure-printable to print windows name even with non-ascii
+ characters.
+
+2007-05-11 Philippe Brochard
+
+ * clfswm-pager.lisp (pager-explode-current-group): Create a new
+ group for each window in group.
+ (pager-implode-current-group): Move all windows in workspace to
+ one group and remove other groups.
+
+ * clfswm-pack.lisp (explode-group): Create a new group for each
+ window in group.
+ (implode-group): Move all windows in workspace to one group and
+ remove other groups.
+
+ * clfswm-util.lisp (identify-key): Remove local configuration
+ variables and made them available for configuration from
+ package.lisp.
+ (query-string): idem.
+
+2007-04-29 Philippe Brochard
+
+ * netwm-util.lisp: Start of NetWM compliance.
+ Add a Netwm client list gestion.
+
+2007-04-28 Philippe Brochard
+
+ * clfswm-internal.lisp (create-group-on-request): open a new group
+ only when the current group is not empty.
+
+ * bindings-second-mode.lisp (define-second-key-#\o-control): Fix a
+ bug with null workspace.
+
+ * clfswm-pager.lisp (pager-handle-event): Add a hook
+ system. This hooks can be changed in the user configuration file.
+
+ * package.lisp: All colors and font variables are set in
+ package.lisp and can be configured in the user configuration
+ file.
+ Note: If you have configured some less ugly colors (esp. for the
+ pager) don't hesitate to let me know :)
+
+ * clfswm-second-mode.lisp (sm-handle-event): Add a hook
+ system. This hooks can be changed in the user configuration file.
+
+ * clfswm.lisp (handle-event): Add a hook system. This hooks can be
+ changed in the user configuration file (~/.clfswmrc)
+
+2007-04-25 Philippe Brochard
+
+ * clfswm-util.lisp (stop-all-pending-actions): new function: reset
+ arrow action, open next window in new workspace/group.
+
+ * bindings.lisp (stop-all-pending-actions): new binding.
+ (open-next-window-in-new-group-once): Open the next windows in a
+ new group (only once) or open all new windows in a new group (like
+ others windows managers).
+
+2007-04-22 Philippe Brochard
+
+ * clfswm.lisp (read-conf-file): New function to read a lisp
+ configuration file at startup.
+ (focus-group-under-mouse): Check if group isn't the current group
+ ( prevent a bug with unclutter ).
+
+2007-03-02 Philippe Brochard
+
+ * bindings.lisp (run-program-from-query-string): A program can be
+ launch from a input query window.
+
+2007-03-01 Philippe Brochard
+
+ * clfswm-info.lisp: Fix a bug with banish pointer in info mode.
+
+2007-02-28 Philippe Brochard
+
+ * clfswm.lisp (process-new-window): One can now open the next
+ window in a workspace called by its number.
+
+ * clfswm-util.lisp (query-font-string): Minimal editing
+ capabilities.
+ (eval-from-string): And an REPL in the window manager... :)
+
+2007-02-26 Philippe Brochard
+
+ * clfswm.lisp (process-new-window): One can now open the next
+ window in a new workspace or a new group.
+
+ * clfswm-pager.lisp (pager-mode): Display the next arrow action
+ with the hidden windows.
+
+ * clfswm.lisp (second-key-mode): Display the current workspace
+ number and the next arrow action in the state window.
+
+ * clfswm-pager.lisp (pager-mode): Hide all windows before leaving
+ the pager mode and then redisplay only the current workspace.
+
+2007-02-25 Philippe Brochard
+
+ * clfswm.lisp (add-workspace): Workspaces are now numbered. So
+ they can be focused with a keypress, sorted or renumbered.
+
+2007-02-24 Philippe Brochard
+
+ * clfswm-pager.lisp (pager-mode): Remove multiple silly
+ pager-draw-display. This prevent a lot of flickering in the
+ pager.
+
+ * clfswm.lisp: Remove all display-force-output and replace them
+ with only one display-finish-output in the event loop.
+
+2006-11-06 Philippe Brochard
+
+ * clfswm-pager.lisp (pager-center-group): New function - center a
+ group at the middle of the screen.
+
+ * clfswm-pack.lisp (center-group): New function - center a group
+ at the middle of the screen.
+
+ * clfswm.lisp (show-group): Add a cross line under the group.
+ (show-group): Group are showned even if fullscreened.
+ (init-display): Add an exposure event on the root window.
+
+2006-11-05 Philippe Brochard
+
+ * package.lisp (*default-group*): Default group is the same size
+ of a fullscreened group.
+
+ * bindings*: Use shift to move, control+shift to copy.
+
+ * *.lisp: Add comments for configuration or alternatives. So grep
+ for CONFIG to see where you can configure clfswm. And grep for
+ Alternative to use some commented code.
+
+ * clfswm.lisp (second-key-mode): Use a single window to show the
+ second mode. See for alternatives at the end of this file.
+
+2006-11-03 Philippe Brochard
+
+ * clfswm-keys.lisp (define-define-key/mouse): Factorisation in a
+ macro of key and mouse definitions.
+ (define-define-key/mouse): Use state instead of modifiers list
+ this fix a bug when the modifiers list is not in the rigth order.
+
+ * clfswm.lisp (second-key-mode): Add a colored border in second mode.
+
+2006-11-02 Philippe Brochard
+
+ * clfswm-info.lisp (info-mode): Add an info mode.
+
+2006-11-01 Philippe Brochard
+
+ * clfswm.lisp (process-new-window): Change border size for
+ transient windows.
+ (show-all-windows-in-workspace): Unhide all windows even when the
+ current group is in fullscreen mode.
+
+2006-10-26 Philippe Brochard
+
+ * clfswm-util.lisp (identify-key): Add an exposure handle-event to
+ redisplay the identify window after a terminal switch.
+
+ * clfswm-pager.lisp (pager-mode): Add an exposure handle-event to
+ redisplay the pager after a terminal switch.
+
+2006-10-24 Philippe Brochard
+
+ * clfswm-util.lisp (identify-key): Add a window to display
+ the keys to identify on screen.
+
+ * bindings.lisp, bindings-pager.lisp: Define same keys to
+ move/copy groups/windows in second mode and in pager.
+
+ * clfswm.lisp (handle-event*): Same version in all clfswm (fix some
+ drawing lags).
+ (show-all-windows-in-workspace): unhide window before adapting it
+ to group.
+
+2006-10-23 Philippe Brochard
+
+ * clfswm.lisp (handle-event): Revert to an older version.
+
+2006-10-18 Philippe Brochard
+
+ * clfswm-util.lisp (force-window-in-group)
+ (force-window-center-in-group): New functions for transient windows.
+
+ * clfswm-pager.lisp (pager-remove-current-workspace/group):
+ bugfix: hide all windows before removing group or workspace.
+
+2006-10-17 Philippe Brochard
+
+ * bindings-pager.lisp (mouse-pager-move-selected-group)
+ (mouse-pager-copy-selected-group)
+ (mouse-pager-move-selected-window)
+ (mouse-pager-copy-selected-window, mouse-pager-rotate-window-up)
+ (mouse-pager-rotate-window-down): New functions to have mouse in
+ pager mode.
+
+ * clfswm-pager.lisp (pager-swap-window)
+ (pager-copy-group-on-next/previous-workspace)
+ (pager-copy-window-on-next/previous-line): New functions
+
+2006-10-15 Philippe Brochard
+
+ * clfswm-pager.lisp (pager-move-window-on-next/previous-line,
+ (pager-move-group-on-next/previous-workspace): new functions.
+
+ * clfswm-pack.lisp (resize-half-x-x-current-group): resize group
+ to its half size (new functions).
+
+2006-10-11 Philippe Brochard
+
+ * clfswm-pager.lisp: workspaces, groups and windows can now be
+ selectionned with the keyboard or the mouse.
+
+2006-10-09 Philippe Brochard
+
+ * clfswm-pager.lisp (pager-select-workspace-right/left):
+ workspaces can now be selectionned with the keyboard.
+
+2006-10-08 Philippe Brochard
+
+ * clfswm-keys.lisp (undefine-main-key, undefine-second-key, undefine-mouse-action):
+ new function to remove a previous defined key or mouse combination.
+
+2006-10-07 Philippe Brochard
+
+ * clfswm.lisp (main): Check for access error in init-display.
+
+ * clfswm-keys.lisp (define-ungrab/grab): check for keysym and
+ keycode before grabbing.
+
+ * bindings.lisp: Remove nlambda and use defun to keep the function
+ documentation with clisp.
+ (define-shell): new macro to define shell command for the second
+ mode.
+
+2006-10-06 Philippe Brochard
+
+ * clfswm-keys.lisp (define-ungrab/grab): use a cond instead of a
+ boggus typecase.
+
+2006-10-05 Philippe Brochard
+
+ * bindings.lisp (accept-motion): Move group bugfix in upper mouse
+ workspace circulation.
+
+ * clfswm-util.lisp (absorb-orphan-window): new function.
+
+ * clfswm-keys.lisp: Keysyms support.
+
+2006-10-02 Philippe Brochard
+
+ * clfswm.lisp (show-group): Use one gc for all groups and not one
+ per group.
+
+2006-10-01 Philippe Brochard
+
+ * bindings.lisp (define-second-key (#\l :mod-1)): fix a typo.
+
+ * clfswm.lisp (adapt-window-to-group): Adapt only windows with
+ width and height outside group.
+
+2006-09-28 Philippe Brochard
+
+ * clfswm.lisp: First public release.
+
Added: README
==============================================================================
--- (empty file)
+++ README Sat Mar 1 07:36:13 2008
@@ -0,0 +1,83 @@
+ CLFSWM - A(nother) Common Lisp FullScreen Window Manager
+
+ CLFSWM is a 100% Common Lisp X11 window manager (based on [1]Tinywm
+ and [2]Stumpwm. Many thanks to them).
+ It can be driven only with the keyboard or with the mouse.
+
+ A display is divided in workspaces, groups and windows. Windows are
+ packed together in groups.
+ By default a group is fullscreen maximized (no decorations, no buttons,
+ no menus: nothing, just the application fullscreen!).
+ When not maximized, a group of windows can be moved, resized, tiled,
+ packed or filled to others groups edges.
+
+ For its binding, CLFSWM has two modes.
+ A main mode with minimal keys and no mouse grabbing to avoid conflict
+ with others applications.
+ And a second mode with more keys and mouse actions.
+ For details of its usage, have a look at the files keys.txt or
+ keys.html
+
+
+* Installation
+
+Boot up a common lisp implementation. I develop it with sbcl, I've
+tested it with cmucl and I use it with clisp (you need the clx/xlib
+package).
+
+To use CLFSWM, load the load.lisp file. It loads the ASDF package,
+build the system and start the main loop.
+
+Another way is to do something like this:
+$ cd /in/the/directory/of/clfswm/
+$ clisp/cmucl/sbcl/... # start a lisp
+ > (load "asdf.lisp") ; asdf for clisp or cmucl
+or> (require :asdf) ; asdf for sbcl
+ > (require :clx) ; clx for cmucl
+ > (asdf:oos 'asdf:load-op :clfswm) ; compile and load the system
+ > (in-package :clfswm) ; go in the clfswm package
+ > (clfswm:main) ; start the main loop
+
+
+* Tweaking
+
+To change the default keybinding, have a look at the bindings*.lisp
+files and at the config.lisp file for global variables.
+
+All variables can be overwritten in a user configuration file
+(/etc/clfswmrc or $HOME/.clfswmrc). It's a standard lisp file loaded at
+startup. There is an example in the clfswm source (see dot-clfswmrc).
+
+If you want to add workspaces or groups at startup, tell this to
+clfswm in the init-display function in clfswm.lisp (there is already a
+default workspace and a default group created).
+
+In all cases, you can grep the source with 'CONFIG' and 'Alternative'
+keywords to find where you can simply customize clfswm.
+
+
+
+* Lisp implementation note
+
+If you are using clisp/new-clx, be sure to use the last version (at
+least 2.43). Older versions are a little bit bogus.
+If you are using clisp/mit-clx or an other clx than clisp/new-clx, you
+may find a speed up with the compress notify event. See the variable
+*have-to-compress-notify* in the configuration file.
+
+
+
+* License
+
+ CLFSWM is under the GNU General Public License - GPL license.
+ You can find more information in the files COPYING. or on the
+ [3]Free Software Foundation site.
+
+
+Philippe Brochard .
+
+R?f?rences
+
+ 1. http://incise.org/index.cgi/TinyWM
+ 2. http://www.nongnu.org/stumpwm/
+ 3. http://www.gnu.org/
Added: TAGS
==============================================================================
--- (empty file)
+++ TAGS Sat Mar 1 07:36:13 2008
@@ -0,0 +1,848 @@
+
+asdf.lisp,4979
+(defpackage #:asdf40,2112
+(defvar *asdf-revision* 111,4017
+(defvar *compile-file-warnings-behaviour* 120,4323
+(defvar *compile-file-failure-behaviour* 121,4372
+(defvar *verbose-out* 123,4442
+(defmacro aif 128,4518
+(defun pathname-sans-name+type 131,4603
+(define-modify-macro appendf 136,4811
+(define-condition system-definition-error 142,4944
+(define-condition formatted-system-definition-error 151,5486
+(define-condition circular-dependency 157,5801
+(define-condition missing-component 160,5944
+(define-condition missing-dependency 165,6224
+(define-condition operation-error 168,6351
+(define-condition compile-error 174,6643
+(define-condition compile-failed 175,6697
+(define-condition compile-warned 176,6750
+(defclass component 178,6804
+(defmethod print-object 202,7929
+(defun sysdef-error 206,8075
+(defmethod print-object 211,8244
+(defgeneric component-system 220,8533
+(defmethod component-system 223,8646
+(defmethod print-object 228,8783
+(defclass module 233,8951
+(defgeneric component-pathname 243,9472
+(defun component-parent-pathname 246,9599
+(defgeneric component-relative-pathname 251,9749
+(defmethod component-relative-pathname 254,9897
+(defmethod component-pathname 260,10156
+(defgeneric component-property 264,10352
+(defmethod component-property 266,10406
+(defgeneric (setf 269,10529
+(defmethod (setf 271,10600
+(defclass system 278,10879
+(defun split 289,11304
+(defgeneric version-satisfies 302,11724
+(defmethod version-satisfies 304,11776
+(defvar *defined-systems* 323,12371
+(defun coerce-name 324,12429
+(defvar *system-definition-search-functions*334,12783
+(defun system-definition-pathname 337,12866
+(defvar *central-registry*341,12991
+(defun sysdef-central-registry-search 346,13144
+(defun find-system 359,13513
+(defun register-system 381,14344
+(defun system-registered-p 386,14552
+(defgeneric find-component 392,14694
+(defmethod find-component 397,14905
+(defmethod find-component 405,15209
+(defclass source-file 411,15393
+(defclass cl-source-file 413,15432
+(defclass c-source-file 414,15475
+(defclass java-source-file 415,15517
+(defclass static-file 416,15562
+(defclass doc-file 417,15602
+(defclass html-file 418,15639
+(defgeneric source-file-type 420,15675
+(defmethod source-file-type 421,15724
+(defmethod source-file-type 422,15792
+(defmethod source-file-type 423,15856
+(defmethod source-file-type 424,15926
+(defmethod source-file-type 425,15989
+(defmethod component-relative-pathname 427,16052
+(defclass operation 445,16593
+(defmethod print-object 453,17005
+(defmethod shared-initialize 458,17186
+(defgeneric perform 465,17403
+(defgeneric operation-done-p 466,17446
+(defgeneric explain 467,17498
+(defgeneric output-files 468,17541
+(defgeneric input-files 469,17589
+(defun node-for 471,17637
+(defgeneric operation-ancestor 474,17698
+(defmethod operation-ancestor 477,17852
+(defun make-sub-operation 483,17994
+(defgeneric visit-component 503,18619
+(defmethod visit-component 505,18676
+(defgeneric component-visited-p 510,18867
+(defmethod component-visited-p 512,18923
+(defgeneric (setf 517,19077
+(defmethod (setf 519,19149
+(defmethod (setf 523,19324
+(defgeneric component-visiting-p 531,19641
+(defmethod component-visiting-p 533,19698
+(defgeneric component-depends-on 538,19876
+(defmethod component-depends-on 540,19933
+(defgeneric component-self-dependencies 544,20074
+(defmethod component-self-dependencies 546,20138
+(defmethod input-files 552,20367
+(defmethod input-files 565,20819
+(defmethod operation-done-p 567,20883
+(defgeneric traverse 595,21929
+(defmethod traverse 596,21973
+(defmethod perform 675,25028
+(defmethod perform 681,25232
+(defmethod explain 684,25294
+(defclass compile-op 689,25441
+(defmethod perform 696,25805
+(defmethod perform 699,25941
+(defmethod perform 705,26233
+(defmethod output-files 730,27139
+(defmethod perform 734,27341
+(defmethod output-files 737,27409
+(defclass load-op 742,27495
+(defmethod perform 744,27530
+(defmethod perform 747,27620
+(defmethod operation-done-p 749,27684
+(defmethod output-files 752,27756
+(defmethod component-depends-on 755,27818
+(defclass load-source-op 761,27982
+(defmethod perform 763,28024
+(defmethod perform 769,28250
+(defmethod output-files 772,28322
+(defmethod component-depends-on 776,28472
+(defmethod operation-done-p 785,28847
+(defclass test-op 791,29090
+(defmethod perform 793,29125
+(defun operate 799,29246
+(defun oos 831,30166
+(defun remove-keyword 838,30292
+(defmacro defsystem 847,30565
+(defun class-for-type 876,31579
+(defun maybe-add-tree 888,31961
+(defun union-of-dependencies 903,32467
+(defun remove-keys 914,32734
+(defvar *serial-depends-on*)920,32928
+(defun parse-component-form 922,32958
+(defun check-component-input 987,35311
+(defun sysdef-error-component 999,35864
+(defun resolve-symlinks 1004,36031
+(defun run-shell-command 1015,36350
+(defgeneric hyperdocumentation 1060,37730
+(defmethod hyperdocumentation 1061,37786
+(defun hyperdoc 1064,37911
+
+bindings-pager.lisp,3518
+(define-pager-key ("F1" 37,1320
+(define-pager-key (#\g 39,1369
+(define-pager-key ("Return")46,1589
+(define-pager-key ("Escape")47,1637
+(define-pager-key (#\b)49,1686
+(define-pager-key ("Home")51,1728
+(define-pager-key ("End")52,1786
+(define-pager-key ("Tab" 55,1844
+(define-pager-key ("Tab" 56,1902
+(define-pager-key ("Escape" 58,1970
+(define-pager-key ("Escape" 59,2045
+(define-pager-key ("Escape" 60,2128
+(define-pager-key ("Escape" 61,2196
+(define-pager-key (#\g)63,2277
+(define-pager-key (#\g 64,2334
+(define-pager-key (#\w)66,2395
+(define-pager-key (#\w 67,2456
+(define-pager-key (#\x)69,2521
+(define-pager-key (#\x 70,2568
+(define-pager-key (#\x 71,2620
+(define-pager-key (#\t)73,2672
+(define-pager-key (#\t 74,2730
+(define-pager-key (#\y)76,2798
+(define-pager-key (#\y 77,2856
+(define-pager-key (#\y 78,2919
+(define-pager-key (#\p)84,3039
+(define-pager-key (#\m 90,3220
+(define-pager-key (#\r)96,3408
+(define-pager-key (#\r 102,3633
+(defun pager-fill-group-in-all-directions 109,3828
+(define-pager-key (#\f)117,4012
+(define-pager-key (#\f 126,4344
+(define-pager-key (#\f 128,4413
+(define-pager-key (#\f 134,4573
+(define-pager-key (#\l)141,4742
+(define-pager-key (#\l 142,4795
+(define-pager-key ("Up")147,4856
+(define-pager-key ("Down")160,5291
+(define-pager-key ("Right")173,5732
+(define-pager-key ("Left")186,6184
+(define-pager-key (#\m)199,6631
+(define-pager-key ("Up" 202,6678
+(define-pager-key ("Down" 207,6796
+(define-pager-key ("Right" 212,6920
+(define-pager-key ("Left" 217,7047
+(define-pager-key ("Up" 223,7172
+(define-pager-key ("Down" 228,7305
+(define-pager-key ("Right" 233,7444
+(define-pager-key ("Left" 238,7586
+(define-pager-key ("Left" 244,7726
+(define-pager-key ("Right" 245,7801
+(define-pager-key ("Down" 246,7873
+(define-pager-key ("Up" 247,7940
+(define-pager-key ("Left" 249,8010
+(define-pager-key ("Right" 250,8094
+(defmacro define-pager-focus-workspace-by-number 253,8177
+(define-pager-focus-workspace-by-number (#\1 261,8500
+(define-pager-focus-workspace-by-number (#\2 262,8556
+(define-pager-focus-workspace-by-number (#\3 263,8612
+(define-pager-focus-workspace-by-number (#\4 264,8668
+(define-pager-focus-workspace-by-number (#\5 265,8724
+(define-pager-focus-workspace-by-number (#\6 266,8780
+(define-pager-focus-workspace-by-number (#\7 267,8836
+(define-pager-focus-workspace-by-number (#\8 268,8892
+(define-pager-focus-workspace-by-number (#\9 269,8948
+(define-pager-focus-workspace-by-number (#\0 270,9004
+(define-pager-key (#\1 272,9062
+(define-pager-key (#\2 273,9130
+(defparameter *pager-motion-object* 280,9236
+(defun mouse-pager-move-selected-group 282,9278
+(defun mouse-pager-move-selected-group-release 289,9523
+(defun mouse-pager-copy-selected-group 302,9977
+(defun mouse-pager-copy-selected-group-release 306,10108
+(defun mouse-pager-move-selected-window 323,10692
+(defun mouse-pager-move-selected-window-release 330,10944
+(defun mouse-pager-copy-selected-window 345,11469
+(defun mouse-pager-copy-selected-window-release 349,11605
+(defun mouse-pager-rotate-window-up 364,12158
+(defun mouse-pager-rotate-window-down 369,12316
+(defun pager-mouse-motion 376,12482
+(define-pager-mouse-action (1)393,12991
+(define-pager-mouse-action (1 395,13099
+(define-pager-mouse-action (2)398,13217
+(define-pager-mouse-action (3)400,13278
+(define-pager-mouse-action (3 402,13388
+(define-pager-mouse-action (4)405,13508
+(define-pager-mouse-action (5)406,13574
+(define-pager-mouse-action ('Motion)408,13643
+
+bindings-second-mode.lisp,1728
+(defun group-adding-menu 43,1464
+(defun group-layout-menu 48,1591
+(defun group-pack-menu 58,1776
+(defun group-movement-menu 64,1899
+(defun group-pack-up 71,2058
+(defun group-pack-down 76,2145
+(defun action-by-name-menu 87,2244
+(defun action-by-number-menu 95,2491
+(defun group-menu 104,2753
+(defun selection-menu 112,2901
+(defun utility-menu 122,3156
+(defun main-menu 128,3318
+(define-second-key ("F1" 142,3551
+(define-second-key ("m")144,3607
+(define-second-key ("g")145,3644
+(define-second-key ("n")146,3682
+(define-second-key ("u")147,3729
+(define-second-key (#\i)152,3844
+(define-second-key (#\:)153,3884
+(define-second-key (#\!)155,3935
+(define-second-key (#\t)158,3994
+(define-second-key ("Return")159,4039
+(define-second-key ("Escape")160,4089
+(define-second-key (#\< 163,4141
+(define-second-key ("Home" 168,4199
+(define-second-key ("Right" 170,4265
+(define-second-key ("Left" 171,4323
+(define-second-key ("Down" 173,4385
+(define-second-key ("Up" 174,4440
+(define-second-key ("Tab" 176,4498
+(define-second-key ("Tab" 177,4552
+(define-second-key ("Return" 179,4618
+(define-second-key ("Return" 180,4669
+(define-second-key ("Home" 182,4728
+(define-second-key ("Home" 183,4786
+(define-second-key ("Menu")185,4860
+(define-second-key (#\b 187,4914
+(define-second-key ("Escape" 191,4977
+(define-second-key ("Escape" 192,5045
+(define-second-key ("Escape" 193,5121
+(define-second-key ("Escape" 194,5182
+(define-second-key ("x" 198,5273
+(define-second-key ("x" 199,5327
+(define-second-key ("c" 200,5386
+(define-second-key ("v" 201,5441
+(define-second-key ("v" 202,5493
+(define-second-key ("Delete")203,5561
+(defun sm-handle-click-to-focus 209,5619
+(define-mouse-action (1)214,5796
+
+bindings.lisp,709
+(define-main-key ("F1" 37,1377
+(defun quit-clfswm 39,1426
+(define-main-key ("Home" 43,1496
+(define-main-key ("Right" 45,1560
+(define-main-key ("Left" 46,1616
+(define-main-key ("Down" 48,1676
+(define-main-key ("Up" 49,1729
+(define-main-key ("Tab" 51,1785
+(define-main-key ("Tab" 52,1837
+(define-main-key ("Return" 54,1901
+(define-main-key ("Return" 55,1950
+(define-main-key ("Home" 57,2007
+(define-main-key ("Home" 58,2063
+(define-main-key ("Menu")60,2135
+(define-main-key (#\b 62,2187
+(define-main-key ("Escape" 66,2248
+(define-main-key ("Escape" 67,2314
+(define-main-key ("Escape" 68,2388
+(define-main-key ("Escape" 69,2447
+(define-main-key (#\t 72,2522
+(define-main-key ("less" 73,2570
+
+clfswm-info.lisp,1761
+(defstruct info 30,1288
+(defun leave-info-mode 33,1339
+(defun mouse-leave-info-mode 38,1451
+(defun draw-info-window 45,1599
+(defun draw-info-window-partial 56,2017
+(define-info-key (#\q)85,3333
+(define-info-key ("Return")86,3374
+(define-info-key ("Escape")87,3420
+(define-info-key (#\Space)88,3466
+(define-info-key ("twosuperior")90,3512
+(define-info-key ("Down")96,3704
+(define-info-key ("Up")102,3866
+(define-info-key ("Left")108,4028
+(define-info-key ("Right")114,4194
+(define-info-key ("Home")121,4359
+(define-info-key ("End")128,4529
+(define-info-key ("Page_Down")136,4786
+(define-info-key ("Page_Up")142,4966
+(defparameter *info-start-grab-x* 151,5149
+(defparameter *info-start-grab-y* 152,5188
+(defun info-begin-grab 155,5229
+(defun info-end-grab 161,5421
+(defun info-mouse-next-line 169,5654
+(defun info-mouse-previous-line 175,5828
+(defun info-mouse-motion 182,6005
+(define-info-mouse-action (1)193,6266
+(define-info-mouse-action (2)194,6329
+(define-info-mouse-action (4)195,6383
+(define-info-mouse-action (5)196,6440
+(define-info-mouse-action ('Motion)197,6493
+(defun info-mode 204,6591
+(defun info-mode-menu 294,10393
+(defun append-space 323,11239
+(defun show-key-binding 332,11457
+(defun show-global-key-binding 340,11695
+(defun show-main-mode-key-binding 345,11856
+(defun show-second-mode-key-binding 349,11959
+(defun show-date 365,12570
+(defun info-on-shell 374,12667
+(defun show-cpu-proc 381,12836
+(defun show-mem-proc 385,13013
+(defun show-xmms-status 389,13192
+(defun show-xmms-playlist 393,13295
+(defun xmms-info-menu 398,13401
+(defun show-cd-info 405,13529
+(defun show-cd-playlist 409,13610
+(defun info-on-cd-menu 413,13699
+(defun help-on-clfswm 420,13825
+(defun help-on-second-mode 431,14107
+
+clfswm-internal.lisp,2401
+(defun call-hook 32,1261
+(defun group-data-slot 41,1513
+(defun set-group-data-slot 46,1666
+(defsetf group-data-slot 54,1907
+(defgeneric group-p 58,1956
+(defmethod group-p 59,1985
+(defmethod group-p 62,2052
+(defgeneric child-name 68,2116
+(defmethod child-name 70,2149
+(defmethod child-name 73,2218
+(defmethod child-name 76,2279
+(defmacro with-all-childs 83,2472
+(defmacro with-all-groups 95,2802
+(defmacro with-all-windows 107,3111
+(defmacro with-all-windows-groups 121,3493
+(defun group-find-free-number 134,3814
+(defun create-group 142,4003
+(defun add-group 162,4738
+(defun get-current-child 170,4813
+(defun find-child 180,5129
+(defun find-father-group 188,5307
+(defun find-group-window 196,5542
+(defun find-group-by-name 203,5789
+(defun find-group-by-number 210,6004
+(defun get-all-windows 220,6235
+(defun get-hidden-windows 228,6431
+(defun display-group-info 238,6687
+(defun get-father-layout 277,8099
+(defgeneric adapt-child-to-father 285,8287
+(defmethod adapt-child-to-father 287,8338
+(defmethod adapt-child-to-father 297,8671
+(defgeneric show-child 311,9080
+(defgeneric hide-child 312,9119
+(defmethod show-child 314,9152
+(defmethod hide-child 326,9548
+(defmethod show-child 332,9676
+(defmethod hide-child 341,9955
+(defgeneric select-child 349,10030
+(defmethod select-child 351,10074
+(defmethod select-child 359,10415
+(defun select-current-group 366,10687
+(defun set-focus-to-current-child 371,10772
+(defun show-all-childs 383,11064
+(defun hide-all-childs 399,11561
+(defun select-next/previous-brother 408,11710
+(defun select-next-brother 425,12304
+(defun select-previous-brother 429,12422
+(defun select-next-level 434,12544
+(defun select-previous-level 442,12775
+(defun select-next/previous-child 451,13032
+(defun select-next-child 459,13261
+(defun select-previous-child 463,13367
+(defun enter-group 469,13478
+(defun leave-group 475,13657
+(defun switch-to-root-group 484,13902
+(defun switch-and-select-root-group 490,14056
+(defun toggle-show-root-group 498,14267
+(defun focus-child 505,14442
+(defun focus-child-rec 514,14804
+(defun set-current-child 525,15135
+(defun set-current-root 534,15448
+(defun focus-all-child 540,15617
+(defun remove-child-in-group 549,15912
+(defun remove-child-in-groups 554,16092
+(defun remove-child-in-all-groups 563,16340
+(defun process-new-window 576,16655
+(defun process-existing-windows 625,19041
+
+clfswm-keys.lisp,1201
+(defun define-hash-table-key-name 30,1254
+(define-hash-table-key-name *main-keys* 35,1378
+(define-hash-table-key-name *second-keys* 36,1436
+(define-hash-table-key-name *mouse-action* 37,1498
+(define-hash-table-key-name *pager-keys* 38,1581
+(define-hash-table-key-name *pager-mouse-action* 39,1641
+(define-hash-table-key-name *info-keys* 40,1729
+(define-hash-table-key-name *info-mouse-action* 41,1787
+(defmacro define-define-key 44,1875
+(defmacro define-define-mouse 66,2790
+(define-define-key "main" 83,3631
+(define-define-key "second" 84,3670
+(define-define-key "pager" 85,3713
+(define-define-key "info" 86,3754
+(defun undefine-info-key-fun 95,3892
+(define-define-mouse "mouse-action" 98,3957
+(define-define-mouse "pager-mouse-action" 99,4009
+(define-define-mouse "info-mouse-action" 100,4073
+(defmacro define-ungrab/grab 106,4140
+(define-ungrab/grab grab-main-keys 127,4854
+(define-ungrab/grab ungrab-main-keys 128,4916
+(defun funcall-key-from-code 143,4996
+(defun funcall-button-from-code 166,5670
+(defun produce-doc-html 186,6289
+(defun produce-doc-html-in-file 231,7882
+(defun produce-doc 240,8198
+(defun produce-doc-in-file 264,9055
+(defun produce-all-docs 272,9357
+
+clfswm-layout.lisp,929
+(defun set-layout 45,1711
+(defun get-managed-child 52,1914
+(defun register-layout 59,2156
+(defgeneric no-layout 65,2266
+(defmethod no-layout 68,2386
+(defmethod no-layout 72,2526
+(defun set-no-layout 81,2822
+(defgeneric tile-layout 91,2992
+(defmethod tile-layout 94,3078
+(defun set-tile-layout 107,3556
+(defun layout-ask-size 115,3692
+(defgeneric tile-left-layout 124,3931
+(defmethod tile-left-layout 127,4048
+(defun set-tile-left-layout 147,4620
+(defgeneric tile-right-layout 157,4857
+(defmethod tile-right-layout 160,4976
+(defun set-tile-right-layout 180,5540
+(defgeneric tile-top-layout 192,5781
+(defmethod tile-top-layout 195,5896
+(defun set-tile-top-layout 215,6467
+(defgeneric tile-bottom-layout 225,6701
+(defmethod tile-bottom-layout 228,6822
+(defun set-tile-bottom-layout 247,7372
+(defgeneric tile-space-layout 260,7622
+(defmethod tile-space-layout 263,7754
+(defun set-space-tile-layout 279,8393
+
+clfswm-pack.lisp,1969
+(defun tile-workspace-vertically 33,1298
+(defun tile-current-workspace-vertically 47,1875
+(defun tile-workspace-horizontally 55,2104
+(defun tile-current-workspace-horizontally 69,2685
+(defun tile-workspace-right 76,2919
+(defun tile-workspace-left 97,3876
+(defun tile-workspace-top 119,4797
+(defun tile-workspace-bottom 140,5715
+(defun tile-current-workspace-to 162,6674
+(defun reconfigure-tile-workspace 168,6916
+(defun group-x2 191,7679
+(defun group-y2 194,7747
+(defun find-edge-up 198,7817
+(defun find-edge-down 208,8212
+(defun find-edge-right 218,8636
+(defun find-edge-left 229,9061
+(defun pack-group-up 247,9497
+(defun pack-group-down 253,9646
+(defun pack-group-right 258,9825
+(defun pack-group-left 264,10007
+(defun pack-current-group-up 272,10164
+(defun pack-current-group-down 278,10336
+(defun pack-current-group-right 283,10513
+(defun pack-current-group-left 289,10694
+(defun center-group 295,10872
+(defun center-current-group 300,11103
+(defun fill-group-up 310,11294
+(defun fill-group-down 317,11529
+(defun fill-group-left 324,11745
+(defun fill-group-right 331,11984
+(defun fill-current-group-up 338,12201
+(defun fill-current-group-down 343,12373
+(defun fill-current-group-left 349,12552
+(defun fill-current-group-right 354,12730
+(defun resize-down-group 365,12955
+(defun resize-minimal-group 375,13304
+(defun resize-down-current-group 386,13707
+(defun resize-minimal-current-group 392,13872
+(defun resize-half-width-left 400,14065
+(defun resize-half-width-right 405,14188
+(defun resize-half-height-up 412,14419
+(defun resize-half-height-down 417,14543
+(defun resize-half-width-left-current-group 426,14779
+(defun resize-half-width-right-current-group 431,14980
+(defun resize-half-height-up-current-group 437,15185
+(defun resize-half-height-down-current-group 442,15383
+(defun explode-group 452,15640
+(defun implode-group 459,15951
+(defun explode-current-group 469,16303
+(defun implode-current-group 475,16506
+
+clfswm-second-mode.lisp,725
+(defparameter *sm-window* 30,1250
+(defparameter *sm-font* 31,1281
+(defparameter *sm-gc* 32,1310
+(defparameter *second-mode-program* 34,1338
+(defun draw-second-mode-window 58,2318
+(defun sm-handle-key-press 71,2721
+(defun sm-handle-enter-notify 76,2926
+(defun sm-handle-motion-notify 81,3136
+(defun sm-handle-button-press 86,3373
+(defun sm-handle-button-release 91,3611
+(defun sm-handle-configure-request 96,3851
+(defun sm-handle-configure-notify 101,3986
+(defun sm-handle-destroy-notify 106,4119
+(defun sm-handle-map-request 110,4247
+(defun sm-handle-unmap-notify 114,4369
+(defun sm-handle-exposure 118,4493
+(defun sm-handle-event 146,5405
+(defun second-key-mode 170,6627
+(defun leave-second-mode 215,8098
+
+clfswm-util.lisp,1298
+(defun add-default-group 32,1238
+(defun add-placed-group 40,1470
+(defun delete-focus-window 54,1951
+(defun destroy-focus-window 64,2376
+(defun remove-focus-window 73,2759
+(defun unhide-all-windows-in-current-child 83,3122
+(defun find-child-under-mouse 95,3405
+(defun clear-selection 113,4016
+(defun copy-current-child 118,4145
+(defun cut-current-child 124,4305
+(defun remove-current-child 132,4590
+(defun paste-selection-no-clear 140,4872
+(defun paste-selection 150,5279
+(defun identify-key 163,5485
+(defun query-show-paren 220,7921
+(defun query-number 378,14351
+(defun eval-from-query-string 384,14482
+(defun run-program-from-query-string 406,15170
+(defun ask-group-name 420,15593
+(defun focus-group-by 446,16395
+(defun focus-group-by-name 453,16586
+(defun focus-group-by-number 458,16737
+(defun open-group-by 465,16926
+(defun open-group-by-name 471,17064
+(defun open-group-by-number 476,17233
+(defun delete-group-by 483,17451
+(defun delete-group-by-name 492,17749
+(defun delete-group-by-number 497,17904
+(defun move-current-child-by 504,18096
+(defun move-current-child-by-name 510,18332
+(defun move-current-child-by-number 517,18585
+(defun copy-current-child-by 526,18875
+(defun copy-current-child-by-name 531,19051
+(defun copy-current-child-by-number 538,19304
+
+clfswm.lisp,611
+(defun handle-key-press 35,1267
+(defun handle-configure-request 42,1442
+(defun handle-configure-notify 73,2743
+(defun handle-map-request 79,2832
+(defun handle-unmap-notify 89,3121
+(defun handle-destroy-notify 98,3460
+(defun handle-enter-notify 108,3788
+(defun handle-exposure 113,3924
+(defun handle-create-notify 119,4115
+(defun handle-click-to-focus 126,4268
+(defun handle-button-press 139,4708
+(defun handle-event 165,5455
+(defun main-loop 187,6522
+(defun open-display 195,6720
+(defun init-display 201,6964
+(defun xdg-config-home 240,8506
+(defun read-conf-file 246,8651
+(defun main 264,9275
+
+clisp-load.lisp,34
+(defparameter *base-dir* 29,1232
+
+config.lisp,1906
+(defparameter *have-to-compress-notify* 37,1531
+(defun get-fullscreen-size 44,1721
+(defparameter *color-selected* 57,2024
+(defparameter *color-unselected* 58,2062
+(defparameter *color-maybe-selected* 59,2103
+(defparameter *sm-border-color* 62,2192
+(defparameter *sm-background-color* 63,2233
+(defparameter *sm-foreground-color* 64,2278
+(defparameter *sm-font-string* 65,2321
+(defparameter *sm-width* 66,2364
+(defparameter *sm-height* 67,2394
+(defparameter *pager-background* 71,2467
+(defparameter *pager-workspace-border* 72,2509
+(defparameter *pager-workspace-background* 73,2556
+(defparameter *pager-group-border* 74,2608
+(defparameter *pager-group-border-selected* 75,2653
+(defparameter *pager-group-background* 76,2704
+(defparameter *pager-window-selected* 78,2754
+(defparameter *pager-window-deselected* 79,2801
+(defparameter *pager-window-hidden* 80,2851
+(defparameter *pager-window-hidden-1* 81,2896
+(defparameter *pager-window-separator* 83,2942
+(defparameter *pager-workspace-cursor* 85,2990
+(defparameter *pager-line-cursor* 86,3038
+(defparameter *pager-group-cursor* 87,3080
+(defparameter *pager-group-background-cursor* 88,3124
+(defparameter *pager-font-string* 91,3182
+(defparameter *pager-workspace-height* 93,3229
+(defparameter *identify-font-string* 98,3309
+(defparameter *identify-background* 99,3354
+(defparameter *identify-foreground* 100,3399
+(defparameter *identify-border* 101,3444
+(defparameter *query-font-string* 104,3517
+(defparameter *query-background* 105,3559
+(defparameter *query-foreground* 106,3601
+(defparameter *query-border* 107,3643
+(defparameter *info-background* 112,3705
+(defparameter *info-foreground* 113,3746
+(defparameter *info-border* 114,3787
+(defparameter *info-line-cursor* 115,3822
+(defparameter *info-font-string* 116,3864
+(defparameter *tile-workspace-function* 121,3938
+(defparameter *tile-border-size* 122,3999
+
+keysyms.lisp,193
+(defvar *keysym-name-translations* 30,1039
+(defvar *name-keysym-translations* 31,1093
+(defun cl-define-keysym 33,1162
+(defun keysym-name->keysym 38,1363
+(defun keysym->keysym-name 45,1577
+
+load.lisp,34
+(defparameter *base-dir* 29,1232
+
+my-html.lisp,226
+(defpackage :my-html32,1262
+(defun insert-html-doctype 42,1429
+(defun produce-html 48,1586
+(defmacro with-html 64,2109
+(defun produce-html-string 68,2204
+(defun test1 75,2329
+(defun test2 90,2592
+(defun test3 104,2802
+
+netwm-util.lisp,244
+(defun netwm-set-client-list 33,1333
+(defun netwm-get-client-list 36,1443
+(defun netwm-add-in-client-list 39,1524
+(defun netwm-remove-in-client-list 44,1699
+(defun netwm-update-desktop-property 50,1862
+(defun netwm-set-properties 70,2542
+
+package.lisp,3156
+(defpackage clfswm30,1248
+(defparameter *display* 38,1369
+(defparameter *screen* 39,1398
+(defparameter *root* 40,1426
+(defparameter *no-focus-window* 41,1452
+(defparameter *root-gc* 42,1489
+(defparameter *default-font* 44,1519
+(defparameter *default-font-string* 46,1599
+(defparameter *child-selection* 49,1646
+(defparameter *layout-list* 51,1684
+(defclass group 58,1855
+(defparameter *root-group* 82,3050
+(defparameter *current-root* 84,3123
+(defparameter *current-child* 86,3200
+(defparameter *show-root-group-p* 89,3273
+(defparameter *main-keys* 92,3314
+(defparameter *second-keys* 93,3372
+(defparameter *mouse-action* 94,3432
+(defparameter *pager-keys* 95,3493
+(defparameter *pager-mouse-action* 96,3553
+(defparameter *info-keys* 97,3621
+(defparameter *info-mouse-action* 98,3680
+(defparameter *open-next-window-in-new-workspace* 101,3749
+(defparameter *open-next-window-in-new-group* 105,3908
+(defparameter *arrow-action* 110,4102
+(defparameter *pager-arrow-action* 113,4173
+(defparameter *init-hook* 129,4584
+(defparameter *button-press-hook* 132,4657
+(defparameter *button-motion-notify-hook* 133,4696
+(defparameter *key-press-hook* 134,4743
+(defparameter *configure-request-hook* 135,4779
+(defparameter *configure-notify-hook* 136,4823
+(defparameter *create-notify-hook* 137,4866
+(defparameter *destroy-notify-hook* 138,4906
+(defparameter *enter-notify-hook* 139,4947
+(defparameter *exposure-hook* 140,4986
+(defparameter *map-request-hook* 141,5021
+(defparameter *mapping-notify-hook* 142,5059
+(defparameter *property-notify-hook* 143,5100
+(defparameter *unmap-notify-hook* 144,5142
+(defparameter *sm-button-press-hook* 148,5238
+(defparameter *sm-button-release-hook* 149,5280
+(defparameter *sm-motion-notify-hook* 150,5324
+(defparameter *sm-key-press-hook* 151,5367
+(defparameter *sm-configure-request-hook* 152,5406
+(defparameter *sm-configure-notify-hook* 153,5453
+(defparameter *sm-map-request-hook* 154,5499
+(defparameter *sm-unmap-notify-hook* 155,5540
+(defparameter *sm-destroy-notify-hook* 156,5582
+(defparameter *sm-mapping-notify-hook* 157,5626
+(defparameter *sm-property-notify-hook* 158,5670
+(defparameter *sm-create-notify-hook* 159,5715
+(defparameter *sm-enter-notify-hook* 160,5758
+(defparameter *sm-exposure-hook* 161,5800
+(defparameter *pager-button-press-hook* 165,5888
+(defparameter *pager-button-release-hook* 166,5933
+(defparameter *pager-motion-notify-hook* 167,5980
+(defparameter *pager-key-press-hook* 168,6026
+(defparameter *pager-configure-request-hook* 169,6068
+(defparameter *pager-map-request-hook* 170,6118
+(defparameter *pager-unmap-notify-hook* 171,6162
+(defparameter *pager-destroy-notify-hook* 172,6207
+(defparameter *pager-mapping-notify-hook* 173,6254
+(defparameter *pager-property-notify-hook* 174,6301
+(defparameter *pager-create-notify-hook* 175,6349
+(defparameter *pager-enter-notify-hook* 176,6395
+(defparameter *pager-exposure-hook* 177,6440
+(defparameter *motion-action* 181,6516
+(defparameter *motion-object* 182,6551
+(defparameter *motion-start-group* 183,6586
+(defparameter *motion-dx* 184,6626
+(defparameter *motion-dy* 185,6657
+
+tools.lisp,1573
+(defpackage tools31,1253
+(defmacro awhen 87,2199
+(defmacro aif 92,2286
+(defvar *%dbg-name%* 99,2412
+(defvar *%dbg-count%* 100,2440
+(defmacro dbg 103,2467
+(defmacro dbgnl 120,2937
+(defmacro setf/=144,3430
+(defun create-symbol 152,3612
+(defun split-string 157,3748
+(defun expand-newline 166,4037
+(defun ensure-list 173,4217
+(defun ensure-printable 180,4334
+(defun find-assoc-word 187,4485
+(defun print-space 196,4783
+(defun escape-string 202,4920
+(defun first-position 210,5191
+(defun find-free-number 215,5325
+(defun do-execute 234,5773
+(defun do-shell 281,7630
+(defun getenv 290,7740
+(defun (setf 306,8314
+(defun uquit 330,9151
+(defun remove-plist 341,9340
+(defun urun-prog 355,9719
+(defun ushell 389,11184
+(defun ush 392,11281
+(defun set-shell-dispatch 396,11375
+(defun ushell-loop 403,11629
+(defun cldebug 419,12024
+(defun get-command-line-words 426,12120
+(defun string-to-list 433,12260
+(defun near-position 446,12645
+(defun string-to-list-multichar 474,13627
+(defun list-to-string 491,14111
+(defun clean-string 496,14188
+(defun one-in-list 501,14317
+(defun exchange-one-in-list 504,14378
+(defun rotate-list 512,14625
+(defun anti-rotate-list 516,14709
+(defun append-formated-list 521,14797
+(defun shuffle-list 539,15295
+(defun convert-to-number 554,15697
+(defun parse-integer-in-list 558,15812
+(defun next-in-list 564,15952
+(defun prev-in-list 570,16107
+(defun find-string 608,17319
+(defun find-all-strings 636,18289
+(defun subst-strings 653,18911
+(defun my-find-string-test 688,19851
+(defun test-find-string 696,20030
+
+xlib-util.lisp,1160
+(defconstant +withdrawn-state+ 32,1264
+(defconstant +normal-state+ 33,1298
+(defconstant +iconic-state+ 34,1329
+(defparameter *window-events* 37,1362
+(defparameter +netwm-supported+48,1596
+(defparameter +netwm-window-types+59,1885
+(defmacro with-xlib-protect 71,2324
+(defun parse-display-string 81,2534
+(defun banish-pointer 91,2855
+(defun window-state 101,3059
+(defun set-window-state 106,3189
+(defsetf window-state 114,3363
+(defun window-hidden-p 118,3406
+(defun unhide-window 123,3489
+(defun hide-window 244,7397
+(defun window-type 254,7693
+(defun send-configuration-notify 277,8641
+(defun send-client-message 293,9231
+(defun raise-window 306,9457
+(defun focus-window 314,9731
+(defun no-focus 327,9991
+(defun stop-button-event 393,11982
+(defun replay-button-event 396,12058
+(defun ungrab-all-buttons 400,12143
+(defun grab-all-buttons 403,12231
+(defun get-color 413,12440
+(defun my-character->keysyms 419,12537
+(defun char->keycode 454,13549
+(defun keycode->char 459,13690
+(defun modifiers->state 462,13809
+(defun state->modifiers 465,13898
+(defun wait-no-key-or-button-press 471,13966
+(defun compress-motion-notify 487,14489
+
+sbcl-load.lisp,0
Added: asdf.lisp
==============================================================================
--- (empty file)
+++ asdf.lisp Sat Mar 1 07:36:13 2008
@@ -0,0 +1,1102 @@
+;;; This is asdf: Another System Definition Facility. $Revision: 1.1 $
+;;;
+;;; Feedback, bug reports, and patches are all welcome: please mail to
+;;; . But note first that the canonical
+;;; source for asdf is presently the cCLan CVS repository at
+;;;
+;;;
+;;; If you obtained this copy from anywhere else, and you experience
+;;; trouble using it, or find bugs, you may want to check at the
+;;; location above for a more recent version (and for documentation
+;;; and test files, if your copy came without them) before reporting
+;;; bugs. There are usually two "supported" revisions - the CVS HEAD
+;;; is the latest development version, whereas the revision tagged
+;;; RELEASE may be slightly older but is considered `stable'
+
+;;; Copyright (c) 2001-2003 Daniel Barlow and contributors
+;;;
+;;; Permission is hereby granted, free of charge, to any person obtaining
+;;; a copy of this software and associated documentation files (the
+;;; "Software"), to deal in the Software without restriction, including
+;;; without limitation the rights to use, copy, modify, merge, publish,
+;;; distribute, sublicense, and/or sell copies of the Software, and to
+;;; permit persons to whom the Software is furnished to do so, subject to
+;;; the following conditions:
+;;;
+;;; The above copyright notice and this permission notice shall be
+;;; included in all copies or substantial portions of the Software.
+;;;
+;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+;;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+;;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+;;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+;;; LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+;;; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+;;; WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+;;; the problem with writing a defsystem replacement is bootstrapping:
+;;; we can't use defsystem to compile it. Hence, all in one file
+
+(defpackage #:asdf
+ (:export #:defsystem #:oos #:operate #:find-system #:run-shell-command
+ #:system-definition-pathname #:find-component ; miscellaneous
+ #:hyperdocumentation #:hyperdoc
+
+ #:compile-op #:load-op #:load-source-op #:test-system-version
+ #:test-op
+ #:operation ; operations
+ #:feature ; sort-of operation
+ #:version ; metaphorically sort-of an operation
+
+ #:input-files #:output-files #:perform ; operation methods
+ #:operation-done-p #:explain
+
+ #:component #:source-file
+ #:c-source-file #:cl-source-file #:java-source-file
+ #:static-file
+ #:doc-file
+ #:html-file
+ #:text-file
+ #:source-file-type
+ #:module ; components
+ #:system
+ #:unix-dso
+
+ #:module-components ; component accessors
+ #:component-pathname
+ #:component-relative-pathname
+ #:component-name
+ #:component-version
+ #:component-parent
+ #:component-property
+ #:component-system
+
+ #:component-depends-on
+
+ #:system-description
+ #:system-long-description
+ #:system-author
+ #:system-maintainer
+ #:system-license
+
+ #:operation-on-warnings
+ #:operation-on-failure
+
+ ;#:*component-parent-pathname*
+ #:*system-definition-search-functions*
+ #:*central-registry* ; variables
+ #:*compile-file-warnings-behaviour*
+ #:*compile-file-failure-behaviour*
+ #:*asdf-revision*
+
+ #:operation-error #:compile-failed #:compile-warned #:compile-error
+ #:error-component #:error-operation
+ #:system-definition-error
+ #:missing-component
+ #:missing-dependency
+ #:circular-dependency ; errors
+
+ #:retry
+ #:accept ; restarts
+
+ )
+ (:use :cl))
+
+#+nil
+(error "The author of this file habitually uses #+nil to comment out forms. But don't worry, it was unlikely to work in the New Implementation of Lisp anyway")
+
+
+(in-package #:asdf)
+
+(defvar *asdf-revision* (let* ((v "$Revision: 1.1 $")
+ (colon (or (position #\: v) -1))
+ (dot (position #\. v)))
+ (and v colon dot
+ (list (parse-integer v :start (1+ colon)
+ :junk-allowed t)
+ (parse-integer v :start (1+ dot)
+ :junk-allowed t)))))
+
+(defvar *compile-file-warnings-behaviour* :warn)
+(defvar *compile-file-failure-behaviour* #+sbcl :error #-sbcl :warn)
+
+(defvar *verbose-out* nil)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; utility stuff
+
+(defmacro aif (test then &optional else)
+ `(let ((it ,test)) (if it ,then ,else)))
+
+(defun pathname-sans-name+type (pathname)
+ "Returns a new pathname with same HOST, DEVICE, DIRECTORY as PATHNAME,
+and NIL NAME and TYPE components"
+ (make-pathname :name nil :type nil :defaults pathname))
+
+(define-modify-macro appendf (&rest args)
+ append "Append onto list")
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; classes, condiitons
+
+(define-condition system-definition-error (error) ()
+ ;; [this use of :report should be redundant, but unfortunately it's not.
+ ;; cmucl's lisp::output-instance prefers the kernel:slot-class-print-function
+ ;; over print-object; this is always conditions::%print-condition for
+ ;; condition objects, which in turn does inheritance of :report options at
+ ;; run-time. fortunately, inheritance means we only need this kludge here in
+ ;; order to fix all conditions that build on it. -- rgr, 28-Jul-02.]
+ #+cmu (:report print-object))
+
+(define-condition formatted-system-definition-error (system-definition-error)
+ ((format-control :initarg :format-control :reader format-control)
+ (format-arguments :initarg :format-arguments :reader format-arguments))
+ (:report (lambda (c s)
+ (apply #'format s (format-control c) (format-arguments c)))))
+
+(define-condition circular-dependency (system-definition-error)
+ ((components :initarg :components :reader circular-dependency-components)))
+
+(define-condition missing-component (system-definition-error)
+ ((requires :initform "(unnamed)" :reader missing-requires :initarg :requires)
+ (version :initform nil :reader missing-version :initarg :version)
+ (parent :initform nil :reader missing-parent :initarg :parent)))
+
+(define-condition missing-dependency (missing-component)
+ ((required-by :initarg :required-by :reader missing-required-by)))
+
+(define-condition operation-error (error)
+ ((component :reader error-component :initarg :component)
+ (operation :reader error-operation :initarg :operation))
+ (:report (lambda (c s)
+ (format s "~@"
+ (error-operation c) (error-component c)))))
+(define-condition compile-error (operation-error) ())
+(define-condition compile-failed (compile-error) ())
+(define-condition compile-warned (compile-error) ())
+
+(defclass component ()
+ ((name :accessor component-name :initarg :name :documentation
+ "Component name: designator for a string composed of portable pathname characters")
+ (version :accessor component-version :initarg :version)
+ (in-order-to :initform nil :initarg :in-order-to)
+ ;;; XXX crap name
+ (do-first :initform nil :initarg :do-first)
+ ;; methods defined using the "inline" style inside a defsystem form:
+ ;; need to store them somewhere so we can delete them when the system
+ ;; is re-evaluated
+ (inline-methods :accessor component-inline-methods :initform nil)
+ (parent :initarg :parent :initform nil :reader component-parent)
+ ;; no direct accessor for pathname, we do this as a method to allow
+ ;; it to default in funky ways if not supplied
+ (relative-pathname :initarg :pathname)
+ (operation-times :initform (make-hash-table )
+ :accessor component-operation-times)
+ ;; XXX we should provide some atomic interface for updating the
+ ;; component properties
+ (properties :accessor component-properties :initarg :properties
+ :initform nil)))
+
+;;;; methods: conditions
+
+(defmethod print-object ((c missing-dependency) s)
+ (format s "~@<~A, required by ~A~@:>"
+ (call-next-method c nil) (missing-required-by c)))
+
+(defun sysdef-error (format &rest arguments)
+ (error 'formatted-system-definition-error :format-control format :format-arguments arguments))
+
+;;;; methods: components
+
+(defmethod print-object ((c missing-component) s)
+ (format s "~@"
+ (missing-requires c)
+ (missing-version c)
+ (when (missing-parent c)
+ (component-name (missing-parent c)))))
+
+(defgeneric component-system (component)
+ (:documentation "Find the top-level system containing COMPONENT"))
+
+(defmethod component-system ((component component))
+ (aif (component-parent component)
+ (component-system it)
+ component))
+
+(defmethod print-object ((c component) stream)
+ (print-unreadable-object (c stream :type t :identity t)
+ (ignore-errors
+ (prin1 (component-name c) stream))))
+
+(defclass module (component)
+ ((components :initform nil :accessor module-components :initarg :components)
+ ;; what to do if we can't satisfy a dependency of one of this module's
+ ;; components. This allows a limited form of conditional processing
+ (if-component-dep-fails :initform :fail
+ :accessor module-if-component-dep-fails
+ :initarg :if-component-dep-fails)
+ (default-component-class :accessor module-default-component-class
+ :initform 'cl-source-file :initarg :default-component-class)))
+
+(defgeneric component-pathname (component)
+ (:documentation "Extracts the pathname applicable for a particular component."))
+
+(defun component-parent-pathname (component)
+ (aif (component-parent component)
+ (component-pathname it)
+ *default-pathname-defaults*))
+
+(defgeneric component-relative-pathname (component)
+ (:documentation "Extracts the relative pathname applicable for a particular component."))
+
+(defmethod component-relative-pathname ((component module))
+ (or (slot-value component 'relative-pathname)
+ (make-pathname
+ :directory `(:relative ,(component-name component))
+ :host (pathname-host (component-parent-pathname component)))))
+
+(defmethod component-pathname ((component component))
+ (let ((*default-pathname-defaults* (component-parent-pathname component)))
+ (merge-pathnames (component-relative-pathname component))))
+
+(defgeneric component-property (component property))
+
+(defmethod component-property ((c component) property)
+ (cdr (assoc property (slot-value c 'properties) :test #'equal)))
+
+(defgeneric (setf component-property) (new-value component property))
+
+(defmethod (setf component-property) (new-value (c component) property)
+ (let ((a (assoc property (slot-value c 'properties) :test #'equal)))
+ (if a
+ (setf (cdr a) new-value)
+ (setf (slot-value c 'properties)
+ (acons property new-value (slot-value c 'properties))))))
+
+(defclass system (module)
+ ((description :accessor system-description :initarg :description)
+ (long-description
+ :accessor system-long-description :initarg :long-description)
+ (author :accessor system-author :initarg :author)
+ (maintainer :accessor system-maintainer :initarg :maintainer)
+ (licence :accessor system-licence :initarg :licence)))
+
+;;; version-satisfies
+
+;;; with apologies to christophe rhodes ...
+(defun split (string &optional max (ws '(#\Space #\Tab)))
+ (flet ((is-ws (char) (find char ws)))
+ (nreverse
+ (let ((list nil) (start 0) (words 0) end)
+ (loop
+ (when (and max (>= words (1- max)))
+ (return (cons (subseq string start) list)))
+ (setf end (position-if #'is-ws string :start start))
+ (push (subseq string start end) list)
+ (incf words)
+ (unless end (return list))
+ (setf start (1+ end)))))))
+
+(defgeneric version-satisfies (component version))
+
+(defmethod version-satisfies ((c component) version)
+ (unless (and version (slot-boundp c 'version))
+ (return-from version-satisfies t))
+ (let ((x (mapcar #'parse-integer
+ (split (component-version c) nil '(#\.))))
+ (y (mapcar #'parse-integer
+ (split version nil '(#\.)))))
+ (labels ((bigger (x y)
+ (cond ((not y) t)
+ ((not x) nil)
+ ((> (car x) (car y)) t)
+ ((= (car x) (car y))
+ (bigger (cdr x) (cdr y))))))
+ (and (= (car x) (car y))
+ (or (not (cdr y)) (bigger (cdr x) (cdr y)))))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; finding systems
+
+(defvar *defined-systems* (make-hash-table :test 'equal))
+(defun coerce-name (name)
+ (typecase name
+ (component (component-name name))
+ (symbol (string-downcase (symbol-name name)))
+ (string name)
+ (t (sysdef-error "~@" name))))
+
+;;; for the sake of keeping things reasonably neat, we adopt a
+;;; convention that functions in this list are prefixed SYSDEF-
+
+(defvar *system-definition-search-functions*
+ '(sysdef-central-registry-search))
+
+(defun system-definition-pathname (system)
+ (some (lambda (x) (funcall x system))
+ *system-definition-search-functions*))
+
+(defvar *central-registry*
+ '(*default-pathname-defaults*
+ #+nil "/home/dan/src/sourceforge/cclan/asdf/systems/"
+ #+nil "telent:asdf;systems;"))
+
+(defun sysdef-central-registry-search (system)
+ (let ((name (coerce-name system)))
+ (block nil
+ (dolist (dir *central-registry*)
+ (let* ((defaults (eval dir))
+ (file (and defaults
+ (make-pathname
+ :defaults defaults :version :newest
+ :name name :type "asd" :case :local))))
+ (if (and file (probe-file file))
+ (return file)))))))
+
+
+(defun find-system (name &optional (error-p t))
+ (let* ((name (coerce-name name))
+ (in-memory (gethash name *defined-systems*))
+ (on-disk (system-definition-pathname name)))
+ (when (and on-disk
+ (or (not in-memory)
+ (< (car in-memory) (file-write-date on-disk))))
+ (let ((*package* (make-package (gensym #.(package-name *package*))
+ :use '(:cl :asdf))))
+ (format *verbose-out*
+ "~&~@<; ~@;loading system definition from ~A into ~A~@:>~%"
+ ;; FIXME: This wants to be (ENOUGH-NAMESTRING
+ ;; ON-DISK), but CMUCL barfs on that.
+ on-disk
+ *package*)
+ (load on-disk)))
+ (let ((in-memory (gethash name *defined-systems*)))
+ (if in-memory
+ (progn (if on-disk (setf (car in-memory) (file-write-date on-disk)))
+ (cdr in-memory))
+ (if error-p (error 'missing-component :requires name))))))
+
+(defun register-system (name system)
+ (format *verbose-out* "~&~@<; ~@;registering ~A as ~A~@:>~%" system name)
+ (setf (gethash (coerce-name name) *defined-systems*)
+ (cons (get-universal-time) system)))
+
+(defun system-registered-p (name)
+ (gethash (coerce-name name) *defined-systems*))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; finding components
+
+(defgeneric find-component (module name &optional version)
+ (:documentation "Finds the component with name NAME present in the
+MODULE module; if MODULE is nil, then the component is assumed to be a
+system."))
+
+(defmethod find-component ((module module) name &optional version)
+ (if (slot-boundp module 'components)
+ (let ((m (find name (module-components module)
+ :test #'equal :key #'component-name)))
+ (if (and m (version-satisfies m version)) m))))
+
+
+;;; a component with no parent is a system
+(defmethod find-component ((module (eql nil)) name &optional version)
+ (let ((m (find-system name nil)))
+ (if (and m (version-satisfies m version)) m)))
+
+;;; component subclasses
+
+(defclass source-file (component) ())
+
+(defclass cl-source-file (source-file) ())
+(defclass c-source-file (source-file) ())
+(defclass java-source-file (source-file) ())
+(defclass static-file (source-file) ())
+(defclass doc-file (static-file) ())
+(defclass html-file (doc-file) ())
+
+(defgeneric source-file-type (component system))
+(defmethod source-file-type ((c cl-source-file) (s module)) "lisp")
+(defmethod source-file-type ((c c-source-file) (s module)) "c")
+(defmethod source-file-type ((c java-source-file) (s module)) "java")
+(defmethod source-file-type ((c html-file) (s module)) "html")
+(defmethod source-file-type ((c static-file) (s module)) nil)
+
+(defmethod component-relative-pathname ((component source-file))
+ (let* ((*default-pathname-defaults* (component-parent-pathname component))
+ (name-type
+ (make-pathname
+ :name (component-name component)
+ :type (source-file-type component
+ (component-system component)))))
+ (if (slot-value component 'relative-pathname)
+ (merge-pathnames
+ (slot-value component 'relative-pathname)
+ name-type)
+ name-type)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; operations
+
+;;; one of these is instantiated whenever (operate ) is called
+
+(defclass operation ()
+ ((forced :initform nil :initarg :force :accessor operation-forced)
+ (original-initargs :initform nil :initarg :original-initargs
+ :accessor operation-original-initargs)
+ (visited-nodes :initform nil :accessor operation-visited-nodes)
+ (visiting-nodes :initform nil :accessor operation-visiting-nodes)
+ (parent :initform nil :initarg :parent :accessor operation-parent)))
+
+(defmethod print-object ((o operation) stream)
+ (print-unreadable-object (o stream :type t :identity t)
+ (ignore-errors
+ (prin1 (operation-original-initargs o) stream))))
+
+(defmethod shared-initialize :after ((operation operation) slot-names
+ &key force
+ &allow-other-keys)
+ (declare (ignore slot-names force))
+ ;; empty method to disable initarg validity checking
+ )
+
+(defgeneric perform (operation component))
+(defgeneric operation-done-p (operation component))
+(defgeneric explain (operation component))
+(defgeneric output-files (operation component))
+(defgeneric input-files (operation component))
+
+(defun node-for (o c)
+ (cons (class-name (class-of o)) c))
+
+(defgeneric operation-ancestor (operation)
+ (:documentation "Recursively chase the operation's parent pointer until we get to the head of the tree"))
+
+(defmethod operation-ancestor ((operation operation))
+ (aif (operation-parent operation)
+ (operation-ancestor it)
+ operation))
+
+
+(defun make-sub-operation (c o dep-c dep-o)
+ (let* ((args (copy-list (operation-original-initargs o)))
+ (force-p (getf args :force)))
+ ;; note explicit comparison with T: any other non-NIL force value
+ ;; (e.g. :recursive) will pass through
+ (cond ((and (null (component-parent c))
+ (null (component-parent dep-c))
+ (not (eql c dep-c)))
+ (when (eql force-p t)
+ (setf (getf args :force) nil))
+ (apply #'make-instance dep-o
+ :parent o
+ :original-initargs args args))
+ ((subtypep (type-of o) dep-o)
+ o)
+ (t
+ (apply #'make-instance dep-o
+ :parent o :original-initargs args args)))))
+
+
+(defgeneric visit-component (operation component data))
+
+(defmethod visit-component ((o operation) (c component) data)
+ (unless (component-visited-p o c)
+ (push (cons (node-for o c) data)
+ (operation-visited-nodes (operation-ancestor o)))))
+
+(defgeneric component-visited-p (operation component))
+
+(defmethod component-visited-p ((o operation) (c component))
+ (assoc (node-for o c)
+ (operation-visited-nodes (operation-ancestor o))
+ :test 'equal))
+
+(defgeneric (setf visiting-component) (new-value operation component))
+
+(defmethod (setf visiting-component) (new-value operation component)
+ ;; MCL complains about unused lexical variables
+ (declare (ignorable new-value operation component)))
+
+(defmethod (setf visiting-component) (new-value (o operation) (c component))
+ (let ((node (node-for o c))
+ (a (operation-ancestor o)))
+ (if new-value
+ (pushnew node (operation-visiting-nodes a) :test 'equal)
+ (setf (operation-visiting-nodes a)
+ (remove node (operation-visiting-nodes a) :test 'equal)))))
+
+(defgeneric component-visiting-p (operation component))
+
+(defmethod component-visiting-p ((o operation) (c component))
+ (let ((node (cons o c)))
+ (member node (operation-visiting-nodes (operation-ancestor o))
+ :test 'equal)))
+
+(defgeneric component-depends-on (operation component))
+
+(defmethod component-depends-on ((o operation) (c component))
+ (cdr (assoc (class-name (class-of o))
+ (slot-value c 'in-order-to))))
+
+(defgeneric component-self-dependencies (operation component))
+
+(defmethod component-self-dependencies ((o operation) (c component))
+ (let ((all-deps (component-depends-on o c)))
+ (remove-if-not (lambda (x)
+ (member (component-name c) (cdr x) :test #'string=))
+ all-deps)))
+
+(defmethod input-files ((operation operation) (c component))
+ (let ((parent (component-parent c))
+ (self-deps (component-self-dependencies operation c)))
+ (if self-deps
+ (mapcan (lambda (dep)
+ (destructuring-bind (op name) dep
+ (output-files (make-instance op)
+ (find-component parent name))))
+ self-deps)
+ ;; no previous operations needed? I guess we work with the
+ ;; original source file, then
+ (list (component-pathname c)))))
+
+(defmethod input-files ((operation operation) (c module)) nil)
+
+(defmethod operation-done-p ((o operation) (c component))
+ (let ((out-files (output-files o c))
+ (in-files (input-files o c)))
+ (cond ((and (not in-files) (not out-files))
+ ;; arbitrary decision: an operation that uses nothing to
+ ;; produce nothing probably isn't doing much
+ t)
+ ((not out-files)
+ (let ((op-done
+ (gethash (type-of o)
+ (component-operation-times c))))
+ (and op-done
+ (>= op-done
+ (or (apply #'max
+ (mapcar #'file-write-date in-files)) 0)))))
+ ((not in-files) nil)
+ (t
+ (and
+ (every #'probe-file out-files)
+ (> (apply #'min (mapcar #'file-write-date out-files))
+ (apply #'max (mapcar #'file-write-date in-files)) ))))))
+
+;;; So you look at this code and think "why isn't it a bunch of
+;;; methods". And the answer is, because standard method combination
+;;; runs :before methods most->least-specific, which is back to front
+;;; for our purposes. And CLISP doesn't have non-standard method
+;;; combinations, so let's keep it simple and aspire to portability
+
+(defgeneric traverse (operation component))
+(defmethod traverse ((operation operation) (c component))
+ (let ((forced nil))
+ (labels ((do-one-dep (required-op required-c required-v)
+ (let* ((dep-c (or (find-component
+ (component-parent c)
+ ;; XXX tacky. really we should build the
+ ;; in-order-to slot with canonicalized
+ ;; names instead of coercing this late
+ (coerce-name required-c) required-v)
+ (error 'missing-dependency :required-by c
+ :version required-v
+ :requires required-c)))
+ (op (make-sub-operation c operation dep-c required-op)))
+ (traverse op dep-c)))
+ (do-dep (op dep)
+ (cond ((eq op 'feature)
+ (or (member (car dep) *features*)
+ (error 'missing-dependency :required-by c
+ :requires (car dep) :version nil)))
+ (t
+ (dolist (d dep)
+ (cond ((consp d)
+ (assert (string-equal
+ (symbol-name (first d))
+ "VERSION"))
+ (appendf forced
+ (do-one-dep op (second d) (third d))))
+ (t
+ (appendf forced (do-one-dep op d nil)))))))))
+ (aif (component-visited-p operation c)
+ (return-from traverse
+ (if (cdr it) (list (cons 'pruned-op c)) nil)))
+ ;; dependencies
+ (if (component-visiting-p operation c)
+ (error 'circular-dependency :components (list c)))
+ (setf (visiting-component operation c) t)
+ (loop for (required-op . deps) in (component-depends-on operation c)
+ do (do-dep required-op deps))
+ ;; constituent bits
+ (let ((module-ops
+ (when (typep c 'module)
+ (let ((at-least-one nil)
+ (forced nil)
+ (error nil))
+ (loop for kid in (module-components c)
+ do (handler-case
+ (appendf forced (traverse operation kid ))
+ (missing-dependency (condition)
+ (if (eq (module-if-component-dep-fails c) :fail)
+ (error condition))
+ (setf error condition))
+ (:no-error (c)
+ (declare (ignore c))
+ (setf at-least-one t))))
+ (when (and (eq (module-if-component-dep-fails c) :try-next)
+ (not at-least-one))
+ (error error))
+ forced))))
+ ;; now the thing itself
+ (when (or forced module-ops
+ (not (operation-done-p operation c))
+ (let ((f (operation-forced (operation-ancestor operation))))
+ (and f (or (not (consp f))
+ (member (component-name
+ (operation-ancestor operation))
+ (mapcar #'coerce-name f)
+ :test #'string=)))))
+ (let ((do-first (cdr (assoc (class-name (class-of operation))
+ (slot-value c 'do-first)))))
+ (loop for (required-op . deps) in do-first
+ do (do-dep required-op deps)))
+ (setf forced (append (delete 'pruned-op forced :key #'car)
+ (delete 'pruned-op module-ops :key #'car)
+ (list (cons operation c))))))
+ (setf (visiting-component operation c) nil)
+ (visit-component operation c (and forced t))
+ forced)))
+
+
+(defmethod perform ((operation operation) (c source-file))
+ (sysdef-error
+ "~@"
+ (class-of operation) (class-of c)))
+
+(defmethod perform ((operation operation) (c module))
+ nil)
+
+(defmethod explain ((operation operation) (component component))
+ (format *verbose-out* "~&;;; ~A on ~A~%" operation component))
+
+;;; compile-op
+
+(defclass compile-op (operation)
+ ((proclamations :initarg :proclamations :accessor compile-op-proclamations :initform nil)
+ (on-warnings :initarg :on-warnings :accessor operation-on-warnings
+ :initform *compile-file-warnings-behaviour*)
+ (on-failure :initarg :on-failure :accessor operation-on-failure
+ :initform *compile-file-failure-behaviour*)))
+
+(defmethod perform :before ((operation compile-op) (c source-file))
+ (map nil #'ensure-directories-exist (output-files operation c)))
+
+(defmethod perform :after ((operation operation) (c component))
+ (setf (gethash (type-of operation) (component-operation-times c))
+ (get-universal-time)))
+
+;;; perform is required to check output-files to find out where to put
+;;; its answers, in case it has been overridden for site policy
+(defmethod perform ((operation compile-op) (c cl-source-file))
+ #-:broken-fasl-loader
+ (let ((source-file (component-pathname c))
+ (output-file (car (output-files operation c))))
+ (multiple-value-bind (output warnings-p failure-p)
+ (compile-file source-file
+ :output-file output-file)
+ ;(declare (ignore output))
+ (when warnings-p
+ (case (operation-on-warnings operation)
+ (:warn (warn
+ "~@"
+ operation c))
+ (:error (error 'compile-warned :component c :operation operation))
+ (:ignore nil)))
+ (when failure-p
+ (case (operation-on-failure operation)
+ (:warn (warn
+ "~@"
+ operation c))
+ (:error (error 'compile-failed :component c :operation operation))
+ (:ignore nil)))
+ (unless output
+ (error 'compile-error :component c :operation operation)))))
+
+(defmethod output-files ((operation compile-op) (c cl-source-file))
+ #-:broken-fasl-loader (list (compile-file-pathname (component-pathname c)))
+ #+:broken-fasl-loader (list (component-pathname c)))
+
+(defmethod perform ((operation compile-op) (c static-file))
+ nil)
+
+(defmethod output-files ((operation compile-op) (c static-file))
+ nil)
+
+;;; load-op
+
+(defclass load-op (operation) ())
+
+(defmethod perform ((o load-op) (c cl-source-file))
+ (mapcar #'load (input-files o c)))
+
+(defmethod perform ((operation load-op) (c static-file))
+ nil)
+(defmethod operation-done-p ((operation load-op) (c static-file))
+ t)
+
+(defmethod output-files ((o operation) (c component))
+ nil)
+
+(defmethod component-depends-on ((operation load-op) (c component))
+ (cons (list 'compile-op (component-name c))
+ (call-next-method)))
+
+;;; load-source-op
+
+(defclass load-source-op (operation) ())
+
+(defmethod perform ((o load-source-op) (c cl-source-file))
+ (let ((source (component-pathname c)))
+ (setf (component-property c 'last-loaded-as-source)
+ (and (load source)
+ (get-universal-time)))))
+
+(defmethod perform ((operation load-source-op) (c static-file))
+ nil)
+
+(defmethod output-files ((operation load-source-op) (c component))
+ nil)
+
+;;; FIXME: we simply copy load-op's dependencies. this is Just Not Right.
+(defmethod component-depends-on ((o load-source-op) (c component))
+ (let ((what-would-load-op-do (cdr (assoc 'load-op
+ (slot-value c 'in-order-to)))))
+ (mapcar (lambda (dep)
+ (if (eq (car dep) 'load-op)
+ (cons 'load-source-op (cdr dep))
+ dep))
+ what-would-load-op-do)))
+
+(defmethod operation-done-p ((o load-source-op) (c source-file))
+ (if (or (not (component-property c 'last-loaded-as-source))
+ (> (file-write-date (component-pathname c))
+ (component-property c 'last-loaded-as-source)))
+ nil t))
+
+(defclass test-op (operation) ())
+
+(defmethod perform ((operation test-op) (c component))
+ nil)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; invoking operations
+
+(defun operate (operation-class system &rest args)
+ (let* ((op (apply #'make-instance operation-class
+ :original-initargs args args))
+ (*verbose-out*
+ (if (getf args :verbose t)
+ *trace-output*
+ (make-broadcast-stream)))
+ (system (if (typep system 'component) system (find-system system)))
+ (steps (traverse op system)))
+ (with-compilation-unit ()
+ (loop for (op . component) in steps do
+ (loop
+ (restart-case
+ (progn (perform op component)
+ (return))
+ (retry ()
+ :report
+ (lambda (s)
+ (format s "~@"
+ op component)))
+ (accept ()
+ :report
+ (lambda (s)
+ (format s
+ "~@"
+ op component))
+ (setf (gethash (type-of op)
+ (component-operation-times component))
+ (get-universal-time))
+ (return))))))))
+
+(defun oos (&rest args)
+ "Alias of OPERATE function"
+ (apply #'operate args))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; syntax
+
+(defun remove-keyword (key arglist)
+ (labels ((aux (key arglist)
+ (cond ((null arglist) nil)
+ ((eq key (car arglist)) (cddr arglist))
+ (t (cons (car arglist) (cons (cadr arglist)
+ (remove-keyword
+ key (cddr arglist))))))))
+ (aux key arglist)))
+
+(defmacro defsystem (name &body options)
+ (destructuring-bind (&key pathname (class 'system) &allow-other-keys) options
+ (let ((component-options (remove-keyword :class options)))
+ `(progn
+ ;; system must be registered before we parse the body, otherwise
+ ;; we recur when trying to find an existing system of the same name
+ ;; to reuse options (e.g. pathname) from
+ (let ((s (system-registered-p ',name)))
+ (cond ((and s (eq (type-of (cdr s)) ',class))
+ (setf (car s) (get-universal-time)))
+ (s
+ #+clisp
+ (sysdef-error "Cannot redefine the existing system ~A with a different class" s)
+ #-clisp
+ (change-class (cdr s) ',class))
+ (t
+ (register-system (quote ,name)
+ (make-instance ',class :name ',name)))))
+ (parse-component-form nil (apply
+ #'list
+ :module (coerce-name ',name)
+ :pathname
+ (or ,pathname
+ (pathname-sans-name+type
+ (resolve-symlinks *load-truename*))
+ *default-pathname-defaults*)
+ ',component-options))))))
+
+
+(defun class-for-type (parent type)
+ (let ((class
+ (find-class
+ (or (find-symbol (symbol-name type) *package*)
+ (find-symbol (symbol-name type) #.(package-name *package*)))
+ nil)))
+ (or class
+ (and (eq type :file)
+ (or (module-default-component-class parent)
+ (find-class 'cl-source-file)))
+ (sysdef-error "~@" type))))
+
+(defun maybe-add-tree (tree op1 op2 c)
+ "Add the node C at /OP1/OP2 in TREE, unless it's there already.
+Returns the new tree (which probably shares structure with the old one)"
+ (let ((first-op-tree (assoc op1 tree)))
+ (if first-op-tree
+ (progn
+ (aif (assoc op2 (cdr first-op-tree))
+ (if (find c (cdr it))
+ nil
+ (setf (cdr it) (cons c (cdr it))))
+ (setf (cdr first-op-tree)
+ (acons op2 (list c) (cdr first-op-tree))))
+ tree)
+ (acons op1 (list (list op2 c)) tree))))
+
+(defun union-of-dependencies (&rest deps)
+ (let ((new-tree nil))
+ (dolist (dep deps)
+ (dolist (op-tree dep)
+ (dolist (op (cdr op-tree))
+ (dolist (c (cdr op))
+ (setf new-tree
+ (maybe-add-tree new-tree (car op-tree) (car op) c))))))
+ new-tree))
+
+
+(defun remove-keys (key-names args)
+ (loop for ( name val ) on args by #'cddr
+ unless (member (symbol-name name) key-names
+ :key #'symbol-name :test 'equal)
+ append (list name val)))
+
+(defvar *serial-depends-on*)
+
+(defun parse-component-form (parent options)
+ (destructuring-bind
+ (type name &rest rest &key
+ ;; the following list of keywords is reproduced below in the
+ ;; remove-keys form. important to keep them in sync
+ components pathname default-component-class
+ perform explain output-files operation-done-p
+ depends-on serial in-order-to
+ ;; list ends
+ &allow-other-keys) options
+ (check-component-input type name depends-on components in-order-to)
+ (let* ((other-args (remove-keys
+ '(components pathname default-component-class
+ perform explain output-files operation-done-p
+ depends-on serial in-order-to)
+ rest))
+ (ret
+ (or (find-component parent name)
+ (make-instance (class-for-type parent type)))))
+ (when (boundp '*serial-depends-on*)
+ (setf depends-on
+ (concatenate 'list *serial-depends-on* depends-on)))
+ (apply #'reinitialize-instance
+ ret
+ :name (coerce-name name)
+ :pathname pathname
+ :parent parent
+ other-args)
+ (when (typep ret 'module)
+ (setf (module-default-component-class ret)
+ (or default-component-class
+ (and (typep parent 'module)
+ (module-default-component-class parent))))
+ (let ((*serial-depends-on* nil))
+ (setf (module-components ret)
+ (loop for c-form in components
+ for c = (parse-component-form ret c-form)
+ collect c
+ if serial
+ do (push (component-name c) *serial-depends-on*)))))
+
+ (setf (slot-value ret 'in-order-to)
+ (union-of-dependencies
+ in-order-to
+ `((compile-op (compile-op , at depends-on))
+ (load-op (load-op , at depends-on))))
+ (slot-value ret 'do-first) `((compile-op (load-op , at depends-on))))
+
+ (loop for (n v) in `((perform ,perform) (explain ,explain)
+ (output-files ,output-files)
+ (operation-done-p ,operation-done-p))
+ do (map 'nil
+ ;; this is inefficient as most of the stored
+ ;; methods will not be for this particular gf n
+ ;; But this is hardly performance-critical
+ (lambda (m) (remove-method (symbol-function n) m))
+ (component-inline-methods ret))
+ when v
+ do (destructuring-bind (op qual (o c) &body body) v
+ (pushnew
+ (eval `(defmethod ,n ,qual ((,o ,op) (,c (eql ,ret)))
+ , at body))
+ (component-inline-methods ret))))
+ ret)))
+
+(defun check-component-input (type name depends-on components in-order-to)
+ "A partial test of the values of a component."
+ (unless (listp depends-on)
+ (sysdef-error-component ":depends-on must be a list."
+ type name depends-on))
+ (unless (listp components)
+ (sysdef-error-component ":components must be NIL or a list of components."
+ type name components))
+ (unless (and (listp in-order-to) (listp (car in-order-to)))
+ (sysdef-error-component ":in-order-to must be NIL or a list of components."
+ type name in-order-to)))
+
+(defun sysdef-error-component (msg type name value)
+ (sysdef-error (concatenate 'string msg
+ "~&The value specified for ~(~A~) ~A is ~W")
+ type name value))
+
+(defun resolve-symlinks (path)
+ #-allegro (truename path)
+ #+allegro (excl:pathname-resolve-symbolic-links path)
+ )
+
+;;; optional extras
+
+;;; run-shell-command functions for other lisp implementations will be
+;;; gratefully accepted, if they do the same thing. If the docstring
+;;; is ambiguous, send a bug report
+
+(defun run-shell-command (control-string &rest args)
+ "Interpolate ARGS into CONTROL-STRING as if by FORMAT, and
+synchronously execute the result using a Bourne-compatible shell, with
+output to *verbose-out*. Returns the shell's exit code."
+ (let ((command (apply #'format nil control-string args)))
+ (format *verbose-out* "; $ ~A~%" command)
+ #+sbcl
+ (sb-impl::process-exit-code
+ (sb-ext:run-program
+ "/bin/sh"
+ (list "-c" command)
+ :input nil :output *verbose-out*))
+
+ #+(or cmu scl)
+ (ext:process-exit-code
+ (ext:run-program
+ "/bin/sh"
+ (list "-c" command)
+ :input nil :output *verbose-out*))
+
+ #+allegro
+ (excl:run-shell-command command :input nil :output *verbose-out*)
+
+ #+lispworks
+ (system:call-system-showing-output
+ command
+ :shell-type "/bin/sh"
+ :output-stream *verbose-out*)
+
+ #+clisp ;XXX not exactly *verbose-out*, I know
+ (ext:run-shell-command command :output :terminal :wait t)
+
+ #+openmcl
+ (nth-value 1
+ (ccl:external-process-status
+ (ccl:run-program "/bin/sh" (list "-c" command)
+ :input nil :output *verbose-out*
+ :wait t)))
+ #+ecl ;; courtesy of Juan Jose Garcia Ripoll
+ (si:system command)
+ #-(or openmcl clisp lispworks allegro scl cmu sbcl ecl)
+ (error "RUN-SHELL-PROGRAM not implemented for this Lisp")
+ ))
+
+
+(defgeneric hyperdocumentation (package name doc-type))
+(defmethod hyperdocumentation ((package symbol) name doc-type)
+ (hyperdocumentation (find-package package) name doc-type))
+
+(defun hyperdoc (name doc-type)
+ (hyperdocumentation (symbol-package name) name doc-type))
+
+
+(pushnew :asdf *features*)
+
+#+sbcl
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (when (sb-ext:posix-getenv "SBCL_BUILDING_CONTRIB")
+ (pushnew :sbcl-hooks-require *features*)))
+
+#+(and sbcl sbcl-hooks-require)
+(progn
+ (defun module-provide-asdf (name)
+ (handler-bind ((style-warning #'muffle-warning))
+ (let* ((*verbose-out* (make-broadcast-stream))
+ (system (asdf:find-system name nil)))
+ (when system
+ (asdf:operate 'asdf:load-op name)
+ t))))
+
+ (pushnew
+ '(merge-pathnames "systems/"
+ (truename (sb-ext:posix-getenv "SBCL_HOME")))
+ *central-registry*)
+
+ (pushnew
+ '(merge-pathnames "site-systems/"
+ (truename (sb-ext:posix-getenv "SBCL_HOME")))
+ *central-registry*)
+
+ (pushnew
+ '(merge-pathnames ".sbcl/systems/"
+ (user-homedir-pathname))
+ *central-registry*)
+
+ (pushnew 'module-provide-asdf sb-ext:*module-provider-functions*))
+
+(provide 'asdf)
Added: bindings-pager.lisp
==============================================================================
--- (empty file)
+++ bindings-pager.lisp Sat Mar 1 07:36:13 2008
@@ -0,0 +1,408 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; #Date#: Tue Feb 12 14:02:07 2008
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Bindings keys and mouse for pager mode
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2005 Philippe Brochard
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+
+
+;;;,-----
+;;;| CONFIG - Pager bindings
+;;;`-----
+
+
+(define-pager-key ("F1" :mod-1) 'help-on-pager)
+
+(define-pager-key (#\g :control)
+ (defun b-pager-stop-all-pending-actions ()
+ "Stop all pending actions (actions like open in new workspace/group)"
+ (stop-all-pending-actions)
+ (pager-draw-display)))
+
+
+(define-pager-key ("Return") 'leave-pager-mode)
+(define-pager-key ("Escape") 'leave-pager-mode)
+
+(define-pager-key (#\b) 'banish-pointer)
+
+(define-pager-key ("Home") 'pager-select-first-workspace)
+(define-pager-key ("End") 'pager-select-last-workspace)
+
+
+(define-pager-key ("Tab" :mod-1) 'pager-rotate-window-up)
+(define-pager-key ("Tab" :mod-1 :shift) 'pager-rotate-window-down)
+
+(define-pager-key ("Escape" :control :shift) 'pager-delete-current-window)
+(define-pager-key ("Escape" :mod-1 :control :shift) 'pager-destroy-current-window)
+(define-pager-key ("Escape" :control) 'pager-remove-current-window)
+(define-pager-key ("Escape" :shift) 'pager-unhide-all-windows-in-current-group)
+
+(define-pager-key (#\g) 'pager-create-new-default-group)
+(define-pager-key (#\g :mod-1) 'pager-remove-current-group)
+
+(define-pager-key (#\w) 'pager-create-new-default-workspace)
+(define-pager-key (#\w :mod-1) 'pager-remove-current-workspace)
+
+(define-pager-key (#\x) 'pager-swap-workspace)
+(define-pager-key (#\x :control) 'pager-swap-group)
+(define-pager-key (#\x :mod-1) 'pager-swap-window)
+
+(define-pager-key (#\t) 'pager-tile-workspace-vertically)
+(define-pager-key (#\t :shift) 'pager-tile-workspace-horizontally)
+
+(define-pager-key (#\y) 'pager-tile-current-workspace-to)
+(define-pager-key (#\y :control) 'pager-explode-current-group)
+(define-pager-key (#\y :control :shift) 'pager-implode-current-group)
+
+
+;;;,-----
+;;;| Moving/Resizing groups
+;;;`-----
+(define-pager-key (#\p)
+ (defun b-pager-pack-group-on-next-arrow ()
+ "Pack group on next arrow action"
+ (setf *pager-arrow-action* :pack)
+ (pager-draw-display)))
+
+(define-pager-key (#\m :shift)
+ (defun b-pager-move-group-on-next-arrow ()
+ "Move group on next arrow action"
+ (setf *pager-arrow-action* :move)
+ (pager-draw-display)))
+
+(define-pager-key (#\r)
+ (defun b-pager-resize-half-group-on-next-arrow ()
+ "Resize group to its half width or heigth on next arrow action"
+ (setf *pager-arrow-action* :resize-half)
+ (pager-draw-display)))
+
+(define-pager-key (#\r :shift)
+ (defun b-pager-resize-group-on-next-arrow ()
+ "Resize group on next arrow action"
+ (setf *pager-arrow-action* :resize)
+ (pager-draw-display)))
+
+
+(defun pager-fill-group-in-all-directions ()
+ "Fill group in all directions"
+ (pager-fill-group-up)
+ (pager-fill-group-left)
+ (pager-fill-group-right)
+ (pager-fill-group-down))
+
+
+(define-pager-key (#\f)
+ (defun b-pager-fill-group ()
+ "Fill group on next arrow action (fill in all directions on second f keypress)"
+ (case *pager-arrow-action*
+ (:fill (pager-fill-group-in-all-directions)
+ (setf *pager-arrow-action* nil))
+ (t (setf *pager-arrow-action* :fill)))
+ (pager-draw-display)))
+
+(define-pager-key (#\f :mod-1) 'pager-fill-group-in-all-directions)
+
+(define-pager-key (#\f :shift)
+ (defun b-pager-fill-group-vert ()
+ "Fill group vertically"
+ (pager-fill-group-up)
+ (pager-fill-group-down)))
+
+(define-pager-key (#\f :control)
+ (defun b-pager-fill-group-horiz ()
+ "Fill group horizontally"
+ (pager-fill-group-left)
+ (pager-fill-group-right)))
+
+
+(define-pager-key (#\l) 'pager-resize-minimal-group)
+(define-pager-key (#\l :mod-1) 'pager-resize-down-group)
+
+
+
+
+(define-pager-key ("Up")
+ (defun b-pager-move-or-pack-up ()
+ "Move cursor, pack, fill or resize group up"
+ (let ((action *pager-arrow-action*))
+ (setf *pager-arrow-action* nil)
+ (case action
+ (:pack (pager-pack-group-up))
+ (:fill (pager-fill-group-up))
+ (:move (pager-move-group 0 -10))
+ (:resize (pager-resize-group 0 -10))
+ (:resize-half (pager-resize-half-height-up))
+ (t (pager-select-previous-line))))))
+
+(define-pager-key ("Down")
+ (defun b-pager-move-or-pack-down ()
+ "Move cursor, pack, fill or resize group down"
+ (let ((action *pager-arrow-action*))
+ (setf *pager-arrow-action* nil)
+ (case action
+ (:pack (pager-pack-group-down))
+ (:fill (pager-fill-group-down))
+ (:move (pager-move-group 0 10))
+ (:resize (pager-resize-group 0 10))
+ (:resize-half (pager-resize-half-height-down))
+ (t (pager-select-next-line))))))
+
+(define-pager-key ("Right")
+ (defun b-pager-move-or-pack-right ()
+ "Move cursor, pack, fill or resize group right"
+ (let ((action *pager-arrow-action*))
+ (setf *pager-arrow-action* nil)
+ (case action
+ (:pack (pager-pack-group-right))
+ (:fill (pager-fill-group-right))
+ (:move (pager-move-group 10 0))
+ (:resize (pager-resize-group 10 0))
+ (:resize-half (pager-resize-half-width-right))
+ (t (pager-select-workspace-right))))))
+
+(define-pager-key ("Left")
+ (defun b-pager-move-or-pack-left ()
+ "Move cursor, pack, fill or resize group left"
+ (let ((action *pager-arrow-action*))
+ (setf *pager-arrow-action* nil)
+ (case action
+ (:pack (pager-pack-group-left))
+ (:fill (pager-fill-group-left))
+ (:move (pager-move-group -10 0))
+ (:resize (pager-resize-group -10 0))
+ (:resize-half (pager-resize-half-width-left))
+ (t (pager-select-workspace-left))))))
+
+(define-pager-key (#\m) 'pager-center-group)
+
+
+(define-pager-key ("Up" :mod-1)
+ (defun b-pager-move-up ()
+ "Move group up"
+ (pager-move-group 0 -10)))
+
+(define-pager-key ("Down" :mod-1)
+ (defun b-pager-move-down ()
+ "Move group down"
+ (pager-move-group 0 +10)))
+
+(define-pager-key ("Right" :mod-1)
+ (defun b-pager-move-right ()
+ "Move group right"
+ (pager-move-group +10 0)))
+
+(define-pager-key ("Left" :mod-1)
+ (defun b-pager-move-left ()
+ "Move group left"
+ (pager-move-group -10 0)))
+
+
+(define-pager-key ("Up" :mod-1 :control)
+ (defun b-pager-resize-up ()
+ "Resize group up"
+ (pager-resize-group 0 -10)))
+
+(define-pager-key ("Down" :mod-1 :control)
+ (defun b-pager-resize-down ()
+ "Resize group down"
+ (pager-resize-group 0 +10)))
+
+(define-pager-key ("Right" :mod-1 :control)
+ (defun b-pager-resize-right ()
+ "Resize group right"
+ (pager-resize-group +10 0)))
+
+(define-pager-key ("Left" :mod-1 :control)
+ (defun b-pager-resize-left ()
+ "Resize group left"
+ (pager-resize-group -10 0)))
+
+
+(define-pager-key ("Left" :shift) 'pager-move-group-on-previous-workspace)
+(define-pager-key ("Right" :shift) 'pager-move-group-on-next-workspace)
+(define-pager-key ("Down" :shift) 'pager-move-window-on-next-line)
+(define-pager-key ("Up" :shift) 'pager-move-window-on-previous-line)
+
+(define-pager-key ("Left" :shift :control) 'pager-copy-group-on-previous-workspace)
+(define-pager-key ("Right" :shift :control) 'pager-copy-group-on-next-workspace)
+
+
+(defmacro define-pager-focus-workspace-by-number (key number)
+ "Define a pager key to focus a workspace by its number"
+ `(define-pager-key ,key
+ (defun ,(create-symbol (format nil "b-pager-focus-workspace-~A" number)) ()
+ ,(format nil "Focus workspace ~A" number)
+ (pager-select-workspace-by-number ,number))))
+
+
+(define-pager-focus-workspace-by-number (#\1 :mod-1) 1)
+(define-pager-focus-workspace-by-number (#\2 :mod-1) 2)
+(define-pager-focus-workspace-by-number (#\3 :mod-1) 3)
+(define-pager-focus-workspace-by-number (#\4 :mod-1) 4)
+(define-pager-focus-workspace-by-number (#\5 :mod-1) 5)
+(define-pager-focus-workspace-by-number (#\6 :mod-1) 6)
+(define-pager-focus-workspace-by-number (#\7 :mod-1) 7)
+(define-pager-focus-workspace-by-number (#\8 :mod-1) 8)
+(define-pager-focus-workspace-by-number (#\9 :mod-1) 9)
+(define-pager-focus-workspace-by-number (#\0 :mod-1) 10)
+
+(define-pager-key (#\1 :control :mod-1) 'pager-renumber-workspaces)
+(define-pager-key (#\2 :control :mod-1) 'pager-sort-workspaces)
+
+
+
+;;;,-----
+;;;| Mouse actions
+;;;`-----
+(defparameter *pager-motion-object* nil)
+
+(defun mouse-pager-move-selected-group (root-x root-y)
+ "Move selected group"
+ (pager-mouse-motion root-x root-y)
+ (xgrab-pointer *root* 50 51)
+ (with-group-cursor (workspace group)
+ (setf *pager-motion-object* (list workspace group))))
+
+(defun mouse-pager-move-selected-group-release (root-x root-y)
+ "Release button"
+ (pager-mouse-motion root-x root-y)
+ (xgrab-pointer *root* 68 69)
+ (when *pager-motion-object*
+ (destructuring-bind (workspace group) *pager-motion-object*
+ (let ((new-workspace (find-cursor-workspace)))
+ (remove-group-in-workspace group workspace)
+ (add-group-in-workspace group new-workspace)))
+ (pager-draw-display))
+ (setf *pager-motion-object* nil))
+
+
+(defun mouse-pager-copy-selected-group (root-x root-y)
+ "Copy selected group"
+ (mouse-pager-move-selected-group root-x root-y))
+
+(defun mouse-pager-copy-selected-group-release (root-x root-y)
+ "Release button"
+ (pager-mouse-motion root-x root-y)
+ (xgrab-pointer *root* 68 69)
+ (when *pager-motion-object*
+ (destructuring-bind (workspace group) *pager-motion-object*
+ (let ((new-workspace (find-cursor-workspace)))
+ (unless (group-windows-already-in-workspace group new-workspace)
+ (remove-group-in-workspace group workspace)
+ (add-group-in-workspace (copy-group group) workspace)
+ (add-group-in-workspace group new-workspace))))
+ (pager-draw-display))
+ (setf *pager-motion-object* nil))
+
+
+
+
+(defun mouse-pager-move-selected-window (root-x root-y)
+ "Move selected window"
+ (pager-mouse-motion root-x root-y)
+ (xgrab-pointer *root* 50 51)
+ (with-window-cursor (workspace group window)
+ (setf *pager-motion-object* (list group window))))
+
+(defun mouse-pager-move-selected-window-release (root-x root-y)
+ "Release button"
+ (pager-mouse-motion root-x root-y)
+ (xgrab-pointer *root* 68 69)
+ (when *pager-motion-object*
+ (destructuring-bind (group window) *pager-motion-object*
+ (with-group-cursor (new-workspace new-group)
+ (remove-window-in-group window group)
+ (add-window-in-group window new-group)
+ (add-null-window-in-empty-group group)
+ (remove-null-window-in-empty-group new-group)))
+ (pager-draw-display))
+ (setf *pager-motion-object* nil))
+
+
+(defun mouse-pager-copy-selected-window (root-x root-y)
+ "Copy selected window"
+ (mouse-pager-move-selected-window root-x root-y))
+
+(defun mouse-pager-copy-selected-window-release (root-x root-y)
+ "Release button"
+ (pager-mouse-motion root-x root-y)
+ (xgrab-pointer *root* 68 69)
+ (when *pager-motion-object*
+ (destructuring-bind (group window) *pager-motion-object*
+ (with-group-cursor (new-workspace new-group)
+ (unless (window-already-in-workspace window new-workspace)
+ (add-window-in-group window new-group)
+ (add-null-window-in-empty-group group)
+ (remove-null-window-in-empty-group new-group))))
+ (pager-draw-display))
+ (setf *pager-motion-object* nil))
+
+
+(defun mouse-pager-rotate-window-up (root-x root-y)
+ "Rotate up windows in selected group"
+ (pager-mouse-motion root-x root-y)
+ (pager-rotate-window-up))
+
+(defun mouse-pager-rotate-window-down (root-x root-y)
+ "Rotate down windows in selected group"
+ (pager-mouse-motion root-x root-y)
+ (pager-rotate-window-down))
+
+
+
+(defun pager-mouse-motion (root-x root-y)
+ "Select workspaces"
+ (let ((num (mod (truncate (/ root-x *pww*)) (length *workspace-list*)))
+ (line (max (truncate (/ (+ root-y (- *psl*) *plh* -3) *plh*)) 0)))
+ (unless (= num (pcursor-workspace *pcursor*))
+ (pager-draw-cursor)
+ (setf (pcursor-workspace *pcursor*) num)
+ (pager-draw-cursor))
+ (unless (= line (pcursor-line *pcursor*))
+ (pager-draw-cursor t)
+ (setf (pcursor-line *pcursor*) line)
+ (pager-draw-cursor t))))
+
+
+
+
+
+(define-pager-mouse-action (1) 'mouse-pager-move-selected-group
+ 'mouse-pager-move-selected-group-release)
+(define-pager-mouse-action (1 :control) 'mouse-pager-copy-selected-group
+ 'mouse-pager-copy-selected-group-release)
+
+(define-pager-mouse-action (2) 'mouse-leave-pager-mode nil)
+
+(define-pager-mouse-action (3) 'mouse-pager-move-selected-window
+ 'mouse-pager-move-selected-window-release)
+(define-pager-mouse-action (3 :control) 'mouse-pager-copy-selected-window
+ 'mouse-pager-copy-selected-window-release)
+
+(define-pager-mouse-action (4) 'mouse-pager-rotate-window-up nil)
+(define-pager-mouse-action (5) 'mouse-pager-rotate-window-down nil)
+
+(define-pager-mouse-action ('Motion) 'pager-mouse-motion nil)
Added: bindings-second-mode.fas
==============================================================================
--- (empty file)
+++ bindings-second-mode.fas Sat Mar 1 07:36:13 2008
@@ -0,0 +1,317 @@
+(|SYSTEM|::|VERSION| '(20060802.))
+#0Y |CHARSET|::|UTF-8|
+#Y(#:|1 30 (IN-PACKAGE :CLFSWM)-1|
+ #17Y(00 00 00 00 00 00 00 00 00 01 DA 31 E6 0F 01 19 01)
+ ("CLFSWM" |COMMON-LISP|::|*PACKAGE*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|32 46 (DEFUN GROUP-ADDING-MENU NIL ...)-2|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-ADDING-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-ADDING-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\a |CLFSWM|::|ADD-DEFAULT-GROUP|)
+ (#\p |CLFSWM|::|ADD-PLACED-GROUP|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Adding group menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|48 52 (DEFUN GROUP-LAYOUT-MENU NIL ...)-3|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-LAYOUT-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-LAYOUT-MENU|
+ #51Y(00 00 00 00 00 00 00 00 06 01 6B 00 01 03 C6 F9 1B 13 87 03 02 DC
+ AE 73 02 35 71 29 AF 7B 02 84 00 83 03 85 01 AF 8D 94 69 AC 31 A6
+ 16 03 F8 2F 03 19 01)
+ (|CLFSWM|::|*LAYOUT-LIST*| 0. 97. |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Group layout menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|58 61 (DEFUN GROUP-PACK-MENU NIL ...)-4|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-PACK-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-PACK-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ ((("Up" |CLFSWM|::|GROUP-PACK-UP|) ("Down" |CLFSWM|::|GROUP-PACK-DOWN|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Group pack menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|64 68 (DEFUN GROUP-MOVEMENT-MENU NIL ...)-5|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-MOVEMENT-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-MOVEMENT-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\p |CLFSWM|::|GROUP-PACK-MENU|) (#\f |CLFSWM|::|GROUP-FILL-MENU|)
+ (#\r |CLFSWM|::|GROUP-RESIZE-MENU|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Group movement menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|71 74 (DEFUN GROUP-PACK-UP NIL ...)-6|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-PACK-UP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-PACK-UP|
+ #19Y(00 00 00 00 00 00 00 00 06 01 DA 38 01 31 84 2E 01 19 01)
+ (|CLFSWM|::|PACK-UP| |CLFSWM|::|GROUP-MOVEMENT-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Pack group up"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|76 79 (DEFUN GROUP-PACK-DOWN NIL ...)-7|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-PACK-DOWN| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-PACK-DOWN|
+ #19Y(00 00 00 00 00 00 00 00 06 01 DA 38 01 31 84 2E 01 19 01)
+ (|CLFSWM|::|PACK-DOWN| |CLFSWM|::|GROUP-MOVEMENT-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Pack group down"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|87 93 (DEFUN ACTION-BY-NAME-MENU NIL ...)-8|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|ACTION-BY-NAME-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|ACTION-BY-NAME-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\f |CLFSWM|::|FOCUS-GROUP-BY-NAME|)
+ (#\o |CLFSWM|::|OPEN-GROUP-BY-NAME|)
+ (#\d |CLFSWM|::|DELETE-GROUP-BY-NAME|)
+ (#\m |CLFSWM|::|MOVE-CURRENT-CHILD-BY-NAME|)
+ (#\c |CLFSWM|::|COPY-CURRENT-CHILD-BY-NAME|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Actions by name menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|95 101 (DEFUN ACTION-BY-NUMBER-MENU NIL ...)-9|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|ACTION-BY-NUMBER-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|ACTION-BY-NUMBER-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\f |CLFSWM|::|FOCUS-GROUP-BY-NUMBER|)
+ (#\o |CLFSWM|::|OPEN-GROUP-BY-NUMBER|)
+ (#\d |CLFSWM|::|DELETE-GROUP-BY-NUMBER|)
+ (#\m |CLFSWM|::|MOVE-CURRENT-CHILD-BY-NUMBER|)
+ (#\c |CLFSWM|::|COPY-CURRENT-CHILD-BY-NUMBER|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Actions by number menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|104 108 (DEFUN GROUP-MENU NIL ...)-10|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\a |CLFSWM|::|GROUP-ADDING-MENU|)
+ (#\l |CLFSWM|::|GROUP-LAYOUT-MENU|)
+ (#\m |CLFSWM|::|GROUP-MOVEMENT-MENU|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Group menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|112 119 (DEFUN SELECTION-MENU NIL ...)-11|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECTION-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECTION-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\x |CLFSWM|::|CUT-CURRENT-CHILD|)
+ (#\c |CLFSWM|::|COPY-CURRENT-CHILD|) (#\v |CLFSWM|::|PASTE-SELECTION|)
+ (#\p |CLFSWM|::|PASTE-SELECTION-NO-CLEAR|)
+ ("Delete" |CLFSWM|::|REMOVE-CURRENT-CHILD|)
+ (#\z |CLFSWM|::|CLEAR-SELECTION|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Selection menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|122 126 (DEFUN UTILITY-MENU NIL ...)-12|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|UTILITY-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UTILITY-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\i |CLFSWM|::|IDENTIFY-KEY|)
+ (#\: |CLFSWM|::|EVAL-FROM-QUERY-STRING|)
+ (#\! |CLFSWM|::|RUN-PROGRAM-FROM-QUERY-STRING|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Utility menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|128 135 (DEFUN MAIN-MENU NIL ...)-13|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|MAIN-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|MAIN-MENU| #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\g |CLFSWM|::|GROUP-MENU|) (#\s |CLFSWM|::|SELECTION-MENU|)
+ (#\n |CLFSWM|::|ACTION-BY-NAME-MENU|)
+ (#\u |CLFSWM|::|ACTION-BY-NUMBER-MENU|)
+ (#\y |CLFSWM|::|UTILITY-MENU|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Open the main menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|142 142 (DEFINE-SECOND-KEY ("F1" :MOD-1) 'HELP-ON-SECOND-MODE)-14|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("F1" 8. |CLFSWM|::|HELP-ON-SECOND-MODE| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|144 144 (DEFINE-SECOND-KEY ("m") 'MAIN-MENU)-15|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("m" 0. |CLFSWM|::|MAIN-MENU| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|145 145 (DEFINE-SECOND-KEY ("g") 'GROUP-MENU)-16|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("g" 0. |CLFSWM|::|GROUP-MENU| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|146 146 (DEFINE-SECOND-KEY ("n") 'ACTION-BY-NAME-MENU)-17|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("n" 0. |CLFSWM|::|ACTION-BY-NAME-MENU| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|147 147 (DEFINE-SECOND-KEY ("u") 'ACTION-BY-NUMBER-MENU)-18|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("u" 0. |CLFSWM|::|ACTION-BY-NUMBER-MENU| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|150 152 (DEFINE-SECOND-KEY (#\\i) 'IDENTIFY-KEY)-19|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\i 0. |CLFSWM|::|IDENTIFY-KEY| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|153 153 (DEFINE-SECOND-KEY (#\\:) 'EVAL-FROM-QUERY-STRING)-20|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\: 0. |CLFSWM|::|EVAL-FROM-QUERY-STRING|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|155 155 (DEFINE-SECOND-KEY (#\\!) 'RUN-PROGRAM-FROM-QUERY-STRING)-21|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\! 0. |CLFSWM|::|RUN-PROGRAM-FROM-QUERY-STRING|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|158 158 (DEFINE-SECOND-KEY (#\\t) 'LEAVE-SECOND-MODE)-22|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\t 0. |CLFSWM|::|LEAVE-SECOND-MODE| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|159 159 (DEFINE-SECOND-KEY ("Return") 'LEAVE-SECOND-MODE)-23|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Return" 0. |CLFSWM|::|LEAVE-SECOND-MODE|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|160 160 (DEFINE-SECOND-KEY ("Escape") 'LEAVE-SECOND-MODE)-24|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 0. |CLFSWM|::|LEAVE-SECOND-MODE|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|163 163 (DEFINE-SECOND-KEY (#\\< :CONTROL) 'LEAVE-SECOND-MODE)-25|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\< 4. |CLFSWM|::|LEAVE-SECOND-MODE| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|168 168 (DEFINE-SECOND-KEY ("Home" :MOD-1 :CONTROL ...) 'QUIT-CLFSWM)-26|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Home" 13. |CLFSWM|::|QUIT-CLFSWM| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|170 170 (DEFINE-SECOND-KEY ("Right" :MOD-1) 'SELECT-NEXT-BROTHER)-27|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Right" 8. |CLFSWM|::|SELECT-NEXT-BROTHER|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|171 171 (DEFINE-SECOND-KEY ("Left" :MOD-1) 'SELECT-PREVIOUS-BROTHER)-28|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Left" 8. |CLFSWM|::|SELECT-PREVIOUS-BROTHER|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|173 173 (DEFINE-SECOND-KEY ("Down" :MOD-1) 'SELECT-NEXT-LEVEL)-29|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Down" 8. |CLFSWM|::|SELECT-NEXT-LEVEL| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|174 174 (DEFINE-SECOND-KEY ("Up" :MOD-1) 'SELECT-PREVIOUS-LEVEL)-30|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Up" 8. |CLFSWM|::|SELECT-PREVIOUS-LEVEL|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|176 176 (DEFINE-SECOND-KEY ("Tab" :MOD-1) 'SELECT-NEXT-CHILD)-31|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Tab" 8. |CLFSWM|::|SELECT-NEXT-CHILD| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|177 177 (DEFINE-SECOND-KEY ("Tab" :MOD-1 :SHIFT) 'SELECT-PREVIOUS-CHILD)-32|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Tab" 9. |CLFSWM|::|SELECT-PREVIOUS-CHILD|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|179 179 (DEFINE-SECOND-KEY ("Return" :MOD-1) 'ENTER-GROUP)-33|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Return" 8. |CLFSWM|::|ENTER-GROUP| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|180 180 (DEFINE-SECOND-KEY ("Return" :MOD-1 :SHIFT) 'LEAVE-GROUP)-34|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Return" 9. |CLFSWM|::|LEAVE-GROUP| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|182 182 (DEFINE-SECOND-KEY ("Home" :MOD-1) 'SWITCH-TO-ROOT-GROUP)-35|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Home" 8. |CLFSWM|::|SWITCH-TO-ROOT-GROUP|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|183 183 (DEFINE-SECOND-KEY ("Home" :MOD-1 :SHIFT) 'SWITCH-AND-SELECT-ROOT-GROUP)-36|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Home" 9. |CLFSWM|::|SWITCH-AND-SELECT-ROOT-GROUP|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|185 185 (DEFINE-SECOND-KEY ("Menu") 'TOGGLE-SHOW-ROOT-GROUP)-37|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Menu" 0. |CLFSWM|::|TOGGLE-SHOW-ROOT-GROUP|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|187 187 (DEFINE-SECOND-KEY (#\\b :MOD-1) 'BANISH-POINTER)-38|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\b 8. |CLFSWM|::|BANISH-POINTER| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|190 191 (DEFINE-SECOND-KEY ("Escape" :CONTROL :SHIFT) 'DELETE-FOCUS-WINDOW)-39|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 5. |CLFSWM|::|DELETE-FOCUS-WINDOW|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|192 192 (DEFINE-SECOND-KEY ("Escape" :MOD-1 :CONTROL ...) 'DESTROY-FOCUS-WINDOW)-40|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 13. |CLFSWM|::|DESTROY-FOCUS-WINDOW|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|193 193 (DEFINE-SECOND-KEY ("Escape" :CONTROL) 'REMOVE-FOCUS-WINDOW)-41|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 4. |CLFSWM|::|REMOVE-FOCUS-WINDOW|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|194 194 (DEFINE-SECOND-KEY ("Escape" :SHIFT) 'UNHIDE-ALL-WINDOWS-IN-CURRENT-CHILD)-42|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 1. |CLFSWM|::|UNHIDE-ALL-WINDOWS-IN-CURRENT-CHILD|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|197 198 (DEFINE-SECOND-KEY ("x" :CONTROL) 'CUT-CURRENT-CHILD)-43|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("x" 4. |CLFSWM|::|CUT-CURRENT-CHILD| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|199 199 (DEFINE-SECOND-KEY ("x" :CONTROL :MOD-1) 'CLEAR-SELECTION)-44|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("x" 12. |CLFSWM|::|CLEAR-SELECTION| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|200 200 (DEFINE-SECOND-KEY ("c" :CONTROL) 'COPY-CURRENT-CHILD)-45|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("c" 4. |CLFSWM|::|COPY-CURRENT-CHILD| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|201 201 (DEFINE-SECOND-KEY ("v" :CONTROL) 'PASTE-SELECTION)-46|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("v" 4. |CLFSWM|::|PASTE-SELECTION| |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|202 202 (DEFINE-SECOND-KEY ("v" :CONTROL :SHIFT) 'PASTE-SELECTION-NO-CLEAR)-47|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("v" 5. |CLFSWM|::|PASTE-SELECTION-NO-CLEAR|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|203 203 (DEFINE-SECOND-KEY ("Delete") 'REMOVE-CURRENT-CHILD)-48|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Delete" 0. |CLFSWM|::|REMOVE-CURRENT-CHILD|
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|209 212 (DEFUN SM-HANDLE-CLICK-TO-FOCUS (ROOT-X ROOT-Y) ...)-49|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SM-HANDLE-CLICK-TO-FOCUS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SM-HANDLE-CLICK-TO-FOCUS|
+ #19Y(00 00 00 00 02 00 00 00 06 03 AE AE 70 00 AC 2F 01 19 04)
+ (|CLFSWM|::|FIND-CHILD-UNDER-MOUSE| |CLFSWM|::|HANDLE-CLICK-TO-FOCUS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y|)
+ "Give the focus to the clicked child"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|214 214 (DEFINE-MOUSE-ACTION (1) 'SM-HANDLE-CLICK-TO-FOCUS)-50|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 01 02 2D 04 03 19 01)
+ (1. 0. |CLFSWM|::|SM-HANDLE-CLICK-TO-FOCUS|
+ |CLFSWM|::|DEFINE-MOUSE-ACTION-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
Added: bindings-second-mode.fasl
==============================================================================
Binary file. No diff available.
Added: bindings-second-mode.lib
==============================================================================
--- (empty file)
+++ bindings-second-mode.lib Sat Mar 1 07:36:13 2008
@@ -0,0 +1,30 @@
+#0Y |CHARSET|::|UTF-8|
+(|COMMON-LISP|::|SETQ| |COMMON-LISP|::|*PACKAGE*|
+ (|SYSTEM|::|%FIND-PACKAGE| "CLFSWM"))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-ADDING-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-LAYOUT-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-PACK-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-MOVEMENT-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-PACK-UP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-PACK-DOWN|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|ACTION-BY-NAME-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|ACTION-BY-NUMBER-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECTION-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|UTILITY-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|MAIN-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SM-HANDLE-CLICK-TO-FOCUS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y|)))
Added: bindings-second-mode.lisp
==============================================================================
--- (empty file)
+++ bindings-second-mode.lisp Sat Mar 1 07:36:13 2008
@@ -0,0 +1,731 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; #Date#: Thu Feb 28 21:38:00 2008
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Bindings keys and mouse for second mode
+;;;
+;;; Note: Mod-1 is the Alt or Meta key, Mod-2 is the Numlock key.
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2005 Philippe Brochard
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+;;;,-----
+;;;| Second keys
+;;;|
+;;;| CONFIG - Second mode bindings
+;;;`-----
+
+
+
+;;;;;;;;;;;;;;;
+;; Menu entry
+;;;;;;;;;;;;;;;
+(defun group-adding-menu ()
+ "Adding group menu"
+ (info-mode-menu '((#\a add-default-group)
+ (#\p add-placed-group))))
+
+(defun group-layout-menu ()
+ "Group layout menu"
+ (info-mode-menu (loop for l in *layout-list*
+ for i from 0
+ collect (list (code-char (+ (char-code #\a) i)) l))))
+
+
+
+
+
+(defun group-pack-menu ()
+ "Group pack menu"
+ (info-mode-menu '(("Up" group-pack-up)
+ ("Down" group-pack-down))))
+
+
+(defun group-movement-menu ()
+ "Group movement menu"
+ (info-mode-menu '((#\p group-pack-menu)
+ (#\f group-fill-menu)
+ (#\r group-resize-menu))))
+
+
+(defun group-pack-up ()
+ "Pack group up"
+ (print 'pack-up)
+ (group-movement-menu))
+
+(defun group-pack-down ()
+ "Pack group down"
+ (print 'pack-down)
+ (group-movement-menu))
+
+
+
+
+
+
+
+(defun action-by-name-menu ()
+ "Actions by name menu"
+ (info-mode-menu '((#\f focus-group-by-name)
+ (#\o open-group-by-name)
+ (#\d delete-group-by-name)
+ (#\m move-current-child-by-name)
+ (#\c copy-current-child-by-name))))
+
+(defun action-by-number-menu ()
+ "Actions by number menu"
+ (info-mode-menu '((#\f focus-group-by-number)
+ (#\o open-group-by-number)
+ (#\d delete-group-by-number)
+ (#\m move-current-child-by-number)
+ (#\c copy-current-child-by-number))))
+
+
+(defun group-menu ()
+ "Group menu"
+ (info-mode-menu '((#\a group-adding-menu)
+ (#\l group-layout-menu)
+ (#\m group-movement-menu))))
+
+
+
+(defun selection-menu ()
+ "Selection menu"
+ (info-mode-menu '((#\x cut-current-child)
+ (#\c copy-current-child)
+ (#\v paste-selection)
+ (#\p paste-selection-no-clear)
+ ("Delete" remove-current-child)
+ (#\z clear-selection))))
+
+
+(defun utility-menu ()
+ "Utility menu"
+ (info-mode-menu '((#\i identify-key)
+ (#\: eval-from-query-string)
+ (#\! run-program-from-query-string))))
+
+(defun main-menu ()
+ "Open the main menu"
+ (info-mode-menu '((#\g group-menu)
+ ;;(#\w window-menu)
+ (#\s selection-menu)
+ (#\n action-by-name-menu)
+ (#\u action-by-number-menu)
+ (#\y utility-menu))))
+
+
+
+
+
+
+(define-second-key ("F1" :mod-1) 'help-on-second-mode)
+
+(define-second-key ("m") 'main-menu)
+(define-second-key ("g") 'group-menu)
+(define-second-key ("n") 'action-by-name-menu)
+(define-second-key ("u") 'action-by-number-menu)
+
+
+;;(define-second-key (#\g :control) 'stop-all-pending-actions)
+
+(define-second-key (#\i) 'identify-key)
+(define-second-key (#\:) 'eval-from-query-string)
+
+(define-second-key (#\!) 'run-program-from-query-string)
+
+
+(define-second-key (#\t) 'leave-second-mode)
+(define-second-key ("Return") 'leave-second-mode)
+(define-second-key ("Escape") 'leave-second-mode)
+
+
+(define-second-key (#\< :control) 'leave-second-mode)
+
+
+
+
+(define-second-key ("Home" :mod-1 :control :shift) 'quit-clfswm)
+
+(define-second-key ("Right" :mod-1) 'select-next-brother)
+(define-second-key ("Left" :mod-1) 'select-previous-brother)
+
+(define-second-key ("Down" :mod-1) 'select-next-level)
+(define-second-key ("Up" :mod-1) 'select-previous-level)
+
+(define-second-key ("Tab" :mod-1) 'select-next-child)
+(define-second-key ("Tab" :mod-1 :shift) 'select-previous-child)
+
+(define-second-key ("Return" :mod-1) 'enter-group)
+(define-second-key ("Return" :mod-1 :shift) 'leave-group)
+
+(define-second-key ("Home" :mod-1) 'switch-to-root-group)
+(define-second-key ("Home" :mod-1 :shift) 'switch-and-select-root-group)
+
+(define-second-key ("Menu") 'toggle-show-root-group)
+
+(define-second-key (#\b :mod-1) 'banish-pointer)
+
+
+;;;; Escape
+(define-second-key ("Escape" :control :shift) 'delete-focus-window)
+(define-second-key ("Escape" :mod-1 :control :shift) 'destroy-focus-window)
+(define-second-key ("Escape" :control) 'remove-focus-window)
+(define-second-key ("Escape" :shift) 'unhide-all-windows-in-current-child)
+
+
+;;; Selection
+(define-second-key ("x" :control) 'cut-current-child)
+(define-second-key ("x" :control :mod-1) 'clear-selection)
+(define-second-key ("c" :control) 'copy-current-child)
+(define-second-key ("v" :control) 'paste-selection)
+(define-second-key ("v" :control :shift) 'paste-selection-no-clear)
+(define-second-key ("Delete") 'remove-current-child)
+
+
+
+
+
+(defun sm-handle-click-to-focus (root-x root-y)
+ "Give the focus to the clicked child"
+ (let ((win (find-child-under-mouse root-x root-y)))
+ (handle-click-to-focus win)))
+
+(define-mouse-action (1) 'sm-handle-click-to-focus)
+
+
+
+
+
+
+;;;; Escape
+;;(define-second-key ("Escape" :control :shift) 'delete-current-window)
+;;(define-second-key ("Escape" :mod-1 :control :shift) 'destroy-current-window)
+;;(define-second-key ("Escape" :control) 'remove-current-window)
+;;(define-second-key ("Escape" :shift) 'unhide-all-windows-in-current-group)
+;;
+;;
+;;;; Up
+;;(define-second-key ("Up" :mod-1) 'circulate-group-up)
+;;(define-second-key ("Up" :mod-1 :shift) 'circulate-group-up-move-window)
+;;(define-second-key ("Up" :mod-1 :shift :control) 'circulate-group-up-copy-window)
+;;
+;;
+;;;; Down
+;;(define-second-key ("Down" :mod-1) 'circulate-group-down)
+;;(define-second-key ("Down" :mod-1 :shift) 'circulate-group-down-move-window)
+;;(define-second-key ("Down" :mod-1 :shift :control) 'circulate-group-down-copy-window)
+;;
+;;
+;;;; Right
+;;(define-second-key ("Right" :mod-1) 'circulate-workspace-up)
+;;(define-second-key ("Right" :mod-1 :shift) 'circulate-workspace-up-move-group)
+;;(define-second-key ("Right" :mod-1 :shift :control) 'circulate-workspace-up-copy-group)
+;;
+;;
+;;;; Left
+;;(define-second-key ("Left" :mod-1) 'circulate-workspace-down)
+;;(define-second-key ("Left" :mod-1 :shift) 'circulate-workspace-down-move-group)
+;;(define-second-key ("Left" :mod-1 :shift :control) 'circulate-workspace-down-copy-group)
+;;
+;;
+;;(defmacro define-second-focus-workspace-by-number (key number)
+;; "Define a second key to focus a workspace by its number"
+;; `(define-second-key ,key
+;; (defun ,(create-symbol (format nil "b-second-focus-workspace-~A" number)) ()
+;; ,(format nil "Focus workspace ~A" number)
+;; (circulate-workspace-by-number ,number))))
+;;
+;;(define-second-focus-workspace-by-number (#\1 :mod-1) 1)
+;;(define-second-focus-workspace-by-number (#\2 :mod-1) 2)
+;;(define-second-focus-workspace-by-number (#\3 :mod-1) 3)
+;;(define-second-focus-workspace-by-number (#\4 :mod-1) 4)
+;;(define-second-focus-workspace-by-number (#\5 :mod-1) 5)
+;;(define-second-focus-workspace-by-number (#\6 :mod-1) 6)
+;;(define-second-focus-workspace-by-number (#\7 :mod-1) 7)
+;;(define-second-focus-workspace-by-number (#\8 :mod-1) 8)
+;;(define-second-focus-workspace-by-number (#\9 :mod-1) 9)
+;;(define-second-focus-workspace-by-number (#\0 :mod-1) 10)
+;;
+;;(define-second-key (#\1 :control :mod-1) 'renumber-workspaces)
+;;(define-second-key (#\2 :control :mod-1) 'sort-workspaces)
+;;
+;;
+;;
+;;
+;;
+;;(define-second-key ("Tab" :mod-1) 'rotate-window-up)
+;;(define-second-key ("Tab" :mod-1 :shift) 'rotate-window-down)
+;;
+;;(define-second-key (#\b) 'banish-pointer)
+;;
+;;(define-second-key (#\b :mod-1) 'toggle-maximize-current-group)
+;;
+;;(define-second-key (#\x) 'pager-mode)
+;;
+;;
+;;(define-second-key (#\k :mod-1) 'destroy-current-window)
+;;(define-second-key (#\k) 'remove-current-window)
+;;
+;;
+;;(define-second-key (#\g) 'create-new-default-group)
+;;(define-second-key (#\g :mod-1) 'remove-current-group)
+;;
+;;(define-second-key (#\w) 'create-new-default-workspace)
+;;(define-second-key (#\w :mod-1) 'remove-current-workspace)
+;;
+;;(define-second-key (#\o)
+;; (defun b-open-next-window-in-new-workspace ()
+;; "Open the next window in a new workspace"
+;; (setf *open-next-window-in-new-workspace* t)
+;; (leave-second-mode)))
+;;
+;;(define-second-key (#\o :control)
+;; (defun b-open-next-window-in-workspace-numbered ()
+;; "Open the next window in a numbered workspace"
+;; (let ((number (parse-integer (or (query-string "Open next window in workspace:") "")
+;; :junk-allowed t)))
+;; (when (numberp number)
+;; (setf *open-next-window-in-new-workspace* number)))
+;; (leave-second-mode)))
+;;
+;;
+;;(define-second-key (#\o :mod-1)
+;; (defun b-open-next-window-in-new-group-once ()
+;; "Open the next window in a new group and all others in the same group"
+;; (setf *open-next-window-in-new-group* :once)
+;; (leave-second-mode)))
+;;
+;;(define-second-key (#\o :mod-1 :control)
+;; (defun b-open-next-window-in-new-group ()
+;; "Open each next window in a new group"
+;; (setf *open-next-window-in-new-group* t)
+;; (leave-second-mode)))
+;;
+;;
+;;
+;;(defmacro define-shell (key name docstring cmd)
+;; "Define a second key to start a shell command"
+;; `(define-second-key ,key
+;; (defun ,name ()
+;; ,docstring
+;; (setf *second-mode-program* ,cmd)
+;; (leave-second-mode))))
+;;
+;;(define-shell (#\c) b-start-xterm "start an xterm" "exec xterm")
+;;(define-shell (#\e) b-start-emacs "start emacs" "exec emacs")
+;;(define-shell (#\e :control) b-start-emacsremote
+;; "start an emacs for another user"
+;; "exec emacsremote-Eterm")
+;;(define-shell (#\h) b-start-xclock "start an xclock" "exec xclock -d")
+;;
+;;
+;;(define-second-key (#\a) 'force-window-center-in-group)
+;;(define-second-key (#\a :mod-1) 'force-window-in-group)
+;;
+;;
+;;(define-second-key (#\d :mod-1)
+;; (defun b-show-debuging-info ()
+;; "Show debuging info"
+;; (dbg *workspace-list*)
+;; (dbg *screen*)
+;; (dbg (xlib:query-tree *root*))))
+;;
+;;(define-second-key (#\t :control) 'tile-current-workspace-vertically)
+;;(define-second-key (#\t :shift :control) 'tile-current-workspace-horizontally)
+;;
+;;(define-second-key (#\y) 'tile-current-workspace-to)
+;;(define-second-key (#\y :mod-1) 'reconfigure-tile-workspace)
+;;(define-second-key (#\y :control) 'explode-current-group)
+;;(define-second-key (#\y :control :shift) 'implode-current-group)
+;;
+;;;;;,-----
+;;;;;| Moving/Resizing groups
+;;;;;`-----
+;;(define-second-key (#\p)
+;; (defun b-pack-group-on-next-arrow ()
+;; "Pack group on next arrow action"
+;; (setf *arrow-action* :pack)))
+;;
+;;
+;;(defun fill-group-in-all-directions ()
+;; "Fill group in all directions"
+;; (fill-current-group-up)
+;; (fill-current-group-left)
+;; (fill-current-group-right)
+;; (fill-current-group-down))
+;;
+;;
+;;(define-second-key (#\f)
+;; (defun b-fill-group ()
+;; "Fill group on next arrow action (fill in all directions on second f keypress)"
+;; (case *arrow-action*
+;; (:fill (fill-group-in-all-directions)
+;; (setf *arrow-action* nil))
+;; (t (setf *arrow-action* :fill)))))
+;;
+;;(define-second-key (#\f :mod-1) 'fill-group-in-all-directions)
+;;
+;;(define-second-key (#\f :shift)
+;; (defun b-fill-group-vert ()
+;; "Fill group vertically"
+;; (fill-current-group-up)
+;; (fill-current-group-down)))
+;;
+;;(define-second-key (#\f :control)
+;; (defun b-fill-group-horiz ()
+;; "Fill group horizontally"
+;; (fill-current-group-left)
+;; (fill-current-group-right)))
+;;
+;;
+;;(define-second-key (#\r)
+;; (defun b-resize-half ()
+;; "Resize group to its half width or heigth on next arraw action"
+;; (setf *arrow-action* :resize-half)))
+;;
+;;
+;;(define-second-key (#\l) 'resize-minimal-current-group)
+;;(define-second-key (#\l :mod-1) 'resize-down-current-group)
+;;
+;;
+;;(define-second-key (#\m) 'center-current-group)
+;;
+;;
+;;(define-second-key ("Up")
+;; (defun b-move-or-pack-up ()
+;; "Move, pack, fill or resize group up"
+;; (case *arrow-action*
+;; (:pack (pack-current-group-up))
+;; (:fill (fill-current-group-up))
+;; (:resize-half (resize-half-height-up-current-group))
+;; (t (move-group (current-group) 0 -10)))
+;; (setf *arrow-action* nil)))
+;;
+;;(define-second-key ("Down")
+;; (defun b-move-or-pack-down ()
+;; "Move, pack, fill or resize group down"
+;; (case *arrow-action*
+;; (:pack (pack-current-group-down))
+;; (:fill (fill-current-group-down))
+;; (:resize-half (resize-half-height-down-current-group))
+;; (t (move-group (current-group) 0 +10)))
+;; (setf *arrow-action* nil)))
+;;
+;;(define-second-key ("Right")
+;; (defun b-move-or-pack-right ()
+;; "Move, pack, fill or resize group right"
+;; (case *arrow-action*
+;; (:pack (pack-current-group-right))
+;; (:fill (fill-current-group-right))
+;; (:resize-half (resize-half-width-right-current-group))
+;; (t (move-group (current-group) +10 0)))
+;; (setf *arrow-action* nil)))
+;;
+;;(define-second-key ("Left")
+;; (defun b-move-or-pack-left ()
+;; "Move, pack, fill or resize group left"
+;; (case *arrow-action*
+;; (:pack (pack-current-group-left))
+;; (:fill (fill-current-group-left))
+;; (:resize-half (resize-half-width-left-current-group))
+;; (t (move-group (current-group) -10 0)))
+;; (setf *arrow-action* nil)))
+;;
+;;
+;;(define-second-key ("Up" :shift)
+;; (defun b-resize-up ()
+;; "Resize group up"
+;; (resize-group (current-group) 0 -10)))
+;;
+;;(define-second-key ("Down" :shift)
+;; (defun b-resize-down ()
+;; "Resize group down"
+;; (resize-group (current-group) 0 +10)))
+;;
+;;(define-second-key ("Right" :shift)
+;; (defun b-resize-right ()
+;; "Resize group right"
+;; (resize-group (current-group) +10 0)))
+;;
+;;(define-second-key ("Left" :shift)
+;; (defun b-resize-left ()
+;; "Resize group left"
+;; (resize-group (current-group) -10 0)))
+;;
+;;
+;;;;;,-----
+;;;;;| Mouse second mode functions
+;;;;;`-----
+;;(defun select-group-under-mouse (root-x root-y)
+;; (let ((group (find-group-under-mouse root-x root-y)))
+;; (when group
+;; (no-focus)
+;; (focus-group group (current-workspace))
+;; (focus-window (current-window))
+;; (show-all-group (current-workspace) nil))))
+;;
+;;(defun mouse-leave-second-mode-maximize (root-x root-y)
+;; "Leave second mode and maximize current group"
+;; (select-group-under-mouse root-x root-y)
+;; (maximize-group (current-group))
+;; (show-all-windows-in-workspace (current-workspace))
+;; (throw 'exit-second-loop nil))
+;;
+;;(defun mouse-leave-second-mode (root-x root-y)
+;; "Leave second mode"
+;; (select-group-under-mouse root-x root-y)
+;; (show-all-windows-in-workspace (current-workspace))
+;; (throw 'exit-second-loop nil))
+;;
+;;
+;;
+;;
+;;(defun mouse-circulate-window-up (root-x root-y)
+;; "Rotate window up"
+;; (declare (ignore root-x root-y))
+;; (rotate-window-up))
+;;
+;;
+;;(defun mouse-circulate-window-down (root-x root-y)
+;; "Rotate window down"
+;; (declare (ignore root-x root-y))
+;; (rotate-window-down))
+;;
+;;
+;;
+;;(defun mouse-circulate-workspace-up (root-x root-y)
+;; "Circulate up in workspaces"
+;; (declare (ignore root-x root-y))
+;; (circulate-workspace-up))
+;;
+;;
+;;(defun mouse-circulate-workspace-down (root-x root-y)
+;; "Circulate down in workspaces"
+;; (declare (ignore root-x root-y))
+;; (circulate-workspace-down))
+;;
+;;
+;;
+;;
+;;(defun init-motion-vars ()
+;; (setf *motion-action* nil
+;; *motion-object* nil
+;; *motion-start-group* nil
+;; *motion-dx* nil
+;; *motion-dy* nil))
+;;
+;;
+;;(let ((accept-motion t)
+;; (selected-group nil))
+;; (defun mouse-motion (root-x root-y)
+;; "Move or resize group. Move window from a group to another.
+;;Go to top left or rigth corner to change workspaces."
+;; (let ((group (find-group-under-mouse root-x root-y)))
+;; (unless (equal selected-group group)
+;; (select-group-under-mouse root-x root-y)
+;; (setf selected-group group)))
+;; (if (<= root-y 5)
+;; (cond ((and accept-motion (<= root-x 5))
+;; (case *motion-action*
+;; (:move-group
+;; (remove-group-in-workspace *motion-object* (current-workspace))))
+;; (circulate-workspace-down)
+;; (minimize-group (current-group))
+;; (case *motion-action*
+;; (:move-group
+;; (add-group-in-workspace *motion-object* (current-workspace))))
+;; (warp-pointer *root* (1- (xlib:screen-width *screen*)) 100)
+;; (setf accept-motion nil))
+;; ((and accept-motion (>= root-x (- (xlib:screen-width *screen*) 5)))
+;; (case *motion-action*
+;; (:move-group
+;; (remove-group-in-workspace *motion-object* (current-workspace))))
+;; (circulate-workspace-up)
+;; (minimize-group (current-group))
+;; (case *motion-action*
+;; (:move-group
+;; (add-group-in-workspace *motion-object* (current-workspace))))
+;; (warp-pointer *root* 0 100)
+;; (setf accept-motion nil))
+;; (t (setf accept-motion t)))
+;; (setf accept-motion t))
+;; (case *motion-action*
+;; (:move-group
+;; (hide-group *root* *motion-object*)
+;; (setf (group-x *motion-object*) (+ root-x *motion-dx*)
+;; (group-y *motion-object*) (+ root-y *motion-dy*))
+;; (show-group *root* *root-gc* *motion-object*)
+;; (adapt-all-window-in-group *motion-object*)
+;; (show-all-group (current-workspace) nil))
+;; (:resize-group
+;; (hide-group *root* *motion-object*)
+;; (setf (group-width *motion-object*) (max (+ (group-width *motion-object*) (- root-x *motion-dx*)) 100)
+;; (group-height *motion-object*) (max (+ (group-height *motion-object*) (- root-y *motion-dy*)) 100)
+;; *motion-dx* root-x *motion-dy* root-y)
+;; (show-group *root* *root-gc* *motion-object*)
+;; (adapt-all-window-in-group *motion-object*)
+;; (show-all-group (current-workspace) nil)))))
+;;
+;;
+;;
+;;(defun move-selected-group (root-x root-y)
+;; "Move selected group or create a new group on the root window"
+;; (select-group-under-mouse root-x root-y)
+;; (setf *motion-object* (find-group-under-mouse root-x root-y))
+;; (if *motion-object*
+;; (setf *motion-action* :move-group
+;; *motion-dx* (- (group-x *motion-object*) root-x)
+;; *motion-dy* (- (group-y *motion-object*) root-y))
+;; (progn
+;; (setf *motion-object* (make-group :x root-x :y root-y :width 100 :height 100 :fullscreenp nil))
+;; (warp-pointer *root* (+ root-x 100) (+ root-y 100))
+;; (add-group-in-workspace *motion-object* (current-workspace))
+;; (show-all-group (current-workspace))
+;; (setf *motion-action* :resize-group
+;; *motion-dx* (+ root-x 100)
+;; *motion-dy* (+ root-y 100)))))
+;;
+;;
+;;
+;;(defun copy-selected-group (root-x root-y)
+;; "Copy selected group"
+;; (xgrab-pointer *root* 50 51)
+;; (select-group-under-mouse root-x root-y)
+;; (setf *motion-object* (find-group-under-mouse root-x root-y))
+;; (when *motion-object*
+;; (setf *motion-action* :copy-group
+;; *motion-object* (copy-group *motion-object*)
+;; *motion-dx* (- (group-x *motion-object*) root-x)
+;; *motion-dy* (- (group-y *motion-object*) root-y))))
+;;;; (add-group-in-workspace *motion-object* (current-workspace))))
+;;
+;;
+;;
+;;(defun release-move-selected-group (root-x root-y)
+;; "Release button"
+;; (when *motion-object*
+;; (case *motion-action*
+;; (:move-group
+;; (move-group-to *motion-object* (+ root-x *motion-dx*) (+ root-y *motion-dy*)))
+;; (:resize-group
+;; (resize-group *motion-object* 0 0))))
+;; (init-motion-vars)
+;; (select-group-under-mouse root-x root-y))
+;;
+;;
+;;(defun release-copy-selected-group (root-x root-y)
+;; "Release button"
+;; (xgrab-pointer *root* 66 67)
+;; (when *motion-object*
+;; (unless (group-windows-already-in-workspace *motion-object* (current-workspace))
+;; (add-group-in-workspace *motion-object* (current-workspace))
+;; (move-group-to *motion-object* (+ root-x *motion-dx*) (+ root-y *motion-dy*))))
+;; (init-motion-vars)
+;; (select-group-under-mouse root-x root-y)
+;; (show-all-windows-in-workspace (current-workspace)))
+;;
+;;
+;;
+;;(defun resize-selected-group (root-x root-y)
+;; "Resize selected group"
+;; (select-group-under-mouse root-x root-y)
+;; (setf *motion-object* (find-group-under-mouse root-x root-y))
+;; (when *motion-object*
+;; (setf *motion-action* :resize-group
+;; *motion-dx* root-x
+;; *motion-dy* root-y)))
+;;
+;;
+;;(defun release-resize-selected-group (root-x root-y)
+;; "Release button"
+;; (when *motion-object*
+;; (resize-group *motion-object* 0 0))
+;; (init-motion-vars)
+;; (select-group-under-mouse root-x root-y))
+;;
+;;
+;;
+;;(defun move-selected-window (root-x root-y)
+;; "Move selected window"
+;; (xgrab-pointer *root* 50 51)
+;; (select-group-under-mouse root-x root-y)
+;; (setf *motion-object* (current-window)
+;; *motion-action* :move-window)
+;; (when *motion-object*
+;; (setf *motion-start-group* (current-group))))
+;;
+;;
+;;(defun release-move-selected-window (root-x root-y)
+;; "Release button"
+;; (xgrab-pointer *root* 66 67)
+;; (select-group-under-mouse root-x root-y)
+;; (when *motion-object*
+;; (remove-window-in-group *motion-object* *motion-start-group*)
+;; (add-window-in-group *motion-object* (current-group)))
+;; (init-motion-vars)
+;; (select-group-under-mouse root-x root-y)
+;; (show-all-windows-in-workspace (current-workspace)))
+;;
+;;
+;;
+;;(defun copy-selected-window (root-x root-y)
+;; "Copy selected window"
+;; (move-selected-window root-x root-y)
+;; (setf *motion-action* :copy-window))
+;;
+;;(defun release-copy-selected-window (root-x root-y)
+;; "Release button"
+;; (xgrab-pointer *root* 66 67)
+;; (select-group-under-mouse root-x root-y)
+;; (when *motion-object*
+;; (unless (window-already-in-workspace *motion-object* (current-workspace))
+;; (add-window-in-group *motion-object* (current-group))))
+;; (init-motion-vars)
+;; (select-group-under-mouse root-x root-y)
+;; (show-all-windows-in-workspace (current-workspace)))
+;;
+;;
+;;
+;;
+;;
+;;
+;;(define-mouse-action (1) 'move-selected-group 'release-move-selected-group)
+;;(define-mouse-action (1 :mod-1) 'resize-selected-group 'release-resize-selected-group)
+;;(define-mouse-action (1 :control) 'copy-selected-group 'release-copy-selected-group)
+;;
+;;(define-mouse-action (2) nil 'mouse-leave-second-mode-maximize)
+;;(define-mouse-action (2 :control) nil 'mouse-leave-second-mode)
+;;
+;;(define-mouse-action (3) 'move-selected-window 'release-move-selected-window)
+;;(define-mouse-action (3 :control) 'copy-selected-window 'release-copy-selected-window)
+;;
+;;
+;;(define-mouse-action (4) 'mouse-circulate-window-up nil)
+;;(define-mouse-action (5) 'mouse-circulate-window-down nil)
+;;
+;;(define-mouse-action (4 :mod-1) 'mouse-circulate-workspace-up nil)
+;;(define-mouse-action (5 :mod-1) 'mouse-circulate-workspace-down nil)
+;;
+;;(define-mouse-action ('Motion) 'mouse-motion nil)
+
Added: bindings-second-mode.lisp.bak
==============================================================================
--- (empty file)
+++ bindings-second-mode.lisp.bak Sat Mar 1 07:36:13 2008
@@ -0,0 +1,573 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; #Date#: Sat Dec 22 23:31:58 2007
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Bindings keys and mouse for second mode
+;;;
+;;; Note: Mod-1 is the Alt or Meta key, Mod-2 is the Numlock key.
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2005 Philippe Brochard
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+;;;,-----
+;;;| Second keys
+;;;|
+;;;| CONFIG - Second mode bindings
+;;;`-----
+(defun leave-second-mode-maximize ()
+ "Leave second mode and maximize current group"
+ (maximize-group (current-group))
+ (banish-pointer)
+ (show-all-windows-in-workspace (current-workspace))
+ (throw 'exit-second-loop nil))
+
+(defun leave-second-mode ()
+ "Leave second mode"
+ (banish-pointer)
+ (show-all-windows-in-workspace (current-workspace))
+ (throw 'exit-second-loop nil))
+
+
+(define-second-key ("F1" :mod-1) 'help-on-second-mode)
+
+(define-second-key (#\g :control) 'stop-all-pending-actions)
+
+(define-second-key (#\i) 'identify-key)
+
+(define-second-key (#\:) 'eval-from-query-string)
+
+
+(defun run-program-from-query-string ()
+ "Run a program from the query input"
+ (let ((program (query-string "Run:")))
+ (when (and program (not (equal program "")))
+ (do-shell program)
+ (leave-second-mode))))
+
+(define-second-key (#\!) 'run-program-from-query-string)
+
+
+(define-second-key (#\t) 'leave-second-mode-maximize)
+(define-second-key (#\Return) 'leave-second-mode-maximize)
+(define-second-key ("Escape") 'leave-second-mode)
+
+
+(define-second-key (#\< :control) 'leave-second-mode)
+(define-second-key (#\Return :control) 'leave-second-mode)
+
+;; Escape
+(define-second-key ("Escape" :control :shift) 'delete-current-window)
+(define-second-key ("Escape" :mod-1 :control :shift) 'destroy-current-window)
+(define-second-key ("Escape" :control) 'remove-current-window)
+(define-second-key ("Escape" :shift) 'unhide-all-windows-in-current-group)
+
+
+;; Up
+(define-second-key ("Up" :mod-1) 'circulate-group-up)
+(define-second-key ("Up" :mod-1 :shift) 'circulate-group-up-move-window)
+(define-second-key ("Up" :mod-1 :shift :control) 'circulate-group-up-copy-window)
+
+
+;; Down
+(define-second-key ("Down" :mod-1) 'circulate-group-down)
+(define-second-key ("Down" :mod-1 :shift) 'circulate-group-down-move-window)
+(define-second-key ("Down" :mod-1 :shift :control) 'circulate-group-down-copy-window)
+
+
+;; Right
+(define-second-key ("Right" :mod-1) 'circulate-workspace-up)
+(define-second-key ("Right" :mod-1 :shift) 'circulate-workspace-up-move-group)
+(define-second-key ("Right" :mod-1 :shift :control) 'circulate-workspace-up-copy-group)
+
+
+;; Left
+(define-second-key ("Left" :mod-1) 'circulate-workspace-down)
+(define-second-key ("Left" :mod-1 :shift) 'circulate-workspace-down-move-group)
+(define-second-key ("Left" :mod-1 :shift :control) 'circulate-workspace-down-copy-group)
+
+
+(defmacro define-second-focus-workspace-by-number (key number)
+ "Define a second key to focus a workspace by its number"
+ `(define-second-key ,key
+ (defun ,(create-symbol (format nil "b-second-focus-workspace-~A" number)) ()
+ ,(format nil "Focus workspace ~A" number)
+ (circulate-workspace-by-number ,number))))
+
+(define-second-focus-workspace-by-number (#\1 :mod-1) 1)
+(define-second-focus-workspace-by-number (#\2 :mod-1) 2)
+(define-second-focus-workspace-by-number (#\3 :mod-1) 3)
+(define-second-focus-workspace-by-number (#\4 :mod-1) 4)
+(define-second-focus-workspace-by-number (#\5 :mod-1) 5)
+(define-second-focus-workspace-by-number (#\6 :mod-1) 6)
+(define-second-focus-workspace-by-number (#\7 :mod-1) 7)
+(define-second-focus-workspace-by-number (#\8 :mod-1) 8)
+(define-second-focus-workspace-by-number (#\9 :mod-1) 9)
+(define-second-focus-workspace-by-number (#\0 :mod-1) 10)
+
+(define-second-key (#\1 :control :mod-1) 'renumber-workspaces)
+(define-second-key (#\2 :control :mod-1) 'sort-workspaces)
+
+
+
+
+
+(define-second-key (#\Tab :mod-1) 'rotate-window-up)
+(define-second-key (#\Tab :mod-1 :shift) 'rotate-window-down)
+
+(define-second-key (#\b) 'banish-pointer)
+
+(define-second-key (#\b :mod-1) 'toggle-maximize-current-group)
+
+(define-second-key (#\x) 'pager-mode)
+
+
+(define-second-key (#\k :mod-1) 'destroy-current-window)
+(define-second-key (#\k) 'remove-current-window)
+
+
+(define-second-key (#\g) 'create-new-default-group)
+(define-second-key (#\g :mod-1) 'remove-current-group)
+
+(define-second-key (#\w) 'create-new-default-workspace)
+(define-second-key (#\w :mod-1) 'remove-current-workspace)
+
+(define-second-key (#\o)
+ (defun b-open-next-window-in-new-workspace ()
+ "Open the next window in a new workspace"
+ (setf *open-next-window-in-new-workspace* t)
+ (leave-second-mode)))
+
+(define-second-key (#\o :control)
+ (defun b-open-next-window-in-workspace-numbered ()
+ "Open the next window in a numbered workspace"
+ (let ((number (parse-integer (or (query-string "Open next window in workspace:") "")
+ :junk-allowed t)))
+ (when (numberp number)
+ (setf *open-next-window-in-new-workspace* number)))
+ (leave-second-mode)))
+
+
+(define-second-key (#\o :mod-1)
+ (defun b-open-next-window-in-new-group-once ()
+ "Open the next window in a new group and all others in the same group"
+ (setf *open-next-window-in-new-group* :once)
+ (leave-second-mode)))
+
+(define-second-key (#\o :mod-1 :control)
+ (defun b-open-next-window-in-new-group ()
+ "Open each next window in a new group"
+ (setf *open-next-window-in-new-group* t)
+ (leave-second-mode)))
+
+
+
+(defmacro define-shell (key name docstring cmd)
+ "Define a second key to start a shell command"
+ `(define-second-key ,key
+ (defun ,name ()
+ ,docstring
+ (do-shell ,cmd)
+ (leave-second-mode))))
+
+(define-shell (#\c) b-start-xterm "start an xterm" "exec xterm")
+(define-shell (#\e) b-start-emacs "start emacs" "exec emacs")
+(define-shell (#\e :control) b-start-emacsremote
+ "start an emacs for another user"
+ "exec emacsremote-Eterm")
+(define-shell (#\h) b-start-xclock "start an xclock" "exec xclock -d")
+
+
+(define-second-key (#\a) 'force-window-center-in-group)
+(define-second-key (#\a :mod-1) 'force-window-in-group)
+
+
+(define-second-key (#\d :mod-1)
+ (defun b-show-debuging-info ()
+ "Show debuging info"
+ (dbg *workspace-list*)
+ (dbg *screen*)
+ (dbg (query-tree *root*))))
+
+(define-second-key (#\t :control) 'tile-current-workspace-vertically)
+(define-second-key (#\t :shift :control) 'tile-current-workspace-horizontally)
+
+(define-second-key (#\y) 'tile-current-workspace-to)
+(define-second-key (#\y :mod-1) 'reconfigure-tile-workspace)
+(define-second-key (#\y :control) 'explode-current-group)
+(define-second-key (#\y :control :shift) 'implode-current-group)
+
+;;;,-----
+;;;| Moving/Resizing groups
+;;;`-----
+(define-second-key (#\p)
+ (defun b-pack-group-on-next-arrow ()
+ "Pack group on next arrow action"
+ (setf *arrow-action* :pack)))
+
+
+(defun fill-group-in-all-directions ()
+ "Fill group in all directions"
+ (fill-current-group-up)
+ (fill-current-group-left)
+ (fill-current-group-right)
+ (fill-current-group-down))
+
+
+(define-second-key (#\f)
+ (defun b-fill-group ()
+ "Fill group on next arrow action (fill in all directions on second f keypress)"
+ (case *arrow-action*
+ (:fill (fill-group-in-all-directions)
+ (setf *arrow-action* nil))
+ (t (setf *arrow-action* :fill)))))
+
+(define-second-key (#\f :mod-1) 'fill-group-in-all-directions)
+
+(define-second-key (#\f :shift)
+ (defun b-fill-group-vert ()
+ "Fill group vertically"
+ (fill-current-group-up)
+ (fill-current-group-down)))
+
+(define-second-key (#\f :control)
+ (defun b-fill-group-horiz ()
+ "Fill group horizontally"
+ (fill-current-group-left)
+ (fill-current-group-right)))
+
+
+(define-second-key (#\r)
+ (defun b-resize-half ()
+ "Resize group to its half width or heigth on next arraw action"
+ (setf *arrow-action* :resize-half)))
+
+
+(define-second-key (#\l) 'resize-minimal-current-group)
+(define-second-key (#\l :mod-1) 'resize-down-current-group)
+
+
+(define-second-key (#\m) 'center-current-group)
+
+
+(define-second-key ("Up")
+ (defun b-move-or-pack-up ()
+ "Move, pack, fill or resize group up"
+ (case *arrow-action*
+ (:pack (pack-current-group-up))
+ (:fill (fill-current-group-up))
+ (:resize-half (resize-half-height-up-current-group))
+ (t (move-group (current-group) 0 -10)))
+ (setf *arrow-action* nil)))
+
+(define-second-key ("Down")
+ (defun b-move-or-pack-down ()
+ "Move, pack, fill or resize group down"
+ (case *arrow-action*
+ (:pack (pack-current-group-down))
+ (:fill (fill-current-group-down))
+ (:resize-half (resize-half-height-down-current-group))
+ (t (move-group (current-group) 0 +10)))
+ (setf *arrow-action* nil)))
+
+(define-second-key ("Right")
+ (defun b-move-or-pack-right ()
+ "Move, pack, fill or resize group right"
+ (case *arrow-action*
+ (:pack (pack-current-group-right))
+ (:fill (fill-current-group-right))
+ (:resize-half (resize-half-width-right-current-group))
+ (t (move-group (current-group) +10 0)))
+ (setf *arrow-action* nil)))
+
+(define-second-key ("Left")
+ (defun b-move-or-pack-left ()
+ "Move, pack, fill or resize group left"
+ (case *arrow-action*
+ (:pack (pack-current-group-left))
+ (:fill (fill-current-group-left))
+ (:resize-half (resize-half-width-left-current-group))
+ (t (move-group (current-group) -10 0)))
+ (setf *arrow-action* nil)))
+
+
+(define-second-key ("Up" :shift)
+ (defun b-resize-up ()
+ "Resize group up"
+ (resize-group (current-group) 0 -10)))
+
+(define-second-key ("Down" :shift)
+ (defun b-resize-down ()
+ "Resize group down"
+ (resize-group (current-group) 0 +10)))
+
+(define-second-key ("Right" :shift)
+ (defun b-resize-right ()
+ "Resize group right"
+ (resize-group (current-group) +10 0)))
+
+(define-second-key ("Left" :shift)
+ (defun b-resize-left ()
+ "Resize group left"
+ (resize-group (current-group) -10 0)))
+
+
+;;;,-----
+;;;| Mouse second mode functions
+;;;`-----
+(defun select-group-under-mouse (root-x root-y)
+ (let ((group (find-group-under-mouse root-x root-y)))
+ (when group
+ (no-focus)
+ (focus-group group (current-workspace))
+ (focus-window (current-window))
+ (show-all-group (current-workspace)))))
+
+(defun mouse-leave-second-mode-maximize (root-x root-y)
+ "Leave second mode and maximize current group"
+ (select-group-under-mouse root-x root-y)
+ (maximize-group (current-group))
+ (show-all-windows-in-workspace (current-workspace))
+ (throw 'exit-second-loop nil))
+
+(defun mouse-leave-second-mode (root-x root-y)
+ "Leave second mode"
+ (select-group-under-mouse root-x root-y)
+ (show-all-windows-in-workspace (current-workspace))
+ (throw 'exit-second-loop nil))
+
+
+
+
+(defun mouse-circulate-window-up (root-x root-y)
+ "Rotate window up"
+ (declare (ignore root-x root-y))
+ (rotate-window-up))
+
+
+(defun mouse-circulate-window-down (root-x root-y)
+ "Rotate window down"
+ (declare (ignore root-x root-y))
+ (rotate-window-down))
+
+
+
+(defun mouse-circulate-workspace-up (root-x root-y)
+ "Circulate up in workspaces"
+ (declare (ignore root-x root-y))
+ (circulate-workspace-up))
+
+
+(defun mouse-circulate-workspace-down (root-x root-y)
+ "Circulate down in workspaces"
+ (declare (ignore root-x root-y))
+ (circulate-workspace-down))
+
+
+
+(defparameter *motion-action* nil)
+(defparameter *motion-object* nil)
+(defparameter *motion-start-group* nil)
+(defparameter *motion-dx* nil)
+(defparameter *motion-dy* nil)
+
+
+
+(let ((accept-motion t)
+ (selected-group nil))
+ (defun mouse-motion (root-x root-y)
+ "Move or resize group. Move window from a group to another.
+Go to top left or rigth corner to change workspaces."
+ (let ((group (find-group-under-mouse root-x root-y)))
+ (unless (equal selected-group group)
+ (select-group-under-mouse root-x root-y)
+ (setf selected-group group)))
+ (if (<= root-y 5)
+ (cond ((and accept-motion (<= root-x 5))
+ (case *motion-action*
+ (:move-group
+ (remove-group-in-workspace *motion-object* (current-workspace))))
+ (circulate-workspace-down)
+ (minimize-group (current-group))
+ (case *motion-action*
+ (:move-group
+ (add-group-in-workspace *motion-object* (current-workspace))))
+ (warp-pointer *root* (1- (screen-width *screen*)) 100)
+ (setf accept-motion nil))
+ ((and accept-motion (>= root-x (- (screen-width *screen*) 5)))
+ (case *motion-action*
+ (:move-group
+ (remove-group-in-workspace *motion-object* (current-workspace))))
+ (circulate-workspace-up)
+ (minimize-group (current-group))
+ (case *motion-action*
+ (:move-group
+ (add-group-in-workspace *motion-object* (current-workspace))))
+ (warp-pointer *root* 0 100)
+ (setf accept-motion nil))
+ (t (setf accept-motion t)))
+ (setf accept-motion t))
+ (case *motion-action*
+ (:move-group
+ (setf (group-x *motion-object*) (+ root-x *motion-dx*)
+ (group-y *motion-object*) (+ root-y *motion-dy*))
+ (adapt-all-window-in-group *motion-object*)
+ (show-all-group (current-workspace)))
+ (:resize-group
+ (setf (group-width *motion-object*) (max (+ (group-width *motion-object*) (- root-x *motion-dx*)) 100)
+ (group-height *motion-object*) (max (+ (group-height *motion-object*) (- root-y *motion-dy*)) 100)
+ *motion-dx* root-x *motion-dy* root-y)
+ (adapt-all-window-in-group *motion-object*)
+ (show-all-group (current-workspace))))))
+
+
+
+(defun move-selected-group (root-x root-y)
+ "Move selected group or create a new group on the root window"
+ (select-group-under-mouse root-x root-y)
+ (setf *motion-object* (find-group-under-mouse root-x root-y))
+ (if *motion-object*
+ (setf *motion-action* :move-group
+ *motion-dx* (- (group-x *motion-object*) root-x)
+ *motion-dy* (- (group-y *motion-object*) root-y))
+ (progn
+ (setf *motion-object* (make-group :x root-x :y root-y :width 100 :height 100 :fullscreenp nil))
+ (warp-pointer *root* (+ root-x 100) (+ root-y 100))
+ (add-group-in-workspace *motion-object* (current-workspace))
+ (show-all-group (current-workspace))
+ (setf *motion-action* :resize-group
+ *motion-dx* (+ root-x 100)
+ *motion-dy* (+ root-y 100)))))
+
+
+
+(defun copy-selected-group (root-x root-y)
+ "Copy selected group"
+ (select-group-under-mouse root-x root-y)
+ (setf *motion-object* (find-group-under-mouse root-x root-y))
+ (when *motion-object*
+ (setf *motion-action* :move-group
+ *motion-object* (copy-group *motion-object*)
+ *motion-dx* (- (group-x *motion-object*) root-x)
+ *motion-dy* (- (group-y *motion-object*) root-y))
+ (add-group-in-workspace *motion-object* (current-workspace))))
+
+
+
+(defun release-move-selected-group (root-x root-y)
+ "Release button"
+ (when *motion-object*
+ (case *motion-action*
+ (:move-group
+ (move-group-to *motion-object* (+ root-x *motion-dx*) (+ root-y *motion-dy*)))
+ (:resize-group
+ (resize-group *motion-object* 0 0))))
+ (setf *motion-action* nil
+ *motion-object* nil
+ *motion-dx* nil
+ *motion-dy* nil)
+ (select-group-under-mouse root-x root-y))
+
+
+
+(defun resize-selected-group (root-x root-y)
+ "Resize selected group"
+ (select-group-under-mouse root-x root-y)
+ (setf *motion-object* (find-group-under-mouse root-x root-y))
+ (when *motion-object*
+ (setf *motion-action* :resize-group
+ *motion-dx* root-x
+ *motion-dy* root-y)))
+
+
+(defun release-resize-selected-group (root-x root-y)
+ "Release button"
+ (when *motion-object*
+ (resize-group *motion-object* 0 0))
+ (setf *motion-action* nil
+ *motion-object* nil
+ *motion-dx* nil
+ *motion-dy* nil)
+ (select-group-under-mouse root-x root-y))
+
+
+
+(defun move-selected-window (root-x root-y)
+ "Move selected window"
+ (xgrab-pointer *root* 50 51)
+ (select-group-under-mouse root-x root-y)
+ (setf *motion-object* (current-window))
+ (when *motion-object*
+ (setf *motion-start-group* (current-group))))
+
+
+(defun release-move-selected-window (root-x root-y)
+ "Release button"
+ (xgrab-pointer *root* 66 67)
+ (setf *motion-action* nil)
+ (select-group-under-mouse root-x root-y)
+ (when *motion-object*
+ (remove-window-in-group *motion-object* *motion-start-group*)
+ (add-window-in-group *motion-object* (current-group)))
+ (select-group-under-mouse root-x root-y)
+ (show-all-windows-in-workspace (current-workspace)))
+
+
+
+(defun copy-selected-window (root-x root-y)
+ "Copy selected window"
+ (move-selected-window root-x root-y))
+
+(defun release-copy-selected-window (root-x root-y)
+ "Release button"
+ (xgrab-pointer *root* 66 67)
+ (setf *motion-action* nil)
+ (select-group-under-mouse root-x root-y)
+ (when *motion-object*
+ (add-window-in-group *motion-object* (current-group)))
+ (select-group-under-mouse root-x root-y)
+ (show-all-windows-in-workspace (current-workspace)))
+
+
+
+
+
+
+(define-mouse-action (1) 'move-selected-group 'release-move-selected-group)
+(define-mouse-action (1 :mod-1) 'resize-selected-group 'release-resize-selected-group)
+(define-mouse-action (1 :control) 'copy-selected-group 'release-move-selected-group)
+
+(define-mouse-action (2) nil 'mouse-leave-second-mode-maximize)
+(define-mouse-action (2 :control) nil 'mouse-leave-second-mode)
+
+(define-mouse-action (3) 'move-selected-window 'release-move-selected-window)
+(define-mouse-action (3 :control) 'copy-selected-window 'release-copy-selected-window)
+
+
+(define-mouse-action (4) 'mouse-circulate-window-up nil)
+(define-mouse-action (5) 'mouse-circulate-window-down nil)
+
+(define-mouse-action (4 :mod-1) 'mouse-circulate-workspace-up nil)
+(define-mouse-action (5 :mod-1) 'mouse-circulate-workspace-down nil)
+
+(define-mouse-action ('Motion) 'mouse-motion nil)
+
Added: bindings.fas
==============================================================================
--- (empty file)
+++ bindings.fas Sat Mar 1 07:36:13 2008
@@ -0,0 +1,101 @@
+(|SYSTEM|::|VERSION| '(20060802.))
+#0Y |CHARSET|::|UTF-8|
+#Y(#:|1 30 (IN-PACKAGE :CLFSWM)-1|
+ #17Y(00 00 00 00 00 00 00 00 00 01 DA 31 E6 0F 01 19 01)
+ ("CLFSWM" |COMMON-LISP|::|*PACKAGE*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|32 37 (DEFINE-MAIN-KEY ("F1" :MOD-1) 'HELP-ON-CLFSWM)-2|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("F1" 8. |CLFSWM|::|HELP-ON-CLFSWM| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|39 41 (DEFUN QUIT-CLFSWM NIL ...)-3|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|QUIT-CLFSWM| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|QUIT-CLFSWM| #13Y(00 00 00 00 00 00 00 00 06 01 DA 00 52)
+ (|CLFSWM|::|EXIT-MAIN-LOOP|)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Quit clfswm"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|43 43 (DEFINE-MAIN-KEY ("Home" :MOD-1 :CONTROL ...) 'QUIT-CLFSWM)-4|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Home" 13. |CLFSWM|::|QUIT-CLFSWM| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|45 45 (DEFINE-MAIN-KEY ("Right" :MOD-1) 'SELECT-NEXT-BROTHER)-5|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Right" 8. |CLFSWM|::|SELECT-NEXT-BROTHER| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|46 46 (DEFINE-MAIN-KEY ("Left" :MOD-1) 'SELECT-PREVIOUS-BROTHER)-6|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Left" 8. |CLFSWM|::|SELECT-PREVIOUS-BROTHER|
+ |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|48 48 (DEFINE-MAIN-KEY ("Down" :MOD-1) 'SELECT-NEXT-LEVEL)-7|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Down" 8. |CLFSWM|::|SELECT-NEXT-LEVEL| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|49 49 (DEFINE-MAIN-KEY ("Up" :MOD-1) 'SELECT-PREVIOUS-LEVEL)-8|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Up" 8. |CLFSWM|::|SELECT-PREVIOUS-LEVEL| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|51 51 (DEFINE-MAIN-KEY ("Tab" :MOD-1) 'SELECT-NEXT-CHILD)-9|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Tab" 8. |CLFSWM|::|SELECT-NEXT-CHILD| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|52 52 (DEFINE-MAIN-KEY ("Tab" :MOD-1 :SHIFT) 'SELECT-PREVIOUS-CHILD)-10|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Tab" 9. |CLFSWM|::|SELECT-PREVIOUS-CHILD| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|54 54 (DEFINE-MAIN-KEY ("Return" :MOD-1) 'ENTER-GROUP)-11|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Return" 8. |CLFSWM|::|ENTER-GROUP| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|55 55 (DEFINE-MAIN-KEY ("Return" :MOD-1 :SHIFT) 'LEAVE-GROUP)-12|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Return" 9. |CLFSWM|::|LEAVE-GROUP| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|57 57 (DEFINE-MAIN-KEY ("Home" :MOD-1) 'SWITCH-TO-ROOT-GROUP)-13|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Home" 8. |CLFSWM|::|SWITCH-TO-ROOT-GROUP| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|58 58 (DEFINE-MAIN-KEY ("Home" :MOD-1 :SHIFT) 'SWITCH-AND-SELECT-ROOT-GROUP)-14|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Home" 9. |CLFSWM|::|SWITCH-AND-SELECT-ROOT-GROUP|
+ |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|60 60 (DEFINE-MAIN-KEY ("Menu") 'TOGGLE-SHOW-ROOT-GROUP)-15|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Menu" 0. |CLFSWM|::|TOGGLE-SHOW-ROOT-GROUP|
+ |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|62 62 (DEFINE-MAIN-KEY (#\\b :MOD-1) 'BANISH-POINTER)-16|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\b 8. |CLFSWM|::|BANISH-POINTER| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|65 66 (DEFINE-MAIN-KEY ("Escape" :CONTROL :SHIFT) 'DELETE-FOCUS-WINDOW)-17|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 5. |CLFSWM|::|DELETE-FOCUS-WINDOW|
+ |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|67 67 (DEFINE-MAIN-KEY ("Escape" :MOD-1 :CONTROL ...) 'DESTROY-FOCUS-WINDOW)-18|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 13. |CLFSWM|::|DESTROY-FOCUS-WINDOW|
+ |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|68 68 (DEFINE-MAIN-KEY ("Escape" :CONTROL) 'REMOVE-FOCUS-WINDOW)-19|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 4. |CLFSWM|::|REMOVE-FOCUS-WINDOW|
+ |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|69 69 (DEFINE-MAIN-KEY ("Escape" :SHIFT) 'UNHIDE-ALL-WINDOWS-IN-CURRENT-CHILD)-20|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 1. |CLFSWM|::|UNHIDE-ALL-WINDOWS-IN-CURRENT-CHILD|
+ |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|72 72 (DEFINE-MAIN-KEY (#\\t :MOD-1) 'SECOND-KEY-MODE)-21|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\t 8. |CLFSWM|::|SECOND-KEY-MODE| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|73 73 (DEFINE-MAIN-KEY ("less" :CONTROL) 'SECOND-KEY-MODE)-22|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("less" 4. |CLFSWM|::|SECOND-KEY-MODE| |CLFSWM|::|DEFINE-MAIN-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
Added: bindings.fasl
==============================================================================
Binary file. No diff available.
Added: bindings.lib
==============================================================================
--- (empty file)
+++ bindings.lib Sat Mar 1 07:36:13 2008
@@ -0,0 +1,5 @@
+#0Y |CHARSET|::|UTF-8|
+(|COMMON-LISP|::|SETQ| |COMMON-LISP|::|*PACKAGE*|
+ (|SYSTEM|::|%FIND-PACKAGE| "CLFSWM"))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|QUIT-CLFSWM|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
Added: bindings.lisp
==============================================================================
--- (empty file)
+++ bindings.lisp Sat Mar 1 07:36:13 2008
@@ -0,0 +1,173 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; #Date#: Sun Feb 24 21:34:48 2008
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Bindings keys and mouse
+;;;
+;;; Note: Mod-1 is the Alt or Meta key, Mod-2 is the Numlock key.
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2005 Philippe Brochard
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+;;;,-----
+;;;| CONFIG - Bindings main mode
+;;;`-----
+
+
+(define-main-key ("F1" :mod-1) 'help-on-clfswm)
+
+(defun quit-clfswm ()
+ "Quit clfswm"
+ (throw 'exit-main-loop nil))
+
+(define-main-key ("Home" :mod-1 :control :shift) 'quit-clfswm)
+
+(define-main-key ("Right" :mod-1) 'select-next-brother)
+(define-main-key ("Left" :mod-1) 'select-previous-brother)
+
+(define-main-key ("Down" :mod-1) 'select-next-level)
+(define-main-key ("Up" :mod-1) 'select-previous-level)
+
+(define-main-key ("Tab" :mod-1) 'select-next-child)
+(define-main-key ("Tab" :mod-1 :shift) 'select-previous-child)
+
+(define-main-key ("Return" :mod-1) 'enter-group)
+(define-main-key ("Return" :mod-1 :shift) 'leave-group)
+
+(define-main-key ("Home" :mod-1) 'switch-to-root-group)
+(define-main-key ("Home" :mod-1 :shift) 'switch-and-select-root-group)
+
+(define-main-key ("Menu") 'toggle-show-root-group)
+
+(define-main-key (#\b :mod-1) 'banish-pointer)
+
+
+;;;; Escape
+(define-main-key ("Escape" :control :shift) 'delete-focus-window)
+(define-main-key ("Escape" :mod-1 :control :shift) 'destroy-focus-window)
+(define-main-key ("Escape" :control) 'remove-focus-window)
+(define-main-key ("Escape" :shift) 'unhide-all-windows-in-current-child)
+
+
+(define-main-key (#\t :mod-1) 'second-key-mode)
+(define-main-key ("less" :control) 'second-key-mode)
+
+
+;;(define-main-key ("a") (lambda ()
+;; (dbg 'key-a)
+;; (show-all-childs *root-group*)))
+;;
+;;(define-main-key ("b") (lambda ()
+;; (dbg 'key-b)
+;; (let* ((window (xlib:create-window :parent *root*
+;; :x 300
+;; :y 200
+;; :width 400
+;; :height 300
+;; :background (get-color "Black")
+;; :colormap (xlib:screen-default-colormap *screen*)
+;; :border-width 1
+;; :border (get-color "Red")
+;; :class :input-output
+;; :event-mask '(:exposure)))
+;; (gc (xlib:create-gcontext :drawable window
+;; :foreground (get-color "Green")
+;; :background (get-color "Red")
+;; :font *default-font*
+;; :line-style :solid)))
+;; (xlib:map-window window)
+;; (draw-line window gc 10 10 200 200)
+;; (xlib:display-finish-output *display*)
+;; (xlib:draw-glyphs window gc 10 10 (format nil "~A" 10))
+;; (dbg 'ici))))
+;;
+;;
+;;;;(define-main-key ("F1" :mod-1) 'help-on-clfswm)
+;;;;
+;;(defun quit-clfswm ()
+;; "Quit clfswm"
+;; (throw 'exit-main-loop nil))
+;;
+;;
+;;
+;;(define-main-key ("Home" :mod-1 :control :shift) 'quit-clfswm)
+;;
+;;(define-main-key (#\t :mod-1) 'second-key-mode)
+;;(define-main-key ("less" :control) 'second-key-mode)
+;;
+;;(define-main-key ("Tab" :mod-1) 'rotate-window-up)
+;;(define-main-key ("Tab" :mod-1 :shift) 'rotate-window-down)
+;;
+;;(define-main-key (#\b :mod-1) 'banish-pointer)
+;;(define-main-key (#\b :mod-1 :control) 'toggle-maximize-current-group)
+;;
+;;;; Escape
+;;(define-main-key ("Escape" :control :shift) 'delete-current-window)
+;;(define-main-key ("Escape" :mod-1 :control :shift) 'destroy-current-window)
+;;(define-main-key ("Escape" :control) 'remove-current-window)
+;;(define-main-key ("Escape" :shift) 'unhide-all-windows-in-current-group)
+;;
+;;
+;;;; Up
+;;(define-main-key ("Up" :mod-1) 'circulate-group-up)
+;;(define-main-key ("Up" :mod-1 :shift) 'circulate-group-up-move-window)
+;;(define-main-key ("Up" :mod-1 :shift :control) 'circulate-group-up-copy-window)
+;;
+;;
+;;;; Down
+;;(define-main-key ("Down" :mod-1) 'circulate-group-down)
+;;(define-main-key ("Down" :mod-1 :shift) 'circulate-group-down-move-window)
+;;(define-main-key ("Down" :mod-1 :shift :control) 'circulate-group-down-copy-window)
+;;
+;;
+;;;; Right
+;;(define-main-key ("Right" :mod-1) 'circulate-workspace-up)
+;;(define-main-key ("Right" :mod-1 :shift) 'circulate-workspace-up-move-group)
+;;(define-main-key ("Right" :mod-1 :shift :control) 'circulate-workspace-up-copy-group)
+;;
+;;
+;;;; Left
+;;(define-main-key ("Left" :mod-1) 'circulate-workspace-down)
+;;(define-main-key ("Left" :mod-1 :shift) 'circulate-workspace-down-move-group)
+;;(define-main-key ("Left" :mod-1 :shift :control) 'circulate-workspace-down-copy-group)
+;;
+;;
+;;
+;;(defmacro define-main-focus-workspace-by-number (key number)
+;; "Define a main key to focus a workspace by its number"
+;; `(define-main-key ,key
+;; (defun ,(create-symbol (format nil "b-main-focus-workspace-~A" number)) ()
+;; ,(format nil "Focus workspace ~A" number)
+;; (circulate-workspace-by-number ,number))))
+;;
+;;(define-main-focus-workspace-by-number (#\1 :mod-1) 1)
+;;(define-main-focus-workspace-by-number (#\2 :mod-1) 2)
+;;(define-main-focus-workspace-by-number (#\3 :mod-1) 3)
+;;(define-main-focus-workspace-by-number (#\4 :mod-1) 4)
+;;(define-main-focus-workspace-by-number (#\5 :mod-1) 5)
+;;(define-main-focus-workspace-by-number (#\6 :mod-1) 6)
+;;(define-main-focus-workspace-by-number (#\7 :mod-1) 7)
+;;(define-main-focus-workspace-by-number (#\8 :mod-1) 8)
+;;(define-main-focus-workspace-by-number (#\9 :mod-1) 9)
+;;(define-main-focus-workspace-by-number (#\0 :mod-1) 10)
+
Added: check-diff.sh
==============================================================================
--- (empty file)
+++ check-diff.sh Sat Mar 1 07:36:13 2008
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+DIR=../clfswm2
+
+for i in *
+do
+ diff $i $DIR/$i > /dev/null
+ if [ $? = 1 ]; then
+ echo $i
+ #cp $DIR/$i .
+ fi
+done
Added: clfswm-info.fas
==============================================================================
--- (empty file)
+++ clfswm-info.fas Sat Mar 1 07:36:13 2008
@@ -0,0 +1,970 @@
+(|SYSTEM|::|VERSION| '(20060802.))
+#0Y |CHARSET|::|UTF-8|
+#Y(#:|1 28 (IN-PACKAGE :CLFSWM)-1|
+ #17Y(00 00 00 00 00 00 00 00 00 01 DA 31 E6 0F 01 19 01)
+ ("CLFSWM" |COMMON-LISP|::|*PACKAGE*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|30 30 (DEFSTRUCT INFO WINDOW ...)-2|
+ #1207Y(00 00 00 00 00 00 00 00 00 01 00 2B 01 DA DB DC 38 01 72 85 2F 03 5D
+ 0B 00 00 DA 2F 04 DA DF 32 8A DA 68 01 00 E0 63 E1 E2 6B 09 E4 E5 E6
+ E7 E8 64 E9 EA EB 01 02 6F 12 70 13 EE EF F0 F1 F2 63 6E 11 19 6B 09
+ E4 F4 E6 F5 E8 64 E9 EA EB 01 02 6F 12 70 13 EE F6 F0 F7 F2 63 6E 11
+ 19 6B 09 E4 65 1E E6 65 1F E8 64 E9 EA EB 01 02 6F 12 70 13 EE 65 20
+ F0 65 21 F2 63 6E 11 19 6B 09 E4 65 22 E6 65 23 E8 64 E9 EA EB 01 02
+ 6F 12 70 13 EE 65 24 F0 65 25 F2 63 6E 11 19 6B 09 E4 65 26 E6 65 27
+ E8 64 E9 EA EB 01 02 6F 12 70 13 EE 65 28 F0 65 29 F2 63 6E 11 19 6B
+ 09 E4 65 2A E6 65 2B E8 64 E9 EA EB 01 02 6F 12 70 13 EE 65 2C F0 65
+ 2D F2 63 6E 11 19 6B 09 E4 65 2E E6 65 2F E8 64 E9 EA EB 01 02 6F 12
+ 70 13 EE 65 30 F0 65 31 F2 63 6E 11 19 6B 09 E4 65 32 E6 65 33 E8 64
+ E9 EA EB 01 02 6F 12 70 13 EE 65 34 F0 65 35 F2 63 6E 11 19 7B 08 6B
+ 36 E4 E5 E6 E7 E8 64 E9 EA EB 01 02 6F 12 70 13 EE 65 37 65 38 65 39
+ 65 3A 65 3B 6E 11 3C 6B 36 E4 F4 E6 F5 E8 64 E9 EA EB 01 02 6F 12 70
+ 13 EE 65 3D 65 38 65 3E 65 3A 65 3F 6E 11 3C 6B 36 E4 65 1E E6 65 1F
+ E8 64 E9 EA EB 01 02 6F 12 70 13 EE 65 40 65 38 65 41 65 3A 65 42 6E
+ 11 3C 6B 36 E4 65 22 E6 65 23 E8 64 E9 EA EB 01 02 6F 12 70 13 EE 65
+ 43 65 38 65 44 65 3A 65 45 6E 11 3C 6B 36 E4 65 26 E6 65 27 E8 64 E9
+ EA EB 01 02 6F 12 70 13 EE 65 46 65 38 65 47 65 3A 65 48 6E 11 3C 6B
+ 36 E4 65 2A E6 65 2B E8 64 E9 EA EB 01 02 6F 12 70 13 EE 65 49 65 38
+ 65 4A 65 3A 65 4B 6E 11 3C 6B 36 E4 65 2E E6 65 2F E8 64 E9 EA EB 01
+ 02 6F 12 70 13 EE 65 4C 65 38 65 4D 65 3A 65 4E 6E 11 3C 6B 36 E4 65
+ 32 E6 65 33 E8 64 E9 EA EB 01 02 6F 12 70 13 EE 65 4F 65 38 65 50 65
+ 3A 65 51 6E 11 3C 7B 08 2D 08 52 E0 2F 53 E0 AD 6D 54 01 32 83 16 01
+ 65 55 31 5A E2 2F 53 E2 65 56 65 57 32 89 E2 65 58 32 83 65 59 31 5A
+ E1 2F 53 E1 65 56 65 5A 32 89 E1 65 5B 32 83 65 5C 31 5A 65 5D 31 5A
+ 65 5E 2F 53 65 5E 65 56 65 5F 32 89 65 5E 65 60 32 83 65 5E 65 61 DA
+ 32 89 65 62 31 5A 65 63 31 5A 65 64 2F 53 65 64 65 56 65 65 32 89 65
+ 64 65 66 32 83 65 64 65 61 DA 32 89 65 67 31 5A 65 68 31 5A 65 69 2F
+ 53 65 69 65 56 65 6A 32 89 65 69 65 6B 32 83 65 69 65 61 DA 32 89 65
+ 6C 31 5A 65 6D 31 5A 65 6E 2F 53 65 6E 65 56 65 6F 32 89 65 6E 65 70
+ 32 83 65 6E 65 61 DA 32 89 65 71 31 5A 65 72 31 5A 65 73 2F 53 65 73
+ 65 56 65 74 32 89 65 73 65 75 32 83 65 73 65 61 DA 32 89 65 76 31 5A
+ 65 77 31 5A 65 78 2F 53 65 78 65 56 65 79 32 89 65 78 65 7A 32 83 65
+ 78 65 61 DA 32 89 65 7B 31 5A 65 7C 31 5A 65 7D 2F 53 65 7D 65 56 65
+ 7E 32 89 65 7D 65 7F 32 83 65 7D 65 61 DA 32 89 65 80 80 31 5A 65 80
+ 81 31 5A 65 80 82 2F 53 65 80 82 65 56 65 80 83 32 89 65 80 82 65 80
+ 84 32 83 65 80 82 65 61 DA 32 89 65 80 85 31 5A 65 80 86 31 5A 65 80
+ 87 2F 53 65 80 87 65 56 65 80 88 32 89 65 80 87 65 80 89 32 83 65 5E
+ 65 80 8A DA 32 89 65 80 8B 31 5A 65 80 8C 31 5A 65 80 8D 2F 53 65 80
+ 8D 65 56 65 80 8E 32 89 65 80 8D 65 80 8F 32 83 65 64 65 80 8A DA 32
+ 89 65 80 90 31 5A 65 80 91 31 5A 65 80 92 2F 53 65 80 92 65 56 65 80
+ 93 32 89 65 80 92 65 80 94 32 83 65 69 65 80 8A DA 32 89 65 80 95 31
+ 5A 65 80 96 31 5A 65 80 97 2F 53 65 80 97 65 56 65 80 98 32 89 65 80
+ 97 65 80 99 32 83 65 6E 65 80 8A DA 32 89 65 80 9A 31 5A 65 80 9B 31
+ 5A 65 80 9C 2F 53 65 80 9C 65 56 65 80 9D 32 89 65 80 9C 65 80 9E 32
+ 83 65 73 65 80 8A DA 32 89 65 80 9F 31 5A 65 80 A0 31 5A 65 80 A1 2F
+ 53 65 80 A1 65 56 65 80 A2 32 89 65 80 A1 65 80 A3 32 83 65 78 65 80
+ 8A DA 32 89 65 80 A4 31 5A 65 80 A5 31 5A 65 80 A6 2F 53 65 80 A6 65
+ 56 65 80 A7 32 89 65 80 A6 65 80 A8 32 83 65 7D 65 80 8A DA 32 89 65
+ 80 A9 31 5A 65 80 AA 31 5A 65 80 AB 2F 53 65 80 AB 65 56 65 80 AC 32
+ 89 65 80 AB 65 80 AD 32 83 65 80 82 65 80 8A DA 32 89 DA 65 80 AE 63
+ 2D 03 80 AF DA 2F 80 B0 C5 19 01)
+ (|CLFSWM|::|INFO| |COMMON-LISP|::|STRUCTURE-OBJECT| |CLOS|::|CLOSCLASS|
+ |CLOS|::|CLASS-NAMES| |SYSTEM|::|STRUCTURE-UNDEFINE-ACCESSORIES|
+ |SYSTEM|::|DEFSTRUCT-DESCRIPTION| |CLFSWM|::|MAKE-INFO|
+ |CLFSWM|::|COPY-INFO| |CLFSWM|::|INFO-P|
+ |CLOS|::|| :|NAME| |CLFSWM|::|WINDOW|
+ :|INITARGS| (:|WINDOW|) :|TYPE| :|ALLOCATION| :|INSTANCE|
+ |CLOS|::|INHERITABLE-INITER| |SYSTEM|::|MAKE-CONSTANT-INITFUNCTION|
+ |CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| |CLOS|::|INHERITABLE-DOC|
+ (|COMMON-LISP|::|NIL|) |CLOS|::|LOCATION| 1. |CLOS|::|READONLY|
+ |CLOS|::|MAKE-INSTANCE-|
+ |CLFSWM|::|GC| (:|GC|) (|COMMON-LISP|::|NIL|) 2. |CLFSWM|::|FONT| (:|FONT|)
+ (|COMMON-LISP|::|NIL|) 3. |COMMON-LISP|::|LIST| (:|LIST|)
+ (|COMMON-LISP|::|NIL|) 4. |CLFSWM|::|ILW| (:|ILW|) (|COMMON-LISP|::|NIL|)
+ 5. |CLFSWM|::|ILH| (:|ILH|) (|COMMON-LISP|::|NIL|) 6. |CLFSWM|::|X| (:|X|)
+ (|COMMON-LISP|::|NIL|) 7. |CLFSWM|::|Y| (:|Y|) (|COMMON-LISP|::|NIL|) 8.
+ |CLOS|::|| (|COMMON-LISP|::|NIL|)
+ :|READERS| (|CLFSWM|::|INFO-WINDOW|) :|WRITERS|
+ ((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|))
+ |CLOS|::|MAKE-INSTANCE-|
+ (|COMMON-LISP|::|NIL|) (|CLFSWM|::|INFO-GC|)
+ ((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)) (|COMMON-LISP|::|NIL|)
+ (|CLFSWM|::|INFO-FONT|) ((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|))
+ (|COMMON-LISP|::|NIL|) (|CLFSWM|::|INFO-LIST|)
+ ((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)) (|COMMON-LISP|::|NIL|)
+ (|CLFSWM|::|INFO-ILW|) ((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|))
+ (|COMMON-LISP|::|NIL|) (|CLFSWM|::|INFO-ILH|)
+ ((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)) (|COMMON-LISP|::|NIL|)
+ (|CLFSWM|::|INFO-X|) ((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|))
+ (|COMMON-LISP|::|NIL|) (|CLFSWM|::|INFO-Y|)
+ ((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|))
+ |CLOS|::|DEFINE-STRUCTURE-CLASS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|MAKE-INFO|
+ #87Y(00 00 00 00 00 00 00 00 86 1B 08 00 01 00 3D 08 3D 07 3D 06 3D 05
+ 3D 04 3D 03 3D 02 3D 01 69 00 01 E3 72 31 E4 AD E5 B8 32 30 E4 AD
+ E6 B7 32 30 E4 AD E7 B6 32 30 E4 AD E8 B5 32 30 E4 AD E9 B4 32 30
+ E4 AD EA B3 32 30 E4 AD EB B2 32 30 E4 AD EC B1 32 30 15 19 09)
+ (|COMMON-LISP|::|NIL| :|WINDOW| :|GC| :|FONT| :|LIST| :|ILW| :|ILH| :|X|
+ :|Y| 9. |CLFSWM|::|INFO| 1. 2. 3. 4. 5. 6. 7. 8.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&KEY| (#:|WINDOW| |COMMON-LISP|::|NIL|)
+ (#:|GC| |COMMON-LISP|::|NIL|) (#:|FONT| |COMMON-LISP|::|NIL|)
+ (#:|LIST| |COMMON-LISP|::|NIL|) (#:|ILW| |COMMON-LISP|::|NIL|)
+ (#:|ILH| |COMMON-LISP|::|NIL|) (#:|X| |COMMON-LISP|::|NIL|)
+ (#:|Y| |COMMON-LISP|::|NIL|))
+ |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-P|) |SYSTEM|::|INLINE-EXPANSION|
+ ((|SYSTEM|::|OBJECT|)
+ (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-P|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-P|
+ (|SYSTEM|::|%STRUCTURE-TYPE-P| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT|)))
+ #Y(|CLFSWM|::|INFO-P| #16Y(00 00 00 00 01 00 00 00 00 02 DA AE 32 33 19 02)
+ (|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|COPY-INFO|)
+ (#1=(|COMMON-LISP|::|STRUCTURE|)
+ (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|COPY-INFO|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|COPY-INFO|
+ (|COMMON-LISP|::|COPY-STRUCTURE| |COMMON-LISP|::|STRUCTURE|)))
+ #Y(|CLFSWM|::|COPY-INFO| #15Y(00 00 00 00 01 00 00 00 06 02 AD 32 32 19 02)
+ () (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|STRUCTURE|) |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-WINDOW| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-WINDOW|) |CLFSWM|::|INFO-WINDOW|
+ (#2=(|SYSTEM|::|OBJECT|)
+ (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-WINDOW|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-WINDOW|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 1.))))
+ #Y(|CLFSWM|::|INFO-WINDOW|
+ #17Y(00 00 00 00 01 00 00 00 00 02 DA AE DB 32 2F 19 02)
+ (|CLFSWM|::|INFO| 1.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ |SYSTEM|::|DEFSTRUCT-READER|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-GC| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-GC|) |CLFSWM|::|INFO-GC|
+ (#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-GC|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-GC|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 2.))))
+ #Y(|CLFSWM|::|INFO-GC|
+ #17Y(00 00 00 00 01 00 00 00 00 02 DA AE DB 32 2F 19 02)
+ (|CLFSWM|::|INFO| 2.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-FONT| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-FONT|) |CLFSWM|::|INFO-FONT|
+ (#2#
+ (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-FONT|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-FONT|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 3.))))
+ #Y(|CLFSWM|::|INFO-FONT|
+ #17Y(00 00 00 00 01 00 00 00 00 02 DA AE DB 32 2F 19 02)
+ (|CLFSWM|::|INFO| 3.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-LIST| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-LIST|) |CLFSWM|::|INFO-LIST|
+ (#2#
+ (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-LIST|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-LIST|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 4.))))
+ #Y(|CLFSWM|::|INFO-LIST|
+ #17Y(00 00 00 00 01 00 00 00 00 02 DA AE DB 32 2F 19 02)
+ (|CLFSWM|::|INFO| 4.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-ILW| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-ILW|) |CLFSWM|::|INFO-ILW|
+ (#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-ILW|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-ILW|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 5.))))
+ #Y(|CLFSWM|::|INFO-ILW|
+ #17Y(00 00 00 00 01 00 00 00 00 02 DA AE DB 32 2F 19 02)
+ (|CLFSWM|::|INFO| 5.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-ILH| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-ILH|) |CLFSWM|::|INFO-ILH|
+ (#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-ILH|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-ILH|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 6.))))
+ #Y(|CLFSWM|::|INFO-ILH|
+ #17Y(00 00 00 00 01 00 00 00 00 02 DA AE DB 32 2F 19 02)
+ (|CLFSWM|::|INFO| 6.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-X| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-X|) |CLFSWM|::|INFO-X|
+ (#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-X|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-X|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 7.))))
+ #Y(|CLFSWM|::|INFO-X|
+ #17Y(00 00 00 00 01 00 00 00 00 02 DA AE DB 32 2F 19 02)
+ (|CLFSWM|::|INFO| 7.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-Y| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-Y|) |CLFSWM|::|INFO-Y|
+ (#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-Y|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-Y|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 8.))))
+ #Y(|CLFSWM|::|INFO-Y|
+ #17Y(00 00 00 00 01 00 00 00 00 02 DA AE DB 32 2F 19 02)
+ (|CLFSWM|::|INFO| 8.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|))
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|INFO-WINDOW|)
+ (#3=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|)
+ (|COMMON-LISP|::|DECLARE|
+ (|SYSTEM|::|IN-DEFUN|
+ #4=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-WINDOW|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 1.
+ |SYSTEM|::|VALUE|)))
+ #Y(#4# #18Y(00 00 00 00 02 00 00 00 00 03 DA AE DB B1 32 30 19 03)
+ (|CLFSWM|::|INFO| 1.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|DEFSTRUCT-WRITER|
+ (|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|))
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|INFO-GC|)
+ (#3#
+ (|COMMON-LISP|::|DECLARE|
+ (|SYSTEM|::|IN-DEFUN| #5=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-GC|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 2.
+ |SYSTEM|::|VALUE|)))
+ #Y(#5# #18Y(00 00 00 00 02 00 00 00 00 03 DA AE DB B1 32 30 19 03)
+ (|CLFSWM|::|INFO| 2.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|))
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|INFO-FONT|)
+ (#3#
+ (|COMMON-LISP|::|DECLARE|
+ (|SYSTEM|::|IN-DEFUN| #6=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-FONT|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 3.
+ |SYSTEM|::|VALUE|)))
+ #Y(#6# #18Y(00 00 00 00 02 00 00 00 00 03 DA AE DB B1 32 30 19 03)
+ (|CLFSWM|::|INFO| 3.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|))
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|INFO-LIST|)
+ (#3#
+ (|COMMON-LISP|::|DECLARE|
+ (|SYSTEM|::|IN-DEFUN| #7=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-LIST|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 4.
+ |SYSTEM|::|VALUE|)))
+ #Y(#7# #18Y(00 00 00 00 02 00 00 00 00 03 DA AE DB B1 32 30 19 03)
+ (|CLFSWM|::|INFO| 4.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|))
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|INFO-ILW|)
+ (#3#
+ (|COMMON-LISP|::|DECLARE|
+ (|SYSTEM|::|IN-DEFUN| #8=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-ILW|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 5.
+ |SYSTEM|::|VALUE|)))
+ #Y(#8# #18Y(00 00 00 00 02 00 00 00 00 03 DA AE DB B1 32 30 19 03)
+ (|CLFSWM|::|INFO| 5.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|))
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|INFO-ILH|)
+ (#3#
+ (|COMMON-LISP|::|DECLARE|
+ (|SYSTEM|::|IN-DEFUN| #9=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-ILH|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 6.
+ |SYSTEM|::|VALUE|)))
+ #Y(#9# #18Y(00 00 00 00 02 00 00 00 00 03 DA AE DB B1 32 30 19 03)
+ (|CLFSWM|::|INFO| 6.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|))
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|INFO-X|)
+ (#3#
+ (|COMMON-LISP|::|DECLARE|
+ (|SYSTEM|::|IN-DEFUN| #10=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-X|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 7.
+ |SYSTEM|::|VALUE|)))
+ #Y(#10# #18Y(00 00 00 00 02 00 00 00 00 03 DA AE DB B1 32 30 19 03)
+ (|CLFSWM|::|INFO| 7.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|))
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|INFO-Y|)
+ (#3#
+ (|COMMON-LISP|::|DECLARE|
+ (|SYSTEM|::|IN-DEFUN| #11=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-Y|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 8.
+ |SYSTEM|::|VALUE|)))
+ #Y(#11# #18Y(00 00 00 00 02 00 00 00 00 03 DA AE DB B1 32 30 19 03)
+ (|CLFSWM|::|INFO| 8.)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|TYPE| |SYSTEM|::|%SET-DOCUMENTATION|
+ |CLOS|::|DEFSTRUCT-REMOVE-PRINT-OBJECT-METHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|33 36 (DEFUN LEAVE-INFO-MODE (INFO) ...)-3|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|LEAVE-INFO-MODE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|LEAVE-INFO-MODE| #13Y(00 00 00 00 01 00 00 00 06 02 DA 00 52)
+ (|CLFSWM|::|EXIT-INFO-LOOP|)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Leave the info mode"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|38 41 (DEFUN MOUSE-LEAVE-INFO-MODE (ROOT-X ROOT-Y INFO) ...)-4|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|MOUSE-LEAVE-INFO-MODE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|MOUSE-LEAVE-INFO-MODE|
+ #13Y(00 00 00 00 03 00 00 00 06 04 DA 00 52)
+ (|CLFSWM|::|EXIT-INFO-LOOP|)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)
+ "Leave the info mode"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|45 53 (DEFUN DRAW-INFO-WINDOW (INFO) ...)-5|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|DRAW-INFO-WINDOW| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DRAW-INFO-WINDOW|
+ #118Y(00 00 00 00 01 00 00 00 06 02 DA AE DB 72 2F 2F 02 DA AE DD 72 2F
+ 6B 04 6F 05 30 06 DA AE E1 72 2F 01 02 CD F8 1B 80 46 87 02 01 DA
+ B1 DB 72 2F DA B2 DD 72 2F DA B3 E3 72 2F DA B4 E4 72 2F 73 01 36
+ DA B4 E5 72 2F B0 73 02 37 DA B5 E5 72 2F 73 02 35 DA B5 E6 72 2F
+ 73 01 36 38 02 72 76 B2 AD 31 86 AC 81 77 00 2D 05 0D 83 02 85 00
+ AE 8D 94 FF B5 00 19 05)
+ (|CLFSWM|::|INFO| 1. |XLIB|::|CLEAR-AREA| 2.
+ |CLFSWM|::|*INFO-FOREGROUND*| |CLFSWM|::|GET-COLOR|
+ |XLIB|::|SET-GCONTEXT-FOREGROUND| 4. 0. 5. 7. 6. 8.
+ |XLIB|::|DRAW-IMAGE-GLYPHS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|56 78 (DEFUN DRAW-INFO-WINDOW-PARTIAL (INFO) ...)-6|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|DRAW-INFO-WINDOW-PARTIAL| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DRAW-INFO-WINDOW-PARTIAL|
+ #273Y(00 00 00 00 01 00 00 00 06 02 DA AE DB 72 2F DA AF DC 72 2F 6B 03
+ 6F 04 30 05 DA AF E0 72 2F DA B0 DC 72 2F E1 E1 DA B3 E0 72 2F 6F
+ 08 DA B4 DB 72 2F 73 00 36 DA B5 E3 72 2F 6F 0A 73 02 35 E1 73 01
+ 33 64 2D 07 0B DA AF E6 72 2F 01 02 CC F8 1B 80 8C 87 02 01 DA B2
+ E7 72 2F AD 73 02 37 DA B3 E7 72 2F 73 02 35 DA B3 DB 72 2F 82 01
+ 36 03 DA B2 DC 72 2F 6B 03 6F 04 30 05 DA B2 E0 72 2F DA B3 DC 72
+ 2F E1 B2 DA B6 E7 72 2F 73 00 36 DA B7 E3 72 2F 6F 0E 73 03 35 DA
+ B6 E0 72 2F 6F 08 DA B7 E7 72 2F 64 2D 07 0B DA B2 DC 72 2F 6B 0F
+ 6F 04 30 05 DA B2 E0 72 2F DA B3 DC 72 2F DA B4 EA 72 2F DA B5 EB
+ 72 2F 73 01 36 B2 38 02 72 76 B2 AD 31 86 AC 81 77 00 2D 05 12 83
+ 02 85 00 AE 8D 94 FF 6F 16 03 DA AF DC 72 2F 6B 03 6F 04 30 05 DA
+ AF E0 72 2F DA B0 DC 72 2F E1 AF DA B3 E0 72 2F 6F 08 DA B4 E0 72
+ 2F 6F 13 64 2D 07 0B 19 03)
+ (|CLFSWM|::|INFO| 8. 2. |CLFSWM|::|*INFO-BACKGROUND*|
+ |CLFSWM|::|GET-COLOR| |XLIB|::|SET-GCONTEXT-FOREGROUND| 1. 0.
+ |XLIB|::|DRAWABLE-WIDTH| 3. |XLIB|::|MAX-CHAR-ASCENT|
+ |XLIB|::|DRAW-RECTANGLE| 4. 6. |XLIB|::|MAX-CHAR-DESCENT|
+ |CLFSWM|::|*INFO-FOREGROUND*| 5. 7. |XLIB|::|DRAW-IMAGE-GLYPHS|
+ |XLIB|::|DRAWABLE-HEIGHT|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|81 85 (DEFINE-INFO-KEY (#\\q) 'LEAVE-INFO-MODE)-7|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\q 0. |CLFSWM|::|LEAVE-INFO-MODE| |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|86 86 (DEFINE-INFO-KEY ("Return") 'LEAVE-INFO-MODE)-8|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Return" 0. |CLFSWM|::|LEAVE-INFO-MODE| |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|87 87 (DEFINE-INFO-KEY ("Escape") 'LEAVE-INFO-MODE)-9|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ ("Escape" 0. |CLFSWM|::|LEAVE-INFO-MODE| |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|88 88 (DEFINE-INFO-KEY (#\\ ) 'LEAVE-INFO-MODE)-10|
+ #21Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 2D 03 03 19 01)
+ (#\ 0. |CLFSWM|::|LEAVE-INFO-MODE| |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|90 94 (DEFINE-INFO-KEY ("twosuperior") (DEFUN INFO-BANISH-POINTER # ...))-11|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("twosuperior" 0. |CLFSWM|::|INFO-BANISH-POINTER|
+ |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-BANISH-POINTER|
+ #14Y(00 00 00 00 01 00 00 00 06 02 2E 00 19 02)
+ (|CLFSWM|::|BANISH-POINTER|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|)
+ "Move the pointer to the lower right corner of the screen")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|96 100 (DEFINE-INFO-KEY ("Down") (DEFUN INFO-NEXT-LINE # ...))-12|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("Down" 0. |CLFSWM|::|INFO-NEXT-LINE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-NEXT-LINE|
+ #37Y(00 00 00 00 01 00 00 00 06 02 DA AE DB 72 2F DA AF DC 72 2F AD 73
+ 02 35 DA B0 DC AF 32 30 16 02 AD 2F 03 19 02)
+ (|CLFSWM|::|INFO| 6. 8. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Move one line down")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|102 106 (DEFINE-INFO-KEY ("Up") (DEFUN INFO-PREVIOUS-LINE # ...))-13|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("Up" 0. |CLFSWM|::|INFO-PREVIOUS-LINE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-PREVIOUS-LINE|
+ #37Y(00 00 00 00 01 00 00 00 06 02 DA AE DB 72 2F DA AF DC 72 2F AD 73
+ 01 36 DA B0 DC AF 32 30 16 02 AD 2F 03 19 02)
+ (|CLFSWM|::|INFO| 6. 8. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Move one line up")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|108 112 (DEFINE-INFO-KEY ("Left") (DEFUN INFO-PREVIOUS-CHAR # ...))-14|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("Left" 0. |CLFSWM|::|INFO-PREVIOUS-CHAR| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-PREVIOUS-CHAR|
+ #37Y(00 00 00 00 01 00 00 00 06 02 DA AE DB 72 2F DA AF DC 72 2F AD 73
+ 01 36 DA B0 DC AF 32 30 16 02 AD 2F 03 19 02)
+ (|CLFSWM|::|INFO| 5. 7. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Move one char left")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|114 118 (DEFINE-INFO-KEY ("Right") (DEFUN INFO-NEXT-CHAR # ...))-15|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("Right" 0. |CLFSWM|::|INFO-NEXT-CHAR| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-NEXT-CHAR|
+ #37Y(00 00 00 00 01 00 00 00 06 02 DA AE DB 72 2F DA AF DC 72 2F AD 73
+ 02 35 DA B0 DC AF 32 30 16 02 AD 2F 03 19 02)
+ (|CLFSWM|::|INFO| 5. 7. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Move one char right")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|121 126 (DEFINE-INFO-KEY ("Home") (DEFUN INFO-FIRST-LINE # ...))-16|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("Home" 0. |CLFSWM|::|INFO-FIRST-LINE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-FIRST-LINE|
+ #27Y(00 00 00 00 01 00 00 00 06 02 DA AE DB DC 32 30 DA AE DD DC 32 30
+ AD 2F 04 19 02)
+ (|CLFSWM|::|INFO| 7. 0. 8. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Move to first line")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|128 133 (DEFINE-INFO-KEY ("End") (DEFUN INFO-END-LINE # ...))-17|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("End" 0. |CLFSWM|::|INFO-END-LINE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-END-LINE|
+ #54Y(00 00 00 00 01 00 00 00 06 02 DA AE DB DC 32 30 DA AE DD 72 2F 72
+ 48 DA AF DE 72 2F 73 02 37 DA AF DF 72 2F 6F 06 73 01 36 DA AF E1
+ AF 32 30 16 01 AD 2F 08 19 02)
+ (|CLFSWM|::|INFO| 7. 0. 4. 6. 1. |XLIB|::|DRAWABLE-HEIGHT| 8.
+ |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Move to last line")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|136 140 (DEFINE-INFO-KEY ("Page_Down") (DEFUN INFO-NEXT-TEN-LINES # ...))-18|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("Page_Down" 0. |CLFSWM|::|INFO-NEXT-TEN-LINES|
+ |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-NEXT-TEN-LINES|
+ #41Y(00 00 00 00 01 00 00 00 06 02 DA DB AF DC 72 2F 73 02 37 DB AF DD
+ 72 2F AD 73 02 35 DB B0 DD AF 32 30 16 02 AD 2F 04 19 02)
+ (10. |CLFSWM|::|INFO| 6. 8. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Move ten lines down")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|142 146 (DEFINE-INFO-KEY ("Page_Up") (DEFUN INFO-PREVIOUS-TEN-LINES # ...))-19|
+ #28Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 2F 03 DC DE 32 83 DC 63 2D
+ 03 05 19 01)
+ ("Page_Up" 0. |CLFSWM|::|INFO-PREVIOUS-TEN-LINES|
+ |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-PREVIOUS-TEN-LINES|
+ #41Y(00 00 00 00 01 00 00 00 06 02 DA DB AF DC 72 2F 73 02 37 DB AF DD
+ 72 2F AD 73 01 36 DB B0 DD AF 32 30 16 02 AD 2F 04 19 02)
+ (10. |CLFSWM|::|INFO| 6. 8. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO|) "Move ten lines up")
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|151 151 (DEFPARAMETER *INFO-START-GRAB-X* NIL)-20|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 31 5A DB 63 31 52 C6 19 01)
+ ((|COMMON-LISP|::|SPECIAL| |CLFSWM|::|*INFO-START-GRAB-X*|)
+ |CLFSWM|::|*INFO-START-GRAB-X*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|152 152 (DEFPARAMETER *INFO-START-GRAB-Y* NIL)-21|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 31 5A DB 63 31 52 C6 19 01)
+ ((|COMMON-LISP|::|SPECIAL| |CLFSWM|::|*INFO-START-GRAB-Y*|)
+ |CLFSWM|::|*INFO-START-GRAB-Y*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|155 159 (DEFUN INFO-BEGIN-GRAB (ROOT-X ROOT-Y INFO) ...)-22|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-BEGIN-GRAB| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-BEGIN-GRAB|
+ #37Y(00 00 00 00 03 00 00 00 06 04 AF DA AF DB 72 2F 33 02 35 0F 02 AE
+ DA AF DD 72 2F 33 02 35 0F 04 AD 2F 05 19 04)
+ (|CLFSWM|::|INFO| 7. |CLFSWM|::|*INFO-START-GRAB-X*| 8.
+ |CLFSWM|::|*INFO-START-GRAB-Y*| |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)
+ "Begin grab text"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|161 167 (DEFUN INFO-END-GRAB (ROOT-X ROOT-Y INFO) ...)-23|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-END-GRAB| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-END-GRAB|
+ #48Y(00 00 00 00 03 00 00 00 06 04 6B 00 B0 73 01 36 DB AF DC AF 32 30
+ 16 01 6B 03 AF 73 01 36 DB AF DE AF 32 30 16 01 00 0F 00 0F 03 AD
+ 2F 05 19 04)
+ (|CLFSWM|::|*INFO-START-GRAB-X*| |CLFSWM|::|INFO| 7.
+ |CLFSWM|::|*INFO-START-GRAB-Y*| 8. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|) "End grab"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|169 173 (DEFUN INFO-MOUSE-NEXT-LINE (ROOT-X ROOT-Y INFO) ...)-24|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-MOUSE-NEXT-LINE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-MOUSE-NEXT-LINE|
+ #37Y(00 00 00 00 03 00 00 00 06 04 DA AE DB 72 2F DA AF DC 72 2F AD 73
+ 02 35 DA B0 DC AF 32 30 16 02 AD 2F 03 19 04)
+ (|CLFSWM|::|INFO| 6. 8. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)
+ "Move one line down"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|175 179 (DEFUN INFO-MOUSE-PREVIOUS-LINE (ROOT-X ROOT-Y INFO) ...)-25|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-MOUSE-PREVIOUS-LINE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-MOUSE-PREVIOUS-LINE|
+ #37Y(00 00 00 00 03 00 00 00 06 04 DA AE DB 72 2F DA AF DC 72 2F AD 73
+ 01 36 DA B0 DC AF 32 30 16 02 AD 2F 03 19 04)
+ (|CLFSWM|::|INFO| 6. 8. |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)
+ "Move one line up"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|182 187 (DEFUN INFO-MOUSE-MOTION (ROOT-X ROOT-Y INFO) ...)-26|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-MOUSE-MOTION| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-MOUSE-MOTION|
+ #53Y(00 00 00 00 03 00 00 00 06 04 0E 00 1F 25 0E 01 1F 21 6B 00 B0 73
+ 01 36 DC AF DD AF 32 30 16 01 6B 01 AF 73 01 36 DC AF DE AF 32 30
+ 16 01 AD 2F 05 19 04 19 04)
+ (|CLFSWM|::|*INFO-START-GRAB-X*| |CLFSWM|::|*INFO-START-GRAB-Y*|
+ |CLFSWM|::|INFO| 7. 8. |CLFSWM|::|DRAW-INFO-WINDOW-PARTIAL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|) "Grab text"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|193 193 (DEFINE-INFO-MOUSE-ACTION (1) 'INFO-BEGIN-GRAB ...)-27|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 63 DD 2D 04 04 19 01)
+ (1. 0. |CLFSWM|::|INFO-BEGIN-GRAB| |CLFSWM|::|INFO-END-GRAB|
+ |CLFSWM|::|DEFINE-INFO-MOUSE-ACTION-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|194 194 (DEFINE-INFO-MOUSE-ACTION (2) 'MOUSE-LEAVE-INFO-MODE)-28|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 01 02 2D 04 03 19 01)
+ (2. 0. |CLFSWM|::|MOUSE-LEAVE-INFO-MODE|
+ |CLFSWM|::|DEFINE-INFO-MOUSE-ACTION-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|195 195 (DEFINE-INFO-MOUSE-ACTION (4) 'INFO-MOUSE-PREVIOUS-LINE)-29|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 01 02 2D 04 03 19 01)
+ (4. 0. |CLFSWM|::|INFO-MOUSE-PREVIOUS-LINE|
+ |CLFSWM|::|DEFINE-INFO-MOUSE-ACTION-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|196 196 (DEFINE-INFO-MOUSE-ACTION (5) 'INFO-MOUSE-NEXT-LINE)-30|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 01 02 2D 04 03 19 01)
+ (5. 0. |CLFSWM|::|INFO-MOUSE-NEXT-LINE|
+ |CLFSWM|::|DEFINE-INFO-MOUSE-ACTION-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|197 197 (DEFINE-INFO-MOUSE-ACTION ('MOTION) 'INFO-MOUSE-MOTION ...)-31|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA DB 7B 02 DC 01 02 2D 04 03 19 01)
+ (|CLFSWM|::|MOTION| 0. |CLFSWM|::|INFO-MOUSE-MOTION|
+ |CLFSWM|::|DEFINE-INFO-MOUSE-ACTION-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|200 287 (DEFUN INFO-MODE (INFO-LIST &KEY # ...) ...)-32|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-MODE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-MODE|
+ #406Y(04 00 02 00 01 00 00 00 86 1C 04 00 00 00 3B 04 02 C9 FC 3B 03 02
+ C9 FB 3D 02 3B 01 08 7D 01 A2 1F 81 71 1B 04 A2 1F 81 6B 00 2B 01
+ 2E 05 14 2E 06 14 6B 07 6B 08 70 09 AC 6F 0A E5 AE 6F 0C AF 6F 0D
+ 73 03 35 E8 6B 0F DA B9 DB BA DC 92 0F 31 EA BF 01 02 1B 0C 87 02
+ 01 14 72 48 AD 30 11 F8 83 02 AE 8D 94 70 15 16 01 F8 73 02 35 B5
+ 73 02 37 6B 12 ED AD EA 81 2F 00 EA C0 73 02 36 33 01 34 14 DD 92
+ 10 1F C0 72 48 B6 73 02 37 EE B7 73 02 37 73 02 35 6B 12 ED AD EF
+ 81 2F 00 EA C1 73 02 36 33 01 34 14 F0 6B 17 6F 18 F3 6B 12 ED AD
+ F4 81 2F 00 F5 E5 F6 6B 1D 6F 18 65 1E 65 1F 6E 14 20 65 21 AD 65
+ 22 6B 23 6F 18 F0 6B 17 6F 18 65 24 B6 65 25 65 26 6E 0A 27 65 28
+ AE 65 29 AF DA DE DB DE 65 2A C2 65 24 BB 65 2B BC 65 2C BD 2D 10
+ 2D 0B 07 00 A4 2B 06 AC 2C 2E 01 0B 00 00 AC 2C 2F 01 0B 00 01 AC
+ 2C 30 01 0B 00 02 AC 2C 31 01 0B 00 03 AC 2C 32 01 0B 00 04 AC 2C
+ 33 01 0B 00 05 AC 6D 34 01 AF 2F 35 68 09 00 2F 36 6B 0F 65 37 65
+ 38 2D 03 39 92 07 04 6B 0F 2F 3A 53 2A 03 3B 50 0E 6B 07 2F 3C 6B
+ 07 65 3D B3 2D 03 3E 1B 72 54 05 00 00 08 1D 17 6B 0F 65 3F 65 40
+ 2D 03 39 05 00 00 07 1D 10 1B 10 05 00 00 08 1C 69 2E 41 05 00 00
+ 07 1C 02 2E 42 67 00 00 02 2F 43 67 00 00 03 2F 44 67 00 00 06 2F
+ 45 2E 46 2E 47 55 19 10 19 06)
+ (:|X| :|Y| :|WIDTH| :|HEIGHT| 0. |CLFSWM|::|XGRAB-POINTER-P|
+ |CLFSWM|::|XGRAB-KEYBOARD-P| |CLFSWM|::|*DISPLAY*|
+ |CLFSWM|::|*INFO-FONT-STRING*| |XLIB|::|OPEN-FONT|
+ |XLIB|::|MAX-CHAR-WIDTH| 1. |XLIB|::|MAX-CHAR-ASCENT|
+ |XLIB|::|MAX-CHAR-DESCENT| :|PARENT| |CLFSWM|::|*ROOT*| 2.
+ |SYSTEM|::|MAX-IF| |CLFSWM|::|*SCREEN*| |XLIB|::|SCREEN| #10r1/2 3.
+ :|BACKGROUND| |CLFSWM|::|*INFO-BACKGROUND*| |CLFSWM|::|GET-COLOR|
+ :|COLORMAP| 9. :|BORDER-WIDTH| :|BORDER| |CLFSWM|::|*INFO-BORDER*|
+ :|EVENT-MASK| (:|EXPOSURE|) |XLIB|::|CREATE-WINDOW| :|DRAWABLE|
+ :|FOREGROUND| |CLFSWM|::|*INFO-FOREGROUND*| :|FONT| :|LINE-STYLE|
+ :|SOLID| |XLIB|::|CREATE-GCONTEXT| :|WINDOW| :|GC| :|LIST| :|ILW|
+ :|ILH| |CLFSWM|::|MAKE-INFO|
+ #Y(|CLFSWM|::|INFO-MODE-HANDLE-KEY|
+ #30Y(00 00 00 00 00 00 00 00 C7 00 03 00 01 00 3D 02 3D 01 6B 04 AF
+ AF 69 01 01 2D 04 05 19 05)
+ (|COMMON-LISP|::|NIL| :|ROOT| :|CODE| :|STATE|
+ |CLFSWM|::|*INFO-KEYS*| |CLFSWM|::|FUNCALL-KEY-FROM-CODE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|EVENT-SLOTS|
+ |COMMON-LISP|::|&KEY| |CLFSWM|::|ROOT| |CLFSWM|::|CODE|
+ |CLFSWM|::|STATE| |COMMON-LISP|::|&ALLOW-OTHER-KEYS|)
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|INFO-MODE-HANDLE-MOTION-NOTIFY|
+ #137Y(04 00 01 00 00 00 00 00 C7 00 02 00 01 00 3D 02 3D 01 6B 03 AC
+ 2F 04 42 04 AF A0 13 1B 2A 00 16 02 1B 80 4D 00 19 04 16 01 7D
+ 02 3E 54 67 03 00 04 67 00 00 02 63 67 03 00 01 67 03 00 00 67
+ 00 00 00 2D 06 0C 55 16 03 67 00 00 04 DF 64 67 00 00 01 2D 04
+ 06 42 02 93 01 44 64 53 50 6B 07 E2 B2 E3 32 2F 5F 14 AC 25 0A
+ FF BC 02 16 01 56 16 03 11 18 01 00 16 05 1C FF AA 6B 0D E8 DF
+ B1 B1 E9 69 01 01 2D 07 10 19 04)
+ (|COMMON-LISP|::|NIL| :|ROOT-X| :|ROOT-Y| |CLFSWM|::|*DISPLAY*|
+ |XLIB|::|EVENT-LOOP-SETUP| 0. |XLIB|::|EVENT-LOOP-STEP-BEFORE|
+ |XLIB|::|*EVENT-KEY-VECTOR*| |XLIB|::|REPLY-BUFFER| 1.
+ :|MOTION-NOTIFY| |XLIB|::|DISCARD-CURRENT-EVENT|
+ |XLIB|::|EVENT-LOOP-STEP-AFTER| |CLFSWM|::|*INFO-MOUSE-ACTION*|
+ |CLFSWM|::|MOTION| #.#'|COMMON-LISP|::|FIRST|
+ |CLFSWM|::|FUNCALL-BUTTON-FROM-CODE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|EVENT-SLOTS|
+ |COMMON-LISP|::|&KEY| |CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y|
+ |COMMON-LISP|::|&ALLOW-OTHER-KEYS|)
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|INFO-MODE-HANDLE-BUTTON-PRESS|
+ #37Y(00 00 00 00 00 00 00 00 C7 00 04 00 01 00 3D 04 3D 03 3D 02 3D
+ 01 6B 05 AF AF B3 B3 E0 69 01 01 2D 07 07 19 06)
+ (|COMMON-LISP|::|NIL| :|ROOT-X| :|ROOT-Y| :|CODE| :|STATE|
+ |CLFSWM|::|*INFO-MOUSE-ACTION*| #.#'|COMMON-LISP|::|FIRST|
+ |CLFSWM|::|FUNCALL-BUTTON-FROM-CODE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|EVENT-SLOTS|
+ |COMMON-LISP|::|&KEY| |CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y|
+ |CLFSWM|::|CODE| |CLFSWM|::|STATE|
+ |COMMON-LISP|::|&ALLOW-OTHER-KEYS|)
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|INFO-MODE-HANDLE-BUTTON-RELEASE|
+ #37Y(00 00 00 00 00 00 00 00 C7 00 04 00 01 00 3D 04 3D 03 3D 02 3D
+ 01 6B 05 AF AF B3 B3 E0 69 01 01 2D 07 07 19 06)
+ (|COMMON-LISP|::|NIL| :|ROOT-X| :|ROOT-Y| :|CODE| :|STATE|
+ |CLFSWM|::|*INFO-MOUSE-ACTION*| #.#'|COMMON-LISP|::|THIRD|
+ |CLFSWM|::|FUNCALL-BUTTON-FROM-CODE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|EVENT-SLOTS|
+ |COMMON-LISP|::|&KEY| |CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y|
+ |CLFSWM|::|CODE| |CLFSWM|::|STATE|
+ |COMMON-LISP|::|&ALLOW-OTHER-KEYS|)
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|INFO-MODE-INFO-HANDLE-UNMAP-NOTIFY|
+ #22Y(00 00 00 00 00 00 00 00 07 16 99 01 9F 37 00 69 01 01 2F 02 19
+ 02)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|HANDLE-UNMAP-NOTIFY|
+ |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|EVENT-SLOTS|)
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|INFO-MODE-INFO-HANDLE-DESTROY-NOTIFY|
+ #22Y(00 00 00 00 00 00 00 00 07 16 99 01 9F 37 00 69 01 01 2F 02 19
+ 02)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|HANDLE-DESTROY-NOTIFY|
+ |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|EVENT-SLOTS|)
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|INFO-MODE-HANDLE-EVENTS|
+ #66Y(00 00 00 00 00 00 00 00 C7 00 02 00 01 00 3D 01 9E 26 03 2B 07
+ 00 01 1B 0D 07 00 03 1B 08 07 00 04 1B 03 07 00 02 14 A1 37 00
+ 1B 13 AF 07 00 05 34 1B 0C AF 07 00 06 34 1B 05 69 01 01 2F 04
+ 02 19 04)
+ (|COMMON-LISP|::|NIL| :|DISPLAY| :|EVENT-KEY|
+ #S(|COMMON-LISP|::|HASH-TABLE| :|TEST| |EXT|::|STABLEHASH-EQ|
+ (:|EXPOSURE| . 39.) (:|ENTER-NOTIFY| . 44.)
+ (:|CREATE-NOTIFY| . 44.) (:|PROPERTY-NOTIFY| . 44.)
+ (:|MAPPING-NOTIFY| . 44.) (:|DESTROY-NOTIFY| . 32.)
+ (:|UNMAP-NOTIFY| . 25.) (:|MAP-REQUEST| . 44.)
+ (:|MOTION-NOTIFY| . 16.) (:|BUTTON-RELEASE| . 11.)
+ (:|BUTTON-PRESS| . 6.) (:|KEY-PRESS| . 1.))
+ |CLFSWM|::|DRAW-INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|EVENT-SLOTS|
+ |COMMON-LISP|::|&KEY| |CLFSWM|::|DISPLAY| |CLFSWM|::|EVENT-KEY|
+ |COMMON-LISP|::|&ALLOW-OTHER-KEYS|)
+ |COMMON-LISP|::|NIL|)
+ |XLIB|::|MAP-WINDOW| |CLFSWM|::|DRAW-INFO-WINDOW| 68. 69.
+ |CLFSWM|::|XGRAB-POINTER| |CLFSWM|::|XGRAB-KEYBOARD|
+ |CLFSWM|::|EXIT-INFO-LOOP| |XLIB|::|DISPLAY-FINISH-OUTPUT| :|HANDLER|
+ |XLIB|::|PROCESS-EVENT| 66. 67. |CLFSWM|::|XUNGRAB-POINTER|
+ |CLFSWM|::|XUNGRAB-KEYBOARD| |XLIB|::|FREE-GCONTEXT|
+ |XLIB|::|DESTROY-WINDOW| |XLIB|::|CLOSE-FONT|
+ |CLFSWM|::|SHOW-ALL-CHILDS| |CLFSWM|::|WAIT-NO-KEY-OR-BUTTON-PRESS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|INFO-LIST| |COMMON-LISP|::|&KEY| (|CLFSWM|::|X| 0.)
+ (|CLFSWM|::|Y| 0.) (|CLFSWM|::|WIDTH| |COMMON-LISP|::|NIL|)
+ (|CLFSWM|::|HEIGHT| |COMMON-LISP|::|NIL|))
+ "Open the info mode. Info-list is a list of info: One string per line"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|294 314 (DEFUN INFO-MODE-MENU (ITEM-LIST &KEY # ...) ...)-33|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-MODE-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-MODE-MENU|
+ #178Y(00 00 00 00 01 00 00 00 86 1C 04 00 00 00 3B 04 02 C9 FC 3B 03 02
+ C9 FB 3D 02 3D 01 00 2B 01 63 00 0B 01 00 B3 63 1B 80 4C AC E1 30
+ 08 1B 80 43 87 01 00 14 DF DF 63 2D 04 06 1D 6D A0 2B 01 94 01 9F
+ 5C 5B 0B 01 00 38 02 72 76 68 02 00 E3 70 0A AE AE 31 86 E5 AE 38
+ 02 31 8B AC AE 31 86 16 01 AC 81 77 00 84 04 AC DE 7B 02 AE 6D 0C
+ 01 30 0D 16 02 83 01 AD 8D 94 FF B6 16 02 AC 72 4A DA B4 DB B5 DC
+ B6 DD B7 2D 09 0E B3 63 1B 0E 87 01 00 78 AC DE 7B 02 2F 0F 16 01
+ 83 01 AD 8D 94 6E 16 02 68 01 00 31 50 1F 07 68 01 00 36 00 19 08
+ 19 08)
+ (:|X| :|Y| :|WIDTH| :|HEIGHT| 0. 2. |SYSTEM|::|LIST-LENGTH-IN-BOUNDS-P|
+ (2. . 2.) |SYSTEM|::|DESTRUCTURING-ERROR| |COMMON-LISP|::|FUNCTION|
+ |CLOS|::|DOCUMENTATION| ": "
+ #Y(|CLFSWM|::|INFO-MODE-MENU-1|
+ #19Y(00 00 00 00 00 00 01 00 06 07 07 00 01 0C 01 01 DB 00 52)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|EXIT-INFO-LOOP|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|ARGS|) |COMMON-LISP|::|NIL|)
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN| |CLFSWM|::|INFO-MODE|
+ |CLFSWM|::|UNDEFINE-INFO-KEY-FUN|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ITEM-LIST| |COMMON-LISP|::|&KEY| (|CLFSWM|::|X| 0.)
+ (|CLFSWM|::|Y| 0.) (|CLFSWM|::|WIDTH| |COMMON-LISP|::|NIL|)
+ (|CLFSWM|::|HEIGHT| |COMMON-LISP|::|NIL|))
+ "Open an info help menu.
+Item-list is: '((key function) (key function))
+key is a character, a keycode or a keysym"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|320 329 (DEFUN APPEND-SPACE (STRING) ...)-34|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|APPEND-SPACE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|APPEND-SPACE|
+ #64Y(03 00 01 00 01 00 00 00 06 02 DA 38 01 72 76 53 26 DB 63 1B 14 B2
+ AE 82 01 01 00 14 25 02 04 DD B1 31 86 AC B1 31 86 85 01 AD B3 72
+ 48 91 01 32 64 16 02 AE 32 77 54 67 00 00 00 2F 04 55 19 03)
+ (|COMMON-LISP|::|CHARACTER| 0. #\Newline " " |COMMON-LISP|::|CLOSE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|STRING|) "Append spaces before Newline on each line"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|332 337 (DEFUN SHOW-KEY-BINDING (&REST HASH-TABLE-KEY) ...)-35|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-KEY-BINDING| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-KEY-BINDING|
+ #43Y(03 00 01 00 00 00 00 00 07 16 DA 38 01 72 76 53 09 B0 AF 30 01 AE
+ 32 77 3F 54 67 00 00 00 2F 02 55 F8 6F 03 DE 70 05 2F 06 19 02)
+ (|COMMON-LISP|::|CHARACTER| |CLFSWM|::|PRODUCE-DOC|
+ |COMMON-LISP|::|CLOSE| |CLFSWM|::|APPEND-SPACE| #\Newline
+ |TOOLS|::|SPLIT-STRING| |CLFSWM|::|INFO-MODE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|HASH-TABLE-KEY|)
+ "Show the binding of each hash-table-key"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|340 343 (DEFUN SHOW-GLOBAL-KEY-BINDING NIL ...)-36|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-GLOBAL-KEY-BINDING| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-GLOBAL-KEY-BINDING|
+ #25Y(00 00 00 00 00 00 00 00 06 01 6B 00 6B 01 6B 02 6B 03 6B 04 2D 05
+ 05 19 01)
+ (|CLFSWM|::|*MAIN-KEYS*| |CLFSWM|::|*SECOND-KEYS*|
+ |CLFSWM|::|*MOUSE-ACTION*| |CLFSWM|::|*INFO-KEYS*|
+ |CLFSWM|::|*INFO-MOUSE-ACTION*| |CLFSWM|::|SHOW-KEY-BINDING|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show all key binding"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|345 347 (DEFUN SHOW-MAIN-MODE-KEY-BINDING NIL ...)-37|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-MAIN-MODE-KEY-BINDING| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-MAIN-MODE-KEY-BINDING|
+ #16Y(00 00 00 00 00 00 00 00 06 01 6B 00 2F 01 19 01)
+ (|CLFSWM|::|*MAIN-KEYS*| |CLFSWM|::|SHOW-KEY-BINDING|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show the main mode binding"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|349 351 (DEFUN SHOW-SECOND-MODE-KEY-BINDING NIL ...)-38|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-SECOND-MODE-KEY-BINDING| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-SECOND-MODE-KEY-BINDING|
+ #18Y(00 00 00 00 00 00 00 00 06 01 6B 00 6B 01 30 02 19 01)
+ (|CLFSWM|::|*SECOND-KEYS*| |CLFSWM|::|*MOUSE-ACTION*|
+ |CLFSWM|::|SHOW-KEY-BINDING|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show the second mode key binding"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|354 362 (LET (# #) (DEFUN DATE-STRING NIL ...))-39|
+ #23Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA 63 6D 02 01 32 83 C5 19 01)
+ (|CLFSWM|::|DATE-STRING| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DATE-STRING|
+ #128Y(00 00 00 00 00 00 00 00 06 01 2E 01 42 07 38 02 72 76 AD DC 71 96
+ 97 04 DD 71 96 DE AF 38 02 31 8B AE 01 02 DF E0 01 02 BA 2D 08 07
+ E2 AF 31 8A AE 01 02 DF E0 01 02 BB 2D 08 07 E2 AF 31 8A AE 01 02
+ DF E0 01 02 BC 2D 08 07 E3 AF 38 02 31 8B AD AF 31 86 E4 AF 31 8A
+ AE 01 02 DF E0 01 02 B9 2D 08 07 E4 AF 31 8A AC AF 31 86 E4 AF 31
+ 8A B0 AF 31 86 E5 AF 38 02 31 8B 16 02 AC 32 77 19 09)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|GET-DECODED-TIME|
+ ("Lundi" "Mardi" "Mercredi" "Jeudi" "Vendredi" "Samedi" "Dimanche")
+ ("Janvier" "Fevrier" "Mars" "Avril" "Mai" "Juin" "Juillet" "Aout"
+ "Septembre" "Octobre" "Novembre" "Decembre")
+ " " 2. #\0 |SYSTEM|::|DO-FORMAT-DECIMAL| #\: " " #\ " ")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|365 367 (DEFUN SHOW-DATE NIL ...)-40|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-DATE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-DATE|
+ #19Y(00 00 00 00 00 00 00 00 06 01 2E 00 14 7B 01 2F 01 19 01)
+ (|CLFSWM|::|DATE-STRING| |CLFSWM|::|INFO-MODE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show the current time and date"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|374 378 (DEFUN INFO-ON-SHELL (PROGRAM) ...)-41|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-ON-SHELL| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-ON-SHELL|
+ #43Y(00 00 00 00 01 00 00 00 06 02 AD 63 64 6E 03 00 01 02 1B 03 AD 84
+ 00 AE 01 02 38 01 80 79 01 1C 73 AC 31 A6 16 01 F8 2F 01 19 03)
+ (|TOOLS|::|DO-SHELL| |CLFSWM|::|INFO-MODE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|PROGRAM|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|381 383 (DEFUN SHOW-CPU-PROC NIL ...)-42|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-CPU-PROC| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-CPU-PROC|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ ("ps --cols=1000 --sort='-%cpu,uid,pgid,ppid,pid' -e -o user,pid,stime,pcpu,pmem,args"
+ |CLFSWM|::|INFO-ON-SHELL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show current processes sorted by CPU usage"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|385 387 (DEFUN SHOW-MEM-PROC NIL ...)-43|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-MEM-PROC| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-MEM-PROC|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ ("ps --cols=1000 --sort='-vsz,uid,pgid,ppid,pid' -e -o user,pid,stime,pcpu,pmem,args"
+ |CLFSWM|::|INFO-ON-SHELL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show current processes sorted by memory usage"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|389 391 (DEFUN SHOW-XMMS-STATUS NIL ...)-44|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-XMMS-STATUS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-XMMS-STATUS|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ ("xmms-shell -e status" |CLFSWM|::|INFO-ON-SHELL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show the current xmms status"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|393 395 (DEFUN SHOW-XMMS-PLAYLIST NIL ...)-45|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-XMMS-PLAYLIST| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-XMMS-PLAYLIST|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ ("xmms-shell -e list" |CLFSWM|::|INFO-ON-SHELL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show the current xmms playlist"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|398 401 (DEFUN XMMS-INFO-MENU NIL ...)-46|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|XMMS-INFO-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|XMMS-INFO-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\s |CLFSWM|::|SHOW-XMMS-STATUS|)
+ (#\l |CLFSWM|::|SHOW-XMMS-PLAYLIST|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Open the xmms menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|405 407 (DEFUN SHOW-CD-INFO NIL ...)-47|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-CD-INFO| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-CD-INFO|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ ("pcd i" |CLFSWM|::|INFO-ON-SHELL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show the current CD track"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|409 411 (DEFUN SHOW-CD-PLAYLIST NIL ...)-48|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-CD-PLAYLIST| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-CD-PLAYLIST|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ ("pcd mi" |CLFSWM|::|INFO-ON-SHELL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show the current CD playlist"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|413 416 (DEFUN INFO-ON-CD-MENU NIL ...)-49|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|INFO-ON-CD-MENU| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|INFO-ON-CD-MENU|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\i |CLFSWM|::|SHOW-CD-INFO|) (#\l |CLFSWM|::|SHOW-CD-PLAYLIST|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Open the CD info menu"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|420 428 (DEFUN HELP-ON-CLFSWM NIL ...)-50|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|HELP-ON-CLFSWM| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|HELP-ON-CLFSWM|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\h |CLFSWM|::|SHOW-GLOBAL-KEY-BINDING|)
+ (#\b |CLFSWM|::|SHOW-MAIN-MODE-KEY-BINDING|)
+ (#\t |CLFSWM|::|SHOW-DATE|) (#\c |CLFSWM|::|SHOW-CPU-PROC|)
+ (#\m |CLFSWM|::|SHOW-MEM-PROC|) (#\x |CLFSWM|::|XMMS-INFO-MENU|)
+ (#\d |CLFSWM|::|INFO-ON-CD-MENU|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Open the help and info window"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|431 439 (DEFUN HELP-ON-SECOND-MODE NIL ...)-51|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|HELP-ON-SECOND-MODE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|HELP-ON-SECOND-MODE|
+ #15Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 19 01)
+ (((#\h |CLFSWM|::|SHOW-GLOBAL-KEY-BINDING|)
+ (#\b |CLFSWM|::|SHOW-SECOND-MODE-KEY-BINDING|)
+ (#\t |CLFSWM|::|SHOW-DATE|) (#\c |CLFSWM|::|SHOW-CPU-PROC|)
+ (#\m |CLFSWM|::|SHOW-MEM-PROC|) (#\x |CLFSWM|::|XMMS-INFO-MENU|)
+ (#\d |CLFSWM|::|INFO-ON-CD-MENU|))
+ |CLFSWM|::|INFO-MODE-MENU|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Open the help and info window"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
Added: clfswm-info.fasl
==============================================================================
Binary file. No diff available.
Added: clfswm-info.lib
==============================================================================
--- (empty file)
+++ clfswm-info.lib Sat Mar 1 07:36:13 2008
@@ -0,0 +1,612 @@
+#0Y |CHARSET|::|UTF-8|
+(|COMMON-LISP|::|SETQ| |COMMON-LISP|::|*PACKAGE*|
+ (|SYSTEM|::|%FIND-PACKAGE| "CLFSWM"))
+(|COMMON-LISP|::|LET| |COMMON-LISP|::|NIL|
+ (|COMMON-LISP|::|LET|
+ ((#1=#:|G49499|
+ (|COMMON-LISP|::|CONS| '|CLFSWM|::|INFO|
+ (|CLOS|::|CLASS-NAMES|
+ (|COMMON-LISP|::|GET| '|COMMON-LISP|::|STRUCTURE-OBJECT|
+ '|CLOS|::|CLOSCLASS|)))))
+ (|SYSTEM|::|STRUCTURE-UNDEFINE-ACCESSORIES| '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|REMPROP| '|CLFSWM|::|INFO|
+ '|SYSTEM|::|DEFSTRUCT-DESCRIPTION|)
+ (|CLOS|::|DEFINE-STRUCTURE-CLASS| '|CLFSWM|::|INFO| #1#
+ '|CLFSWM|::|MAKE-INFO| '|COMMON-LISP|::|NIL| '|CLFSWM|::|COPY-INFO|
+ '|CLFSWM|::|INFO-P|
+ (|COMMON-LISP|::|LIST|
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME|
+ '|CLFSWM|::|WINDOW| :|INITARGS| '#2=(:|WINDOW|) :|TYPE|
+ '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE|
+ #3='|CLOS|::|INHERITABLE-INITER|
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #4=(|SYSTEM|::|MAKE-CONSTANT-INITFUNCTION| |COMMON-LISP|::|NIL|))
+ #5='|CLOS|::|INHERITABLE-DOC| '(|COMMON-LISP|::|NIL|)
+ #6='|CLOS|::|LOCATION| '1. #7='|CLOS|::|READONLY| '|COMMON-LISP|::|NIL|)
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|GC|
+ :|INITARGS| '#8=(:|GC|) :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION|
+ ':|INSTANCE| #3#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #9=(|SYSTEM|::|MAKE-CONSTANT-INITFUNCTION| |COMMON-LISP|::|NIL|))
+ #5# '(|COMMON-LISP|::|NIL|) #6# '2. #7# '|COMMON-LISP|::|NIL|)
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|FONT|
+ :|INITARGS| '#10=(:|FONT|) :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION|
+ ':|INSTANCE| #3#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #11=(|SYSTEM|::|MAKE-CONSTANT-INITFUNCTION| |COMMON-LISP|::|NIL|))
+ #5# '(|COMMON-LISP|::|NIL|) #6# '3. #7# '|COMMON-LISP|::|NIL|)
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME|
+ '|COMMON-LISP|::|LIST| :|INITARGS| '#12=(:|LIST|) :|TYPE|
+ '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE| #3#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #13=(|SYSTEM|::|MAKE-CONSTANT-INITFUNCTION| |COMMON-LISP|::|NIL|))
+ #5# '(|COMMON-LISP|::|NIL|) #6# '4. #7# '|COMMON-LISP|::|NIL|)
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|ILW|
+ :|INITARGS| '#14=(:|ILW|) :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION|
+ ':|INSTANCE| #3#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #15=(|SYSTEM|::|MAKE-CONSTANT-INITFUNCTION| |COMMON-LISP|::|NIL|))
+ #5# '(|COMMON-LISP|::|NIL|) #6# '5. #7# '|COMMON-LISP|::|NIL|)
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|ILH|
+ :|INITARGS| '#16=(:|ILH|) :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION|
+ ':|INSTANCE| #3#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #17=(|SYSTEM|::|MAKE-CONSTANT-INITFUNCTION| |COMMON-LISP|::|NIL|))
+ #5# '(|COMMON-LISP|::|NIL|) #6# '6. #7# '|COMMON-LISP|::|NIL|)
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|X|
+ :|INITARGS| '#18=(:|X|) :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION|
+ ':|INSTANCE| #3#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #19=(|SYSTEM|::|MAKE-CONSTANT-INITFUNCTION| |COMMON-LISP|::|NIL|))
+ #5# '(|COMMON-LISP|::|NIL|) #6# '7. #7# '|COMMON-LISP|::|NIL|)
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|Y|
+ :|INITARGS| '#20=(:|Y|) :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION|
+ ':|INSTANCE| #3#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #21=(|SYSTEM|::|MAKE-CONSTANT-INITFUNCTION| |COMMON-LISP|::|NIL|))
+ #5# '(|COMMON-LISP|::|NIL|) #6# '8. #7# '|COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|LIST|
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|WINDOW|
+ :|INITARGS| '#2# :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE|
+ #22='|CLOS|::|INHERITABLE-INITER|
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #4#)
+ #23='|CLOS|::|INHERITABLE-DOC| '(|COMMON-LISP|::|NIL|) :|READERS|
+ '(|CLFSWM|::|INFO-WINDOW|) :|WRITERS|
+ '((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)))
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|GC|
+ :|INITARGS| '#8# :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE|
+ #22#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #9#)
+ #23# '(|COMMON-LISP|::|NIL|) :|READERS| '(|CLFSWM|::|INFO-GC|) :|WRITERS|
+ '((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)))
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|FONT|
+ :|INITARGS| '#10# :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE|
+ #22#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #11#)
+ #23# '(|COMMON-LISP|::|NIL|) :|READERS| '(|CLFSWM|::|INFO-FONT|)
+ :|WRITERS| '((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|)))
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME|
+ '|COMMON-LISP|::|LIST| :|INITARGS| '#12# :|TYPE| '|COMMON-LISP|::|T|
+ :|ALLOCATION| ':|INSTANCE| #22#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #13#)
+ #23# '(|COMMON-LISP|::|NIL|) :|READERS| '(|CLFSWM|::|INFO-LIST|)
+ :|WRITERS| '((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)))
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|ILW|
+ :|INITARGS| '#14# :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE|
+ #22#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #15#)
+ #23# '(|COMMON-LISP|::|NIL|) :|READERS| '(|CLFSWM|::|INFO-ILW|) :|WRITERS|
+ '((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|)))
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|ILH|
+ :|INITARGS| '#16# :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE|
+ #22#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #17#)
+ #23# '(|COMMON-LISP|::|NIL|) :|READERS| '(|CLFSWM|::|INFO-ILH|) :|WRITERS|
+ '((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)))
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|X|
+ :|INITARGS| '#18# :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE|
+ #22#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #19#)
+ #23# '(|COMMON-LISP|::|NIL|) :|READERS| '(|CLFSWM|::|INFO-X|) :|WRITERS|
+ '((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|)))
+ (|CLOS|::|MAKE-INSTANCE-|
+ |CLOS|::|| :|NAME| '|CLFSWM|::|Y|
+ :|INITARGS| '#20# :|TYPE| '|COMMON-LISP|::|T| :|ALLOCATION| ':|INSTANCE|
+ #22#
+ (|CLOS|::|MAKE-INHERITABLE-SLOT-DEFINITION-INITER| '|COMMON-LISP|::|NIL|
+ #21#)
+ #23# '(|COMMON-LISP|::|NIL|) :|READERS| '(|CLFSWM|::|INFO-Y|) :|WRITERS|
+ '((|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|)))))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|MAKE-INFO|
+ (|COMMON-LISP|::|&KEY| (#24=#:|WINDOW| |COMMON-LISP|::|NIL|)
+ (#25=#:|GC| |COMMON-LISP|::|NIL|) (#26=#:|FONT| |COMMON-LISP|::|NIL|)
+ (#27=#:|LIST| |COMMON-LISP|::|NIL|) (#28=#:|ILW| |COMMON-LISP|::|NIL|)
+ (#29=#:|ILH| |COMMON-LISP|::|NIL|) (#30=#:|X| |COMMON-LISP|::|NIL|)
+ (#31=#:|Y| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|LET|
+ ((|SYSTEM|::|OBJECT| (|SYSTEM|::|%MAKE-STRUCTURE| #1# 9.)))
+ (|COMMON-LISP|::|SETF|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 1.)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T| #24#))
+ (|COMMON-LISP|::|SETF|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 2.)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T| #25#))
+ (|COMMON-LISP|::|SETF|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 3.)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T| #26#))
+ (|COMMON-LISP|::|SETF|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 4.)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T| #27#))
+ (|COMMON-LISP|::|SETF|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 5.)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T| #28#))
+ (|COMMON-LISP|::|SETF|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 6.)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T| #29#))
+ (|COMMON-LISP|::|SETF|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 7.)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T| #30#))
+ (|COMMON-LISP|::|SETF|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 8.)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T| #31#))
+ |SYSTEM|::|OBJECT|)))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-P|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-P| (|SYSTEM|::|OBJECT|)
+ (|SYSTEM|::|%STRUCTURE-TYPE-P| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|COPY-INFO|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|COPY-INFO| (|COMMON-LISP|::|STRUCTURE|)
+ (|COMMON-LISP|::|COPY-STRUCTURE| |COMMON-LISP|::|STRUCTURE|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-WINDOW| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-WINDOW|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-WINDOW| #32=(|SYSTEM|::|OBJECT|)
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 1.)))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-WINDOW| #33='|SYSTEM|::|DEFSTRUCT-READER|
+ '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-GC| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-GC|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-GC| #32#
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 2.)))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-GC| #33# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-FONT| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-FONT|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-FONT| #32#
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 3.)))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-FONT| #33# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-LIST| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-LIST|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-LIST| #32#
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 4.)))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-LIST| #33# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-ILW| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-ILW|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-ILW| #32#
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 5.)))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-ILW| #33# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-ILH| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-ILH|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-ILH| #32#
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 6.)))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-ILH| #33# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-X| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-X|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-X| #32#
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 7.)))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-X| #33# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-Y| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-Y|))
+ (|COMMON-LISP|::|DEFUN| |CLFSWM|::|INFO-Y| #32#
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 8.)))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-Y| #33# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)))
+ (|COMMON-LISP|::|DEFUN| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)
+ #34=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|)
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 1.
+ |SYSTEM|::|VALUE|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-WINDOW| #35='|SYSTEM|::|DEFSTRUCT-WRITER|
+ '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)))
+ (|COMMON-LISP|::|DEFUN| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|) #34#
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 2.
+ |SYSTEM|::|VALUE|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-GC| #35# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|)))
+ (|COMMON-LISP|::|DEFUN| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|) #34#
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 3.
+ |SYSTEM|::|VALUE|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-FONT| #35# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)))
+ (|COMMON-LISP|::|DEFUN| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|) #34#
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 4.
+ |SYSTEM|::|VALUE|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-LIST| #35# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|)))
+ (|COMMON-LISP|::|DEFUN| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|) #34#
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 5.
+ |SYSTEM|::|VALUE|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-ILW| #35# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)))
+ (|COMMON-LISP|::|DEFUN| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|) #34#
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 6.
+ |SYSTEM|::|VALUE|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-ILH| #35# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|)))
+ (|COMMON-LISP|::|DEFUN| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|) #34#
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 7.
+ |SYSTEM|::|VALUE|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-X| #35# '|CLFSWM|::|INFO|)
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|)))
+ (|COMMON-LISP|::|DEFUN| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|) #34#
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 8.
+ |SYSTEM|::|VALUE|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|INFO-Y| #35# '|CLFSWM|::|INFO|)
+ (|SYSTEM|::|%SET-DOCUMENTATION| '|CLFSWM|::|INFO| '|COMMON-LISP|::|TYPE|
+ |COMMON-LISP|::|NIL|)
+ (|CLOS|::|DEFSTRUCT-REMOVE-PRINT-OBJECT-METHOD| '|CLFSWM|::|INFO|)
+ '|CLFSWM|::|INFO|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|MAKE-INFO|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|COMMON-LISP|::|&KEY| (#:|WINDOW| |COMMON-LISP|::|NIL|)
+ (#:|GC| |COMMON-LISP|::|NIL|) (#:|FONT| |COMMON-LISP|::|NIL|)
+ (#:|LIST| |COMMON-LISP|::|NIL|) (#:|ILW| |COMMON-LISP|::|NIL|)
+ (#:|ILH| |COMMON-LISP|::|NIL|) (#:|X| |COMMON-LISP|::|NIL|)
+ (#:|Y| |COMMON-LISP|::|NIL|))))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-P|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-P|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-P|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-P|
+ (|SYSTEM|::|%STRUCTURE-TYPE-P| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT|))))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|COPY-INFO|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|COPY-INFO|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|COMMON-LISP|::|STRUCTURE|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|COPY-INFO|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|COPY-INFO|
+ (|COMMON-LISP|::|COPY-STRUCTURE| |COMMON-LISP|::|STRUCTURE|))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-WINDOW| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-WINDOW|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-WINDOW|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1#
+ (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-WINDOW|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-WINDOW|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 1.)))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-GC| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-GC|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-GC|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-GC|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-GC|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 2.)))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-FONT| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-FONT|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-FONT|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-FONT|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-FONT|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 3.)))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-LIST| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-LIST|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-LIST|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-LIST|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-LIST|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 4.)))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-ILW| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-ILW|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-ILW|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-ILW|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-ILW|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 5.)))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-ILH| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-ILH|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-ILH|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-ILH|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-ILH|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 6.)))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-X| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-X|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-X|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-X|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-X|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 7.)))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| |CLFSWM|::|INFO-Y| (|CLFSWM|::|INFO|)
+ |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM| '(|COMMON-LISP|::|INLINE| |CLFSWM|::|INFO-Y|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-Y|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '#1=(|SYSTEM|::|OBJECT|))
+ '(#1# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| |CLFSWM|::|INFO-Y|))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-Y|
+ (|COMMON-LISP|::|THE| |COMMON-LISP|::|T|
+ (|SYSTEM|::|%STRUCTURE-REF| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 8.)))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)))
+(|SYSTEM|::|C-DEFUN| '#1=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-WINDOW|)
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '#2=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|))
+ '(#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| #1#))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-WINDOW|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 1.
+ |SYSTEM|::|VALUE|))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)))
+(|SYSTEM|::|C-DEFUN| '#1=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-GC|)
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '#2=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|))
+ '(#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| #1#))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-GC|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 2.
+ |SYSTEM|::|VALUE|))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|)))
+(|SYSTEM|::|C-DEFUN| '#1=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-FONT|)
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '#2=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|))
+ '(#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| #1#))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-FONT|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 3.
+ |SYSTEM|::|VALUE|))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)))
+(|SYSTEM|::|C-DEFUN| '#1=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-LIST|)
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '#2=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|))
+ '(#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| #1#))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-LIST|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 4.
+ |SYSTEM|::|VALUE|))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|)))
+(|SYSTEM|::|C-DEFUN| '#1=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILW|)
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '#2=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|))
+ '(#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| #1#))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-ILW|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 5.
+ |SYSTEM|::|VALUE|))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)))
+(|SYSTEM|::|C-DEFUN| '#1=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-ILH|)
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '#2=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|))
+ '(#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| #1#))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-ILH|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 6.
+ |SYSTEM|::|VALUE|))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|)))
+(|SYSTEM|::|C-DEFUN| '#1=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-X|)
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '#2=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|))
+ '(#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| #1#))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-X|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 7.
+ |SYSTEM|::|VALUE|))))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|FUNCTION| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|)
+ (|COMMON-LISP|::|T| |CLFSWM|::|INFO|) |COMMON-LISP|::|T|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|INLINE| (|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|)))
+(|SYSTEM|::|C-DEFUN| '#1=(|COMMON-LISP|::|SETF| |CLFSWM|::|INFO-Y|)
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '#2=(|SYSTEM|::|VALUE| |SYSTEM|::|OBJECT|))
+ '(#2# (|COMMON-LISP|::|DECLARE| (|SYSTEM|::|IN-DEFUN| #1#))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|INFO-Y|
+ (|SYSTEM|::|%STRUCTURE-STORE| '|CLFSWM|::|INFO| |SYSTEM|::|OBJECT| 8.
+ |SYSTEM|::|VALUE|))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|LEAVE-INFO-MODE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|MOUSE-LEAVE-INFO-MODE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DRAW-INFO-WINDOW|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DRAW-INFO-WINDOW-PARTIAL|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-BANISH-POINTER|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-NEXT-LINE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-PREVIOUS-LINE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-PREVIOUS-CHAR|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-NEXT-CHAR|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-FIRST-LINE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-END-LINE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-NEXT-TEN-LINES|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-PREVIOUS-TEN-LINES|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|SPECIAL| |CLFSWM|::|*INFO-START-GRAB-X*|))
+(|SYSTEM|::|C-PROCLAIM|
+ '(|COMMON-LISP|::|SPECIAL| |CLFSWM|::|*INFO-START-GRAB-Y*|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-BEGIN-GRAB|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-END-GRAB|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-MOUSE-NEXT-LINE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-MOUSE-PREVIOUS-LINE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-MOUSE-MOTION|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |CLFSWM|::|INFO|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-MODE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|INFO-LIST| |COMMON-LISP|::|&KEY| (|CLFSWM|::|X| 0.)
+ (|CLFSWM|::|Y| 0.) (|CLFSWM|::|WIDTH| |COMMON-LISP|::|NIL|)
+ (|CLFSWM|::|HEIGHT| |COMMON-LISP|::|NIL|))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-MODE-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|ITEM-LIST| |COMMON-LISP|::|&KEY| (|CLFSWM|::|X| 0.)
+ (|CLFSWM|::|Y| 0.) (|CLFSWM|::|WIDTH| |COMMON-LISP|::|NIL|)
+ (|CLFSWM|::|HEIGHT| |COMMON-LISP|::|NIL|))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|APPEND-SPACE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|COMMON-LISP|::|STRING|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-KEY-BINDING|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|COMMON-LISP|::|&REST| |CLFSWM|::|HASH-TABLE-KEY|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-GLOBAL-KEY-BINDING|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-MAIN-MODE-KEY-BINDING|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-SECOND-MODE-KEY-BINDING|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DATE-STRING|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-DATE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-ON-SHELL|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|PROGRAM|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-CPU-PROC|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-MEM-PROC|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-XMMS-STATUS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-XMMS-PLAYLIST|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|XMMS-INFO-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-CD-INFO|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-CD-PLAYLIST|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|INFO-ON-CD-MENU|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|HELP-ON-CLFSWM|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|HELP-ON-SECOND-MODE|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
Added: clfswm-info.lisp
==============================================================================
--- (empty file)
+++ clfswm-info.lisp Sat Mar 1 07:36:13 2008
@@ -0,0 +1,444 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; #Date#: Tue Feb 19 21:43:15 2008
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Info function (see the end of this file for user definition
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2005 Philippe Brochard
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+(defstruct info window gc font list ilw ilh x y)
+
+
+(defun leave-info-mode (info)
+ "Leave the info mode"
+ (declare (ignore info))
+ (throw 'exit-info-loop nil))
+
+(defun mouse-leave-info-mode (root-x root-y info)
+ "Leave the info mode"
+ (declare (ignore root-x root-y info))
+ (throw 'exit-info-loop nil))
+
+
+
+(defun draw-info-window (info)
+ (xlib:clear-area (info-window info))
+ (setf (xlib:gcontext-foreground (info-gc info)) (get-color *info-foreground*))
+ (loop for line in (info-list info)
+ for y from 0 do
+ (xlib:draw-image-glyphs (info-window info) (info-gc info)
+ (- (info-ilw info) (info-x info))
+ (- (+ (* (info-ilh info) y) (info-ilh info)) (info-y info))
+ (format nil "~A" line))))
+
+
+(defun draw-info-window-partial (info)
+ (let ((last-y (info-y info)))
+ (setf (xlib:gcontext-foreground (info-gc info)) (get-color *info-background*))
+ (xlib:draw-rectangle (info-window info) (info-gc info) 0 0
+ (xlib:drawable-width (info-window info))
+ (max (+ (- (info-y info)) (xlib:max-char-ascent (info-font info))) 0) t)
+ (loop for line in (info-list info)
+ for y from 0 do
+ (setf last-y (- (+ (* (info-ilh info) y) (info-ilh info)) (info-y info)))
+ (setf (xlib:gcontext-foreground (info-gc info)) (get-color *info-background*))
+ (xlib:draw-rectangle (info-window info) (info-gc info)
+ 0 (+ last-y (- (info-ilh info)) (xlib:max-char-descent (info-font info)))
+ (xlib:drawable-width (info-window info)) (info-ilh info) t)
+ (setf (xlib:gcontext-foreground (info-gc info)) (get-color *info-foreground*))
+ (xlib:draw-image-glyphs (info-window info) (info-gc info)
+ (- (info-ilw info) (info-x info))
+ last-y
+ (format nil "~A" line)))
+ (setf (xlib:gcontext-foreground (info-gc info)) (get-color *info-background*))
+ (xlib:draw-rectangle (info-window info) (info-gc info) 0 last-y
+ (xlib:drawable-width (info-window info))
+ (xlib:drawable-height (info-window info))
+ t)))
+
+
+;;;,-----
+;;;| Key binding
+;;;`-----
+
+(define-info-key (#\q) 'leave-info-mode)
+(define-info-key ("Return") 'leave-info-mode)
+(define-info-key ("Escape") 'leave-info-mode)
+(define-info-key (#\Space) 'leave-info-mode)
+
+(define-info-key ("twosuperior")
+ (defun info-banish-pointer (info)
+ "Move the pointer to the lower right corner of the screen"
+ (declare (ignore info))
+ (banish-pointer)))
+
+(define-info-key ("Down")
+ (defun info-next-line (info)
+ "Move one line down"
+ (incf (info-y info) (info-ilh info))
+ (draw-info-window info)))
+
+(define-info-key ("Up")
+ (defun info-previous-line (info)
+ "Move one line up"
+ (decf (info-y info) (info-ilh info))
+ (draw-info-window info)))
+
+(define-info-key ("Left")
+ (defun info-previous-char (info)
+ "Move one char left"
+ (decf (info-x info) (info-ilw info))
+ (draw-info-window info)))
+
+(define-info-key ("Right")
+ (defun info-next-char (info)
+ "Move one char right"
+ (incf (info-x info) (info-ilw info))
+ (draw-info-window info)))
+
+
+(define-info-key ("Home")
+ (defun info-first-line (info)
+ "Move to first line"
+ (setf (info-x info) 0
+ (info-y info) 0)
+ (draw-info-window info)))
+
+(define-info-key ("End")
+ (defun info-end-line (info)
+ "Move to last line"
+ (setf (info-x info) 0
+ (info-y info) (- (* (length (info-list info)) (info-ilh info)) (xlib:drawable-height (info-window info))))
+ (draw-info-window info)))
+
+
+(define-info-key ("Page_Down")
+ (defun info-next-ten-lines (info)
+ "Move ten lines down"
+ (incf (info-y info) (* (info-ilh info) 10))
+ (draw-info-window info)))
+
+(define-info-key ("Page_Up")
+ (defun info-previous-ten-lines (info)
+ "Move ten lines up"
+ (decf (info-y info) (* (info-ilh info) 10))
+ (draw-info-window info)))
+
+
+
+
+(defparameter *info-start-grab-x* nil)
+(defparameter *info-start-grab-y* nil)
+
+
+(defun info-begin-grab (root-x root-y info)
+ "Begin grab text"
+ (setf *info-start-grab-x* (+ root-x (info-x info))
+ *info-start-grab-y* (+ root-y (info-y info)))
+ (draw-info-window info))
+
+(defun info-end-grab (root-x root-y info)
+ "End grab"
+ (setf (info-x info) (- *info-start-grab-x* root-x)
+ (info-y info) (- *info-start-grab-y* root-y)
+ *info-start-grab-x* nil
+ *info-start-grab-y* nil)
+ (draw-info-window info))
+
+(defun info-mouse-next-line (root-x root-y info)
+ "Move one line down"
+ (declare (ignore root-x root-y))
+ (incf (info-y info) (info-ilh info))
+ (draw-info-window info))
+
+(defun info-mouse-previous-line (root-x root-y info)
+ "Move one line up"
+ (declare (ignore root-x root-y))
+ (decf (info-y info) (info-ilh info))
+ (draw-info-window info))
+
+
+(defun info-mouse-motion (root-x root-y info)
+ "Grab text"
+ (when (and *info-start-grab-x* *info-start-grab-y*)
+ (setf (info-x info) (- *info-start-grab-x* root-x)
+ (info-y info) (- *info-start-grab-y* root-y))
+ (draw-info-window-partial info)))
+
+
+
+
+
+(define-info-mouse-action (1) 'info-begin-grab 'info-end-grab)
+(define-info-mouse-action (2) 'mouse-leave-info-mode)
+(define-info-mouse-action (4) 'info-mouse-previous-line)
+(define-info-mouse-action (5) 'info-mouse-next-line)
+(define-info-mouse-action ('Motion) 'info-mouse-motion nil)
+
+
+;;;,-----
+;;;| Main mode
+;;;`-----
+
+(defun info-mode (info-list &key (x 0) (y 0) (width nil) (height nil))
+ "Open the info mode. Info-list is a list of info: One string per line"
+ (when info-list
+ (let* ((pointer-grabbed (xgrab-pointer-p))
+ (keyboard-grabbed (xgrab-keyboard-p))
+ (font (xlib:open-font *display* *info-font-string*))
+ (ilw (xlib:max-char-width font))
+ (ilh (+ (xlib:max-char-ascent font) (xlib:max-char-descent font) 1))
+ (window (xlib:create-window :parent *root*
+ :x x :y y
+ :width (or width
+ (min (* (+ (loop for l in info-list maximize (length l)) 2) ilw)
+ (- (xlib:screen-width *screen*) 2 x)))
+ :height (or height
+ (min (+ (* (length info-list) ilh) (/ ilh 2))
+ (- (xlib:screen-height *screen*) 2 y)))
+ :background (get-color *info-background*)
+ :colormap (xlib:screen-default-colormap *screen*)
+ :border-width 1
+ :border (get-color *info-border*)
+ :event-mask '(:exposure)))
+ (gc (xlib:create-gcontext :drawable window
+ :foreground (get-color *info-foreground*)
+ :background (get-color *info-background*)
+ :font font
+ :line-style :solid))
+ (info (make-info :window window :gc gc :x 0 :y 0 :list info-list
+ :font font :ilw ilw :ilh ilh)))
+ (labels ((handle-key (&rest event-slots &key root code state &allow-other-keys)
+ (declare (ignore event-slots root))
+ (funcall-key-from-code *info-keys* code state info))
+ (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
+ (declare (ignore event-slots))
+ (unless (xlib:event-case (*display* :discard-p nil :peek-p t :timeout 0)
+ (:motion-notify () t))
+ (funcall-button-from-code *info-mouse-action* 'motion 0 root-x root-y #'first info)))
+ (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
+ (declare (ignore event-slots))
+ (funcall-button-from-code *info-mouse-action* code state root-x root-y #'first info))
+ (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
+ (declare (ignore event-slots))
+ (funcall-button-from-code *info-mouse-action* code state root-x root-y #'third info))
+ (info-handle-unmap-notify (&rest event-slots)
+ (apply #'handle-unmap-notify event-slots)
+ (draw-info-window info))
+ (info-handle-destroy-notify (&rest event-slots)
+ (apply #'handle-destroy-notify event-slots)
+ (draw-info-window info))
+ (handle-events (&rest event-slots &key display event-key &allow-other-keys)
+ (declare (ignore display))
+ (case event-key
+ (:key-press (apply #'handle-key event-slots) t)
+ (:button-press (apply #'handle-button-press event-slots) t)
+ (:button-release (apply #'handle-button-release event-slots) t)
+ (:motion-notify (apply #'handle-motion-notify event-slots) t)
+ (:map-request nil)
+ (:unmap-notify (apply #'info-handle-unmap-notify event-slots) t)
+ (:destroy-notify (apply #'info-handle-destroy-notify event-slots) t)
+ (:mapping-notify nil)
+ (:property-notify nil)
+ (:create-notify nil)
+ (:enter-notify nil)
+ (:exposure (draw-info-window info)))
+ t))
+ (xlib:map-window window)
+ (draw-info-window info)
+ (xgrab-pointer *root* 68 69)
+ (unless keyboard-grabbed
+ (xgrab-keyboard *root*))
+ (unwind-protect
+ (catch 'exit-info-loop
+ (loop
+ (xlib:display-finish-output *display*)
+ (xlib:process-event *display* :handler #'handle-events)))
+ (if pointer-grabbed
+ (xgrab-pointer *root* 66 67)
+ (xungrab-pointer))
+ (unless keyboard-grabbed
+ (xungrab-keyboard))
+ (xlib:free-gcontext gc)
+ (xlib:destroy-window window)
+ (xlib:close-font font)
+ (show-all-childs)
+ (wait-no-key-or-button-press))))))
+
+
+
+
+
+
+(defun info-mode-menu (item-list &key (x 0) (y 0) (width nil) (height nil))
+ "Open an info help menu.
+Item-list is: '((key function) (key function))
+key is a character, a keycode or a keysym"
+ (let ((info-list nil)
+ (action nil))
+ (dolist (item item-list)
+ (destructuring-bind (key function) item
+ (push (format nil "~A: ~A" key (documentation function 'function))
+ info-list)
+ (define-info-key-fun (list key 0)
+ (lambda (&optional args)
+ (declare (ignore args))
+ (setf action function)
+ (throw 'exit-info-loop nil)))))
+ (info-mode (nreverse info-list) :x x :y y :width width :height height)
+ (dolist (item item-list)
+ (let ((key (first item)))
+ (undefine-info-key-fun (list key 0))))
+ (when (fboundp action)
+ (funcall action))))
+
+
+
+
+
+;;;,-----
+;;;| CONFIG - Info mode functions
+;;;`-----
+(defun append-space (string)
+ "Append spaces before Newline on each line"
+ (with-output-to-string (stream)
+ (loop for c across string do
+ (when (equal c #\Newline)
+ (princ " " stream))
+ (princ c stream))))
+
+
+(defun show-key-binding (&rest hash-table-key)
+ "Show the binding of each hash-table-key"
+ (info-mode (split-string (append-space (with-output-to-string (stream)
+ (produce-doc hash-table-key
+ stream)))
+ #\Newline)))
+
+
+(defun show-global-key-binding ()
+ "Show all key binding"
+ (show-key-binding *main-keys* *second-keys* *mouse-action*
+ *info-keys* *info-mouse-action*))
+
+(defun show-main-mode-key-binding ()
+ "Show the main mode binding"
+ (show-key-binding *main-keys*))
+
+(defun show-second-mode-key-binding ()
+ "Show the second mode key binding"
+ (show-key-binding *second-keys* *mouse-action*))
+
+
+(let ((days '("Lundi" "Mardi" "Mercredi" "Jeudi" "Vendredi" "Samedi" "Dimanche"))
+ (months '("Janvier" "Fevrier" "Mars" "Avril" "Mai" "Juin" "Juillet"
+ "Aout" "Septembre" "Octobre" "Novembre" "Decembre")))
+ (defun date-string ()
+ (multiple-value-bind (second minute hour date month year day)
+ (get-decoded-time)
+ (format nil " ~2,'0D:~2,'0D:~2,'0D ~A ~2,'0D ~A ~A "
+ hour minute second
+ (nth day days) date (nth (1- month) months) year))))
+
+
+(defun show-date ()
+ "Show the current time and date"
+ (info-mode (list (date-string))))
+
+
+
+
+
+
+(defun info-on-shell (program)
+ (let ((lines (do-shell program nil t)))
+ (info-mode (loop for line = (read-line lines nil nil)
+ while line
+ collect line))))
+
+
+(defun show-cpu-proc ()
+ "Show current processes sorted by CPU usage"
+ (info-on-shell "ps --cols=1000 --sort='-%cpu,uid,pgid,ppid,pid' -e -o user,pid,stime,pcpu,pmem,args"))
+
+(defun show-mem-proc ()
+ "Show current processes sorted by memory usage"
+ (info-on-shell "ps --cols=1000 --sort='-vsz,uid,pgid,ppid,pid' -e -o user,pid,stime,pcpu,pmem,args"))
+
+(defun show-xmms-status ()
+ "Show the current xmms status"
+ (info-on-shell "xmms-shell -e status"))
+
+(defun show-xmms-playlist ()
+ "Show the current xmms playlist"
+ (info-on-shell "xmms-shell -e list"))
+
+
+(defun xmms-info-menu ()
+ "Open the xmms menu"
+ (info-mode-menu '((#\s show-xmms-status)
+ (#\l show-xmms-playlist))))
+
+
+
+(defun show-cd-info ()
+ "Show the current CD track"
+ (info-on-shell "pcd i"))
+
+(defun show-cd-playlist ()
+ "Show the current CD playlist"
+ (info-on-shell "pcd mi"))
+
+(defun info-on-cd-menu ()
+ "Open the CD info menu"
+ (info-mode-menu '((#\i show-cd-info)
+ (#\l show-cd-playlist))))
+
+
+
+(defun help-on-clfswm ()
+ "Open the help and info window"
+ (info-mode-menu '((#\h show-global-key-binding)
+ (#\b show-main-mode-key-binding)
+ (#\t show-date)
+ (#\c show-cpu-proc)
+ (#\m show-mem-proc)
+ (#\x xmms-info-menu)
+ (#\d info-on-cd-menu))))
+
+
+(defun help-on-second-mode ()
+ "Open the help and info window"
+ (info-mode-menu '((#\h show-global-key-binding)
+ (#\b show-second-mode-key-binding)
+ (#\t show-date)
+ (#\c show-cpu-proc)
+ (#\m show-mem-proc)
+ (#\x xmms-info-menu)
+ (#\d info-on-cd-menu))))
+
+
+
+
+
Added: clfswm-internal.fas
==============================================================================
--- (empty file)
+++ clfswm-internal.fas Sat Mar 1 07:36:13 2008
@@ -0,0 +1,1283 @@
+(|SYSTEM|::|VERSION| '(20060802.))
+#0Y |CHARSET|::|UTF-8|
+#Y(#:|1 28 (IN-PACKAGE :CLFSWM)-1|
+ #17Y(00 00 00 00 00 00 00 00 00 01 DA 31 E6 0F 01 19 01)
+ ("CLFSWM" |COMMON-LISP|::|*PACKAGE*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|31 37 (DEFUN CALL-HOOK (HOOK &OPTIONAL ARGS) ...)-2|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|CALL-HOOK| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|CALL-HOOK|
+ #44Y(00 00 00 00 01 00 01 00 06 08 3D 01 AE 8E 0D 05 AE 9F 9B 00 03 AE
+ 63 1B 0C 87 01 00 DA AD B1 61 02 37 00 83 01 AD 8D 94 70 00 19 05)
+ (|CLFSWM|::|CALL-HOOK|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|HOOK| |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|ARGS|)
+ "Call a hook (a function, a symbol or a list of function)"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|40 44 (DEFUN GROUP-DATA-SLOT (GROUP SLOT) ...)-3|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-DATA-SLOT| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-DATA-SLOT|
+ #29Y(00 00 00 00 02 00 00 00 06 03 AE 2F 00 1F 0C AD AF 6F 01 38 03 31
+ BD 5C 5B 19 03 19 03)
+ (|CLFSWM|::|GROUP-P| |CLFSWM|::|GROUP-DATA|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP| |CLFSWM|::|SLOT|)
+ "Return the value associated to data slot"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|46 52 (DEFUN SET-GROUP-DATA-SLOT (GROUP SLOT VALUE) ...)-4|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SET-GROUP-DATA-SLOT| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SET-GROUP-DATA-SLOT|
+ #58Y(00 00 00 00 03 00 00 00 06 04 AF 2F 00 1F 29 AF DB B0 B2 DB 72 3E
+ 38 03 71 BD B2 DB 72 3E 38 07 72 4F 32 3F AE AE 7B 02 B0 DB 72 3E
+ B1 DB AF A0 7A 32 3F 16 02 9E 19 04 19 04)
+ (|CLFSWM|::|GROUP-P| |CLFSWM|::|DATA|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP| |CLFSWM|::|SLOT| |CLFSWM|::|VALUE|)
+ "Set the value associated to data slot"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|54 54 (DEFSETF GROUP-DATA-SLOT SET-GROUP-DATA-SLOT)-5|
+ #42Y(00 00 00 00 00 00 00 00 00 01 DA DB 32 8A DA DC DA DD 38 01 8F 85 01 C8
+ 14 2D 03 04 DA DD DF 32 89 DA E0 63 2D 03 07 C5 19 01)
+ (|CLFSWM|::|GROUP-DATA-SLOT| |SYSTEM|::|DEFSTRUCT-WRITER|
+ |COMMON-LISP|::|DEFSETF| |SYSTEM|::|SETF-EXPANDER|
+ |SYSTEM|::|CHECK-REDEFINITION| |CLFSWM|::|SET-GROUP-DATA-SLOT|
+ |COMMON-LISP|::|SETF| |SYSTEM|::|%SET-DOCUMENTATION|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|58 58 (DEFGENERIC GROUP-P (GROUP))-6|
+ #112Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 6B 03 99
+ 04 DA DF AF E0 E1 E2 E3 E4 01 03 B8 6F 0B 1B 24 AF 38 01 80 9E 03 14
+ AD 31 AD 16 02 1B 14 94 00 94 00 9E 5C 5C 78 76 00 7B 02 A1 21 63 9D
+ FC FB 16 02 83 00 AC 8D 94 66 16 01 9E 16 01 F8 E6 6B 0D E8 BA E9 DA
+ 6E 03 10 EB 63 6E 03 12 ED 63 EE 63 7B 08 33 02 22 9B 09 02)
+ (|CLFSWM|::|GROUP-P| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ |CLOS|::|| |CLOS|::|ENSURE-GENERIC-FUNCTION|
+ :|GENERIC-FUNCTION-CLASS| :|LAMBDA-LIST| (|CLFSWM|::|GROUP|)
+ :|ARGUMENT-PRECEDENCE-ORDER| (|CLFSWM|::|GROUP|) |CLOS|::|METHODS|
+ |CLOS|::|CLASS-DEFAULT-INITARGS| :|METHOD-CLASS|
+ |CLOS|::|| :|METHOD-COMBINATION| :|NAME|
+ |CLOS|::|MAKE-GENERIC-FUNCTION-PROTOTYPE| |CLOS|::|STANDARD|
+ |CLOS|::|FIND-METHOD-COMBINATION| :|DOCUMENTATION| :|DECLARATIONS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|59 61 (DEFMETHOD GROUP-P (#) ...)-7|
+ #43Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 7B 01 7B 08 2D 03 0B 19 01)
+ (|CLFSWM|::|GROUP-P| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|59 61 (DEFMETHOD GROUP-P (#) ...)-7-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|59 61 (DEFMETHOD GROUP-P (#) ...)-7-1-1|
+ #13Y(00 00 00 00 01 00 00 00 00 02 02 19 02) ()
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|GROUP|) |CLOS|::|SIGNATURE|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |CLFSWM|::|GROUP| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|62 64 (DEFMETHOD GROUP-P (GROUP) ...)-8|
+ #43Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 64 38 02 72 2A 7B 01 7B 08 2D 03 0A 19 01)
+ (|CLFSWM|::|GROUP-P| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|62 64 (DEFMETHOD GROUP-P (GROUP) ...)-8-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|62 64 (DEFMETHOD GROUP-P (GROUP) ...)-8-1-1|
+ #13Y(00 00 00 00 01 00 00 00 00 02 00 19 02) ()
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|GROUP|) |CLOS|::|SIGNATURE|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|68 68 (DEFGENERIC CHILD-NAME (CHILD))-9|
+ #112Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 6B 03 99
+ 04 DA DF AF E0 E1 E2 E3 E4 01 03 B8 6F 0B 1B 24 AF 38 01 80 9E 03 14
+ AD 31 AD 16 02 1B 14 94 00 94 00 9E 5C 5C 78 76 00 7B 02 A1 21 63 9D
+ FC FB 16 02 83 00 AC 8D 94 66 16 01 9E 16 01 F8 E6 6B 0D E8 BA E9 DA
+ 6E 03 10 EB 63 6E 03 12 ED 63 EE 63 7B 08 33 02 22 9B 09 02)
+ (|CLFSWM|::|CHILD-NAME| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ |CLOS|::|| |CLOS|::|ENSURE-GENERIC-FUNCTION|
+ :|GENERIC-FUNCTION-CLASS| :|LAMBDA-LIST| (|CLFSWM|::|CHILD|)
+ :|ARGUMENT-PRECEDENCE-ORDER| (|CLFSWM|::|CHILD|) |CLOS|::|METHODS|
+ |CLOS|::|CLASS-DEFAULT-INITARGS| :|METHOD-CLASS|
+ |CLOS|::|| :|METHOD-COMBINATION| :|NAME|
+ |CLOS|::|MAKE-GENERIC-FUNCTION-PROTOTYPE| |CLOS|::|STANDARD|
+ |CLOS|::|FIND-METHOD-COMBINATION| :|DOCUMENTATION| :|DECLARATIONS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|70 71 (DEFMETHOD CHILD-NAME (#) ...)-10|
+ #43Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 7B 01 7B 08 2D 03 0B 19 01)
+ (|CLFSWM|::|CHILD-NAME| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|70 71 (DEFMETHOD CHILD-NAME (#) ...)-10-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|70 71 (DEFMETHOD CHILD-NAME (#) ...)-10-1-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 AD 2F 00 19 02)
+ (|XLIB|::|WM-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|CHILD|) |CLOS|::|SIGNATURE|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |XLIB|::|WINDOW| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|73 74 (DEFMETHOD CHILD-NAME (#) ...)-11|
+ #43Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 7B 01 7B 08 2D 03 0B 19 01)
+ (|CLFSWM|::|CHILD-NAME| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|73 74 (DEFMETHOD CHILD-NAME (#) ...)-11-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|73 74 (DEFMETHOD CHILD-NAME (#) ...)-11-1-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 AD 2F 00 19 02)
+ (|CLFSWM|::|GROUP-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|CHILD|) |CLOS|::|SIGNATURE|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |CLFSWM|::|GROUP| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|76 78 (DEFMETHOD CHILD-NAME (CHILD) ...)-12|
+ #43Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 64 38 02 72 2A 7B 01 7B 08 2D 03 0A 19 01)
+ (|CLFSWM|::|CHILD-NAME| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|76 78 (DEFMETHOD CHILD-NAME (CHILD) ...)-12-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|76 78 (DEFMETHOD CHILD-NAME (CHILD) ...)-12-1-1|
+ #13Y(00 00 00 00 01 00 00 00 00 02 C5 19 02) ("???")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|CHILD|) |CLOS|::|SIGNATURE|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|82 91 (DEFMACRO WITH-ALL-CHILDS (# &BODY BODY) ...)-13|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|WITH-ALL-CHILDS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|WITH-ALL-CHILDS|
+ #108Y(00 00 00 00 02 00 00 00 00 03 AE DA 8B 01 80 49 9F 5C 78 AC DA DA
+ 2D 03 01 1D 80 42 AC 94 00 9E 5C 78 A3 5C 79 38 01 72 90 38 01 72
+ 90 E4 AE B1 7B 01 B1 E5 E6 B5 7B 02 E7 B3 E8 B8 7B 02 7B 02 B5 B5
+ 7B 02 7B 03 7B 03 7B 01 33 02 22 5D 7A 7B 01 AF B3 7B 02 61 03 19
+ 0A AE 2F 02 19 03 DD DE B1 DF B0 E0 6F 07 E2 B3 E3 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|WITH-ALL-CHILDS|
+ (|CLFSWM|::|ROOT| |CLFSWM|::|CHILD|) |COMMON-LISP|::|LABELS|
+ |COMMON-LISP|::|WHEN| |CLFSWM|::|GROUP-P| |COMMON-LISP|::|DOLIST|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|94 103 (DEFMACRO WITH-ALL-GROUPS (# &BODY BODY) ...)-14|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|WITH-ALL-GROUPS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|WITH-ALL-GROUPS|
+ #108Y(00 00 00 00 02 00 00 00 00 03 AE DA 8B 01 80 49 9F 5C 78 AC DA DA
+ 2D 03 01 1D 80 42 AC 94 00 9E 5C 78 A3 5C 79 38 01 72 90 38 01 72
+ 90 E4 AE B1 7B 01 E5 E6 B4 7B 02 B3 E7 B3 E8 B8 7B 02 7B 02 B5 B5
+ 7B 02 7B 03 7B 01 33 02 22 5D 7A 7B 03 7B 01 AF B3 7B 02 61 03 19
+ 0A AE 2F 02 19 03 DD DE B1 DF B0 E0 6F 07 E2 B3 E3 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|WITH-ALL-GROUPS|
+ (|CLFSWM|::|ROOT| |CLFSWM|::|GROUP|) |COMMON-LISP|::|LABELS|
+ |COMMON-LISP|::|WHEN| |CLFSWM|::|GROUP-P| |COMMON-LISP|::|DOLIST|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|106 116 (DEFMACRO WITH-ALL-WINDOWS (# &BODY BODY) ...)-15|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|WITH-ALL-WINDOWS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|WITH-ALL-WINDOWS|
+ #110Y(00 00 00 00 02 00 00 00 00 03 AE DA 8B 01 80 4B 9F 5C 78 AC DA DA
+ 2D 03 01 1D 80 44 AC 94 00 9E 5C 78 A3 5C 79 38 01 72 90 38 01 72
+ 90 E4 AE B1 7B 01 E5 E6 B4 7B 02 A4 5D 7A E5 E7 B5 7B 02 E8 B3 E9
+ B8 7B 02 7B 02 B5 B5 7B 02 7B 03 7B 03 7B 04 7B 01 AF B3 7B 02 61
+ 03 19 0A AE 2F 02 19 03 DD DE B1 DF B0 E0 6F 07 E2 B3 E3 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|WITH-ALL-WINDOWS|
+ (|CLFSWM|::|ROOT| |CLFSWM|::|WINDOW|) |COMMON-LISP|::|LABELS|
+ |COMMON-LISP|::|WHEN| |XLIB|::|WINDOW-P| |CLFSWM|::|GROUP-P|
+ |COMMON-LISP|::|DOLIST| |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|120 130 (DEFMACRO WITH-ALL-WINDOWS-GROUPS (# BODY-WINDOW BODY-GROUP) ...)-16|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|WITH-ALL-WINDOWS-GROUPS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|WITH-ALL-WINDOWS-GROUPS|
+ #116Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 80 4E 9F 5C 78
+ AC DD DD 2D 03 01 1D 80 47 AC 94 00 9E 5C 78 A3 5C 5C 78 A4 5C 5C
+ 5C 78 38 01 72 90 38 01 72 90 E5 AE B2 7B 01 E6 B4 E7 B5 7B 02 E8
+ B5 E9 B5 EA BB 7B 02 7B 02 B7 B7 7B 02 7B 03 7B 03 7B 04 7B 03 7B
+ 01 AF B4 7B 02 61 03 19 0B AE 2F 02 19 03 DE DF B1 E0 B0 E1 6F 08
+ E3 B3 E4 33 07 1E)
+ (4. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 2. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|WITH-ALL-WINDOWS-GROUPS|
+ (|CLFSWM|::|ROOT| |CLFSWM|::|CHILD|) |COMMON-LISP|::|LABELS|
+ |COMMON-LISP|::|TYPECASE| |XLIB|::|WINDOW| |CLFSWM|::|GROUP|
+ |COMMON-LISP|::|DOLIST| |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|134 138 (DEFUN GROUP-FIND-FREE-NUMBER NIL ...)-17|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GROUP-FIND-FREE-NUMBER| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GROUP-FIND-FREE-NUMBER|
+ #34Y(00 00 00 00 00 00 00 00 06 01 00 2B 01 00 0B 00 00 AC 6D 00 01 6B
+ 01 9E 34 16 01 68 00 00 2F 02 19 02)
+ (#Y(|CLFSWM|::|GROUP-FIND-FREE-NUMBER-G47649|
+ #48Y(00 00 00 00 01 00 00 00 06 02 AD 2F 01 1F 1F AD 6F 02 07 00 01
+ 5D 0C 00 01 AD 6F 03 63 1B 08 87 01 00 14 28 65 83 01 AD 8D 94
+ 74 00 19 04 19 02)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|GROUP-P| |CLFSWM|::|GROUP-NUMBER|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP|) |COMMON-LISP|::|NIL|)
+ |CLFSWM|::|*ROOT-GROUP*| |TOOLS|::|FIND-FREE-NUMBER|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|142 159 (DEFUN CREATE-GROUP (&KEY NAME # ...) ...)-18|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|CREATE-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|CREATE-GROUP|
+ #131Y(00 00 00 00 00 00 00 00 86 1B 07 00 00 00 3D 07 3B 06 03 2E 07 FE
+ 3B 05 02 CD FD 3B 04 02 CD FC 3B 03 02 CE FB 3B 02 02 CE FA 3D 01
+ E4 6B 0B DC E6 DD E6 E7 E8 E9 E8 EA EB 6F 12 ED 6B 14 EF AD F0 81
+ 2F 00 F1 F2 F3 F4 6F 12 F5 F6 6E 14 1D 65 1E AD 65 1F 65 20 6F 12
+ EA 65 21 6F 12 65 22 6B 23 65 24 65 25 6E 0A 26 65 27 DA B7 DB B8
+ DC B9 DD BA DE BB DF BC 65 28 BB 65 29 BC E0 C1 2D 13 2A 19 0A)
+ (:|NAME| :|NUMBER| :|X| :|Y| :|W| :|H| :|LAYOUT|
+ |CLFSWM|::|GROUP-FIND-FREE-NUMBER| #1=0.1f0 #2=0.8f0 :|PARENT|
+ |CLFSWM|::|*ROOT*| 0. :|WIDTH| 200. :|HEIGHT| :|BACKGROUND| "Black"
+ |CLFSWM|::|GET-COLOR| :|COLORMAP| |CLFSWM|::|*SCREEN*| |XLIB|::|SCREEN|
+ 9. :|BORDER-WIDTH| 1. :|BORDER| "Red" :|EVENT-MASK|
+ (:|EXPOSURE| :|BUTTON-PRESS|) |XLIB|::|CREATE-WINDOW| :|DRAWABLE|
+ :|FOREGROUND| "Green" "Black" :|FONT| |CLFSWM|::|*DEFAULT-FONT*|
+ :|LINE-STYLE| :|SOLID| |XLIB|::|CREATE-GCONTEXT| |CLFSWM|::|GROUP|
+ :|WINDOW| :|GC| |CLOS|::|MAKE-INSTANCE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&KEY| |CLFSWM|::|NAME|
+ (|COMMON-LISP|::|NUMBER| (|CLFSWM|::|GROUP-FIND-FREE-NUMBER|))
+ (|CLFSWM|::|X| #1#) (|CLFSWM|::|Y| 0.1f0) (|CLFSWM|::|W| #2#)
+ (|CLFSWM|::|H| 0.8f0) |CLFSWM|::|LAYOUT|)
+ |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|162 163 (DEFUN ADD-GROUP (GROUP FATHER) ...)-19|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|ADD-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|ADD-GROUP|
+ #22Y(00 00 00 00 02 00 00 00 06 03 AD 6F 00 AF 9E 7A AC B0 30 01 19 05)
+ (|CLFSWM|::|GROUP-CHILD|
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|GROUP-CHILD|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP| |CLFSWM|::|FATHER|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|170 177 (DEFUN GET-CURRENT-CHILD NIL ...)-20|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GET-CURRENT-CHILD| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GET-CURRENT-CHILD|
+ #59Y(00 00 00 00 00 00 00 00 06 01 6B 00 6B 01 8E 04 1D 6B 00 DC AD 8E
+ 33 12 AC DD 8B 04 1B 6B 00 2F 05 78 DC AD 32 33 16 01 1C 07 0E 00
+ 19 02 00 19 01 6B 00 2F 05 5B 19 02 00 19 02)
+ (|CLFSWM|::|*CURRENT-CHILD*| |CLFSWM|::|*ROOT-GROUP*| |XLIB|::|WINDOW|
+ #.(|CLOS|::|FIND-CLASS| '|CLFSWM|::|GROUP|) |CLOS|::|TYPEP-CLASS|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Return the current focused child"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|180 184 (DEFUN FIND-CHILD (TO-FIND ROOT) ...)-21|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FIND-CHILD| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FIND-CHILD|
+ #35Y(02 00 01 00 02 00 00 00 06 03 00 2B 01 7F 03 00 00 47 00 0D AF AF
+ 6D 01 02 B2 9E 34 16 01 48 19 04 19 04)
+ (|CLFSWM|::|FIND-CHILD|
+ #Y(|CLFSWM|::|FIND-CHILD-G47727|
+ #48Y(00 00 00 00 01 00 00 00 06 02 AD 69 00 01 8E 04 0B AD 2F 02 1F
+ 18 AD 6F 03 63 1B 0B 02 49 01 87 01 00 14 28 65 83 01 AD 8D 94
+ 74 00 19 04 19 02)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|TO-FIND| |CLFSWM|::|ROOT|)
+ "Find to-find in root or in its childs"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|188 192 (DEFUN FIND-FATHER-GROUP (TO-FIND &OPTIONAL #) ...)-22|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FIND-FATHER-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FIND-FATHER-GROUP|
+ #41Y(02 00 01 00 01 00 01 00 06 08 00 2B 01 7F 03 00 00 3B 02 03 0E 00
+ FA 47 01 0D AF AF 6D 02 02 B2 9E 34 16 01 48 19 04 19 04)
+ (|CLFSWM|::|*ROOT-GROUP*| |CLFSWM|::|FIND-FATHER-GROUP|
+ #Y(|CLFSWM|::|FIND-FATHER-GROUP-G47754|
+ #52Y(00 00 00 00 01 00 00 00 06 02 AD 2F 02 1F 23 69 00 01 AE 6F 03
+ 38 03 8C B6 06 AD 6F 03 63 1B 0B 9E 49 01 87 01 00 14 28 61 83
+ 01 AD 8D 94 74 00 19 04 19 02)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|TO-FIND| |COMMON-LISP|::|&OPTIONAL|
+ (|CLFSWM|::|ROOT| |CLFSWM|::|*ROOT-GROUP*|))
+ "Return the father group of to-find"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|196 200 (DEFUN FIND-GROUP-WINDOW (WINDOW &OPTIONAL #) ...)-23|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FIND-GROUP-WINDOW| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FIND-GROUP-WINDOW|
+ #41Y(02 00 01 00 01 00 01 00 06 08 00 2B 01 7F 03 00 00 3B 02 03 0E 00
+ FA 47 01 0D AF AF 6D 02 02 B2 9E 34 16 01 48 19 04 19 04)
+ (|CLFSWM|::|*ROOT-GROUP*| |CLFSWM|::|FIND-GROUP-WINDOW|
+ #Y(|CLFSWM|::|FIND-GROUP-WINDOW-G47782|
+ #50Y(00 00 00 00 01 00 00 00 06 02 AD 2F 02 1F 21 69 00 01 AE 6F 03
+ 8A 04 06 AD 6F 05 63 1B 0B 9E 49 01 87 01 00 14 28 63 83 01 AD
+ 8D 94 74 00 19 04 19 02)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-WINDOW| |XLIB|::|WINDOW-EQUAL|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|WINDOW| |COMMON-LISP|::|&OPTIONAL|
+ (|CLFSWM|::|ROOT| |CLFSWM|::|*ROOT-GROUP*|))
+ "Return the group with the window window"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|203 208 (DEFUN FIND-GROUP-BY-NAME (NAME) ...)-24|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FIND-GROUP-BY-NAME| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FIND-GROUP-BY-NAME|
+ #41Y(02 00 01 00 01 00 00 00 06 02 00 2B 01 7F 02 00 00 47 00 13 06 03
+ 00 1F 0B AF AF 6D 01 02 6B 02 9E 34 16 01 48 19 03 19 03)
+ (|CLFSWM|::|FIND-GROUP-BY-NAME|
+ #Y(|CLFSWM|::|FIND-GROUP-BY-NAME-G47809|
+ #52Y(00 00 00 00 01 00 00 00 06 02 AD 2F 02 1F 23 69 00 01 AE 6F 03
+ 38 04 8C 3B 06 AD 6F 04 63 1B 0B 9E 49 01 87 01 00 14 28 61 83
+ 01 AD 8D 94 74 00 19 04 19 02)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-NAME| |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP|) |COMMON-LISP|::|NIL|)
+ |CLFSWM|::|*ROOT-GROUP*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|NAME|) "Find a group from its name"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|210 215 (DEFUN FIND-GROUP-BY-NUMBER (NUMBER) ...)-25|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FIND-GROUP-BY-NUMBER| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FIND-GROUP-BY-NUMBER|
+ #43Y(02 00 01 00 01 00 00 00 06 02 00 2B 01 7F 02 00 00 47 00 15 68 03
+ 00 32 0A 1F 0B AF AF 6D 01 02 6B 02 9E 34 16 01 48 19 03 19 03)
+ (|CLFSWM|::|FIND-GROUP-BY-NUMBER|
+ #Y(|CLFSWM|::|FIND-GROUP-BY-NUMBER-G47838|
+ #51Y(00 00 00 00 01 00 00 00 06 02 AD 2F 02 1F 22 69 00 01 AE 6F 03
+ 90 01 2D 06 AD 6F 04 63 1B 0B 9E 49 01 87 01 00 14 28 62 83 01
+ AD 8D 94 74 00 19 04 19 02)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-NUMBER| |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP|) |COMMON-LISP|::|NIL|)
+ |CLFSWM|::|*ROOT-GROUP*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|NUMBER|) "Find a group from its number"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|220 225 (DEFUN GET-ALL-WINDOWS (&OPTIONAL #) ...)-26|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GET-ALL-WINDOWS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GET-ALL-WINDOWS|
+ #37Y(00 00 00 00 00 00 01 00 06 07 3B 01 03 0E 00 F9 00 2B 01 00 0B 00
+ 00 AC 6D 01 01 AF 9E 34 16 01 06 00 00 19 03)
+ (|CLFSWM|::|*ROOT-GROUP*|
+ #Y(|CLFSWM|::|GET-ALL-WINDOWS-G47867|
+ #51Y(00 00 00 00 01 00 00 00 06 02 DB AE 8F 33 08 AD 07 00 01 5D 0C
+ 00 01 AD 2F 02 1F 15 AD 6F 03 63 1B 08 87 01 00 14 28 62 83 01
+ AD 8D 94 74 00 19 04 19 02)
+ (|COMMON-LISP|::|NIL| |XLIB|::|WINDOW| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|WINDOW|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|&OPTIONAL| (|CLFSWM|::|ROOT| |CLFSWM|::|*ROOT-GROUP*|))
+ "Return all windows in root and in its childs"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|228 233 (DEFUN GET-HIDDEN-WINDOWS NIL ...)-27|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GET-HIDDEN-WINDOWS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GET-HIDDEN-WINDOWS|
+ #31Y(00 00 00 00 00 00 00 00 06 01 2E 00 14 99 01 6B 02 6F 03 71 A0 38
+ 05 72 51 AC AE 30 04 19 03)
+ (|CLFSWM|::|GET-ALL-WINDOWS| |CLFSWM|::|WINDOW-HIDDEN-P|
+ |CLFSWM|::|*ROOT*| |XLIB|::|QUERY-TREE|
+ |COMMON-LISP|::|SET-DIFFERENCE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Return all hiddens windows"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|238 266 (DEFUN DISPLAY-GROUP-INFO (GROUP) ...)-28|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|DISPLAY-GROUP-INFO| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DISPLAY-GROUP-INFO|
+ #430Y(05 00 02 00 01 00 00 00 06 02 6B 00 6F 01 6B 00 6F 02 73 02 35 AE
+ 6B 03 8F 04 06 AE DE 72 3E 2F 05 AE E0 72 3E E1 30 08 42 04 53 81
+ 45 B4 6B 03 8F 04 07 B4 6B 09 8E 04 80 9F D0 14 6F 0C 93 00 04 B2
+ AD 30 0D 16 01 B4 DE 72 3E B5 E0 72 3E E8 B5 38 02 72 76 B9 E9 72
+ 3E BA EA 8E 3E 80 7E D7 14 ED AF 38 02 31 8B AD AF 31 86 AC AF 31
+ 86 EE AF 38 02 31 8B 16 02 AC 81 77 00 2D 05 15 B2 B5 6B 03 8F 04
+ 80 BA B5 DE 72 3E B6 E0 72 3E E8 AF B7 82 02 35 03 14 38 02 72 76
+ 2E 16 14 72 48 AC AE 31 86 F1 AE 38 02 31 8B 16 01 AC 81 77 00 2D
+ 05 15 0E 18 1D 80 89 B5 DE 72 3E B6 E0 72 3E E8 AF B7 82 02 35 03
+ 14 F3 38 01 72 76 53 80 66 AE F4 30 1B 6B 18 63 1B 80 4C CF 1B FF
+ 5E 38 02 72 76 BB EA 72 3E EB AE 38 02 31 8B AC AE 31 86 16 01 AC
+ 32 77 16 01 1B FF 67 B0 F7 AE 6F 1E 2D 03 1B 1B 20 87 01 00 F6 AD
+ 8E 33 6E AC 65 1F 8B 20 12 B0 65 21 AE 6F 22 AF 6F 23 92 00 02 03
+ 24 F8 2D 04 1B 83 01 AD 8D 94 5A 16 02 AE 65 25 30 1B AE 32 77 3F
+ 54 67 00 00 00 2F 26 55 F8 2D 05 15 B5 65 27 72 3E 63 1B 22 87 01
+ 00 F6 AD 8F 33 18 B7 DE 72 3E B8 E0 72 3E E8 B1 B9 82 02 35 05 14
+ B0 6F 1E 6F 28 2D 05 29 83 01 AD 8D 94 5A 00 16 03 54 65 2A 67 00
+ 00 03 65 2B 72 2F 67 00 00 02 03 2C 5F 14 AD 03 2C 60 65 2D AD 03
+ 2E 60 16 01 05 00 00 00 1D 0F 67 00 00 03 67 00 00 01 67 00 00 00
+ 2D 03 2F 67 00 00 02 2F 30 55 19 07)
+ (|CLFSWM|::|*DEFAULT-FONT*| |XLIB|::|MAX-CHAR-ASCENT|
+ |XLIB|::|MAX-CHAR-DESCENT| |CLFSWM|::|*CURRENT-ROOT*|
+ |CLFSWM|::|WINDOW| |XLIB|::|CLEAR-AREA| |CLFSWM|::|GC| (2.)
+ |XLIB|::|COPY-GCONTEXT-LOCAL-STATE| |CLFSWM|::|*CURRENT-CHILD*| "Red"
+ "Green" |CLFSWM|::|GET-COLOR| |XLIB|::|SET-GCONTEXT-FOREGROUND| 5.
+ |COMMON-LISP|::|NUMBER| |CLFSWM|::|NAME| " - " "" "Group: "
+ " "
+ |XLIB|::|DRAW-IMAGE-GLYPHS| |CLFSWM|::|GET-HIDDEN-WINDOWS|
+ " hidden windows " |CLFSWM|::|*CHILD-SELECTION*|
+ |COMMON-LISP|::|CHARACTER|
+ #Y(|CLFSWM|::|DISPLAY-GROUP-INFO-1|
+ #19Y(00 00 00 00 01 00 00 00 01 17 DA AF 38 02 31 8B 9E 19 03)
+ ("Selection: ")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|FORMAT| |XLIB|::|WINDOW|
+ #Y(|CLFSWM|::|DISPLAY-GROUP-INFO-2|
+ #21Y(00 00 00 00 02 00 00 00 01 18 AE B0 31 86 DA B0 31 8A 9E 19 04)
+ (#\ ) (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |XLIB|::|WM-NAME| #.(|CLOS|::|FIND-CLASS| '|CLFSWM|::|GROUP|)
+ |CLOS|::|TYPEP-CLASS|
+ #Y(|CLFSWM|::|DISPLAY-GROUP-INFO-3|
+ #37Y(00 00 00 00 03 00 00 00 01 19 DA B1 38 02 31 8B AF B1 31 86 DB
+ B1 31 8A AE B1 31 86 DC B1 38 02 31 8B 9E 19 05)
+ ("group:" #\[ "] ")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |CLFSWM|::|GROUP-NUMBER| |CLFSWM|::|GROUP-NAME| ""
+ #Y(|CLFSWM|::|DISPLAY-GROUP-INFO-4|
+ #19Y(00 00 00 00 01 00 00 00 01 17 DA AF 38 02 31 8B 9E 19 03)
+ (" ")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|CLOSE| |CLFSWM|::|CHILD| |TOOLS|::|ENSURE-PRINTABLE|
+ |XLIB|::|DRAW-GLYPHS| |XLIB|::|GCONTEXT| 6. 2. 0. 26.
+ |XLIB|::|RESTORE-GCONTEXT-TEMP-STATE|
+ |XLIB|::|DEALLOCATE-GCONTEXT-STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|277 282 (DEFUN GET-FATHER-LAYOUT (CHILD FATHER) ...)-29|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GET-FATHER-LAYOUT| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GET-FATHER-LAYOUT|
+ #37Y(00 00 00 00 02 00 00 00 06 03 AD 88 00 0B 2E 03 19 03 14 B0 B0 36
+ 02 19 04 AD 6F 01 92 00 73 AF AF 30 02 19 04)
+ (|CLFSWM|::|GROUP-P| |CLFSWM|::|GROUP-LAYOUT| |CLFSWM|::|NO-LAYOUT|
+ |CLFSWM|::|GET-FULLSCREEN-SIZE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|285 285 (DEFGENERIC ADAPT-CHILD-TO-FATHER (CHILD FATHER))-30|
+ #112Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 6B 03 99
+ 04 DA DF AF E0 E1 E2 E3 E4 01 03 B8 6F 0B 1B 24 AF 38 01 80 9E 03 14
+ AD 31 AD 16 02 1B 14 94 00 94 00 9E 5C 5C 78 76 00 7B 02 A1 21 63 9D
+ FC FB 16 02 83 00 AC 8D 94 66 16 01 9E 16 01 F8 E6 6B 0D E8 BA E9 DA
+ 6E 03 10 EB 63 6E 03 12 ED 63 EE 63 7B 08 33 02 22 9B 09 02)
+ (|CLFSWM|::|ADAPT-CHILD-TO-FATHER| |SYSTEM|::|TRACED-DEFINITION|
+ |SYSTEM|::|UNTRACE1| |CLOS|::||
+ |CLOS|::|ENSURE-GENERIC-FUNCTION| :|GENERIC-FUNCTION-CLASS| :|LAMBDA-LIST|
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|) :|ARGUMENT-PRECEDENCE-ORDER|
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|) |CLOS|::|METHODS|
+ |CLOS|::|CLASS-DEFAULT-INITARGS| :|METHOD-CLASS|
+ |CLOS|::|| :|METHOD-COMBINATION| :|NAME|
+ |CLOS|::|MAKE-GENERIC-FUNCTION-PROTOTYPE| |CLOS|::|STANDARD|
+ |CLOS|::|FIND-METHOD-COMBINATION| :|DOCUMENTATION| :|DECLARATIONS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|287 295 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-31|
+ #48Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 64 38 02 72 2A 7B 02 7B 08 2D 03 0B 19
+ 01)
+ (|CLFSWM|::|ADAPT-CHILD-TO-FATHER| |SYSTEM|::|TRACED-DEFINITION|
+ |SYSTEM|::|UNTRACE1|
+ #Y(#:|287 295 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-31-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|287 295 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-31-1-1|
+ #68Y(02 00 01 00 02 00 00 00 00 03 00 2B 02 7F 03 00 00 7F 02 00 01
+ 9D 2B 01 00 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01 57 03
+ B0 36 00 16 06 1B 10 58 67 00 00 01 76 00 AD 36 01 18 02 01 19
+ 02 00 4D 19 05)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(#:|287 295 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-31-1-1-1|
+ #18Y(00 00 00 00 00 00 00 00 00 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(#:|287 295 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-31-1-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 00 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ #Y(#:|287 295 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-31-1-1-2|
+ #47Y(00 00 00 00 00 00 00 00 00 01 69 01 01 69 01 02 30 01 42 05
+ 69 01 01 B1 30 02 69 01 01 B0 30 03 69 01 01 AF 30 04 69 01
+ 01 AE 30 05 15 19 05)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|GET-FATHER-LAYOUT|
+ |XLIB|::|SET-DRAWABLE-X| |XLIB|::|SET-DRAWABLE-Y|
+ |XLIB|::|SET-DRAWABLE-WIDTH| |XLIB|::|SET-DRAWABLE-HEIGHT|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (#((|COMMON-LISP|::|OR| |XLIB|::|MATCH-ERROR|
+ |XLIB|::|WINDOW-ERROR| |XLIB|::|DRAWABLE-ERROR|)
+ 39.)
+ 1. . 1.))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|WINDOW| |CLFSWM|::|FATHER|)
+ |CLOS|::|SIGNATURE|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |XLIB|::|WINDOW| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|297 307 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-32|
+ #48Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 64 38 02 72 2A 7B 02 7B 08 2D 03 0B 19
+ 01)
+ (|CLFSWM|::|ADAPT-CHILD-TO-FATHER| |SYSTEM|::|TRACED-DEFINITION|
+ |SYSTEM|::|UNTRACE1|
+ #Y(#:|297 307 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-32-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|297 307 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-32-1-1|
+ #68Y(02 00 01 00 02 00 00 00 00 03 00 2B 02 7F 03 00 00 7F 02 00 01
+ 9D 2B 01 00 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01 57 03
+ B0 36 00 16 06 1B 10 58 67 00 00 01 76 00 AD 36 01 18 02 01 19
+ 02 00 4D 19 05)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(#:|297 307 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-32-1-1-1|
+ #18Y(00 00 00 00 00 00 00 00 00 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(#:|297 307 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-32-1-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 00 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ #Y(#:|297 307 (DEFMETHOD ADAPT-CHILD-TO-FATHER (# FATHER) ...)-32-1-1-2|
+ #86Y(00 00 00 00 00 00 00 00 00 01 69 01 01 69 01 02 30 01 42 05
+ 69 01 01 AC DC B3 32 3F AC DD B2 32 3F AC DE B1 32 3F AC DF
+ B0 32 3F AC E0 72 3E AD DC 72 3E 30 07 AC E0 72 3E AD DD 72
+ 3E 30 08 AC E0 72 3E AD DE 72 3E 30 09 AC E0 72 3E AD DF 72
+ 3E 30 0A 9E 19 07)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|GET-FATHER-LAYOUT|
+ |CLFSWM|::|RX| |CLFSWM|::|RY| |CLFSWM|::|RW| |CLFSWM|::|RH|
+ |CLFSWM|::|WINDOW| |XLIB|::|SET-DRAWABLE-X|
+ |XLIB|::|SET-DRAWABLE-Y| |XLIB|::|SET-DRAWABLE-WIDTH|
+ |XLIB|::|SET-DRAWABLE-HEIGHT|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (#((|COMMON-LISP|::|OR| |XLIB|::|MATCH-ERROR|
+ |XLIB|::|WINDOW-ERROR| |XLIB|::|DRAWABLE-ERROR|)
+ 39.)
+ 1. . 1.))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|GROUP| |CLFSWM|::|FATHER|)
+ |CLOS|::|SIGNATURE|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |CLFSWM|::|GROUP| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|311 311 (DEFGENERIC SHOW-CHILD (CHILD FATHER))-33|
+ #112Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 6B 03 99
+ 04 DA DF AF E0 E1 E2 E3 E4 01 03 B8 6F 0B 1B 24 AF 38 01 80 9E 03 14
+ AD 31 AD 16 02 1B 14 94 00 94 00 9E 5C 5C 78 76 00 7B 02 A1 21 63 9D
+ FC FB 16 02 83 00 AC 8D 94 66 16 01 9E 16 01 F8 E6 6B 0D E8 BA E9 DA
+ 6E 03 10 EB 63 6E 03 12 ED 63 EE 63 7B 08 33 02 22 9B 09 02)
+ (|CLFSWM|::|SHOW-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ |CLOS|::|| |CLOS|::|ENSURE-GENERIC-FUNCTION|
+ :|GENERIC-FUNCTION-CLASS| :|LAMBDA-LIST|
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|) :|ARGUMENT-PRECEDENCE-ORDER|
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|) |CLOS|::|METHODS|
+ |CLOS|::|CLASS-DEFAULT-INITARGS| :|METHOD-CLASS|
+ |CLOS|::|| :|METHOD-COMBINATION| :|NAME|
+ |CLOS|::|MAKE-GENERIC-FUNCTION-PROTOTYPE| |CLOS|::|STANDARD|
+ |CLOS|::|FIND-METHOD-COMBINATION| :|DOCUMENTATION| :|DECLARATIONS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|312 312 (DEFGENERIC HIDE-CHILD (CHILD))-34|
+ #112Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 6B 03 99
+ 04 DA DF AF E0 E1 E2 E3 E4 01 03 B8 6F 0B 1B 24 AF 38 01 80 9E 03 14
+ AD 31 AD 16 02 1B 14 94 00 94 00 9E 5C 5C 78 76 00 7B 02 A1 21 63 9D
+ FC FB 16 02 83 00 AC 8D 94 66 16 01 9E 16 01 F8 E6 6B 0D E8 BA E9 DA
+ 6E 03 10 EB 63 6E 03 12 ED 63 EE 63 7B 08 33 02 22 9B 09 02)
+ (|CLFSWM|::|HIDE-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ |CLOS|::|| |CLOS|::|ENSURE-GENERIC-FUNCTION|
+ :|GENERIC-FUNCTION-CLASS| :|LAMBDA-LIST| (|CLFSWM|::|CHILD|)
+ :|ARGUMENT-PRECEDENCE-ORDER| (|CLFSWM|::|CHILD|) |CLOS|::|METHODS|
+ |CLOS|::|CLASS-DEFAULT-INITARGS| :|METHOD-CLASS|
+ |CLOS|::|| :|METHOD-COMBINATION| :|NAME|
+ |CLOS|::|MAKE-GENERIC-FUNCTION-PROTOTYPE| |CLOS|::|STANDARD|
+ |CLOS|::|FIND-METHOD-COMBINATION| :|DOCUMENTATION| :|DECLARATIONS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|314 323 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-35|
+ #48Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 64 38 02 72 2A 7B 02 7B 08 2D 03 0B 19
+ 01)
+ (|CLFSWM|::|SHOW-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|314 323 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-35-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|314 323 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-35-1-1|
+ #68Y(02 00 01 00 02 00 00 00 00 03 00 2B 02 7F 03 00 00 7F 02 00 01
+ 9D 2B 01 00 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01 57 03
+ B0 36 00 16 06 1B 10 58 67 00 00 01 76 00 AD 36 01 18 02 01 19
+ 02 00 4D 19 05)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(#:|314 323 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-35-1-1-1|
+ #18Y(00 00 00 00 00 00 00 00 00 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(#:|314 323 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-35-1-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 00 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ #Y(#:|314 323 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-35-1-1-2|
+ #68Y(00 00 00 00 00 00 00 00 00 01 69 01 01 69 01 01 69 01 02 70
+ 01 0E 02 1C 0A 69 01 01 6B 03 32 04 59 1F 1F AD DE 72 3E DF
+ 6F 06 30 07 AD DE 72 3E 2F 08 93 00 06 AD DE 72 3E 2F 09 69
+ 01 01 2F 0A 19 03 19 03)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|ADAPT-CHILD-TO-FATHER|
+ |CLFSWM|::|*SHOW-ROOT-GROUP-P*| |CLFSWM|::|*CURRENT-ROOT*|
+ |CLFSWM|::|WINDOW| "Black" |CLFSWM|::|GET-COLOR|
+ |XLIB|::|SET-WINDOW-BACKGROUND| |XLIB|::|MAP-WINDOW|
+ |CLFSWM|::|RAISE-WINDOW| |CLFSWM|::|DISPLAY-GROUP-INFO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (#((|COMMON-LISP|::|OR| |XLIB|::|MATCH-ERROR|
+ |XLIB|::|WINDOW-ERROR| |XLIB|::|DRAWABLE-ERROR|)
+ 39.)
+ 1. . 1.))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|GROUP| |CLFSWM|::|FATHER|)
+ |CLOS|::|SIGNATURE|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |CLFSWM|::|GROUP| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|326 329 (DEFMETHOD HIDE-CHILD (#) ...)-36|
+ #43Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 7B 01 7B 08 2D 03 0B 19 01)
+ (|CLFSWM|::|HIDE-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|326 329 (DEFMETHOD HIDE-CHILD (#) ...)-36-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|326 329 (DEFMETHOD HIDE-CHILD (#) ...)-36-1-1|
+ #64Y(02 00 01 00 01 00 00 00 00 02 00 2B 01 7F 02 00 00 9D 2B 01 00
+ 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01 57 03 B0 36 00 16
+ 06 1B 10 58 67 00 00 01 76 00 AD 36 01 18 02 01 19 02 00 4D 19
+ 04)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(#:|326 329 (DEFMETHOD HIDE-CHILD (#) ...)-36-1-1-1|
+ #18Y(00 00 00 00 00 00 00 00 00 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(#:|326 329 (DEFMETHOD HIDE-CHILD (#) ...)-36-1-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 00 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ #Y(#:|326 329 (DEFMETHOD HIDE-CHILD (#) ...)-36-1-1-2|
+ #21Y(00 00 00 00 00 00 00 00 00 01 69 01 01 AC DB 72 3E 2F 02 19
+ 02)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|WINDOW| |XLIB|::|UNMAP-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (#((|COMMON-LISP|::|OR| |XLIB|::|MATCH-ERROR|
+ |XLIB|::|WINDOW-ERROR| |XLIB|::|DRAWABLE-ERROR|)
+ 35.)
+ 1. . 1.))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|GROUP|) |CLOS|::|SIGNATURE|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |CLFSWM|::|GROUP| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|332 339 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-37|
+ #48Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 64 38 02 72 2A 7B 02 7B 08 2D 03 0B 19
+ 01)
+ (|CLFSWM|::|SHOW-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|332 339 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-37-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|332 339 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-37-1-1|
+ #68Y(02 00 01 00 02 00 00 00 00 03 00 2B 02 7F 03 00 00 7F 02 00 01
+ 9D 2B 01 00 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01 57 03
+ B0 36 00 16 06 1B 10 58 67 00 00 01 76 00 AD 36 01 18 02 01 19
+ 02 00 4D 19 05)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(#:|332 339 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-37-1-1-1|
+ #18Y(00 00 00 00 00 00 00 00 00 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(#:|332 339 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-37-1-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 00 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ #Y(#:|332 339 (DEFMETHOD SHOW-CHILD (# FATHER) ...)-37-1-1-2|
+ #45Y(00 00 00 00 00 00 00 00 00 01 63 69 01 01 6F 01 25 02 09 69
+ 01 01 69 01 02 30 03 F8 69 01 01 2F 04 9D 1F 07 69 01 01 2F
+ 05 19 02 19 02)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|WINDOW-TYPE| :|NORMAL|
+ |CLFSWM|::|ADAPT-CHILD-TO-FATHER| |XLIB|::|MAP-WINDOW|
+ |CLFSWM|::|RAISE-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (#((|COMMON-LISP|::|OR| |XLIB|::|MATCH-ERROR|
+ |XLIB|::|WINDOW-ERROR| |XLIB|::|DRAWABLE-ERROR|)
+ 39.)
+ 1. . 1.))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|WINDOW| |CLFSWM|::|FATHER|)
+ |CLOS|::|SIGNATURE|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |XLIB|::|WINDOW| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|341 342 (DEFMETHOD HIDE-CHILD (#) ...)-38|
+ #43Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 7B 01 7B 08 2D 03 0B 19 01)
+ (|CLFSWM|::|HIDE-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|341 342 (DEFMETHOD HIDE-CHILD (#) ...)-38-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|341 342 (DEFMETHOD HIDE-CHILD (#) ...)-38-1-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 AD 2F 00 19 02)
+ (|CLFSWM|::|HIDE-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|WINDOW|) |CLOS|::|SIGNATURE|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |XLIB|::|WINDOW| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|349 349 (DEFGENERIC SELECT-CHILD (CHILD SELECTED))-39|
+ #112Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 6B 03 99
+ 04 DA DF AF E0 E1 E2 E3 E4 01 03 B8 6F 0B 1B 24 AF 38 01 80 9E 03 14
+ AD 31 AD 16 02 1B 14 94 00 94 00 9E 5C 5C 78 76 00 7B 02 A1 21 63 9D
+ FC FB 16 02 83 00 AC 8D 94 66 16 01 9E 16 01 F8 E6 6B 0D E8 BA E9 DA
+ 6E 03 10 EB 63 6E 03 12 ED 63 EE 63 7B 08 33 02 22 9B 09 02)
+ (|CLFSWM|::|SELECT-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ |CLOS|::|| |CLOS|::|ENSURE-GENERIC-FUNCTION|
+ :|GENERIC-FUNCTION-CLASS| :|LAMBDA-LIST|
+ (|CLFSWM|::|CHILD| |CLFSWM|::|SELECTED|) :|ARGUMENT-PRECEDENCE-ORDER|
+ (|CLFSWM|::|CHILD| |CLFSWM|::|SELECTED|) |CLOS|::|METHODS|
+ |CLOS|::|CLASS-DEFAULT-INITARGS| :|METHOD-CLASS|
+ |CLOS|::|| :|METHOD-COMBINATION| :|NAME|
+ |CLOS|::|MAKE-GENERIC-FUNCTION-PROTOTYPE| |CLOS|::|STANDARD|
+ |CLOS|::|FIND-METHOD-COMBINATION| :|DOCUMENTATION| :|DECLARATIONS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|351 357 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-40|
+ #48Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 64 38 02 72 2A 7B 02 7B 08 2D 03 0B 19
+ 01)
+ (|CLFSWM|::|SELECT-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|351 357 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-40-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|351 357 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-40-1-1|
+ #68Y(02 00 01 00 02 00 00 00 00 03 00 2B 02 7F 03 00 00 7F 02 00 01
+ 9D 2B 01 00 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01 57 03
+ B0 36 00 16 06 1B 10 58 67 00 00 01 76 00 AD 36 01 18 02 01 19
+ 02 00 4D 19 05)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(#:|351 357 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-40-1-1-1|
+ #18Y(00 00 00 00 00 00 00 00 00 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(#:|351 357 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-40-1-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 00 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ #Y(#:|351 357 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-40-1-1-2|
+ #67Y(00 00 00 00 00 00 00 00 00 01 69 01 01 2F 01 1F 30 69 01 01
+ 2F 02 1F 29 69 01 01 6F 02 69 01 02 24 03 12 07 01 02 1D 11
+ 07 01 02 1C 10 00 14 6F 07 30 08 19 01 0E 04 1B 75 0E 05 1B
+ 71 0E 06 1B 6D 19 01)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-WINDOW| :|MAYBE|
+ |CLFSWM|::|*COLOR-MAYBE-SELECTED*|
+ |CLFSWM|::|*COLOR-UNSELECTED*| |CLFSWM|::|*COLOR-SELECTED*|
+ |CLFSWM|::|GET-COLOR| |XLIB|::|SET-WINDOW-BORDER|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (#((|COMMON-LISP|::|OR| |XLIB|::|MATCH-ERROR|
+ |XLIB|::|WINDOW-ERROR| |XLIB|::|DRAWABLE-ERROR|)
+ 39.)
+ 1. . 1.))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|GROUP| |CLFSWM|::|SELECTED|)
+ |CLOS|::|SIGNATURE|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |CLFSWM|::|GROUP| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|359 364 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-41|
+ #48Y(00 00 00 00 00 00 00 00 00 01 DA DB 38 01 8F 85 03 DA 2F 02 DA DD DE 63
+ DF E0 E1 E2 E3 E4 38 02 72 2A 64 38 02 72 2A 7B 02 7B 08 2D 03 0B 19
+ 01)
+ (|CLFSWM|::|SELECT-CHILD| |SYSTEM|::|TRACED-DEFINITION| |SYSTEM|::|UNTRACE1|
+ #Y(#:|359 364 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-41-1|
+ #15Y(00 00 00 00 01 00 00 00 00 02 DA C6 5D 19 02)
+ (#Y(#:|359 364 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-41-1-1|
+ #68Y(02 00 01 00 02 00 00 00 00 03 00 2B 02 7F 03 00 00 7F 02 00 01
+ 9D 2B 01 00 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01 57 03
+ B0 36 00 16 06 1B 10 58 67 00 00 01 76 00 AD 36 01 18 02 01 19
+ 02 00 4D 19 05)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(#:|359 364 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-41-1-1-1|
+ #18Y(00 00 00 00 00 00 00 00 00 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(#:|359 364 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-41-1-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 00 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ #Y(#:|359 364 (DEFMETHOD SELECT-CHILD (# SELECTED) ...)-41-1-1-2|
+ #49Y(00 00 00 00 00 00 00 00 00 01 69 01 01 69 01 02 24 01 12 07
+ 01 02 1D 11 07 01 02 1C 10 00 14 6F 05 30 06 19 01 0E 02 1B
+ 75 0E 03 1B 71 0E 04 1B 6D)
+ (|COMMON-LISP|::|NIL| :|MAYBE|
+ |CLFSWM|::|*COLOR-MAYBE-SELECTED*|
+ |CLFSWM|::|*COLOR-UNSELECTED*| |CLFSWM|::|*COLOR-SELECTED*|
+ |CLFSWM|::|GET-COLOR| |XLIB|::|SET-WINDOW-BORDER|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (#((|COMMON-LISP|::|OR| |XLIB|::|MATCH-ERROR|
+ |XLIB|::|WINDOW-ERROR| |XLIB|::|DRAWABLE-ERROR|)
+ 39.)
+ 1. . 1.))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|T|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|))
+ :|QUALIFIERS| :|LAMBDA-LIST| (|CLFSWM|::|WINDOW| |CLFSWM|::|SELECTED|)
+ |CLOS|::|SIGNATURE|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ :|SPECIALIZERS| |XLIB|::|WINDOW| |CLOS|::|DO-DEFMETHOD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|366 367 (DEFUN SELECT-CURRENT-GROUP (SELECTED) ...)-42|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-CURRENT-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-CURRENT-GROUP|
+ #17Y(00 00 00 00 01 00 00 00 06 02 6B 00 AE 30 01 19 02)
+ (|CLFSWM|::|*CURRENT-CHILD*| |CLFSWM|::|SELECT-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|SELECTED|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|371 377 (DEFUN SET-FOCUS-TO-CURRENT-CHILD NIL ...)-43|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SET-FOCUS-TO-CURRENT-CHILD| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SET-FOCUS-TO-CURRENT-CHILD|
+ #55Y(00 00 00 00 00 00 00 00 06 01 2E 00 6B 01 89 02 14 6B 01 2F 03 78
+ DE AD 32 33 16 01 1D 07 6B 01 2F 03 78 2F 05 6B 01 DE AD 32 33 16
+ 01 1F 06 6B 01 2F 05 19 01 19 01)
+ (|CLFSWM|::|NO-FOCUS| |CLFSWM|::|*CURRENT-CHILD*| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-CHILD| |XLIB|::|WINDOW| |CLFSWM|::|FOCUS-WINDOW|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|383 394 (DEFUN SHOW-ALL-CHILDS NIL ...)-44|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SHOW-ALL-CHILDS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SHOW-ALL-CHILDS|
+ #20Y(00 00 00 00 00 00 00 00 06 01 6B 00 63 64 C6 34 2E 02 19 01)
+ (|CLFSWM|::|*CURRENT-ROOT*|
+ #Y(|CLFSWM|::|SHOW-ALL-CHILDS-REC|
+ #74Y(00 00 00 00 03 00 00 00 06 04 AF AF 30 00 AF B0 6B 01 8E 04 18
+ 93 02 01 C7 14 30 03 AF 2F 04 1F 27 AF 2F 05 78 B0 6F 05 72 49
+ 63 1B 14 02 1B 69 87 01 00 14 B3 93 06 04 AE B1 32 04 14 28 4B
+ 83 01 AD 8D 94 6B 00 19 07 19 04)
+ (|CLFSWM|::|SHOW-CHILD| |CLFSWM|::|*CURRENT-CHILD*| :|MAYBE|
+ |CLFSWM|::|SELECT-CHILD| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT| |CLFSWM|::|FATHER| |CLFSWM|::|FIRST-P|)
+ |COMMON-LISP|::|NIL|)
+ |CLFSWM|::|SET-FOCUS-TO-CURRENT-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show all childs from *current-root*"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|399 403 (DEFUN HIDE-ALL-CHILDS (ROOT) ...)-45|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|HIDE-ALL-CHILDS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|HIDE-ALL-CHILDS|
+ #41Y(00 00 00 00 01 00 00 00 06 02 AD 2F 00 AD 2F 01 1F 15 AD 6F 02 63
+ 1B 08 87 01 00 14 28 6C 83 01 AD 8D 94 74 00 19 04 19 02)
+ (|CLFSWM|::|HIDE-CHILD| |CLFSWM|::|GROUP-P| |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|ROOT|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|408 422 (DEFUN SELECT-NEXT/PREVIOUS-BROTHER (FUN-ROTATE) ...)-46|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-NEXT/PREVIOUS-BROTHER| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-NEXT/PREVIOUS-BROTHER|
+ #76Y(00 00 00 00 01 00 00 00 06 02 6B 00 6B 01 8F 04 07 6B 00 6B 02 32
+ 04 59 14 92 00 2A 63 2F 04 6B 01 6F 05 AC 89 06 12 AC E1 B1 AF E1
+ 72 3E 76 01 32 3F AC E1 32 3E 5B 0F 01 16 01 93 00 04 0E 01 0F 00
+ 2E 08 19 03 6B 00 2F 03 1B 53)
+ (|CLFSWM|::|*CURRENT-ROOT*| |CLFSWM|::|*CURRENT-CHILD*|
+ |CLFSWM|::|*ROOT-GROUP*| |CLFSWM|::|HIDE-ALL-CHILDS|
+ |CLFSWM|::|SELECT-CURRENT-GROUP| |CLFSWM|::|FIND-FATHER-GROUP|
+ |CLFSWM|::|GROUP-P| |CLFSWM|::|CHILD| |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|FUN-ROTATE|) "Select the next/previous brother group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|425 427 (DEFUN SELECT-NEXT-BROTHER NIL ...)-47|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-NEXT-BROTHER| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-NEXT-BROTHER|
+ #16Y(00 00 00 00 00 00 00 00 06 01 99 00 2F 01 19 01)
+ (|TOOLS|::|ANTI-ROTATE-LIST| |CLFSWM|::|SELECT-NEXT/PREVIOUS-BROTHER|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Select the next brother group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|429 431 (DEFUN SELECT-PREVIOUS-BROTHER NIL ...)-48|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-PREVIOUS-BROTHER| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-PREVIOUS-BROTHER|
+ #16Y(00 00 00 00 00 00 00 00 06 01 99 00 2F 01 19 01)
+ (|TOOLS|::|ROTATE-LIST| |CLFSWM|::|SELECT-NEXT/PREVIOUS-BROTHER|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Select the previous brother group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|434 440 (DEFUN SELECT-NEXT-LEVEL NIL ...)-49|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-NEXT-LEVEL| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-NEXT-LEVEL|
+ #38Y(00 00 00 00 00 00 00 00 06 01 63 2F 00 6B 01 89 02 0A 6B 01 2F 03
+ 78 92 00 06 16 01 2E 04 19 01 0F 01 16 01 1B 76)
+ (|CLFSWM|::|SELECT-CURRENT-GROUP| |CLFSWM|::|*CURRENT-CHILD*|
+ |CLFSWM|::|GROUP-P| |CLFSWM|::|GROUP-CHILD|
+ |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Select the next level in group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|442 448 (DEFUN SELECT-PREVIOUS-LEVEL NIL ...)-50|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-PREVIOUS-LEVEL| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-PREVIOUS-LEVEL|
+ #38Y(00 00 00 00 00 00 00 00 06 01 6B 00 6B 01 8E 04 12 63 2F 02 6B 00
+ 6F 03 93 00 02 0F 00 16 01 2E 04 19 01 00 19 01)
+ (|CLFSWM|::|*CURRENT-CHILD*| |CLFSWM|::|*CURRENT-ROOT*|
+ |CLFSWM|::|SELECT-CURRENT-GROUP| |CLFSWM|::|FIND-FATHER-GROUP|
+ |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Select the previous level in group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|451 456 (DEFUN SELECT-NEXT/PREVIOUS-CHILD (FUN-ROTATE) ...)-51|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-NEXT/PREVIOUS-CHILD| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-NEXT/PREVIOUS-CHILD|
+ #37Y(00 00 00 00 01 00 00 00 06 02 6B 00 2F 01 1F 13 6B 00 AC DC B0 AF
+ DC 72 3E 76 01 32 3F 16 01 2E 03 19 02 19 02)
+ (|CLFSWM|::|*CURRENT-CHILD*| |CLFSWM|::|GROUP-P| |CLFSWM|::|CHILD|
+ |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|FUN-ROTATE|) "Select the next/previous child"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|459 461 (DEFUN SELECT-NEXT-CHILD NIL ...)-52|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-NEXT-CHILD| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-NEXT-CHILD|
+ #16Y(00 00 00 00 00 00 00 00 06 01 99 00 2F 01 19 01)
+ (|TOOLS|::|ANTI-ROTATE-LIST| |CLFSWM|::|SELECT-NEXT/PREVIOUS-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Select the next child"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|463 465 (DEFUN SELECT-PREVIOUS-CHILD NIL ...)-53|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SELECT-PREVIOUS-CHILD| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SELECT-PREVIOUS-CHILD|
+ #16Y(00 00 00 00 00 00 00 00 06 01 99 00 2F 01 19 01)
+ (|TOOLS|::|ROTATE-LIST| |CLFSWM|::|SELECT-NEXT/PREVIOUS-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Select the previous child"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|469 473 (DEFUN ENTER-GROUP NIL ...)-54|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|ENTER-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|ENTER-GROUP|
+ #22Y(00 00 00 00 00 00 00 00 06 01 6B 00 2F 01 0E 02 0F 00 2E 03 19 01)
+ (|CLFSWM|::|*CURRENT-ROOT*| |CLFSWM|::|HIDE-ALL-CHILDS|
+ |CLFSWM|::|*CURRENT-CHILD*| |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Enter in the selected group - ie make it the root group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|475 481 (DEFUN LEAVE-GROUP NIL ...)-55|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|LEAVE-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|LEAVE-GROUP|
+ #34Y(00 00 00 00 00 00 00 00 06 01 6B 00 2F 01 6B 00 6F 02 93 00 07 14
+ 89 03 03 9D 0F 00 16 01 2E 04 19 01)
+ (|CLFSWM|::|*CURRENT-ROOT*| |CLFSWM|::|HIDE-ALL-CHILDS|
+ |CLFSWM|::|FIND-FATHER-GROUP| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Leave the selected group - ie make its father the root group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|484 488 (DEFUN SWITCH-TO-ROOT-GROUP NIL ...)-56|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SWITCH-TO-ROOT-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SWITCH-TO-ROOT-GROUP|
+ #22Y(00 00 00 00 00 00 00 00 06 01 6B 00 2F 01 0E 02 0F 00 2E 03 19 01)
+ (|CLFSWM|::|*CURRENT-ROOT*| |CLFSWM|::|HIDE-ALL-CHILDS|
+ |CLFSWM|::|*ROOT-GROUP*| |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Switch to the root group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|490 495 (DEFUN SWITCH-AND-SELECT-ROOT-GROUP NIL ...)-57|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SWITCH-AND-SELECT-ROOT-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SWITCH-AND-SELECT-ROOT-GROUP|
+ #24Y(00 00 00 00 00 00 00 00 06 01 6B 00 2F 01 0E 02 0F 00 0F 03 2E 04
+ 19 01)
+ (|CLFSWM|::|*CURRENT-ROOT*| |CLFSWM|::|HIDE-ALL-CHILDS|
+ |CLFSWM|::|*ROOT-GROUP*| |CLFSWM|::|*CURRENT-CHILD*|
+ |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Switch and select the root group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|498 502 (DEFUN TOGGLE-SHOW-ROOT-GROUP NIL ...)-58|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|TOGGLE-SHOW-ROOT-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|TOGGLE-SHOW-ROOT-GROUP|
+ #23Y(00 00 00 00 00 00 00 00 06 01 6B 00 2F 01 0E 02 59 0F 02 2E 03 19
+ 01)
+ (|CLFSWM|::|*CURRENT-ROOT*| |CLFSWM|::|HIDE-ALL-CHILDS|
+ |CLFSWM|::|*SHOW-ROOT-GROUP-P*| |CLFSWM|::|SHOW-ALL-CHILDS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Show/Hide the root group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|505 512 (DEFUN FOCUS-CHILD (CHILD FATHER) ...)-59|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FOCUS-CHILD| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FOCUS-CHILD|
+ #61Y(00 00 00 00 02 00 00 00 06 03 AD 2F 00 1F 2C AE AE 6F 01 38 03 31
+ B6 1F 22 AE AE 2F 01 78 32 04 59 1F 18 1B 0B AD 6F 01 6F 02 AC AF
+ 30 03 16 01 AE AE 2F 01 78 8F 04 6D 02 19 03 19 03)
+ (|CLFSWM|::|GROUP-P| |CLFSWM|::|GROUP-CHILD| |TOOLS|::|ROTATE-LIST|
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|GROUP-CHILD|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)
+ "Focus child - Return true if something has change"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|514 523 (DEFUN FOCUS-CHILD-REC (CHILD FATHER) ...)-60|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FOCUS-CHILD-REC| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FOCUS-CHILD-REC|
+ #32Y(00 00 00 00 02 00 00 00 06 03 00 2B 01 00 0B 00 00 AC 6D 00 01 B0
+ B0 9F 34 16 01 06 00 00 19 04)
+ (#Y(|CLFSWM|::|FOCUS-CHILD-REC-REC|
+ #37Y(00 00 00 00 02 00 00 00 06 03 AE AE 8A 01 0B 9E 1F 11 14 AE 6F
+ 02 29 02 05 70 02 0C 00 01 9E 1F 02 1B 6F 19 03)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|FOCUS-CHILD|
+ |CLFSWM|::|FIND-FATHER-GROUP|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)
+ "Focus child and its fathers - Return true if something has change"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|525 532 (DEFUN SET-CURRENT-CHILD (CHILD FATHER) ...)-61|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SET-CURRENT-CHILD| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SET-CURRENT-CHILD|
+ #42Y(00 00 00 00 02 00 00 00 06 03 AE 89 00 06 6B 01 AF 8F 04 10 AD 89
+ 00 0F 6B 01 AE 8E 04 09 9E 0F 01 02 19 03 9F 1B 78 00 19 03)
+ (|CLFSWM|::|GROUP-P| |CLFSWM|::|*CURRENT-CHILD*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)
+ "Set *current-child* to child - Return t if something has change"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|534 537 (DEFUN SET-CURRENT-ROOT (FATHER) ...)-62|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|SET-CURRENT-ROOT| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|SET-CURRENT-ROOT|
+ #24Y(00 00 00 00 01 00 00 00 06 02 AD 6B 00 8A 01 05 9E 0F 00 19 02 00
+ 19 02)
+ (|CLFSWM|::|*CURRENT-ROOT*| |CLFSWM|::|FIND-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|FATHER|)
+ "Set current root if father is not in current root"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|540 545 (DEFUN FOCUS-ALL-CHILDS (CHILD FATHER) ...)-63|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FOCUS-ALL-CHILDS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FOCUS-ALL-CHILDS|
+ #32Y(00 00 00 00 02 00 00 00 06 03 AE AE 70 00 AF AF 70 01 AF 6F 02 9F
+ 1E 06 9E 1E 03 15 19 05 19 06)
+ (|CLFSWM|::|FOCUS-CHILD-REC| |CLFSWM|::|SET-CURRENT-CHILD|
+ |CLFSWM|::|SET-CURRENT-ROOT|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)
+ "Focus child and its fathers - Set current group to father"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|549 552 (DEFUN REMOVE-CHILD-IN-GROUP (CHILD GROUP) ...)-64|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|REMOVE-CHILD-IN-GROUP| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|REMOVE-CHILD-IN-GROUP|
+ #33Y(00 00 00 00 02 00 00 00 06 03 AD 2F 00 1F 10 AE AE 6F 01 38 07 C7
+ FA 72 4F AC AF 30 03 19 04 19 03)
+ (|CLFSWM|::|GROUP-P| |CLFSWM|::|GROUP-CHILD| #.#'|COMMON-LISP|::|EQUAL|
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|GROUP-CHILD|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD| |CLFSWM|::|GROUP|) "Remove the child in group"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|554 559 (DEFUN REMOVE-CHILD-IN-GROUPS (CHILD ROOT) ...)-65|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|REMOVE-CHILD-IN-GROUPS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|REMOVE-CHILD-IN-GROUPS|
+ #46Y(00 00 00 00 02 00 00 00 06 03 00 2B 01 7F 03 00 00 AC 6D 00 01 AF
+ 9E 34 16 01 68 00 00 DB AD 32 33 16 01 1F 07 68 00 00 2F 02 19 04
+ 19 04)
+ (#Y(|CLFSWM|::|REMOVE-CHILD-IN-GROUPS-G48725|
+ #44Y(00 00 00 00 01 00 00 00 06 02 AD 2F 01 1F 1B 69 00 01 AE 30 02
+ AD 6F 03 63 1B 08 87 01 00 14 28 69 83 01 AD 8D 94 74 00 19 04
+ 19 02)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|GROUP-P|
+ |CLFSWM|::|REMOVE-CHILD-IN-GROUP| |CLFSWM|::|GROUP-CHILD|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|GROUP|) |COMMON-LISP|::|NIL|)
+ |XLIB|::|WINDOW| |CLFSWM|::|NETWM-REMOVE-IN-CLIENT-LIST|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD| |CLFSWM|::|ROOT|)
+ "Remove child in the group root and in all its childs"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|563 569 (DEFUN REMOVE-CHILD-IN-ALL-GROUPS (CHILD) ...)-66|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|REMOVE-CHILD-IN-ALL-GROUPS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|REMOVE-CHILD-IN-ALL-GROUPS|
+ #38Y(00 00 00 00 01 00 00 00 06 02 AD 6B 00 8F 04 05 AD 2F 01 0F 00 AD
+ 6B 02 8F 04 04 0E 00 0F 02 AD 6B 03 30 04 19 02)
+ (|CLFSWM|::|*CURRENT-ROOT*| |CLFSWM|::|FIND-FATHER-GROUP|
+ |CLFSWM|::|*CURRENT-CHILD*| |CLFSWM|::|*ROOT-GROUP*|
+ |CLFSWM|::|REMOVE-CHILD-IN-GROUPS|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|CHILD|) "Remove child in all groups from *root-group*"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|576 615 (DEFUN PROCESS-NEW-WINDOW (WINDOW) ...)-67|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|PROCESS-NEW-WINDOW| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|PROCESS-NEW-WINDOW|
+ #64Y(02 00 01 00 01 00 00 00 06 02 00 2B 01 7F 02 00 00 9D 2B 01 00 0B
+ 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01 57 03 B0 36 00 16 06 1B
+ 10 58 67 00 00 01 76 00 AD 36 01 18 02 01 19 02 00 4D 19 04)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|PROCESS-NEW-WINDOW-1|
+ #18Y(00 00 00 00 00 00 00 00 06 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(|CLFSWM|::|PROCESS-NEW-WINDOW-1-1|
+ #17Y(00 00 00 00 01 00 00 00 06 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|CONDITION|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|) ()
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|PROCESS-NEW-WINDOW-2|
+ #325Y(00 00 00 00 00 00 00 00 06 01 69 01 01 6B 01 AD DC AE 6F 03 2D
+ 03 04 16 02 69 01 01 DF 30 06 69 01 01 69 01 01 2F 07 26 08 13
+ CA 1B 11 CA 1B 0E CA 1B 0B 69 01 01 6B 0C 30 14 1B 80 FF CE 14
+ 30 0A 69 01 01 2F 0B 6B 0C E7 AD 32 33 16 01 1D 04 2E 0E 2E 0F
+ 69 01 01 6B 0C AC 6F 10 AE AD 38 03 71 BA AC AF 30 11 16 04 69
+ 01 01 2F 12 69 01 01 6F 07 AC 24 13 FF BC 69 01 01 6F 15 93 00
+ 06 F0 AD F1 8E 2F 01 CE 14 93 01 06 F0 AE F2 8E 2F 01 CE 14 93
+ 02 06 F0 AF F3 8E 2F 04 6B 1A 2F 1B 14 93 03 06 F0 B0 F6 8E 2F
+ 04 6B 1A 2F 1D 14 93 04 0E F0 B1 65 1E 8E 2F 0C F0 B1 65 1F 8E
+ 2F 05 69 01 01 2F 1B 14 93 05 0E F0 B2 65 20 8E 2F 0C F0 B2 65
+ 21 8E 2F 05 69 01 01 2F 1D 14 69 01 01 B2 AF 73 01 33 B1 73 01
+ 34 30 22 69 01 01 B1 AE 73 01 33 B0 73 01 34 30 23 69 01 01 6B
+ 0C 6F 24 65 25 6B 0C 6F 26 69 01 01 6F 1B 73 01 36 73 02 37 73
+ 02 35 38 01 72 B6 30 27 69 01 01 6B 0C 6F 28 65 25 6B 0C 6F 29
+ 69 01 01 6F 1D 73 01 36 73 02 37 73 02 35 38 01 72 B6 30 2A 16
+ 07 16 01 69 01 01 2F 2B 19 01)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|*WINDOW-EVENTS*| 11.
+ |XLIB|::|ENCODE-EVENT-MASK| |XLIB|::|CHANGE-WINDOW-ATTRIBUTE|
+ #.|CLFSWM|::|+NORMAL-STATE+| |CLFSWM|::|SET-WINDOW-STATE|
+ |CLFSWM|::|WINDOW-TYPE|
+ #S(|COMMON-LISP|::|HASH-TABLE| :|TEST| |EXT|::|STABLEHASH-EQ|
+ (:|TRANSIENT| . 7.) (:|MAXSIZE| . 4.) (:|NORMAL| . 1.))
+ 0. |XLIB|::|SET-DRAWABLE-BORDER-WIDTH| |CLFSWM|::|GRAB-ALL-BUTTONS|
+ |CLFSWM|::|*CURRENT-CHILD*| |XLIB|::|WINDOW|
+ |CLFSWM|::|LEAVE-GROUP| |CLFSWM|::|SELECT-PREVIOUS-LEVEL|
+ |CLFSWM|::|GROUP-CHILD|
+ #.(|SYSTEM|::|GET-SETF-SYMBOL| '|CLFSWM|::|GROUP-CHILD|)
+ |CLFSWM|::|UNHIDE-WINDOW| :|NORMAL|
+ |CLFSWM|::|ADAPT-CHILD-TO-FATHER| |XLIB|::|WM-NORMAL-HINTS|
+ |XLIB|::|WM-SIZE-HINTS| 7. 8. 9. |CLFSWM|::|*ROOT*|
+ |XLIB|::|DRAWABLE-WIDTH| 10. |XLIB|::|DRAWABLE-HEIGHT| 5. 15. 6.
+ 16. |XLIB|::|SET-DRAWABLE-WIDTH| |XLIB|::|SET-DRAWABLE-HEIGHT|
+ |CLFSWM|::|GROUP-RX| #10r1/2 |CLFSWM|::|GROUP-RW|
+ |XLIB|::|SET-DRAWABLE-X| |CLFSWM|::|GROUP-RY| |CLFSWM|::|GROUP-RH|
+ |XLIB|::|SET-DRAWABLE-Y| |CLFSWM|::|NETWM-ADD-IN-CLIENT-LIST|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|)
+ (#((|COMMON-LISP|::|OR| |XLIB|::|MATCH-ERROR| |XLIB|::|WINDOW-ERROR|
+ |XLIB|::|DRAWABLE-ERROR|)
+ 35.)
+ 1. . 1.))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|WINDOW|)
+ "When a new window is created (or when we are scanning initial
+windows), this function dresses the window up and gets it ready to be
+managed."))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|620 642 (DEFUN PROCESS-EXISTING-WINDOWS (SCREEN) ...)-68|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|PROCESS-EXISTING-WINDOWS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|PROCESS-EXISTING-WINDOWS|
+ #112Y(00 00 00 00 01 00 00 00 06 02 63 2E 00 14 DB B0 DC 72 2F 6F 03 63
+ 1B 80 4C E5 6B 0C B0 6F 0D B1 6F 0E B2 33 04 15 AE 2F 0F AE 2F 10
+ EB AF DC 72 2F B2 38 03 80 BA 05 16 02 1B 28 87 01 00 14 AF 38 03
+ 8C B6 1E AC 6F 04 AD 6F 05 AE 6F 06 24 07 10 AE 6B 08 8E 03 0A AD
+ 24 09 FF BD AC 24 0A FF B8 16 02 83 01 AD 8D 94 52 16 02 AD 2F 12
+ 19 04)
+ (|CLFSWM|::|GET-ALL-WINDOWS| |XLIB|::|SCREEN| 1. |XLIB|::|QUERY-TREE|
+ |XLIB|::|WINDOW-MAP-STATE| |CLFSWM|::|WINDOW-STATE|
+ |XLIB|::|WINDOW-OVERRIDE-REDIRECT| :|ON| |CLFSWM|::|*NO-FOCUS-WINDOW*|
+ :|VIEWABLE| #.|CLFSWM|::|+ICONIC-STATE+|
+ #Y(|CLFSWM|::|PROCESS-EXISTING-WINDOWS-1|
+ #62Y(00 00 00 00 04 00 00 00 01 1A DA B2 38 02 31 8B B1 2F 01 10 02
+ B3 B5 31 83 11 B1 2F 03 DE B2 38 02 31 8B AF B2 31 86 DF B2 31
+ 8A B1 2F 01 10 02 B1 B5 31 83 11 B1 2F 03 B1 31 8D 9E 19 06)
+ ("Processing " |SYSTEM|::|STREAM-START-S-EXPRESSION|
+ |COMMON-LISP|::|*PRINT-RIGHT-MARGIN*|
+ |SYSTEM|::|STREAM-END-S-EXPRESSION| ": type=" #\ )
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|*STANDARD-OUTPUT*| |XLIB|::|WM-NAME|
+ |CLFSWM|::|WINDOW-TYPE| |CLFSWM|::|PROCESS-NEW-WINDOW|
+ |XLIB|::|MAP-WINDOW| |XLIB|::|WINDOW|
+ |CLFSWM|::|NETWM-SET-CLIENT-LIST|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|SCREEN|)
+ "Windows present when clfswm starts up must be absorbed by clfswm."))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
Added: clfswm-internal.fasl
==============================================================================
Binary file. No diff available.
Added: clfswm-internal.lib
==============================================================================
--- (empty file)
+++ clfswm-internal.lib Sat Mar 1 07:36:13 2008
@@ -0,0 +1,355 @@
+#0Y |CHARSET|::|UTF-8|
+(|COMMON-LISP|::|SETQ| |COMMON-LISP|::|*PACKAGE*|
+ (|SYSTEM|::|%FIND-PACKAGE| "CLFSWM"))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|CALL-HOOK|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|HOOK| |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|ARGS|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-DATA-SLOT|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|GROUP| |CLFSWM|::|SLOT|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SET-GROUP-DATA-SLOT|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|GROUP| |CLFSWM|::|SLOT| |CLFSWM|::|VALUE|)))
+(|COMMON-LISP|::|LET| |COMMON-LISP|::|NIL|
+ (|COMMON-LISP|::|REMPROP| '|CLFSWM|::|GROUP-DATA-SLOT|
+ '|SYSTEM|::|DEFSTRUCT-WRITER|)
+ (|SYSTEM|::|CHECK-REDEFINITION| '|CLFSWM|::|GROUP-DATA-SLOT|
+ '|COMMON-LISP|::|DEFSETF|
+ (|COMMON-LISP|::|AND|
+ (|COMMON-LISP|::|GET| '|CLFSWM|::|GROUP-DATA-SLOT|
+ '|SYSTEM|::|SETF-EXPANDER|)
+ '|SYSTEM|::|SETF-EXPANDER|))
+ (|SYSTEM|::|%PUT| '|CLFSWM|::|GROUP-DATA-SLOT| '|SYSTEM|::|SETF-EXPANDER|
+ '|CLFSWM|::|SET-GROUP-DATA-SLOT|)
+ (|SYSTEM|::|%SET-DOCUMENTATION| '|CLFSWM|::|GROUP-DATA-SLOT|
+ '|COMMON-LISP|::|SETF| |COMMON-LISP|::|NIL|)
+ '|CLFSWM|::|GROUP-DATA-SLOT|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-P|
+ '#(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFGENERIC|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-P|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-P|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|CHILD-NAME|
+ '#(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFGENERIC|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|CHILD-NAME|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|CHILD-NAME|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|CHILD-NAME|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|WITH-ALL-CHILDS|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|WITH-ALL-CHILDS|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|WITH-ALL-CHILDS|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 2.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G47589| (|COMMON-LISP|::|CADR| . #2=(|SYSTEM|::||)))
+ (#3=#:|G47590|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 2. 2.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|WITH-ALL-CHILDS| #1#
+ '(|CLFSWM|::|ROOT| |CLFSWM|::|CHILD|))
+ #1#))
+ (|CLFSWM|::|ROOT| (|COMMON-LISP|::|CAR| #3#))
+ (|CLFSWM|::|CHILD| (|COMMON-LISP|::|CADR| #3#))
+ (|CLFSWM|::|BODY| (|COMMON-LISP|::|CDDR| . #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|WITH-ALL-CHILDS|
+ (|COMMON-LISP|::|LET|
+ ((|CLFSWM|::|REC| (|COMMON-LISP|::|GENSYM|))
+ (|CLFSWM|::|SUB-CHILD| (|COMMON-LISP|::|GENSYM|)))
+ `(|COMMON-LISP|::|LABELS|
+ ((,|CLFSWM|::|REC| (,|CLFSWM|::|CHILD|) ,@|CLFSWM|::|BODY|
+ (|COMMON-LISP|::|WHEN| (|CLFSWM|::|GROUP-P| ,|CLFSWM|::|CHILD|)
+ (|COMMON-LISP|::|DOLIST|
+ (,|CLFSWM|::|SUB-CHILD|
+ (|CLFSWM|::|GROUP-CHILD| ,|CLFSWM|::|CHILD|))
+ (,|CLFSWM|::|REC| ,|CLFSWM|::|SUB-CHILD|)))))
+ (,|CLFSWM|::|REC| ,|CLFSWM|::|ROOT|))))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|WITH-ALL-GROUPS|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|WITH-ALL-GROUPS|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|WITH-ALL-GROUPS|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 2.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G47603| (|COMMON-LISP|::|CADR| . #2=(|SYSTEM|::||)))
+ (#3=#:|G47604|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 2. 2.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|WITH-ALL-GROUPS| #1#
+ '(|CLFSWM|::|ROOT| |CLFSWM|::|GROUP|))
+ #1#))
+ (|CLFSWM|::|ROOT| (|COMMON-LISP|::|CAR| #3#))
+ (|CLFSWM|::|GROUP| (|COMMON-LISP|::|CADR| #3#))
+ (|CLFSWM|::|BODY| (|COMMON-LISP|::|CDDR| . #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|WITH-ALL-GROUPS|
+ (|COMMON-LISP|::|LET|
+ ((|CLFSWM|::|REC| (|COMMON-LISP|::|GENSYM|))
+ (|CLFSWM|::|CHILD| (|COMMON-LISP|::|GENSYM|)))
+ `(|COMMON-LISP|::|LABELS|
+ ((,|CLFSWM|::|REC| (,|CLFSWM|::|GROUP|)
+ (|COMMON-LISP|::|WHEN| (|CLFSWM|::|GROUP-P| ,|CLFSWM|::|GROUP|)
+ ,@|CLFSWM|::|BODY|
+ (|COMMON-LISP|::|DOLIST|
+ (,|CLFSWM|::|CHILD| (|CLFSWM|::|GROUP-CHILD| ,|CLFSWM|::|GROUP|))
+ (,|CLFSWM|::|REC| ,|CLFSWM|::|CHILD|)))))
+ (,|CLFSWM|::|REC| ,|CLFSWM|::|ROOT|))))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|WITH-ALL-WINDOWS|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|WITH-ALL-WINDOWS|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|WITH-ALL-WINDOWS|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 2.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G47617| (|COMMON-LISP|::|CADR| . #2=(|SYSTEM|::||)))
+ (#3=#:|G47618|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 2. 2.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|WITH-ALL-WINDOWS| #1#
+ '(|CLFSWM|::|ROOT| |CLFSWM|::|WINDOW|))
+ #1#))
+ (|CLFSWM|::|ROOT| (|COMMON-LISP|::|CAR| #3#))
+ (|CLFSWM|::|WINDOW| (|COMMON-LISP|::|CADR| #3#))
+ (|CLFSWM|::|BODY| (|COMMON-LISP|::|CDDR| . #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|WITH-ALL-WINDOWS|
+ (|COMMON-LISP|::|LET|
+ ((|CLFSWM|::|REC| (|COMMON-LISP|::|GENSYM|))
+ (|CLFSWM|::|CHILD| (|COMMON-LISP|::|GENSYM|)))
+ `(|COMMON-LISP|::|LABELS|
+ ((,|CLFSWM|::|REC| (,|CLFSWM|::|WINDOW|)
+ (|COMMON-LISP|::|WHEN| (|XLIB|::|WINDOW-P| ,|CLFSWM|::|WINDOW|)
+ ,@|CLFSWM|::|BODY|)
+ (|COMMON-LISP|::|WHEN| (|CLFSWM|::|GROUP-P| ,|CLFSWM|::|WINDOW|)
+ (|COMMON-LISP|::|DOLIST|
+ (,|CLFSWM|::|CHILD|
+ (|CLFSWM|::|GROUP-CHILD| ,|CLFSWM|::|WINDOW|))
+ (,|CLFSWM|::|REC| ,|CLFSWM|::|CHILD|)))))
+ (,|CLFSWM|::|REC| ,|CLFSWM|::|ROOT|))))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|WITH-ALL-WINDOWS-GROUPS|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|WITH-ALL-WINDOWS-GROUPS|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|WITH-ALL-WINDOWS-GROUPS|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 4.
+ 4.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G47631| (|COMMON-LISP|::|CADR| . #2=(|SYSTEM|::||)))
+ (#3=#:|G47632|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 2. 2.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|WITH-ALL-WINDOWS-GROUPS| #1#
+ '(|CLFSWM|::|ROOT| |CLFSWM|::|CHILD|))
+ #1#))
+ (|CLFSWM|::|ROOT| (|COMMON-LISP|::|CAR| #3#))
+ (|CLFSWM|::|CHILD| (|COMMON-LISP|::|CADR| #3#))
+ (|CLFSWM|::|BODY-WINDOW| (|COMMON-LISP|::|CADDR| . #2#))
+ (|CLFSWM|::|BODY-GROUP| (|COMMON-LISP|::|CADDDR| . #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|WITH-ALL-WINDOWS-GROUPS|
+ (|COMMON-LISP|::|LET|
+ ((|CLFSWM|::|REC| (|COMMON-LISP|::|GENSYM|))
+ (|CLFSWM|::|SUB-CHILD| (|COMMON-LISP|::|GENSYM|)))
+ `(|COMMON-LISP|::|LABELS|
+ ((,|CLFSWM|::|REC| (,|CLFSWM|::|CHILD|)
+ (|COMMON-LISP|::|TYPECASE| ,|CLFSWM|::|CHILD|
+ (|XLIB|::|WINDOW| ,|CLFSWM|::|BODY-WINDOW|)
+ (|CLFSWM|::|GROUP| ,|CLFSWM|::|BODY-GROUP|
+ (|COMMON-LISP|::|DOLIST|
+ (,|CLFSWM|::|SUB-CHILD|
+ (|CLFSWM|::|GROUP-CHILD| ,|CLFSWM|::|CHILD|))
+ (,|CLFSWM|::|REC| ,|CLFSWM|::|SUB-CHILD|))))))
+ (,|CLFSWM|::|REC| ,|CLFSWM|::|ROOT|))))))))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GROUP-FIND-FREE-NUMBER|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|CREATE-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|COMMON-LISP|::|&KEY| |CLFSWM|::|NAME|
+ (|COMMON-LISP|::|NUMBER| (|CLFSWM|::|GROUP-FIND-FREE-NUMBER|))
+ (|CLFSWM|::|X| 0.1f0) (|CLFSWM|::|Y| 0.1f0) (|CLFSWM|::|W| 0.8f0)
+ (|CLFSWM|::|H| 0.8f0) |CLFSWM|::|LAYOUT|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|ADD-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|GROUP| |CLFSWM|::|FATHER|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GET-CURRENT-CHILD|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|FIND-CHILD|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|TO-FIND| |CLFSWM|::|ROOT|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|FIND-FATHER-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|TO-FIND| |COMMON-LISP|::|&OPTIONAL|
+ (|CLFSWM|::|ROOT| |CLFSWM|::|*ROOT-GROUP*|))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|FIND-GROUP-WINDOW|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|WINDOW| |COMMON-LISP|::|&OPTIONAL|
+ (|CLFSWM|::|ROOT| |CLFSWM|::|*ROOT-GROUP*|))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|FIND-GROUP-BY-NAME|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|NAME|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|FIND-GROUP-BY-NUMBER|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|COMMON-LISP|::|NUMBER|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GET-ALL-WINDOWS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|COMMON-LISP|::|&OPTIONAL| (|CLFSWM|::|ROOT| |CLFSWM|::|*ROOT-GROUP*|))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GET-HIDDEN-WINDOWS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DISPLAY-GROUP-INFO|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|GROUP|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|GET-FATHER-LAYOUT|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|ADAPT-CHILD-TO-FATHER|
+ '#(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFGENERIC|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|ADAPT-CHILD-TO-FATHER|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|ADAPT-CHILD-TO-FATHER|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-CHILD|
+ '#(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFGENERIC|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|HIDE-CHILD|
+ '#(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFGENERIC|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-CHILD|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|HIDE-CHILD|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-CHILD|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|HIDE-CHILD|
+ #(1. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-CHILD|
+ '#(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFGENERIC|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-CHILD|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-CHILD|
+ #(2. 0. |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ |COMMON-LISP|::|NIL|)
+ |COMMON-LISP|::|NIL| '|CLOS|::|DEFMETHOD|)
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-CURRENT-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|SELECTED|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SET-FOCUS-TO-CURRENT-CHILD|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SHOW-ALL-CHILDS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|HIDE-ALL-CHILDS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|ROOT|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-NEXT/PREVIOUS-BROTHER|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|FUN-ROTATE|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-NEXT-BROTHER|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-PREVIOUS-BROTHER|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-NEXT-LEVEL|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-PREVIOUS-LEVEL|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-NEXT/PREVIOUS-CHILD|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|FUN-ROTATE|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-NEXT-CHILD|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SELECT-PREVIOUS-CHILD|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|ENTER-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|LEAVE-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SWITCH-TO-ROOT-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SWITCH-AND-SELECT-ROOT-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|TOGGLE-SHOW-ROOT-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '|COMMON-LISP|::|NIL|))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|FOCUS-CHILD|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|FOCUS-CHILD-REC|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SET-CURRENT-CHILD|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|SET-CURRENT-ROOT|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|FATHER|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|FOCUS-ALL-CHILDS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|CHILD| |CLFSWM|::|FATHER|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|REMOVE-CHILD-IN-GROUP|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|CHILD| |CLFSWM|::|GROUP|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|REMOVE-CHILD-IN-GROUPS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|CHILD| |CLFSWM|::|ROOT|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|REMOVE-CHILD-IN-ALL-GROUPS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|CHILD|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|PROCESS-NEW-WINDOW|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|WINDOW|)))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|PROCESS-EXISTING-WINDOWS|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE| '(|CLFSWM|::|SCREEN|)))
Added: clfswm-internal.lisp
==============================================================================
--- (empty file)
+++ clfswm-internal.lisp Sat Mar 1 07:36:13 2008
@@ -0,0 +1,642 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; #Date#: Sat Mar 1 00:03:14 2008
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Main functions
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2005 Philippe Brochard
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+
+;;; Minimal hook
+(defun call-hook (hook &optional args)
+ "Call a hook (a function, a symbol or a list of function)"
+ (typecase hook
+ (list (dolist (h hook)
+ (apply 'call-hook (list h args))))
+ (t (apply hook args))))
+
+
+;;; Group data manipulation functions
+(defun group-data-slot (group slot)
+ "Return the value associated to data slot"
+ (when (group-p group)
+ (second (assoc slot (group-data group)))))
+
+(defun set-group-data-slot (group slot value)
+ "Set the value associated to data slot"
+ (when (group-p group)
+ (with-slots (data) group
+ (setf data (remove (assoc slot data) data))
+ (push (list slot value) data))
+ value))
+
+(defsetf group-data-slot set-group-data-slot)
+
+
+
+(defgeneric group-p (group))
+(defmethod group-p ((group group))
+ (declare (ignore group))
+ t)
+(defmethod group-p (group)
+ (declare (ignore group))
+ nil)
+
+
+
+(defgeneric child-name (child))
+
+(defmethod child-name ((child xlib:window))
+ (xlib:wm-name child))
+
+(defmethod child-name ((child group))
+ (group-name child))
+
+(defmethod child-name (child)
+ (declare (ignore child))
+ "???")
+
+
+
+;; (with-all-childs (*root-group* child) (typecase child (xlib:window (print child)) (group (print (group-number child)))))
+(defmacro with-all-childs ((root child) &body body)
+ (let ((rec (gensym))
+ (sub-child (gensym)))
+ `(labels ((,rec (,child)
+ , at body
+ (when (group-p ,child)
+ (dolist (,sub-child (group-child ,child))
+ (,rec ,sub-child)))))
+ (,rec ,root))))
+
+
+;; (with-all-group (*root-group* group) (print (group-number group)))
+(defmacro with-all-groups ((root group) &body body)
+ (let ((rec (gensym))
+ (child (gensym)))
+ `(labels ((,rec (,group)
+ (when (group-p ,group)
+ , at body
+ (dolist (,child (group-child ,group))
+ (,rec ,child)))))
+ (,rec ,root))))
+
+
+;; (with-all-windows (*root-group* window) (print window))
+(defmacro with-all-windows ((root window) &body body)
+ (let ((rec (gensym))
+ (child (gensym)))
+ `(labels ((,rec (,window)
+ (when (xlib:window-p ,window)
+ , at body)
+ (when (group-p ,window)
+ (dolist (,child (group-child ,window))
+ (,rec ,child)))))
+ (,rec ,root))))
+
+
+
+;; (with-all-groups-windows (*root-group* child) (print child) (print (group-number child)))
+(defmacro with-all-windows-groups ((root child) body-window body-group)
+ (let ((rec (gensym))
+ (sub-child (gensym)))
+ `(labels ((,rec (,child)
+ (typecase ,child
+ (xlib:window ,body-window)
+ (group ,body-group
+ (dolist (,sub-child (group-child ,child))
+ (,rec ,sub-child))))))
+ (,rec ,root))))
+
+
+
+(defun group-find-free-number ()
+ (let ((all-numbers nil))
+ (with-all-groups (*root-group* group)
+ (push (group-number group) all-numbers))
+ (find-free-number all-numbers)))
+
+
+
+(defun create-group (&key name (number (group-find-free-number)) (x 0.1) (y 0.1) (w 0.8) (h 0.8) layout)
+ (let* ((window (xlib:create-window :parent *root*
+ :x 0
+ :y 0
+ :width 200
+ :height 200
+ :background (get-color "Black")
+ :colormap (xlib:screen-default-colormap *screen*)
+ :border-width 1
+ :border (get-color "Red")
+ :event-mask '(:exposure :button-press)))
+ (gc (xlib:create-gcontext :drawable window
+ :foreground (get-color "Green")
+ :background (get-color "Black")
+ :font *default-font*
+ :line-style :solid)))
+ (make-instance 'group :name name :number number
+ :x x :y y :w w :h h :window window :gc gc :layout layout)))
+
+
+(defun add-group (group father)
+ (push group (group-child father)))
+
+
+
+
+
+
+(defun get-current-child ()
+ "Return the current focused child"
+ (unless (equal *current-child* *root-group*)
+ (typecase *current-child*
+ (xlib:window *current-child*)
+ (group (if (xlib:window-p (first (group-child *current-child*)))
+ (first (group-child *current-child*))
+ *current-child*)))))
+
+
+(defun find-child (to-find root)
+ "Find to-find in root or in its childs"
+ (with-all-childs (root child)
+ (when (equal child to-find)
+ (return-from find-child t))))
+
+
+
+(defun find-father-group (to-find &optional (root *root-group*))
+ "Return the father group of to-find"
+ (with-all-groups (root group)
+ (when (member to-find (group-child group))
+ (return-from find-father-group group))))
+
+
+
+(defun find-group-window (window &optional (root *root-group*))
+ "Return the group with the window window"
+ (with-all-groups (root group)
+ (when (xlib:window-equal window (group-window group))
+ (return-from find-group-window group))))
+
+
+(defun find-group-by-name (name)
+ "Find a group from its name"
+ (when name
+ (with-all-groups (*root-group* group)
+ (when (string-equal name (group-name group))
+ (return-from find-group-by-name group)))))
+
+(defun find-group-by-number (number)
+ "Find a group from its number"
+ (when (numberp number)
+ (with-all-groups (*root-group* group)
+ (when (= number (group-number group))
+ (return-from find-group-by-number group)))))
+
+
+
+
+(defun get-all-windows (&optional (root *root-group*))
+ "Return all windows in root and in its childs"
+ (let ((acc nil))
+ (with-all-windows (root window)
+ (push window acc))
+ acc))
+
+
+(defun get-hidden-windows ()
+ "Return all hiddens windows"
+ (let ((all-windows (get-all-windows))
+ (hidden-windows (remove-if-not #'window-hidden-p
+ (copy-list (xlib:query-tree *root*)))))
+ (set-difference hidden-windows all-windows)))
+
+
+
+
+(defun display-group-info (group)
+ (let ((dy (+ (xlib:max-char-ascent *default-font*) (xlib:max-char-descent *default-font*))))
+ (with-slots (name number gc window child) group
+ (when (equal group *current-root*)
+ (xlib:clear-area window))
+ (xlib:with-gcontext (gc :foreground (get-color (if (and (equal group *current-root*)
+ (equal group *current-child*))
+ "Red" "Green")))
+ (xlib:draw-image-glyphs window gc 5 dy
+ (format nil "Group: ~A~A "
+ number
+ (if name (format nil " - ~A" name) "")))
+ (let ((pos dy))
+ (when (equal group *current-root*)
+ (xlib:draw-image-glyphs window gc 5 (incf pos dy)
+ (format nil "~A hidden windows " (length (get-hidden-windows))))
+ (when *child-selection*
+ (xlib:draw-image-glyphs window gc 5 (incf pos dy)
+ (with-output-to-string (str)
+ (format str "Selection: ")
+ (dolist (child *child-selection*)
+ (typecase child
+ (xlib:window (format str "~A " (xlib:wm-name child)))
+ (group (format str "group:~A[~A] " (group-number child)
+ (aif (group-name child) it "")))))
+ (format str " ")))))
+ (dolist (ch child)
+ (when (xlib:window-p ch)
+ (xlib:draw-glyphs window gc 5 (incf pos dy) (ensure-printable (xlib:wm-name ch))))))))))
+
+
+
+
+
+
+
+
+
+
+(defun get-father-layout (child father)
+ (if (group-p father)
+ (aif (group-layout father)
+ (funcall it child father)
+ (no-layout child father))
+ (get-fullscreen-size)))
+
+
+(defgeneric adapt-child-to-father (child father))
+
+(defmethod adapt-child-to-father ((window xlib:window) father)
+ (with-xlib-protect
+ (multiple-value-bind (nx ny nw nh raise-p)
+ (get-father-layout window father)
+ (setf (xlib:drawable-x window) nx
+ (xlib:drawable-y window) ny
+ (xlib:drawable-width window) nw
+ (xlib:drawable-height window) nh)
+ raise-p)))
+
+(defmethod adapt-child-to-father ((group group) father)
+ (with-xlib-protect
+ (multiple-value-bind (nx ny nw nh raise-p)
+ (get-father-layout group father)
+ (with-slots (rx ry rw rh window) group
+ (setf rx nx ry ny rw nw rh nh)
+ (setf (xlib:drawable-x window) rx
+ (xlib:drawable-y window) ry
+ (xlib:drawable-width window) rw
+ (xlib:drawable-height window) rh)
+ raise-p))))
+
+
+
+(defgeneric show-child (child father))
+(defgeneric hide-child (child))
+
+(defmethod show-child ((group group) father)
+ (with-xlib-protect
+ (with-slots (window) group
+ (let ((raise-p (adapt-child-to-father group father)))
+ (when (or *show-root-group-p* (not (equal group *current-root*)))
+ (setf (xlib:window-background window) (get-color "Black"))
+ (xlib:map-window window)
+ (when raise-p
+ (raise-window window))
+ (display-group-info group))))))
+
+
+(defmethod hide-child ((group group))
+ (with-xlib-protect
+ (with-slots (window) group
+ (xlib:unmap-window window))))
+
+
+(defmethod show-child ((window xlib:window) father)
+ (with-xlib-protect
+ (let ((raise-p nil))
+ (when (eql (window-type window) :normal)
+ (setf raise-p (adapt-child-to-father window father)))
+ (xlib:map-window window)
+ (when raise-p
+ (raise-window window)))))
+
+(defmethod hide-child ((window xlib:window))
+ (hide-window window))
+
+
+
+
+
+
+(defgeneric select-child (child selected))
+
+(defmethod select-child ((group group) selected)
+ (with-xlib-protect
+ (when (and (group-p group) (group-window group))
+ (setf (xlib:window-border (group-window group))
+ (get-color (cond ((equal selected :maybe) *color-maybe-selected*)
+ ((equal selected nil) *color-unselected*)
+ (selected *color-selected*)))))))
+
+(defmethod select-child ((window xlib:window) selected)
+ (with-xlib-protect
+ (setf (xlib:window-border window)
+ (get-color (cond ((equal selected :maybe) *color-maybe-selected*)
+ ((equal selected nil) *color-unselected*)
+ (selected *color-selected*))))))
+
+(defun select-current-group (selected)
+ (select-child *current-child* selected))
+
+
+
+(defun set-focus-to-current-child ()
+ (no-focus)
+ (when (group-p *current-child*)
+ (when (xlib:window-p (first (group-child *current-child*)))
+ (focus-window (first (group-child *current-child*)))))
+ (when (xlib:window-p *current-child*)
+ (focus-window *current-child*)))
+
+
+
+
+
+(defun show-all-childs ()
+ "Show all childs from *current-root*"
+ (labels ((rec (root father first-p)
+ (show-child root father)
+ (select-child root (if (equal root *current-child*) t
+ (if first-p :maybe nil)))
+ (when (group-p root)
+ (let ((first-child (first (group-child root))))
+ (dolist (child (reverse (group-child root)))
+ (rec child root (and first-p (equal child first-child))))))))
+ (rec *current-root* nil t)
+ (set-focus-to-current-child)))
+
+
+
+
+(defun hide-all-childs (root)
+ (hide-child root)
+ (when (group-p root)
+ (dolist (child (group-child root))
+ (hide-all-childs child))))
+
+
+
+
+(defun select-next/previous-brother (fun-rotate)
+ "Select the next/previous brother group"
+ (let ((group-is-root? (and (equal *current-root* *current-child*)
+ (not (equal *current-root* *root-group*)))))
+ (if group-is-root?
+ (hide-all-childs *current-root*)
+ (select-current-group nil))
+ (let ((father (find-father-group *current-child*)))
+ (when (group-p father)
+ (with-slots (child) father
+ (setf child (funcall fun-rotate child))
+ (setf *current-child* (first child)))))
+ (when group-is-root?
+ (setf *current-root* *current-child*))
+ (show-all-childs)))
+
+
+(defun select-next-brother ()
+ "Select the next brother group"
+ (select-next/previous-brother #'anti-rotate-list))
+
+(defun select-previous-brother ()
+ "Select the previous brother group"
+ (select-next/previous-brother #'rotate-list))
+
+
+(defun select-next-level ()
+ "Select the next level in group"
+ (select-current-group nil)
+ (when (group-p *current-child*)
+ (awhen (first (group-child *current-child*))
+ (setf *current-child* it)))
+ (show-all-childs))
+
+(defun select-previous-level ()
+ "Select the previous level in group"
+ (unless (equal *current-child* *current-root*)
+ (select-current-group nil)
+ (awhen (find-father-group *current-child*)
+ (setf *current-child* it))
+ (show-all-childs)))
+
+
+(defun select-next/previous-child (fun-rotate)
+ "Select the next/previous child"
+ (when (group-p *current-child*)
+ (with-slots (child) *current-child*
+ (setf child (funcall fun-rotate child)))
+ (show-all-childs)))
+
+
+(defun select-next-child ()
+ "Select the next child"
+ (select-next/previous-child #'anti-rotate-list))
+
+(defun select-previous-child ()
+ "Select the previous child"
+ (select-next/previous-child #'rotate-list))
+
+
+
+(defun enter-group ()
+ "Enter in the selected group - ie make it the root group"
+ (hide-all-childs *current-root*)
+ (setf *current-root* *current-child*)
+ (show-all-childs))
+
+(defun leave-group ()
+ "Leave the selected group - ie make its father the root group"
+ (hide-all-childs *current-root*)
+ (awhen (find-father-group *current-root*)
+ (when (group-p it)
+ (setf *current-root* it)))
+ (show-all-childs))
+
+
+(defun switch-to-root-group ()
+ "Switch to the root group"
+ (hide-all-childs *current-root*)
+ (setf *current-root* *root-group*)
+ (show-all-childs))
+
+(defun switch-and-select-root-group ()
+ "Switch and select the root group"
+ (hide-all-childs *current-root*)
+ (setf *current-root* *root-group*)
+ (setf *current-child* *current-root*)
+ (show-all-childs))
+
+
+(defun toggle-show-root-group ()
+ "Show/Hide the root group"
+ (hide-all-childs *current-root*)
+ (setf *show-root-group-p* (not *show-root-group-p*))
+ (show-all-childs))
+
+
+(defun focus-child (child father)
+ "Focus child - Return true if something has change"
+ (when (and (group-p father)
+ (member child (group-child father)))
+ (when (not (equal child (first (group-child father))))
+ (loop until (equal child (first (group-child father)))
+ do (setf (group-child father) (rotate-list (group-child father))))
+ t)))
+
+(defun focus-child-rec (child father)
+ "Focus child and its fathers - Return true if something has change"
+ (let ((change nil))
+ (labels ((rec (child father)
+ (when (focus-child child father)
+ (setf change t))
+ (when father
+ (rec father (find-father-group father)))))
+ (rec child father))
+ change))
+
+(defun set-current-child (child father)
+ "Set *current-child* to child - Return t if something has change"
+ (cond ((and (group-p child) (not (equal *current-child* child)))
+ (setf *current-child* child)
+ t)
+ ((and (group-p father) (not (equal *current-child* father)))
+ (setf *current-child* father)
+ t)))
+
+(defun set-current-root (father)
+ "Set current root if father is not in current root"
+ (unless (find-child father *current-root*)
+ (setf *current-root* father)))
+
+
+(defun focus-all-childs (child father)
+ "Focus child and its fathers - Set current group to father"
+ (let ((new-focus (focus-child-rec child father))
+ (new-current-child (set-current-child child father))
+ (new-root (set-current-root father)))
+ (or new-focus new-current-child new-root)))
+
+
+
+(defun remove-child-in-group (child group)
+ "Remove the child in group"
+ (when (group-p group)
+ (setf (group-child group) (remove child (group-child group) :test #'equal))))
+
+(defun remove-child-in-groups (child root)
+ "Remove child in the group root and in all its childs"
+ (with-all-groups (root group)
+ (remove-child-in-group child group))
+ (when (xlib:window-p child)
+ (netwm-remove-in-client-list child)))
+
+
+
+(defun remove-child-in-all-groups (child)
+ "Remove child in all groups from *root-group*"
+ (when (equal child *current-root*)
+ (setf *current-root* (find-father-group child)))
+ (when (equal child *current-child*)
+ (setf *current-child* *current-root*))
+ (remove-child-in-groups child *root-group*))
+
+
+
+
+
+
+(defun process-new-window (window)
+ "When a new window is created (or when we are scanning initial
+windows), this function dresses the window up and gets it ready to be
+managed."
+ ;; Listen for events
+ ;;(create-workspace-on-request)
+ ;;(create-group-on-request)
+ ;; PHIL: TODO: add a hook here
+ (with-xlib-protect
+ (setf (xlib:window-event-mask window) *window-events*)
+ (set-window-state window +normal-state+)
+ (setf (xlib:drawable-border-width window) (case (window-type window)
+ (:normal 1)
+ (:maxsize 1)
+ (:transient 1)
+ (t 0)))
+ (grab-all-buttons window)
+ (when (xlib:window-p *current-child*)
+ (leave-group)
+ (select-previous-level))
+ ;;(unless (eql (window-type window) :maxsize) ;; PHIL: this is sufficient for the ROX panel
+ (pushnew window (group-child *current-child*)) ;)
+ (unhide-window window)
+ ;;(dbg (xlib:wm-name window) (xlib:get-wm-class window) (window-type window)) ;;; PHIL
+ (case (window-type window)
+ (:normal (adapt-child-to-father window *current-child*))
+ (t (let* ((hints (xlib:wm-normal-hints window))
+ (min-width (or (and hints (xlib:wm-size-hints-min-width hints)) 0))
+ (min-height (or (and hints (xlib:wm-size-hints-min-height hints)) 0))
+ (max-width (or (and hints (xlib:wm-size-hints-max-width hints)) (xlib:drawable-width *root*)))
+ (max-height (or (and hints (xlib:wm-size-hints-max-height hints)) (xlib:drawable-height *root*)))
+ (rwidth (or (and hints (or (xlib:wm-size-hints-width hints) (xlib:wm-size-hints-base-width hints)))
+ (xlib:drawable-width window)))
+ (rheight (or (and hints (or (xlib:wm-size-hints-height hints) (xlib:wm-size-hints-base-height hints)))
+ (xlib:drawable-height window))))
+ (setf (xlib:drawable-width window) (min (max min-width rwidth) max-width)
+ (xlib:drawable-height window) (min (max min-height rheight) max-height))
+ (setf (xlib:drawable-x window) (truncate (+ (group-rx *current-child*) (/ (- (group-rw *current-child*) (xlib:drawable-width window)) 2)))
+ (xlib:drawable-y window) (truncate (+ (group-ry *current-child*) (/ (- (group-rh *current-child*) (xlib:drawable-height window)) 2)))))))
+ (netwm-add-in-client-list window)))
+
+
+
+
+;;(defun hide-existing-windows (screen)
+;; "Hide all existing windows in screen"
+;; (dolist (win (xlib:query-tree (xlib:screen-root screen)))
+;; (hide-window win)))
+
+(defun process-existing-windows (screen)
+ "Windows present when clfswm starts up must be absorbed by clfswm."
+ (let ((id-list nil)
+ (all-windows (get-all-windows)))
+ (dolist (win (xlib:query-tree (xlib:screen-root screen)))
+ (unless (member win all-windows)
+ (let ((map-state (xlib:window-map-state win))
+ (wm-state (window-state win)))
+ (unless (or (eql (xlib:window-override-redirect win) :on)
+ (eql win *no-focus-window*))
+ (when (or (eql map-state :viewable)
+ (eql wm-state +iconic-state+))
+ (format t "Processing ~S: type=~A ~S~%" (xlib:wm-name win) (window-type win)win)
+ ;; (unhide-window win)
+ (process-new-window win)
+ (xlib:map-window win)
+ (pushnew (xlib:window-id win) id-list))))))
+ (netwm-set-client-list id-list)))
Added: clfswm-internal.lisp.bak
==============================================================================
--- (empty file)
+++ clfswm-internal.lisp.bak Sat Mar 1 07:36:13 2008
@@ -0,0 +1,384 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; #Date#: Fri Dec 21 23:00:08 2007
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Main functions
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2005 Philippe Brochard
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+
+;;; Minimal hook
+(defun call-hook (hook args)
+ "Call a hook (a function, a symbol or a list of function)"
+ (typecase hook
+ (list (dolist (h hook)
+ (apply 'call-hook (list h args))))
+ (t (apply hook args))))
+
+
+
+;;; CLFSWM internal functions
+(defun create-default-workspace (&optional number)
+ (make-workspace :number (or number (incf *current-workspace-number*))))
+
+
+(defun get-group-size (group)
+ (if (group-fullscreenp group)
+ (destructuring-bind (x y width height) *fullscreen*
+ (values x y width height))
+ (values (group-x group)
+ (group-y group)
+ (group-width group)
+ (group-height group))))
+
+
+(defun select-minimum-workspace ()
+ "Rotate the workspace list until the smallest workspace is selected"
+ (let ((min-number (loop for w in *workspace-list*
+ minimize (workspace-number w))))
+ (when min-number
+ (loop while (and (workspace-p (first *workspace-list*))
+ (/= (workspace-number (first *workspace-list*)) min-number))
+ do (setf *workspace-list* (rotate-list *workspace-list*))))))
+
+
+
+
+(defun adapt-window-to-group (window group)
+ (handler-case
+ (when (and window group)
+ (unhide-window window)
+ (multiple-value-bind (x y width height)
+ (get-group-size group)
+ (case (window-type window)
+ (:normal
+ ;;(dbg "adapt 1" (wm-name window) (drawable-height window)) ;;; PHIL
+ (setf (drawable-x window) x
+ (drawable-y window) y
+ (drawable-width window) width
+ (drawable-height window) height)
+ ;;(dbg "adapt 2" (drawable-height window))
+ )
+ (t (let* ((hints (xlib:wm-normal-hints window))
+ (hints-width (or (and hints (xlib:wm-size-hints-max-width hints))
+ most-positive-fixnum))
+ (hints-height (or (and hints (xlib:wm-size-hints-max-height hints))
+ most-positive-fixnum)))
+ ;;; Adapt only windows with width and heigth outside group
+ (when (> hints-width width)
+ (setf (drawable-width window) width
+ (drawable-x window) x))
+ (when (> hints-height height)
+ (setf (drawable-height window) height
+ (drawable-y window) y)))))))
+ ((or match-error window-error drawable-error) (c)
+ (declare (ignore c)))))
+ ;;(dbg "Adapt error" c))))
+
+
+
+
+(defun adapt-all-window-in-group (group)
+ (when group
+ (dolist (window (group-window-list group))
+ (adapt-window-to-group window group))))
+
+
+(defun add-window-in-group (window group)
+ (when (and window group)
+ (pushnew window (group-window-list group))
+ (adapt-window-to-group window group)
+ window))
+
+(defun add-group-in-workspace (group workspace)
+ (when group
+ (pushnew group (workspace-group-list workspace))
+ group))
+
+
+
+(defun add-workspace (workspace)
+ (when workspace
+ (select-minimum-workspace)
+ (setf *workspace-list* (anti-rotate-list (append *workspace-list* (list workspace))))
+ (netwm-update-desktop-property)
+ workspace))
+
+
+
+(defun remove-window-in-group (window group)
+ (setf (group-window-list group)
+ (remove window (group-window-list group))))
+
+(defun remove-window-in-workspace (window workspace)
+ (dolist (group (workspace-group-list workspace))
+ (remove-window-in-group window group)))
+
+(defun remove-window-in-all-workspace (window)
+ (dolist (workspace *workspace-list*)
+ (remove-window-in-workspace window workspace))
+ (netwm-remove-in-client-list window))
+
+
+(defun remove-group-in-workspace (group workspace)
+ (setf (workspace-group-list workspace)
+ (remove group (workspace-group-list workspace))))
+
+(defun remove-group-in-all-workspace (group)
+ (dolist (workspace *workspace-list*)
+ (remove-group-in-workspace group workspace)))
+
+(defun remove-workspace (workspace)
+ (setf *workspace-list* (remove workspace *workspace-list*))
+ (netwm-update-desktop-property))
+
+
+(defun current-workspace ()
+ (if (consp *workspace-list*)
+ (first *workspace-list*)
+ (add-workspace (create-default-workspace))))
+
+
+(defun current-group ()
+ (let ((current-workspace (current-workspace)))
+ (when current-workspace
+ (let ((group-list (workspace-group-list current-workspace)))
+ (if (consp group-list)
+ (first group-list)
+ (add-group-in-workspace (copy-group *default-group*) current-workspace))))))
+
+(defun current-window ()
+ (let ((current-group (current-group)))
+ (when current-group
+ (let ((window-list (group-window-list current-group)))
+ (when (consp window-list)
+ (first window-list))))))
+
+
+
+
+
+
+(defun show-group (root gc group)
+ (when (and gc group)
+ (handler-case
+ (multiple-value-bind (x y width height)
+ (get-group-size group)
+ (setf (gcontext-foreground gc)
+ (get-color (if (eql group (current-group))
+ *color-selected*
+ *color-unselected*)))
+ (draw-rectangle root gc (1- x) (1- y) (1+ width) (1+ height))
+ (draw-line root gc x y (+ x width) (+ y height))
+ (draw-line root gc x (+ y height) (+ x width) y))
+ ((or match-error window-error drawable-error) (c)
+ (declare (ignore c))))))
+
+
+
+(defun show-all-group (workspace &optional (root *root*) (gc *root-gc*))
+ "Show all groups in workspace"
+ (handler-case
+ (progn
+ (clear-area root)
+ (dolist (group (reverse (workspace-group-list workspace)))
+ (show-group root gc group)))
+ ((or match-error window-error drawable-error) (c)
+ (declare (ignore c)))))
+;;(dbg "Show all group" c))))
+
+
+
+
+(defun hide-all-windows-in-workspace (workspace)
+ "Hide all windows in a workspace"
+ (no-focus)
+ (setf *open-next-window-in-new-workspace* nil)
+ (dolist (group (workspace-group-list workspace))
+ (dolist (window (group-window-list group))
+ (hide-window window))))
+
+(defun show-all-windows-in-workspace (workspace)
+ "Show all windows in a workspace"
+ (dolist (group (workspace-group-list workspace))
+ (dolist (window (group-window-list group))
+ (unhide-window window)
+ (adapt-window-to-group window group))
+ (raise-window (first (group-window-list group))))
+ (adapt-window-to-group (current-window) (current-group))
+ (focus-window (current-window))
+ (show-all-group (current-workspace)))
+
+
+
+(defun get-all-windows ()
+ "Return a list with all known windows in all workspace"
+ (let ((acc nil))
+ (dolist (workspace *workspace-list*)
+ (dolist (group (workspace-group-list workspace))
+ (dolist (window (group-window-list group))
+ (pushnew window acc))))
+ (reverse acc)))
+
+(defun get-all-windows-in-workspace (workspace)
+ "Return a list with all known windows in workspace"
+ (let ((acc nil))
+ (dolist (group (workspace-group-list workspace))
+ (dolist (window (group-window-list group))
+ (pushnew window acc)))
+ acc))
+
+
+
+(defun create-workspace-on-request ()
+ (when *open-next-window-in-new-workspace*
+ (let ((action *open-next-window-in-new-workspace*))
+ (setf *open-next-window-in-new-workspace* nil)
+ (hide-all-windows-in-workspace (current-workspace))
+ (typecase action
+ (number (let ((new-workspace (find-if #'(lambda (w)
+ (= (workspace-number w) action))
+ *workspace-list*)))
+ (if new-workspace
+ (loop while (/= (workspace-number (current-workspace)) action)
+ do (setf *workspace-list* (rotate-list *workspace-list*)))
+ (add-workspace (create-default-workspace action)))))
+ (t (add-workspace (create-default-workspace))))
+ (show-all-windows-in-workspace (current-workspace)))))
+
+
+
+(defun create-group-on-request ()
+ (when *open-next-window-in-new-group*
+ (minimize-group (current-group))
+ (unless (null (group-window-list (current-group)))
+ (add-group-in-workspace (copy-group *default-group*) (current-workspace)))
+ (case *open-next-window-in-new-group*
+ (:once (setf *open-next-window-in-new-group* nil)))
+ (show-all-windows-in-workspace (current-workspace))))
+
+
+(defun process-new-window (window)
+ "When a new window is created (or when we are scanning initial
+windows), this function dresses the window up and gets it ready to be
+managed."
+ ;; Listen for events
+ (create-workspace-on-request)
+ (create-group-on-request)
+ (setf (window-event-mask window) *window-events*)
+ (set-window-state window +normal-state+)
+ (setf (drawable-border-width window) (case (window-type window)
+ (:normal 0)
+ (:maxsize 1)
+ (:transient 1)
+ (t 0)))
+ (if (equal (window-type window) :normal)
+ (adapt-window-to-group window (current-group))
+ (let* ((hints (xlib:wm-normal-hints window))
+ (hints-width (or (and hints (xlib:wm-size-hints-max-width hints))
+ most-positive-fixnum))
+ (hints-height (or (and hints (xlib:wm-size-hints-max-height hints))
+ most-positive-fixnum)))
+ (multiple-value-bind (x y width height)
+ (get-group-size (current-group))
+ (setf (drawable-width window) (min hints-width width)
+ (drawable-height window) (min hints-height height))
+ (setf (drawable-x window) (truncate (+ x (/ (- width (drawable-width window)) 2)))
+ (drawable-y window) (truncate (+ y (/ (- height (drawable-height window)) 2)))))))
+ (add-window-in-group window (current-group))
+ (netwm-add-in-client-list window))
+
+
+(defun focus-group (group workspace)
+ "Push group on top of workspace group list"
+ (remove-group-in-workspace group workspace)
+ (add-group-in-workspace group workspace))
+
+
+(defun focus-workspace (workspace)
+ "Push workspace on top of workspace list"
+ (remove-workspace workspace)
+ (add-workspace workspace))
+
+
+(defun find-group-under-mouse (root-x root-y)
+ "Find the group under the mouse pointer"
+ (dolist (group (workspace-group-list (current-workspace)))
+ (when (and (<= (group-x group) root-x (+ (group-x group) (group-width group)))
+ (<= (group-y group) root-y (+ (group-y group) (group-height group))))
+ (return group))))
+
+(defun focus-group-under-mouse (root-x root-y)
+ "Focus the group under the mouse pointer"
+ (when (or (<= root-x (- (screen-width *screen*) 100))
+ (<= root-y (- (screen-height *screen*) 100)))
+ (let ((group (find-group-under-mouse root-x root-y)))
+ (when (and group (not (equal group (current-group))))
+ (no-focus)
+ (focus-group group (current-workspace))
+ (focus-window (current-window))
+ (show-all-group (current-workspace))))))
+
+
+
+
+
+
+(defun funcall-key-from-code (hash-table-key code state &optional args)
+ (labels ((funcall-from (key)
+ (multiple-value-bind (function foundp)
+ (gethash (list key state) hash-table-key)
+ (when (and foundp (first function))
+ (if args
+ (funcall (first function) args)
+ (funcall (first function)))
+ t)))
+ (from-code ()
+ (funcall-from code))
+ (from-char ()
+ (let ((char (keycode->char code state)))
+ (funcall-from char)))
+ (from-string ()
+ (let ((string (keysym->keysym-name (keycode->keysym *display* code 0))))
+ (funcall-from string))))
+ (cond ((from-code))
+ ((from-char))
+ ((from-string)))))
+
+
+
+(defun funcall-button-from-code (hash-table-key code state root-x root-y
+ &optional (action #'first) args)
+ "Action: first=press third=release"
+ (let ((state (modifiers->state (set-difference (state->modifiers state)
+ '(:button-1 :button-2 :button-3 :button-4 :button-5)))))
+ (multiple-value-bind (function foundp)
+ (gethash (list code state) hash-table-key)
+ (if (and foundp (funcall action function))
+ (if args
+ (funcall (funcall action function) root-x root-y args)
+ (funcall (funcall action function) root-x root-y))
+ t))))
+
+
Added: clfswm-keys.fas
==============================================================================
--- (empty file)
+++ clfswm-keys.fas Sat Mar 1 07:36:13 2008
@@ -0,0 +1,907 @@
+(|SYSTEM|::|VERSION| '(20060802.))
+#0Y |CHARSET|::|UTF-8|
+#Y(#:|1 28 (IN-PACKAGE :CLFSWM)-1|
+ #17Y(00 00 00 00 00 00 00 00 00 01 DA 31 E6 0F 01 19 01)
+ ("CLFSWM" |COMMON-LISP|::|*PACKAGE*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|30 31 (DEFUN DEFINE-HASH-TABLE-KEY-NAME (HASH-TABLE NAME) ...)-2|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|
+ #17Y(00 00 00 00 02 00 00 00 06 03 DA AF AF 31 66 19 03)
+ (|CLFSWM|::|NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|HASH-TABLE| |CLFSWM|::|NAME|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|33 35 (DEFINE-HASH-TABLE-KEY-NAME *MAIN-KEYS* "Main mode keys")-3|
+ #17Y(00 00 00 00 00 00 00 00 00 01 6B 00 DB 30 02 19 01)
+ (|CLFSWM|::|*MAIN-KEYS*| "Main mode keys"
+ |CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|36 36 (DEFINE-HASH-TABLE-KEY-NAME *SECOND-KEYS* "Second mode keys")-4|
+ #17Y(00 00 00 00 00 00 00 00 00 01 6B 00 DB 30 02 19 01)
+ (|CLFSWM|::|*SECOND-KEYS*| "Second mode keys"
+ |CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|37 37 (DEFINE-HASH-TABLE-KEY-NAME *MOUSE-ACTION* "Mouse buttons actions in second mode")-5|
+ #17Y(00 00 00 00 00 00 00 00 00 01 6B 00 DB 30 02 19 01)
+ (|CLFSWM|::|*MOUSE-ACTION*| "Mouse buttons actions in second mode"
+ |CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|38 38 (DEFINE-HASH-TABLE-KEY-NAME *PAGER-KEYS* "Pager mode keys")-6|
+ #17Y(00 00 00 00 00 00 00 00 00 01 6B 00 DB 30 02 19 01)
+ (|CLFSWM|::|*PAGER-KEYS*| "Pager mode keys"
+ |CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|39 39 (DEFINE-HASH-TABLE-KEY-NAME *PAGER-MOUSE-ACTION* "Mouse buttons actions in pager mode")-7|
+ #17Y(00 00 00 00 00 00 00 00 00 01 6B 00 DB 30 02 19 01)
+ (|CLFSWM|::|*PAGER-MOUSE-ACTION*| "Mouse buttons actions in pager mode"
+ |CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|40 40 (DEFINE-HASH-TABLE-KEY-NAME *INFO-KEYS* "Info mode keys")-8|
+ #17Y(00 00 00 00 00 00 00 00 00 01 6B 00 DB 30 02 19 01)
+ (|CLFSWM|::|*INFO-KEYS*| "Info mode keys"
+ |CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|41 41 (DEFINE-HASH-TABLE-KEY-NAME *INFO-MOUSE-ACTION* "Mouse buttons actions in info mode")-9|
+ #17Y(00 00 00 00 00 00 00 00 00 01 6B 00 DB 30 02 19 01)
+ (|CLFSWM|::|*INFO-MOUSE-ACTION*| "Mouse buttons actions in info mode"
+ |CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|44 63 (DEFMACRO DEFINE-DEFINE-KEY (NAME HASHTABLE) ...)-10|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|DEFINE-DEFINE-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-DEFINE-KEY|
+ #141Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 80 75 9F 5C 78
+ A0 5C 5C 78 DD AE DE 6E 03 05 E0 AF E1 6E 03 05 E2 B0 E3 6E 03 05
+ E4 B1 E5 6E 03 05 E6 E7 B1 E8 E9 EA EB EC B8 7B 03 D8 5D 7A 7B 05
+ EE B1 EF F0 F1 B6 7B 02 03 18 5D 7A 7B 04 EE B1 F3 F4 F5 F4 F6 F1
+ BB 7B 01 7B 02 7B 03 7B 03 7B 04 EE B1 F7 F4 65 1E 65 1F 65 20 65
+ 21 65 22 65 23 65 24 F0 F1 BE 7B 02 03 25 5D 7A 7B 07 7B 03 7B 04
+ 61 05 19 09 AE 2F 02 19 03)
+ (3. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| "define-" "-key-fun"
+ |TOOLS|::|CREATE-SYMBOL| "define-" "-key" "undefine-" "-key"
+ "undefine-" "-multi-keys" |COMMON-LISP|::|PROGN| |COMMON-LISP|::|DEFUN|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)
+ "Define a new key, a key is '(char '(modifier list))"
+ |COMMON-LISP|::|SETF| |COMMON-LISP|::|GETHASH| |CLFSWM|::|KEY|
+ ((|COMMON-LISP|::|LIST| |COMMON-LISP|::|FUNCTION|
+ |CLFSWM|::|KEYSTRING|))
+ |COMMON-LISP|::|DEFMACRO|
+ ((|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)
+ |COMMON-LISP|::|LIST| |COMMON-LISP|::|QUOTE|
+ ((|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ |COMMON-LISP|::|FUNCTION| |CLFSWM|::|KEYSTRING|)
+ ((|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ |COMMON-LISP|::|CONS| '|COMMON-LISP|::|REMHASH|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|KEYS|) '|COMMON-LISP|::|PROGN|
+ |COMMON-LISP|::|LOOP| |CLFSWM|::|FOR| |CLFSWM|::|K| |CLFSWM|::|IN|
+ |CLFSWM|::|KEYS| |CLFSWM|::|COLLECT| (|CLFSWM|::|K|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|66 79 (DEFMACRO DEFINE-DEFINE-MOUSE (NAME HASHTABLE) ...)-11|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|DEFINE-DEFINE-MOUSE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-DEFINE-MOUSE|
+ #97Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 80 49 9F 5C 78
+ A0 5C 5C 78 DD AE DE 6E 03 05 E0 AF 70 05 E1 B0 70 05 E2 E3 B0 E4
+ E5 E6 E7 E8 B7 7B 03 D4 5D 7A 7B 05 EA B0 EB EC ED B5 7B 02 D9 5D
+ 7A 7B 04 EA B0 EF F0 F1 F0 F2 ED BA 7B 01 7B 02 7B 03 7B 03 7B 04
+ 61 04 19 08 AE 2F 02 19 03)
+ (3. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| "define-" "-fun" |TOOLS|::|CREATE-SYMBOL|
+ "define-" "undefine-" |COMMON-LISP|::|PROGN| |COMMON-LISP|::|DEFUN|
+ (|CLFSWM|::|BUTTON| |CLFSWM|::|FUNCTION-PRESS|
+ |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|KEYSTRING|
+ |CLFSWM|::|FUNCTION-RELEASE|)
+ "Define a new mouse button action, a button is '(button number '(modifier list))"
+ |COMMON-LISP|::|SETF| |COMMON-LISP|::|GETHASH| |CLFSWM|::|BUTTON|
+ ((|COMMON-LISP|::|LIST| |CLFSWM|::|FUNCTION-PRESS|
+ |CLFSWM|::|KEYSTRING| |CLFSWM|::|FUNCTION-RELEASE|))
+ |COMMON-LISP|::|DEFMACRO|
+ ((|CLFSWM|::|BUTTON| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|FUNCTION-PRESS| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|FUNCTION-RELEASE| |CLFSWM|::|KEYSTRING|)
+ |COMMON-LISP|::|LIST| |COMMON-LISP|::|QUOTE|
+ ((|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|BUTTON|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ |CLFSWM|::|FUNCTION-PRESS| |CLFSWM|::|KEYSTRING|
+ |CLFSWM|::|FUNCTION-RELEASE|)
+ ((|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ |COMMON-LISP|::|CONS| '|COMMON-LISP|::|REMHASH|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|)))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|83 83 (DEFINE-DEFINE-KEY "main" *MAIN-KEYS*)-12-1|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-MAIN-KEY-FUN| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-MAIN-KEY-FUN|
+ #25Y(00 00 00 00 02 00 01 00 06 09 3D 01 6B 00 AF AF 7B 02 B1 AE AE 31
+ 66 19 06)
+ (|CLFSWM|::|*MAIN-KEYS*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)
+ "Define a new key, a key is '(char '(modifier list))"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|83 83 (DEFINE-DEFINE-KEY "main" *MAIN-KEYS*)-12-2|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-MAIN-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-MAIN-KEY|
+ #73Y(00 00 00 00 02 00 00 00 00 03 AE DA DB 2D 03 02 1D 24 9F 5C 78 AC
+ DE 8B 02 21 AC 94 00 95 01 A3 5C 5C 78 A4 5C 5C 5C 78 E6 E7 B1 B1
+ 6F 0E 7B 03 AF AF 61 04 19 09 AE 2F 03 19 03 DF E0 B1 E1 B0 E2 6F
+ 09 E4 B3 E5 33 07 1E)
+ (3. 4. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|DEFINE-MAIN-KEY|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|DEFINE-MAIN-KEY-FUN| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|83 83 (DEFINE-DEFINE-KEY "main" *MAIN-KEYS*)-12-3|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|UNDEFINE-MAIN-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-MAIN-KEY|
+ #63Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 1A 9F 5C 78 AC
+ DD 8B 01 17 AC 94 00 95 01 E5 E6 AF AF 6F 0D 7B 03 D3 5D 5D 19 07
+ AE 2F 02 19 03 DE DF B1 E0 B0 E1 6F 08 E3 B3 E4 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|UNDEFINE-MAIN-KEY|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|REMHASH| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE| (|CLFSWM|::|*MAIN-KEYS*|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|83 83 (DEFINE-DEFINE-KEY "main" *MAIN-KEYS*)-12-4|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|UNDEFINE-MAIN-MULTI-KEYS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-MAIN-MULTI-KEYS|
+ #50Y(00 00 00 00 02 00 00 00 00 03 AE 89 00 08 95 02 DC AD 01 02 1B 10
+ AE 2F 01 19 03 87 02 01 DD AE 7B 02 84 00 83 02 AE 8D 94 71 AC 31
+ A6 16 03 5D 19 04)
+ (|EXT|::|PROPER-LIST-P| |SYSTEM|::|MACRO-CALL-ERROR|
+ |COMMON-LISP|::|PROGN| |CLFSWM|::|UNDEFINE-MAIN-KEY|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|84 84 (DEFINE-DEFINE-KEY "second" *SECOND-KEYS*)-13-1|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-SECOND-KEY-FUN| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-SECOND-KEY-FUN|
+ #25Y(00 00 00 00 02 00 01 00 06 09 3D 01 6B 00 AF AF 7B 02 B1 AE AE 31
+ 66 19 06)
+ (|CLFSWM|::|*SECOND-KEYS*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)
+ "Define a new key, a key is '(char '(modifier list))"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|84 84 (DEFINE-DEFINE-KEY "second" *SECOND-KEYS*)-13-2|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-SECOND-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-SECOND-KEY|
+ #73Y(00 00 00 00 02 00 00 00 00 03 AE DA DB 2D 03 02 1D 24 9F 5C 78 AC
+ DE 8B 02 21 AC 94 00 95 01 A3 5C 5C 78 A4 5C 5C 5C 78 E6 E7 B1 B1
+ 6F 0E 7B 03 AF AF 61 04 19 09 AE 2F 03 19 03 DF E0 B1 E1 B0 E2 6F
+ 09 E4 B3 E5 33 07 1E)
+ (3. 4. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|DEFINE-SECOND-KEY|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|DEFINE-SECOND-KEY-FUN| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|84 84 (DEFINE-DEFINE-KEY "second" *SECOND-KEYS*)-13-3|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|UNDEFINE-SECOND-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-SECOND-KEY|
+ #63Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 1A 9F 5C 78 AC
+ DD 8B 01 17 AC 94 00 95 01 E5 E6 AF AF 6F 0D 7B 03 D3 5D 5D 19 07
+ AE 2F 02 19 03 DE DF B1 E0 B0 E1 6F 08 E3 B3 E4 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|UNDEFINE-SECOND-KEY|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|REMHASH| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE| (|CLFSWM|::|*SECOND-KEYS*|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|84 84 (DEFINE-DEFINE-KEY "second" *SECOND-KEYS*)-13-4|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|UNDEFINE-SECOND-MULTI-KEYS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-SECOND-MULTI-KEYS|
+ #50Y(00 00 00 00 02 00 00 00 00 03 AE 89 00 08 95 02 DC AD 01 02 1B 10
+ AE 2F 01 19 03 87 02 01 DD AE 7B 02 84 00 83 02 AE 8D 94 71 AC 31
+ A6 16 03 5D 19 04)
+ (|EXT|::|PROPER-LIST-P| |SYSTEM|::|MACRO-CALL-ERROR|
+ |COMMON-LISP|::|PROGN| |CLFSWM|::|UNDEFINE-SECOND-KEY|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|85 85 (DEFINE-DEFINE-KEY "pager" *PAGER-KEYS*)-14-1|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-PAGER-KEY-FUN| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-PAGER-KEY-FUN|
+ #25Y(00 00 00 00 02 00 01 00 06 09 3D 01 6B 00 AF AF 7B 02 B1 AE AE 31
+ 66 19 06)
+ (|CLFSWM|::|*PAGER-KEYS*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)
+ "Define a new key, a key is '(char '(modifier list))"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|85 85 (DEFINE-DEFINE-KEY "pager" *PAGER-KEYS*)-14-2|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-PAGER-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-PAGER-KEY|
+ #73Y(00 00 00 00 02 00 00 00 00 03 AE DA DB 2D 03 02 1D 24 9F 5C 78 AC
+ DE 8B 02 21 AC 94 00 95 01 A3 5C 5C 78 A4 5C 5C 5C 78 E6 E7 B1 B1
+ 6F 0E 7B 03 AF AF 61 04 19 09 AE 2F 03 19 03 DF E0 B1 E1 B0 E2 6F
+ 09 E4 B3 E5 33 07 1E)
+ (3. 4. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|DEFINE-PAGER-KEY|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|DEFINE-PAGER-KEY-FUN| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|85 85 (DEFINE-DEFINE-KEY "pager" *PAGER-KEYS*)-14-3|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|UNDEFINE-PAGER-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-PAGER-KEY|
+ #63Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 1A 9F 5C 78 AC
+ DD 8B 01 17 AC 94 00 95 01 E5 E6 AF AF 6F 0D 7B 03 D3 5D 5D 19 07
+ AE 2F 02 19 03 DE DF B1 E0 B0 E1 6F 08 E3 B3 E4 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|UNDEFINE-PAGER-KEY|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|REMHASH| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE| (|CLFSWM|::|*PAGER-KEYS*|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|85 85 (DEFINE-DEFINE-KEY "pager" *PAGER-KEYS*)-14-4|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|UNDEFINE-PAGER-MULTI-KEYS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-PAGER-MULTI-KEYS|
+ #50Y(00 00 00 00 02 00 00 00 00 03 AE 89 00 08 95 02 DC AD 01 02 1B 10
+ AE 2F 01 19 03 87 02 01 DD AE 7B 02 84 00 83 02 AE 8D 94 71 AC 31
+ A6 16 03 5D 19 04)
+ (|EXT|::|PROPER-LIST-P| |SYSTEM|::|MACRO-CALL-ERROR|
+ |COMMON-LISP|::|PROGN| |CLFSWM|::|UNDEFINE-PAGER-KEY|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|86 86 (DEFINE-DEFINE-KEY "info" *INFO-KEYS*)-15-1|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-INFO-KEY-FUN| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-INFO-KEY-FUN|
+ #25Y(00 00 00 00 02 00 01 00 06 09 3D 01 6B 00 AF AF 7B 02 B1 AE AE 31
+ 66 19 06)
+ (|CLFSWM|::|*INFO-KEYS*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)
+ "Define a new key, a key is '(char '(modifier list))"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|86 86 (DEFINE-DEFINE-KEY "info" *INFO-KEYS*)-15-2|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-INFO-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-INFO-KEY|
+ #73Y(00 00 00 00 02 00 00 00 00 03 AE DA DB 2D 03 02 1D 24 9F 5C 78 AC
+ DE 8B 02 21 AC 94 00 95 01 A3 5C 5C 78 A4 5C 5C 5C 78 E6 E7 B1 B1
+ 6F 0E 7B 03 AF AF 61 04 19 09 AE 2F 03 19 03 DF E0 B1 E1 B0 E2 6F
+ 09 E4 B3 E5 33 07 1E)
+ (3. 4. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|DEFINE-INFO-KEY|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|DEFINE-INFO-KEY-FUN| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|86 86 (DEFINE-DEFINE-KEY "info" *INFO-KEYS*)-15-3|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|UNDEFINE-INFO-KEY| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-INFO-KEY|
+ #63Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 1A 9F 5C 78 AC
+ DD 8B 01 17 AC 94 00 95 01 E5 E6 AF AF 6F 0D 7B 03 D3 5D 5D 19 07
+ AE 2F 02 19 03 DE DF B1 E0 B0 E1 6F 08 E3 B3 E4 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|UNDEFINE-INFO-KEY|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|REMHASH| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE| (|CLFSWM|::|*INFO-KEYS*|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|86 86 (DEFINE-DEFINE-KEY "info" *INFO-KEYS*)-15-4|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|UNDEFINE-INFO-MULTI-KEYS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-INFO-MULTI-KEYS|
+ #50Y(00 00 00 00 02 00 00 00 00 03 AE 89 00 08 95 02 DC AD 01 02 1B 10
+ AE 2F 01 19 03 87 02 01 DD AE 7B 02 84 00 83 02 AE 8D 94 71 AC 31
+ A6 16 03 5D 19 04)
+ (|EXT|::|PROPER-LIST-P| |SYSTEM|::|MACRO-CALL-ERROR|
+ |COMMON-LISP|::|PROGN| |CLFSWM|::|UNDEFINE-INFO-KEY|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|91 96 (DEFUN UNDEFINE-INFO-KEY-FUN (KEY) ...)-16|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|UNDEFINE-INFO-KEY-FUN| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-INFO-KEY-FUN|
+ #17Y(00 00 00 00 01 00 00 00 06 02 AD 6B 00 31 67 19 02)
+ (|CLFSWM|::|*INFO-KEYS*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|KEY|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|98 98 (DEFINE-DEFINE-MOUSE "mouse-action" *MOUSE-ACTION*)-17-1|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-MOUSE-ACTION-FUN| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-MOUSE-ACTION-FUN|
+ #28Y(00 00 00 00 02 00 02 00 06 0E 3D 02 3D 01 6B 00 B0 B0 B0 7B 03 B2
+ AE AE 31 66 19 07)
+ (|CLFSWM|::|*MOUSE-ACTION*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|BUTTON| |CLFSWM|::|FUNCTION-PRESS|
+ |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|KEYSTRING|
+ |CLFSWM|::|FUNCTION-RELEASE|)
+ "Define a new mouse button action, a button is '(button number '(modifier list))"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|98 98 (DEFINE-DEFINE-MOUSE "mouse-action" *MOUSE-ACTION*)-17-2|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-MOUSE-ACTION| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-MOUSE-ACTION|
+ #77Y(00 00 00 00 02 00 00 00 00 03 AE DA DB 2D 03 02 1D 28 9F 5C 78 AC
+ DE 8B 02 25 AC 94 00 95 01 A3 5C 5C 78 A4 5C 5C 5C 78 B4 71 97 E6
+ E7 B2 B2 6F 0E 7B 03 B0 AF B1 61 05 19 0A AE 2F 03 19 03 DF E0 B1
+ E1 B0 E2 6F 09 E4 B3 E5 33 07 1E)
+ (3. 5. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|DEFINE-MOUSE-ACTION|
+ (|CLFSWM|::|BUTTON| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|DEFINE-MOUSE-ACTION-FUN| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|98 98 (DEFINE-DEFINE-MOUSE "mouse-action" *MOUSE-ACTION*)-17-3|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|UNDEFINE-MOUSE-ACTION| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-MOUSE-ACTION|
+ #63Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 1A 9F 5C 78 AC
+ DD 8B 01 17 AC 94 00 95 01 E5 E6 AF AF 6F 0D 7B 03 D3 5D 5D 19 07
+ AE 2F 02 19 03 DE DF B1 E0 B0 E1 6F 08 E3 B3 E4 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|UNDEFINE-MOUSE-ACTION|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|REMHASH| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE| (|CLFSWM|::|*MOUSE-ACTION*|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|99 99 (DEFINE-DEFINE-MOUSE "pager-mouse-action" *PAGER-MOUSE-ACTION*)-18-1|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-PAGER-MOUSE-ACTION-FUN|
+ |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-PAGER-MOUSE-ACTION-FUN|
+ #28Y(00 00 00 00 02 00 02 00 06 0E 3D 02 3D 01 6B 00 B0 B0 B0 7B 03 B2
+ AE AE 31 66 19 07)
+ (|CLFSWM|::|*PAGER-MOUSE-ACTION*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|BUTTON| |CLFSWM|::|FUNCTION-PRESS|
+ |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|KEYSTRING|
+ |CLFSWM|::|FUNCTION-RELEASE|)
+ "Define a new mouse button action, a button is '(button number '(modifier list))"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|99 99 (DEFINE-DEFINE-MOUSE "pager-mouse-action" *PAGER-MOUSE-ACTION*)-18-2|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-PAGER-MOUSE-ACTION| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-PAGER-MOUSE-ACTION|
+ #77Y(00 00 00 00 02 00 00 00 00 03 AE DA DB 2D 03 02 1D 28 9F 5C 78 AC
+ DE 8B 02 25 AC 94 00 95 01 A3 5C 5C 78 A4 5C 5C 5C 78 B4 71 97 E6
+ E7 B2 B2 6F 0E 7B 03 B0 AF B1 61 05 19 0A AE 2F 03 19 03 DF E0 B1
+ E1 B0 E2 6F 09 E4 B3 E5 33 07 1E)
+ (3. 5. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|DEFINE-PAGER-MOUSE-ACTION|
+ (|CLFSWM|::|BUTTON| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|DEFINE-PAGER-MOUSE-ACTION-FUN| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|99 99 (DEFINE-DEFINE-MOUSE "pager-mouse-action" *PAGER-MOUSE-ACTION*)-18-3|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|UNDEFINE-PAGER-MOUSE-ACTION| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-PAGER-MOUSE-ACTION|
+ #63Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 1A 9F 5C 78 AC
+ DD 8B 01 17 AC 94 00 95 01 E5 E6 AF AF 6F 0D 7B 03 D3 5D 5D 19 07
+ AE 2F 02 19 03 DE DF B1 E0 B0 E1 6F 08 E3 B3 E4 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|UNDEFINE-PAGER-MOUSE-ACTION|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|REMHASH| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE| (|CLFSWM|::|*PAGER-MOUSE-ACTION*|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|100 100 (DEFINE-DEFINE-MOUSE "info-mouse-action" *INFO-MOUSE-ACTION*)-19-1|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-INFO-MOUSE-ACTION-FUN| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-INFO-MOUSE-ACTION-FUN|
+ #28Y(00 00 00 00 02 00 02 00 06 0E 3D 02 3D 01 6B 00 B0 B0 B0 7B 03 B2
+ AE AE 31 66 19 07)
+ (|CLFSWM|::|*INFO-MOUSE-ACTION*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|BUTTON| |CLFSWM|::|FUNCTION-PRESS|
+ |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|KEYSTRING|
+ |CLFSWM|::|FUNCTION-RELEASE|)
+ "Define a new mouse button action, a button is '(button number '(modifier list))"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|100 100 (DEFINE-DEFINE-MOUSE "info-mouse-action" *INFO-MOUSE-ACTION*)-19-2|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 3E 19 01)
+ (|CLFSWM|::|DEFINE-INFO-MOUSE-ACTION| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-INFO-MOUSE-ACTION|
+ #77Y(00 00 00 00 02 00 00 00 00 03 AE DA DB 2D 03 02 1D 28 9F 5C 78 AC
+ DE 8B 02 25 AC 94 00 95 01 A3 5C 5C 78 A4 5C 5C 5C 78 B4 71 97 E6
+ E7 B2 B2 6F 0E 7B 03 B0 AF B1 61 05 19 0A AE 2F 03 19 03 DF E0 B1
+ E1 B0 E2 6F 09 E4 B3 E5 33 07 1E)
+ (3. 5. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|DEFINE-INFO-MOUSE-ACTION|
+ (|CLFSWM|::|BUTTON| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|DEFINE-INFO-MOUSE-ACTION-FUN| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|100 100 (DEFINE-DEFINE-MOUSE "info-mouse-action" *INFO-MOUSE-ACTION*)-19-3|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|UNDEFINE-INFO-MOUSE-ACTION| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNDEFINE-INFO-MOUSE-ACTION|
+ #63Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 1A 9F 5C 78 AC
+ DD 8B 01 17 AC 94 00 95 01 E5 E6 AF AF 6F 0D 7B 03 D3 5D 5D 19 07
+ AE 2F 02 19 03 DE DF B1 E0 B0 E1 6F 08 E3 B3 E4 33 07 1E)
+ (2. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| 1. |EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ :|DETAIL| "~S: ~S does not match lambda list element ~:S"
+ |SYSTEM|::|TEXT| |CLFSWM|::|UNDEFINE-INFO-MOUSE-ACTION|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|REMHASH| |COMMON-LISP|::|LIST|
+ |CLFSWM|::|MODIFIERS->STATE| (|CLFSWM|::|*INFO-MOUSE-ACTION*|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|106 125 (DEFMACRO DEFINE-UNGRAB/GRAB (NAME FUNCTION HASHTABLE) ...)-20|
+ #22Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 6F 03 32 83 C5 19 01)
+ (|CLFSWM|::|DEFINE-UNGRAB/GRAB| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|DEFINE-UNGRAB/GRAB|
+ #77Y(00 00 00 00 02 00 00 00 00 03 AE DA DA 2D 03 01 1D 36 9F 5C 78 A0
+ 5C 5C 78 A1 5C 5C 5C 78 DD AF 63 DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8
+ E9 BC D5 7A D6 5D 5D 7A 7B 03 D7 5D 7A D8 5D 5D 7A 7B 04 7B 02 B1
+ 7B 03 61 04 19 06 AE 2F 02 19 03)
+ (4. |SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P|
+ |SYSTEM|::|MACRO-CALL-ERROR| |COMMON-LISP|::|DEFUN|
+ |COMMON-LISP|::|MAPHASH| |COMMON-LISP|::|FUNCTION|
+ |COMMON-LISP|::|LAMBDA| (|CLFSWM|::|K| |CLFSWM|::|V|)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |CLFSWM|::|V|))
+ |COMMON-LISP|::|WHEN| (|COMMON-LISP|::|CONSP| |CLFSWM|::|K|)
+ |COMMON-LISP|::|HANDLER-CASE| |COMMON-LISP|::|LET*|
+ ((|CLFSWM|::|KEY| (|COMMON-LISP|::|FIRST| |CLFSWM|::|K|))
+ (|CLFSWM|::|KEYCODE|
+ (|COMMON-LISP|::|TYPECASE| |CLFSWM|::|KEY|
+ (|COMMON-LISP|::|CHARACTER|
+ (|CLFSWM|::|CHAR->KEYCODE| |CLFSWM|::|KEY|))
+ (|COMMON-LISP|::|NUMBER| |CLFSWM|::|KEY|)
+ (|COMMON-LISP|::|STRING|
+ (|COMMON-LISP|::|LET|
+ ((|CLFSWM|::|KEYSYM|
+ (|CLFSWM|::|KEYSYM-NAME->KEYSYM| |CLFSWM|::|KEY|)))
+ (|COMMON-LISP|::|AND| |CLFSWM|::|KEYSYM|
+ (|XLIB|::|KEYSYM->KEYCODES| |CLFSWM|::|*DISPLAY*|
+ |CLFSWM|::|KEYSYM|)))))))
+ |COMMON-LISP|::|IF| |CLFSWM|::|KEYCODE|
+ (|CLFSWM|::|*ROOT*| |CLFSWM|::|KEYCODE| :|MODIFIERS|
+ (|COMMON-LISP|::|SECOND| |CLFSWM|::|K|))
+ ((|COMMON-LISP|::|FORMAT| |COMMON-LISP|::|T|
+ "~&Grabbing error: Can't find key '~A'~%" |CLFSWM|::|KEY|))
+ ((|COMMON-LISP|::|ERROR| (|CLFSWM|::|C|)
+ (|COMMON-LISP|::|FORMAT| |COMMON-LISP|::|T|
+ "~&Grabbing error: Can't grab key '~A' (~A)~%" |CLFSWM|::|K|
+ |CLFSWM|::|C|)))
+ ((|COMMON-LISP|::|FORCE-OUTPUT|)))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |SYSTEM|::|MAKE-MACRO|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|127 127 (DEFINE-UNGRAB/GRAB GRAB-MAIN-KEYS XLIB:GRAB-KEY ...)-21|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|GRAB-MAIN-KEYS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|GRAB-MAIN-KEYS|
+ #17Y(00 00 00 00 00 00 00 00 06 01 DA 6B 01 31 68 19 01)
+ (#Y(|CLFSWM|::|GRAB-MAIN-KEYS-1|
+ #92Y(02 00 01 00 02 00 00 00 06 03 00 2B 01 7F 03 00 00 14 32 06 1F
+ 80 43 9D 2B 01 00 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01
+ 57 03 B0 36 00 16 06 1B 1E 58 67 00 00 01 76 00 AD 36 01 18 02
+ 01 19 02 68 04 00 DE 6B 05 68 08 00 AF 33 03 15 16 01 4D 16 01
+ 38 01 31 90 19 04 19 04)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|GRAB-MAIN-KEYS-1-1|
+ #18Y(00 00 00 00 00 00 00 00 06 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(|CLFSWM|::|GRAB-MAIN-KEYS-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 06 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|CONDITION|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ () |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|GRAB-MAIN-KEYS-1-2|
+ #81Y(00 00 00 00 00 00 00 00 06 01 07 01 01 78 AC 8E 1E 16 AC 8E
+ 0A 17 AC 8E 09 1F 00 14 92 00 24 E2 6B 09 AF 33 02 15 19 03
+ AC 2F 01 1B 6E 9D 1B 6B 6B 03 AD 30 04 16 01 1B 62 AC 6F 02
+ 92 00 71 16 01 1B 58 6B 05 AD E0 07 01 01 5C 78 2D 04 07 19
+ 03)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|CHAR->KEYCODE|
+ |CLFSWM|::|KEYSYM-NAME->KEYSYM| |CLFSWM|::|*DISPLAY*|
+ |XLIB|::|KEYSYM->KEYCODES| |CLFSWM|::|*ROOT*| :|MODIFIERS|
+ |XLIB|::|GRAB-KEY|
+ #Y(|CLFSWM|::|GRAB-MAIN-KEYS-1-2-1|
+ #32Y(00 00 00 00 02 00 00 00 01 18 AF 31 8E DA B0 38 02 31
+ 8B AE B0 31 86 DB B0 38 02 31 8B 9E 19 04)
+ ("Grabbing error: Can't find key '"
+ "'
+")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|*STANDARD-OUTPUT*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|)
+ (#(|COMMON-LISP|::|ERROR| 41.) 1. . 1.)
+ #Y(|CLFSWM|::|GRAB-MAIN-KEYS-1-3|
+ #42Y(00 00 00 00 03 00 00 00 01 19 B0 31 8E DA B1 38 02 31 8B AF
+ B1 31 86 DB B1 38 02 31 8B AE B1 31 86 DC B1 38 02 31 8B 9E
+ 19 05)
+ ("Grabbing error: Can't grab key '" "' ("
+ ")
+")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|*STANDARD-OUTPUT*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|K| |CLFSWM|::|V|) |COMMON-LISP|::|NIL|)
+ |CLFSWM|::|*MAIN-KEYS*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|128 128 (DEFINE-UNGRAB/GRAB UNGRAB-MAIN-KEYS XLIB:UNGRAB-KEY ...)-22|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|UNGRAB-MAIN-KEYS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|UNGRAB-MAIN-KEYS|
+ #17Y(00 00 00 00 00 00 00 00 06 01 DA 6B 01 31 68 19 01)
+ (#Y(|CLFSWM|::|UNGRAB-MAIN-KEYS-1|
+ #92Y(02 00 01 00 02 00 00 00 06 03 00 2B 01 7F 03 00 00 14 32 06 1F
+ 80 43 9D 2B 01 00 0B 00 00 4B 00 21 B0 AF 6D 01 02 B1 6D 02 01
+ 57 03 B0 36 00 16 06 1B 1E 58 67 00 00 01 76 00 AD 36 01 18 02
+ 01 19 02 68 04 00 DE 6B 05 68 08 00 AF 33 03 15 16 01 4D 16 01
+ 38 01 31 90 19 04 19 04)
+ (#(|COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|UNGRAB-MAIN-KEYS-1-1|
+ #18Y(00 00 00 00 00 00 00 00 06 01 2A 14 DB 2C 02 02 19 01)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|
+ #Y(|CLFSWM|::|UNGRAB-MAIN-KEYS-1-1-1|
+ #17Y(00 00 00 00 01 00 00 00 06 02 9E 0C 00 01 4E 01 00)
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|COMMON-LISP|::|CONDITION|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL| |COMMON-LISP|::|NIL|)
+ () |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|UNGRAB-MAIN-KEYS-1-2|
+ #81Y(00 00 00 00 00 00 00 00 06 01 07 01 01 78 AC 8E 1E 16 AC 8E
+ 0A 17 AC 8E 09 1F 00 14 92 00 24 E2 6B 09 AF 33 02 15 19 03
+ AC 2F 01 1B 6E 9D 1B 6B 6B 03 AD 30 04 16 01 1B 62 AC 6F 02
+ 92 00 71 16 01 1B 58 6B 05 AD E0 07 01 01 5C 78 2D 04 07 19
+ 03)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|CHAR->KEYCODE|
+ |CLFSWM|::|KEYSYM-NAME->KEYSYM| |CLFSWM|::|*DISPLAY*|
+ |XLIB|::|KEYSYM->KEYCODES| |CLFSWM|::|*ROOT*| :|MODIFIERS|
+ |XLIB|::|UNGRAB-KEY|
+ #Y(|CLFSWM|::|UNGRAB-MAIN-KEYS-1-2-1|
+ #32Y(00 00 00 00 02 00 00 00 01 18 AF 31 8E DA B0 38 02 31
+ 8B AE B0 31 86 DB B0 38 02 31 8B 9E 19 04)
+ ("Grabbing error: Can't find key '"
+ "'
+")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|*STANDARD-OUTPUT*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|)
+ (#(|COMMON-LISP|::|ERROR| 41.) 1. . 1.)
+ #Y(|CLFSWM|::|UNGRAB-MAIN-KEYS-1-3|
+ #42Y(00 00 00 00 03 00 00 00 01 19 B0 31 8E DA B1 38 02 31 8B AF
+ B1 31 86 DB B1 38 02 31 8B AE B1 31 86 DC B1 38 02 31 8B 9E
+ 19 05)
+ ("Grabbing error: Can't grab key '" "' ("
+ ")
+")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|*STANDARD-OUTPUT*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|K| |CLFSWM|::|V|) |COMMON-LISP|::|NIL|)
+ |CLFSWM|::|*MAIN-KEYS*|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|143 162 (DEFUN FUNCALL-KEY-FROM-CODE (HASH-TABLE-KEY CODE STATE ...) ...)-23|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FUNCALL-KEY-FROM-CODE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FUNCALL-KEY-FROM-CODE|
+ #69Y(00 00 00 00 03 00 01 00 06 0A 00 2B 04 7F 05 00 00 7F 04 00 01 7F
+ 03 00 02 3B 02 01 00 0B 00 03 9D 2B 01 AC 2C 00 01 0B 00 00 AC 6D
+ 01 01 AD 6D 02 01 AE 6D 03 01 9F 34 1E 09 9E 34 1E 05 9D 34 3F 19
+ 0A 19 0A)
+ (#Y(|CLFSWM|::|FUNCALL-KEY-FROM-CODE-FUNCALL-FROM|
+ #55Y(00 00 00 00 01 00 00 00 06 02 AD 69 01 03 7B 02 69 01 01 38 01
+ 31 65 42 02 9D 1F 19 9E 5B 1F 15 07 01 04 1C 07 94 01 36 00 02
+ 19 04 94 01 69 01 04 36 01 1B 74 19 04)
+ (|COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|KEY|) |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|FUNCALL-KEY-FROM-CODE-FROM-CODE|
+ #19Y(00 00 00 00 00 00 00 00 06 01 69 01 02 07 00 01 34 19 01)
+ (|COMMON-LISP|::|NIL|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|FUNCALL-KEY-FROM-CODE-FROM-CHAR|
+ #25Y(00 00 00 00 00 00 00 00 06 01 69 01 02 69 01 03 70 01 AC 07 00
+ 01 34 19 02)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|KEYCODE->CHAR|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|FUNCALL-KEY-FROM-CODE-FROM-STRING|
+ #28Y(00 00 00 00 00 00 00 00 06 01 6B 01 69 01 02 DC 6E 03 03 6F 04
+ AC 07 00 01 34 19 02)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|*DISPLAY*| 0.
+ |XLIB|::|KEYCODE->KEYSYM| |CLFSWM|::|KEYSYM->KEYSYM-NAME|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|HASH-TABLE-KEY| |CLFSWM|::|CODE| |CLFSWM|::|STATE|
+ |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|ARGS|)
+ |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|166 177 (DEFUN FUNCALL-BUTTON-FROM-CODE (HASH-TABLE-KEY CODE STATE ...) ...)-24|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|FUNCALL-BUTTON-FROM-CODE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|FUNCALL-BUTTON-FROM-CODE|
+ #72Y(00 00 00 00 05 00 02 00 06 00 3B 02 02 C5 FA 3D 01 B1 6F 01 DC 70
+ 03 6F 04 B3 AD 7B 02 B5 38 01 31 65 42 02 93 00 06 B1 AE 36 01 1C
+ 0E 02 19 0B B1 AE 76 01 B4 B4 B3 36 03 19 0B 92 04 72 B1 AE 76 01
+ B4 B4 36 02 19 0B)
+ (#.#'|COMMON-LISP|::|FIRST| |CLFSWM|::|STATE->MODIFIERS|
+ (:|BUTTON-1| :|BUTTON-2| :|BUTTON-3| :|BUTTON-4| :|BUTTON-5|)
+ |COMMON-LISP|::|SET-DIFFERENCE| |CLFSWM|::|MODIFIERS->STATE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|HASH-TABLE-KEY| |CLFSWM|::|CODE| |CLFSWM|::|STATE|
+ |CLFSWM|::|ROOT-X| |CLFSWM|::|ROOT-Y| |COMMON-LISP|::|&OPTIONAL|
+ (|CLFSWM|::|ACTION| #'|COMMON-LISP|::|FIRST|) |CLFSWM|::|ARGS|)
+ "Action: first=press third=release"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|182 228 (DEFUN PRODUCE-DOC-HTML (HASH-TABLE-KEY-LIST &OPTIONAL #) ...)-25|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|PRODUCE-DOC-HTML| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|PRODUCE-DOC-HTML|
+ #76Y(00 00 00 00 01 00 01 00 06 08 3B 01 02 7E 01 63 6D 00 01 DB DC DD
+ DE DF 63 B5 63 1B 18 87 01 00 E0 E1 E2 AF 38 01 71 65 7B 02 7B 02
+ 84 02 AC A6 74 84 02 83 01 AD 8D 94 64 16 02 AC 32 4A 16 01 5D 5D
+ 7A 7B 03 E3 B0 2D 03 0A 19 04)
+ (#Y(|CLFSWM|::|PRODUCE-DOC-HTML-PRODUCE-KEYS|
+ #37Y(00 00 00 00 01 00 00 00 06 02 DB DC 2A 2B 01 00 0B 00 00 AC 6D
+ 03 01 B1 31 68 68 00 00 32 4A 16 01 5D 5D 19 02)
+ (|COMMON-LISP|::|NIL|
+ "table class=\"ex\" cellspacing=\"5\" border=\"0\" width=\"100%\""
+ (|CLFSWM|::|TR| ("th align=\"right\" width=\"10%\"" "Modifiers")
+ ("th align=\"center\" width=\"10%\"" "Key/Button")
+ ("th align=\"left\"" "Function"))
+ #Y(|CLFSWM|::|PRODUCE-DOC-HTML-PRODUCE-KEYS-1|
+ #180Y(00 00 00 00 02 00 00 00 06 03 AE 32 06 1F 80 A2 DB DC 38
+ 02 72 76 A2 5C 78 6F 03 AC 1B 27 38 01 AF 71 92 72 76 AC
+ 2F 04 10 05 94 04 83 05 B0 31 83 11 AC 2F 06 E1 AD 31 8A
+ AC 72 77 6F 08 B0 38 02 31 8B 16 01 AC 8D 94 55 16 02 AC
+ 81 77 00 CE 74 7B 02 E4 38 02 72 76 A2 5C 5B 1C 12 94 06
+ 8F 09 0B 94 06 38 02 71 46 38 01 8C D6 02 A3 5B 14 38 01
+ AE 71 92 72 76 AC 2F 04 10 05 B0 B0 31 83 11 AC 2F 06 AC
+ 72 77 6F 08 AF 38 02 31 8B 16 02 AC 81 77 00 CE 74 7B 02
+ E5 A2 5B 1C 04 A2 5C 5C 5B 14 E6 70 0D 7B 02 7B 04 07 00
+ 01 5D 0C 00 01 19 03 19 03)
+ (|COMMON-LISP|::|NIL| |CLFSWM|::|TR|
+ "td align=\"right\" style=\"color:#FF0000\" nowrap"
+ |CLFSWM|::|STATE->MODIFIERS|
+ |SYSTEM|::|STREAM-START-S-EXPRESSION|
+ |COMMON-LISP|::|*PRINT-RIGHT-MARGIN*|
+ |SYSTEM|::|STREAM-END-S-EXPRESSION| #\
+ |SYSTEM|::|NSTRING-CAPITALIZE1|
+ #Y(|CLFSWM|::|PRODUCE-DOC-HTML-CLEAN-STRING|
+ #61Y(00 00 00 00 01 00 00 00 06 02 AD DA 38 04 8C 3B 23 AD
+ DC 38 04 8C 3B 1F AD DE 38 04 8C 3B 1B E0 E1 E0 E2 E0
+ E3 B3 38 07 72 57 38 07 72 57 38 07 32 57 19 02 C6 19
+ 02 C8 19 02 CA 19 02)
+ ("#\\:" ":" "#\\#" "#" "#\\\\" "\\" #\ #\# #\\ #\:)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|STR|) |COMMON-LISP|::|NIL|)
+ "td align=\"center\" nowrap"
+ "td style=\"color:#0000FF\" nowrap" |COMMON-LISP|::|FUNCTION|
+ |CLOS|::|DOCUMENTATION|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|K| |CLFSWM|::|V|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|HK|) |COMMON-LISP|::|NIL|)
+ |CLFSWM|::|HTML| (|CLFSWM|::|HEAD| (|CLFSWM|::|TITLE| "CLFSWM Keys"))
+ |CLFSWM|::|BODY| (|CLFSWM|::|H1| "CLFSWM Keys")
+ (|CLFSWM|::|P|
+ (|CLFSWM|::|SMALL| "Note: Mod-1 is the Meta or Alt key"))
+ |CLFSWM|::|H3| |CLFSWM|::|U| |CLFSWM|::|NAME| 0.
+ |MY-HTML|::|PRODUCE-HTML|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|HASH-TABLE-KEY-LIST| |COMMON-LISP|::|&OPTIONAL|
+ (|COMMON-LISP|::|STREAM| |COMMON-LISP|::|T|))
+ "Produce an html doc from a hash-table key"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|231 236 (DEFUN PRODUCE-DOC-HTML-IN-FILE (FILENAME) ...)-26|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|PRODUCE-DOC-HTML-IN-FILE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|PRODUCE-DOC-HTML-IN-FILE|
+ #78Y(03 00 01 00 01 00 00 00 06 02 AD DA 38 05 C6 FB C7 FA 71 FB 53 29
+ C8 45 6B 04 6B 05 6B 06 6B 07 6B 08 6B 09 6B 0A 7B 07 B0 30 0B 41
+ 05 00 00 02 1D 03 14 2F 0C 46 54 05 00 00 00 1D 0E 1B 06 05 00 00
+ 00 1D 06 14 E7 64 2D 03 0C 55 19 03)
+ (:|OUTPUT| :|SUPERSEDE| :|CREATE| #.#'|COMMON-LISP|::|VALUES|
+ |CLFSWM|::|*MAIN-KEYS*| |CLFSWM|::|*SECOND-KEYS*|
+ |CLFSWM|::|*MOUSE-ACTION*| |CLFSWM|::|*PAGER-KEYS*|
+ |CLFSWM|::|*PAGER-MOUSE-ACTION*| |CLFSWM|::|*INFO-KEYS*|
+ |CLFSWM|::|*INFO-MOUSE-ACTION*| |CLFSWM|::|PRODUCE-DOC-HTML|
+ |COMMON-LISP|::|CLOSE| :|ABORT|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|FILENAME|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|240 260 (DEFUN PRODUCE-DOC (HASH-TABLE-KEY-LIST &OPTIONAL #) ...)-27|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|PRODUCE-DOC| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|PRODUCE-DOC|
+ #113Y(00 00 00 00 01 00 01 00 06 08 00 2B 01 3B 02 01 02 0B 00 00 14 DA
+ 30 01 68 00 00 DC 30 01 68 00 00 DD 30 01 AF 63 1B 80 40 87 01 00
+ 68 02 00 DE DF AF 38 01 71 65 2D 03 01 E0 DF AE 38 01 71 65 72 48
+ 1B 08 68 04 00 E1 30 01 85 01 AD AD 91 01 32 72 16 02 68 02 00 E2
+ 30 01 AE 6D 09 01 AD 31 68 68 02 00 E4 30 01 83 01 AD 8D 94 FF BB
+ 00 19 06)
+ (#Y(|CLFSWM|::|PRODUCE-DOC-1|
+ #19Y(00 00 00 00 01 00 00 00 01 17 DA AF 38 02 31 8B 9E 19 03)
+ (" * CLFSWM Keys *
+")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |COMMON-LISP|::|FORMAT|
+ #Y(|CLFSWM|::|PRODUCE-DOC-2|
+ #19Y(00 00 00 00 01 00 00 00 01 17 DA AF 38 02 31 8B 9E 19 03)
+ (" -----------
+")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ #Y(|CLFSWM|::|PRODUCE-DOC-3|
+ #19Y(00 00 00 00 01 00 00 00 01 17 DA AF 38 02 31 8B 9E 19 03)
+ ("
+Note: Mod-1 is the Meta or Alt key
+")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ #Y(|CLFSWM|::|PRODUCE-DOC-4|
+ #30Y(00 00 00 00 02 00 00 00 01 18 AF 01 02 DA 2D 04 01 AE B0 31 86
+ DC B0 38 02 31 8B 9E 19 04)
+ (2. |SYSTEM|::|FORMAT-FRESH-LINE|
+ ":
+")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |CLFSWM|::|NAME| 0.
+ #Y(|CLFSWM|::|PRODUCE-DOC-5|
+ #17Y(00 00 00 00 01 00 00 00 01 17 DA AF 31 8A 9E 19 03) (#\-)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ #Y(|CLFSWM|::|PRODUCE-DOC-6|
+ #20Y(00 00 00 00 01 00 00 00 01 17 AE 01 02 DA 2D 04 01 9E 19 03)
+ (2. |SYSTEM|::|FORMAT-TERPRI|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ #Y(|CLFSWM|::|PRODUCE-DOC-7|
+ #101Y(00 00 00 00 02 00 00 00 06 03 AE 32 06 1F 80 53 69 00 01 DB A1
+ 5C 78 6F 02 DD DE 38 02 72 76 A4 5C 5B 1C 12 94 08 8F 09 0B 94
+ 08 38 02 71 46 38 01 8C D6 02 A5 5B 14 AD 2F 05 10 06 AF B1 31
+ 83 11 AD 2F 07 16 01 AC 81 77 00 38 07 72 4F 38 07 72 4F A2 5B
+ 1C 04 A2 5C 5C 5B 14 E2 70 09 2D 05 0A 19 03 19 03)
+ (|COMMON-LISP|::|NIL|
+ #Y(|CLFSWM|::|PRODUCE-DOC-7-1|
+ #149Y(00 00 00 00 04 00 00 00 01 1A B1 31 8E B1 71 92 38 01 AD
+ 72 76 B3 63 64 DA 01 03 B4 01 04 BE 1B 1E 38 01 BA 71 92
+ 72 76 94 01 83 02 AD 31 86 AC 72 77 6F 01 BB 38 02 31 8B
+ 16 01 DC BA 31 8A AC 8D 94 5E 16 01 B8 72 77 7B 01 2D 0D
+ 03 16 02 DC B2 31 8A B1 71 92 38 01 AD 72 76 B3 63 64 DE
+ 01 03 B4 01 04 38 01 B9 71 92 72 76 BE AD 31 86 AC 72 77
+ 6F 01 BA 38 02 31 8B 16 01 B8 72 77 7B 01 2D 0D 03 16 02
+ DF B2 38 02 31 8B AE B2 31 86 B1 31 8D 9E 19 06)
+ (20. |SYSTEM|::|NSTRING-CAPITALIZE1| #\
+ |SYSTEM|::|DO-FORMAT-JUSTIFICATION| 13. " ")
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+ |CLFSWM|::|STATE->MODIFIERS| #\# #\\
+ |SYSTEM|::|STREAM-START-S-EXPRESSION|
+ |COMMON-LISP|::|*PRINT-RIGHT-MARGIN*|
+ |SYSTEM|::|STREAM-END-S-EXPRESSION| |COMMON-LISP|::|FUNCTION|
+ |CLOS|::|DOCUMENTATION| |COMMON-LISP|::|FORMAT|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|K| |CLFSWM|::|V|) |COMMON-LISP|::|NIL|)
+ #Y(|CLFSWM|::|PRODUCE-DOC-8|
+ #20Y(00 00 00 00 01 00 00 00 01 17 AE 01 02 DA 2D 04 01 9E 19 03)
+ (2. |SYSTEM|::|FORMAT-FRESH-LINE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|HASH-TABLE-KEY-LIST| |COMMON-LISP|::|&OPTIONAL|
+ (|COMMON-LISP|::|STREAM| |COMMON-LISP|::|T|))
+ "Produce a text doc from a hash-table key"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|264 269 (DEFUN PRODUCE-DOC-IN-FILE (FILENAME) ...)-28|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|PRODUCE-DOC-IN-FILE| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|PRODUCE-DOC-IN-FILE|
+ #78Y(03 00 01 00 01 00 00 00 06 02 AD DA 38 05 C6 FB C7 FA 71 FB 53 29
+ C8 45 6B 04 6B 05 6B 06 6B 07 6B 08 6B 09 6B 0A 7B 07 B0 30 0B 41
+ 05 00 00 02 1D 03 14 2F 0C 46 54 05 00 00 00 1D 0E 1B 06 05 00 00
+ 00 1D 06 14 E7 64 2D 03 0C 55 19 03)
+ (:|OUTPUT| :|SUPERSEDE| :|CREATE| #.#'|COMMON-LISP|::|VALUES|
+ |CLFSWM|::|*MAIN-KEYS*| |CLFSWM|::|*SECOND-KEYS*|
+ |CLFSWM|::|*MOUSE-ACTION*| |CLFSWM|::|*PAGER-KEYS*|
+ |CLFSWM|::|*PAGER-MOUSE-ACTION*| |CLFSWM|::|*INFO-KEYS*|
+ |CLFSWM|::|*INFO-MOUSE-ACTION*| |CLFSWM|::|PRODUCE-DOC|
+ |COMMON-LISP|::|CLOSE| :|ABORT|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|)
+ (|CLFSWM|::|FILENAME|) |COMMON-LISP|::|NIL|))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
+#Y(#:|272 275 (DEFUN PRODUCE-ALL-DOCS NIL ...)-29|
+ #20Y(00 00 00 00 00 00 00 00 00 01 DA 2F 01 DA DC 32 83 C5 19 01)
+ (|CLFSWM|::|PRODUCE-ALL-DOCS| |SYSTEM|::|REMOVE-OLD-DEFINITIONS|
+ #Y(|CLFSWM|::|PRODUCE-ALL-DOCS|
+ #18Y(00 00 00 00 00 00 00 00 06 01 DA 2F 01 DC 2F 03 19 01)
+ ("keys.txt" |CLFSWM|::|PRODUCE-DOC-IN-FILE| "keys.html"
+ |CLFSWM|::|PRODUCE-DOC-HTML-IN-FILE|)
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|) ()
+ "Produce all docs in keys.html and keys.txt"))
+ (|COMMON-LISP|::|T| |COMMON-LISP|::|T| |COMMON-LISP|::|T|))
Added: clfswm-keys.fasl
==============================================================================
Binary file. No diff available.
Added: clfswm-keys.lib
==============================================================================
--- (empty file)
+++ clfswm-keys.lib Sat Mar 1 07:36:13 2008
@@ -0,0 +1,752 @@
+#0Y |CHARSET|::|UTF-8|
+(|COMMON-LISP|::|SETQ| |COMMON-LISP|::|*PACKAGE*|
+ (|SYSTEM|::|%FIND-PACKAGE| "CLFSWM"))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DEFINE-HASH-TABLE-KEY-NAME|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|COMMON-LISP|::|HASH-TABLE| |CLFSWM|::|NAME|)))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|DEFINE-DEFINE-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|DEFINE-DEFINE-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|DEFINE-DEFINE-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 3.
+ 3.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((|CLFSWM|::|NAME|
+ (|COMMON-LISP|::|CADR| . #1=(|SYSTEM|::||)))
+ (|CLFSWM|::|HASHTABLE| (|COMMON-LISP|::|CADDR| . #1#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|DEFINE-DEFINE-KEY|
+ (|COMMON-LISP|::|LET|
+ ((|CLFSWM|::|NAME-KEY-FUN|
+ (|TOOLS|::|CREATE-SYMBOL| "define-" |CLFSWM|::|NAME| "-key-fun"))
+ (|CLFSWM|::|NAME-KEY|
+ (|TOOLS|::|CREATE-SYMBOL| "define-" |CLFSWM|::|NAME| "-key"))
+ (|CLFSWM|::|UNDEFINE-NAME|
+ (|TOOLS|::|CREATE-SYMBOL| "undefine-" |CLFSWM|::|NAME| "-key"))
+ (|CLFSWM|::|UNDEFINE-MULTI-NAME|
+ (|TOOLS|::|CREATE-SYMBOL| "undefine-" |CLFSWM|::|NAME|
+ "-multi-keys")))
+ `(|COMMON-LISP|::|PROGN|
+ (|COMMON-LISP|::|DEFUN| ,|CLFSWM|::|NAME-KEY-FUN|
+ (|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION|
+ |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|KEYSTRING|)
+ "Define a new key, a key is '(char '(modifier list))"
+ (|COMMON-LISP|::|SETF|
+ (|COMMON-LISP|::|GETHASH| |CLFSWM|::|KEY| ,|CLFSWM|::|HASHTABLE|)
+ (|COMMON-LISP|::|LIST| |COMMON-LISP|::|FUNCTION|
+ |CLFSWM|::|KEYSTRING|)))
+ (|COMMON-LISP|::|DEFMACRO| ,|CLFSWM|::|NAME-KEY|
+ ((|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)
+ `(,',|CLFSWM|::|NAME-KEY-FUN|
+ (|COMMON-LISP|::|LIST| ,|CLFSWM|::|KEY|
+ ,(|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ ,|COMMON-LISP|::|FUNCTION| ,|CLFSWM|::|KEYSTRING|))
+ (|COMMON-LISP|::|DEFMACRO| ,|CLFSWM|::|UNDEFINE-NAME|
+ ((|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ `(|COMMON-LISP|::|REMHASH|
+ (|COMMON-LISP|::|LIST| ,|CLFSWM|::|KEY|
+ ,(|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ ,',|CLFSWM|::|HASHTABLE|))
+ (|COMMON-LISP|::|DEFMACRO| ,|CLFSWM|::|UNDEFINE-MULTI-NAME|
+ (|COMMON-LISP|::|&REST| |CLFSWM|::|KEYS|)
+ `(|COMMON-LISP|::|PROGN|
+ ,@(|COMMON-LISP|::|LOOP| |CLFSWM|::|FOR| |CLFSWM|::|K|
+ |CLFSWM|::|IN| |CLFSWM|::|KEYS| |CLFSWM|::|COLLECT|
+ `(,',|CLFSWM|::|UNDEFINE-NAME| ,|CLFSWM|::|K|)))))))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|DEFINE-DEFINE-MOUSE|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|DEFINE-DEFINE-MOUSE|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|DEFINE-DEFINE-MOUSE|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 3.
+ 3.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((|CLFSWM|::|NAME|
+ (|COMMON-LISP|::|CADR| . #1=(|SYSTEM|::||)))
+ (|CLFSWM|::|HASHTABLE| (|COMMON-LISP|::|CADDR| . #1#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|DEFINE-DEFINE-MOUSE|
+ (|COMMON-LISP|::|LET|
+ ((|CLFSWM|::|NAME-MOUSE-FUN|
+ (|TOOLS|::|CREATE-SYMBOL| "define-" |CLFSWM|::|NAME| "-fun"))
+ (|CLFSWM|::|NAME-MOUSE|
+ (|TOOLS|::|CREATE-SYMBOL| "define-" |CLFSWM|::|NAME|))
+ (|CLFSWM|::|UNDEFINE-NAME|
+ (|TOOLS|::|CREATE-SYMBOL| "undefine-" |CLFSWM|::|NAME|)))
+ `(|COMMON-LISP|::|PROGN|
+ (|COMMON-LISP|::|DEFUN| ,|CLFSWM|::|NAME-MOUSE-FUN|
+ (|CLFSWM|::|BUTTON| |CLFSWM|::|FUNCTION-PRESS|
+ |COMMON-LISP|::|&OPTIONAL| |CLFSWM|::|KEYSTRING|
+ |CLFSWM|::|FUNCTION-RELEASE|)
+ "Define a new mouse button action, a button is '(button number '(modifier list))"
+ (|COMMON-LISP|::|SETF|
+ (|COMMON-LISP|::|GETHASH| |CLFSWM|::|BUTTON|
+ ,|CLFSWM|::|HASHTABLE|)
+ (|COMMON-LISP|::|LIST| |CLFSWM|::|FUNCTION-PRESS|
+ |CLFSWM|::|KEYSTRING| |CLFSWM|::|FUNCTION-RELEASE|)))
+ (|COMMON-LISP|::|DEFMACRO| ,|CLFSWM|::|NAME-MOUSE|
+ ((|CLFSWM|::|BUTTON| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|)
+ |CLFSWM|::|FUNCTION-PRESS| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|FUNCTION-RELEASE| |CLFSWM|::|KEYSTRING|)
+ `(,',|CLFSWM|::|NAME-MOUSE-FUN|
+ (|COMMON-LISP|::|LIST| ,|CLFSWM|::|BUTTON|
+ ,(|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ ,|CLFSWM|::|FUNCTION-PRESS| ,|CLFSWM|::|KEYSTRING|
+ ,|CLFSWM|::|FUNCTION-RELEASE|))
+ (|COMMON-LISP|::|DEFMACRO| ,|CLFSWM|::|UNDEFINE-NAME|
+ ((|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ `(|COMMON-LISP|::|REMHASH|
+ (|COMMON-LISP|::|LIST| ,|CLFSWM|::|KEY|
+ ,(|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ ,',|CLFSWM|::|HASHTABLE|)))))))))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DEFINE-MAIN-KEY-FUN|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|DEFINE-MAIN-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|DEFINE-MAIN-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|DEFINE-MAIN-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 3.
+ 4.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G46621| (|COMMON-LISP|::|CADR| . #2=(|SYSTEM|::||)))
+ (#3=#:|G46622|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 1.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|DEFINE-MAIN-KEY| #1#
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ #1#))
+ (|CLFSWM|::|KEY| (|COMMON-LISP|::|CAR| #3#))
+ (|CLFSWM|::|MODIFIERS| (|COMMON-LISP|::|CDR| #3#))
+ #'(|COMMON-LISP|::|CADDR| . #2#)
+ (|CLFSWM|::|KEYSTRING| (|COMMON-LISP|::|CADDDR| . #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|DEFINE-MAIN-KEY|
+ (|COMMON-LISP|::|LIST| '|CLFSWM|::|DEFINE-MAIN-KEY-FUN|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ |COMMON-LISP|::|FUNCTION| |CLFSWM|::|KEYSTRING|))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|UNDEFINE-MAIN-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|UNDEFINE-MAIN-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|UNDEFINE-MAIN-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 2.
+ 2.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G46635| (|COMMON-LISP|::|CADR| |SYSTEM|::||))
+ (#2=#:|G46636|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 1.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|UNDEFINE-MAIN-KEY| #1#
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ #1#))
+ (|CLFSWM|::|KEY| (|COMMON-LISP|::|CAR| #2#))
+ (|CLFSWM|::|MODIFIERS| (|COMMON-LISP|::|CDR| #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|UNDEFINE-MAIN-KEY|
+ (|COMMON-LISP|::|CONS| '|COMMON-LISP|::|REMHASH|
+ (|COMMON-LISP|::|CONS|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ '(|CLFSWM|::|*MAIN-KEYS*|))))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|UNDEFINE-MAIN-MULTI-KEYS|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|UNDEFINE-MAIN-MULTI-KEYS|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|UNDEFINE-MAIN-MULTI-KEYS|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT| (|EXT|::|PROPER-LIST-P| |SYSTEM|::||))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((|CLFSWM|::|KEYS| (|COMMON-LISP|::|CDR| |SYSTEM|::||)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|UNDEFINE-MAIN-MULTI-KEYS|
+ (|COMMON-LISP|::|CONS| '|COMMON-LISP|::|PROGN|
+ (|COMMON-LISP|::|LOOP| |CLFSWM|::|FOR| |CLFSWM|::|K| |CLFSWM|::|IN|
+ |CLFSWM|::|KEYS| |CLFSWM|::|COLLECT|
+ (|COMMON-LISP|::|LIST| '|CLFSWM|::|UNDEFINE-MAIN-KEY|
+ |CLFSWM|::|K|))))))))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DEFINE-SECOND-KEY-FUN|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|DEFINE-SECOND-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|DEFINE-SECOND-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|DEFINE-SECOND-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 3.
+ 4.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G46680| (|COMMON-LISP|::|CADR| . #2=(|SYSTEM|::||)))
+ (#3=#:|G46681|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 1.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|DEFINE-SECOND-KEY| #1#
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ #1#))
+ (|CLFSWM|::|KEY| (|COMMON-LISP|::|CAR| #3#))
+ (|CLFSWM|::|MODIFIERS| (|COMMON-LISP|::|CDR| #3#))
+ #'(|COMMON-LISP|::|CADDR| . #2#)
+ (|CLFSWM|::|KEYSTRING| (|COMMON-LISP|::|CADDDR| . #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|DEFINE-SECOND-KEY|
+ (|COMMON-LISP|::|LIST| '|CLFSWM|::|DEFINE-SECOND-KEY-FUN|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ |COMMON-LISP|::|FUNCTION| |CLFSWM|::|KEYSTRING|))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|UNDEFINE-SECOND-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|UNDEFINE-SECOND-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|UNDEFINE-SECOND-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 2.
+ 2.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G46694| (|COMMON-LISP|::|CADR| |SYSTEM|::||))
+ (#2=#:|G46695|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 1.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|UNDEFINE-SECOND-KEY| #1#
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ #1#))
+ (|CLFSWM|::|KEY| (|COMMON-LISP|::|CAR| #2#))
+ (|CLFSWM|::|MODIFIERS| (|COMMON-LISP|::|CDR| #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|UNDEFINE-SECOND-KEY|
+ (|COMMON-LISP|::|CONS| '|COMMON-LISP|::|REMHASH|
+ (|COMMON-LISP|::|CONS|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ '(|CLFSWM|::|*SECOND-KEYS*|))))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|UNDEFINE-SECOND-MULTI-KEYS|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|UNDEFINE-SECOND-MULTI-KEYS|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|UNDEFINE-SECOND-MULTI-KEYS|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT| (|EXT|::|PROPER-LIST-P| |SYSTEM|::||))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((|CLFSWM|::|KEYS| (|COMMON-LISP|::|CDR| |SYSTEM|::||)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|UNDEFINE-SECOND-MULTI-KEYS|
+ (|COMMON-LISP|::|CONS| '|COMMON-LISP|::|PROGN|
+ (|COMMON-LISP|::|LOOP| |CLFSWM|::|FOR| |CLFSWM|::|K| |CLFSWM|::|IN|
+ |CLFSWM|::|KEYS| |CLFSWM|::|COLLECT|
+ (|COMMON-LISP|::|LIST| '|CLFSWM|::|UNDEFINE-SECOND-KEY|
+ |CLFSWM|::|K|))))))))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DEFINE-PAGER-KEY-FUN|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|DEFINE-PAGER-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|DEFINE-PAGER-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|DEFINE-PAGER-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 3.
+ 4.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G46739| (|COMMON-LISP|::|CADR| . #2=(|SYSTEM|::||)))
+ (#3=#:|G46740|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 1.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|DEFINE-PAGER-KEY| #1#
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ #1#))
+ (|CLFSWM|::|KEY| (|COMMON-LISP|::|CAR| #3#))
+ (|CLFSWM|::|MODIFIERS| (|COMMON-LISP|::|CDR| #3#))
+ #'(|COMMON-LISP|::|CADDR| . #2#)
+ (|CLFSWM|::|KEYSTRING| (|COMMON-LISP|::|CADDDR| . #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|DEFINE-PAGER-KEY|
+ (|COMMON-LISP|::|LIST| '|CLFSWM|::|DEFINE-PAGER-KEY-FUN|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ |COMMON-LISP|::|FUNCTION| |CLFSWM|::|KEYSTRING|))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|UNDEFINE-PAGER-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|UNDEFINE-PAGER-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|UNDEFINE-PAGER-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 2.
+ 2.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G46753| (|COMMON-LISP|::|CADR| |SYSTEM|::||))
+ (#2=#:|G46754|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 1.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|UNDEFINE-PAGER-KEY| #1#
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ #1#))
+ (|CLFSWM|::|KEY| (|COMMON-LISP|::|CAR| #2#))
+ (|CLFSWM|::|MODIFIERS| (|COMMON-LISP|::|CDR| #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|UNDEFINE-PAGER-KEY|
+ (|COMMON-LISP|::|CONS| '|COMMON-LISP|::|REMHASH|
+ (|COMMON-LISP|::|CONS|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ '(|CLFSWM|::|*PAGER-KEYS*|))))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|UNDEFINE-PAGER-MULTI-KEYS|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|UNDEFINE-PAGER-MULTI-KEYS|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|UNDEFINE-PAGER-MULTI-KEYS|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT| (|EXT|::|PROPER-LIST-P| |SYSTEM|::||))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((|CLFSWM|::|KEYS| (|COMMON-LISP|::|CDR| |SYSTEM|::||)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|UNDEFINE-PAGER-MULTI-KEYS|
+ (|COMMON-LISP|::|CONS| '|COMMON-LISP|::|PROGN|
+ (|COMMON-LISP|::|LOOP| |CLFSWM|::|FOR| |CLFSWM|::|K| |CLFSWM|::|IN|
+ |CLFSWM|::|KEYS| |CLFSWM|::|COLLECT|
+ (|COMMON-LISP|::|LIST| '|CLFSWM|::|UNDEFINE-PAGER-KEY|
+ |CLFSWM|::|K|))))))))))
+(|SYSTEM|::|C-DEFUN| '|CLFSWM|::|DEFINE-INFO-KEY-FUN|
+ (|SYSTEM|::|LAMBDA-LIST-TO-SIGNATURE|
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|FUNCTION| |COMMON-LISP|::|&OPTIONAL|
+ |CLFSWM|::|KEYSTRING|)))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|DEFINE-INFO-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|DEFINE-INFO-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|DEFINE-INFO-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 3.
+ 4.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G46798| (|COMMON-LISP|::|CADR| . #2=(|SYSTEM|::||)))
+ (#3=#:|G46799|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 1.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|DEFINE-INFO-KEY| #1#
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ #1#))
+ (|CLFSWM|::|KEY| (|COMMON-LISP|::|CAR| #3#))
+ (|CLFSWM|::|MODIFIERS| (|COMMON-LISP|::|CDR| #3#))
+ #'(|COMMON-LISP|::|CADDR| . #2#)
+ (|CLFSWM|::|KEYSTRING| (|COMMON-LISP|::|CADDDR| . #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|DEFINE-INFO-KEY|
+ (|COMMON-LISP|::|LIST| '|CLFSWM|::|DEFINE-INFO-KEY-FUN|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ |COMMON-LISP|::|FUNCTION| |CLFSWM|::|KEYSTRING|))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|UNDEFINE-INFO-KEY|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|UNDEFINE-INFO-KEY|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|UNDEFINE-INFO-KEY|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::||)
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|CONS| |SYSTEM|::||))
+ (|COMMON-LISP|::|DECLARE| (|COMMON-LISP|::|IGNORE| |SYSTEM|::||))
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| |SYSTEM|::|| 2.
+ 2.))
+ (|SYSTEM|::|MACRO-CALL-ERROR| |SYSTEM|::||)
+ (|COMMON-LISP|::|LET*|
+ ((#1=#:|G46812| (|COMMON-LISP|::|CADR| |SYSTEM|::||))
+ (#2=#:|G46813|
+ (|COMMON-LISP|::|IF|
+ (|COMMON-LISP|::|NOT|
+ (|SYSTEM|::|PROPER-LIST-LENGTH-IN-BOUNDS-P| #1# 1.))
+ (|SYSTEM|::|ERROR-OF-TYPE| '|EXT|::|SOURCE-PROGRAM-ERROR| :|FORM|
+ |SYSTEM|::|| :|DETAIL| #1#
+ (|SYSTEM|::|TEXT| "~S: ~S does not match lambda list element ~:S")
+ '|CLFSWM|::|UNDEFINE-INFO-KEY| #1#
+ '(|CLFSWM|::|KEY| |COMMON-LISP|::|&REST| |CLFSWM|::|MODIFIERS|))
+ #1#))
+ (|CLFSWM|::|KEY| (|COMMON-LISP|::|CAR| #2#))
+ (|CLFSWM|::|MODIFIERS| (|COMMON-LISP|::|CDR| #2#)))
+ (|COMMON-LISP|::|BLOCK| |CLFSWM|::|UNDEFINE-INFO-KEY|
+ (|COMMON-LISP|::|CONS| '|COMMON-LISP|::|REMHASH|
+ (|COMMON-LISP|::|CONS|
+ (|COMMON-LISP|::|LIST| '|COMMON-LISP|::|LIST| |CLFSWM|::|KEY|
+ (|CLFSWM|::|MODIFIERS->STATE| |CLFSWM|::|MODIFIERS|))
+ '(|CLFSWM|::|*INFO-KEYS*|))))))))))
+(|SYSTEM|::|REMOVE-OLD-DEFINITIONS| '|CLFSWM|::|UNDEFINE-INFO-MULTI-KEYS|)
+(|SYSTEM|::|%PUTD| '|CLFSWM|::|UNDEFINE-INFO-MULTI-KEYS|
+ (|SYSTEM|::|MAKE-MACRO|
+ (|COMMON-LISP|::|FUNCTION| |CLFSWM|::|UNDEFINE-INFO-MULTI-KEYS|
+ (|COMMON-LISP|::|LAMBDA| (|SYSTEM|::|| |SYSTEM|::|