1 @echo off 2 Rem 3 Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line 4 Rem format, or else stock DOS/Windows shells will refuse to run it. 5 Rem 6 Rem This batch file unpacks the Bison distribution while simultaneously 7 Rem renaming some of the files whose names are invalid on DOS or conflict 8 Rem with other file names after truncation to DOS 8+3 namespace. 9 Rem 10 Rem Copyright (C) 2005-2012 Free Software Foundation, Inc. 11 Rem 12 Rem This program is free software: you can redistribute it and/or modify 13 Rem it under the terms of the GNU General Public License as published by 14 Rem the Free Software Foundation, either version 3 of the License, or 15 Rem (at your option) any later version. 16 Rem 17 Rem This program is distributed in the hope that it will be useful, 18 Rem but WITHOUT ANY WARRANTY; without even the implied warranty of 19 Rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 Rem GNU General Public License for more details. 21 Rem 22 Rem You should have received a copy of the GNU General Public License 23 Rem along with this program. If not, see <http://www.gnu.org/licenses/>. 24 Rem 25 Rem 26 Rem Invoke like this: 27 Rem 28 Rem djunpack bison-XYZ.tar.gz 29 Rem or 30 Rem djunpack bison-XYZ.tar.bz2 31 Rem 32 Rem where XYZ is the version number. If the argument includes leading 33 Rem directories, it MUST use backslashes, not forward slashes. 34 Rem 35 36 set ENVIRONMENT_SIZE_TEST_STRING=ENVIRONMENT_SIZE_TEST_STRING 37 if "%ENVIRONMENT_SIZE_TEST_STRING%"=="ENVIRONMENT_SIZE_TEST_STRING" GoTo EnvOk 38 Rem If their environment space is too small, re-exec with a larger one 39 command.com /e:4096 /c %0 %1 40 GoTo End 41 42 :EnvOk 43 set ENVIRONMENT_SIZE_TEST_STRING= 44 if "%1" == "" GoTo NoArgument 45 if not exist %1 GoTo NoArchive 46 Rem Extract top src dir from archive file. 47 djtar -t %1 > top_src.dir 48 Rem The following uses a feature of COPY whereby it does not copy 49 Rem empty files. We need that because the previous line will create 50 Rem an empty fnchange.tmp even if the command failed for some reason. 51 copy top_src.dir junk.tmp > nul 52 if not exist junk.tmp GoTo NoDjTar 53 del junk.tmp 54 sed "1{s/^.*bison-/djtar -x -p -o bison-/;s|$|djgpp/fnchange.lst %%1 > fnchange.tmp|};2,$d" top_src.dir > ext_list.bat 55 Rem See the comment above about the reason for using COPY. 56 copy ext_list.bat junk.tmp > nul 57 if not exist junk.tmp GoTo NoSed 58 del junk.tmp 59 Rem Extract fnchange.lst from archive. 60 call ext_list.bat %1 61 del ext_list.bat 62 sed "1{s|^.*bison-|s/@V@/bison-|;s|$|g|};2,$d" top_src.dir > version.sed 63 sed -f version.sed < fnchange.tmp > fnchange.lst 64 del version.sed 65 del fnchange.tmp 66 del top_src.dir 67 Rem unpack the source distribution 68 djtar -x -n fnchange.lst %1 69 del fnchange.lst 70 GoTo End 71 72 :NoSed 73 del junk.tmp 74 echo FAIL: Sed is not available. 75 GoTo End 76 :NoDjTar 77 del junk.tmp 78 echo FAIL: DJTAR is not available or no fnchange.lst file in %1. 79 GoTo End 80 :NoArchive 81 echo FAIL: the file %1 does not seem to exist. 82 echo Remember that %1 cannot use forward slashes, only backslashes. 83 GoTo End 84 :NoArgument 85 echo FAIL: no archive file has been specified. 86 echo Remember that the file name cannot use forward slashes, only backslashes. 87 :End 88