texlive[69391] trunk: eolang (11jan24)

commits+karl at tug.org commits+karl at tug.org
Thu Jan 11 22:37:19 CET 2024


Revision: 69391
          https://tug.org/svn/texlive?view=revision&revision=69391
Author:   karl
Date:     2024-01-11 22:37:18 +0100 (Thu, 11 Jan 2024)
Log Message:
-----------
eolang (11jan24)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/Makefile.am
    trunk/Build/source/texk/texlive/linked_scripts/Makefile.in
    trunk/Build/source/texk/texlive/linked_scripts/scripts.lst
    trunk/Master/texmf-dist/doc/latex/eolang/LICENSE.txt
    trunk/Master/texmf-dist/doc/latex/eolang/README.md
    trunk/Master/texmf-dist/doc/latex/eolang/eolang.pdf
    trunk/Master/texmf-dist/source/latex/eolang/eolang.dtx
    trunk/Master/texmf-dist/source/latex/eolang/eolang.ins
    trunk/Master/texmf-dist/tex/latex/eolang/eolang.sty
    trunk/Master/tlpkg/libexec/ctan2tds
    trunk/Master/tlpkg/tlpsrc/eolang.tlpsrc

Added Paths:
-----------
    trunk/Build/source/texk/texlive/linked_scripts/eolang/
    trunk/Build/source/texk/texlive/linked_scripts/eolang/eolang.pl
    trunk/Master/bin/aarch64-linux/eolang
    trunk/Master/bin/amd64-freebsd/eolang
    trunk/Master/bin/amd64-netbsd/eolang
    trunk/Master/bin/armhf-linux/eolang
    trunk/Master/bin/i386-freebsd/eolang
    trunk/Master/bin/i386-linux/eolang
    trunk/Master/bin/i386-netbsd/eolang
    trunk/Master/bin/i386-solaris/eolang
    trunk/Master/bin/universal-darwin/eolang
    trunk/Master/bin/windows/eolang.exe
    trunk/Master/bin/x86_64-cygwin/eolang
    trunk/Master/bin/x86_64-darwinlegacy/eolang
    trunk/Master/bin/x86_64-linux/eolang
    trunk/Master/bin/x86_64-linuxmusl/eolang
    trunk/Master/bin/x86_64-solaris/eolang
    trunk/Master/texmf-dist/doc/man/man1/eolang.1
    trunk/Master/texmf-dist/doc/man/man1/eolang.man1.pdf
    trunk/Master/texmf-dist/scripts/eolang/
    trunk/Master/texmf-dist/scripts/eolang/eolang.pl

Modified: trunk/Build/source/texk/texlive/linked_scripts/Makefile.am
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/Makefile.am	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Build/source/texk/texlive/linked_scripts/Makefile.am	2024-01-11 21:37:18 UTC (rev 69391)
@@ -141,6 +141,7 @@
 	dviinfox/dviinfox.pl \
 	easydtx/edtx2dtx.pl \
 	ebong/ebong.py \
+	eolang/eolang.pl \
 	epspdf/epspdf.tlu \
 	epspdf/epspdftk.tcl \
 	epstopdf/epstopdf.pl \

Modified: trunk/Build/source/texk/texlive/linked_scripts/Makefile.in
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/Makefile.in	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Build/source/texk/texlive/linked_scripts/Makefile.in	2024-01-11 21:37:18 UTC (rev 69391)
@@ -358,6 +358,7 @@
 	dviinfox/dviinfox.pl \
 	easydtx/edtx2dtx.pl \
 	ebong/ebong.py \
+	eolang/eolang.pl \
 	epspdf/epspdf.tlu \
 	epspdf/epspdftk.tcl \
 	epstopdf/epstopdf.pl \

Added: trunk/Build/source/texk/texlive/linked_scripts/eolang/eolang.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/eolang/eolang.pl	                        (rev 0)
+++ trunk/Build/source/texk/texlive/linked_scripts/eolang/eolang.pl	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1,153 @@
+#!/usr/bin/perl
+# (The MIT License)
+#
+# Copyright (c) 2022-2024 Yegor Bugayenko
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the 'Software'), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+# 2024-01-11 0.18.0
+package eolang;
+
+use warnings;
+use strict;
+use File::Basename;
+
+# Hash of incoming command line arguments.
+my %args = map { $_ => 1 } @ARGV;
+
+# Read file content.
+sub readfile {
+  my ($path) = @_;
+  open(my $h, '<', $path) or die('Cannot open file: ' . $path);
+  my $content; { local $/; $content = <$h>; }
+  return $content;
+}
+
+# Save content to file.
+sub savefile {
+  my ($path, $content) = @_;
+  open(my $f, '>', $path) or error('Cannot open file for writing: ' . $path);
+  print $f $content;
+  close($f);
+}
+
+# Print INFO message to the console.
+sub info {
+  my ($txt) = @_;
+  print $txt . "\n";
+}
+
+# Print DEBUG message to the console.
+sub debug {
+  my ($txt) = @_;
+  if (exists $args{'--verbose'}) {
+    print $txt . "\n";
+  }
+}
+
+# Print ERROR message to the console.
+sub error {
+  my ($txt) = @_;
+  print STDERR $txt . "\n";
+}
+
+if (@ARGV+0 eq 0 or exists $args{'--help'} or exists $args{'-?'}) {
+  info("This script helps embedding \\phiquation and \\phiq into .tex document\n\n" .
+    "Usage:\n" .
+    "  eolang [<options>] <.tex file path>\n\n" .
+    "Options:\n" .
+    "  -v, --version        Print the current version of the tool and exit\n" .
+    "  -?, --help           Print this help screen\n" .
+    "      --verbose        Print all possible debugging information\n" .
+    "      --tmpdir=path    Temp directory with .tex files ('_eolang' by default)\n\n" .
+    "If any issues, report to GitHub: https://github.com/yegor256/bibcop");
+} elsif (exists $args{'--version'} or exists $args{'-v'}) {
+  info('0.18.0 2024-01-11');
+} else {
+  my ($src, $target) = grep { not($_ =~ /^-.*$/) } @ARGV;
+  if (not $src) {
+    error('Source file name must be specified');
+    exit(1);
+  }
+  debug('Source: ' . $src);
+  my $job = basename($src);
+  $job =~ s/\.[^.]+$//;
+  debug('Job name: ' . $job);
+  my $tex = readfile($src);
+  my $tmpdir = dirname($src) . '/_eolang/' . $job;
+  debug('EO tmpdir: ' . $tmpdir);
+  foreach my $f (glob($tmpdir . '/*-phiq.tex')) {
+    my $id = basename($f);
+    $id =~ s/\.[^.]+$//;
+    $id =~ s/-phiq$//;
+    my $phiq = readfile($f);
+    $phiq =~ s/^\s+|\s+$//g;
+    my $search = quotemeta($phiq);
+    $search =~ s/(\\\\[a-zA-Z]+)\\ /$1\\ ?/g;
+    $search = '\\\\phiq\\s*\\{\\s*' . $search . '\\s*\\}|\\$\\s*' . $search . '\\s*\\$';
+    my $re = '\input{' . $tmpdir . '/' . $id . '-phiq-post.tex' . "}";
+    my $count = 0;
+    while (1) {
+      my $applied = $tex =~ s/${search}/${re}/g;
+      if (!$applied) {
+        if ($count eq 0) {
+          debug("Neither \\phiq{$phiq} nor \$$phiq\$ found, suggested by $f");
+        }
+        last;
+      }
+      debug('\\phiq ' . $id . '( ' . $phiq . ' ) -> ' . $re);
+      $count += 1;
+    }
+  }
+  my @kinds = ('sodg', 'phiquation', 'phiquation*');
+  for my $kind (@kinds) {
+    my $k = $kind;
+    $k =~ s/\*$//;
+    foreach my $f (glob($tmpdir . '/*-' . $k . '.tex')) {
+      my $id = basename($f);
+      $id =~ s/\.[^.]+$//;
+      $id =~ s/-${k}$//;
+      my $search = quotemeta(readfile($f));
+      $search = '\\\\begin\\s*\\{\\s*' . quotemeta($kind) . '\\s*\\}\\n' . $search . '\\\\end\\s*\\{\\s*' . quotemeta($kind) . '\\s*\\}\\n';
+      my $re = '\input{' . $tmpdir . '/' . $id . '-' . $k . '-post.tex' . "}\% '$kind' replaced\n\n";
+      my $count = 0;
+      while (1) {
+        my $applied = $tex =~ s/${search}/${re}/g;
+        if (!$applied) {
+          if ($count eq 0) {
+            debug("Didn't find \\begin{$kind} suggested by $f");
+          }
+          last;
+        }
+        debug('\\begin{' . $kind . '} ' . $id . ' -> ' . $re);
+        $count += 1;
+      }
+    }
+  }
+  if (not $target) {
+    error('Target file name must be specified');
+    exit(1);
+  }
+  debug('Target: ' . $target);
+  savefile($target, $tex);
+  info("New TeX file save to: ". $target);
+}
+
+# In order to finish it with success:
+1;


Property changes on: trunk/Build/source/texk/texlive/linked_scripts/eolang/eolang.pl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Build/source/texk/texlive/linked_scripts/scripts.lst
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/scripts.lst	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Build/source/texk/texlive/linked_scripts/scripts.lst	2024-01-11 21:37:18 UTC (rev 69391)
@@ -82,6 +82,7 @@
 dviinfox/dviinfox.pl
 easydtx/edtx2dtx.pl
 ebong/ebong.py
+eolang/eolang.pl
 epspdf/epspdf.tlu
 epspdf/epspdftk.tcl
 epstopdf/epstopdf.pl

Added: trunk/Master/bin/aarch64-linux/eolang
===================================================================
--- trunk/Master/bin/aarch64-linux/eolang	                        (rev 0)
+++ trunk/Master/bin/aarch64-linux/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/aarch64-linux/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/amd64-freebsd/eolang
===================================================================
--- trunk/Master/bin/amd64-freebsd/eolang	                        (rev 0)
+++ trunk/Master/bin/amd64-freebsd/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/amd64-freebsd/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/amd64-netbsd/eolang
===================================================================
--- trunk/Master/bin/amd64-netbsd/eolang	                        (rev 0)
+++ trunk/Master/bin/amd64-netbsd/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/amd64-netbsd/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/armhf-linux/eolang
===================================================================
--- trunk/Master/bin/armhf-linux/eolang	                        (rev 0)
+++ trunk/Master/bin/armhf-linux/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/armhf-linux/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/i386-freebsd/eolang
===================================================================
--- trunk/Master/bin/i386-freebsd/eolang	                        (rev 0)
+++ trunk/Master/bin/i386-freebsd/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/i386-freebsd/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/i386-linux/eolang
===================================================================
--- trunk/Master/bin/i386-linux/eolang	                        (rev 0)
+++ trunk/Master/bin/i386-linux/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/i386-linux/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/i386-netbsd/eolang
===================================================================
--- trunk/Master/bin/i386-netbsd/eolang	                        (rev 0)
+++ trunk/Master/bin/i386-netbsd/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/i386-netbsd/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/i386-solaris/eolang
===================================================================
--- trunk/Master/bin/i386-solaris/eolang	                        (rev 0)
+++ trunk/Master/bin/i386-solaris/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/i386-solaris/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/universal-darwin/eolang
===================================================================
--- trunk/Master/bin/universal-darwin/eolang	                        (rev 0)
+++ trunk/Master/bin/universal-darwin/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/universal-darwin/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/windows/eolang.exe
===================================================================
(Binary files differ)

Index: trunk/Master/bin/windows/eolang.exe
===================================================================
--- trunk/Master/bin/windows/eolang.exe	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/bin/windows/eolang.exe	2024-01-11 21:37:18 UTC (rev 69391)

Property changes on: trunk/Master/bin/windows/eolang.exe
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/bin/x86_64-cygwin/eolang
===================================================================
--- trunk/Master/bin/x86_64-cygwin/eolang	                        (rev 0)
+++ trunk/Master/bin/x86_64-cygwin/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/x86_64-cygwin/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/x86_64-darwinlegacy/eolang
===================================================================
--- trunk/Master/bin/x86_64-darwinlegacy/eolang	                        (rev 0)
+++ trunk/Master/bin/x86_64-darwinlegacy/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/x86_64-darwinlegacy/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/x86_64-linux/eolang
===================================================================
--- trunk/Master/bin/x86_64-linux/eolang	                        (rev 0)
+++ trunk/Master/bin/x86_64-linux/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/x86_64-linux/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/x86_64-linuxmusl/eolang
===================================================================
--- trunk/Master/bin/x86_64-linuxmusl/eolang	                        (rev 0)
+++ trunk/Master/bin/x86_64-linuxmusl/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/x86_64-linuxmusl/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/bin/x86_64-solaris/eolang
===================================================================
--- trunk/Master/bin/x86_64-solaris/eolang	                        (rev 0)
+++ trunk/Master/bin/x86_64-solaris/eolang	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1 @@
+link ../../texmf-dist/scripts/eolang/eolang.pl
\ No newline at end of file


Property changes on: trunk/Master/bin/x86_64-solaris/eolang
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/eolang/LICENSE.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/eolang/LICENSE.txt	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/texmf-dist/doc/latex/eolang/LICENSE.txt	2024-01-11 21:37:18 UTC (rev 69391)
@@ -1,6 +1,6 @@
 (The MIT License)
 
-Copyright (c) 2021-2023 Yegor Bugayenko
+Copyright (c) 2021-2024 Yegor Bugayenko
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the 'Software'), to deal

Modified: trunk/Master/texmf-dist/doc/latex/eolang/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/eolang/README.md	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/texmf-dist/doc/latex/eolang/README.md	2024-01-11 21:37:18 UTC (rev 69391)
@@ -22,7 +22,7 @@
 \end{document}
 ```
 
-Otherwise, you can download [`eolang.sty`](https://yegor256.github.io/eolang/eolang.sty) and add to your project.
+Otherwise, you can download [`eolang.sty`](https://yegor256.github.io/eolang.sty) and add to your project.
 
 If you want to contribute yourself, make a fork, then create a branch, 
 then run `l3build ctan` in the root directory.

Modified: trunk/Master/texmf-dist/doc/latex/eolang/eolang.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/man/man1/eolang.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/eolang.1	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/man/man1/eolang.1	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1,24 @@
+.TH eolang 1 "2024-01-11"
+.SH NAME
+eolang \- Automated Editor of TeX Files that Use "eolang" Package
+.SH SYNOPSIS
+eolang [<options>] <.tex source file path> <.tex target file path>
+.SH DESCRIPTION
+The eolang tool is a Perl script for automatically modifying
+TeX files that use "eolang" package, helping them pass post-processing
+checks in ACM, arXiv, IEEE, and other publishers.
+.SH OPTIONS
+Various options apply:
+.IP --version
+Print the version of the tool
+.IP --help
+Print the introduction screen
+.IP --verbose
+Print debugging information too
+.SH AUTHOR
+Yegor Bugayenko (yegor256 at gmail.com)
+.SH BUGS
+Please log issues on the GitHub homepage:
+https://github.com/objectionary/eolang.sty/issues.
+.SH SEE ALSO
+See eolang.pdf for more details.


Property changes on: trunk/Master/texmf-dist/doc/man/man1/eolang.1
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/man/man1/eolang.man1.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/man/man1/eolang.man1.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/eolang.man1.pdf	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/texmf-dist/doc/man/man1/eolang.man1.pdf	2024-01-11 21:37:18 UTC (rev 69391)

Property changes on: trunk/Master/texmf-dist/doc/man/man1/eolang.man1.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/scripts/eolang/eolang.pl
===================================================================
--- trunk/Master/texmf-dist/scripts/eolang/eolang.pl	                        (rev 0)
+++ trunk/Master/texmf-dist/scripts/eolang/eolang.pl	2024-01-11 21:37:18 UTC (rev 69391)
@@ -0,0 +1,153 @@
+#!/usr/bin/perl
+# (The MIT License)
+#
+# Copyright (c) 2022-2024 Yegor Bugayenko
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the 'Software'), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+# 2024-01-11 0.18.0
+package eolang;
+
+use warnings;
+use strict;
+use File::Basename;
+
+# Hash of incoming command line arguments.
+my %args = map { $_ => 1 } @ARGV;
+
+# Read file content.
+sub readfile {
+  my ($path) = @_;
+  open(my $h, '<', $path) or die('Cannot open file: ' . $path);
+  my $content; { local $/; $content = <$h>; }
+  return $content;
+}
+
+# Save content to file.
+sub savefile {
+  my ($path, $content) = @_;
+  open(my $f, '>', $path) or error('Cannot open file for writing: ' . $path);
+  print $f $content;
+  close($f);
+}
+
+# Print INFO message to the console.
+sub info {
+  my ($txt) = @_;
+  print $txt . "\n";
+}
+
+# Print DEBUG message to the console.
+sub debug {
+  my ($txt) = @_;
+  if (exists $args{'--verbose'}) {
+    print $txt . "\n";
+  }
+}
+
+# Print ERROR message to the console.
+sub error {
+  my ($txt) = @_;
+  print STDERR $txt . "\n";
+}
+
+if (@ARGV+0 eq 0 or exists $args{'--help'} or exists $args{'-?'}) {
+  info("This script helps embedding \\phiquation and \\phiq into .tex document\n\n" .
+    "Usage:\n" .
+    "  eolang [<options>] <.tex file path>\n\n" .
+    "Options:\n" .
+    "  -v, --version        Print the current version of the tool and exit\n" .
+    "  -?, --help           Print this help screen\n" .
+    "      --verbose        Print all possible debugging information\n" .
+    "      --tmpdir=path    Temp directory with .tex files ('_eolang' by default)\n\n" .
+    "If any issues, report to GitHub: https://github.com/yegor256/bibcop");
+} elsif (exists $args{'--version'} or exists $args{'-v'}) {
+  info('0.18.0 2024-01-11');
+} else {
+  my ($src, $target) = grep { not($_ =~ /^-.*$/) } @ARGV;
+  if (not $src) {
+    error('Source file name must be specified');
+    exit(1);
+  }
+  debug('Source: ' . $src);
+  my $job = basename($src);
+  $job =~ s/\.[^.]+$//;
+  debug('Job name: ' . $job);
+  my $tex = readfile($src);
+  my $tmpdir = dirname($src) . '/_eolang/' . $job;
+  debug('EO tmpdir: ' . $tmpdir);
+  foreach my $f (glob($tmpdir . '/*-phiq.tex')) {
+    my $id = basename($f);
+    $id =~ s/\.[^.]+$//;
+    $id =~ s/-phiq$//;
+    my $phiq = readfile($f);
+    $phiq =~ s/^\s+|\s+$//g;
+    my $search = quotemeta($phiq);
+    $search =~ s/(\\\\[a-zA-Z]+)\\ /$1\\ ?/g;
+    $search = '\\\\phiq\\s*\\{\\s*' . $search . '\\s*\\}|\\$\\s*' . $search . '\\s*\\$';
+    my $re = '\input{' . $tmpdir . '/' . $id . '-phiq-post.tex' . "}";
+    my $count = 0;
+    while (1) {
+      my $applied = $tex =~ s/${search}/${re}/g;
+      if (!$applied) {
+        if ($count eq 0) {
+          debug("Neither \\phiq{$phiq} nor \$$phiq\$ found, suggested by $f");
+        }
+        last;
+      }
+      debug('\\phiq ' . $id . '( ' . $phiq . ' ) -> ' . $re);
+      $count += 1;
+    }
+  }
+  my @kinds = ('sodg', 'phiquation', 'phiquation*');
+  for my $kind (@kinds) {
+    my $k = $kind;
+    $k =~ s/\*$//;
+    foreach my $f (glob($tmpdir . '/*-' . $k . '.tex')) {
+      my $id = basename($f);
+      $id =~ s/\.[^.]+$//;
+      $id =~ s/-${k}$//;
+      my $search = quotemeta(readfile($f));
+      $search = '\\\\begin\\s*\\{\\s*' . quotemeta($kind) . '\\s*\\}\\n' . $search . '\\\\end\\s*\\{\\s*' . quotemeta($kind) . '\\s*\\}\\n';
+      my $re = '\input{' . $tmpdir . '/' . $id . '-' . $k . '-post.tex' . "}\% '$kind' replaced\n\n";
+      my $count = 0;
+      while (1) {
+        my $applied = $tex =~ s/${search}/${re}/g;
+        if (!$applied) {
+          if ($count eq 0) {
+            debug("Didn't find \\begin{$kind} suggested by $f");
+          }
+          last;
+        }
+        debug('\\begin{' . $kind . '} ' . $id . ' -> ' . $re);
+        $count += 1;
+      }
+    }
+  }
+  if (not $target) {
+    error('Target file name must be specified');
+    exit(1);
+  }
+  debug('Target: ' . $target);
+  savefile($target, $tex);
+  info("New TeX file save to: ". $target);
+}
+
+# In order to finish it with success:
+1;


Property changes on: trunk/Master/texmf-dist/scripts/eolang/eolang.pl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex/eolang/eolang.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/eolang/eolang.dtx	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/texmf-dist/source/latex/eolang/eolang.dtx	2024-01-11 21:37:18 UTC (rev 69391)
@@ -1,7 +1,7 @@
 % \iffalse meta-comment
 % (The MIT License)
 %
-% Copyright (c) 2021-2023 Yegor Bugayenko
+% Copyright (c) 2021-2024 Yegor Bugayenko
 %
 % Permission is hereby granted, free of charge, to any person obtaining a copy
 % of this software and associated documentation files (the 'Software'), to deal
@@ -50,7 +50,7 @@
 %<package>\NeedsTeXFormat{LaTeX2e}
 %<package>\ProvidesPackage{eolang}
 %<*package>
-[2024-01-02 0.17.1 Formulas and Graphs for EO Programming Language]
+[2024-01-11 0.18.0 Formulas and Graphs for EO Programming Language]
 %</package>
 %<*driver>
 \documentclass{ltxdoc}
@@ -426,6 +426,19 @@
 %</verb>
 %\fi
 
+% \DescribeMacro{noshell}
+% You may prohibit any interactions with the shell by using the |noshell| option. This may be helpful when you send your document
+% for outside processing and want to make sure the compilation won't break due to shell errors:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\usepackage[noshell]{eolang}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+
 % \section{More Examples}
 
 % The |phiquation| environment treats ends of line as signals to start
@@ -757,7 +770,7 @@
 %    \end{macrocode}
 % We need \href{https://ctan.org/pkg/iexec}{iexec} for executing Perl scripts:
 %    \begin{macrocode}
-\RequirePackage{iexec}
+\ifdefined\eolang at noshell\else\RequirePackage{iexec}\fi
 %    \end{macrocode}
 
 % Then, we process package options:
@@ -774,6 +787,7 @@
   tmpdir/.default=_eolang\ifxetex-xe\else\ifluatex-lua\fi\fi,
   nocomments/.store in=\eolang at nocomments,
   anonymous/.store in=\eolang at anonymous,
+  noshell/.store in=\eolang at noshell,
   tmpdir
 }
 \ProcessPgfPackageOptions{/eolang}
@@ -781,21 +795,29 @@
 
 % Then, we make a directory where all temporary files will be kept:
 %    \begin{macrocode}
-\RequirePackage{shellesc}
+\makeatletter
+\ifdefined\eolang at noshell\else\RequirePackage{shellesc}\fi
 \IfFileExists
   {\eolang at tmpdir/\jobname}
   {\message{eolang: Temporary directory "\eolang at tmpdir/\jobname"
     already exists^^J}}
-  {%
-    \ifnum\ShellEscapeStatus=1%
-      \iexec[null]{mkdir -p "\eolang at tmpdir/\jobname"}%
-    \else%
+  {
+    \ifdefined\eolang at noshell
       \message{eolang: Temporary directory "\eolang at tmpdir/\jobname"
-        is not created, because -shell-escape is not set, and
-        it doesn't exist, most probably the compilation
-        will fail later^^J}%
-    \fi%
+        is not created, because of the "noshell" package option,
+        most probably the compilation will fail later^^J}
+    \else
+      \ifnum\ShellEscapeStatus=1
+        \iexec[null]{mkdir -p "\eolang at tmpdir/\jobname"}
+      \else
+        \message{eolang: Temporary directory "\eolang at tmpdir/\jobname"
+          is not created, because -shell-escape is not set, and
+          it doesn't exist, most probably the compilation
+          will fail later^^J}
+      \fi
+    \fi
   }
+\makeatother
 %    \end{macrocode}
 
 % \begin{macro}{\eolang at lineno}
@@ -840,6 +862,11 @@
 % \href{https://ctan.org/pkg/fancyvrb}{fancyvrb}:
 %    \begin{macrocode}
 \makeatletter
+\ifdefined\eolang at noshell
+  \message{eolang: Perl script is not going to be created,
+  at "\eolang at tmpdir/\jobname-phi.pl" because of the "noshell"
+  package option^^J}
+\else
 \openin 15=\eolang at tmpdir/\jobname-phi.pl
 \ifeof 15
 \message{eolang: Perl script is going to be created,
@@ -850,7 +877,7 @@
 $macro = $ARGV[0];
 open(my $fh, '<', $ARGV[1]);
 my $tex; { local $/; $tex = <$fh>; }
-print "% This file is auto-generated by 0.17.1\n";
+print "% This file is auto-generated by 0.18.0\n";
 print '% There are ', length($tex),
   ' chars in the input: ', $ARGV[1], "\n";
 print '% ---', "\n";
@@ -986,7 +1013,7 @@
 $tex =~ s/\|([^\|]+)\|/\\textnormal{\\texttt{\1}}{}/g;
 $tex =~ s/\{TEXT(\d+)\}/'\\text{' . @texts[$1] . '}';/ge;
 if ($macro eq 'phiq') {
-  print '$' if ($tex ne '');
+  print '\(' if ($tex ne '');
 } else {
   print '\begin{', $macro, "}\n";
   if (not($align)) {
@@ -1003,7 +1030,7 @@
 }
 print $tex;
 if ($macro eq 'phiq') {
-  print '$' if ($tex ne '');
+  print '\)' if ($tex ne '');
 } else {
   if (not($align)) {
     if ($gathered) {
@@ -1023,6 +1050,7 @@
     "\eolang at tmpdir/\jobname-phi.pl"^^J}
 \fi
 \closein 15
+\fi
 \makeatother
 %    \end{macrocode}
 % \end{macro}
@@ -1039,6 +1067,7 @@
 
 % \begin{macro}{\eolang at ifabsent}
 % \changes{0.17.0}{2023/12/28}{A new supplementary \texttt{eolang at ifabsent} command added}
+% \changes{0.18.0}{2024/01/09}{The \texttt{noshell} package option added in order to enable complete prohibition of shell interactions.}
 % Then, we define the |\eolang at ifabsent| command, which if a given file is absent, runs a processing command, otherwise just inputs it:
 %    \begin{macrocode}
 \makeatletter
@@ -1049,12 +1078,16 @@
       \message{eolang: File "#1" already exists ^^J}%
       \input{#1}}
     {%
-      \ifnum\ShellEscapeStatus=1\else%
-        \message{eolang: The -shell-escape command line
-        option is not provided, most probably compilation
-        will fail now:^^J}%
+      \ifdefined\eolang at noshell%
+        \message{eolang: Shell processing is disabled^^J}%
+      \else%
+        \ifnum\ShellEscapeStatus=1\else%
+          \message{eolang: The -shell-escape command line
+          option is not provided, most probably compilation
+          will fail now:^^J}%
+        \fi%
+        #2%
       \fi%
-      #2%
     }%
 }
 \makeatother
@@ -1070,15 +1103,15 @@
   \def\hash{\eolang at mdfive
     {\eolang at tmpdir/\jobname/phiquation.tex}-\the\inputlineno}%
   \eolang at ifabsent
-    {\eolang at tmpdir/\jobname/\hash-post.tex}
+    {\eolang at tmpdir/\jobname/\hash-phiquation-post.tex}
     {%
       \iexec[null]{cp "\eolang at tmpdir/\jobname/phiquation.tex"
-        "\eolang at tmpdir/\jobname/\hash.tex"}%
+        "\eolang at tmpdir/\jobname/\hash-phiquation.tex"}%
       \message{Start parsing 'phi' at line no. \the\inputlineno^^J}
-      \iexec[trace,stdout=\eolang at tmpdir/\jobname/\hash-post.tex]{
+      \iexec[trace,stdout=\eolang at tmpdir/\jobname/\hash-phiquation-post.tex]{
         perl "\eolang at tmpdir/\jobname-phi.pl"
         '#1'
-        "\eolang at tmpdir/\jobname/\hash.tex"
+        "\eolang at tmpdir/\jobname/\hash-phiquation.tex"
         \ifdefined\eolang at nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi
         \ifdefined\eolang at phiSaveTo > \eolang at phiSaveTo\fi}%
     }%
@@ -1123,6 +1156,7 @@
         perl \eolang at tmpdir/\jobname-phi.pl 'phiq'
         "\eolang at tmpdir/\jobname/\hash-phiq.tex"
         \ifdefined\eolang at nocomments | perl -pe 's/\%.*(\\n|$)//g' \fi}%
+      \message{eolang: Parsed `phiq' at line no. \the\inputlineno^^J}%
     }%
   \ifdefined\eolang at nodollar\else\catcode`\$\active\fi%
 }\makeatother
@@ -1163,6 +1197,11 @@
 % \href{https://ctan.org/pkg/fancyvrb}{fancyvrb}:
 %    \begin{macrocode}
 \makeatletter
+\ifdefined\eolang at noshell
+\message{eolang: Perl script is not going to be created
+  at "\eolang at tmpdir/\jobname-sodg.pl", because of the
+  "noshell" package option^^J}
+\else
 \openin 15=\eolang at tmpdir/\jobname-sodg.pl
 \ifeof 15
 \message{eolang: Perl script is going to be created,
@@ -1448,6 +1487,7 @@
     "\eolang at tmpdir/\jobname-sodg.pl"^^J}
 \fi
 \closein 15
+\fi
 \makeatother
 %    \end{macrocode}
 % \end{macro}
@@ -1590,11 +1630,11 @@
     {\eolang at tmpdir/\jobname/\hash-sodg-post.tex}
     {%
       \iexec[null]{cp "\eolang at tmpdir/\jobname/sodg.tex"
-        "\eolang at tmpdir/\jobname/\hash.tex"}%
+        "\eolang at tmpdir/\jobname/\hash-sodg.tex"}%
       \message{eolang: Start parsing `sodg' at line no. \the\inputlineno^^J}
       \iexec[trace,stdout=\eolang at tmpdir/\jobname/\hash-sodg-post.tex]{
         perl "\eolang at tmpdir/\jobname-sodg.pl"
-        "\eolang at tmpdir/\jobname/\hash.tex"
+        "\eolang at tmpdir/\jobname/\hash-sodg.tex"
         \ifdefined\eolang at nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi
         \ifdefined\eolang at sodgSaveTo > \eolang at sodgSaveTo\fi}%
     }

Modified: trunk/Master/texmf-dist/source/latex/eolang/eolang.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/eolang/eolang.ins	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/texmf-dist/source/latex/eolang/eolang.ins	2024-01-11 21:37:18 UTC (rev 69391)
@@ -1,6 +1,6 @@
 %% (The MIT License)
 %%
-%% Copyright (c) 2021-2023 Yegor Bugayenko
+%% Copyright (c) 2021-2024 Yegor Bugayenko
 %%
 %% Permission is hereby granted, free of charge, to any person obtaining a copy
 %% of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@
 \preamble
 (The MIT License)
 
-Copyright (c) 2021-2023 Yegor Bugayenko
+Copyright (c) 2021-2024 Yegor Bugayenko
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the 'Software'), to deal

Modified: trunk/Master/texmf-dist/tex/latex/eolang/eolang.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/eolang/eolang.sty	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/texmf-dist/tex/latex/eolang/eolang.sty	2024-01-11 21:37:18 UTC (rev 69391)
@@ -7,7 +7,7 @@
 %% eolang.dtx  (with options: `package')
 %% (The MIT License)
 %% 
-%% Copyright (c) 2021-2023 Yegor Bugayenko
+%% Copyright (c) 2021-2024 Yegor Bugayenko
 %% 
 %% Permission is hereby granted, free of charge, to any person obtaining a copy
 %% of this software and associated documentation files (the 'Software'), to deal
@@ -31,7 +31,7 @@
 
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{eolang}
-[2024-01-02 0.17.1 Formulas and Graphs for EO Programming Language]
+[2024-01-11 0.18.0 Formulas and Graphs for EO Programming Language]
 
 
 
@@ -80,11 +80,12 @@
 
 
 
+
 \RequirePackage{stmaryrd}
 \RequirePackage{amsmath}
 \let\Bbbk\relax\RequirePackage{amssymb}
 \RequirePackage{fancyvrb}
-\RequirePackage{iexec}
+\ifdefined\eolang at noshell\else\RequirePackage{iexec}\fi
 
 \RequirePackage{pgfopts}
 \RequirePackage{ifluatex}
@@ -95,25 +96,34 @@
   tmpdir/.default=_eolang\ifxetex-xe\else\ifluatex-lua\fi\fi,
   nocomments/.store in=\eolang at nocomments,
   anonymous/.store in=\eolang at anonymous,
+  noshell/.store in=\eolang at noshell,
   tmpdir
 }
 \ProcessPgfPackageOptions{/eolang}
 
-\RequirePackage{shellesc}
+\makeatletter
+\ifdefined\eolang at noshell\else\RequirePackage{shellesc}\fi
 \IfFileExists
   {\eolang at tmpdir/\jobname}
   {\message{eolang: Temporary directory "\eolang at tmpdir/\jobname"
     already exists^^J}}
-  {%
-    \ifnum\ShellEscapeStatus=1%
-      \iexec[null]{mkdir -p "\eolang at tmpdir/\jobname"}%
-    \else%
+  {
+    \ifdefined\eolang at noshell
       \message{eolang: Temporary directory "\eolang at tmpdir/\jobname"
-        is not created, because -shell-escape is not set, and
-        it doesn't exist, most probably the compilation
-        will fail later^^J}%
-    \fi%
+        is not created, because of the "noshell" package option,
+        most probably the compilation will fail later^^J}
+    \else
+      \ifnum\ShellEscapeStatus=1
+        \iexec[null]{mkdir -p "\eolang at tmpdir/\jobname"}
+      \else
+        \message{eolang: Temporary directory "\eolang at tmpdir/\jobname"
+          is not created, because -shell-escape is not set, and
+          it doesn't exist, most probably the compilation
+          will fail later^^J}
+      \fi
+    \fi
   }
+\makeatother
 
 \makeatletter\newcounter{eolang at lineno}\makeatother
 
@@ -123,6 +133,11 @@
 \makeatother
 
 \makeatletter
+\ifdefined\eolang at noshell
+  \message{eolang: Perl script is not going to be created,
+  at "\eolang at tmpdir/\jobname-phi.pl" because of the "noshell"
+  package option^^J}
+\else
 \openin 15=\eolang at tmpdir/\jobname-phi.pl
 \ifeof 15
 \message{eolang: Perl script is going to be created,
@@ -133,7 +148,7 @@
 $macro = $ARGV[0];
 open(my $fh, '<', $ARGV[1]);
 my $tex; { local $/; $tex = <$fh>; }
-print "% This file is auto-generated by 0.17.1\n";
+print "% This file is auto-generated by 0.18.0\n";
 print '% There are ', length($tex),
   ' chars in the input: ', $ARGV[1], "\n";
 print '% ---', "\n";
@@ -269,7 +284,7 @@
 $tex =~ s/\|([^\|]+)\|/\\textnormal{\\texttt{\1}}{}/g;
 $tex =~ s/\{TEXT(\d+)\}/'\\text{' . @texts[$1] . '}';/ge;
 if ($macro eq 'phiq') {
-  print '$' if ($tex ne '');
+  print '\(' if ($tex ne '');
 } else {
   print '\begin{', $macro, "}\n";
   if (not($align)) {
@@ -286,7 +301,7 @@
 }
 print $tex;
 if ($macro eq 'phiq') {
-  print '$' if ($tex ne '');
+  print '\)' if ($tex ne '');
 } else {
   if (not($align)) {
     if ($gathered) {
@@ -306,6 +321,7 @@
     "\eolang at tmpdir/\jobname-phi.pl"^^J}
 \fi
 \closein 15
+\fi
 \makeatother
 
 \makeatletter
@@ -320,12 +336,16 @@
       \message{eolang: File "#1" already exists ^^J}%
       \input{#1}}
     {%
-      \ifnum\ShellEscapeStatus=1\else%
-        \message{eolang: The -shell-escape command line
-        option is not provided, most probably compilation
-        will fail now:^^J}%
+      \ifdefined\eolang at noshell%
+        \message{eolang: Shell processing is disabled^^J}%
+      \else%
+        \ifnum\ShellEscapeStatus=1\else%
+          \message{eolang: The -shell-escape command line
+          option is not provided, most probably compilation
+          will fail now:^^J}%
+        \fi%
+        #2%
       \fi%
-      #2%
     }%
 }
 \makeatother
@@ -334,15 +354,15 @@
   \def\hash{\eolang at mdfive
     {\eolang at tmpdir/\jobname/phiquation.tex}-\the\inputlineno}%
   \eolang at ifabsent
-    {\eolang at tmpdir/\jobname/\hash-post.tex}
+    {\eolang at tmpdir/\jobname/\hash-phiquation-post.tex}
     {%
       \iexec[null]{cp "\eolang at tmpdir/\jobname/phiquation.tex"
-        "\eolang at tmpdir/\jobname/\hash.tex"}%
+        "\eolang at tmpdir/\jobname/\hash-phiquation.tex"}%
       \message{Start parsing 'phi' at line no. \the\inputlineno^^J}
-      \iexec[trace,stdout=\eolang at tmpdir/\jobname/\hash-post.tex]{
+      \iexec[trace,stdout=\eolang at tmpdir/\jobname/\hash-phiquation-post.tex]{
         perl "\eolang at tmpdir/\jobname-phi.pl"
         '#1'
-        "\eolang at tmpdir/\jobname/\hash.tex"
+        "\eolang at tmpdir/\jobname/\hash-phiquation.tex"
         \ifdefined\eolang at nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi
         \ifdefined\eolang at phiSaveTo > \eolang at phiSaveTo\fi}%
     }%
@@ -379,6 +399,7 @@
         perl \eolang at tmpdir/\jobname-phi.pl 'phiq'
         "\eolang at tmpdir/\jobname/\hash-phiq.tex"
         \ifdefined\eolang at nocomments | perl -pe 's/\%.*(\\n|$)//g' \fi}%
+      \message{eolang: Parsed `phiq' at line no. \the\inputlineno^^J}%
     }%
   \ifdefined\eolang at nodollar\else\catcode`\$\active\fi%
 }\makeatother
@@ -392,6 +413,11 @@
 \fi
 
 \makeatletter
+\ifdefined\eolang at noshell
+\message{eolang: Perl script is not going to be created
+  at "\eolang at tmpdir/\jobname-sodg.pl", because of the
+  "noshell" package option^^J}
+\else
 \openin 15=\eolang at tmpdir/\jobname-sodg.pl
 \ifeof 15
 \message{eolang: Perl script is going to be created,
@@ -677,6 +703,7 @@
     "\eolang at tmpdir/\jobname-sodg.pl"^^J}
 \fi
 \closein 15
+\fi
 \makeatother
 
 \setcounter{FancyVerbLine}{0}
@@ -789,11 +816,11 @@
     {\eolang at tmpdir/\jobname/\hash-sodg-post.tex}
     {%
       \iexec[null]{cp "\eolang at tmpdir/\jobname/sodg.tex"
-        "\eolang at tmpdir/\jobname/\hash.tex"}%
+        "\eolang at tmpdir/\jobname/\hash-sodg.tex"}%
       \message{eolang: Start parsing `sodg' at line no. \the\inputlineno^^J}
       \iexec[trace,stdout=\eolang at tmpdir/\jobname/\hash-sodg-post.tex]{
         perl "\eolang at tmpdir/\jobname-sodg.pl"
-        "\eolang at tmpdir/\jobname/\hash.tex"
+        "\eolang at tmpdir/\jobname/\hash-sodg.tex"
         \ifdefined\eolang at nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi
         \ifdefined\eolang at sodgSaveTo > \eolang at sodgSaveTo\fi}%
     }

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2024-01-11 21:37:18 UTC (rev 69391)
@@ -3734,6 +3734,7 @@
  'dviinfox'		=> '\.pl$',
  'easydtx'		=> '\.pl$',
  'ebong'                => '\.py$',
+ 'eolang'		=> '\.pl$',
  'epstopdf'             => 'epstopdf\.pl',      # doscripts() does r*
  'exceltex'             => 'exceltex$',
  'fig4latex'            => 'fig4latex',
@@ -3878,6 +3879,7 @@
  'dosepsbin'            => 'dosepsbin.man',
  'dviasm'		=> '\.1$',
  'easydtx'		=> '\.1$',
+ 'eolang'		=> '\.1$',
  'epstopdf'             => 'r?epstopdf.1|epstopdf.man1.pdf', # don't keep pdf
  'findhyph'             => 'findhyph.1',
  'fontools'             => '\.1$',

Modified: trunk/Master/tlpkg/tlpsrc/eolang.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/eolang.tlpsrc	2024-01-11 21:34:07 UTC (rev 69390)
+++ trunk/Master/tlpkg/tlpsrc/eolang.tlpsrc	2024-01-11 21:37:18 UTC (rev 69391)
@@ -1,3 +1,5 @@
+binpattern f bin/${ARCH}/${PKGNAME}
+#
 hard stmaryrd
 hard amsmath
 hard amsfonts
@@ -4,4 +6,5 @@
 hard iexec
 hard pgf
 hard fancyvrb
-hard pgfopts
\ No newline at end of file
+hard pgfopts
+



More information about the tex-live-commits mailing list.