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.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) yapfaq 1.0.0 (2025-01-23)
* Complete rewrite. * Complete rewrite.
* Add POD. * Add POD.

View file

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