|
|
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: (shell-command-on-region (point-min) (point-max) "uncompress" t) ! 10: (message "Uncompressing...done") ! 11: (set-buffer-modified-p nil) ! 12: (normal-mode)) ! 13: ! 14: (setq auto-mode-alist ! 15: (cons '("\\.Z$" . uncompress-while-visiting) auto-mode-alist)) ! 16: ! 17: (defun find-compressed-version () ! 18: "Hook to read and uncompress the compressed version of a file." ! 19: ;; Just pretend we had visited the compressed file, ! 20: ;; and uncompress-while-visiting will do the rest. ! 21: (if (file-exists-p (concat buffer-file-name ".Z")) ! 22: (progn ! 23: (setq buffer-file-name (concat buffer-file-name ".Z")) ! 24: (insert-file-contents buffer-file-name t) ! 25: (goto-char (point-min)) ! 26: (setq error nil) ! 27: t))) ! 28: ! 29: (setq find-file-not-found-hooks ! 30: (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.