:group 'gnus-fun
:type 'string)
-(defcustom gnus-convert-image-to-x-face-command "giftopnm %s | ppmnorm 2>/dev/null | pnmscale -width 48 -height 48 | ppmtopgm | pgmtopbm | pbmtoxbm | compface"
+(defcustom gnus-convert-image-to-x-face-command "giftopnm %s | ppmnorm | pnmscale -width 48 -height 48 | ppmtopgm | pgmtopbm | pbmtoxbm | compface"
"Command for converting a GIF to an X-Face."
:group 'gnus-fun
:type 'string)
+(defun gnus-shell-command-to-string (command)
+ "Like `shell-command-to-string' except not mingling ERROR."
+ (with-output-to-string
+ (call-process shell-file-name nil (list standard-output nil)
+ nil shell-command-switch command)))
+
+(defun gnus-shell-command-on-region (start end command)
+ "A simplified `shell-command-on-region'.
+Output to the current buffer, replace text, and don't mingle error."
+ (call-process-region start end shell-file-name t
+ (list (current-buffer) nil)
+ nil shell-command-switch command))
+
;;;###autoload
(defun gnus-random-x-face ()
"Insert a random X-Face header from `gnus-x-face-directory'."
(let* ((files (directory-files gnus-x-face-directory t "\\.pbm$"))
(file (nth (random (length files)) files)))
(when file
- (shell-command-to-string
+ (gnus-shell-command-to-string
(format gnus-convert-pbm-to-x-face-command
(shell-quote-argument file)))))))
"Insert an X-Face header based on an image file."
(interactive "fImage file name:" )
(when (file-exists-p file)
- (shell-command-to-string
+ (gnus-shell-command-to-string
(format gnus-convert-image-to-x-face-command
(shell-quote-argument file)))))
(push (cons (* step i) i) color-alist)))
(when (file-exists-p file)
(with-temp-buffer
- (insert (shell-command-to-string
- (format "giftopnm %s | ppmnorm 2>/dev/null | pnmscale -width 48 -height 48 | ppmquant -fs -map %s 2>/dev/null | ppmtopgm | pnmnoraw"
+ (insert (gnus-shell-command-to-string
+ (format "giftopnm %s | ppmnorm | pnmscale -width 48 -height 48 | ppmquant -fs -map %s | ppmtopgm | pnmnoraw"
(shell-quote-argument file)
mapfile)))
(goto-char (point-min))
(insert "P1\n48 48\n")
(dolist (bits bits-list)
(insert (if (zerop (logand bits mask)) "0 " "1 ")))
- (shell-command-on-region
+ (gnus-shell-command-on-region
(point-min) (point-max)
;; the following is taken from xbmtoikon:
- "pbmtoicon | sed '/^[ ]*[*\\\\/]/d; s/[ ]//g; s/,$//' | tr , '\\012' | sed 's/^0x//; s/^/0x/' | pr -l1 -t -w22 -3 -s, | sed 's/,*$/,/' | compface"
- (current-buffer) t)
+ "pbmtoicon | sed '/^[ ]*[*\\\\/]/d; s/[ ]//g; s/,$//' | tr , '\\012' | sed 's/^0x//; s/^/0x/' | pr -l1 -t -w22 -3 -s, | sed 's/,*$/,/' | compface")
(push (buffer-string) x-faces))))
(dotimes (i (length x-faces))
(insert (if (zerop i) "X-Face:" (format "X-Face-%s:" i))
(setq bit-list nil)
(with-temp-buffer
(insert (uncompface face))
- (shell-command-on-region
+ (gnus-shell-command-on-region
(point-min) (point-max)
- "pnmnoraw 2>/dev/null"
- (current-buffer) t)
+ "pnmnoraw")
(goto-char (point-min))
(forward-line 2)
(while (not (eobp))
(insert "P2\n48 48\n255\n")
(dolist (pixel pixels)
(insert (number-to-string (* scale pixel)) " "))
- (shell-command-on-region
+ (gnus-shell-command-on-region
(point-min) (point-max)
- "ppmtoxpm 2>/dev/null"
- (current-buffer) t)
+ "ppmtoxpm")
(buffer-string)))))
;;;###autoload
\e$B4|8B@Z$l>C5n2DG=$H$9$G$KJV?.$7$?5-;v0J30$N$9$Y$F$rI=<($7$^$9!#\e(B
@end table
-\e$BMxMQ$G$-$k1i;;;R$O\e(B @code{not}\e$B!"\e(B@code{and} \e$B$*$h$S\e(B @code{or} \e$B$G$9!#=R8l\e(B
-\e$B$O\e(B @code{tick}\e$B!"\e(B@code{unsend}\e$B!"\e(B@code{undownload}\e$B!"\e(B@code{unread}\e$B!"\e(B
-@code{dormant}\e$B!"\e(B@code{expire}\e$B!"\e(B@code{reply}\e$B!"\e(B@code{killed}\e$B!"\e(B
-@code{bookmark}\e$B!"\e(B@code{score}\e$B!"\e(B@code{save}\e$B!"\e(B@code{cache}\e$B!"\e(B@code{forward}\e$B!"\e(B
+\e$BMxMQ$G$-$k1i;;;R$O\e(B @code{not}, @code{and} \e$B$*$h$S\e(B @code{or} \e$B$G$9!#=R8l\e(B
+\e$B$O\e(B @code{tick}, @code{unsend}, @code{undownload}, @code{unread},
+@code{dormant}, @code{expire}, @code{reply}, @code{killed},
+@code{bookmark}, @code{score}, @code{save}, @code{cache}, @code{forward},
@code{unseen} \e$B$*$h$S\e(B @code{recent} \e$B$r4^$_$^$9!#\e(B
@end table
\e$B$H$,$G$-$^$9!#$=$l$O!"C1FH$N4X?t!"4X?t$N%j%9%H!"4X?t$H\e(B @code{(\e$B4X?t$G$J$$\e(B
\e$B$b$N\e(B)} \e$B$NMWAG$G$"$k$3$H$,$G$-$^$9!#%G%#%U%)%k%H$G$O!"JB$SBX$($O5-;vHV9f\e(B
\e$B$K$h$C$F$J$5$l$^$9!#4{$K:n$i$l$F$$$kJB$SBX$(=R8l4X?t\e(B
-\e$B$O\e(B @code{gnus-thread-sort-by-number}\e$B!"\e(B@code{gnus-thread-sort-by-author}\e$B!"\e(B
-@code{gnus-thread-sort-by-subject}\e$B!"\e(B@code{gnus-thread-sort-by-date}\e$B!"\e(B
-@code{gnus-thread-sort-by-score}\e$B!"\e(B
-@code{gnus-thread-sort-by-most-recent-number}\e$B!"\e(B
+\e$B$O\e(B @code{gnus-thread-sort-by-number}, @code{gnus-thread-sort-by-author},
+@code{gnus-thread-sort-by-subject}, @code{gnus-thread-sort-by-date},
+@code{gnus-thread-sort-by-score},
+@code{gnus-thread-sort-by-most-recent-number},
@code{gnus-thread-sort-by-most-recent-date} \e$B$*$h$S\e(B
@code{gnus-thread-sort-by-total-score} \e$B$G$9!#\e(B
\e$B$NL5$$;v$G$9!#$"$J$?$,FsG\$NMFNL$r;H$&;v$,NI$$$H46$8$J$$8B$j$O!#\e(B
\e$B%-%c%C%7%e$r@)8B$9$k$?$a$K!"\e(B@code{gnus-cacheable-groups} \e$B$r\e(B \e$B$r%-%c%C%7%e\e(B
-\e$B$9$k%0%k!<%W$NO"A[%j%9%H!"Nc$($P\e(B @samp{^nntp}\e$B!"$H$9$k$+!"@55,I=\e(B
+\e$B$9$k%0%k!<%W$NO"A[%j%9%H!"Nc$($P\e(B @samp{^nntp} \e$B$H$9$k$+!"@55,I=\e(B
\e$B8=\e(B @code{gnus-uncacheable-groups} \e$B$rNc$($P!"\e(B@samp{^nnml} \e$B$K@_Dj$7$F2<$5\e(B
\e$B$$!#N>J}$NJQ?t$N=i4|CM$O\e(B @code{nil} \e$B$G$9!#$b$7%0%k!<%W$,N>J}$N@55,I=8=$K\e(B
\e$B9gCW$9$k$H!"$=$N%0%k!<%W$O%-%c%C%7%e$5$l$^$;$s!#\e(B
\e$B$O\e(B @code{banner} \e$B%0%k!<%W%Q%i%a!<%?\e(B (@pxref{Group Parameters}) \e$B$r%P%J!<\e(B
\e$B$r<h$j=|$-$?$$%0%k!<%W$KDI2C$7$^$9!#%Q%i%a!<%?$O!">C5n$5$l$k%F%-%9%H$K9g\e(B
\e$BCW$9$k@55,I=8=$H$7$F2r<a$5$l$kJ8;zNs$+!"\e(B(\e$B:G8e$N\e(B) \e$B=pL>$,>C5n$5$l$k$H$$$&\e(B
-\e$B0UL#$G$"$k%7%s%\%k\e(B @code{signature}\e$B!"$^$?\e(B
+\e$B0UL#$G$"$k%7%s%\%k\e(B @code{signature} \e$B$^$?\e(B
\e$B$O\e(B @code{gnus-article-banner-alist} \e$B$N@55,I=8=$KBP1~$7$?%7%s%\%k$G$"$k$3\e(B
\e$B$H$,$G$-$^$9!#\e(B
\e$B:#$d!"<!$K\e(B gnus \e$B$r5/F0$7$?$H$-$K$O!"$3$N%P%C%/%(%s%I$O?7$7$$5-;v$r5a$a!"\e(B
\e$B$=$l$O$"$J$?$N%9%W!<%k%U%!%$%k$+$iA4$F$N%a%C%;!<%8$r%G%#%l%/%H%j!<!"%G%#\e(B
-\e$B%U%)%k%H$G$O\e(B @code{~/Mail/}\e$B!"$K0\F0$7$^$9!#:n@.$5$l$??7$7$$%0%k!<\e(B
+\e$B%U%)%k%H$G$O\e(B @code{~/Mail/} \e$B$K0\F0$7$^$9!#:n@.$5$l$??7$7$$%0%k!<\e(B
\e$B%W\e(B (@samp{mail.misc}) \e$B$,9XFI$5$l!"B>$N%0%k!<%W$HF1$8$h$&$KFI$`;v$,$G$-$^\e(B
\e$B$9!#\e(B
@end lisp
@item webmail
-@uref{www.hotmail.com}\e$B!"\e(B@uref{webmail.netscape.com}\e$B!"\e(B
-@uref{www.netaddress.com}\e$B!"\e(B@uref{www.my-deja.com} \e$B$J$I$N%&%'%V%a!<%k%5!<\e(B
+@uref{www.hotmail.com}, @uref{webmail.netscape.com},
+@uref{www.netaddress.com}, @uref{www.my-deja.com} \e$B$J$I$N%&%'%V%a!<%k%5!<\e(B
\e$B%P!<$+$i%a!<%k$r<hF@$7$^$9!#\e(B
\e$BCm\e(B: \e$B8=:_\e(B @uref{mail.yahoo.com} \e$B$O\e(B POP3 \e$B%5!<%S%9$rDs6!$7$F$$$^$9$N$G!"\e(B
@item slack-digest
\e$BHsI8=`$^$H$aAw$j7A<0\e(B --- \e$B$@$$$?$$$O$&$^$/%^%C%A$9$k$,!"$G$b07$$$O2<<j!#\e(B
+
+@item mail-in-mail
+\e$B:G8e$N<jCJ!#\e(B
@end table
\e$B$^$?!"FCJL$J\e(B ``\e$B%U%!%$%k<oJL\e(B'' @code{guess} \e$B$r;H$&$3$H$b$G$-$^$9!#$3$l\e(B
@code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934},
@code{rfc822-forward}, @code{mime-parts}, @code{standard-digest},
@code{slack-digest}, @code{clari-briefs}, @code{nsmail}, @code{outlook},
-@code{oe-dbx} \e$B$*$h$S\e(B @code{mailman} \e$B$^$?$O\e(B @code{guess} \e$B$N$$$:$l$+$G$J$/\e(B
-\e$B$F$O$J$j$^$;$s!#\e(B
+@code{oe-dbx}, @code{mailman} \e$B$*$h$S\e(B @code{mail-in-mail} \e$B$^$?\e(B
+\e$B$O\e(B @code{guess} \e$B$N$$$:$l$+$G$J$/$F$O$J$j$^$;$s!#\e(B
@item nndoc-post-type
@vindex nndoc-post-type
XEmacs \e$B$O%Q%C%1!<%8$N=/=8$H$7$FG[I[$5$l$F$$$^$9!#\e(Bgnus \e$B$N\e(B XEmacs \e$B%Q%C%1!<\e(B
\e$B%8$,I,MW$H$9$k$b$N$O2?$G$"$l!"$"$J$?$O%$%s%9%H!<%k$9$Y$-$G$9!#:#$N$H$3$m\e(B
-\e$BI,MW$J$N$O\e(B @samp{gnus}\e$B!"\e(B@samp{w3}\e$B!"\e(B@samp{mh-e}\e$B!"\e(B@samp{mailcrypt}\e$B!"\e(B
-@samp{rmail}\e$B!"\e(B@samp{eterm}\e$B!"\e(B@samp{mail-lib}\e$B!"\e(B@samp{xemacs-base} \e$B$*$h$S\e(B
+\e$BI,MW$J$N$O\e(B @samp{gnus}, @samp{w3}, @samp{mh-e}, @samp{mailcrypt},
+@samp{rmail}, @samp{eterm}, @samp{mail-lib}, @samp{xemacs-base} \e$B$*$h$S\e(B
@samp{fsf-compat} \e$B$G$9!#\e(B
@node History
Gnus \e$B$OFs$D$NCJ3,$N=[4D$G3+H/$5$l$F$$$^$9!#:G=i$NCJ3,\e(B
\e$B$O\e(B @samp{ding@@gnus.org} \e$B$G$N$?$/$5$s$N5DO@$,$"$j!"$=$3$GJQ99$d?7$7$$5!\e(B
\e$BG=$rDs0F$7$^$9!#$3$NCJ3,$O\e(B @dfn{\e$B%"%k%U%!\e(B} \e$BCJ3,$H8F$P$l$^$9!#$H$$$&$N$O!"\e(B
-\e$B$3$NCJ3,$G%j%j!<%9$5$l$?\e(B Gnusae \e$B$O\e(B @dfn{\e$B%"%k%U%!%j%j!<%9\e(B}\e$B!"$b$7$/$O\e(B (\e$BB>\e(B
+\e$B$3$NCJ3,$G%j%j!<%9$5$l$?\e(B Gnusae \e$B$O\e(B @dfn{\e$B%"%k%U%!%j%j!<%9\e(B} \e$B$b$7$/$O\e(B (\e$BB>\e(B
\e$B$NCDBN$G$O$h$jNI$/;H$o$l$k\e(B) @dfn{\e$B%9%J%C%W%7%g%C%H\e(B} \e$B$H8F$P$l$k$b$N$@$+$i\e(B
\e$B$G$9!#$3$NCJ3,$G$O!"\e(Bgnus \e$B$OIT0BDj$G$"$k$H9M$($i$l$F$*$j!"0lHL$NMxMQ<T$K\e(B
\e$B$h$C$F;H$o$l$k$b$N$G$O$"$j$^$;$s!#\e(BGnus \e$B%"%k%U%!%j%j!<%9\e(B
@item \e$B4pK\\e(B (native)
@cindex native
Gnus \e$B$O$$$D$b0l$D$NJ}K!\e(B (\e$B$H%P%C%/%(%s%I\e(B) \e$B$r%K%e!<%9$rF@$k$?$a$N\e(B @dfn{\e$B4p\e(B
-\e$BK\\e(B}\e$B!"$b$7$/$O=i4|@_Dj\e(B \e$B$H$7$F;H$$$^$9!#\e(B
+\e$BK\\e(B} \e$B$b$7$/$O=i4|@_Dj\e(B \e$B$H$7$F;H$$$^$9!#\e(B
@item \e$B30It\e(B (foreign)
@cindex foreign