#!/bin/sh
#
#	mail-news release 2.0	Copyright Jem Taylor 1988
#
#	Remove To: Cc: Received: and Via: fields,
#	ensure that there is a Subject: line or make Subject: (none),
#	re-order header lines to give
#	From:
#	Subject:
#	Message-ID:
#	Date:
#	Sender:
#	and move any other header lines to after these
#

/bin/awk '
BEGIN {	true=1; false=0; head=true; subject="Subject: (none)"
	gateway="X-Mailer: mail-news 2.0.3"
	}
# From: and Sender: lines must be login@host (real name)
#			instead of real name <login@host>
# assume that <username> is one word - no quoted space - and at end of line
/^From:.*>$/ {	if (head==true)
	{	user=substr ( $NF, 2, length($NF) -2 )
		real = $2
		for ( i=3; i<NF; i++ ) real = real " " $i
		from =  "From: " user " (" real ")"
		next
	}
	}
/^Sender:.*>$/ { if (head==true)
	{	user=substr ( $NF, 2, length($NF) -2 )
		real = $2
		for ( i=3; i<NF; i++ ) real = real " " $i
		sender =  "Sender: " user " (" real ")"
		next
	}
	}
/^From:/	{ if (head==true) { from = $0 ; next } }
/^Sender:/	{ if (head==true) { sender = $0 ; next } }
/^Message-ID:/	{ if (head==true) { messageid = $0 ; next } }
/^Date:/	{ if (head==true) { date = $0 ; next } }

##insist Subject: has something in it!
/^Subject:.*[-=:)a-zA-Z@#!]/ {
			if (head==true) { subject=$0; next } }

## discard these and header continuation lines
/^Received:/||/^Via:/|| \
/^To:/||/^Cc:/||\
/^	/||/^ /	{ if (head==true) next }

## move any other header lines to end of header
/^.*:/		{ if (head==true) { others[++ocnt]=$0; next } }

## break between head and body - ensure subject in head
/^$/	{ if (head==true)
	{	head=false;
		if (from!="") print from
		print subject
		if (messageid!="") print messageid
		if (date!="") print date
		if (sender!="") print sender
		for (i=1;i<=ocnt;i++) print others[i]
		print gateway
		print ""
		next
	}
	}

## change inclusion mark since sender is not on hand ...
/^>/	{ if (head==false)
	{	print "|" substr( $0, 2, length - 1 )
		next
	}
	}

## all lines including body - unless explicitly skipped above
	{ print $0 }
' | /usr/lib/news/inews $@
