rn bug #27
Larry Wall
lwall at sdcrdcf.UUCP
Sat Dec 1 11:22:27 AEST 1984
System: rn version 4.1
Priority: LOW
Subject: Pnews and Rnmail can show environment under some circumstances
From: geoff at desint.UUCP (Geoff Kuenning)
Description:
Pnews.SH uses set `command` to set certain variables. If the command
returns nothing, the environment will be displayed on the terminal.
(There are also some instances of "echo -n" that need generalizing
in Rnmail.SH, and that are fixed by this patch.)
Repeat-By:
Temporarily remove the Distribution: line from your NEWSHEADER
environment variable. Now enter 'rn' and follow up to an article.
The current variables of the Pnews script will be shown on the
terminal.
Fix: Ensure there is at least one argument to each set command by saying
set X `command`
shift
From rn, say "| patch -d DIR", where DIR is your rn source directory.
Outside of rn, say "cd DIR; patch <thisarticle". If you don't have
the patch program, apply the following by hand, or get patch.
After applying the patch, you will need to rerun Pnews.SH and
Rnmail.SH to produce Pnews and Rnmail, and then install them.
Index: Pnews.SH
Prereq: 4.1.1.3
***************
*** 4,10
echo "Extracting Pnews (with variable substitutions)"
$spitshell >Pnews <<!GROK!THIS!
$startsh
! # $Header: Pnews.SH,v 4.1.1.3 84/10/22 15:16:35 lwall Exp $
#
# $Log: Pnews.SH,v $
# Revision 4.1.1.3 84/10/22 15:16:35 lwall
--- 4,10 -----
echo "Extracting Pnews (with variable substitutions)"
$spitshell >Pnews <<!GROK!THIS!
$startsh
! # $Header: Pnews.SH,v 4.1.1.4 84/11/30 13:37:19 lwall Exp $
#
# $Log: Pnews.SH,v $
# Revision 4.1.1.4 84/11/30 13:37:19 lwall
***************
*** 7,12
# $Header: Pnews.SH,v 4.1.1.3 84/10/22 15:16:35 lwall Exp $
#
# $Log: Pnews.SH,v $
# Revision 4.1.1.3 84/10/22 15:16:35 lwall
# Cleaned up distribution code some.
#
--- 7,15 -----
# $Header: Pnews.SH,v 4.1.1.4 84/11/30 13:37:19 lwall Exp $
#
# $Log: Pnews.SH,v $
+ # Revision 4.1.1.4 84/11/30 13:37:19 lwall
+ # Made sure set commands have at least one argument.
+ #
# Revision 4.1.1.3 84/10/22 15:16:35 lwall
# Cleaned up distribution code some.
#
***************
*** 246,252
# now build a file with a header for them to edit
! set ${USER-${LOGNAME-`who am i`}}
logname=$1
case $logname in
*!*) logname=`expr "$logname" : '!\(.*\)$'` ;;
--- 249,256 -----
# now build a file with a header for them to edit
! set X ${USER-${LOGNAME-`who am i`}}
! shift
logname=$1
case $logname in
*!*) logname=`expr "$logname" : '!\(.*\)$'` ;;
***************
*** 299,305
trap "$rescue" 2
$echo ""
! set `$sed < $tmpart -n -e '/^Distribution: /{' -e p -e q -e '}' -e '/^$/q'`
case $# in
0|1)
set `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
--- 303,310 -----
trap "$rescue" 2
$echo ""
! set X `$sed < $tmpart -n -e '/^Distribution: /{' -e p -e q -e '}' -e '/^$/q'`
! shift
case $# in
0|1)
set X `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
***************
*** 302,308
set `$sed < $tmpart -n -e '/^Distribution: /{' -e p -e q -e '}' -e '/^$/q'`
case $# in
0|1)
! set `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
case $# in
0|1)
set "x net.whatever"
--- 307,314 -----
shift
case $# in
0|1)
! set X `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
! shift
case $# in
0|1)
set "x net.whatever"
***************
*** 483,489
;;
send)
! set `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
case $# in
2)
if $inews -h < $tmpart ; then
--- 489,496 -----
;;
send)
! set X `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
! shift
case $# in
2)
if $inews -h < $tmpart ; then
Index: Rnmail.SH
Prereq: 4.1
*** /tmp/,RCSt1007848 Fri Nov 30 13:46:57 1984
--- /tmp/,RCSt2007848 Fri Nov 30 13:47:06 1984
***************
*** 3,10
esac
echo "Extracting Rnmail (with variable substitutions)"
$spitshell >Rnmail <<!GROK!THIS!
! #! /bin/sh
! # $Header: Rnmail.SH,v 4.1 84/09/24 11:38:51 lwall Exp $
#
# $Log: Rnmail.SH,v $
# Revision 4.1 84/09/24 11:38:51 lwall
--- 3,10 -----
esac
echo "Extracting Rnmail (with variable substitutions)"
$spitshell >Rnmail <<!GROK!THIS!
! $startsh
! # $Header: Rnmail.SH,v 4.1.1.2 84/11/30 13:44:26 lwall Exp $
#
# $Log: Rnmail.SH,v $
# Revision 4.1.1.2 84/11/30 13:44:26 lwall
***************
*** 7,12
# $Header: Rnmail.SH,v 4.1 84/09/24 11:38:51 lwall Exp $
#
# $Log: Rnmail.SH,v $
# Revision 4.1 84/09/24 11:38:51 lwall
# Real baseline.
#
--- 7,19 -----
# $Header: Rnmail.SH,v 4.1.1.2 84/11/30 13:44:26 lwall Exp $
#
# $Log: Rnmail.SH,v $
+ # Revision 4.1.1.2 84/11/30 13:44:26 lwall
+ # Made sure set gets called with at least one argument.
+ # Also fixed some instances of echo -n.
+ #
+ # Revision 4.1.1.1 84/09/25 13:19:27 lwall
+ # Branch for sdcrdcf changes.
+ #
# Revision 4.1 84/09/24 11:38:51 lwall
# Real baseline.
#
***************
*** 78,84
to=h
while $test "$to" = h ; do
$echo ""
! $echo -n "To: "
read to
case $to in
h)
--- 85,91 -----
to=h
while $test "$to" = h ; do
$echo ""
! $echo $n "To: $c"
read to
case $to in
h)
***************
*** 104,110
title=h
while $test "$title" = h ; do
$echo ""
! $echo -n "Title/Subject: "
read title
case $title in
h)
--- 111,117 -----
title=h
while $test "$title" = h ; do
$echo ""
! $echo $n "Title/Subject: $c"
read title
case $title in
h)
***************
*** 142,148
file=h
while $test "$file" = h ; do
$echo ""
! $echo -n "Input file name? [RETURN for new file]: "
read file
case $file in
h)
--- 149,155 -----
file=h
while $test "$file" = h ; do
$echo ""
! $echo $n "Input file name? [RETURN for new file]: $c"
read file
case $file in
h)
***************
*** 175,181
trap "" 2
tmp=h
while $test "$tmp" = h ; do
! $echo -n "Editor [${VISUAL-${EDITOR-$defeditor}}]: "
read tmp
case $tmp in
h)
--- 182,188 -----
trap "" 2
tmp=h
while $test "$tmp" = h ; do
! $echo $n "Editor [${VISUAL-${EDITOR-$defeditor}}]: $c"
read tmp
case $tmp in
h)
***************
*** 202,208
ask)
$echo ""
! $echo -n "Send, abort, edit, or list? "
read ans
case $ans in
--- 209,215 -----
ask)
$echo ""
! $echo $n "Send, abort, edit, or list? $c"
read ans
case $ans in
***************
*** 245,253
$mailer <$tmpart
;;
*)
! set `$sed <$tmpart -n -e '/^To:/{' -e 's/To: *//p' -e q -e '}'`
! set "$@" `$sed <$tmpart -n -e '/^Cc:/{' -e 's/Cc: *//p' -e q -e '}'`
! set "$@" `$sed <$tmpart -n -e '/^Bcc:/{' -e 's/Bcc: *//p' -e q -e '}'`
$grep -v "^Bcc:" <$tmpart | $mailer "$@"
;;
esac
--- 252,263 -----
$mailer <$tmpart
;;
*)
! set X `$sed <$tmpart -n -e '/^To:/{' -e 's/To: *//p' -e q -e '}'`
! shift
! set X "$@" `$sed <$tmpart -n -e '/^Cc:/{' -e 's/Cc: *//p' -e q -e '}'`
! shift
! set X "$@" `$sed <$tmpart -n -e '/^Bcc:/{' -e 's/Bcc: *//p' -e q -e '}'`
! shift
$grep -v "^Bcc:" <$tmpart | $mailer "$@"
;;
esac
More information about the Comp.sources.bugs
mailing list