Changeset 700
- Timestamp:
- Mar 22, 2004, 9:37:17 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/hemlock/src/htext1.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/hemlock/src/htext1.lisp
r587 r700 162 162 `(incf now-tick)) 163 163 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) nil 174 (buffer-open-chars buffer) nil 175 (buffer-right-open-pos buffer) 0 176 (buffer-left-open-pos buffer) 0 177 (buffer-line-cache-length buffer) 0))) 178 179 ;;; Caller has presumably bound these variables, if that matters 180 (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 164 197 (defun buffer-document-begin-editing (buffer) 165 198 (when (bufferp buffer) … … 170 203 (when (bufferp buffer) 171 204 (let* ((document (buffer-document buffer))) 172 (when document (document-end-editing document))))) 205 (when document 206 (normalize-buffer-gap-info buffer) 207 (document-end-editing document))))) 173 208 174 209
Note:
See TracChangeset
for help on using the changeset viewer.
