home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / rn_4_3_blars.lzh / Pnews.SH < prev    next >
Text File  |  1990-09-03  |  16KB  |  729 lines

  1. case $CONFIG in
  2.     '') . config.sh ;;
  3. esac
  4. echo "Extracting Pnews (with variable substitutions)"
  5. $spitshell >Pnews <<!GROK!THIS!
  6. $startsh
  7. # $Header: Pnews.SH,v 4.3.2.7 90/05/04 23:14:45 sob Exp $
  8. #
  9. # $Log:    Pnews.SH,v $
  10. # Revision 4.3.2.7  90/05/04  23:14:45  sob
  11. # Expires: line removed from Pnews.header.
  12. # Revision 4.3.2.6  90/04/21  16:53:43  sob
  13. # Corrected a typo pointed out by Bill Aten.
  14. # Revision 4.3.2.5  89/12/17  01:53:48  sob
  15. # Changed from using ypcat to using ypmatch
  16. # Revision 4.3.2.4  89/12/09  01:48:30  sob
  17. # Reply-To: field removed. This makes all the headers created by rn
  18. # look roughly the same.
  19. # Revision 4.3.2.3  89/11/26  22:20:04  sob
  20. # Added support for some of the top level names that are not part of
  21. # the mainstream.
  22. # Revision 4.3.2.2  89/11/06  00:25:39  sob
  23. # Some minor changes to make the help messages more accurate
  24. # Revision 4.3.2.1  89/11/06  00:21:30  sob
  25. # Added RRN support from NNTP 1.5
  26. # Revision 4.3.1.4  86/09/05  15:21:10  lwall
  27. # Changes for new top-level newsgroup names.
  28. # Revision 4.3.1.3  85/08/01  14:24:06  lwall
  29. # Added AUTHORCOPY.  Temp file is no longer in /tmp.  'e editor' added.
  30. # Revision 4.3.1.2  85/05/17  10:36:46  lwall
  31. # Removed some extra backslashes.
  32. # Revision 4.3.1.1  85/05/10  11:30:21  lwall
  33. # Branch for patches.
  34. # Revision 4.3  85/05/01  12:20:33  lwall
  35. # Baseline for release with 4.3bsd.
  36. #
  37. # syntax: Pnews -h headerfile            or
  38. #      Pnews -h headerfile oldarticle    or
  39. #         Pnews newsgroup title            or just
  40. #         Pnews
  41.  
  42. export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh \$0; kill \$\$)
  43.  
  44. # System dependencies
  45.  
  46. mailer="${mailer-/bin/mail}"
  47. # if you change this to something that does signatures, take out signature code
  48.  
  49. case $portable in
  50. define)
  51. # your site name
  52. sitename=\`$hostcmd\`
  53. case \$sitename in
  54.     *.*)
  55.         ;;
  56.     *)
  57.         sitename=\${sitename}.$domain
  58.         ;;
  59. esac
  60. # where recordings, distributions and moderators are kept
  61. lib=\`$filexp $lib\`
  62. # where important rn things are kept
  63. rnlib=\`$filexp $rnlib\`
  64. ;;
  65. undef)
  66. # your site name
  67. sitename="$sitename"
  68. # where recordings, distributions and moderators are kept
  69. lib="$lib"
  70. # where important rn things are kept
  71. rnlib="$rnlib"
  72. ;;
  73. esac
  74.  
  75. # your organization name
  76. orgname="$orgname"
  77. # what pager you use--if you have kernal paging use cat
  78. pager="\${PAGER-$pager}"
  79. # how you derive full names, bsd, usg, or other
  80. nametype="$nametype"
  81. # default editor
  82. defeditor="$defeditor"
  83. # how not to echo with newline
  84. n="$n"
  85. c="$c"
  86.  
  87. # You should also look at the distribution warnings below marked !DIST!
  88. # to make sure any distribution regions you are a member of are included.
  89. # The following are some prototypical distribution groups.  If you do not
  90. # use them all set the unused ones to a non-null string such as 'none'.
  91. loc="$locpref"
  92. org="$orgpref"
  93. city="$citypref"
  94. state="$statepref"
  95. cntry="$cntrypref"
  96. cont="$contpref"
  97.  
  98. test=${test-test}
  99. sed=${sed-sed}
  100. echo=${echo-echo}
  101. cat=${cat-cat}
  102. egrep=${egrep-egrep}
  103. grep=${grep-grep}
  104. rm=${rm-rm}
  105. tr=${tr-tr}
  106. inews=${inews-inews}
  107. ypmatch=${ypmatch}
  108.  
  109. !GROK!THIS!
  110. $spitshell >>Pnews <<'!NO!SUBS!'
  111. dotdir=${DOTDIR-${HOME-$LOGDIR}}
  112. tmpart=$dotdir/.article
  113.  
  114. if $test -f $dotdir/.pnewsexpert; then
  115.     expertise=expert
  116. else
  117.     $cat <<'EOM'
  118. I see you've never used this version of Pnews before.  I will give you extra
  119. help this first time through, but then you must remember what you learned.
  120. If you don't understand any question, type h and a CR (carriage return) for
  121. help.
  122.  
  123. If you've never posted an article to the net before, it is HIGHLY recommended
  124. that you read the netiquette document found in news.announce.newusers so
  125. that you'll know to avoid the commonest blunders.  To do that, interrupt
  126. Pnews, and get to the top-level prompt of rn.  Type "g news.announce.newusers"
  127. and you are on your way.
  128.  
  129. EOM
  130.     expertise=beginner
  131. fi
  132.  
  133. case $cntry in
  134.   can) stpr=Province ;;
  135.   *)   stpr=State ;;
  136. esac
  137.  
  138. headerfile=""
  139. case $# in
  140. 0) ;;
  141. *)  case $1 in
  142.     -h)
  143.     headerfile="$2"
  144.     shift
  145.     shift
  146.     case $# in
  147.     0)
  148.         oldart=""
  149.         ;;
  150.     *)
  151.         oldart="$1"
  152.         shift
  153.         ;;
  154.     esac
  155.     ;;
  156.     esac
  157.     ;;
  158. esac
  159.  
  160. case $headerfile in
  161. '')
  162.     . $rnlib/Pnews.header
  163.     ;;
  164. *)
  165.     $cat < $headerfile  > $tmpart
  166.     ;;
  167. esac
  168.     rescue="sleep 1; $cat $tmpart >>${HOME-$LOGDIR}/dead.article ; $echo Article appended to ${HOME-$LOGDIR}/dead.article ; exit"
  169.     trap "$rescue" 1
  170.     trap "$rescue" 2
  171.  
  172. $echo ""
  173. #: play recorded message
  174. set X `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
  175. shift
  176. case $# in
  177. 0|1)
  178.     ;;
  179. *)
  180.     shift
  181.     if $test -s ${lib}/recording ; then
  182.      ng=`$echo $1 | $sed "s/,.*//"`
  183.     _rec1=${lib}/`$sed -n "/^$ng/s/^.*    //p" ${lib}/recording`
  184.     _tmp=`$echo $ng |$sed "s/\..*//"`
  185.     _rec2=${lib}/`$cat -s ${lib}/recording|$grep ${_tmp}.all|$sed "s/^.*    //"`
  186.     if $test -f ${_rec1} ; then
  187.         $cat -s ${_rec1}
  188.     fi
  189.     if $test -f ${_rec2} ; then
  190.         $cat -s ${_rec2}
  191.     fi
  192.     fi
  193.     ;;
  194. esac
  195.  
  196. set X `$sed < $tmpart -n -e '/^Distribution: /{' -e p -e q -e '}' -e '/^$/q'`
  197. shift
  198. case $# in
  199. 0|1)
  200.     set X `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
  201.     shift
  202.     case $# in
  203.     0|1)
  204.     set "x misc.whatever"
  205.     ;;
  206.     esac
  207.     ;;
  208. *)
  209.     set $1 $2.whatever
  210.     ;;
  211. esac
  212. shift
  213.  
  214. #: play recorded message
  215. #if $test -s ${lib}/recording ; then
  216. #     ng=`$echo $1 | $sed "s/,.*//"`
  217. #    _rec1=${lib}/`$sed -n "/^$ng/s/^.*    //p" ${lib}/recording`
  218. #    _tmp=`$echo $ng |$sed "s/\..*//"`
  219. #    _rec2=${lib}/`$cat -s ${lib}/recording|$grep ${_tmp}.all|$sed "s/^.*    //"`
  220. #    if $test -f ${_rec1} ; then
  221. #    $cat -s ${_rec1}
  222. #    fi
  223. #    if $test -f ${_rec2} ; then
  224. #    $cat -s ${_rec2}
  225. #    fi
  226. #fi
  227.  
  228. # tell them what we think they are doing... !DIST!
  229. case $1 in
  230. world.*|comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*|alt.*)
  231.     $cat <<'EOM'
  232. This program posts news to thousands of machines throughout the entire
  233. civilized world.  Your message will cost the net hundreds if not thousands of
  234. dollars to send everywhere.  Please be sure you know what you are doing.
  235.  
  236. EOM
  237.     ;;
  238. vmsnet.*)
  239.     $echo 'This program posts news to many machines.'
  240.     ;;
  241. bit.*)
  242.     $echo 'This program posts news to many machines on BITNET.'
  243.     ;;
  244. ddn.*)
  245.     $echo 'This program posts news to many machines throughout the internet.'
  246.     ;;
  247. $cont.*)
  248.     $echo 'This program posts news to many machines throughout the continent.'
  249.     ;;
  250. $cntry.*)
  251.     $echo 'This program posts news to many machines throughout the country.'
  252.     ;;
  253. $state.*)
  254.     $echo 'This program posts news to many machines throughout the state.'
  255.     ;;
  256. $city.*)
  257.     $echo 'This program posts news to many machines throughout the city.'
  258.     ;;
  259. $org.*)
  260.     $echo 'This program posts news to machines throughout the organization.'
  261.     ;;
  262. $loc.*)
  263.     $echo 'This program posts news to machines throughout the local organization.'
  264.     ;;
  265. *.*)
  266.     $echo 'This program may post news to many machines.'
  267.     ;;
  268. to.*)
  269.     $echo 'This program may post news to a partcular machine.'
  270.     ;;
  271. *)
  272.     $echo 'This program posts news to everyone on the machine.'
  273.     ;;
  274. esac
  275. ans=""
  276. while $test "$ans" = "" ; do
  277.     $echo $n "Are you absolutely sure that you want to do this? [ny] $c"
  278.     read ans
  279.     case $ans in
  280.     y*) ;;
  281.     f*) suppressmess=y ;;
  282.     h*) $cat <<'EOH'
  283.  
  284. Type n or CR to exit, y to post.
  285.  
  286. EOH
  287.     ans="" ;;
  288.     *) exit ;;
  289.     esac
  290. done
  291.  
  292. file=h
  293. while $test "$file" = h ; do
  294.     $echo ""
  295.     $echo $n "Prepared file to include [none]: $c"
  296.     read file
  297.     case $file in
  298.     h)
  299.     $cat <<'EOH'
  300.  
  301. If you have already produced the body of your article, type the filename
  302. for it here.  If you just want to proceed directly to the editor, type a
  303. RETURN.  In any event, you will be allowed to edit as many times as you
  304. want before you send off the article.
  305. EOH
  306.     ;;
  307.     '')
  308.     $echo "" >> $tmpart
  309.     state=edit
  310.     ;;
  311.     *)
  312.     $cat $file >>$tmpart
  313.     state=ask
  314.     ;;
  315.     esac
  316. done
  317.  
  318. $echo ""
  319.  
  320. while true ; do
  321.     case $state in
  322.     edit)
  323.     case $expertise in
  324.     beginner)
  325.         $cat </dev/null >$dotdir/.pnewsexpert
  326.         $cat <<'EOMessage'
  327. A temporary file has been created for you to edit.  Be sure to leave at
  328. least one blank line between the header and the body of your message.
  329. (And until a certain bug is fixed all over the net, don't start the body of
  330. your message with any indentation, or it may get eaten.)
  331.  
  332. Within the header may be fields that you don't understand.  If you don't
  333. understand a field (or even if you do), you can simply leave it blank, and
  334. it will go away when the article is posted.
  335.  
  336. Type return to get the default editor, or type the name of your favorite
  337. editor.
  338.  
  339. EOMessage
  340.         ;;
  341.     esac
  342.     case "${VISUAL-${EDITOR-}}" in
  343.     '')
  344.         tmp=h
  345.         ;;
  346.     *)
  347.         tmp=''
  348.         ;;
  349.     esac
  350.     while $test "$tmp" = h ; do
  351.         $echo $n "Editor [${VISUAL-${EDITOR-$defeditor}}]: $c"
  352.         read tmp
  353.         case $tmp in
  354.         h)
  355.         $cat <<'EOH'
  356.  
  357. Type a return to get the default editor, or type the name of the editor you
  358. prefer.  The default editor depends on the VISUAL and EDITOR environment
  359. variables.
  360.  
  361. EOH
  362.         ;;
  363.         '')
  364.         ;;
  365.         *)
  366.         VISUAL=$tmp
  367.         export VISUAL
  368.         ;;
  369.         esac
  370.     done
  371.     trap : 2
  372.     ${VISUAL-${EDITOR-$defeditor}} $tmpart $oldart
  373.     trap "$rescue" 2
  374.     state=ask
  375.     ;;
  376.     
  377.     ask)
  378.     $echo ""
  379.     $echo $n "Send, abort, edit, or list? $c"
  380.     read ans
  381.     
  382.     case "$ans" in
  383.     a*)
  384.         state=rescue
  385.         ;;
  386.     e*)
  387.         set $ans
  388.         case $# in
  389.         2)  VISUAL="$2" ;;
  390.         esac
  391.         state=edit
  392.         ;;
  393.     l*)
  394.         $pager $tmpart
  395.         state=ask
  396.         ;;
  397.     s*)
  398.         state=send
  399.         ;;
  400.     h*)
  401.         $cat <<'EOH'
  402.  
  403. Type s to send the article, a to abort and append the article to dead.article,
  404. e to edit the article again, or l to list the article.
  405.  
  406. To invoke an alternate editor, type 'e editor'.
  407. EOH
  408.     esac
  409.     ;;
  410.     
  411.     send)
  412.     set X `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'`
  413.     shift
  414.     case $# in
  415.     2)
  416.         state=cleanup
  417.         if $test -f $lib/moderators; then
  418.         tryinews=no
  419.         shift
  420.         case "$1" in
  421.         *,*) set `$echo $1 | tr ',' ' '`;;
  422.         esac
  423.         for newsgroup in $*; do
  424. # the following screwy sed should prevent Eunice from hanging on no match
  425.             moderator=`$sed <$lib/moderators \
  426.             -e "/^$newsgroup[     ]/!s/.*//" \
  427.             -e "s/^$newsgroup[     ]//"`
  428.             case ${moderator}X in
  429.             X)  tryinews=yes
  430.             ;;
  431.             *)
  432.             $echo Mailing to moderator $moderator
  433.             case "$sign" in
  434.             n*) ;;
  435.             *)
  436.                 if $test -f $dotdir/.signature; then
  437.                 echo $n "Append .signature file? [y] $c"
  438.                 read ans
  439.                 case $ans in
  440.                 ''|y*)
  441.                     echo "-- " >> $tmpart
  442.                     cat $dotdir/.signature >> $tmpart
  443.                     ;;
  444.                 esac
  445.                 fi
  446.                 sign=no
  447.                 ;;
  448.             esac
  449.             case "$mailer" in
  450.             *recmail)
  451.                 $echo To: $moderator | $cat - $tmpart | $mailer
  452.                 ;;
  453.             *)
  454.                 $mailer $moderator < $tmpart
  455.                 ;;
  456.             esac
  457.             case $? in
  458.             0) ;;
  459.             *)
  460.                 $echo Unable to mail to moderator $moderator
  461.                 state=rescue
  462.                 ;;
  463.             esac
  464.             ;;
  465.             esac
  466.         done
  467.         else
  468.         tryinews=yes
  469.         fi
  470.         case "$tryinews" in
  471.         yes)
  472.         if $inews -h < $tmpart ; then
  473.             : null
  474.         else
  475.             state=rescue
  476.         fi
  477.         ;;
  478.         esac
  479.         ;;
  480.     *)
  481.         $echo ""
  482.         $echo "Malformed Newsgroups line."
  483.         $echo ""
  484.         sleep 1
  485.         state=edit
  486.         ;;
  487.     esac
  488.     ;;
  489.     rescue)
  490.     $cat $tmpart >> ${HOME-$LOGDIR}/dead.article
  491.     $echo "Article appended to ${HOME-$LOGDIR}/dead.article"
  492.     $echo "A copy may be temporarily found in $tmpart"
  493.     exit
  494.     ;;
  495.     cleanup)
  496.     case "${AUTHORCOPY-none}" in
  497.     none)
  498.         ;;
  499.     *)  if $echo From $USER `date` >> $AUTHORCOPY; then
  500.         $cat $tmpart >> $AUTHORCOPY
  501.         $echo "Article appended to $AUTHORCOPY"
  502.         $echo "" >> $AUTHORCOPY
  503.         $echo "" >> $AUTHORCOPY
  504.         else
  505.         $echo "Cannot append to $AUTHORCOPY"
  506.         fi
  507.         ;;
  508.     esac
  509.     exit
  510.     ;;
  511.     esac
  512. done
  513. !NO!SUBS!
  514. $eunicefix Pnews
  515. chmod 755 Pnews
  516. $spitshell >Pnews.header <<'!NO!SUBS!'
  517. case $# in
  518. 0)
  519.     ng=h
  520.     while $test "$ng" = h ; do
  521.     $echo ""
  522.     $echo $n "Newsgroup(s): $c"
  523.     read ng
  524.     case $ng in
  525.     h)
  526.         $cat <<'EOH'
  527.  
  528. Type the name of one or more newsgroups to which you wish to post an article.
  529. If you want to post to multiple newsgroups, it is better to do them all at
  530. once than to post to each newsgroup individually, which defeats the news
  531. reading programs' strategies of eliminating duplicates.
  532.  
  533. Separate multiple newsgroup names with commas.
  534. EOH
  535.         ;;
  536.     esac
  537.     done
  538.     ;;
  539. *)
  540.     ng=$1
  541.     shift
  542.     ;;
  543. esac
  544. case $ng in
  545. *\ *)
  546.     ng=`$echo "$ng" | $sed 's/[, ] */,/g'`
  547.     ;;
  548. esac
  549. case $ng in
  550. bit.*|pubnet.*|bionet.*|vmsnet.*|comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*|alt.*)
  551.     defdist=world
  552.     dist=h
  553.     ;;
  554. ddn.*)
  555.     defdist=inet
  556.     dist=h
  557.     ;;
  558. to.*)
  559.     defdist=''
  560.     dist=''
  561.     ;;
  562. *.*)
  563.     defdist=`expr "X$ng" : 'X\([a-z0-9]*\)'`
  564.     dist=h
  565.     ;;
  566. *)
  567.     defdist=''
  568.     dist=''
  569.     ;;
  570. esac
  571.  
  572. while $test "$dist" = h ; do
  573.     if $test -f $lib/distributions; then
  574.     $echo " "
  575.     $echo "Your local distribution prefixes are:"
  576.     $cat $lib/distributions
  577.     $echo " "
  578.     else
  579.     $egrep -v '[     ]none$' <<EOM
  580.  
  581. Your local distribution prefixes are:
  582.     Local organization:    $loc
  583.     Organization:    $org
  584.     City:        $city
  585.     $stpr:          $state
  586.     Country:        $cntry
  587.     Continent:        $cont
  588.     Everywhere:        world
  589.  
  590. EOM
  591.     fi
  592.     $echo $n "Distribution ($defdist): $c"
  593.     read dist
  594.     case $dist in
  595.     '') dist=$defdist ;;
  596.     esac
  597.     case $dist in
  598.     h)
  599.     $cat <<'EOH'
  600.  
  601. The Distribution line may be used to limit the distribution of an article
  602. to some subset of the systems that would receive the article based only on
  603. the Newsgroups line.  For example, if you want to sell your car in talk.auto,
  604. and you live in New Jersey, you might want to put "nj" on the Distribution
  605. line to avoid advertising in California, which has enough problems of its own.
  606. The actual area designators to use depend on where you are, of course.
  607. EOH
  608.     ;;
  609.     ''|$loc*|$org*|$city*|$state*|$cntry*|$cont*|$defdist)
  610.     ;;
  611.     world*|comp*|news*|sci*|rec*|misc*|soc*|talk*|alt*)
  612.     dist=''
  613.     ;;
  614.     *)  
  615.     if $test -f $lib/distributions && \
  616.       $egrep "^$dist[     ]" $lib/distributions >$tmpart && \
  617.       $test -s $tmpart; then
  618.         : null
  619.     else
  620.         $echo "Unrecognized distribution prefix--type h for help, CR to use anyway."
  621.         defdist=$dist
  622.         dist=h
  623.     fi
  624.     ;;
  625.     esac
  626. done
  627.  
  628. follow=""
  629.  
  630. case $# in
  631. 0)
  632.     title=h
  633.     while $test "$title" = h ; do
  634.     $echo ""
  635.     $echo $n "Title/Subject: $c"
  636.     read title
  637.     case $title in
  638.     h)
  639.         $cat <<'EOH'
  640.  
  641. Type the title for your article.  Please make it as informative as possible
  642. (within reason) so that people who aren't interested won't have to read the
  643. article to find out they aren't interested.  This includes marking movie
  644. spoilers as (spoiler), and rotated jokes as (rot 13).
  645. EOH
  646.     ;;
  647.     esac
  648.     done
  649.     ;;
  650. *)
  651.     title="$*"
  652.     ;;
  653. esac
  654.  
  655. # now build a file with a header for them to edit
  656.  
  657. set X ${USER-${LOGNAME-`who am i`}}
  658. shift
  659. logname=$1
  660. case $logname in
  661. *!*) logname=`expr "$logname" : '!\(.*\)$'` ;;
  662. esac
  663. case ${NAME-$nametype} in
  664. bsd)
  665.      if $test "$ypmatch" != ""; then
  666.          fullname=`$ypmatch $logname passwd 2>/dev/null | $sed "s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^,:;]*\).*"'$'"/\1/"`
  667.      fi
  668.      if $test "$fullname" = ""; then
  669.          fullname=`$sed </etc/passwd -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^,:;]*\).*"'$'"/\1/" -e "q" -e "}" -e "d"`
  670.      fi
  671.     case $fullname in
  672.     *'&'*) : GACK
  673.     lname=`$echo $logname | $tr 'a-z' 'A-Z'`
  674.     lname=`$echo $lname $logname | $sed 's/^\(.\)[^ ]* ./\1/'`
  675.     fullname=`$echo "$fullname" | $sed "s/&/${lname}/"`
  676.     ;;
  677.     esac
  678.     ;;
  679. usg)
  680.      if $test "$ypmatch" != ""; then
  681.          fullname=`$ypmatch $logname passwd 2>/dev/null | $sed "s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q"`
  682.      fi
  683.      if $test "$fullname" = ""; then
  684.     fullname=`$sed </etc/passwd -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q" -e "}" -e "d"`
  685.      fi
  686.     ;;
  687. *)
  688.     fullname=${NAME-`$cat $dotdir/.fullname`}
  689.     ;;
  690. esac
  691.  
  692. orgname=${ORGANIZATION-$orgname}
  693. case $orgname in
  694. /*) orgname=`$cat $orgname` ;;
  695. esac
  696.  
  697. $cat > $tmpart <<EOHeader
  698. From: $logname@$sitename ($fullname)
  699. Newsgroups: $ng
  700. Subject: $title
  701. References: 
  702. Sender: 
  703. Followup-To: $follow
  704. Distribution: $dist
  705. Organization: $orgname
  706. Keywords: 
  707.  
  708. EOHeader
  709.  
  710. !NO!SUBS!
  711. case "$isrrn" in
  712. define) sed < Pnews.header -e '/^#NORMAL/d' > Pnews.h.new ;;
  713. *)  sed < Pnews.header -e '/^#NORMAL/s/^#NORMAL//' > Pnews.h.new ;;
  714. esac
  715. mv Pnews.h.new Pnews.header
  716. $eunicefix Pnews.header
  717.