Compare commits

..

2 commits
master ... utf8

Author SHA1 Message Date
a60ea76fe8 Convert Usevote to UTF-8.
Signed-off-by: Thomas Hochstein <thh@thh.name>
2026-02-08 15:59:33 +01:00
162c5aefda Left-align votetaker in all forms.
Signed-off-by: Thomas Hochstein <thh@thh.name>
2026-02-02 19:11:17 +01:00
21 changed files with 44 additions and 20 deletions

View file

@ -3,9 +3,12 @@
package UVreadmail;
use utf8;
use open qw(:std :encoding(UTF-8));
use strict;
use UVconfig;
use UVmessage;
use Encode qw(decode :fallbacks);
use MIME::QuotedPrint;
use MIME::Base64;
use MIME::Parser;
@ -200,6 +203,7 @@ sub process {
# extract address and name
my $from = $head->get('From') || '';
utf8::decode($from); # fix double encoding
if ($from =~ /\s*([^<]\S+\@\S+[^>]) \((.+)\)/) {
($voter_addr, $voter_name) = ($1, $2);
@ -240,6 +244,13 @@ sub process {
$body = $entity->stringify_body;
}
# body: charset conversion to Perl internal representation
my $ct = $head->get('Content-Type') || '';
if ($ct =~ /^text\/plain;.*charset=\"?([-a-zA-Z0-9]+)\"?/i) {
my $charset = $1;
$body = decode($charset, $body, FB_CROAK);
}
my $h_date = $head->get('Date') || '';
chomp $h_date;

View file

@ -3,6 +3,8 @@
package UVsendmail;
use utf8;
use open qw(:std :utf8);
use strict;
use UVconfig;
use UVtemplate;
@ -239,7 +241,7 @@ sub mimeencode {
$word =~ s/\n//g;
my $encword;
if ($word =~ /[\x7F-\xFF]/) {
$encword = MIME::Words::encode_mimeword($word, 'Q', 'ISO-8859-1');
$encword = MIME::Words::encode_mimeword($word, 'Q', 'UTF-8');
} elsif (length($word) > 75) {
$encword = MIME::Words::encode_mimeword($word, 'Q', 'us-ascii');
} else {

View file

@ -44,6 +44,8 @@ einer Liste immer 60 Zeichen lang ist um ansehnliche Tabellen auszugeben.
#----------------------------------------------------------------------
use utf8;
use open qw(:std :utf8);
use strict;
use vars qw( $VERSION $functions @dirs);
use UVconfig;
@ -370,10 +372,10 @@ sub _parse_rules{
sub _strip_chars{
my $line = $_[0] || return;
# führenden whitespace entfernen
# führenden whitespace entfernen
$$line =~ s/^\s+//;
# kommentare bis zum nächsten Zeilenumbruch entfernen
# kommentare bis zum nächsten Zeilenumbruch entfernen
$$line =~ s/^#.*$//m;
}
@ -618,8 +620,8 @@ sub _parse_comment{
my $count = 1;
while($string && $count) {
$string =~ s/^[^\[\]\\]+//s; # alles außer Klammern und Backslash wegwerfen
$string =~ s/^\\.//; # alles gesperrte löschen
$string =~ s/^[^\[\]\\]+//s; # alles außer Klammern und Backslash wegwerfen
$string =~ s/^\\.//; # alles gesperrte löschen
$count++ if $string =~ s/^\[//;
$count-- if $string =~ s/^\]//;
@ -775,7 +777,7 @@ Sonderzeichen oder Leerzeichen uebergeben werden muessen diese gequotet
werden. Dazu kann ' also auch " verwendet werden.
Die Funktionen geben im Allgemeinen einen String zurueck. Im Rahmen
von Listen können auch Arrays uebergeben werden.
von Listen können auch Arrays uebergeben werden.
Die erste Funktion duerfte ueblicherweise 'value' sein. Sie gibt den
des angegeben Schluessel zurueck, der dann von den folgenden Funktionen

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
head := value head | quote "> "
body := value body | quote "> "

View file

@ -10,7 +10,7 @@ bdsginfo := value bdsginfo | create-lines 72
bdsgtext-first := value bdsgtext | first-words 50
bdsgtext-more := value bdsgtext | drop-words 50 | create-lines 50
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
== TEMPLATE =================================================================

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
== TEMPLATE =================================================================
Zur Wertung deiner Stimme ist die Zustimmung zur Speicherung,

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
== TEMPLATE =================================================================
Diese automatische Nachricht wurde dir nach Erhalt Deiner ANNULLIERUNG

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
head := value head | quote "> "
body := value body | quote "> "

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
head := value head | quote "> "
body := value body | quote "> "

View file

@ -12,5 +12,5 @@ Message-ID: [$msgid]
Date: [$date]
X-Automated-Message: generated by [$usevote-version]
MIME-Version: 1.0
Content-Type: text/plain; charset\=iso-8859-1
Content-Type: text/plain; charset\=UTF-8
Content-Transfer-Encoding: 8bit

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
body := value body | quote "> "
== TEMPLATE =================================================================

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
body := value body | quote "> "
== TEMPLATE =================================================================

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
head := value head | quote "> "
body := value body | quote "> "

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
body := value body | quote "> "
== TEMPLATE =================================================================

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
body := value body | quote "> "
== TEMPLATE =================================================================

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
head := value head | quote "> "
body := value body | quote "> "

View file

@ -1,4 +1,4 @@
votetaker := value mailfrom | fill-left 65
votetaker := value mailfrom
body := value body | quote "> "
== TEMPLATE =================================================================

View file

@ -21,6 +21,8 @@
# written in C). Not all functions of Usevote/UseVoteGer 3.x are implemented!
###############################################################################
use utf8;
use open qw(:std :utf8);
use strict;
use Getopt::Long;
use FindBin qw($Bin);

View file

@ -20,6 +20,8 @@
# written in C). Not all functions of Usevote/UseVoteGer 3.x are implemented!
###############################################################################
use utf8;
use open qw(:std :utf8);
use strict;
use Getopt::Long;
use Digest::MD5 qw(md5_hex);

View file

@ -20,6 +20,8 @@
# written in C). Not all functions of Usevote/UseVoteGer 3.x are implemented!
###############################################################################
use utf8;
use open qw(:std :encoding(UTF-8));
use strict;
use Getopt::Long;
use Digest::MD5 qw(md5_hex);

View file

@ -21,6 +21,8 @@
# written in C). Not all functions of Usevote/UseVoteGer 3.x are implemented!
###############################################################################
use utf8;
use open qw(:std :utf8);
use strict;
use Getopt::Long;
use Text::Wrap qw(wrap $columns);
@ -330,6 +332,7 @@ sub process_vote {
$voter_name = $3;
$voter_name =~ s/^\s+//; # strip leading spaces
$voter_name =~ s/\s+$//; # strip trailing spaces
utf8::decode($voter_name); # fix double encoding
}
if ($voter_name) {