Changeset 713
- Timestamp:
- Mar 24, 2004, 12:47:07 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/hemlock/src/htext1.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/hemlock/src/htext1.lisp
r700 r713 48 48 ;;; users beware. 49 49 50 51 52 #+no 50 53 (defvar *line-cache-length* 200 51 54 "Length of Open-Chars.") 52 55 56 57 58 #+no 53 59 (defvar *open-line* () 54 60 "Line open for hacking on.") 55 61 62 63 64 #+no 56 65 (defvar *open-chars* (make-string *line-cache-length*) 57 66 "Vector of characters for hacking on.") 58 67 68 69 70 #+no 59 71 (defvar *left-open-pos* 0 60 72 "Index to first free character to left of mark in *Open-Chars*.") 61 73 74 75 76 #+no 62 77 (defvar *right-open-pos* 0 63 78 "Index to first used character to right of mark in *Open-Chars*.") … … 162 177 `(incf now-tick)) 163 178 164 ;;; When passing the buffer between threads, cache these special variables'165 ;;; values in the buffer, iff they apply to the buffer.166 (defun normalize-buffer-gap-info (buffer)167 (if (and *open-line* (eq buffer (line-%buffer *open-line*)))168 (setf (buffer-open-line buffer) *open-line*169 (buffer-open-chars buffer) *open-chars*170 (buffer-right-open-pos buffer) *right-open-pos*171 (buffer-left-open-pos buffer) *left-open-pos*172 (buffer-line-cache-length buffer) *line-cache-length*)173 (setf (buffer-open-line buffer) nil174 (buffer-open-chars buffer) nil175 (buffer-right-open-pos buffer) 0176 (buffer-left-open-pos buffer) 0177 (buffer-line-cache-length buffer) 0)))178 179 ;;; Caller has presumably bound these variables, if that matters180 (defun set-gap-info-from-buffer (buffer)181 (setq *open-line* (buffer-open-line buffer)182 *open-chars* (buffer-open-chars buffer)183 *right-open-pos* (buffer-right-open-pos buffer)184 *left-open-pos* (buffer-left-open-pos buffer)185 *line-cache-length* (buffer-line-cache-length buffer)))186 187 ;;; One way to bind those variables ...188 (defmacro with-buffer-gap-info ((buffer) &body body)189 `(let* ((*open-line* (buffer-open-line ,buffer))190 (*open-chars* (buffer-open-chars ,buffer))191 (*right-open-pos* (buffer-right-open-pos ,buffer))192 (*left-open-pos* (buffer-left-open-pos ,buffer))193 (*line-cache-length* (buffer-line-cache-length ,buffer)))194 ,@body))195 196 179 197 180 (defun buffer-document-begin-editing (buffer) … … 204 187 (let* ((document (buffer-document buffer))) 205 188 (when document 206 (normalize-buffer-gap-info buffer)207 189 (document-end-editing document))))) 208 190
Note:
See TracChangeset
for help on using the changeset viewer.
