| 1 | @echo off\r |
| 2 | Rem\r |
| 3 | Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line\r |
| 4 | Rem format, or else stock DOS/Windows shells will refuse to run it.\r |
| 5 | Rem\r |
| 6 | Rem This batch file unpacks the Bison distribution while simultaneously\r |
| 7 | Rem renaming some of the files whose names are invalid on DOS or conflict\r |
| 8 | Rem with other file names after truncation to DOS 8+3 namespace.\r |
| 9 | Rem\r |
| 10 | Rem Invoke like this:\r |
| 11 | Rem\r |
| 12 | Rem djunpack bison-XYZ.tar\r |
| 13 | Rem\r |
| 14 | Rem where XYZ is the version number. If the argument includes leading\r |
| 15 | Rem directories, it MUST use backslashes, not forward slashes.\r |
| 16 | Rem\r |
| 17 | Rem The following 2 lines need to be changed with each new Bison release, to\r |
| 18 | Rem be identical to the name of the top-level directory where the Bison\r |
| 19 | Rem distribution unpacks itself.\r |
| 20 | set ENVIRONMENT_SIZE_TEST_STRING=ENVIRONMENT_SIZE_TEST_STRING\r |
| 21 | if "%ENVIRONMENT_SIZE_TEST_STRING%"=="ENVIRONMENT_SIZE_TEST_STRING" GoTo EnvOk\r |
| 22 | Rem If their environment space is too small, re-exec with a larger one\r |
| 23 | command.com /e:4096 /c %0 %1\r |
| 24 | GoTo End\r |
| 25 | :EnvOk\r |
| 26 | set ENVIRONMENT_SIZE_TEST_STRING=\r |
| 27 | if "%1" == "" GoTo NoArgument\r |
| 28 | if not exist %1 GoTo NoArchive\r |
| 29 | Rem Extract top src dir from archive file.\r |
| 30 | djtar -t %1 > top_src.dir\r |
| 31 | Rem The following uses a feature of COPY whereby it does not copy\r |
| 32 | Rem empty files. We need that because the previous line will create\r |
| 33 | Rem an empty fnchange.tmp even if the command failed for some reason.\r |
| 34 | copy top_src.dir junk.tmp > nul\r |
| 35 | if not exist junk.tmp GoTo NoDjTar\r |
| 36 | del junk.tmp\r |
| 37 | sed "1{s/^.*bison-/djtar -x -p -o bison-/;s|$|djgpp/fnchange.lst %%1 > fnchange.tmp|};2,$d" top_src.dir > ext_list.bat\r |
| 38 | Rem See the comment above about the reason for using COPY.\r |
| 39 | copy ext_list.bat junk.tmp > nul\r |
| 40 | if not exist junk.tmp GoTo NoSed\r |
| 41 | del junk.tmp\r |
| 42 | Rem Extract fnchange.lst from archive.\r |
| 43 | call ext_list.bat %1\r |
| 44 | del ext_list.bat\r |
| 45 | sed "1{s|^.*bison-|s/@V@/bison-|;s|$|g|};2,$d" top_src.dir > version.sed\r |
| 46 | sed -f version.sed < fnchange.tmp > fnchange.lst\r |
| 47 | del version.sed\r |
| 48 | del fnchange.tmp\r |
| 49 | del top_src.dir\r |
| 50 | Rem unpack the source distribution\r |
| 51 | djtar -x -n fnchange.lst %1\r |
| 52 | del fnchange.lst\r |
| 53 | GoTo End\r |
| 54 | :NoSed\r |
| 55 | del junk.tmp\r |
| 56 | echo FAIL: Sed is not available.\r |
| 57 | GoTo End\r |
| 58 | :NoDjTar\r |
| 59 | del junk.tmp\r |
| 60 | echo FAIL: DJTAR is not available or no fnchange.lst file in %1.\r |
| 61 | GoTo End\r |
| 62 | :NoArchive\r |
| 63 | echo FAIL: the file %1 does not seem to exist.\r |
| 64 | echo Remember that %1 cannot use forward slashes, only backslashes.\r |
| 65 | GoTo End\r |
| 66 | :NoArgument\r |
| 67 | echo FAIL: no archive file has been specified.\r |
| 68 | echo Remember that the file name cannot use forward slashes, only backslashes.\r |
| 69 | :End\r |