79 |
|
|
80 |
(defun make-mms-derivative-load-edits-file (name) |
(defun make-mms-derivative-load-edits-file (name) |
81 |
(make-mms-derivative-data 'edits-filename name) |
(make-mms-derivative-data 'edits-filename name) |
82 |
(let ((i 0) tmp res) |
(let (raw-data |
83 |
(while (progn |
(cur (current-buffer)) |
84 |
(setq tmp |
(wbuf (get-buffer-create "*make-mms-derivative-load-edits-file work"))) |
85 |
(shell-command-to-string |
(set-buffer wbuf) |
86 |
(format "grep '^;;;%s;;' %s | sed 's/^;;;[0-9][0-9]*;;//g'" |
(insert-file-contents name) |
87 |
i name))) |
(keep-lines "^;;;[0-9]+;;") |
88 |
(not (string= "" tmp))) |
(goto-char (point-max)) |
89 |
(setq res (cons (cons i tmp) res) |
(while (re-search-backward "^;;;\\([0-9]+\\);;\\(.*\\)$" (point-min) t) |
90 |
i (1+ i))) |
(let* ((i (string-to-number (match-string 1))) |
91 |
(make-mms-derivative-data 'raw-data res)) |
(line (match-string 2)) |
92 |
|
(look (assq i raw-data))) |
93 |
|
(if look |
94 |
|
(setcdr look (cons line (cdr look))) |
95 |
|
(setq raw-data (cons (list i line) raw-data))))) |
96 |
|
(kill-buffer wbuf) |
97 |
|
(set-buffer cur) |
98 |
|
(mapcar '(lambda (ent) |
99 |
|
(setcdr ent (mapconcat '(lambda (line) |
100 |
|
(concat line "\n")) |
101 |
|
(cdr ent) |
102 |
|
""))) |
103 |
|
raw-data) |
104 |
|
(make-mms-derivative-data 'raw-data raw-data)) |
105 |
(load name)) |
(load name)) |
106 |
|
|
107 |
(defun make-mms-derivative-insert-raw-data (n) |
(defun make-mms-derivative-insert-raw-data (n) |