diff lisp/gnus/binhex.el @ 33118:a9e6d31e455f

Use (featurep 'xemacs). (binhex-char-int): New alias, replacing char-int. Change callers. (binhex-decode-region): Simplify work buffer code. (binhex-decode-region-external): Use expand-file-name, not concat.
author Dave Love <fx@gnu.org>
date Wed, 01 Nov 2000 14:46:55 +0000
parents 6b20b7e85e3c
children a26d9b55abb6
line wrap: on
line diff
--- a/lisp/gnus/binhex.el	Wed Nov 01 11:36:56 2000 +0000
+++ b/lisp/gnus/binhex.el	Wed Nov 01 14:46:55 2000 +0000
@@ -28,8 +28,10 @@
 
 (eval-when-compile (require 'cl))
 
-(if (not (fboundp 'char-int))
-    (fset 'char-int 'identity))
+(defalias 'binhex-char-int
+  (if (fboundp 'char-int)
+      'char-int
+    'identity))
 
 (defvar binhex-decoder-program "hexbin"
   "*Non-nil value should be a string that names a uu decoder.
@@ -67,7 +69,7 @@
 	((boundp 'temporary-file-directory) temporary-file-directory)
 	("/tmp/")))
 
-(if (string-match "XEmacs" emacs-version)
+(if (featurep 'xemacs)
     (defalias 'binhex-insert-char 'insert-char)
   (defun binhex-insert-char (char &optional count ignored buffer)
     (if (or (null buffer) (eq buffer (current-buffer)))
@@ -132,14 +134,14 @@
 (defun binhex-string-big-endian (string)
   (let ((ret 0) (i 0) (len (length string)))
     (while (< i len)
-      (setq ret (+ (lsh ret 8) (char-int (aref string i)))
+      (setq ret (+ (lsh ret 8) (binhex-char-int (aref string i)))
 	    i (1+ i)))
     ret))
 
 (defun binhex-string-little-endian (string)
   (let ((ret 0) (i 0) (shift 0) (len (length string)))
     (while (< i len)
-      (setq ret (+ ret (lsh (char-int (aref string i)) shift))
+      (setq ret (+ ret (lsh (binhex-char-int (aref string i)) shift))
 	    i (1+ i)
 	    shift (+ shift 8)))
     ret))
@@ -149,11 +151,11 @@
     (let ((pos (point-min)) len)
       (vector
        (prog1
-	   (setq len (char-int (char-after pos)))
+	   (setq len (binhex-char-int (char-after pos)))
 	 (setq pos (1+ pos)))
        (buffer-substring pos (setq pos (+ pos len)))
        (prog1
-	   (setq len (char-int (char-after pos)))
+	   (setq len (binhex-char-int (char-after pos)))
 	 (setq pos (1+ pos)))
        (buffer-substring pos (setq pos (+ pos 4)))
        (buffer-substring pos (setq pos (+ pos 4)))
@@ -198,15 +200,8 @@
 	(save-excursion
 	  (goto-char start)
 	  (when (re-search-forward binhex-begin-line end t)
-	    (if (and (not (string-match "XEmacs\\|Lucid" emacs-version))
-		     (boundp 'enable-multibyte-characters))
-		(let ((multibyte
-		       (default-value 'enable-multibyte-characters)))
-		  (setq-default enable-multibyte-characters nil)
-		  (setq work-buffer (generate-new-buffer " *binhex-work*"))
-		  (setq-default enable-multibyte-characters multibyte))
+	    (let (default-enable-multibyte-characters)
 	      (setq work-buffer (generate-new-buffer " *binhex-work*")))
-	    (buffer-disable-undo work-buffer)
 	    (beginning-of-line)
 	    (setq bits 0 counter 0)
 	    (while tmp
@@ -267,9 +262,9 @@
   "Binhex decode region between START and END using external decoder."
   (interactive "r")
   (let ((cbuf (current-buffer)) firstline work-buffer status
-	(file-name (concat binhex-temporary-file-directory
-			   (binhex-decode-region start end t)
-			   ".data")))
+	(file-name (expand-file-name
+		    (concat (binhex-decode-region start end t) ".data")
+		    binhex-temporary-file-directory)))
     (save-excursion
       (goto-char start)
       (when (re-search-forward binhex-begin-line nil t)