Previous: Kill Ring Protocol Specification, Up: Kill Ring Protocol


18.4.8.2 Kill Ring 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 Drei 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.

— Generic Function: drei-kill-ring:kill-ring-chain kill-ring

Return the cursorchain associated with the kill ring ring.

— Generic Function: drei-kill-ring:kill-ring-cursor kill-ring

Return the flexicursor associated with the kill ring.