+@echo off\r
+Rem\r
+Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line\r
+Rem format, or else stock DOS/Windows shells will refuse to run it.\r
+Rem\r
+Rem This batch file unpacks the Bison distribution while simultaneously\r
+Rem renaming some of the files whose names are invalid on DOS or conflict\r
+Rem with other file names after truncation to DOS 8+3 namespace.\r
+Rem\r
+Rem Invoke like this:\r
+Rem\r
+Rem djunpack bison-XYZ.tar\r
+Rem\r
+Rem where XYZ is the version number. If the argument includes leading\r
+Rem directories, it MUST use backslashes, not forward slashes.\r
+Rem\r
+Rem The following 2 lines need to be changed with each new Bison release, to\r
+Rem be identical to the name of the top-level directory where the Bison\r
+Rem distribution unpacks itself.\r
+set ENVIRONMENT_SIZE_TEST_STRING=ENVIRONMENT_SIZE_TEST_STRING\r
+if "%ENVIRONMENT_SIZE_TEST_STRING%"=="ENVIRONMENT_SIZE_TEST_STRING" GoTo EnvOk\r
+Rem If their environment space is too small, re-exec with a larger one\r
+command.com /e:4096 /c %0 %1\r
+GoTo End\r
+:EnvOk\r
+set ENVIRONMENT_SIZE_TEST_STRING=\r
+if "%1" == "" GoTo NoArgument\r
+if not exist %1 GoTo NoArchive\r
+Rem Extract top src dir from archive file.\r
+djtar -t %1 > top_src.dir\r
+Rem The following uses a feature of COPY whereby it does not copy\r
+Rem empty files. We need that because the previous line will create\r
+Rem an empty fnchange.tmp even if the command failed for some reason.\r
+copy top_src.dir junk.tmp > nul\r
+if not exist junk.tmp GoTo NoDjTar\r
+del junk.tmp\r
+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
+Rem See the comment above about the reason for using COPY.\r
+copy ext_list.bat junk.tmp > nul\r
+if not exist junk.tmp GoTo NoSed\r
+del junk.tmp\r
+Rem Extract fnchange.lst from archive.\r
+call ext_list.bat %1\r
+del ext_list.bat\r
+sed "1{s|^.*bison-|s/@V@/bison-|;s|$|g|};2,$d" top_src.dir > version.sed\r
+sed -f version.sed < fnchange.tmp > fnchange.lst\r
+del version.sed\r
+del fnchange.tmp\r
+del top_src.dir\r
+Rem unpack the source distribution\r
+djtar -x -n fnchange.lst %1\r
+del fnchange.lst\r
+GoTo End\r
+:NoSed\r
+del junk.tmp\r
+echo FAIL: Sed is not available.\r
+GoTo End\r
+:NoDjTar\r
+del junk.tmp\r
+echo FAIL: DJTAR is not available or no fnchange.lst file in %1.\r
+GoTo End\r
+:NoArchive\r
+echo FAIL: the file %1 does not seem to exist.\r
+echo Remember that %1 cannot use forward slashes, only backslashes.\r
+GoTo End\r
+:NoArgument\r
+echo FAIL: no archive file has been specified.\r
+echo Remember that the file name cannot use forward slashes, only backslashes.\r
+:End\r