X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=contrib%2Fcompface.el;h=09a4e7cfd6b0b66f20ebbb981ec25ab2240d5f7f;hb=559e4108ff97c334f5affb3519657e73dfe3dad7;hp=45a570991dc93a3fbe0b8d40eb1ff522865e649b;hpb=11f463e41560db0198b95f1c33a688bb157cf86d;p=gnus diff --git a/contrib/compface.el b/contrib/compface.el index 45a570991..09a4e7cfd 100644 --- a/contrib/compface.el +++ b/contrib/compface.el @@ -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, @@ -18,9 +18,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -80,25 +78,31 @@ 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 "/* Format_version=1, Width=48, Height=48,\ + Depth=1, Valid_bits_per_item=16 */\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)))