comparison lisp/gnus/gnus-ems.el @ 31802:c182c9b42c86

(gnus-article-display-xface): Use unibyte for the image processing. Rationalize logic somewhat.
author Dave Love <fx@gnu.org>
date Thu, 21 Sep 2000 09:23:32 +0000
parents d2b5643aab16
children 6d8322cfbf71
comparison
equal deleted inserted replaced
31801:9de0c3880281 31802:c182c9b42c86
206 206
207 This function is for Emacs 21+. See `gnus-xmas-article-display-xface' 207 This function is for Emacs 21+. See `gnus-xmas-article-display-xface'
208 for XEmacs." 208 for XEmacs."
209 ;; It might be worth converting uncompface's output in Lisp. 209 ;; It might be worth converting uncompface's output in Lisp.
210 210
211 (unless gnus-article-xface-ring-internal ; Only load ring when needed. 211 (when (if (fboundp 'display-graphic-p)
212 (setq gnus-article-xface-ring-internal 212 (display-graphic-p))
213 (make-ring gnus-article-xface-ring-size))) 213 (unless gnus-article-xface-ring-internal ; Only load ring when needed.
214 (save-excursion 214 (setq gnus-article-xface-ring-internal
215 (let* ((cur (current-buffer)) 215 (make-ring gnus-article-xface-ring-size)))
216 (data (buffer-substring beg end)) 216 (save-excursion
217 (image (cdr-safe (assoc data (ring-elements 217 (let* ((cur (current-buffer))
218 gnus-article-xface-ring-internal))))) 218 (data (buffer-substring beg end))
219 (when (if (fboundp 'display-graphic-p) 219 (image (cdr-safe (assoc data (ring-elements
220 (display-graphic-p)) 220 gnus-article-xface-ring-internal))))
221 default-enable-multibyte-characters)
221 (unless image 222 (unless image
222 (let ((coding-system-for-read 'binary) 223 (with-temp-buffer
223 (coding-system-for-write 'binary)) 224 (insert data)
224 (with-temp-buffer 225 (and (eq 0 (call-process-region (point-min) (point-max)
225 (insert data) 226 "uncompface"
226 (and (eq 0 (call-process-region (point-min) (point-max) 227 'delete '(t nil)))
227 "uncompface" 228 (goto-char (point-min))
228 'delete '(t nil))) 229 (progn (insert "/* Width=48, Height=48 */\n") t)
229 (goto-char (point-min)) 230 (eq 0 (call-process-region (point-min) (point-max)
230 (progn (insert "/* Width=48, Height=48 */\n") t) 231 "icontopbm"
231 (eq 0 (call-process-region (point-min) (point-max) 232 'delete '(t nil)))
232 "icontopbm" 233 ;; Miles Bader says that faces don't look right as
233 'delete '(t nil))) 234 ;; light on dark.
234 ;; Miles Bader says that faces don't look right as 235 (if (eq 'dark (cdr-safe (assq 'background-mode
235 ;; light on dark. 236 (frame-parameters))))
236 (if (eq 'dark (cdr-safe (assq 'background-mode
237 (frame-parameters))))
238 (setq image (create-image (buffer-string) 'pbm t
239 :ascent 'center
240 :foreground "black"
241 :background "white"))
242 (setq image (create-image (buffer-string) 'pbm t 237 (setq image (create-image (buffer-string) 'pbm t
243 :ascent 'center)))))) 238 :ascent 'center
244 (ring-insert gnus-article-xface-ring-internal (cons data image)))) 239 :foreground "black"
245 (when image 240 :background "white"))
246 (goto-char (point-min)) 241 (setq image (create-image (buffer-string) 'pbm t
247 (re-search-forward "^From:" nil 'move) 242 :ascent 'center)))))
248 (insert-image image))))) 243 (ring-insert gnus-article-xface-ring-internal (cons data image)))
244 (when image
245 (goto-char (point-min))
246 (re-search-forward "^From:" nil 'move)
247 (insert-image image))))))
249 248
250 (provide 'gnus-ems) 249 (provide 'gnus-ems)
251 250
252 ;; Local Variables: 251 ;; Local Variables:
253 ;; byte-compile-warnings: '(redefine callargs) 252 ;; byte-compile-warnings: '(redefine callargs)