All pastes #74386 Raw Edit

pjb

public text v1 · immutable
#74386 ·published 2006-06-28 23:15 UTC
rendered paste body
(defvar *card-id-column* 72)

(defun add-card-id (start end prefix from)
  (interactive "r
sPrefix: 
nFrom:")
  (setf prefix (subseq prefix 0 (min (length prefix) 7)))
  (let ((nf (format "%%-%ds%s%%0%dd"
              *card-id-column*
              prefix
              (- 8 (length prefix)))))
    (save-excursion
      (let ((end (let ((m (make-marker))) (set-marker m end))))
        (goto-char start)
        (while (re-search-forward "\\(.*\\)" end nil)
          (let ((line (match-string 0)))
            (delete-region (match-beginning 0) (match-end 0))
            (insert (format nf
                      (subseq line 0 (min (length line) *card-id-column*))
                      from))
            (forward-char 1)
            (incf from)))))))