Merge branch 'maint'

* maint:
  Remove debugging code.
  Add %t placeholder for Message-ID.
  Fix attribution.

Signed-off-by: Thomas Hochstein <thh@thh.name>
This commit is contained in:
Thomas Hochstein 2026-01-24 15:56:28 +01:00
commit 7e7285d126
2 changed files with 14 additions and 8 deletions

View file

@ -1,6 +1,10 @@
yapfaq 1.1.0 (unreleased)
yapfaq 1.0.1 (unreleased)
* Add %t placeholder for Message-ID (feature parity with 0.9).
* Remove debugging code.
yapfaq 1.0.0 (2025-01-23)
* Complete rewrite.
* Add POD.

View file

@ -32,8 +32,6 @@ use Path::Tiny; # CPAN
use Getopt::Long qw(GetOptions);
Getopt::Long::config ('bundling');
use Data::Dumper;
# configuration #######################
# may be overwritten via ~/.yapfaqrc or command line
my %Config;
@ -264,7 +262,7 @@ sub AddDuration {
### ------------------------------------------------------------------
### return a hash of all headers (ignoring duplicate headers)
# taken and modified from tinews.pl
# taken and modified from pgpverify.pl
sub ParseHeaders {
my @Headers = @_;
my (%Header, $Label, $Value);
@ -464,15 +462,18 @@ sub BuildPosting {
# %m current month
# %d current day
# %p PID
# %t timestamp (seconds since epoch)
if (/^Message-ID: /i) {
my $TDY = $TD->strftime('%Y');
my $TDM = $TD->strftime('%m');
my $TDD = $TD->strftime('%d');
my $TimeStamp = time;
$_ =~ s/\%n/$Project/g;
$_ =~ s/\%y/$TDY/g;
$_ =~ s/\%m/$TDM/g;
$_ =~ s/\%d/$TDD/g;
$_ =~ s/\%p/$$/g;
$_ =~ s/\%t/$TimeStamp/g;
# add random part in test mode
if ($OptTest) {
my $random = sprintf("%08X", rand(0xFFFFFFFF));
@ -747,11 +748,12 @@ curly brackets and spaces) is removed.
If a I<Message-ID:> header is present, placeholders in that header
will be replaced: I<%n> with the project name, I<%y> with the current
year (YYYY), I<%m> with the current month (MM), I<%d> with the
current day (DD) and I<%p> with the current process ID (PID) of
B<yapfaq>. If no I<Message-ID:> header is present, the I<Message-ID>
will be generated with the hostname of the system B<yapfaq> is
running on and I<%n-%y-%m-%d> as template for the left hand side. If
the I<Message-ID:> header in the headers file does not contain
current day (DD), I<%p> with the current process ID (PID) of
B<yapfaq> and I<%t> with a timestamp timestamp (seconds since epoch).
If no I<Message-ID:> header is present, the I<Message-ID> will be
generated with the hostname of the system B<yapfaq> is running on and
I<%n-%y-%m-%d> as template for the left hand side. If the
I<Message-ID:> header in the headers file does not contain
placeholders, the next repost will most probably fail.
If an I<Expires:> header is present, it must contain a time period of