summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pstricks/pst-platform.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/pstricks/pst-platform.sty')
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pst-platform.sty142
1 files changed, 142 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-platform.sty b/Master/texmf-dist/tex/latex/pstricks/pst-platform.sty
new file mode 100644
index 00000000000..a1bde247b6b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pstricks/pst-platform.sty
@@ -0,0 +1,142 @@
+% $Id: pst-platform.sty 446 2017-04-19 11:40:55Z herbert $
+%%
+%% This is file `pst-platform.sty',
+%%
+%% Copyright (C) 2017 Herbert Voß <hvoss@tug.org>
+%%
+%% This package may be distributed under the terms of the LaTeX Project
+%% Public License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1.0 or, at your option, any later version.
+%%
+\ProvidesPackage{pst-platform}
+ [2017/03/17 v0.01 Testing for the operating system, patch for luatex]
+\RequirePackage{shellesc,pdftexcmds,catchfile,ifluatex}
+%%
+% The following code is from ifplatform.sty, it fixes a bug with lualatex
+%%
+\newif\ifshellescape
+\newif\ifwindows
+\newif\ifmacosx
+\newif\iflinux
+\newif\ifcygwin
+\newcommand\windowsname{Windows}
+\newcommand\notwindowsname{*NIX}
+\newcommand\linuxname{Linux}
+\newcommand\macosxname{Mac\,OS\,X}
+\newcommand\cygwinname{Cygwin}
+\newcommand\unknownplatform{[Unknown]}
+\edef\ip@file{\jobname.w18}
+\newif\if@ip@nix@
+\ifnum\pdf@shellescape=1\relax
+ \shellescapetrue
+\else
+ \ifluatex\else
+ \PackageWarningNoLine{ifplatform}{^^J \space\space\space
+ shell escape is disabled,
+ so I can only detect \@backslashchar ifwindows%
+ }
+ \fi
+\fi
+\def\ip@cantdecide{%
+ \PackageWarningNoLine{ifplatform}{^^J \space\space\space
+ I can't tell if this is Windows or *nix;
+ you appear to be both%
+ }%
+}
+\ifluatex
+ \csname\directlua{
+ if os.type == "unix" then
+ tex.sprint("@ip@nix@true")
+ elseif os.type == "windows" then
+ tex.sprint("windowstrue")
+ end
+ }\endcsname
+\else
+ \IfFileExists{nul:}{\@ip@nix@false}{\@ip@nix@true}
+ \IfFileExists{/dev/null}{\windowsfalse}{\windowstrue}
+ \edef\ip@windows@echo@test{echo \string# > "\ip@file"}
+ \def\ip@backupplan{%
+ \IfFileExists{\ip@file}{%
+ \PackageWarningNoLine{ifplatform}{^^J \space\space\space
+ Please delete the file "\ip@file" and try again%
+ }%
+ \ip@cantdecide
+ }{%
+ \ShellEscape{\ip@windows@echo@test}%
+ \IfFileExists{\ip@file}{%
+ \ShellEscape{del "\ip@file"}%
+ \windowstrue
+ }{%
+ \@ip@nix@true
+ }%
+ }%
+ }
+ \ifwindows
+ \if@ip@nix@
+ \PackageWarningNoLine{ifplatform}{^^J \space\space\space
+ I can't tell if this is Windows or *nix;
+ you appear to be neither%
+ }
+ \fi
+ \else
+ \if@ip@nix@\else
+ \ifshellescape
+ \ip@backupplan
+ \else
+ \ip@cantdecide
+ \fi
+ \fi
+ \fi
+ \fi
+ \def\ip@only@six#1#2#3#4#5#6#7\@nil{#1#2#3#4#5#6}
+ \if@ip@nix@
+ \ifshellescape
+ \ifwindows\else
+ \ShellEscape{uname -s > "\ip@file"}
+ \CatchFileDef\@tempa{\ip@file}{}
+ \ShellEscape{rm -- "\ip@file"}
+ \edef\@tempa{\expandafter\zap@space\@tempa\@empty}
+ \def\@tempb{Linux}
+ \ifx\@tempa\@tempb
+ \linuxtrue
+ \else
+ \def\@tempb{Darwin}
+ \ifx\@tempa\@tempb
+ \macosxtrue
+ \else
+ \def\@tempb{CYGWIN}
+ \edef\@tempc{\expandafter\ip@only@six\@tempa------\@nil}
+ \ifx\@tempb\@tempc
+ \cygwintrue
+ \else
+ \edef\unknownplatform{\@tempa}
+ \fi
+ \fi
+ \fi
+ \fi
+\fi\fi
+\edef\platformname{%
+ \ifwindows
+ \noexpand\windowsname
+ \else
+ \ifshellescape
+ \iflinux
+ \noexpand\linuxname
+ \else
+ \ifmacosx
+ \noexpand\macosxname
+ \else
+ \ifcygwin
+ \noexpand\cygwinname
+ \else
+ \noexpand\unknownplatform
+ \fi
+ \fi
+ \fi
+ \else
+ \noexpand\notwindowsname
+ \fi
+ \fi
+}
+%%
+%% End of file `pst-platform.sty'.