patch/bootstrap.conf
Andreas Gruenbacher 3b4824fb33 Do not delete files immediately
Fixes the bug that more than one numbered backup would be created when a patch
file deletes and recreates a file.
* bootstrap.conf (gnulib_modules): Add linked-list and xlist modules.
* src/util.h (file_id_type): Add DELETE_LATER and OVERWRITTEN types.
(create_backup, set_file_attributes): Update prototype.
(insert_file_id): Add prototype.
* src/util.c (insert_file_id): Export.
(set_file_attributes, create_backup_copy): Make the st argument const.
(create_backup): Pass in to_st instead of returning it from create_backup().
This obsoletes the to_errno argument.
(move_file): Determine to_st here and pass it to create_backup().  Remember
when a file is overwritten.
* src/patch.c (output_file): Add to_st parameter.  Remember files to delete
instead of deleting them immediately.  Pass from-st to create_backup().
(file_to_delete): New struct.
(init_files_to_delete, delete_file_later, delete_files): New functions.
(main): Use init_files_to_delete() and delete_files().  Pass to_st to
output_file() where we already have it.
* src/pch.c (intuit_diff_type): Assume that files which are marked for deletion
don't exist.
2012-04-17 16:48:19 +02:00

115 lines
2.6 KiB
Plaintext

# Bootstrap configuration.
# Copyright (C) 2006-2007, 2009-2012 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
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# gnulib modules used by this package.
gnulib_modules="
argmatch
backupfile
clock-time
diffseq
dirname
dup2
exitfail
extensions
fcntl-h
full-write
getdate
getopt-gnu
gettime
gitlog-to-changelog
git-version-gen
hash
ignore-value
largefile
lchmod
linked-list
lstat
maintainer-makefile
malloc
manywarnings
memchr
minmax
mkdir
progname
quotearg
readlink
realloc
rename
rmdir
setenv
signal
ssize_t
stat-time
stdbool
stdlib
symlink
sys_stat
tempname
time
unistd
unlink
update-copyright
utimens
verror
xalloc
xlist
"
gnulib_tool_option_extras='--symlink --makefile-name=gnulib.mk'
# # Additional xgettext options to use. Use "\\\newline" to break lines.
# XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
# --from-code=UTF-8\\\
# --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\
# --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\
# --flag=wrapf:1:c-format\\\
# '
#
# # If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
# # appears in configure.ac, exclude some unnecessary files.
# # Without grep's -E option (not portable enough, pre-configure),
# # the following test is ugly. Also, this depends on the existence
# # of configure.ac, not the obsolescent-named configure.in. But if
# # you're using this infrastructure, you should care about such things.
#
# gettext_external=0
# grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
# gettext_external=1
# grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
# gettext_external=1
#
# if test $gettext_external = 1; then
# # Gettext supplies these files, but we don't need them since
# # we don't have an intl subdirectory.
# excluded_files='
# m4/glibc2.m4
# m4/intdiv0.m4
# m4/lcmessage.m4
# m4/lock.m4
# m4/printf-posix.m4
# m4/size_max.m4
# m4/uintmax_t.m4
# m4/ulonglong.m4
# m4/visibility.m4
# m4/xsize.m4
# '
# fi
# Automake requires that ChangeLog exist.
touch ChangeLog || exit 1