]> the.earth.li Git - htag.git/commitdiff
Import Upstream version 0.0.24 upstream
authorJonathan McDowell <noodles@earth.li>
Fri, 26 Jul 2019 13:10:03 +0000 (10:10 -0300)
committerJonathan McDowell <noodles@earth.li>
Fri, 26 Jul 2019 13:10:03 +0000 (10:10 -0300)
docs/Changelog.htag
docs/INSTALL
docs/README
htag.pl
plugins/15merge

index 83f3557a54813f3d8e3f7bdc345e3f5c47fd9297..b75c9418df5bdafc9992f8eb5a36492dbc4a9b8e 100644 (file)
@@ -1,6 +1,9 @@
 HISTORY
 
 
+2008-05-22
+       Fix 15merge to use Encode and deal with UTF-8 taglines and
+       signatures correctly.
 2003-06-18
        Oops, 25asktag always asked for a tag regardless of $cfg{'asktag'}
        Thanks to Jasper Spaans for pointing that out.
index dea01d71320991f979b3eabc8ce5f68f862fd70f..484393f95c4dd3b99f87eb16dca1ce94a405e982 100644 (file)
@@ -1,5 +1,5 @@
-htag-0.0.23
-18th June 2003
+htag-0.0.24
+22nd May 2008
 
 1. Plugins
 ==========
index fd09d3e8102bed2253d4e858c4d291a52a5633a2..55c39115bd66eb5f7cc26b595d2c3c87b8bdfbcc 100644 (file)
@@ -1,4 +1,4 @@
-htag.pl 0.0.23
+htag.pl 0.0.24
 Simon Huggins <huggie@earth.li>
 
 Description
diff --git a/htag.pl b/htag.pl
index 5972d892524ee31e4cc1b2112a8cff202eb47ee2..898e88ca9919bab83779313aa0d7c376a339992f 100755 (executable)
--- a/htag.pl
+++ b/htag.pl
@@ -34,7 +34,7 @@ if ($< == 0 or $> == 0 or $( == 0 or $) == 0) {
 # HtagPlugin lying around the system then uncomment the following with the
 # path to your local copy of HtagPlugin
 
-# use lib '/home/huggie/perl/huggietag/htag-0.0.23/HtagPlugin';
+# use lib '/home/huggie/perl/huggietag/htag-0.0.24/HtagPlugin';
 
 use HtagPlugin         0.6;
 use Getopt::Long;
@@ -56,7 +56,7 @@ my $cfgdebug=0;
 my $infinity = 80;
 
 ### Defines
-$override{'VERSION'} = $cfg{'VERSION'}    = "0.0.23";
+$override{'VERSION'} = $cfg{'VERSION'}    = "0.0.24";
 $override{'HOME'} = $cfg{'HOME'} = $ENV{"HOME"} || $ENV{"LOGDIR"}
        || (getpwuid($<))[7];
 $cfg{'nicedie'} = 1;
index 801bcf0986ab6133e36aeb05b365163ec7bf38ea..53f3b82e2d5e33b72641538e7d6f4276c24a32f5 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright (C) 2000-2003 Simon Huggins
+# Copyright (C) 2000-2008 Simon Huggins
 # merge merges the sig and the tag but also merges the sig and the new style
 # plugin things (i.e. all those silly files in $cfg{'tmpdir'}
 
 
 use strict;
 use Text::Wrap;
+use Encode;
 
 $Text::Wrap::columns=defined $cfg{'maxlinelen'} ? $cfg{'maxlinelen'} : 72;
 $cfg{'first'}  ||= "";
 $cfg{'leader'} ||= "";
 
+# Work out the correct locale to use if there is one otherwise we assume
+# UTF-8 which shouldn't kill ascii people and anyone else should have
+# correctly set locale.
+my $fromcharset = 'UTF-8';
+my $tocharset = 'UTF-8';
+
+my @all_encodings = Encode->encodings(":all");
+my $locale;
+if (defined $ENV{'LC_ALL'}) {
+       $locale = $ENV{'LC_ALL'};
+} elsif (defined $ENV{'LC_CTYPE'}) {
+       $locale = $ENV{'LC_CTYPE'};
+} elsif (defined $ENV{'LANG'}) {
+       $locale = $ENV{'LANG'};
+}
+if ($locale) {
+       $locale =~ s/.*\.//;
+       $locale = lc $locale;
+       foreach (@all_encodings) {
+               if ($locale eq lc $_) {
+                       $tocharset = $fromcharset = $_;
+                       last;
+               }
+       }
+}
+
 my $anal_merge_debug=0;
 
 sub remove_space($) {
@@ -163,7 +190,7 @@ sub getplugin($) {
 my ($tag,$sig,$newsig);
 open(SIG, "<$cfg{'tmpsigfile'}") or htagdie "$0: Could not open $cfg{'tmpsigfile'}: $!\n";
 while(<SIG>) {
-       $sig .= $_;
+       $sig .= decode($fromcharset, $_);
 }
 close(SIG);
 my $ret = 0;
@@ -174,7 +201,7 @@ if (grep { /\@NOTAG\@/ } $sig) {
 } else {
        open(TAG, "<$cfg{'tmptagfile'}") or htagdie "$1: Could not open $cfg{'tmptagfile'}: $!\n";
        while(<TAG>) {
-               $tag .= $_;
+               $tag .= decode($fromcharset, $_);
        }
        close(TAG);
 }
@@ -187,6 +214,7 @@ if (defined $sig and $sig =~ /@[A-Za-z]?\*|(?:[1-9][0-9]*)[RC]?@/) {
        $cfg{'notag'} = 0;
 }
 if (defined $sig) {
+       $sig = encode($tocharset, $sig);
        open(SIG, ">$cfg{'tmpsigfile'}") or htagdie "$0: Could not open $cfg{'tmpsigfile'}: $!\n";
        print SIG "\n" while $cfg{'newline'}--;
        print SIG $sig;