* io.c (rb_open_file): encoding in mode string was ignored if perm is
[ruby-svn.git] / win32 / ifchange.bat
blob8411099020a60674ba277da19445fa04c3cf53c2
1 @echo off\r
2 :: usage: ifchange target temporary\r
3 \r
4 if "%1" == "" goto :end\r
5 \r
6 set dest=%1\r
7 set src=%2\r
8 set dest=%dest:/=\%\r
9 set src=%src:/=\%\r
10 if not "%dest%" == "" if not "%dest%" == "%%dest:/=\%%" goto :nt\r
12 if not exist %2 goto :end\r
14 :: check if fc.exe works.\r
15 echo foo > conftst1.tmp\r
16 echo bar > conftst2.tmp\r
17 fc.exe conftst1.tmp conftst2.tmp > nul\r
18 if not errorlevel 1 goto :brokenfc\r
19 del conftst1.tmp > nul\r
20 del conftst2.tmp > nul\r
22 :: target does not exist or new file differs from it.\r
23 if not exist %1 goto :update\r
24 fc.exe %1 %2 > nul\r
25 if errorlevel 1 goto :update\r
27 :unchange\r
28 echo %1 unchanged.\r
29 del %2\r
30 goto :end\r
32 :brokenfc\r
33 del conftest1.tmp > nul\r
34 del conftest2.tmp > nul\r
35 echo FC.EXE does not work properly.\r
36 echo assuming %1 should be changed.\r
38 :update\r
39 echo %1 updated.\r
40 :: if exist %1 del %1\r
41 dir /b %2\r
42 copy %2 %1\r
43 del %2\r
44 goto :end\r
46 :nt\r
47 if not exist %src% goto :end\r
48 if exist %dest% (\r
49     fc.exe %dest% %src% > nul && (\r
50         echo %dest% unchanged.\r
51         del %src%\r
52         goto :end\r
53     )\r
54 )\r
55 echo %dest% updated.\r
56 copy %src% %dest% > nul\r
57 del %src%\r
59 :end\r