Changed packaging.
[usenet/yapfaq.git] / yapfaq.pl
index 2b5fe2f..1257e63 100644 (file)
--- a/yapfaq.pl
+++ b/yapfaq.pl
@@ -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";
     }
     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;
     }
   }
   $Error .= "-" x 25 . 'program terminated' . "-" x 25 . "\n" if $Error;
@@ -250,7 +250,7 @@ sub postfaq {
   my $Timestamp = time;
 
   $MID = $$MIDF;
   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;
   $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 /^$/;
     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;
     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/;
   #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'};
   }
 
   # 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:
   }
 
   #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.
 
 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<YOURHOST>>'
+This setting is optional; the default is '<%n-%y-%m-%d@I<YOURHOST>>'
 where I<YOURHOST> is the fully qualified domain name (FQDN) of the
 host B<yapfaq> is running on. Obviously that will only work if you
 have defined a reasonable hostname that the hostfqdn() function of
 where I<YOURHOST> is the fully qualified domain name (FQDN) of the
 host B<yapfaq> 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<newsgroup(s) | CONSOLE> (test)
 
 Don't post to the newsgroups defined in F<yqpfaq.cfg>, but to the
 =item B<-t> I<newsgroup(s) | CONSOLE> (test)
 
 Don't post to the newsgroups defined in F<yqpfaq.cfg>, 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<CONSOLE> is given.  This can be used to preview what B<yapfaq> 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<CONSOLE> is given.  This can be used to preview what
+B<yapfaq> 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).
 
 
 You may want to use this with the B<-f> option (see below).
 
@@ -737,6 +748,19 @@ to or load another configuration file defining (an)other FAQ(s).
 
 =back
 
 
 =back
 
+=head1 INSTALLATION
+
+Just copy the contents of the tarball in some directory and get started.
+
+You can post your first test with
+
+    yapfaq -c .yapfaqrc.sample
+
+or copy F<.yapfaqrc.sample> to F<.yapfaqrc> and F<yapfaq.cfg.sample>
+to F<yapfaq.cfg>, edit those files and get really started!
+
+=back
+
 =head1 EXAMPLES
 
 Post all FAQs that are due for posting:
 =head1 EXAMPLES
 
 Post all FAQs that are due for posting:
This page took 0.011143 seconds and 4 git commands to generate.