[climacs-cvs] CVS update: climacs/Doc/climacs-internals.texi
Elliott Johnson
ejohnson at common-lisp.net
Sat Jan 8 06:04:23 UTC 2005
Update of /project/climacs/cvsroot/climacs/Doc
In directory common-lisp.net:/tmp/cvs-serv3803
Modified Files:
climacs-internals.texi
Log Message:
added implementation details of the kill ring protocol
Date: Sat Jan 8 07:04:22 2005
Author: ejohnson
Index: climacs/Doc/climacs-internals.texi
diff -u climacs/Doc/climacs-internals.texi:1.6 climacs/Doc/climacs-internals.texi:1.7
--- climacs/Doc/climacs-internals.texi:1.6 Thu Jan 6 18:56:42 2005
+++ climacs/Doc/climacs-internals.texi Sat Jan 8 07:04:21 2005
@@ -665,7 +665,7 @@
@end multitable
@multitable @columnfractions .3 .3 .3
- at headitem Expression @tab Syntax @tab handle/read
+ at item Expression @tab Syntax @tab handle/read
@item quoted-expression @tab 'expr @tab handle
@item comment @tab ; chars <newline> @tab handle
@item string @tab " chars " @tab read
@@ -1502,11 +1502,9 @@
Undo might be presented in a CLIM gadget in the form of a tree where
branches are added to the right over time, in @xref{figundo}.
- at float
+
@image{undo}
@anchor{figundo}
- at caption{Suggested CLIM pane for `undo'}
- at end float
where the bigger black circle indicates the current state. The tree
will be fairly tall and skinny, so the gadget should probably be a
@@ -1726,6 +1724,29 @@
Returns the vector of objects currently pointed to by the cursor. If reset is T, then a
call to reset-yank-position is called before the object is yanked. The default for reset
is NIL.
+ at end deffn
+
+ at section Implementation
+
+The kill ring structure is built mainly of two parts: the stack like ring portion, which is
+a cursorchain, and the yank point, which is a left-sticky-flexicursor.
+To initialize a kill ring, the :max-size slot initarg is simply used to set the max
+size. The remaining slots constisting of the cursorchain and the left-sticky-flexicursor
+are instantized upon creation of the kill ring.
+
+Stored onto the cursorchain are simple-vectors of objects, mainly characters from a
+climacs buffer. In order to facilitate this, the kill ring implementation borrows heavily from
+the flexichain library of functions. The following functions lie outside the kill ring and
+flexichain protocols, but are pertinent to the kill ring implementation.
+
+ at deffn {accessor} kill-ring-chain kill-ring
+A slot accessor provided by the Climacs implemention of the kill ring class, which returns the
+cursorchain associated with kill-ring.
+ at end deffn
+
+ at deffn {accessor} kill-ring-cursor kill-ring
+A slot accessor provided by the Climacs implemention of the kill ring class, which returns the
+flexicursor assocated with kill-ring.
@end deffn
@node Index
More information about the Climacs-cvs
mailing list