texlive[51060] Master/texmf-dist: l3kernel (9may19)

commits+karl at tug.org commits+karl at tug.org
Thu May 9 23:21:40 CEST 2019


Revision: 51060
          http://tug.org/svn/texlive?view=revision&revision=51060
Author:   karl
Date:     2019-05-09 23:21:40 +0200 (Thu, 09 May 2019)
Log Message:
-----------
l3kernel (9may19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3body.tex
    trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins
    trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-box.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-color.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-draw.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3format.ins
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def

Added Paths:
-----------
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-graphics.dtx

Removed Paths:
-------------
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-image.dtx

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2019-05-09 21:21:40 UTC (rev 51060)
@@ -7,6 +7,17 @@
 
 ## [Unreleased]
 
+## [2019-05-09]
+
+### Added
+
+- Experimental driver-level interfaces for image inclusion
+- Experimental `\ior_shell_open:Nn`
+
+### Fixed
+
+- Some issues in `dvisvgm` driver
+
 ## [2019-05-07]
 
 ### Added
@@ -396,7 +407,8 @@
 - Step func­tions have been added for dim vari­ables,
   e.g. `\dim_step_in­line:nnnn`
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2019-05-07...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2019-05-09...HEAD
+[2019-05-09]: https://github.com/latex3/latex3/compare/2019-05-07...2019-05-09
 [2019-05-07]: https://github.com/latex3/latex3/compare/2019-05-05...2019-05-07
 [2019-05-05]: https://github.com/latex3/latex3/compare/2019-05-03...2019-05-05
 [2019-05-03]: https://github.com/latex3/latex3/compare/2019-04-21...2019-05-03

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2019-05-09 21:21:40 UTC (rev 51060)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2019-05-07
+Release 2019-05-09
 
 Overview
 --------

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

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2019-05-09 21:21:40 UTC (rev 51060)
@@ -54,7 +54,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2019-05-07}
+\date{Released 2019-05-09}
 
 \pagenumbering{roman}
 \maketitle

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

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2019-05-09 21:21:40 UTC (rev 51060)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2019-05-07}
+\date{Released 2019-05-09}
 
 \begin{document}
 

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2019-05-09 21:21:40 UTC (rev 51060)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2019-05-07}
+\date{Released 2019-05-09}
 
 \newcommand{\TF}{\textit{(TF)}}
 

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2019-05-09 21:21:40 UTC (rev 51060)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2019-05-07}
+\date{Released 2019-05-09}
 
 \newcommand{\TF}{\textit{(TF)}}
 

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2019-05-09 21:21:40 UTC (rev 51060)
@@ -53,7 +53,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2019-05-07}
+\date{Released 2019-05-09}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3body.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/source3body.tex	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3body.tex	2019-05-09 21:21:40 UTC (rev 51060)
@@ -491,7 +491,7 @@
     l3drivers-color.dtx ,
     l3drivers-box.dtx ,
     l3drivers-draw.dtx ,
-    l3drivers-image.dtx ,
+    l3drivers-graphics.dtx ,
     l3drivers-pdf.dtx
   }
 \ExplSyntaxOff

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -23,7 +23,7 @@
 % for those people who are interested.
 %
 %<*driver|generic|package>
-\def\ExplFileDate{2019-05-07}%
+\def\ExplFileDate{2019-05-09}%
 %</driver|generic|package>
 %<*driver>
 \documentclass[full]{l3doc}
@@ -51,7 +51,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins	2019-05-09 21:21:40 UTC (rev 51060)
@@ -120,13 +120,13 @@
   {
     \file{l3dvipdfmx.def}
       {
-        \from{l3drivers.dtx}       {package,dvipdfmx}
-        \from{l3drivers-basics.dtx}{package,dvipdfmx}
-        \from{l3drivers-color.dtx} {package,dvipdfmx}
-        \from{l3drivers-box.dtx}   {package,dvipdfmx}
-        \from{l3drivers-draw.dtx}  {package,dvipdfmx}
-        \from{l3drivers-image.dtx} {package,dvipdfmx}
-        \from{l3drivers-pdf.dtx}   {package,dvipdfmx}
+        \from{l3drivers.dtx}         {package,dvipdfmx}
+        \from{l3drivers-basics.dtx}  {package,dvipdfmx}
+        \from{l3drivers-color.dtx}   {package,dvipdfmx}
+        \from{l3drivers-box.dtx}     {package,dvipdfmx}
+        \from{l3drivers-draw.dtx}    {package,dvipdfmx}
+        \from{l3drivers-graphics.dtx}{package,dvipdfmx}
+        \from{l3drivers-pdf.dtx}     {package,dvipdfmx}
       }
   }
 \generate
@@ -133,13 +133,13 @@
   {
     \file{l3dvips.def}
       {
-        \from{l3drivers.dtx}       {package,dvips}
-        \from{l3drivers-basics.dtx}{package,dvips}
-        \from{l3drivers-color.dtx} {package,dvips}
-        \from{l3drivers-box.dtx}   {package,dvips}
-        \from{l3drivers-draw.dtx}  {package,dvips}
-        \from{l3drivers-image.dtx} {package,dvips}
-        \from{l3drivers-pdf.dtx}   {package,dvips}
+        \from{l3drivers.dtx}         {package,dvips}
+        \from{l3drivers-basics.dtx}  {package,dvips}
+        \from{l3drivers-color.dtx}   {package,dvips}
+        \from{l3drivers-box.dtx}     {package,dvips}
+        \from{l3drivers-draw.dtx}    {package,dvips}
+        \from{l3drivers-graphics.dtx}{package,dvips}
+        \from{l3drivers-pdf.dtx}     {package,dvips}
       }
   }
 \generate
@@ -146,13 +146,13 @@
   {
     \file{l3dvisvgm.def}
       {
-        \from{l3drivers.dtx}       {package,dvisvgm}
-        \from{l3drivers-basics.dtx}{package,dvisvgm}
-        \from{l3drivers-color.dtx} {package,dvisvgm}
-        \from{l3drivers-box.dtx}   {package,dvisvgm}
-        \from{l3drivers-draw.dtx}  {package,dvisvgm}
-        \from{l3drivers-image.dtx} {package,dvisvgm}
-        \from{l3drivers-pdf.dtx}   {package,dvisvgm}
+        \from{l3drivers.dtx}         {package,dvisvgm}
+        \from{l3drivers-basics.dtx}  {package,dvisvgm}
+        \from{l3drivers-color.dtx}   {package,dvisvgm}
+        \from{l3drivers-box.dtx}     {package,dvisvgm}
+        \from{l3drivers-draw.dtx}    {package,dvisvgm}
+        \from{l3drivers-graphics.dtx}{package,dvisvgm}
+        \from{l3drivers-pdf.dtx}     {package,dvisvgm}
       }
   }
 \generate
@@ -159,13 +159,13 @@
   {
     \file{l3pdfmode.def}
       {
-        \from{l3drivers.dtx}       {package,pdfmode}
-        \from{l3drivers-basics.dtx}{package,pdfmode}
-        \from{l3drivers-color.dtx} {package,pdfmode}
-        \from{l3drivers-box.dtx}   {package,pdfmode}
-        \from{l3drivers-draw.dtx}  {package,pdfmode}
-        \from{l3drivers-image.dtx} {package,pdfmode}
-        \from{l3drivers-pdf.dtx}   {package,pdfmode}
+        \from{l3drivers.dtx}         {package,pdfmode}
+        \from{l3drivers-basics.dtx}  {package,pdfmode}
+        \from{l3drivers-color.dtx}   {package,pdfmode}
+        \from{l3drivers-box.dtx}     {package,pdfmode}
+        \from{l3drivers-draw.dtx}    {package,pdfmode}
+        \from{l3drivers-graphics.dtx}{package,pdfmode}
+        \from{l3drivers-pdf.dtx}     {package,pdfmode}
       }
   }
 \generate
@@ -172,13 +172,13 @@
   {
     \file{l3xdvipdfmx.def}
       {
-        \from{l3drivers.dtx}       {package,xdvipdfmx}
-        \from{l3drivers-basics.dtx}{package,xdvipdfmx}
-        \from{l3drivers-color.dtx} {package,xdvipdfmx}
-        \from{l3drivers-box.dtx}   {package,xdvipdfmx}
-        \from{l3drivers-draw.dtx}  {package,xdvipdfmx}
-        \from{l3drivers-image.dtx} {package,xdvipdfmx}
-        \from{l3drivers-pdf.dtx}   {package,xdvipdfmx}
+        \from{l3drivers.dtx}         {package,xdvipdfmx}
+        \from{l3drivers-basics.dtx}  {package,xdvipdfmx}
+        \from{l3drivers-color.dtx}   {package,xdvipdfmx}
+        \from{l3drivers-box.dtx}     {package,xdvipdfmx}
+        \from{l3drivers-draw.dtx}    {package,xdvipdfmx}
+        \from{l3drivers-graphics.dtx}{package,xdvipdfmx}
+        \from{l3drivers-pdf.dtx}     {package,xdvipdfmx}
       }
   }
 

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %
@@ -356,6 +356,23 @@
 %   \end{verbatim}
 % \end{function}
 %
+% \begin{function}[added = 2019-05-08]{\ior_shell_open:Nn}
+%   \begin{syntax}
+%     \cs{ior_shell_open:nN} \meta{stream} \Arg{shell~command}
+%   \end{syntax}
+%   Opens the \emph{pseudo}-file created by the output of the
+%   \meta{shell command} for reading using \meta{stream} as the
+%   control sequence for access. If the \meta{stream} was already
+%   open it is closed before the new operation begins. The
+%   \meta{stream} is available for access immediately and will remain
+%   allocated to \meta{shell command} until a \cs{ior_close:N} instruction
+%   is given or the \TeX{} run ends.
+%   If piped system calls are disabled an error is raised.
+%
+%   For details of handling of the \meta{shell command}, see
+%   \cs{sys_shell_get:nnN(TF)}.
+% \end{function}
+%
 % \section{Additions to \pkg{l3flag}}
 %
 % \begin{function}[EXP, added = 2018-04-02]{\flag_raise_if_clear:n}
@@ -2326,6 +2343,41 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \subsection{Additions to \pkg{l3file}}
+%
+%    \begin{macrocode}
+%<@@=ior>
+%    \end{macrocode}
+%
+% \begin{macro}{\ior_shell_open:Nn}
+% \begin{macro}{\@@_shell_open:nN}
+%   Actually much easier than either the standard open or input versions!
+%    \begin{macrocode}
+\cs_new_protected:Npn \ior_shell_open:Nn #1#2
+  {
+    \sys_if_shell:TF
+      { \exp_args:No \@@_shell_open:nN { \tl_to_str:n {#2} } #1 }
+      { \__kernel_msg_error:nn { kernel } { pipe-failed } }
+  }
+\cs_new_protected:Npn \@@_shell_open:nN #1#2
+  {
+    \tl_if_in:nnTF {#1} { " }
+      {
+        \__kernel_msg_error:nnx
+          { kernel } { quote-in-shell } {#1}
+      }
+      { \__kernel_ior_open:Nn #2 { "|#1" } }
+  }
+\__kernel_msg_new:nnnn { kernel } { pipe-failed }
+  { Cannot~run~piped~system~commands. }
+  {
+    LaTeX~tried~to~call~a~system~process~but~this~was~not~possible.\\
+    Try~the~"--shell-escape"~(or~"--enable-pipes")~option.
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \subsection{Additions to \pkg{l3tl}}
 %
 % \subsubsection{Unicode case changing}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -79,7 +79,7 @@
 %
 % \title{The \cls{l3doc} class}
 % \author{\Team}
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 % \maketitle
 % \tableofcontents
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-basics.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-basics.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %
@@ -117,6 +117,13 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{variable}{\l_@@_internal_box}
+%   A scratch box.
+%    \begin{macrocode}
+\box_new:N \l_@@_internal_box
+%    \end{macrocode}
+% \end{variable}
+%
 % \subsection{\texttt{dvips} driver}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-box.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-box.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-color.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-color.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-draw.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-draw.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %
@@ -1223,7 +1223,7 @@
 %  \texttt{dvips}. Here, we are only allowed RGB colors so there is some
 %  conversion to do.
 %    \begin{macrocode}
-\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
+\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
   {
     \use:x
       {
@@ -1234,18 +1234,18 @@
       }
   }
 \cs_new_eq:NN \driver_draw_color_stroke_cmyk:nnnn \driver_color_cmyk:nnnn
-\cs_new_protected:Npn \driver_draw_color_gray:n #1
+\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
   {
     \use:x
       {
         \@@_draw_color_gray_aux:n
-          { \fp_eval:n { 100 * (#3) } }
+          { \fp_eval:n { 100 * (#1) } }
       }
   }
 \cs_new_protected:Npn \@@_draw_color_gray_aux:n #1
   { \@@_draw_color_fill:nnn {#1} {#1} {#1} }
 \cs_new_eq:NN \driver_draw_color_stroke_gray:n \driver_color_gray:n
-\cs_new_protected:Npn \driver_draw_color_rgb:nnn #1#2#3
+\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
   {
     \use:x
       {

Added: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-graphics.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-graphics.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -0,0 +1,557 @@
+% \iffalse meta-comment
+%
+%% File: l3drivers-graphics.dtx
+%
+% Copyright (C) 2019 The LaTeX3 Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    https://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
+%<*driver>
+\documentclass[full,kernel]{l3doc}
+\begin{document}
+  \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{^^A
+%   The \textsf{l3drivers-graphics} package\\ Driver graphics support^^A
+% }
+%
+% \author{^^A
+%  The \LaTeX3 Project\thanks
+%    {^^A
+%      E-mail:
+%        \href{mailto:latex-team at latex-project.org}
+%          {latex-team at latex-project.org}^^A
+%    }^^A
+% }
+%
+% \date{Released 2019-05-09}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{l3drivers-graphics} Implementation}
+%
+%    \begin{macrocode}
+%<*initex|package>
+%<@@=driver>
+%    \end{macrocode}
+%
+% \subsection{\texttt{dvips} driver}
+%
+%    \begin{macrocode}
+%<*dvips>
+%    \end{macrocode}
+%
+% \begin{macro}{\driver_graphics_getbb_eps:n}
+%   Simply use the generic function.
+%    \begin{macrocode}
+%<*initex>
+\use:n
+%</initex>
+%<*package>
+\AtBeginDocument
+%</package>
+  { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\driver_graphics_include_eps:n}
+%  The special syntax is relatively clear here: remember we need PostScript
+%  sizes here.
+%    \begin{macrocode}
+\cs_new_protected:Npn \driver_graphics_include_eps:n #1
+  {
+    \@@_literal:x
+      {
+        PSfile = #1 \c_space_tl
+        llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
+        lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
+        urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
+        ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</dvips>
+%    \end{macrocode}
+%
+% \subsection{\texttt{pdfmode} driver}
+%
+%    \begin{macrocode}
+%<*pdfmode>
+%    \end{macrocode}
+%
+% \begin{variable}{\l_@@_graphics_attr_tl}
+%   In PDF mode, additional attributes of an image (such as page number) are
+%   needed both to obtain the bounding box and when inserting the image: this
+%   occurs as the image dictionary approach means they are read as part of
+%   the bounding box operation. As such, it is easier to track additional
+%   attributes using a dedicated |tl| rather than build up the same data
+%   twice.
+%    \begin{macrocode}
+\tl_new:N \l_@@_graphics_attr_tl
+%    \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}
+%   {
+%     \driver_graphics_getbb_jpg:n,
+%     \driver_graphics_getbb_pdf:n,
+%     \driver_graphics_getbb_png:n
+%   }
+% \begin{macro}
+%   {\@@_graphics_getbb_auxi:n, \@@_graphics_getbb_auxii:n}
+%   Getting the bounding box here requires us to box up the image and
+%   measure it. To deal with the difference in feature support in bitmap
+%   and vector images but keeping the common parts, there is a little work
+%   to do in terms of auxiliaries. The key here is to notice that we need
+%   two forms of the attributes: a \enquote{short} set to allow us to
+%   track for caching, and the full form to pass to the primitive.
+%    \begin{macrocode}
+\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
+  {
+    \int_zero:N \l_graphics_page_int
+    \tl_clear:N \l_graphics_pagebox_tl
+    \tl_set:Nx \l_@@_graphics_attr_tl
+      {
+        \tl_if_empty:NF \l_graphics_decodearray_tl
+          { :D \l_graphics_decodearray_tl }
+        \bool_if:NT \l_graphics_interpolate_bool
+          { :I }
+      }
+    \tl_clear:N \l_@@_graphics_attr_tl
+    \@@_graphics_getbb_auxi:n {#1}
+  }
+\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
+\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
+  {
+    \tl_clear:N \l_graphics_decodearray_tl
+    \bool_set_false:N \l_graphics_interpolate_bool
+    \tl_set:Nx \l_@@_graphics_attr_tl
+      {
+        : \l_graphics_pagebox_tl
+        \int_compare:nNnT \l_graphics_page_int > 1
+          { :P \int_use:N \l_graphics_page_int }
+      }
+    \@@_graphics_getbb_auxi:n {#1}
+  }
+\cs_new_protected:Npn \@@_graphics_getbb_auxi:n #1
+  {
+    \graphics_bb_restore:xF { #1 \l_@@_graphics_attr_tl }
+      { \@@_graphics_getbb_auxii:n {#1} }
+  }
+%    \begin{macrocode}
+%   Measuring the image is done by boxing up: for PDF images we could
+%   use |\tex_pdfximagebbox:D|, but if doesn't work for other types.
+%   As the box always starts at $(0,0)$ there is no need to worry about
+%   the lower-left position.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_graphics_getbb_auxii:n #1
+  {
+    \tex_immediate:D \tex_pdfximage:D
+      \bool_lazy_or:nnT
+        { \l_graphics_interpolate_bool }
+        { ! \tl_if_empty_p:N \l_graphics_decodearray_tl }
+        {
+          attr ~
+            {
+              \tl_if_empty:NF \l_graphics_decodearray_tl
+                { /Decode~[ \l_graphics_decodearray_tl ] }
+              \bool_if:NT \l_graphics_interpolate_bool
+                { /Interpolate~true }
+            }
+        }
+      \int_compare:nNnT \l_graphics_page_int > 0
+        { page ~ \int_use:N \l_graphics_page_int }
+      \tl_if_empty:NF \l_graphics_pagebox_tl
+        { \l_graphics_pagebox_tl }
+      {#1}
+    \hbox_set:Nn \l_@@_internal_box
+      { \tex_pdfrefximage:D \tex_pdflastximage:D }
+    \dim_set:Nn \l_graphics_urx_dim { \box_wd:N \l_@@_internal_box }
+    \dim_set:Nn \l_graphics_ury_dim { \box_ht:N \l_@@_internal_box }
+    \int_const:cn { c_@@_graphics_ #1 \l_@@_graphics_attr_tl _int }
+      { \tex_the:D \tex_pdflastximage:D }
+    \graphics_bb_save:x { #1 \l_@@_graphics_attr_tl }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}
+%   {
+%     \driver_graphics_include_jpg:n,
+%     \driver_graphics_include_pdf:n,
+%     \driver_graphics_include_png:n
+%   }
+%   Images are already loaded for the measurement part of the code, so
+%   inclusion is straight-forward, with only any attributes to worry about. The
+%   latter carry through from determination of the bounding box.
+%    \begin{macrocode}
+\cs_new_protected:Npn \driver_graphics_include_jpg:n #1
+  {
+    \tex_pdfrefximage:D
+      \int_use:c { c_@@_graphics_ #1 \l_@@_graphics_attr_tl _int }
+  }
+\cs_new_eq:NN \driver_graphics_include_pdf:n \driver_graphics_include_jpg:n
+\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</pdfmode>
+%    \end{macrocode}
+%
+% \subsection{\texttt{dvipdfmx} driver}
+%
+%    \begin{macrocode}
+%<*dvipdfmx|xdvipdfmx>
+%    \end{macrocode}
+%
+% \begin{macro}
+%   {
+%     \driver_graphics_getbb_eps:n, \driver_graphics_getbb_jpg:n,
+%     \driver_graphics_getbb_pdf:n, \driver_graphics_getbb_png:n
+%   }
+%   Simply use the generic functions: only for \texttt{dvipdfmx} in the
+%   extraction cases.
+%    \begin{macrocode}
+%<*initex>
+\use:n
+%</initex>
+%<*package>
+\AtBeginDocument
+%</package>
+  { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n }
+%<*dvipdfmx>
+\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
+  {
+    \int_zero:N \l_graphics_page_int
+    \tl_clear:N \l_graphics_pagebox_tl
+    \graphics_extract_bb:n {#1}
+  }
+\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
+\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
+  {
+    \tl_clear:N \l_graphics_decodearray_tl
+    \bool_set_false:N \l_graphics_interpolate_bool
+    \graphics_extract_bb:n {#1}
+  }
+%</dvipdfmx>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{variable}{\g_@@_graphics_int}
+%   Used to track the object number associated with each image.
+%    \begin{macrocode}
+\int_new:N \g_@@_graphics_int
+%    \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}
+%   {
+%     \driver_graphics_include_eps:n, \driver_graphics_include_jpg:n,
+%     \driver_graphics_include_pdf:n, \driver_graphics_include_png:n
+%   }
+%  \begin{macro}{\@@_graphics_include_auxi:nn}
+%  \begin{macro}{\@@_graphics_include_auxii:nnn, \@@_graphics_include_auxii:xnn}
+%  \begin{macro}{\@@_graphics_include_auxiii:nnn}
+%   The special syntax depends on the file type. There is a difference in
+%   how PDF images are best handled between |dvipdfmx| and |xdvipdfmx|: for
+%   the latter it is better to use the primitive route. The relevant code for
+%   that is included later in this file.
+%    \begin{macrocode}
+\cs_new_protected:Npn \driver_graphics_include_eps:n #1
+  {
+    \@@_literal:x
+      {
+        PSfile = #1 \c_space_tl
+        llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
+        lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
+        urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
+        ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
+      }
+  }
+\cs_new_protected:Npn \driver_graphics_include_jpg:n #1
+  { \@@_graphics_include_auxi:nn {#1} { image } }
+\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n
+%<*dvipdfmx>
+\cs_new_protected:Npn \driver_graphics_include_pdf:n #1
+  { \@@_graphics_include_auxi:nn {#1} { epdf } }
+%</dvipdfmx>
+%    \end{macrocode}
+%   Image inclusion is set up to use the fact that each image is stored in
+%   the PDF as an XObject. This means that we can include repeated images
+%   only once and refer to them. To allow that, track the nature of each
+%   image: much the same as for the direct PDF mode case.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_graphics_include_auxi:nn #1#2
+  {
+    \@@_graphics_include_auxii:xnn
+      {
+        \tl_if_empty:NF \l_graphics_pagebox_tl
+          { : \l_graphics_pagebox_tl }
+        \int_compare:nNnT \l_graphics_page_int > 1
+          { :P \int_use:N \l_graphics_page_int }
+        \tl_if_empty:NF \l_graphics_decodearray_tl
+          { :D \l_graphics_decodearray_tl }
+        \bool_if:NT \l_graphics_interpolate_bool
+           { :I }
+      }
+      {#1} {#2}
+  }
+\cs_new_protected:Npn \@@_graphics_include_auxii:nnn #1#2#3
+  {
+    \int_if_exist:cTF { c_@@_graphics_ #2#1 _int }
+      {
+        \@@_literal:x
+          { pdf:usexobj~@image \int_use:c { c_@@_graphics_ #2#1 _int } }
+      }
+      { \@@_graphics_include_auxiii:nnn {#2} {#1} {#3} }
+  }
+\cs_generate_variant:Nn \@@_graphics_include_auxii:nnn { x }
+%    \end{macrocode}
+%  Inclusion using the specials is relatively straight-forward, but there
+%  is one wrinkle. To get the |pagebox| correct for PDF images in all cases,
+%  it is necessary to provide both that information and the |bbox| argument:
+%  odd things happen otherwise!
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_graphics_include_auxiii:nnn #1#2#3
+  {
+    \int_gincr:N \g_@@_graphics_int
+    \int_const:cn { c_@@_graphics_ #1#2 _int } { \g_@@_graphics_int }
+    \@@_literal:x
+      {
+        pdf:#3~
+        @image \int_use:c { c_@@_graphics_ #1#2 _int } ~
+        \int_compare:nNnT \l_graphics_page_int > 1
+          { page ~ \int_use:N \l_graphics_page_int \c_space_tl }
+        \tl_if_empty:NF \l_graphics_pagebox_tl
+          {
+            pagebox ~ \l_graphics_pagebox_tl \c_space_tl
+            bbox ~
+              \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_ury_dim \c_space_tl
+          }
+        (#1)
+        \bool_lazy_or:nnT
+          { \l_graphics_interpolate_bool }
+          { ! \tl_if_empty_p:N \l_graphics_decodearray_tl }
+          {
+            <<
+              \tl_if_empty:NF \l_graphics_decodearray_tl
+                { /Decode~[ \l_graphics_decodearray_tl ] }
+              \bool_if:NT \l_graphics_interpolate_bool
+                { /Interpolate~true> }
+            >>
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</dvipdfmx|xdvipdfmx>
+%    \end{macrocode}
+%
+% \subsection{\texttt{xdvipdfmx} driver}
+%
+%    \begin{macrocode}
+%<*xdvipdfmx>
+%    \end{macrocode}
+%
+% \subsubsection{Images}
+%
+% \begin{macro}
+%   {
+%     \driver_graphics_getbb_jpg:n,
+%     \driver_graphics_getbb_pdf:n,
+%     \driver_graphics_getbb_png:n
+%   }
+% \begin{macro}{\@@_graphics_getbb_auxi:nN}
+% \begin{macro}{\@@_graphics_getbb_auxii:nnN, \@@_graphics_getbb_auxii:VnN}
+% \begin{macro}{\@@_graphics_getbb_auxiii:nNnn}
+% \begin{macro}{\@@_graphics_getbb_auxiv:nnNnn, \@@_graphics_getbb_auxiv:VnNnn}
+% \begin{macro}{\@@_graphics_getbb_auxv:nNnn, \@@_graphics_getbb_auxv:nNnn}
+% \begin{macro}[EXP]{\@@_graphics_getbb_pagebox:w}
+%   For \texttt{xdvipdfmx}, there are two primitives that allow us to obtain
+%   the bounding box without needing \texttt{extractbb}. The only complexity
+%   is passing the various minor variations to a common core process. The
+%   \XeTeX{} primitive omits the text |box| from the page box specification,
+%   so there is also some \enquote{trimming} to do here.
+%    \begin{macrocode}
+\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
+  {
+    \int_zero:N \l_graphics_page_int
+    \tl_clear:N \l_graphics_pagebox_tl
+    \@@_graphics_getbb_auxi:nN {#1} \tex_XeTeXpicfile:D
+  }
+\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
+\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
+  {
+    \tl_clear:N \l_graphics_decodearray_tl
+    \bool_set_false:N \l_graphics_interpolate_bool
+    \@@_graphics_getbb_auxi:nN {#1} \tex_XeTeXpdffile:D
+  }
+\cs_new_protected:Npn \@@_graphics_getbb_auxi:nN #1#2
+  {
+    \int_compare:nNnTF \l_graphics_page_int > 1
+      { \@@_graphics_getbb_auxii:VnN \l_graphics_page_int {#1} #2  }
+      { \@@_graphics_getbb_auxiii:nNnn {#1} #2 { :P 1 } { page 1 } }
+  }
+\cs_new_protected:Npn \@@_graphics_getbb_auxii:nnN #1#2#3
+  { \@@_graphics_getbb_auxiii:nNnn {#2} #3 { :P #1 } { page #1 } }
+\cs_generate_variant:Nn \@@_graphics_getbb_auxii:nnN { V }
+\cs_new_protected:Npn \@@_graphics_getbb_auxiii:nNnn #1#2#3#4
+  {
+    \tl_if_empty:NTF \l_graphics_pagebox_tl
+      { \@@_graphics_getbb_auxiv:VnNnn \l_graphics_pagebox_tl }
+      { \@@_graphics_getbb_auxv:nNnn }
+      {#1} #2 {#3} {#4}
+  }
+\cs_new_protected:Npn \@@_graphics_getbb_auxiv:nnNnn #1#2#3#4#5
+  {
+    \use:x
+      {
+        \@@_graphics_getbb_auxv:nNnn {#2} #3 { : #1 #4 }
+          { #5 ~ \@@_graphics_getbb_pagebox:w #1 }
+      }
+  }
+\cs_generate_variant:Nn \@@_graphics_getbb_auxiv:nnNnn { V }
+\cs_new_protected:Npn \@@_graphics_getbb_auxv:nNnn #1#2#3#4
+  {
+    \graphics_bb_restore:nF {#1#3}
+      { \@@_graphics_getbb_auxvi:nNnn {#1} #2 {#3} {#4} }
+  }
+\cs_new_protected:Npn \@@_graphics_getbb_auxvi:nNnn #1#2#3#4
+  {
+    \hbox_set:Nn \l_@@_internal_box { #2 #1 ~ #4 }
+    \dim_set:Nn \l_graphics_urx_dim { \box_wd:N \l_@@_internal_box }
+    \dim_set:Nn \l_graphics_ury_dim { \box_ht:N \l_@@_internal_box }
+    \graphics_bb_save:n {#1#3}
+  }
+\cs_new:Npn \@@_graphics_getbb_pagebox:w #1 box {#1}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\driver_graphics_include_pdf:n}
+% \begin{macro}{\@@_graphics_include_bitmap_quote:w}
+%   For PDF images, properly supporting the |pagebox| concept in \XeTeX{}
+%   is best done using the |\tex_XeTeXpdffile:D| primitive. The syntax here
+%   is the same as for the image measurement part, although we know at this
+%   stage that there must be some valid setting for \cs{l_graphics_pagebox_tl}.
+%    \begin{macrocode}
+\cs_new_protected:Npn \driver_graphics_include_pdf:n #1
+  {
+    \tex_XeTeXpdffile:D
+      \@@_graphics_include_pdf_quote:w #1 "#1" \q_stop \c_space_tl
+      \int_compare:nNnT \l_graphics_page_int > 0
+        { page ~ \int_use:N \l_graphics_page_int \c_space_tl }
+        \exp_after:wN \@@_graphics_getbb_pagebox:w \l_graphics_pagebox_tl
+  }
+\cs_new:Npn \@@_graphics_include_pdf_quote:w #1 " #2 " #3 \q_stop
+  { " #2 " }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</xdvipdfmx>
+%    \end{macrocode}
+%
+% \subsection{\texttt{dvisvgm} driver}
+%
+%    \begin{macrocode}
+%<*dvisvgm>
+%    \end{macrocode}
+%
+% \begin{macro}{\driver_graphics_getbb_png:n, \driver_graphics_getbb_jpg:n}
+%   These can be included by extracting the bounding box data.
+%    \begin{macrocode}
+%<*initex>
+\use:n
+%</initex>
+%<*package>
+\AtBeginDocument
+%</package>
+  {
+    \cs_new_eq:NN \driver_graphics_getbb_png:n \graphics_extract_bb:n
+    \cs_new_eq:NN \driver_graphics_getbb_jpg:n \graphics_extract_bb:n
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\driver_graphics_include_png:n, \driver_graphics_include_jpg:n}
+% \begin{macro}{\@@_graphics_include_bitmap_quote:w}
+%   The driver here has built-in support for basic image inclusion (see
+%   \texttt{dvisvgm.def} for a more complex approach, needed if clipping,
+%   \emph{etc.}, is covered at the image driver level). The only issue is
+%   that |#1| must be quote-corrected. The \texttt{dvisvgm:img} operation
+%   quotes the file name, but if it is already quoted (contains spaces)
+%   then we have an issue: we simply strip off any quotes as a result.
+%    \begin{macrocode}
+\cs_new_protected:Npn \driver_graphics_include_png:n #1
+  {
+     \@@_literal:x
+       {
+         dvisvgm:img~
+         \dim_to_decimal:n { \l_graphics_ury_dim } ~
+         \dim_to_decimal:n { \l_graphics_ury_dim } ~
+         \@@_graphics_include_bitmap_quote:w #1 " #1 " \q_stop
+       }
+  }
+\cs_new_eq:NN \driver_graphics_include_jpg:n \driver_graphics_include_png:n
+\cs_new:Npn \@@_graphics_include_bitmap_quote:w #1 " #2 " #3 \q_stop
+  { " #2 " }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</dvisvgm>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</initex|package>
+%    \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex


Property changes on: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-graphics.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-image.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-image.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-image.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -1,504 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: l3drivers-image.dtx
-%
-% Copyright (C) 2011-2019 The LaTeX3 Project
-%
-% It may be distributed and/or modified under the conditions of the
-% LaTeX Project Public License (LPPL), either version 1.3c of this
-% license or (at your option) any later version.  The latest version
-% of this license is in the file
-%
-%    https://www.latex-project.org/lppl.txt
-%
-% This file is part of the "l3kernel bundle" (The Work in LPPL)
-% and all files in that bundle must be distributed together.
-%
-% -----------------------------------------------------------------------
-%
-% The development version of the bundle can be found at
-%
-%    https://github.com/latex3/latex3
-%
-% for those people who are interested.
-%
-%<*driver>
-\documentclass[full,kernel]{l3doc}
-\begin{document}
-  \DocInput{\jobname.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \title{^^A
-%   The \textsf{l3drivers-image} package\\ Driver image support^^A
-% }
-%
-% \author{^^A
-%  The \LaTeX3 Project\thanks
-%    {^^A
-%      E-mail:
-%        \href{mailto:latex-team at latex-project.org}
-%          {latex-team at latex-project.org}^^A
-%    }^^A
-% }
-%
-% \date{Released 2019-05-07}
-%
-% \maketitle
-%
-% \begin{documentation}
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{\pkg{l3drivers-image} Implementation}
-%
-%    \begin{macrocode}
-%<*initex|package>
-%<@@=driver>
-%    \end{macrocode}
-%
-% \subsection{\texttt{dvips} driver}
-%
-%    \begin{macrocode}
-%<*dvips>
-%    \end{macrocode}
-%
-% \begin{macro}{\@@_image_getbb_eps:n}
-%   Simply use the generic function.
-%    \begin{macrocode}
-\cs_new_eq:NN \@@_image_getbb_eps:n \image_read_bb:n
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_image_include_eps:n}
-%  The special syntax is relatively clear here: remember we need PostScript
-%  sizes here.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_include_eps:n #1
-  { \@@_literal:n { PSfile = #1 } }
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</dvips>
-%    \end{macrocode}
-%
-% \subsection{\texttt{pdfmode} driver}
-%
-%    \begin{macrocode}
-%<*pdfmode>
-%    \end{macrocode}
-%
-% \begin{variable}{\l_@@_image_attr_tl}
-%   In PDF mode, additional attributes of an image (such as page number) are
-%   needed both to obtain the bounding box and when inserting the image: this
-%   occurs as the image dictionary approach means they are read as part of
-%   the bounding box operation. As such, it is easier to track additional
-%   attributes using a dedicated |tl| rather than build up the same data
-%   twice.
-%    \begin{macrocode}
-\tl_new:N \l_@@_image_attr_tl
-%    \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}
-%   {\@@_image_getbb_jpg:n, \@@_image_getbb_pdf:n, \@@_image_getbb_png:n}
-% \begin{macro}
-%   {\@@_image_getbb_auxi:n, \@@_image_getbb_auxii:n}
-%   Getting the bounding box here requires us to box up the image and
-%   measure it. To deal with the difference in feature support in bitmap
-%   and vector images but keeping the common parts, there is a little work
-%   to do in terms of auxiliaries. The key here is to notice that we need
-%   two forms of the attributes: a \enquote{short} set to allow us to
-%   track for caching, and the full form to pass to the primitive.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_getbb_jpg:n #1
-  {
-    \int_zero:N \l_image_page_int
-    \tl_clear:N \l_image_pagebox_tl
-    \tl_set:Nx \l_@@_image_attr_tl
-      {
-        \tl_if_empty:NF \l_image_decode_tl
-          { :D \l_image_decodearray_tl }
-        \bool_if:NT \l_image_interpolate_bool
-          { :I }
-      }
-    \tl_clear:N \l_@@_image_attr_tl
-    \@@_image_getbb_auxi:n {#1}
-  }
-\cs_new_eq:NN \@@_image_getbb_png:n \@@_image_getbb_jpg:n
-\cs_new_protected:Npn \@@_image_getbb_pdf:n #1
-  {
-    \tl_clear:N \l_image_decode_tl
-    \bool_set_false:N \l_image_interpolate_bool
-    \tl_set:Nx \l_@@_image_attr_tl
-      {
-        : \l_image_pagebox_tl
-        \int_compare:nNnT \l_image_page_int > 1
-          { :P \int_use:N \l_image_page_int }
-      }
-    \@@_image_getbb_auxi:n {#1}
-  }
-\cs_new_protected:Npn \@@_image_getbb_auxi:n #1
-  {
-    \image_bb_restore:xF { #1 \l_@@_image_attr_tl }
-      { \@@_image_getbb_auxii:n {#1} }
-  }
-%    \begin{macrocode}
-%   Measuring the image is done by boxing up: for PDF images we could
-%   use |\tex_pdfximagebbox:D|, but if doesn't work for other types.
-%   As the box always starts at $(0,0)$ there is no need to worry about
-%   the lower-left position.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_getbb_auxii:n #1
-  {
-    \tex_immediate:D \tex_pdfximage:D
-      \bool_lazy_or:nnT
-        { \l_image_interpolate_bool }
-        { ! \tl_if_empty_p:N \l_image_decodearray_tl }
-        {
-          attr ~
-            {
-              \tl_if_empty:NF \l_image_decode_tl
-                { /Decode~[ \l_image_decodearray_tl ] }
-              \bool_if:NT \l_image_interpolate_bool
-                { /Interpolate~true }
-            }
-        }
-      \int_compare:nNnT \l_image_page_int > 0
-        { page ~ \int_use:N \l_image_page_int }
-      \tl_if_empty:NF \l_image_pagebox_tl
-        { \l_image_pagebox_tl }
-      {#1}
-    \hbox_set:Nn \l_@@_tmp_box
-      { \tex_pdfrefximage:D \tex_pdflastximage:D }
-    \dim_set:Nn \l_image_urx_dim { \box_wd:N \l_@@_tmp_box }
-    \dim_set:Nn \l_image_ury_dim { \box_ht:N \l_@@_tmp_box }
-    \int_const:cn { c_@@_image_ #1 \l_@@_image_attr_tl _int }
-      { \tex_the:D \tex_pdflastximage:D }
-    \image_bb_save:x { #1 \l_@@_image_attr_tl }
-  }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}
-%   {\@@_image_include_jpg:n, \@@_image_include_pdf:n, \@@_image_include_png:n}
-%   Images are already loaded for the measurement part of the code, so
-%   inclusion is straight-forward, with only any attributes to worry about. The
-%   latter carry through from determination of the bounding box.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_include_jpg:n #1
-  {
-    \tex_pdfrefximage:D
-      \int_use:c { c_@@_image_ #1 \l_@@_image_attr_tl _int }
-  }
-\cs_new_eq:NN \@@_image_include_pdf:n \@@_image_include_jpg:n
-\cs_new_eq:NN \@@_image_include_png:n \@@_image_include_jpg:n
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</pdfmode>
-%    \end{macrocode}
-%
-% \subsection{\texttt{dvipdfmx} driver}
-%
-%    \begin{macrocode}
-%<*dvipdfmx|xdvipdfmx>
-%    \end{macrocode}
-%
-% \begin{macro}
-%   {
-%     \@@_image_getbb_eps:n, \@@_image_getbb_jpg:n,
-%     \@@_image_getbb_pdf:n, \@@_image_getbb_png:n
-%   }
-%   Simply use the generic functions: only for \texttt{dvipdfmx} in the
-%   extraction cases.
-%    \begin{macrocode}
-\cs_new_eq:NN \@@_image_getbb_eps:n \image_read_bb:n
-%<*dvipdfmx>
-\cs_new_protected:Npn \@@_image_getbb_jpg:n #1
-  {
-    \int_zero:N \l_image_page_int
-    \tl_clear:N \l_image_pagebox_tl
-    \image_extract_bb:n {#1}
-  }
-\cs_new_eq:NN \@@_image_getbb_png:n \@@_image_getbb_jpg:n
-\cs_new_protected:Npn \@@_image_getbb_pdf:n #1
-  {
-    \tl_clear:N \l_image_decode_tl
-    \bool_set_false:N \l_image_interpolate_bool
-    \image_extract_bb:n {#1}
-  }
-%</dvipdfmx>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{variable}{\g_@@_image_int}
-%   Used to track the object number associated with each image.
-%    \begin{macrocode}
-\int_new:N \g_@@_image_int
-%    \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}
-%   {
-%     \@@_image_include_eps:n, \@@_image_include_jpg:n,
-%     \@@_image_include_pdf:n, \@@_image_include_png:n
-%   }
-%  \begin{macro}{\@@_image_include_auxi:nn}
-%  \begin{macro}{\@@_image_include_auxii:nnn, \@@_image_include_auxii:xnn}
-%  \begin{macro}{\@@_image_include_auxiii:nn}
-%   The special syntax depends on the file type. There is a difference in
-%   how PDF images are best handled between |dvipdfmx| and |xdvipdfmx|: for
-%   the latter it is better to use the primitive route. The relevant code for
-%   that is included later in this file.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_include_eps:n #1
-  {
-    \@@_literal:n { PSfile = #1 }
-  }
-\cs_new_protected:Npn \@@_image_include_jpg:n #1
-  { \@@_image_include_auxi:nn {#1} { image } }
-\cs_new_eq:NN \@@_image_include_png:n \@@_image_include_jpg:n
-%<*dvipdfmx>
-\cs_new_protected:Npn \@@_image_include_pdf:n #1
-  { \@@_image_include_auxi:nn {#1} { epdf } }
-%</dvipdfmx>
-%    \end{macrocode}
-%   Image inclusion is set up to use the fact that each image is stored in
-%   the PDF as an XObject. This means that we can include repeated images
-%   only once and refer to them. To allow that, track the nature of each
-%   image: much the same as for the direct PDF mode case.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_include_auxi:nn #1#2
-  {
-    \@@_image_include_auxii:xnn
-      {
-        \tl_if_empty:NF \l_image_pagebox_tl
-          { : \l_image_pagebox_tl }
-        \int_compare:nNnT \l_image_page_int > 1
-          { :P \int_use:N \l_image_page_int }
-        \tl_if_empty:NF \l_image_decode_tl
-          { :D \l_image_decodearray_tl }
-        \bool_if:NT \l_image_interpolate_bool
-           { :I }
-      }
-      {#1} {#2}
-  }
-\cs_new_protected:Npn \@@_image_include_auxii:nnn #1#2#3
-  {
-    \int_if_exist:cTF { c_@@_image_ #2#1 _int }
-      {
-        \@@_literal:x
-          { pdf:usexobj~@image \int_use:c { c_@@_image_ #2#1 _int } }
-      }
-      { \@@_image_include_auxiii:nn {#2} {#1} {#3} }
-  }
-\cs_generate_variant:Nn \@@_image_include_auxii:nnn { x }
-%    \end{macrocode}
-%  Inclusion using the specials is relatively straight-forward, but there
-%  is one wrinkle. To get the |pagebox| correct for PDF images in all cases,
-%  it is necessary to provide both that information and the |bbox| argument:
-%  odd things happen otherwise!
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_include_auxiii:nnn #1#2#3
-  {
-    \int_gincr:N \g_@@_image_int
-    \int_const:cn { c_@@_image_ #1#2 _int } { \g_@@_image_int }
-    \@@_literal:x
-      {
-        pdf:#3~
-        @image \int_use:c { c_@@_image_ #1#2 _int }
-        \int_compare:nNnT \l_image_page_int > 1
-          { page ~ \int_use:N \l_image_page_int \c_space_tl }
-        \tl_if_empty:NF \l_image_pagebox_tl
-          {
-            pagebox ~ \l_image_pagebox_tl \c_space_tl
-            bbox ~
-              \dim_to_decimal_in_bp:n \l_image_llx_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_lly_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_urx_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_ury_dim \c_space_tl
-          }
-        (#1)
-        \bool_lazy_or:nnT
-          { \l_image_interpolate_bool }
-          { ! \tl_if_empty_p:N \l_image_decodearray_tl }
-          {
-            <<
-              \tl_if_empty:NF \l_image_decode_tl
-                { /Decode~[ \l_image_decodearray_tl ] }
-              \bool_if:NT \l_image_interpolate_bool
-                { /Interpolate~true> }
-            >>
-          }
-      }
-  }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</dvipdfmx|xdvipdfmx>
-%    \end{macrocode}
-%
-% \subsection{\texttt{xdvipdfmx} driver}
-%
-%    \begin{macrocode}
-%<*xdvipdfmx>
-%    \end{macrocode}
-%
-% \subsubsection{Images}
-%
-% \begin{macro}
-%   {\@@_image_getbb_jpg:n, \@@_image_getbb_pdf:n, \@@_image_getbb_png:n}
-% \begin{macro}{\@@_image_getbb_auxi:nN}
-% \begin{macro}{\@@_image_getbb_auxii:nnN, \@@_image_getbb_auxii:VnN}
-% \begin{macro}{\@@_image_getbb_auxiii:nNnn}
-% \begin{macro}{\@@_image_getbb_auxiv:nnNnn, \@@_image_getbb_auxiv:VnNnn}
-% \begin{macro}{\@@_image_getbb_auxv:nNnn, \@@_image_getbb_auxv:nNnn}
-% \begin{macro}[EXP]{\@@_image_getbb_pagebox:w}
-%   For \texttt{xdvipdfmx}, there are two primitives that allow us to obtain
-%   the bounding box without needing \texttt{extractbb}. The only complexity
-%   is passing the various minor variations to a common core process. The
-%   \XeTeX{} primitive omits the text |box| from the page box specification,
-%   so there is also some \enquote{trimming} to do here.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_getbb_jpg:n #1
-  {
-    \int_zero:N \l_image_page_int
-    \tl_clear:N \l_image_pagebox_tl
-    \@@_image_getbb_auxi:nN {#1} \tex_XeTeXpicfile:D
-  }
-\cs_new_eq:NN \@@_image_getbb_png:n \@@_image_getbb_jpg:n
-\cs_new_protected:Npn \@@_image_getbb_pdf:n #1
-  {
-    \tl_clear:N \l_image_decode_tl
-    \bool_set_false:N \l_image_interpolate_bool
-    \@@_image_getbb_auxi:nN {#1} \tex_XeTeXpdffile:D
-  }
-\cs_new_protected:Npn \@@_image_getbb_auxi:nN #1#2
-  {
-    \int_compare:nNnTF \l_image_page_int > 1
-      { \@@_image_getbb_auxii:VnN \l_image_page_int {#1} #2  }
-      { \@@_image_getbb_auxiii:nNnn {#1} #2 }
-  }
-\cs_new_protected:Npn \@@_image_getbb_auxii:nnN #1#2#3
-  { \@@_image_getbb_aux:nNnn {#2} #3 { :P #1 } { page #1 } }
-\cs_generate_variant:Nn \@@_image_getbb_auxii:nnN { V }
-\cs_new_protected:Npn \@@_image_getbb_auxiii:nNnn #1#2#3#4
-  {
-    \tl_if_empty:NTF \l_image_pagebox_tl
-      { \@@_image_getbb_auxiv:VnNnn \l_image_pagebox_tl }
-      { \@@_image_getbb_auxv:nNnn }
-      {#1} #2 {#3} {#4}
-  }
-\cs_new_protected:Npn \@@_image_getbb_auxiv:nnNnn #1#2#3#4#5
-  {
-    \use:x
-      {
-        \@@_image_getbb_auxv:nNnn {#2} #3 { : #1 #4 }
-          { #5 ~ \@@_image_getbb_pagebox:w #1 }
-      }
-  }
-\cs_generate_variant:Nn \@@_image_getbb_auxiv:nnNnn { V }
-\cs_new_protected:Npn \@@_image_getbb_auxv:nNnn #1#2#3#4
-  {
-    \image_bb_restore:nF {#1#3}
-      { \@@_image_getbb_auxvi:nNnn {#1} #2 {#3} {#4} }
-  }
-\cs_new_protected:Npn \@@_image_getbb_auxvi:nNnn #1#2#3#4
-  {
-    \hbox_set:Nn \l_@@_tmp_box { #2 #1 ~ #4 }
-    \dim_set:Nn \l_image_utx_dim { \box_wd:N \l_@@_tmp_box }
-    \dim_set:Nn \l_image_ury_dim { \box_ht:N \l_@@_tmp_box }
-    \image_bb_save:n {#1#3}
-  }
-\cs_new:Npn \@@_image_getbb_pagebox:w #1 box {#1}
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\@@_image_include_pdf:n}
-%   For PDF images, properly supporting the |pagebox| concept in \XeTeX{}
-%   is best done using the |\tex_XeTeXpdffile:D| primitive. The syntax here
-%   is the same as for the image measurement part, although we know at this
-%   stage that there must be some valid setting for \cs{l_image_pagebox_tl}.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_include_pdf:n #1
-  {
-    \tex_XeTeXpdffile:D "#1" ~
-      \int_compare:nNnT \l_image_page_int > 0
-        { page~ \int_use:N \l_image_page_int }
-      \@@_image_getbb_auxiv:VnNnn \l_image_pagebox_tl
-  }
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</xdvipdfmx>
-%    \end{macrocode}
-%
-% \subsection{\texttt{dvisvgm} driver}
-%
-%    \begin{macrocode}
-%<*dvisvgm>
-%    \end{macrocode}
-%
-% \begin{macro}{\@@_image_getbb_png:n, \@@_image_getbb_jpg:n}
-%   These can be included by extracting the bounding box data.
-%    \begin{macrocode}
-\cs_new_eq:NN \@@_image_getbb_png:n \image_extract_bb:n
-\cs_new_eq:NN \@@_image_getbb_jpg:n \image_extract_bb:n
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_image_include_png:n, \@@_image_include_jpg:n}
-% \begin{macro}{\@@_image_include_bitmap_quote:w}
-%   The driver here has built-in support for basic image inclusion (see
-%   \texttt{dvisvgm.def} for a more complex approach, needed if clipping,
-%   \emph{etc.}, is covered at the image driver level). The only issue is
-%   that |#1| must be quote-corrected. The \texttt{dvisvgm:img} operation
-%   quotes the file name, but if it is already quoted (contains spaces)
-%   then we have an issue: we simply strip off any quotes as a result.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_image_include_png:n #1
-  {
-     \@@_literal:x
-       {
-         dvisvgm:img~
-         \dim_to_decimal:n { \l_image_ury_dim } ~
-         \dim_to_decimal:n { \l_image_ury_dim } ~
-         \@@_image_include_bitmap_quote:w #1 " #1 " \q_stop
-       }
-  }
-\cs_new_eq:NN \@@_image_include_jpg:n \@@_image_include_png:n
-\cs_new:Npn \@@_image_include_bitmap_quote:w #1 " #2 " #3 \q_stop
-  { " #2 " }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</dvisvgm>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</initex|package>
-%    \end{macrocode}
-%
-% \end{implementation}
-%
-% \PrintIndex

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-pdf.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers-pdf.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %
@@ -71,13 +71,6 @@
 % A very small number of items that belong at the driver level but which
 % are common to all drivers.
 %
-% \begin{variable}{\l_@@_pdf_tmp_box}
-%   For fitting destinations.
-%    \begin{macrocode}
-\box_new:N \l_@@_pdf_tmp_box
-%    \end{macrocode}
-% \end{variable}
-%
 % \subsection{\texttt{dvips} driver}
 %
 %    \begin{macrocode}
@@ -1159,13 +1152,13 @@
 \cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2
   {
     \group_begin:
-      \hbox_set:Nn \l_@@_pdf_tmp_box {#2}
+      \hbox_set:Nn \l_@@_internal_box {#2}
       \box_move_down:nn
-        { \box_dp:N \l_@@_pdf_tmp_box }
+        { \box_dp:N \l_@@_internal_box }
         { \hbox:n { \@@_postscript:n { driver.save.ll } } }
-      \box_use:N \l_@@_pdf_tmp_box
+      \box_use:N \l_@@_internal_box
       \box_move_up:nn
-        { \box_ht:N \l_@@_pdf_tmp_box }
+        { \box_ht:N \l_@@_internal_box }
         { \hbox:n { \@@_postscript:n { driver.save.ur } } }
       \@@_pdfmark:n
         {
@@ -1338,16 +1331,16 @@
 \cs_new_protected:Npx \driver_pdf_destination_rectangle:nn #1#2
   {
     \group_begin:
-      \hbox_set:Nn \l_@@_pdf_tmp_box {#2}
+      \hbox_set:Nn \l_@@_internal_box {#2}
      \cs_if_exist:NTF \tex_pdfextension:D
       { \exp_not:N \tex_pdfextension:D dest ~ }
       { \exp_not:N \tex_pdfdest:D }  
       name {#1}
       fitr ~
-        width  \exp_not:N \box_wd:N \l_@@_pdf_tmp_box
-        height \exp_not:N \box_ht:N \l_@@_pdf_tmp_box
-        depth  \exp_not:N \box_dp:N \l_@@_pdf_tmp_box 
-      \box_use:N \l_@@_pdf_tmp_box
+        width  \exp_not:N \box_wd:N \l_@@_internal_box
+        height \exp_not:N \box_ht:N \l_@@_internal_box
+        depth  \exp_not:N \box_dp:N \l_@@_internal_box 
+      \box_use:N \l_@@_internal_box
     \group_end:    
   }
 %    \end{macrocode}
@@ -1797,8 +1790,8 @@
 \cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2
   {
     \group_begin:
-      \hbox_set:Nn \l_@@_pdf_tmp_box {#2}
-      \box_move_down:nn { \box_dp:N \l_@@_pdf_tmp_box }
+      \hbox_set:Nn \l_@@_internal_box {#2}
+      \box_move_down:nn { \box_dp:N \l_@@_internal_box }
         {
           \hbox:n
             {
@@ -1806,8 +1799,8 @@
               \@@_pdf:n { obj ~ @driver_#1_lly ~ @ypos }
             }
         }
-      \box_use:N \l_@@_pdf_tmp_box
-      \box_move_up:nn { \box_ht:N \l_@@_pdf_tmp_box }
+      \box_use:N \l_@@_internal_box
+      \box_move_up:nn { \box_ht:N \l_@@_internal_box }
         {
           \hbox:n
             {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %
@@ -463,6 +463,58 @@
 %   given.
 % \end{function}
 %
+% \section{Graphics inclusion}
+%
+% Graphics inclusion support is closely tied to the higher-level \pkg{l3graphics}
+% module. This arises as information concerning images (\emph{e.g.}~page
+% numbers in multi-page files) is needed to correct cache image data. As
+% such, the driver code here assumes the following are defined
+% \begin{itemize}
+%   \item \cs{l_image_decodearray_tl}
+%   \item \cs{l_image_interpolate_tl}
+%   \item \cs{l_image_page_tl}
+%   \item \cs{l_image_pagebox_tl}
+% \end{itemize}
+%
+% Note also that the functions defined will depend on the file types supported
+% by the driver. As such, a calling function should typically test for the
+% existence of an appropriate function to determine if the image file is
+% supported.
+%
+% \begin{function}[added = 2019-05-07]
+%   {
+%     \driver_graphics_getbb_eps:n,
+%     \driver_graphics_getbb_jpg:n,
+%     \driver_graphics_getbb_pdf:n,
+%     \driver_graphics_getbb_png:n
+%   }
+%   \begin{syntax}
+%     \cs{driver_graphics_getbb_pdf:n} \Arg{file}
+%   \end{syntax}
+%   These functions load the requested image \meta{file} and obtain the
+%   bounding box information on the file. They may also cache the image for
+%   subsequent inclusion: this is driver-dependent. The bounding box data
+%   will be stored in \cs{l_image_llx_dim},  \cs{l_image_lly_dim},
+%   \cs{l_image_urx_dim}, and  \cs{l_image_ury_dim} after use of these
+%   functions.
+% \end{function}
+%
+% \begin{function}[added = 2019-05-07]
+%   {
+%     \driver_graphics_include_eps:n,
+%     \driver_graphics_include_jpg:n,
+%     \driver_graphics_include_pdf:n,
+%     \driver_graphics_include_png:n
+%   }
+%   \begin{syntax}
+%     \cs{driver_graphics_include_pdf:n} \Arg{file}
+%   \end{syntax}
+%   These functions include the appropriate image type at the current position.
+%   They should be preceded by use of the matching \texttt{getbb} function to
+%   set the bounding box correctly; in some drivers, the \texttt{getbb}
+%   function is also responsible for caching the image for later inclusion.
+% \end{function}
+%
 % \section{PDF Features}
 %
 % A range of PDF features are exposed by \pdfTeX{} and \LuaTeX{} in direct PDF

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %
@@ -631,7 +631,7 @@
 % \end{function}
 %
 % \begin{function}[added = 2017-06-23, updated = 2017-06-26]
-%   {\file_parse_full_name:nNNN}
+%   {\file_parse_full_name:nNNN, \file_parse_full_name:VNNN}
 %   \begin{syntax}
 %     \cs{file_parse_full_name:nNNN} \Arg{full name} \meta{dir} \meta{name} \meta{ext}
 %   \end{syntax}
@@ -2410,7 +2410,7 @@
         \prg_return_false:
       }
       {
-        \exp_args:NV \file_parse_full_name:nNNN \l_@@_full_name_tl
+        \file_parse_full_name:VNNN \l_@@_full_name_tl
           \l_@@_dir_str \l_@@_name_str \l_@@_ext_str
         \str_if_empty:NT \l_@@_ext_str
           {
@@ -2658,7 +2658,7 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}{\file_parse_full_name:nNNN}
+% \begin{macro}{\file_parse_full_name:nNNN, \file_parse_full_name:VNNN}
 % \begin{macro}
 %   {\@@_parse_full_name_auxi:w, \@@_parse_full_name_split:nNNNTF}
 %   Parsing starts by stripping off any surrounding quotes.  Then find
@@ -2677,6 +2677,7 @@
     \exp_after:wN \@@_parse_full_name_auxi:w
       \tl_to_str:n { #1 " #1 " } \q_stop #2#3#4
   }
+\cs_generate_variant:Nn \file_parse_full_name:nNNN { V }
 \cs_new_protected:Npn \@@_parse_full_name_auxi:w
   #1 " #2 " #3 \q_stop #4#5#6
   {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3format.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3format.ins	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3format.ins	2019-05-09 21:21:40 UTC (rev 51060)
@@ -115,13 +115,13 @@
   {
     \file{l3dvipdfmx.ltx}
       {
-        \from{l3drivers.dtx}       {initex,dvipdfmx}
-        \from{l3drivers-basics.dtx}{initex,dvipdfmx}
-        \from{l3drivers-color.dtx} {initex,dvipdfmx}
-        \from{l3drivers-box.dtx}   {initex,dvipdfmx}
-        \from{l3drivers-draw.dtx}  {initex,dvipdfmx}
-        \from{l3drivers-image.dtx} {initex,dvipdfmx}
-        \from{l3drivers-pdf.dtx}   {initex,dvipdfmx}
+        \from{l3drivers.dtx}         {initex,dvipdfmx}
+        \from{l3drivers-basics.dtx}  {initex,dvipdfmx}
+        \from{l3drivers-color.dtx}   {initex,dvipdfmx}
+        \from{l3drivers-box.dtx}     {initex,dvipdfmx}
+        \from{l3drivers-draw.dtx}    {initex,dvipdfmx}
+        \from{l3drivers-graphics.dtx}{initex,dvipdfmx}
+        \from{l3drivers-pdf.dtx}     {initex,dvipdfmx}
       }
   }
 \generate
@@ -128,13 +128,13 @@
   {
     \file{l3dvips.ltx}
       {
-        \from{l3drivers.dtx}       {initex,dvips}
-        \from{l3drivers-basics.dtx}{initex,dvips}
-        \from{l3drivers-color.dtx} {initex,dvips}
-        \from{l3drivers-box.dtx}   {initex,dvips}
-        \from{l3drivers-draw.dtx}  {initex,dvips}
-        \from{l3drivers-image.dtx} {initex,dvips}
-        \from{l3drivers-pdf.dtx}   {initex,dvips}
+        \from{l3drivers.dtx}         {initex,dvips}
+        \from{l3drivers-basics.dtx}  {initex,dvips}
+        \from{l3drivers-color.dtx}   {initex,dvips}
+        \from{l3drivers-box.dtx}     {initex,dvips}
+        \from{l3drivers-draw.dtx}    {initex,dvips}
+        \from{l3drivers-graphics.dtx}{initex,dvips}
+        \from{l3drivers-pdf.dtx}     {initex,dvips}
       }
   }
 \generate
@@ -141,13 +141,13 @@
   {
     \file{l3dvisvgm.ltx}
       {
-        \from{l3drivers.dtx}       {initex,dvisvgm}
-        \from{l3drivers-basics.dtx}{initex,dvisvgm}
-        \from{l3drivers-color.dtx} {initex,dvisvgm}
-        \from{l3drivers-box.dtx}   {initex,dvisvgm}
-        \from{l3drivers-draw.dtx}  {initex,dvisvgm}
-        \from{l3drivers-image.dtx} {initex,dvisvgm}
-        \from{l3drivers-pdf.dtx}   {initex,dvisvgm}
+        \from{l3drivers.dtx}         {initex,dvisvgm}
+        \from{l3drivers-basics.dtx}  {initex,dvisvgm}
+        \from{l3drivers-color.dtx}   {initex,dvisvgm}
+        \from{l3drivers-box.dtx}     {initex,dvisvgm}
+        \from{l3drivers-draw.dtx}    {initex,dvisvgm}
+        \from{l3drivers-graphics.dtx}{initex,dvisvgm}
+        \from{l3drivers-pdf.dtx}     {initex,dvisvgm}
       }
   }
 \generate
@@ -154,13 +154,13 @@
   {
     \file{l3pdfmode.ltx}
       {
-        \from{l3drivers.dtx}       {initex,pdfmode}
-        \from{l3drivers-basics.dtx}{initex,pdfmode}
-        \from{l3drivers-color.dtx} {initex,pdfmode}
-        \from{l3drivers-box.dtx}   {initex,pdfmode}
-        \from{l3drivers-draw.dtx}  {initex,pdfmode}
-        \from{l3drivers-image.dtx} {initex,pdfmode}
-        \from{l3drivers-pdf.dtx}   {initex,pdfmode}
+        \from{l3drivers.dtx}         {initex,pdfmode}
+        \from{l3drivers-basics.dtx}  {initex,pdfmode}
+        \from{l3drivers-color.dtx}   {initex,pdfmode}
+        \from{l3drivers-box.dtx}     {initex,pdfmode}
+        \from{l3drivers-draw.dtx}    {initex,pdfmode}
+        \from{l3drivers-graphics.dtx}{initex,pdfmode}
+        \from{l3drivers-pdf.dtx}     {initex,pdfmode}
       }
   }
 \generate
@@ -167,13 +167,13 @@
   {
     \file{l3xdvipdfmx.ltx}
       {
-        \from{l3drivers.dtx}       {initex,xdvipdfmx}
-        \from{l3drivers-basics.dtx}{initex,xdvipdfmx}
-        \from{l3drivers-color.dtx} {initex,xdvipdfmx}
-        \from{l3drivers-box.dtx}   {initex,xdvipdfmx}
-        \from{l3drivers-draw.dtx}  {initex,xdvipdfmx}
-        \from{l3drivers-image.dtx} {initex,xdvipdfmx}
-        \from{l3drivers-pdf.dtx}   {initex,xdvipdfmx}
+        \from{l3drivers.dtx}         {initex,xdvipdfmx}
+        \from{l3drivers-basics.dtx}  {initex,xdvipdfmx}
+        \from{l3drivers-color.dtx}   {initex,xdvipdfmx}
+        \from{l3drivers-box.dtx}     {initex,xdvipdfmx}
+        \from{l3drivers-draw.dtx}    {initex,xdvipdfmx}
+        \from{l3drivers-graphics.dtx}{initex,xdvipdfmx}
+        \from{l3drivers-pdf.dtx}     {initex,xdvipdfmx}
       }
   }
 

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2019-05-09 21:21:40 UTC (rev 51060)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-05-07}
+% \date{Released 2019-05-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2019-05-09 21:21:40 UTC (rev 51060)
@@ -64,7 +64,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2019-05-07}%
+\def\ExplFileDate{2019-05-09}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -11036,7 +11036,7 @@
         \prg_return_false:
       }
       {
-        \exp_args:NV \file_parse_full_name:nNNN \l__file_full_name_tl
+        \file_parse_full_name:VNNN \l__file_full_name_tl
           \l__file_dir_str \l__file_name_str \l__file_ext_str
         \str_if_empty:NT \l__file_ext_str
           {
@@ -11210,6 +11210,7 @@
     \exp_after:wN \__file_parse_full_name_auxi:w
       \tl_to_str:n { #1 " #1 " } \q_stop #2#3#4
   }
+\cs_generate_variant:Nn \file_parse_full_name:nNNN { V }
 \cs_new_protected:Npn \__file_parse_full_name_auxi:w
   #1 " #2 " #3 \q_stop #4#5#6
   {
@@ -26453,6 +26454,27 @@
       { \iow_shipout:Nn \c__sys_shell_stream_int {#1} }
   }
 \cs_generate_variant:Nn \sys_shell_shipout:n { x }
+\cs_new_protected:Npn \ior_shell_open:Nn #1#2
+  {
+    \sys_if_shell:TF
+      { \exp_args:No \__ior_shell_open:nN { \tl_to_str:n {#2} } #1 }
+      { \__kernel_msg_error:nn { kernel } { pipe-failed } }
+  }
+\cs_new_protected:Npn \__ior_shell_open:nN #1#2
+  {
+    \tl_if_in:nnTF {#1} { " }
+      {
+        \__kernel_msg_error:nnx
+          { kernel } { quote-in-shell } {#1}
+      }
+      { \__kernel_ior_open:Nn #2 { "|#1" } }
+  }
+\__kernel_msg_new:nnnn { kernel } { pipe-failed }
+  { Cannot~run~piped~system~commands. }
+  {
+    LaTeX~tried~to~call~a~system~process~but~this~was~not~possible.\\
+    Try~the~"--shell-escape"~(or~"--enable-pipes")~option.
+  }
 \cs_new:Npn \char_lower_case:N #1
   { \__char_change_case:nNN { lower } \char_value_lccode:n #1 }
 \cs_new:Npn \char_upper_case:N #1

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2019-05-09 21:21:40 UTC (rev 51060)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2019-05-07}%
+\def\ExplFileDate{2019-05-09}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \def\tempa{LaTeX2e}%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2019-05-09 21:21:40 UTC (rev 51060)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2019-05-07}%
+\def\ExplFileDate{2019-05-09}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2019-05-09 21:21:40 UTC (rev 51060)
@@ -9,7 +9,7 @@
 %% l3drivers-color.dtx  (with options: `package,dvipdfmx')
 %% l3drivers-box.dtx  (with options: `package,dvipdfmx')
 %% l3drivers-draw.dtx  (with options: `package,dvipdfmx')
-%% l3drivers-image.dtx  (with options: `package,dvipdfmx')
+%% l3drivers-graphics.dtx  (with options: `package,dvipdfmx')
 %% l3drivers-pdf.dtx  (with options: `package,dvipdfmx')
 %% 
 %% Copyright (C) 1990-2019 The LaTeX3 Project
@@ -33,6 +33,7 @@
 \cs_new_protected:Npn \__driver_literal:n #1
   { \__driver_literal:e { \exp_not:n {#1} } }
 \cs_generate_variant:Nn \__driver_literal:n { x }
+\box_new:N \l__driver_internal_box
 \cs_new_protected:Npn \__driver_literal_pdf:n #1
   { \__driver_literal:n { pdf:literal~ #1 } }
 \cs_generate_variant:Nn \__driver_literal_pdf:n { x }
@@ -351,84 +352,92 @@
     \__driver_literal:n { pdf:etrans }
     \__driver_scope_end:
   }
-%% File: l3drivers-image.dtx
-\cs_new_eq:NN \__driver_image_getbb_eps:n \image_read_bb:n
-\cs_new_protected:Npn \__driver_image_getbb_jpg:n #1
+%% File: l3drivers-graphics.dtx
+\AtBeginDocument
+  { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n }
+\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
   {
-    \int_zero:N \l_image_page_int
-    \tl_clear:N \l_image_pagebox_tl
-    \image_extract_bb:n {#1}
+    \int_zero:N \l_graphics_page_int
+    \tl_clear:N \l_graphics_pagebox_tl
+    \graphics_extract_bb:n {#1}
   }
-\cs_new_eq:NN \__driver_image_getbb_png:n \__driver_image_getbb_jpg:n
-\cs_new_protected:Npn \__driver_image_getbb_pdf:n #1
+\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
+\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
   {
-    \tl_clear:N \l_image_decode_tl
-    \bool_set_false:N \l_image_interpolate_bool
-    \image_extract_bb:n {#1}
+    \tl_clear:N \l_graphics_decodearray_tl
+    \bool_set_false:N \l_graphics_interpolate_bool
+    \graphics_extract_bb:n {#1}
   }
-\int_new:N \g__driver_image_int
-\cs_new_protected:Npn \__driver_image_include_eps:n #1
+\int_new:N \g__driver_graphics_int
+\cs_new_protected:Npn \driver_graphics_include_eps:n #1
   {
-    \__driver_literal:n { PSfile = #1 }
+    \__driver_literal:x
+      {
+        PSfile = #1 \c_space_tl
+        llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
+        lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
+        urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
+        ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
+      }
   }
-\cs_new_protected:Npn \__driver_image_include_jpg:n #1
-  { \__driver_image_include_auxi:nn {#1} { image } }
-\cs_new_eq:NN \__driver_image_include_png:n \__driver_image_include_jpg:n
-\cs_new_protected:Npn \__driver_image_include_pdf:n #1
-  { \__driver_image_include_auxi:nn {#1} { epdf } }
-\cs_new_protected:Npn \__driver_image_include_auxi:nn #1#2
+\cs_new_protected:Npn \driver_graphics_include_jpg:n #1
+  { \__driver_graphics_include_auxi:nn {#1} { image } }
+\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n
+\cs_new_protected:Npn \driver_graphics_include_pdf:n #1
+  { \__driver_graphics_include_auxi:nn {#1} { epdf } }
+\cs_new_protected:Npn \__driver_graphics_include_auxi:nn #1#2
   {
-    \__driver_image_include_auxii:xnn
+    \__driver_graphics_include_auxii:xnn
       {
-        \tl_if_empty:NF \l_image_pagebox_tl
-          { : \l_image_pagebox_tl }
-        \int_compare:nNnT \l_image_page_int > 1
-          { :P \int_use:N \l_image_page_int }
-        \tl_if_empty:NF \l_image_decode_tl
-          { :D \l_image_decodearray_tl }
-        \bool_if:NT \l_image_interpolate_bool
+        \tl_if_empty:NF \l_graphics_pagebox_tl
+          { : \l_graphics_pagebox_tl }
+        \int_compare:nNnT \l_graphics_page_int > 1
+          { :P \int_use:N \l_graphics_page_int }
+        \tl_if_empty:NF \l_graphics_decodearray_tl
+          { :D \l_graphics_decodearray_tl }
+        \bool_if:NT \l_graphics_interpolate_bool
            { :I }
       }
       {#1} {#2}
   }
-\cs_new_protected:Npn \__driver_image_include_auxii:nnn #1#2#3
+\cs_new_protected:Npn \__driver_graphics_include_auxii:nnn #1#2#3
   {
-    \int_if_exist:cTF { c__driver_image_ #2#1 _int }
+    \int_if_exist:cTF { c__driver_graphics_ #2#1 _int }
       {
         \__driver_literal:x
-          { pdf:usexobj~@image \int_use:c { c__driver_image_ #2#1 _int } }
+          { pdf:usexobj~@image \int_use:c { c__driver_graphics_ #2#1 _int } }
       }
-      { \__driver_image_include_auxiii:nn {#2} {#1} {#3} }
+      { \__driver_graphics_include_auxiii:nnn {#2} {#1} {#3} }
   }
-\cs_generate_variant:Nn \__driver_image_include_auxii:nnn { x }
-\cs_new_protected:Npn \__driver_image_include_auxiii:nnn #1#2#3
+\cs_generate_variant:Nn \__driver_graphics_include_auxii:nnn { x }
+\cs_new_protected:Npn \__driver_graphics_include_auxiii:nnn #1#2#3
   {
-    \int_gincr:N \g__driver_image_int
-    \int_const:cn { c__driver_image_ #1#2 _int } { \g__driver_image_int }
+    \int_gincr:N \g__driver_graphics_int
+    \int_const:cn { c__driver_graphics_ #1#2 _int } { \g__driver_graphics_int }
     \__driver_literal:x
       {
         pdf:#3~
-        @image \int_use:c { c__driver_image_ #1#2 _int }
-        \int_compare:nNnT \l_image_page_int > 1
-          { page ~ \int_use:N \l_image_page_int \c_space_tl }
-        \tl_if_empty:NF \l_image_pagebox_tl
+        @image \int_use:c { c__driver_graphics_ #1#2 _int } ~
+        \int_compare:nNnT \l_graphics_page_int > 1
+          { page ~ \int_use:N \l_graphics_page_int \c_space_tl }
+        \tl_if_empty:NF \l_graphics_pagebox_tl
           {
-            pagebox ~ \l_image_pagebox_tl \c_space_tl
+            pagebox ~ \l_graphics_pagebox_tl \c_space_tl
             bbox ~
-              \dim_to_decimal_in_bp:n \l_image_llx_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_lly_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_urx_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_ury_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_ury_dim \c_space_tl
           }
         (#1)
         \bool_lazy_or:nnT
-          { \l_image_interpolate_bool }
-          { ! \tl_if_empty_p:N \l_image_decodearray_tl }
+          { \l_graphics_interpolate_bool }
+          { ! \tl_if_empty_p:N \l_graphics_decodearray_tl }
           {
             <<
-              \tl_if_empty:NF \l_image_decode_tl
-                { /Decode~[ \l_image_decodearray_tl ] }
-              \bool_if:NT \l_image_interpolate_bool
+              \tl_if_empty:NF \l_graphics_decodearray_tl
+                { /Decode~[ \l_graphics_decodearray_tl ] }
+              \bool_if:NT \l_graphics_interpolate_bool
                 { /Interpolate~true> }
             >>
           }
@@ -435,7 +444,6 @@
       }
   }
 %% File: l3drivers-pdf.dtx
-\box_new:N \l__driver_pdf_tmp_box
 \cs_new_protected:Npx \__driver_pdf:n #1
   { \__driver_literal:n { pdf: #1 } }
 \cs_generate_variant:Nn \__driver_pdf:n { x }
@@ -575,8 +583,8 @@
 \cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2
   {
     \group_begin:
-      \hbox_set:Nn \l__driver_pdf_tmp_box {#2}
-      \box_move_down:nn { \box_dp:N \l__driver_pdf_tmp_box }
+      \hbox_set:Nn \l__driver_internal_box {#2}
+      \box_move_down:nn { \box_dp:N \l__driver_internal_box }
         {
           \hbox:n
             {
@@ -584,8 +592,8 @@
               \__driver_pdf:n { obj ~ @driver_#1_lly ~ @ypos }
             }
         }
-      \box_use:N \l__driver_pdf_tmp_box
-      \box_move_up:nn { \box_ht:N \l__driver_pdf_tmp_box }
+      \box_use:N \l__driver_internal_box
+      \box_move_up:nn { \box_ht:N \l__driver_internal_box }
         {
           \hbox:n
             {

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2019-05-09 21:21:40 UTC (rev 51060)
@@ -9,7 +9,7 @@
 %% l3drivers-color.dtx  (with options: `package,dvips')
 %% l3drivers-box.dtx  (with options: `package,dvips')
 %% l3drivers-draw.dtx  (with options: `package,dvips')
-%% l3drivers-image.dtx  (with options: `package,dvips')
+%% l3drivers-graphics.dtx  (with options: `package,dvips')
 %% l3drivers-pdf.dtx  (with options: `package,dvips')
 %% 
 %% Copyright (C) 1990-2019 The LaTeX3 Project
@@ -33,6 +33,7 @@
 \cs_new_protected:Npn \__driver_literal:n #1
   { \__driver_literal:e { \exp_not:n {#1} } }
 \cs_generate_variant:Nn \__driver_literal:n { x }
+\box_new:N \l__driver_internal_box
 \cs_new_protected:Npn \__driver_literal_postscript:n #1
   { \__driver_literal:n { ps:: #1 } }
 \cs_generate_variant:Nn \__driver_literal_postscript:n { x }
@@ -411,12 +412,21 @@
     \__driver_draw_literal:n { [begin] }
     \__driver_draw_literal:n { @beginspecial }
   }
-%% File: l3drivers-image.dtx
-\cs_new_eq:NN \__driver_image_getbb_eps:n \image_read_bb:n
-\cs_new_protected:Npn \__driver_image_include_eps:n #1
-  { \__driver_literal:n { PSfile = #1 } }
+%% File: l3drivers-graphics.dtx
+\AtBeginDocument
+  { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n }
+\cs_new_protected:Npn \driver_graphics_include_eps:n #1
+  {
+    \__driver_literal:x
+      {
+        PSfile = #1 \c_space_tl
+        llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
+        lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
+        urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
+        ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
+      }
+  }
 %% File: l3drivers-pdf.dtx
-\box_new:N \l__driver_pdf_tmp_box
 \cs_new_protected:Npn \__driver_pdfmark:n #1
   { \__driver_postscript:n { mark #1 ~ pdfmark } }
 \cs_generate_variant:Nn \__driver_pdfmark:n { x }
@@ -1139,13 +1149,13 @@
 \cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2
   {
     \group_begin:
-      \hbox_set:Nn \l__driver_pdf_tmp_box {#2}
+      \hbox_set:Nn \l__driver_internal_box {#2}
       \box_move_down:nn
-        { \box_dp:N \l__driver_pdf_tmp_box }
+        { \box_dp:N \l__driver_internal_box }
         { \hbox:n { \__driver_postscript:n { driver.save.ll } } }
-      \box_use:N \l__driver_pdf_tmp_box
+      \box_use:N \l__driver_internal_box
       \box_move_up:nn
-        { \box_ht:N \l__driver_pdf_tmp_box }
+        { \box_ht:N \l__driver_internal_box }
         { \hbox:n { \__driver_postscript:n { driver.save.ur } } }
       \__driver_pdfmark:n
         {

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2019-05-09 21:21:40 UTC (rev 51060)
@@ -9,7 +9,7 @@
 %% l3drivers-color.dtx  (with options: `package,dvisvgm')
 %% l3drivers-box.dtx  (with options: `package,dvisvgm')
 %% l3drivers-draw.dtx  (with options: `package,dvisvgm')
-%% l3drivers-image.dtx  (with options: `package,dvisvgm')
+%% l3drivers-graphics.dtx  (with options: `package,dvisvgm')
 %% l3drivers-pdf.dtx  (with options: `package,dvisvgm')
 %% 
 %% Copyright (C) 1990-2019 The LaTeX3 Project
@@ -33,6 +33,7 @@
 \cs_new_protected:Npn \__driver_literal:n #1
   { \__driver_literal:e { \exp_not:n {#1} } }
 \cs_generate_variant:Nn \__driver_literal:n { x }
+\box_new:N \l__driver_internal_box
 \cs_new_protected:Npn \__driver_literal_svg:n #1
   { \__driver_literal:n { dvisvgm:raw~ #1 { ?nl } } }
 \cs_generate_variant:Nn \__driver_literal_svg:n { x }
@@ -369,7 +370,7 @@
   { \__driver_draw_scope:n { stroke-linejoin="round" } }
 \cs_new_protected:Npn \driver_draw_join_bevel:
   { \__driver_draw_scope:n { stroke-linejoin="bevel" } }
-\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
+\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
   {
     \use:x
       {
@@ -380,18 +381,18 @@
       }
   }
 \cs_new_eq:NN \driver_draw_color_stroke_cmyk:nnnn \driver_color_cmyk:nnnn
-\cs_new_protected:Npn \driver_draw_color_gray:n #1
+\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
   {
     \use:x
       {
         \__driver_draw_color_gray_aux:n
-          { \fp_eval:n { 100 * (#3) } }
+          { \fp_eval:n { 100 * (#1) } }
       }
   }
 \cs_new_protected:Npn \__driver_draw_color_gray_aux:n #1
   { \__driver_draw_color_fill:nnn {#1} {#1} {#1} }
 \cs_new_eq:NN \driver_draw_color_stroke_gray:n \driver_color_gray:n
-\cs_new_protected:Npn \driver_draw_color_rgb:nnn #1#2#3
+\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
   {
     \use:x
       {
@@ -450,24 +451,26 @@
     \__driver_literal_svg:n { </g> }
     \__driver_scope_end:
   }
-%% File: l3drivers-image.dtx
-\cs_new_eq:NN \__driver_image_getbb_png:n \image_extract_bb:n
-\cs_new_eq:NN \__driver_image_getbb_jpg:n \image_extract_bb:n
-\cs_new_protected:Npn \__driver_image_include_png:n #1
+%% File: l3drivers-graphics.dtx
+\AtBeginDocument
   {
+    \cs_new_eq:NN \driver_graphics_getbb_png:n \graphics_extract_bb:n
+    \cs_new_eq:NN \driver_graphics_getbb_jpg:n \graphics_extract_bb:n
+  }
+\cs_new_protected:Npn \driver_graphics_include_png:n #1
+  {
      \__driver_literal:x
        {
          dvisvgm:img~
-         \dim_to_decimal:n { \l_image_ury_dim } ~
-         \dim_to_decimal:n { \l_image_ury_dim } ~
-         \__driver_image_include_bitmap_quote:w #1 " #1 " \q_stop
+         \dim_to_decimal:n { \l_graphics_ury_dim } ~
+         \dim_to_decimal:n { \l_graphics_ury_dim } ~
+         \__driver_graphics_include_bitmap_quote:w #1 " #1 " \q_stop
        }
   }
-\cs_new_eq:NN \__driver_image_include_jpg:n \__driver_image_include_png:n
-\cs_new:Npn \__driver_image_include_bitmap_quote:w #1 " #2 " #3 \q_stop
+\cs_new_eq:NN \driver_graphics_include_jpg:n \driver_graphics_include_png:n
+\cs_new:Npn \__driver_graphics_include_bitmap_quote:w #1 " #2 " #3 \q_stop
   { " #2 " }
 %% File: l3drivers-pdf.dtx
-\box_new:N \l__driver_pdf_tmp_box
 \cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2 { }
 \cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2 { }
 \cs_new_protected:Npn \driver_pdf_object_new:nn #1#2 { }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2019-05-09 21:21:40 UTC (rev 51060)
@@ -9,7 +9,7 @@
 %% l3drivers-color.dtx  (with options: `package,pdfmode')
 %% l3drivers-box.dtx  (with options: `package,pdfmode')
 %% l3drivers-draw.dtx  (with options: `package,pdfmode')
-%% l3drivers-image.dtx  (with options: `package,pdfmode')
+%% l3drivers-graphics.dtx  (with options: `package,pdfmode')
 %% l3drivers-pdf.dtx  (with options: `package,pdfmode')
 %% 
 %% Copyright (C) 1990-2019 The LaTeX3 Project
@@ -33,6 +33,7 @@
 \cs_new_protected:Npn \__driver_literal:n #1
   { \__driver_literal:e { \exp_not:n {#1} } }
 \cs_generate_variant:Nn \__driver_literal:n { x }
+\box_new:N \l__driver_internal_box
 \cs_new_protected:Npx \__driver_literal_pdf:n #1
   {
     \cs_if_exist:NTF \tex_pdfextension:D
@@ -352,77 +353,76 @@
     \hbox_overlap_right:n { \box_use:N #1 }
     \__driver_scope_end:
   }
-%% File: l3drivers-image.dtx
-\tl_new:N \l__driver_image_attr_tl
-\cs_new_protected:Npn \__driver_image_getbb_jpg:n #1
+%% File: l3drivers-graphics.dtx
+\tl_new:N \l__driver_graphics_attr_tl
+\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
   {
-    \int_zero:N \l_image_page_int
-    \tl_clear:N \l_image_pagebox_tl
-    \tl_set:Nx \l__driver_image_attr_tl
+    \int_zero:N \l_graphics_page_int
+    \tl_clear:N \l_graphics_pagebox_tl
+    \tl_set:Nx \l__driver_graphics_attr_tl
       {
-        \tl_if_empty:NF \l_image_decode_tl
-          { :D \l_image_decodearray_tl }
-        \bool_if:NT \l_image_interpolate_bool
+        \tl_if_empty:NF \l_graphics_decodearray_tl
+          { :D \l_graphics_decodearray_tl }
+        \bool_if:NT \l_graphics_interpolate_bool
           { :I }
       }
-    \tl_clear:N \l__driver_image_attr_tl
-    \__driver_image_getbb_auxi:n {#1}
+    \tl_clear:N \l__driver_graphics_attr_tl
+    \__driver_graphics_getbb_auxi:n {#1}
   }
-\cs_new_eq:NN \__driver_image_getbb_png:n \__driver_image_getbb_jpg:n
-\cs_new_protected:Npn \__driver_image_getbb_pdf:n #1
+\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
+\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
   {
-    \tl_clear:N \l_image_decode_tl
-    \bool_set_false:N \l_image_interpolate_bool
-    \tl_set:Nx \l__driver_image_attr_tl
+    \tl_clear:N \l_graphics_decodearray_tl
+    \bool_set_false:N \l_graphics_interpolate_bool
+    \tl_set:Nx \l__driver_graphics_attr_tl
       {
-        : \l_image_pagebox_tl
-        \int_compare:nNnT \l_image_page_int > 1
-          { :P \int_use:N \l_image_page_int }
+        : \l_graphics_pagebox_tl
+        \int_compare:nNnT \l_graphics_page_int > 1
+          { :P \int_use:N \l_graphics_page_int }
       }
-    \__driver_image_getbb_auxi:n {#1}
+    \__driver_graphics_getbb_auxi:n {#1}
   }
-\cs_new_protected:Npn \__driver_image_getbb_auxi:n #1
+\cs_new_protected:Npn \__driver_graphics_getbb_auxi:n #1
   {
-    \image_bb_restore:xF { #1 \l__driver_image_attr_tl }
-      { \__driver_image_getbb_auxii:n {#1} }
+    \graphics_bb_restore:xF { #1 \l__driver_graphics_attr_tl }
+      { \__driver_graphics_getbb_auxii:n {#1} }
   }
-\cs_new_protected:Npn \__driver_image_getbb_auxii:n #1
+\cs_new_protected:Npn \__driver_graphics_getbb_auxii:n #1
   {
     \tex_immediate:D \tex_pdfximage:D
       \bool_lazy_or:nnT
-        { \l_image_interpolate_bool }
-        { ! \tl_if_empty_p:N \l_image_decodearray_tl }
+        { \l_graphics_interpolate_bool }
+        { ! \tl_if_empty_p:N \l_graphics_decodearray_tl }
         {
           attr ~
             {
-              \tl_if_empty:NF \l_image_decode_tl
-                { /Decode~[ \l_image_decodearray_tl ] }
-              \bool_if:NT \l_image_interpolate_bool
+              \tl_if_empty:NF \l_graphics_decodearray_tl
+                { /Decode~[ \l_graphics_decodearray_tl ] }
+              \bool_if:NT \l_graphics_interpolate_bool
                 { /Interpolate~true }
             }
         }
-      \int_compare:nNnT \l_image_page_int > 0
-        { page ~ \int_use:N \l_image_page_int }
-      \tl_if_empty:NF \l_image_pagebox_tl
-        { \l_image_pagebox_tl }
+      \int_compare:nNnT \l_graphics_page_int > 0
+        { page ~ \int_use:N \l_graphics_page_int }
+      \tl_if_empty:NF \l_graphics_pagebox_tl
+        { \l_graphics_pagebox_tl }
       {#1}
-    \hbox_set:Nn \l__driver_tmp_box
+    \hbox_set:Nn \l__driver_internal_box
       { \tex_pdfrefximage:D \tex_pdflastximage:D }
-    \dim_set:Nn \l_image_urx_dim { \box_wd:N \l__driver_tmp_box }
-    \dim_set:Nn \l_image_ury_dim { \box_ht:N \l__driver_tmp_box }
-    \int_const:cn { c__driver_image_ #1 \l__driver_image_attr_tl _int }
+    \dim_set:Nn \l_graphics_urx_dim { \box_wd:N \l__driver_internal_box }
+    \dim_set:Nn \l_graphics_ury_dim { \box_ht:N \l__driver_internal_box }
+    \int_const:cn { c__driver_graphics_ #1 \l__driver_graphics_attr_tl _int }
       { \tex_the:D \tex_pdflastximage:D }
-    \image_bb_save:x { #1 \l__driver_image_attr_tl }
+    \graphics_bb_save:x { #1 \l__driver_graphics_attr_tl }
   }
-\cs_new_protected:Npn \__driver_image_include_jpg:n #1
+\cs_new_protected:Npn \driver_graphics_include_jpg:n #1
   {
     \tex_pdfrefximage:D
-      \int_use:c { c__driver_image_ #1 \l__driver_image_attr_tl _int }
+      \int_use:c { c__driver_graphics_ #1 \l__driver_graphics_attr_tl _int }
   }
-\cs_new_eq:NN \__driver_image_include_pdf:n \__driver_image_include_jpg:n
-\cs_new_eq:NN \__driver_image_include_png:n \__driver_image_include_jpg:n
+\cs_new_eq:NN \driver_graphics_include_pdf:n \driver_graphics_include_jpg:n
+\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n
 %% File: l3drivers-pdf.dtx
-\box_new:N \l__driver_pdf_tmp_box
 \cs_new_protected:Npx \driver_pdf_annotation:nnnn #1#2#3#4
   {
     \cs_if_exist:NTF \tex_pdfextension:D
@@ -496,16 +496,16 @@
 \cs_new_protected:Npx \driver_pdf_destination_rectangle:nn #1#2
   {
     \group_begin:
-      \hbox_set:Nn \l__driver_pdf_tmp_box {#2}
+      \hbox_set:Nn \l__driver_internal_box {#2}
      \cs_if_exist:NTF \tex_pdfextension:D
       { \exp_not:N \tex_pdfextension:D dest ~ }
       { \exp_not:N \tex_pdfdest:D }
       name {#1}
       fitr ~
-        width  \exp_not:N \box_wd:N \l__driver_pdf_tmp_box
-        height \exp_not:N \box_ht:N \l__driver_pdf_tmp_box
-        depth  \exp_not:N \box_dp:N \l__driver_pdf_tmp_box
-      \box_use:N \l__driver_pdf_tmp_box
+        width  \exp_not:N \box_wd:N \l__driver_internal_box
+        height \exp_not:N \box_ht:N \l__driver_internal_box
+        depth  \exp_not:N \box_dp:N \l__driver_internal_box
+      \box_use:N \l__driver_internal_box
     \group_end:
   }
 \cs_new_protected:Npx \driver_pdf_catalog_gput:nn #1#2

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2019-05-09 17:28:38 UTC (rev 51059)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2019-05-09 21:21:40 UTC (rev 51060)
@@ -9,7 +9,7 @@
 %% l3drivers-color.dtx  (with options: `package,xdvipdfmx')
 %% l3drivers-box.dtx  (with options: `package,xdvipdfmx')
 %% l3drivers-draw.dtx  (with options: `package,xdvipdfmx')
-%% l3drivers-image.dtx  (with options: `package,xdvipdfmx')
+%% l3drivers-graphics.dtx  (with options: `package,xdvipdfmx')
 %% l3drivers-pdf.dtx  (with options: `package,xdvipdfmx')
 %% 
 %% Copyright (C) 1990-2019 The LaTeX3 Project
@@ -33,6 +33,7 @@
 \cs_new_protected:Npn \__driver_literal:n #1
   { \__driver_literal:e { \exp_not:n {#1} } }
 \cs_generate_variant:Nn \__driver_literal:n { x }
+\box_new:N \l__driver_internal_box
 \cs_new_protected:Npn \__driver_literal_pdf:n #1
   { \__driver_literal:n { pdf:literal~ #1 } }
 \cs_generate_variant:Nn \__driver_literal_pdf:n { x }
@@ -351,134 +352,144 @@
     \__driver_literal:n { pdf:etrans }
     \__driver_scope_end:
   }
-%% File: l3drivers-image.dtx
-\cs_new_eq:NN \__driver_image_getbb_eps:n \image_read_bb:n
-\int_new:N \g__driver_image_int
-\cs_new_protected:Npn \__driver_image_include_eps:n #1
+%% File: l3drivers-graphics.dtx
+\AtBeginDocument
+  { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n }
+\int_new:N \g__driver_graphics_int
+\cs_new_protected:Npn \driver_graphics_include_eps:n #1
   {
-    \__driver_literal:n { PSfile = #1 }
+    \__driver_literal:x
+      {
+        PSfile = #1 \c_space_tl
+        llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
+        lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
+        urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
+        ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
+      }
   }
-\cs_new_protected:Npn \__driver_image_include_jpg:n #1
-  { \__driver_image_include_auxi:nn {#1} { image } }
-\cs_new_eq:NN \__driver_image_include_png:n \__driver_image_include_jpg:n
-\cs_new_protected:Npn \__driver_image_include_auxi:nn #1#2
+\cs_new_protected:Npn \driver_graphics_include_jpg:n #1
+  { \__driver_graphics_include_auxi:nn {#1} { image } }
+\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n
+\cs_new_protected:Npn \__driver_graphics_include_auxi:nn #1#2
   {
-    \__driver_image_include_auxii:xnn
+    \__driver_graphics_include_auxii:xnn
       {
-        \tl_if_empty:NF \l_image_pagebox_tl
-          { : \l_image_pagebox_tl }
-        \int_compare:nNnT \l_image_page_int > 1
-          { :P \int_use:N \l_image_page_int }
-        \tl_if_empty:NF \l_image_decode_tl
-          { :D \l_image_decodearray_tl }
-        \bool_if:NT \l_image_interpolate_bool
+        \tl_if_empty:NF \l_graphics_pagebox_tl
+          { : \l_graphics_pagebox_tl }
+        \int_compare:nNnT \l_graphics_page_int > 1
+          { :P \int_use:N \l_graphics_page_int }
+        \tl_if_empty:NF \l_graphics_decodearray_tl
+          { :D \l_graphics_decodearray_tl }
+        \bool_if:NT \l_graphics_interpolate_bool
            { :I }
       }
       {#1} {#2}
   }
-\cs_new_protected:Npn \__driver_image_include_auxii:nnn #1#2#3
+\cs_new_protected:Npn \__driver_graphics_include_auxii:nnn #1#2#3
   {
-    \int_if_exist:cTF { c__driver_image_ #2#1 _int }
+    \int_if_exist:cTF { c__driver_graphics_ #2#1 _int }
       {
         \__driver_literal:x
-          { pdf:usexobj~@image \int_use:c { c__driver_image_ #2#1 _int } }
+          { pdf:usexobj~@image \int_use:c { c__driver_graphics_ #2#1 _int } }
       }
-      { \__driver_image_include_auxiii:nn {#2} {#1} {#3} }
+      { \__driver_graphics_include_auxiii:nnn {#2} {#1} {#3} }
   }
-\cs_generate_variant:Nn \__driver_image_include_auxii:nnn { x }
-\cs_new_protected:Npn \__driver_image_include_auxiii:nnn #1#2#3
+\cs_generate_variant:Nn \__driver_graphics_include_auxii:nnn { x }
+\cs_new_protected:Npn \__driver_graphics_include_auxiii:nnn #1#2#3
   {
-    \int_gincr:N \g__driver_image_int
-    \int_const:cn { c__driver_image_ #1#2 _int } { \g__driver_image_int }
+    \int_gincr:N \g__driver_graphics_int
+    \int_const:cn { c__driver_graphics_ #1#2 _int } { \g__driver_graphics_int }
     \__driver_literal:x
       {
         pdf:#3~
-        @image \int_use:c { c__driver_image_ #1#2 _int }
-        \int_compare:nNnT \l_image_page_int > 1
-          { page ~ \int_use:N \l_image_page_int \c_space_tl }
-        \tl_if_empty:NF \l_image_pagebox_tl
+        @image \int_use:c { c__driver_graphics_ #1#2 _int } ~
+        \int_compare:nNnT \l_graphics_page_int > 1
+          { page ~ \int_use:N \l_graphics_page_int \c_space_tl }
+        \tl_if_empty:NF \l_graphics_pagebox_tl
           {
-            pagebox ~ \l_image_pagebox_tl \c_space_tl
+            pagebox ~ \l_graphics_pagebox_tl \c_space_tl
             bbox ~
-              \dim_to_decimal_in_bp:n \l_image_llx_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_lly_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_urx_dim \c_space_tl
-              \dim_to_decimal_in_bp:n \l_image_ury_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
+              \dim_to_decimal_in_bp:n \l_graphics_ury_dim \c_space_tl
           }
         (#1)
         \bool_lazy_or:nnT
-          { \l_image_interpolate_bool }
-          { ! \tl_if_empty_p:N \l_image_decodearray_tl }
+          { \l_graphics_interpolate_bool }
+          { ! \tl_if_empty_p:N \l_graphics_decodearray_tl }
           {
             <<
-              \tl_if_empty:NF \l_image_decode_tl
-                { /Decode~[ \l_image_decodearray_tl ] }
-              \bool_if:NT \l_image_interpolate_bool
+              \tl_if_empty:NF \l_graphics_decodearray_tl
+                { /Decode~[ \l_graphics_decodearray_tl ] }
+              \bool_if:NT \l_graphics_interpolate_bool
                 { /Interpolate~true> }
             >>
           }
       }
   }
-\cs_new_protected:Npn \__driver_image_getbb_jpg:n #1
+\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
   {
-    \int_zero:N \l_image_page_int
-    \tl_clear:N \l_image_pagebox_tl
-    \__driver_image_getbb_auxi:nN {#1} \tex_XeTeXpicfile:D
+    \int_zero:N \l_graphics_page_int
+    \tl_clear:N \l_graphics_pagebox_tl
+    \__driver_graphics_getbb_auxi:nN {#1} \tex_XeTeXpicfile:D
   }
-\cs_new_eq:NN \__driver_image_getbb_png:n \__driver_image_getbb_jpg:n
-\cs_new_protected:Npn \__driver_image_getbb_pdf:n #1
+\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
+\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
   {
-    \tl_clear:N \l_image_decode_tl
-    \bool_set_false:N \l_image_interpolate_bool
-    \__driver_image_getbb_auxi:nN {#1} \tex_XeTeXpdffile:D
+    \tl_clear:N \l_graphics_decodearray_tl
+    \bool_set_false:N \l_graphics_interpolate_bool
+    \__driver_graphics_getbb_auxi:nN {#1} \tex_XeTeXpdffile:D
   }
-\cs_new_protected:Npn \__driver_image_getbb_auxi:nN #1#2
+\cs_new_protected:Npn \__driver_graphics_getbb_auxi:nN #1#2
   {
-    \int_compare:nNnTF \l_image_page_int > 1
-      { \__driver_image_getbb_auxii:VnN \l_image_page_int {#1} #2  }
-      { \__driver_image_getbb_auxiii:nNnn {#1} #2 }
+    \int_compare:nNnTF \l_graphics_page_int > 1
+      { \__driver_graphics_getbb_auxii:VnN \l_graphics_page_int {#1} #2  }
+      { \__driver_graphics_getbb_auxiii:nNnn {#1} #2 { :P 1 } { page 1 } }
   }
-\cs_new_protected:Npn \__driver_image_getbb_auxii:nnN #1#2#3
-  { \__driver_image_getbb_aux:nNnn {#2} #3 { :P #1 } { page #1 } }
-\cs_generate_variant:Nn \__driver_image_getbb_auxii:nnN { V }
-\cs_new_protected:Npn \__driver_image_getbb_auxiii:nNnn #1#2#3#4
+\cs_new_protected:Npn \__driver_graphics_getbb_auxii:nnN #1#2#3
+  { \__driver_graphics_getbb_auxiii:nNnn {#2} #3 { :P #1 } { page #1 } }
+\cs_generate_variant:Nn \__driver_graphics_getbb_auxii:nnN { V }
+\cs_new_protected:Npn \__driver_graphics_getbb_auxiii:nNnn #1#2#3#4
   {
-    \tl_if_empty:NTF \l_image_pagebox_tl
-      { \__driver_image_getbb_auxiv:VnNnn \l_image_pagebox_tl }
-      { \__driver_image_getbb_auxv:nNnn }
+    \tl_if_empty:NTF \l_graphics_pagebox_tl
+      { \__driver_graphics_getbb_auxiv:VnNnn \l_graphics_pagebox_tl }
+      { \__driver_graphics_getbb_auxv:nNnn }
       {#1} #2 {#3} {#4}
   }
-\cs_new_protected:Npn \__driver_image_getbb_auxiv:nnNnn #1#2#3#4#5
+\cs_new_protected:Npn \__driver_graphics_getbb_auxiv:nnNnn #1#2#3#4#5
   {
     \use:x
       {
-        \__driver_image_getbb_auxv:nNnn {#2} #3 { : #1 #4 }
-          { #5 ~ \__driver_image_getbb_pagebox:w #1 }
+        \__driver_graphics_getbb_auxv:nNnn {#2} #3 { : #1 #4 }
+          { #5 ~ \__driver_graphics_getbb_pagebox:w #1 }
       }
   }
-\cs_generate_variant:Nn \__driver_image_getbb_auxiv:nnNnn { V }
-\cs_new_protected:Npn \__driver_image_getbb_auxv:nNnn #1#2#3#4
+\cs_generate_variant:Nn \__driver_graphics_getbb_auxiv:nnNnn { V }
+\cs_new_protected:Npn \__driver_graphics_getbb_auxv:nNnn #1#2#3#4
   {
-    \image_bb_restore:nF {#1#3}
-      { \__driver_image_getbb_auxvi:nNnn {#1} #2 {#3} {#4} }
+    \graphics_bb_restore:nF {#1#3}
+      { \__driver_graphics_getbb_auxvi:nNnn {#1} #2 {#3} {#4} }
   }
-\cs_new_protected:Npn \__driver_image_getbb_auxvi:nNnn #1#2#3#4
+\cs_new_protected:Npn \__driver_graphics_getbb_auxvi:nNnn #1#2#3#4
   {
-    \hbox_set:Nn \l__driver_tmp_box { #2 #1 ~ #4 }
-    \dim_set:Nn \l_image_utx_dim { \box_wd:N \l__driver_tmp_box }
-    \dim_set:Nn \l_image_ury_dim { \box_ht:N \l__driver_tmp_box }
-    \image_bb_save:n {#1#3}
+    \hbox_set:Nn \l__driver_internal_box { #2 #1 ~ #4 }
+    \dim_set:Nn \l_graphics_urx_dim { \box_wd:N \l__driver_internal_box }
+    \dim_set:Nn \l_graphics_ury_dim { \box_ht:N \l__driver_internal_box }
+    \graphics_bb_save:n {#1#3}
   }
-\cs_new:Npn \__driver_image_getbb_pagebox:w #1 box {#1}
-\cs_new_protected:Npn \__driver_image_include_pdf:n #1
+\cs_new:Npn \__driver_graphics_getbb_pagebox:w #1 box {#1}
+\cs_new_protected:Npn \driver_graphics_include_pdf:n #1
   {
-    \tex_XeTeXpdffile:D "#1" ~
-      \int_compare:nNnT \l_image_page_int > 0
-        { page~ \int_use:N \l_image_page_int }
-      \__driver_image_getbb_auxiv:VnNnn \l_image_pagebox_tl
+    \tex_XeTeXpdffile:D
+      \__driver_graphics_include_pdf_quote:w #1 "#1" \q_stop \c_space_tl
+      \int_compare:nNnT \l_graphics_page_int > 0
+        { page ~ \int_use:N \l_graphics_page_int \c_space_tl }
+        \exp_after:wN \__driver_graphics_getbb_pagebox:w \l_graphics_pagebox_tl
   }
+\cs_new:Npn \__driver_graphics_include_pdf_quote:w #1 " #2 " #3 \q_stop
+  { " #2 " }
 %% File: l3drivers-pdf.dtx
-\box_new:N \l__driver_pdf_tmp_box
 \cs_new_protected:Npx \__driver_pdf:n #1
   { \__driver_literal:n { pdf: #1 } }
 \cs_generate_variant:Nn \__driver_pdf:n { x }
@@ -618,8 +629,8 @@
 \cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2
   {
     \group_begin:
-      \hbox_set:Nn \l__driver_pdf_tmp_box {#2}
-      \box_move_down:nn { \box_dp:N \l__driver_pdf_tmp_box }
+      \hbox_set:Nn \l__driver_internal_box {#2}
+      \box_move_down:nn { \box_dp:N \l__driver_internal_box }
         {
           \hbox:n
             {
@@ -627,8 +638,8 @@
               \__driver_pdf:n { obj ~ @driver_#1_lly ~ @ypos }
             }
         }
-      \box_use:N \l__driver_pdf_tmp_box
-      \box_move_up:nn { \box_ht:N \l__driver_pdf_tmp_box }
+      \box_use:N \l__driver_internal_box
+      \box_move_up:nn { \box_ht:N \l__driver_internal_box }
         {
           \hbox:n
             {



More information about the tex-live-commits mailing list