diff options
| author | Juri Linkov | 2004-03-23 07:38:04 +0000 |
|---|---|---|
| committer | Juri Linkov | 2004-03-23 07:38:04 +0000 |
| commit | cc8b577edeb9d85647019d1acb9f875cccd164c4 (patch) | |
| tree | dae755c0330eee2b3e571b8e67a30d90fd9067bf | |
| parent | 93ca088ccc090568cadfc3a425b45b1e33fd84be (diff) | |
| download | emacs-cc8b577edeb9d85647019d1acb9f875cccd164c4.tar.gz emacs-cc8b577edeb9d85647019d1acb9f875cccd164c4.zip | |
(jka-compr-compression-info-list): Add tbz and dz.
(jka-compr-mode-alist-additions): Add tbz.
(jka-compr-write-region): Add error message for undefined compress-program.
(jka-compr-insert-file-contents): Add message for undefined compress-program.
(jka-compr-write-region): Remove redundant var bindings.
| -rw-r--r-- | lisp/jka-compr.el | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index 7a0f39d89ee..fa852bd19b6 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; jka-compr.el --- reading/writing/loading compressed files | 1 | ;;; jka-compr.el --- reading/writing/loading compressed files |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2003 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2003, 2004 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: jka@ece.cmu.edu (Jay K. Adams) | 5 | ;; Author: jka@ece.cmu.edu (Jay K. Adams) |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -138,6 +138,10 @@ for `jka-compr-compression-info-list')." | |||
| 138 | "bzip2ing" "bzip2" nil | 138 | "bzip2ing" "bzip2" nil |
| 139 | "bunzip2ing" "bzip2" ("-d") | 139 | "bunzip2ing" "bzip2" ("-d") |
| 140 | nil t "BZh"] | 140 | nil t "BZh"] |
| 141 | ["\\.tbz\\'" | ||
| 142 | "bzip2ing" "bzip2" nil | ||
| 143 | "bunzip2ing" "bzip2" ("-d") | ||
| 144 | nil nil "BZh"] | ||
| 141 | ["\\.tgz\\'" | 145 | ["\\.tgz\\'" |
| 142 | "zipping" "gzip" ("-c" "-q") | 146 | "zipping" "gzip" ("-c" "-q") |
| 143 | "unzipping" "gzip" ("-c" "-q" "-d") | 147 | "unzipping" "gzip" ("-c" "-q" "-d") |
| @@ -145,7 +149,14 @@ for `jka-compr-compression-info-list')." | |||
| 145 | ["\\.g?z\\(~\\|\\.~[0-9]+~\\)?\\'" | 149 | ["\\.g?z\\(~\\|\\.~[0-9]+~\\)?\\'" |
| 146 | "zipping" "gzip" ("-c" "-q") | 150 | "zipping" "gzip" ("-c" "-q") |
| 147 | "unzipping" "gzip" ("-c" "-q" "-d") | 151 | "unzipping" "gzip" ("-c" "-q" "-d") |
| 148 | t t "\037\213"]) | 152 | t t "\037\213"] |
| 153 | ;; dzip is gzip with random access. Its compression program can't | ||
| 154 | ;; read/write stdin/out, so .dz files can only be viewed without | ||
| 155 | ;; saving, having their contents decompressed with gzip. | ||
| 156 | ["\\.dz\\'" | ||
| 157 | nil nil nil | ||
| 158 | "unzipping" "gzip" ("-c" "-q" "-d") | ||
| 159 | nil t "\037\213"]) | ||
| 149 | 160 | ||
| 150 | "List of vectors that describe available compression techniques. | 161 | "List of vectors that describe available compression techniques. |
| 151 | Each element, which describes a compression technique, is a vector of | 162 | Each element, which describes a compression technique, is a vector of |
| @@ -160,6 +171,7 @@ APPEND-FLAG STRIP-EXTENSION-FLAG FILE-MAGIC-CHARS], where: | |||
| 160 | type of compression (nil means no message) | 171 | type of compression (nil means no message) |
| 161 | 172 | ||
| 162 | compress-program is a program that performs this compression | 173 | compress-program is a program that performs this compression |
| 174 | (nil means visit file in read-only mode) | ||
| 163 | 175 | ||
| 164 | compress-args is a list of args to pass to the compress program | 176 | compress-args is a list of args to pass to the compress program |
| 165 | 177 | ||
| @@ -199,7 +211,7 @@ invoked." | |||
| 199 | :group 'jka-compr) | 211 | :group 'jka-compr) |
| 200 | 212 | ||
| 201 | (defcustom jka-compr-mode-alist-additions | 213 | (defcustom jka-compr-mode-alist-additions |
| 202 | (list (cons "\\.tgz\\'" 'tar-mode)) | 214 | (list (cons "\\.tgz\\'" 'tar-mode) (cons "\\.tbz\\'" 'tar-mode)) |
| 203 | "A list of pairs to add to `auto-mode-alist' when jka-compr is installed." | 215 | "A list of pairs to add to `auto-mode-alist' when jka-compr is installed." |
| 204 | :type '(repeat (cons string symbol)) | 216 | :type '(repeat (cons string symbol)) |
| 205 | :group 'jka-compr) | 217 | :group 'jka-compr) |
| @@ -421,10 +433,7 @@ There should be no more than seven characters after the final `/'." | |||
| 421 | (let ((can-append (jka-compr-info-can-append info)) | 433 | (let ((can-append (jka-compr-info-can-append info)) |
| 422 | (compress-program (jka-compr-info-compress-program info)) | 434 | (compress-program (jka-compr-info-compress-program info)) |
| 423 | (compress-message (jka-compr-info-compress-message info)) | 435 | (compress-message (jka-compr-info-compress-message info)) |
| 424 | (uncompress-program (jka-compr-info-uncompress-program info)) | ||
| 425 | (uncompress-message (jka-compr-info-uncompress-message info)) | ||
| 426 | (compress-args (jka-compr-info-compress-args info)) | 436 | (compress-args (jka-compr-info-compress-args info)) |
| 427 | (uncompress-args (jka-compr-info-uncompress-args info)) | ||
| 428 | (base-name (file-name-nondirectory visit-file)) | 437 | (base-name (file-name-nondirectory visit-file)) |
| 429 | temp-file temp-buffer | 438 | temp-file temp-buffer |
| 430 | ;; we need to leave `last-coding-system-used' set to its | 439 | ;; we need to leave `last-coding-system-used' set to its |
| @@ -432,6 +441,9 @@ There should be no more than seven characters after the final `/'." | |||
| 432 | ;; that `basic-save-buffer' sees the right value. | 441 | ;; that `basic-save-buffer' sees the right value. |
| 433 | (coding-system-used last-coding-system-used)) | 442 | (coding-system-used last-coding-system-used)) |
| 434 | 443 | ||
| 444 | (or compress-program | ||
| 445 | (error "No compression program defined")) | ||
| 446 | |||
| 435 | (setq temp-buffer (get-buffer-create " *jka-compr-wr-temp*")) | 447 | (setq temp-buffer (get-buffer-create " *jka-compr-wr-temp*")) |
| 436 | (with-current-buffer temp-buffer | 448 | (with-current-buffer temp-buffer |
| 437 | (widen) (erase-buffer)) | 449 | (widen) (erase-buffer)) |
| @@ -631,6 +643,9 @@ There should be no more than seven characters after the final `/'." | |||
| 631 | ;;; (setq size insval))) | 643 | ;;; (setq size insval))) |
| 632 | ;;; (setq p (cdr p)))) | 644 | ;;; (setq p (cdr p)))) |
| 633 | 645 | ||
| 646 | (or (jka-compr-info-compress-program info) | ||
| 647 | (message "You can't save this buffer because compression program is not defined")) | ||
| 648 | |||
| 634 | (list filename size)) | 649 | (list filename size)) |
| 635 | 650 | ||
| 636 | (jka-compr-run-real-handler 'insert-file-contents | 651 | (jka-compr-run-real-handler 'insert-file-contents |