diff options
Diffstat (limited to 'common/latex/ifplatform.sty')
-rw-r--r-- | common/latex/ifplatform.sty | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/common/latex/ifplatform.sty b/common/latex/ifplatform.sty new file mode 100644 index 0000000..7f59f61 --- /dev/null +++ b/common/latex/ifplatform.sty @@ -0,0 +1,151 @@ +%% +%% This is file `ifplatform.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ifplatform.dtx (with options: `package') +%% ________________________________________________________ +%% Copyright (C) 2007-2010 Will Robertson & Johannes Große +%% License information appended. +\ProvidesPackage{ifplatform} + [2010/10/22 v0.4 Testing for the operating system] +\RequirePackage{pdftexcmds,catchfile,ifluatex} +\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 + }{% + \immediate\write18{\ip@windows@echo@test}% + \IfFileExists{\ip@file}{% + \immediate\write18{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 + \immediate\write18{uname -s > "\ip@file"} + \CatchFileDef\@tempa{\ip@file}{} + \immediate\write18{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 +} +%% Copyright (C) 2007-2010 by Will Robertson & Johannes Große +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "author-maintained" by Will Robertson. +%% +%% This work consists of the file ifplatform.dtx +%% and the derived files ifplatform.pdf, +%% ifplatform.sty, and +%% ifplatform.ins. +%% +%% End of file `ifplatform.sty'. |