@ECHO OFF
SETLOCAL
SET BATDIR=%~dp0
SET TMPNAM=%~n0.tmp

REM #	
REM #	dRudSeqP.bat
REM #	
REM #	パルスモーターの台形制御シーケンサコンパイラ用プリプロセッサ
REM #	
REM #	CLiP - Common Library for P/ECE
REM #	Copyright (C) 2015 Naoyuki Sawa
REM #	
REM #	* Sat Nov 29 13:38:36 JST 2014 Naoyuki Sawa
REM #	- 1st リリース。
REM #	  dRudSeqP.batから呼び出して使用してください。
REM #	- 「speed n/命令/wait」を、一行で簡単に書くための展開スクリプトです。
REM #	* Fri Dec 12 14:11:01 JST 2014 Naoyuki Sawa
REM #	- 「ifブロック」を、一行で簡単に書くための展開スクリプトです。
REM #	* Tue Feb 24 21:00:20 JST 2015 Naoyuki Sawa
REM #	- dRudSeqC.exe,及び,MkRudDef.batの変更に伴い、dRudSeqC.exeに'-pRudSeqNo_'オプションを指定して呼び出すように変更しました。
REM #	* Wed Feb 25 21:01:46 JST 2015 Naoyuki Sawa
REM #	- 環境変数'RUDDEF_BIN'によって、テキスト形式とバイナリ形式の出力を選択できるようにしました。
REM #	  環境変数'RUDDEF_BIN'が定義されていなければ、テキスト形式で出力します。出力ファイル=標準出力
REM #	  環境変数'RUDDEF_BIN'が定義されていたら、バイナリ形式で出力します。出力ファイル=標準出力,%RUDDEF_BIN%
REM #	* Sat Feb 28 21:15:39 JST 2015 Naoyuki Sawa
REM #	- 'cpp.exe'も通すように変更しました。
REM #	  スクリプトの中でCプリプロセッサの疑似命令も使えるようになりました。
REM #	* Wed Mar 04 00:39:19 JST 2015 Naoyuki Sawa
REM #	- 'cpp.exe'の前段に'dpesc5c.exe'を通すように変更しました。
REM #	  コメント行の行末のマルチバイト文字の2バイト目が偶然'\'に一致して、Cプリプロセッサが誤って次の行も削除してしまう問題を、
REM #	  当バッチファイル自身が回避するようになったので、当バッチファイルを呼び出す処理が明示的に回避する必要は無くなりました。
REM #	* Fri Mar 06 21:00:56 JST 2015 Naoyuki Sawa
REM #	- '-e'オプションを指定して、エラー発生時にエラーログファイルが生成されるようにしました。
REM #	* Fri Apr 10 20:26:04 JST 2015 Naoyuki Sawa
REM #	- dRudSeqP.sedとcpp.exeの処理順が逆だった問題を修正しました。
REM #	  これまでは、dRudSeqP.sedを先に処理して、cpp.exeを後で処理していたため、#includeしたスクリプトに対してdRudSeqP.sedが適用されない問題がありました。
REM #	  今回、cpp.exeを先に処理して、dRudSeqP.sedを後で処理するようにしたので、#includeを使用した場合でも正しくdRudSeqP.sedが適用されるようになりました。
REM #	* Sun Jan 03 21:17:56 JST 2016 Naoyuki Sawa
REM #	- dRudSeqC.exeの'-p'オプションを廃止した事に伴い、当バッチファイルも変更しました。
REM #	  詳細は、/clip/tool/dRudSeqC/winapp.h の同日のコメントを参照して下さい。
REM #	

REM //環境変数'RUDDEF_BIN'が定義されていなければ、テキスト形式で出力します。
IF "%RUDDEF_BIN%" EQU "" (
  dpesc5c.exe %* | cpp.exe | onigsed.exe -f %BATDIR%dRudSeqP.sed > %TMPNAM% ^
   && dRudSeqC.exe -e                                              %TMPNAM% ^
   && DEL %TMPNAM%
  IF ERRORLEVEL 1 EXIT /B 1
REM //環境変数'RUDDEF_BIN'が定義されてたら、バイナリ形式で出力します。
) ELSE (
  dpesc5c.exe %* | cpp.exe | onigsed.exe -f %BATDIR%dRudSeqP.sed > %TMPNAM% ^
   && dRudSeqC.exe -e -o%RUDDEF_BIN%                               %TMPNAM% ^
   && DEL %TMPNAM%
  IF ERRORLEVEL 1 EXIT /B 1
)
