# the configure.ac resides; if it is run from a different directory, the
# check is skipped.
echo " m4_ifval(${macro_prefix_arg}_LIBSOURCES_LIST, ["
- echo " m4_syscmd([test ! -d ]${macro_prefix_arg}_LIBSOURCES_DIR[ ||"
+ echo " m4_syscmd([test ! -d ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[ ||"
echo " for gl_file in ]${macro_prefix_arg}_LIBSOURCES_LIST[ ; do"
- echo " if test ! -r ]${macro_prefix_arg}_LIBSOURCES_DIR[/\$gl_file ; then"
- echo " echo \"missing file ]${macro_prefix_arg}_LIBSOURCES_DIR[/\$gl_file\" >&2"
+ echo " if test ! -r ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[/\$gl_file ; then"
+ echo " echo \"missing file ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[/\$gl_file\" >&2"
echo " exit 1"
echo " fi"
echo " done])dnl"
s,^.*gl_LOCAL_DIR([[ ]*\([^])]*\).*$,cached_local_gnulib_dir="\1",p
}
/gl_MODULES(/ {
+ ta
:a
s/)/)/
tb
func_update_ignorelist ()
{
ignore="$1"
+ if test "$ignore" = .gitignore; then
+ # In a .gitignore file, "foo" applies to the current directory and all
+ # subdirectories, whereas "/foo" applies to the current directory only.
+ anchor='/'
+ escaped_anchor='\/'
+ doubly_escaped_anchor='\\/'
+ else
+ anchor=''
+ escaped_anchor=''
+ doubly_escaped_anchor=''
+ fi
if test -f "$destdir/$dir$ignore"; then
if test -n "$dir_added" || test -n "$dir_removed"; then
- LC_ALL=C sort "$destdir/$dir$ignore" > "$tmp"/ignore
+ sed -e "s|^$anchor||" < "$destdir/$dir$ignore" | LC_ALL=C sort > "$tmp"/ignore
echo "$dir_added" | sed -e '/^$/d' | LC_ALL=C sort -u \
| LC_ALL=C join -v 2 "$tmp"/ignore - > "$tmp"/ignore-added
echo "$dir_removed" | sed -e '/^$/d' | LC_ALL=C sort -u \
if $doit; then
echo "Updating $destdir/$dir$ignore (backup in $destdir/$dir${ignore}~)"
mv -f "$destdir/$dir$ignore" "$destdir/$dir$ignore"~
- sed -e 's,^,/^,' -e 's,$,\$/d,' < "$tmp"/ignore-removed > "$tmp"/sed-ignore-removed
- cat "$destdir/$dir$ignore"~ "$tmp"/ignore-added \
- | sed -f "$tmp"/sed-ignore-removed \
+ { sed -e 's,^,/^,' -e 's,$,\$/d,' < "$tmp"/ignore-removed
+ if test -n "$anchor"; then sed -e "s,^,/^${doubly_escaped_anchor}," -e 's,$,\$/d,' < "$tmp"/ignore-removed; fi
+ } > "$tmp"/sed-ignore-removed
+ { cat "$destdir/$dir$ignore"~
+ sed -e "s|^|$anchor|" < "$tmp"/ignore-added
+ } | sed -f "$tmp"/sed-ignore-removed \
> "$destdir/$dir$ignore"
else
echo "Update $destdir/$dir$ignore (backup in $destdir/$dir${ignore}~)"
# Automake generates Makefile rules that create .dirstamp files.
echo ".dirstamp"
fi
- echo "$dir_added" | sed -e '/^$/d' | LC_ALL=C sort -u
+ echo "$dir_added" | sed -e '/^$/d' -e "s|^|$anchor|" | LC_ALL=C sort -u
} > "$destdir/$dir$ignore"
else
echo "Create $destdir/$dir$ignore"