From 3274fea6c34517ff1b5b17ca0ff3b92574f340a5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 19 Nov 2019 22:34:19 +0000 Subject: latex-dev (19nov19) git-svn-id: svn://tug.org/texlive/trunk@52866 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex-dev/graphics/graphics.dtx | 88 ++++++++++++++++++++-- 1 file changed, 83 insertions(+), 5 deletions(-) (limited to 'Master/texmf-dist/source/latex-dev/graphics') diff --git a/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx b/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx index f2471e94bbb..ac570c02278 100644 --- a/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx +++ b/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx @@ -25,7 +25,7 @@ % \ProvidesFile{graphics.drv} % \fi % \ProvidesFile{graphics.dtx} - [2019/07/20 v1.3b Standard LaTeX Graphics (DPC,SPQR)] + [2019/11/01 v1.3d Standard LaTeX Graphics (DPC,SPQR)] % % \iffalse %<*driver> @@ -1036,13 +1036,52 @@ % \begin{macro}{\Gin@sepdefault} % \changes{v0.6a}{1994/11/29} % {remove \cs{Gin@sep}} +% \begin{macro}{\Gin@gzext} +% \changes{v1.3d}{2019/11/01} +% {macro added} % This must match the token used by |\filename@parse| to delimit the % extension. % \begin{macrocode} \def\Gin@sepdefault{.} % \end{macrocode} +% +% \begin{macrocode} +\edef\Gin@gzext{\detokenize{gz}} +% \edef{macrocode} % \end{macro} % +% \begin{macro}{\set@curr@file} +% \begin{macro}{\quote@name} +% \changes{v1.3c}{2019/10/08} +% {Definitions added for old formats} +% \begin{macrocode} +\def\Gin@temp#1{% + \begingroup + \escapechar\m@ne + \xdef\@curr@file{\expandafter\string\csname #1\endcsname}% + \endgroup +} +\ifx\set@curr@file\@Gin@temp + \let\set@curr@file\@undefined +\fi +% \end{macrocode} +% +% \begin{macrocode} +\ifx\set@curr@file\@undefined +\def\set@curr@file#1{% + \begingroup + \escapechar\m@ne + \xdef\@curr@file{\expandafter\string\csname\@firstofone#1\@empty\endcsname}% + \endgroup +} +\def\quote@name#1{"\quote@@name#1\@gobble""} +\def\quote@@name#1"{#1\quote@@name} +\def\unquote@name#1{\quote@@name#1\@gobble"} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{\Ginclude@graphics} % The main internal function implementing graphics file inclusion. % |#1| is the file name. @@ -1069,12 +1108,23 @@ \let\input@path\Ginput@path % \end{macrocode} % A lot of quote juggling going on here (room for improvements). +% +% \changes{v1.3d}{2019/11/01} +% {\cs{curr@name} now unquoted} % \begin{macrocode} \set@curr@file{#1}% - \edef\uq@curr@file{\expandafter\unquote@name\expandafter{\@curr@file}}% - \expandafter\filename@parse\expandafter{\uq@curr@file}% - \edef\filename@area{\expandafter\quote@name\expandafter{\filename@area}}% - \edef\filename@base{\expandafter\quote@name\expandafter{\filename@base}}% + \expandafter\filename@parse\expandafter{\@curr@file}% +% \end{macrocode} +% If extension is |.gz| tack on to previous extension, eg |.eps.gz| if available. +% \begin{macrocode} + \ifx\filename@ext\Gin@gzext + \expandafter\filename@parse\expandafter{\filename@base}% + \ifx\filename@ext\relax + \let\filename@ext\Gin@gzext + \else + \edef\Gin@ext{\Gin@ext\Gin@sepdefault\Gin@gzext}% + \fi + \fi \ifx\filename@ext\relax \@for\Gin@temp:=\Gin@extensions\do{% \ifx\Gin@ext\relax @@ -1083,6 +1133,34 @@ \else \Gin@getbase{\Gin@sepdefault\filename@ext}% % \end{macrocode} +% At this point try adding an extension, even if the filename has one so +% that \verb|a.b| may find \verb|a.b.png| if no file is found then revert +% to the extension as given to get better error reporting. +% +% \changes{v1.3d}{2019/11/01} +% {Try adding an extension even if the filenam had a dot.} +% \begin{macrocode} +\ifx\Gin@ext\relax +\let\Gin@savedbase\filename@base +\let\Gin@savedext\filename@ext + \edef\filename@base{\filename@base\Gin@sepdefault\filename@ext}% + \let\filename@ext\relax + \@for\Gin@temp:=\Gin@extensions\do{% + \ifx\Gin@ext\relax + \Gin@getbase\Gin@temp + \fi}% +% \end{macrocode} +% Restore if no file found using theknown extensions. +% \begin{macrocode} + \ifx\Gin@ext\relax + \let\filename@base\Gin@savedbase + \let\filename@ext\Gin@savedext + \fi +\fi +% \end{macrocode} +% +% \begin{macrocode} +% \end{macrocode} % \changes{v0.4d}{1994/05/06} % {Make file not found a warning not an error} % \changes{v0.6a}{1994/11/29} -- cgit v1.2.3