(gnus-group-completing-read): Remove all newlines from group names. They mess up...
[gnus] / contrib / compface.el
index 942eb16..2163806 100644 (file)
@@ -9,7 +9,7 @@
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
@@ -80,25 +80,30 @@ or `libgr-progs', for instance."
         (uncompface-internal face))
        ((eq uncompface-use-external t)
         (with-temp-buffer
+          (unless (featurep 'xemacs) (set-buffer-multibyte nil))
           (insert face)
-          (and (eq 0 (apply 'call-process-region (point-min) (point-max)
-                            "uncompface"
-                            'delete '(t nil) nil))
-               (progn
-                 (goto-char (point-min))
-                 (insert "/* Width=48, Height=48 */\n")
-                 ;; I just can't get "icontopbm" to work correctly on its
-                 ;; own in XEmacs.  And Emacs doesn't understand un-raw pbm
-                 ;; files.
-                 (if (not (featurep 'xemacs))
-                     (eq 0 (call-process-region (point-min) (point-max)
-                                                "icontopbm"
-                                                'delete '(t nil)))
-                   (shell-command-on-region (point-min) (point-max)
-                                            "icontopbm | pnmnoraw"
-                                            (current-buffer) t)
-                   t))
-               (buffer-string))))
+          (let ((coding-system-for-read 'raw-text)
+                ;; At least "icontopbm" doesn't work with Windows because
+                ;; the line-break code is converted into CRLF by default.
+                (coding-system-for-write 'binary))
+            (and (eq 0 (apply 'call-process-region (point-min) (point-max)
+                              "uncompface"
+                              'delete '(t nil) nil))
+                 (progn
+                   (goto-char (point-min))
+                   (insert "/* Width=48, Height=48 */\n")
+                   ;; I just can't get "icontopbm" to work correctly on its
+                   ;; own in XEmacs.  And Emacs doesn't understand un-raw pbm
+                   ;; files.
+                   (if (not (featurep 'xemacs))
+                       (eq 0 (call-process-region (point-min) (point-max)
+                                                  "icontopbm"
+                                                  'delete '(t nil)))
+                     (shell-command-on-region (point-min) (point-max)
+                                              "icontopbm | pnmnoraw"
+                                              (current-buffer) t)
+                     t))
+                 (buffer-string)))))
        (t
         (let* ((gc-cons-threshold (eval '(lsh -1 -1)))
                (start (current-time)))
@@ -745,5 +750,4 @@ If the optional RAW is non-nil, return a raw bitmap as a vector."
 ;; eval: (put 'uncompface-loop 'lisp-indent-hook 0)
 ;; End:
 
-;; arch-tag: a8e3f4a0-e375-4f1d-a426-c7da30e16c18
 ;;; compface.el ends here