summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
authorJoel E. Denny <jdenny@ces.clemson.edu>2008-04-21 06:54:39 +0000
committerJoel E. Denny <jdenny@ces.clemson.edu>2008-04-21 06:54:39 +0000
commit1cfe6375ce4302e7252d4eb5910a400f292ad1f2 (patch)
treed20817f62e52a8f5862258b8504b9619b185e24c /bootstrap
parent8452fdd914e4a0ed6645f1bfa12134cf74c35a0b (diff)
downloadbison-1cfe6375ce4302e7252d4eb5910a400f292ad1f2.tar.gz
Update to the current gnulib CVS repository, and fix trigraph handling
in Bison. * bootstrap: Update gnulib CVS repository URL. (symlink_to_dir): Encapsulate the code that guarantees the destination directory exists into... (check_dst_dir): ... this new function, and... (cp_mark_as_generated): ... reuse it here so that bootstrap doesn't fail when copying files into lib/uniwidth/. * src/output.c (prepare_symbols): When writing yytname muscles, where symbol names will be encoded in C-string literals, tell quotearg to escape trigraphs. This used to be the default in gnulib. * tests/regression.at (Token definitions): Because of the change in gnulib's quotearg behavior, string_as_id in parse-gram.y no longer escapes trigraphs in symbol names. Thus, yytname no longer has trigraphs unnecessarily doubly escaped. Update test case output. Extend test case to be sure Bison's own error messages will no longer have trigraphs in symbol names unnecessarily escaped once.
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap44
1 files changed, 26 insertions, 18 deletions
diff --git a/bootstrap b/bootstrap
index e0ac7c75..9923ff04 100755
--- a/bootstrap
+++ b/bootstrap
@@ -2,7 +2,8 @@
# Bootstrap this package from checked-out sources.
-# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
+# Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -274,7 +275,7 @@ case ${GNULIB_SRCDIR--} in
trap cleanup_gnulib 1 2 13 15
- cvs -z3 -q -d ${CVS_PREFIX}cvs.savannah.gnu.org:/cvsroot/gnulib co gnulib ||
+ cvs -z3 -q -d ${CVS_PREFIX}pserver.git.sv.gnu.org:/gnulib.git co -d gnulib HEAD ||
cleanup_gnulib
trap - 1 2 13 15
@@ -333,6 +334,27 @@ case $SKIP_PO in
fi;;
esac
+check_dst_dir()
+{
+ dst=$1
+ # If the destination directory doesn't exist, create it.
+ # This is required at least for "lib/uniwidth/cjk.h".
+ dst_dir=`dirname "$dst"`
+ if ! test -d "$dst_dir"; then
+ mkdir -p "$dst_dir"
+
+ # If we've just created a directory like lib/uniwidth,
+ # tell version control system(s) it's ignorable.
+ # FIXME: for now, this does only one level
+ parent=`dirname "$dst_dir"`
+ for dot_ig in x $vc_ignore; do
+ test $dot_ig = x && continue
+ ig=$parent/$dot_ig
+ insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
+ done
+ fi
+}
+
symlink_to_dir()
{
src=$1/$2
@@ -340,22 +362,7 @@ symlink_to_dir()
test -f "$src" && {
- # If the destination directory doesn't exist, create it.
- # This is required at least for "lib/uniwidth/cjk.h".
- dst_dir=`dirname "$dst"`
- if ! test -d "$dst_dir"; then
- mkdir -p "$dst_dir"
-
- # If we've just created a directory like lib/uniwidth,
- # tell version control system(s) it's ignorable.
- # FIXME: for now, this does only one level
- parent=`dirname "$dst_dir"`
- for dot_ig in x $vc_ignore; do
- test $dot_ig = x && continue
- ig=$parent/$dot_ig
- insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
- done
- fi
+ check_dst_dir "$dst"
if $copy; then
{
@@ -419,6 +426,7 @@ cp_mark_as_generated()
sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst"
}
else
+ check_dst_dir "$cp_dst"
# Copy the file first to get proper permissions if it
# doesn't already exist. Then overwrite the copy.
cp "$cp_src" "$cp_dst-t" &&