## 6. Использование bzip2 с emacs

## 6.1. Изменения в emacs для всех

Я написал следующую заплатку jka-compr.el, которая добавляет bzip2 в auto-compression-mode.

Оговорка: я проверил это только с emacs-20.2, но не вижу причин полагать, что этот метод не будет работать с другой версией.

Чтобы использовать ее

1. Идем в каталог исходников emacs-20.2/lisp (туда, где Вы расtarили его)
2. Поместите приведенный ниже патч в файл, называемый jka-compr.el.diff (кроме патча в этом файле ничего не должно быть;).
3. Введите

   > `

   >             patch < jka-compr.el.diff

   > `

4. Запустите emacs, и введите

   > `

   >             M-x byte-compile-file jka-compr.el

   > `

5. Выйдите из emacs.
6. Переместитt ваш оригинальный jka-compr.elc в безопасное место на случай ошибок.
7. Замените его на новый jka-compr.elc.
8. Наслаждайтесь!

         --- jka-compr.el        Sat Jul 26 17:02:39 1997

         +++ jka-compr.el.new    Thu Feb  5 17:44:35 1998

         @@ -44,7 +44,7 @@

          ;; The variable, jka-compr-compression-info-list can be used to

          ;; customize jka-compr to work with other compression programs.

          ;; The default value of this variable allows jka-compr to work with

         -;; Unix compress and gzip.

         +;; Unix compress and gzip.  David Fetter added bzip2 support :)

          ;;

          ;; If you are concerned about the stderr output of gzip and other

          ;; compression/decompression programs showing up in your buffers, you

         @@ -121,7 +121,9 @@

          ;;; I have this defined so that .Z files are assumed to be in unix

         -;;; compress format; and .gz files, in gzip format.

         +;;; compress format; and .gz files, in gzip format, and .bz2 files,

         +;;; in the snappy new bzip2 format from http://www.muraroa.demon.co.uk.

         +;;; Keep up the good work, people!

          (defcustom jka-compr-compression-info-list

            ;;[regexp

            ;; compr-message  compr-prog  compr-args

         @@ -131,6 +133,10 @@

               "compressing"    "compress"     ("-c")

               "uncompressing"  "uncompress"   ("-c")

               nil t]

         +    ["\\.bz2\\'"

         +     "bzip2ing"        "bzip2"         ("")

         +     "bunzip2ing"      "bzip2"         ("-d")

         +     nil t]

              ["\\.tgz\\'"

               "zipping"        "gzip"         ("-c" "-q")

               "unzipping"      "gzip"         ("-c" "-q" "-d")

## 6.2. Изменения в emacs для одного человека:

Благодарю за это Ulrik Dickow, ukd@kampsax.dk , системного программиста в Kampsax Technology:

Чтобы сделать так, чтобы Вы могли использовать bzip2 автоматически, когда Вы не Sysadmin, всего лишь добавьте следующее к вашему .emacs файлу.

      ;; Automatic (un)compression on loading/saving files (gzip(1) and similar)

      ;; We start it in the off state, so that bzip2(1) support can be added.

      ;; Code thrown together by Ulrik Dickow for ~/.emacs with Emacs 19.34.

      ;; Should work with many older and newer Emacsen too.  No warranty though.

      ;;

      (if (fboundp 'auto-compression-mode) ; Emacs 19.30+

          (auto-compression-mode 0)

          (require 'jka-compr)

          (toggle-auto-compression 0))

      ;; Now add bzip2 support and turn auto compression back on.

      (add-to-list 'jka-compr-compression-info-list

                   ["\\.bz2\\(~\\|\\.~[0-9]+~\\)?\\'"

                    "zipping"        "bzip2"         ()

                    "unzipping"      "bzip2"         ("-d")

                    nil t])

      (toggle-auto-compression 1 t)