aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThien-Thi Nguyen2003-11-25 02:47:22 +0000
committerThien-Thi Nguyen2003-11-25 02:47:22 +0000
commit26d7d4bb9f122b9632b351a7dbe3105bc9d46364 (patch)
treef0c31643398f11f3abaec5856cf988340ee47b87
parentdef6201d44dbf4b5713ac5bc604f18afd7637e58 (diff)
downloademacs-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.el33
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)