;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
-;;; Commentary:
+;;; Commentary:
;; This package implements low-level support for reading, writing,
;; and loading compressed files. It hooks into the low-level file
;; INSTRUCTIONS:
;;
-;; To use jka-compr, simply load this package, and edit as usual.
-;; Its operation should be transparent to the user (except for
-;; messages appearing when a file is being compressed or
-;; uncompressed).
+;; To use jka-compr, invoke the command `auto-compression-mode' (which
+;; see), or customize the variable of the same name. Its operation
+;; should be transparent to the user (except for messages appearing when
+;; a file is being compressed or uncompressed).
;;
;; The variable, jka-compr-compression-info-list can be used to
;; customize jka-compr to work with other compression programs.
(string :tag "Uncompress Program")
(repeat :tag "Uncompress Arguments" string)
(boolean :tag "Append")
- (boolean :tag "Auto Mode")))
+ (boolean :tag "Strip Extension")
+ (string :tag "Magic Bytes")))
:group 'jka-compr)
(defvar jka-compr-mode-alist-additions
;; dd seems to be unreliable about
;; providing the last block. So, always
;; read one more than you think you need.
- (if count (concat "count=" (1+ count)) ""))))
+ (if count (format "count=%d" (1+ count)) ""))))
(unwind-protect
(or (memq (call-process jka-compr-shell
installed))
+;;; Add the file I/O hook if it does not already exist.
+;;; Make sure that jka-compr-file-name-handler-entry is eq to the
+;;; entry for jka-compr in file-name-handler-alist.
+(and (jka-compr-installed-p)
+ (jka-compr-uninstall))
+
+
+;;; Note this definition must be at the end of the file, because
+;;; `define-minor-mode' actually calls the mode-function if the
+;;; associated variable is non-nil, which requires that all needed
+;;; functions be already defined. [This is arguably a bug in d-m-m]
;;;###autoload
(define-minor-mode auto-compression-mode
"Toggle automatic file compression and uncompression.
With prefix argument ARG, turn auto compression on if positive, else off.
Returns the new status of auto compression (non-nil means on)."
- nil nil nil :global t :group 'jka-compr
+ :global t :group 'jka-compr
(let* ((installed (jka-compr-installed-p))
(flag auto-compression-mode))
(cond
;;;###autoload
(defmacro with-auto-compression-mode (&rest body)
- "Evalutes BODY with automatic file compression and uncompression enabled."
+ "Evalute BODY with automatic file compression and uncompression enabled."
(let ((already-installed (make-symbol "already-installed")))
`(let ((,already-installed (jka-compr-installed-p)))
(unwind-protect
(put 'with-auto-compression-mode 'lisp-indent-function 0)
-;;; Add the file I/O hook if it does not already exist.
-;;; Make sure that jka-compr-file-name-handler-entry is eq to the
-;;; entry for jka-compr in file-name-handler-alist.
-(and (jka-compr-installed-p)
- (jka-compr-uninstall))
-
-(jka-compr-install)
-
-
(provide 'jka-compr)
-;; jka-compr.el ends here.
+;;; jka-compr.el ends here