;;; tar-mode.el --- simple editing of tar files from GNU emacs
-;; Copyright (C) 1990,91,93,94,95,96,97,98,99,2000,01,2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jamie Zawinski <jwz@lucid.com>
;; Maintainer: FSF
(and set-auto-coding-function
(save-excursion
(funcall set-auto-coding-function
- name (- (point-max) (point)))))))
+ name (- (point-max) (point)))))
+ (car (find-operation-coding-system
+ 'insert-file-contents name t))))
(multibyte enable-multibyte-characters)
(detected (detect-coding-region
(point-min)
coding
(coding-system-eol-type detected))))
(setq coding
- (or (find-new-buffer-file-coding-system detected)
- (let ((file-coding
- (find-operation-coding-system
- 'insert-file-contents buffer-file-name)))
- (if (consp file-coding)
- (setq file-coding (car file-coding))
- file-coding)))))
+ (find-new-buffer-file-coding-system detected)))
(if (or (eq coding 'no-conversion)
(eq (coding-system-type coding) 5))
(setq multibyte (set-buffer-multibyte nil)))
(descriptor tar-superior-descriptor)
subfile-size)
;; We must make the current buffer unibyte temporarily to avoid
- ;; multibyte->unibyte conversion in `insert-buffer'.
+ ;; multibyte->unibyte conversion in `insert-buffer-substring'.
(set-buffer-multibyte nil)
(setq subfile-size (buffer-size))
(set-buffer tar-superior-buffer)
(delete-region data-start data-end)
;; insert the new data...
(goto-char data-start)
- (insert-buffer subfile)
+ (insert-buffer-substring subfile)
(setq subfile-size
(encode-coding-region
data-start (+ data-start subfile-size) coding))