diff options
| author | Thien-Thi Nguyen | 2003-11-25 02:47:22 +0000 |
|---|---|---|
| committer | Thien-Thi Nguyen | 2003-11-25 02:47:22 +0000 |
| commit | 26d7d4bb9f122b9632b351a7dbe3105bc9d46364 (patch) | |
| tree | f0c31643398f11f3abaec5856cf988340ee47b87 | |
| parent | def6201d44dbf4b5713ac5bc604f18afd7637e58 (diff) | |
| download | emacs-26d7d4bb9f122b9632b351a7dbe3105bc9d46364.tar.gz emacs-26d7d4bb9f122b9632b351a7dbe3105bc9d46364.zip | |
(make-mms-derivative-load-edits-file): Rewrite
to avoid external programs; do all processing inside Emacs.
| -rw-r--r-- | vms/make-mms-derivative.el | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/vms/make-mms-derivative.el b/vms/make-mms-derivative.el index 390d08d3dd4..1ad2af4e388 100644 --- a/vms/make-mms-derivative.el +++ b/vms/make-mms-derivative.el | |||
| @@ -79,16 +79,29 @@ | |||
| 79 | 79 | ||
| 80 | (defun make-mms-derivative-load-edits-file (name) | 80 | (defun make-mms-derivative-load-edits-file (name) |
| 81 | (make-mms-derivative-data 'edits-filename name) | 81 | (make-mms-derivative-data 'edits-filename name) |
| 82 | (let ((i 0) tmp res) | 82 | (let (raw-data |
| 83 | (while (progn | 83 | (cur (current-buffer)) |
| 84 | (setq tmp | 84 | (wbuf (get-buffer-create "*make-mms-derivative-load-edits-file work"))) |
| 85 | (shell-command-to-string | 85 | (set-buffer wbuf) |
| 86 | (format "grep '^;;;%s;;' %s | sed 's/^;;;[0-9][0-9]*;;//g'" | 86 | (insert-file-contents name) |
| 87 | i name))) | 87 | (keep-lines "^;;;[0-9]+;;") |
| 88 | (not (string= "" tmp))) | 88 | (goto-char (point-max)) |
| 89 | (setq res (cons (cons i tmp) res) | 89 | (while (re-search-backward "^;;;\\([0-9]+\\);;\\(.*\\)$" (point-min) t) |
| 90 | i (1+ i))) | 90 | (let* ((i (string-to-number (match-string 1))) |
| 91 | (make-mms-derivative-data 'raw-data res)) | 91 | (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)) | ||
| 92 | (load name)) | 105 | (load name)) |
| 93 | 106 | ||
| 94 | (defun make-mms-derivative-insert-raw-data (n) | 107 | (defun make-mms-derivative-insert-raw-data (n) |