[climacs-cvs] CVS climacs
dmurray
dmurray at common-lisp.net
Fri Aug 11 18:49:48 UTC 2006
Update of /project/climacs/cvsroot/climacs
In directory clnet:/tmp/cvs-serv2158
Modified Files:
core.lisp
Log Message:
Fixed some (of my) logic errors for mode-lines. Non-existent
mode lines now handled less gracelessly.
--- /project/climacs/cvsroot/climacs/core.lisp 2006/08/01 16:06:37 1.3
+++ /project/climacs/cvsroot/climacs/core.lisp 2006/08/11 18:49:48 1.4
@@ -502,8 +502,9 @@
(nreverse pairs)))
(defun split-attribute-line (line)
- (mapcar (lambda (pair) (split-attribute pair #\:))
- (split-attribute line #\;)))
+ (when line
+ (mapcar (lambda (pair) (split-attribute pair #\:))
+ (split-attribute line #\;))))
(defun find-attribute-line-position (buffer)
(let ((scan (beginning-of-buffer (clone-mark (point buffer)))))
@@ -540,21 +541,24 @@
end-scan)))))))))
(defun get-attribute-line (buffer)
- (multiple-value-bind (start-mark end-mark) (find-attribute-line-position buffer)
- (let ((line (buffer-substring buffer
- (offset start-mark)
- (offset end-mark))))
- (when (>= (length line) 6)
- (let ((end (search "-*-" line :from-end t :start2 3)))
- (when end
- (string-trim '(#\Space #\Tab) (subseq line 3 end))))))))
+ (multiple-value-bind (start-mark end-mark)
+ (find-attribute-line-position buffer)
+ (when (and start-mark end-mark)
+ (let ((line (buffer-substring buffer
+ (offset start-mark)
+ (offset end-mark))))
+ (when (>= (length line) 6)
+ (let ((end (search "-*-" line :from-end t :start2 3)))
+ (when end
+ (string-trim '(#\Space #\Tab) (subseq line 3 end)))))))))
(defun replace-attribute-line (buffer new-attribute-line)
(let ((full-attribute-line (concatenate 'string
"-*- "
new-attribute-line
"-*-")))
- (multiple-value-bind (start-mark end-mark) (find-attribute-line-position buffer)
+ (multiple-value-bind (start-mark end-mark)
+ (find-attribute-line-position buffer)
(cond ((not (null end-mark))
;; We have an existing attribute line.
(delete-region start-mark end-mark)
More information about the Climacs-cvs
mailing list