[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