summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/latexindent
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-06-15 19:53:25 +0000
committerKarl Berry <karl@freefriends.org>2024-06-15 19:53:25 +0000
commit5490425d5fc8c99183eba653433a23fa68b46c88 (patch)
tree4fafdf8f0bc16416cfb1aadf50c0ecf1f52eef22 /Master/texmf-dist/scripts/latexindent
parentefc9844505cf57a0464ef92c0dea772bea1e299b (diff)
latexindent (15jun24)
git-svn-id: svn://tug.org/texlive/trunk@71532 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/latexindent')
-rw-r--r--Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm32
-rw-r--r--Master/texmf-dist/scripts/latexindent/LatexIndent/Logger.pm2
-rw-r--r--Master/texmf-dist/scripts/latexindent/LatexIndent/Special.pm4
-rw-r--r--Master/texmf-dist/scripts/latexindent/LatexIndent/TrailingComments.pm32
-rw-r--r--Master/texmf-dist/scripts/latexindent/LatexIndent/UTF8CmdLineArgsFileOperation.pm40
-rw-r--r--Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm4
-rwxr-xr-xMaster/texmf-dist/scripts/latexindent/defaultSettings.yaml4
-rwxr-xr-xMaster/texmf-dist/scripts/latexindent/latexindent.pl2
8 files changed, 59 insertions, 61 deletions
diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm
index 4d4940371d8..6365e0fd93b 100644
--- a/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm
+++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm
@@ -389,36 +389,8 @@ sub yaml_read_settings {
# output the contents of indentconfig to the log file
$logger->info( Dump \%{ $userSettings->[0] } );
- # change the encoding of the paths according to the field `encoding`
- if ( $userSettings and ( ref( $userSettings->[0] ) eq 'HASH' ) and $userSettings->[0]->{encoding} ) {
- use Encode;
- my $encoding = $userSettings->[0]->{encoding};
- my $encodingObject = find_encoding($encoding);
-
- # Check if the encoding is valid.
- if ( ref($encodingObject) ) {
- $logger->info("*Encoding of the paths is $encoding");
- foreach ( @{ $userSettings->[0]->{paths} } ) {
- my $temp = $encodingObject->encode("$_");
- $logger->info("Transform file encoding: $_ -> $temp");
- push( @absPaths, $temp );
- }
- }
- else {
- $logger->warn("*encoding \"$encoding\" not found");
- $logger->warn("Ignore this setting and will take the default encoding.");
- @absPaths = @{ $userSettings->[0]->{paths} };
- foreach ( @{ $userSettings->[0]->{paths} } ) {
- push( @absPaths, $_ );
- }
- }
- }
- else # No such setting, and will take the default
- {
- # $logger->info("*Encoding of the paths takes the default.");
- foreach ( @{ $userSettings->[0]->{paths} } ) {
- push( @absPaths, $_ );
- }
+ foreach ( @{ $userSettings->[0]->{paths} } ) {
+ push( @absPaths, $_ );
}
}
diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/Logger.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/Logger.pm
index 425c8eae07f..7c4352a95fd 100644
--- a/Master/texmf-dist/scripts/latexindent/LatexIndent/Logger.pm
+++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/Logger.pm
@@ -18,7 +18,7 @@ package LatexIndent::Logger;
use strict;
use warnings;
-use Exporter;
+use Exporter qw/import/;
use LatexIndent::Switches qw/%switches/;
our @ISA = "LatexIndent::Document"; # class inheritance, Programming Perl, pg 321
our @EXPORT_OK = qw/@logFileLines/;
diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/Special.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/Special.pm
index 096d2935c96..8dac47bfc0a 100644
--- a/Master/texmf-dist/scripts/latexindent/LatexIndent/Special.pm
+++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/Special.pm
@@ -17,14 +17,14 @@ package LatexIndent::Special;
# For all communication, please visit: https://github.com/cmhughes/latexindent.pl
use strict;
use warnings;
+use Exporter qw/import/;
use LatexIndent::Tokens qw/%tokens/;
use LatexIndent::TrailingComments qw/$trailingCommentRegExp/;
use LatexIndent::GetYamlSettings qw/%mainSettings/;
use LatexIndent::Switches qw/$is_t_switch_active $is_tt_switch_active/;
use LatexIndent::LogFile qw/$logger/;
-use LatexIndent::IfElseFi qw/$ifElseFiBasicRegExp/;
+use LatexIndent::IfElseFi;
use Data::Dumper;
-use Exporter qw/import/;
our @ISA = "LatexIndent::Document"; # class inheritance, Programming Perl, pg 321
our @EXPORT_OK
= qw/find_special construct_special_begin $specialBeginAndBracesBracketsBasicRegExp $specialBeginBasicRegExp/;
diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/TrailingComments.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/TrailingComments.pm
index 9d6532500aa..5e47ae3f3fb 100644
--- a/Master/texmf-dist/scripts/latexindent/LatexIndent/TrailingComments.pm
+++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/TrailingComments.pm
@@ -27,12 +27,20 @@ our @EXPORT_OK
= qw/remove_trailing_comments put_trailing_comments_back_in $trailingCommentRegExp add_comment_symbol construct_trailing_comment_regexp @trailingComments/;
our @trailingComments;
our $commentCounter = 0;
+our $notPrecededByRegExp;
our $trailingCommentRegExp;
sub construct_trailing_comment_regexp {
- my $notPreceededBy = qr/${${$mainSettings{fineTuning}}{trailingComments}}{notPreceededBy}/;
+ $notPrecededByRegExp = qr/${${$mainSettings{fineTuning}}{trailingComments}}{notPrecededBy}/;
+ my $notPreceededBy = ${${mainSettings{fineTuning}}{trailingComments}}{notPreceededBy};
- $trailingCommentRegExp = qr/$notPreceededBy%$tokens{trailingComment}\d+$tokens{endOfToken}/;
+ if ( $notPreceededBy ) {
+ $logger->warn(
+ "*fineTuning:trailingComments:notPreceededBy is ok for now, but in future versions, fineTuning:trailingComments:notPrecededBy will be used" );
+ $notPrecededByRegExp = qr/$notPreceededBy/;
+ }
+
+ $trailingCommentRegExp = qr/$notPrecededByRegExp%$tokens{trailingComment}\d+$tokens{endOfToken}/;
}
sub add_comment_symbol {
@@ -66,17 +74,16 @@ sub remove_trailing_comments {
$logger->trace("*Storing trailing comments") if $is_t_switch_active;
- my $notPreceededBy = qr/${${$mainSettings{fineTuning}}{trailingComments}}{notPreceededBy}/;
- my $afterComment = qr/${${$mainSettings{fineTuning}}{trailingComments}}{afterComment}/;
+ my $afterComment = qr/${${$mainSettings{fineTuning}}{trailingComments}}{afterComment}/;
# perform the substitution
${$self}{body} =~ s/
- $notPreceededBy # not preceded by a \
- % # %
+ $notPrecededByRegExp # not preceded by a \
+ % # %
(
- $afterComment # anything else
+ $afterComment # anything else
)
- $ # up to the end of a line
+ $ # up to the end of a line
/
# increment comment counter and store comment
$commentCounter++;
@@ -134,14 +141,13 @@ sub put_trailing_comments_back_in {
# replace the line-broken trailing comment ID with a non-broken trailing comment ID
${$self}{body} =~ s/%\R?$trailingcommentIDwithLineBreaksRegExp/%$trailingcommentID/s;
}
- my $notPreceededBy = qr/${${$mainSettings{fineTuning}}{trailingComments}}{notPreceededBy}/;
if (${$self}{body} =~ m/%$trailingcommentID
(
- (?! # not immediately preceded by
- $notPreceededBy # \
- % # %
+ (?! # not immediately preceded by
+ $notPrecededByRegExp # \
+ % # %
).*?
- ) # captured into $1
+ ) # captured into $1
(\h*)?$
/mx and $1 ne ''
)
diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/UTF8CmdLineArgsFileOperation.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/UTF8CmdLineArgsFileOperation.pm
index 45a2b6f5385..d6d8b595c02 100644
--- a/Master/texmf-dist/scripts/latexindent/LatexIndent/UTF8CmdLineArgsFileOperation.pm
+++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/UTF8CmdLineArgsFileOperation.pm
@@ -5,22 +5,39 @@ use warnings;
use feature qw( say state );
use utf8;
use Config qw( %Config );
-use Encode qw( decode encode );
+use Encode qw(find_encoding decode encode );
use Exporter qw/import/;
our @EXPORT_OK
= qw/commandlineargs_with_encode @new_args copy_with_encode exist_with_encode open_with_encode zero_with_encode read_yaml_with_encode isdir_with_encode mkdir_with_encode/;
+our $encodingObject;
+
+if ($^O eq 'MSWin32') {
+ my $encoding_sys = 'cp' . Win32::GetACP();
+ $encodingObject = find_encoding( $encoding_sys );
+
+ # Check if the encoding is valid.
+ unless ( ref($encodingObject) ) {
+ $encodingObject = find_encoding( 'utf-8' );
+ }
+}
+else {
+ $encodingObject = find_encoding( 'utf-8' );
+}
+
sub copy_with_encode {
use File::Copy;
my ( $source, $destination ) = @_;
- if ( $FindBin::Script eq 'latexindent.exe' ) {
+ if ( $FindBin::Script =~ /\.exe$/ ) {
require Win32::Unicode::File;
Win32::Unicode::File->import(qw(copyW));
copyW( $source, $destination, 1 );
}
else {
+ $source = $encodingObject->encode($source);
+ $destination = $encodingObject->encode($destination);
copy( $source, $destination );
}
}
@@ -28,12 +45,13 @@ sub copy_with_encode {
sub exist_with_encode {
my ($filename) = @_;
- if ( $FindBin::Script eq 'latexindent.exe' ) {
+ if ( $FindBin::Script =~ /\.exe$/ ) {
require Win32::Unicode::File;
Win32::Unicode::File->import(qw(statW));
return statW($filename);
}
else {
+ $filename = $encodingObject->encode($filename);
return -e $filename;
}
}
@@ -41,7 +59,7 @@ sub exist_with_encode {
sub zero_with_encode {
my ($filename) = @_;
- if ( $FindBin::Script eq 'latexindent.exe' ) {
+ if ( $FindBin::Script =~ /\.exe$/ ) {
require Win32::Unicode::File;
Win32::Unicode::File->import(qw(file_size));
my $size = file_size($filename);
@@ -53,6 +71,7 @@ sub zero_with_encode {
}
}
else {
+ $filename = $encodingObject->encode($filename);
return -z $filename;
}
}
@@ -62,7 +81,7 @@ sub open_with_encode {
my $filename = shift;
my $fh;
- if ( $FindBin::Script eq 'latexindent.exe' ) {
+ if ( $FindBin::Script =~ /\.exe$/ ) {
require Win32::Unicode::File;
Win32::Unicode::File->import;
$fh = Win32::Unicode::File->new;
@@ -74,6 +93,7 @@ sub open_with_encode {
}
}
else {
+ $filename = $encodingObject->encode($filename);
if ( open( $fh, $mode, $filename ) ) {
return $fh;
}
@@ -95,13 +115,14 @@ sub read_yaml_with_encode {
sub isdir_with_encode {
my $path = shift;
- if ( $FindBin::Script eq 'latexindent.exe' ) {
+ if ( $FindBin::Script =~ /\.exe$/ ) {
require Win32::Unicode::File;
Win32::Unicode::File->import(qw(file_type));
return file_type( 'd', $path );
}
else {
+ $path = $encodingObject->encode($path);
return -d $path;
}
}
@@ -109,7 +130,7 @@ sub isdir_with_encode {
sub mkdir_with_encode {
my $path = shift;
- if ( $FindBin::Script eq 'latexindent.exe' ) {
+ if ( $FindBin::Script =~ /\.exe$/ ) {
require Win32::Unicode::Dir;
Win32::Unicode::Dir->import(qw(mkdirW));
@@ -118,7 +139,7 @@ sub mkdir_with_encode {
else {
require File::Path;
File::Path->import(qw(make_path));
-
+ $path = $encodingObject->encode($path);
make_path($path);
}
}
@@ -126,7 +147,7 @@ sub mkdir_with_encode {
#https://stackoverflow.com/a/63868721
#https://stackoverflow.com/a/44489228
sub commandlineargs_with_encode {
- if ( $FindBin::Script eq 'latexindent.exe' ) {
+ if ( $FindBin::Script =~ /\.exe$/ ) {
require Win32::API;
import Win32::API qw( ReadMemory );
@@ -207,7 +228,6 @@ sub commandlineargs_with_encode {
@ARGV = @{$args};
}
else {
- my $encodingObject = "utf-8";
@ARGV = map { decode( $encodingObject, $_ ) } @ARGV;
our @new_args = @ARGV;
}
diff --git a/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm b/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm
index 0198585f92b..5232967fb9c 100644
--- a/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm
+++ b/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm
@@ -20,6 +20,6 @@ use warnings;
use Exporter qw/import/;
our @EXPORT_OK = qw/$versionNumber $versionDate/;
-our $versionNumber = '3.24.1';
-our $versionDate = '2024-05-12';
+our $versionNumber = '3.24.2';
+our $versionDate = '2024-06-15';
1
diff --git a/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml b/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml
index 80120978ed8..15073c2f982 100755
--- a/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml
+++ b/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml
@@ -1,5 +1,5 @@
#
-# latexindent.pl, version 3.24.1, 2024-05-12
+# latexindent.pl, version 3.24.2, 2024-06-15
#
# defaultSettings.yaml, the default settings for latexindent.pl
#
@@ -649,7 +649,7 @@ fineTuning:
before: (?:#\d\h*;?,?\/?)+|\<.*?\>
between: _|\^|\*
trailingComments:
- notPreceededBy: (?<!\\)
+ notPrecededBy: (?<!\\)
afterComment: .*?
modifyLineBreaks:
doubleBackSlash: \\\\(?:\h*\[\h*\d+\h*[a-zA-Z]+\h*\])?
diff --git a/Master/texmf-dist/scripts/latexindent/latexindent.pl b/Master/texmf-dist/scripts/latexindent/latexindent.pl
index 36855f46e3a..c85bdf2047d 100755
--- a/Master/texmf-dist/scripts/latexindent/latexindent.pl
+++ b/Master/texmf-dist/scripts/latexindent/latexindent.pl
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
#
-# latexindent.pl, version 3.24.1, 2024-05-12
+# latexindent.pl, version 3.24.2, 2024-06-15
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by