% \iffalse meta-comment
%% File: plexpl3.dtx
%
%  Copyright (c) 2020-2022 Japanese TeX Development Community
%
%  This file is part of the pLaTeX2e system (community edition).
%  -------------------------------------------------------------
%
% \fi
%
%
% \iffalse
% \changes{v1.0}{2020/09/28}{初版：p\TeX{}の条件文を定義}
% \fi
%
% \iffalse
%<*driver>
\NeedsTeXFormat{pLaTeX2e}
\ProvidesFile{plexpl3.dtx}[2020/09/28 v1.0 expl3 additions]
\RequirePackage{plautopatch}
\documentclass[dvipdfmx,a4paper]{jltxdoc}
\GetFileInfo{plexpl3.dtx}
\author{Japanese \TeX\ Development Community}
\title{The \textsf{plexpl3} package}
\date{作成日：\filedate}
\begin{document}
  \newcommand\Lpack[1]{\textsf{#1}}
  \maketitle
  \DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \LaTeX3 (expl3)で用意されていない「p\TeX{}系列の独自機能」を
% expl3の文法で使えるようにするコードです。
% p\LaTeXe~2020-10-01で新設しました。
%
% \setcounter{StandardModuleDepth}{1}
% \StopEventually{}
%
% \section{コード}
%
% パッケージとして宣言します。
% これで、p\LaTeXe~2020-04-12以前でも
% \file{plexpl3.sty}と\file{plexpl3.ltx}だけ
% 入手すれば同等の機能が使えます。
%    \begin{macrocode}
%<*package>
\NeedsTeXFormat{pLaTeX2e}
\RequirePackage{expl3}
\ProvidesExplPackage{plexpl3}{2020-09-28}{1.0}
  {pTeX/upTeX-specific additions to expl3}
%</package>
%    \end{macrocode}
%
% \LaTeXe~2020-02-02以降では\file{expl3}が標準で
% フォーマットに読み込まれています。この場合は
% \file{plexpl3}の機能をフォーマットに取り込みます。
%    \begin{macrocode}
%<plcore>\ifdefined\ExplSyntaxOn %--- expl3 available BEGIN
%<plcore>\ExplSyntaxOn
%<*plcore|package>
\input plexpl3.ltx
%</plcore|package>
%<plcore>\ExplSyntaxOff
%<plcore>\fi                     %--- expl3 available END
%    \end{macrocode}
%
% \file{platexrelease}のroll-forwardにも登録します。
%    \begin{macrocode}
%<platexrelease>\plIncludeInRelease{2020/10/01}%
%<platexrelease>                   {plexpl3}{Pre-load plexpl3}%
%<platexrelease>\RequirePackage{plexpl3}
%<platexrelease>\plEndIncludeInRelease
%<platexrelease>\plIncludeInRelease{0000/00/00}%
%<platexrelease>                   {plexpl3}{Not loading plexpl3}%
%<platexrelease>% Nothing to do
%<platexrelease>\plEndIncludeInRelease
%    \end{macrocode}
%
% 以下のコードは\file{plexpl3.ltx}に書き出します。
% フォーマットとパッケージからの重複読み込みは禁止します。
%    \begin{macrocode}
%<*code>
\cs_if_exist:NT \__platex_expl_loaded:
  {
    \GenericInfo{}
      {Skipping:~ plexpl3~ code~ already~ part~ of~ the~ format}%
    \endinput
  }
\cs_new:Npn \__platex_expl_loaded: {  }
%    \end{macrocode}
%
% \section{p\TeX{}系列の条件文}
%
% p\TeX{}系列の条件文をexpl3の文法にします。
% \changes{v1.0}{2020/09/28}{初版：p\TeX{}の条件文を定義}
%    \begin{macrocode}
%% additions to l3box.dtx: writing directions (pTeX/upTeX-specific)
\cs_set_eq:NN \platex_direction_yoko: \tex_yoko:D
\cs_set_eq:NN \platex_direction_tate: \tex_tate:D
\cs_set_eq:NN \platex_direction_dtou: \tex_dtou:D
%
\prg_new_conditional:Npnn \platex_if_direction_yoko: { p, T, F, TF }
  { \tex_ifydir:D \prg_return_true: \else: \prg_return_false: \fi: }
\prg_new_conditional:Npnn \platex_if_direction_tate: { p, T, F, TF }
  { \tex_iftdir:D \prg_return_true: \else: \prg_return_false: \fi: }
\prg_new_conditional:Npnn \platex_if_direction_dtou: { p, T, F, TF }
  { \tex_ifddir:D \prg_return_true: \else: \prg_return_false: \fi: }
%
\prg_new_conditional:Npnn \platex_if_box_yoko:N #1 { p, T, F, TF }
  { \tex_ifybox:D #1 \prg_return_true: \else: \prg_return_false: \fi: }
\prg_new_conditional:Npnn \platex_if_box_tate:N #1 { p, T, F, TF }
  { \tex_iftbox:D #1 \prg_return_true: \else: \prg_return_false: \fi: }
\prg_new_conditional:Npnn \platex_if_box_dtou:N #1 { p, T, F, TF }
  { \tex_ifdbox:D #1 \prg_return_true: \else: \prg_return_false: \fi: }
%    \end{macrocode}
%
% 以上です。
%    \begin{macrocode}
%</code>
%    \end{macrocode}
%
% \Finale
%
\endinput
