]> git.saurik.com Git - bison.git/blob - djgpp/djunpack.bat
Work around a bug in bro 0.8, which underparenthesizes its
[bison.git] / djgpp / djunpack.bat
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 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 2, or (at your option)
15 Rem 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, write to the Free Software Foundation,
24 Rem Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
25 Rem
26 Rem
27 Rem Invoke like this:
28 Rem
29 Rem djunpack bison-XYZ.tar
30 Rem
31 Rem where XYZ is the version number. If the argument includes leading
32 Rem directories, it MUST use backslashes, not forward slashes.
33 Rem
34 Rem The following 2 lines need to be changed with each new Bison release, to
35 Rem be identical to the name of the top-level directory where the Bison
36 Rem distribution unpacks itself.
37 set ENVIRONMENT_SIZE_TEST_STRING=ENVIRONMENT_SIZE_TEST_STRING
38 if "%ENVIRONMENT_SIZE_TEST_STRING%"=="ENVIRONMENT_SIZE_TEST_STRING" GoTo EnvOk
39 Rem If their environment space is too small, re-exec with a larger one
40 command.com /e:4096 /c %0 %1
41 GoTo End
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 :NoSed
72 del junk.tmp
73 echo FAIL: Sed is not available.
74 GoTo End
75 :NoDjTar
76 del junk.tmp
77 echo FAIL: DJTAR is not available or no fnchange.lst file in %1.
78 GoTo End
79 :NoArchive
80 echo FAIL: the file %1 does not seem to exist.
81 echo Remember that %1 cannot use forward slashes, only backslashes.
82 GoTo End
83 :NoArgument
84 echo FAIL: no archive file has been specified.
85 echo Remember that the file name cannot use forward slashes, only backslashes.
86 :End