X-Git-Url: https://code.th-h.de/?p=usenet%2Fyapfaq.git;a=blobdiff_plain;f=yapfaq.pl;h=bde4d500fe8b55752a0ded57978616818dfd228c;hp=97e4b7893203480ad477f1724a21d34634ca5f20;hb=8f65a0a519c87dca312c005c227c913261c895e4;hpb=cdfec198d60d055f7586edd2dafbb2a37e049582 diff --git a/yapfaq.pl b/yapfaq.pl index 97e4b78..bde4d50 100644 --- a/yapfaq.pl +++ b/yapfaq.pl @@ -1,6 +1,6 @@ #! /usr/bin/perl -W # -# yapfaq Version 0.8 by Thomas Hochstein +# yapfaq Version 0.8.1 by Thomas Hochstein # (Original author: Marc Brockschmidt) # # This script posts any project described in its config-file. Most people @@ -12,7 +12,7 @@ # It can be redistributed and/or modified under the same terms under # which Perl itself is published. -our $VERSION = "0.8"; +our $VERSION = "0.9-prelease"; # Please do not change this setting! # You may override the default .rc file (.yapfaqrc) by using "-c .rc file" @@ -66,7 +66,7 @@ if (-f $RCFile) { warn "$0: W: .rc file $RCFile does not exist!\n"; } -$Options{'s'} = $Config{'Program'} if (!defined($Options{'s'})); +$Options{'s'} = $Config{'Program'} if (defined($Config{'Program'}) && $Config{'Program'} && !defined($Options{'s'})); # read configuration (configured FAQs) my @Config; @@ -195,7 +195,7 @@ sub readconfig{ } unless(!$$Config[$i]{'mid-format'} || $$Config[$i]{'mid-format'} =~ /^<\S+\@(\S+\.)?\S{2,}\.\S{2,}>/) { warn "$0: W: The Message-ID format for your project \"$$Config[$i]{'name'}\" seems to be invalid - set to default.\n"; - $$Config[$i]{'mid-format'} = '<%n-%d.%m.%y@'.hostfqdn.'>'; # set default if mid-format is invalid + $$Config[$i]{'mid-format'} = '<%n-%y-%m-%d@'.hostfqdn.'>'; # set default if mid-format is invalid } } $Error .= "-" x 25 . 'program terminated' . "-" x 25 . "\n" if $Error; @@ -250,7 +250,7 @@ sub postfaq { my $Timestamp = time; $MID = $$MIDF; - $MID = '<%n-%d.%m.%y@'.hostfqdn.'>' if !defined($MID); # set to default if unset + $MID = '<%n-%y-%m-%d@'.hostfqdn.'>' if !defined($MID); # set to default if unset $MID =~ s/\%n/$$ActName/g; $MID =~ s/\%d/$$TDD/g; $MID =~ s/\%m/$$TDM/g; @@ -263,7 +263,7 @@ sub postfaq { s/\r//; push (@Body, $_), next if $InRealBody; $InRealBody++ if /^$/; - $LastModified = $1 if /^Last-modified: (\S+)$/i; + $LastModified = $1 if /^Last-modified:\s*(\S+)\s*$/i; push @Body, $_; } close FH; @@ -292,11 +292,17 @@ sub postfaq { #Replace %LM by the content of the news.answer-pseudo-header Last-modified: if ($LastModified) { $$Subject =~ s/\%LM/$LastModified/; + } else { + $$Subject =~ s/[<\[{\(]?\%LM[>\]}\)]?//; } # Test mode? if($Options{'t'} and $Options{'t'} !~ /console/i) { $$NG = $Options{'t'}; + $MID =~ s/@/-$Timestamp-test@/g; + $$ExtraHeaders .= "\n" if $$ExtraHeaders; + $$ExtraHeaders .= "X-Supersedes: $$Supersedes\nX-yapfaq-Remark: This is only a test message."; + undef $$Supersedes; } #Now create the complete Header: @@ -509,7 +515,7 @@ C<%d> for the date the message is posted, C<%m> for the month, C<%y> for the year and C<%t> for a time stamp (number of seconds since the epoch), respectively. -This setting is optional; the default is '<%n-%d.%m.%y@I>' +This setting is optional; the default is '<%n-%y-%m-%d@I>' where I is the fully qualified domain name (FQDN) of the host B is running on. Obviously that will only work if you have defined a reasonable hostname that the hostfqdn() function of @@ -696,11 +702,16 @@ update any status information. =item B<-t> I (test) Don't post to the newsgroups defined in F, but to the -newsgroups given after B<-t> as a comma-separated list or print the -FAQs to STDOUT separated by lines of dashes if the special string -C is given. This can be used to preview what B would -do without embarassing yourself on Usenet. The status files are not -updated when this option is given. +(test) newsgroup(s) given after B<-t> as a comma-separated list or +print the FAQs to STDOUT separated by lines of dashes if the special +string C is given. This can be used to preview what +B would do without embarassing yourself on Usenet. + +The status files are not updated when this option is given. + +When this option is used to post to some other newsgroup(s), a(nother) +timestamp is added to the Message-ID header and the Supersedes header +is replaced by a special X-Supersedes header. You may want to use this with the B<-f> option (see below).