|
|
1.1 root 1: (defun uncompress-while-visiting ()
2: "Temporary \"major mode\" used for .Z files, to uncompress the contents.
3: It then selects a major mode from the uncompressed file name and contents."
4: (if (and (not (null buffer-file-name))
5: (string-match "\\.Z$" buffer-file-name))
6: (set-visited-file-name
7: (substring buffer-file-name 0 (match-beginning 0))))
8: (message "Uncompressing...")
9: (let ((buffer-read-only nil))
10: (shell-command-on-region (point-min) (point-max) "uncompress" t))
11: (message "Uncompressing...done")
12: (set-buffer-modified-p nil)
13: (normal-mode))
14:
15: (setq auto-mode-alist
16: (cons '("\\.Z$" . uncompress-while-visiting) auto-mode-alist))
17:
18: (defun find-compressed-version ()
19: "Hook to read and uncompress the compressed version of a file."
20: ;; Just pretend we had visited the compressed file,
21: ;; and uncompress-while-visiting will do the rest.
22: (if (file-exists-p (concat buffer-file-name ".Z"))
23: (progn
24: (setq buffer-file-name (concat buffer-file-name ".Z"))
25: (insert-file-contents buffer-file-name t)
26: (goto-char (point-min))
27: (setq error nil)
28: t)))
29:
30: (setq find-file-not-found-hooks
31: (cons 'find-compressed-version find-file-not-found-hooks))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.