+func_tmpdir
+trap 'rm -rf "$tmp"' 0 1 2 3 15
+
+# func_lookup_file file
+# looks up a file in $local_gnulib_dir or $gnulib_dir, or combines it through
+# 'patch'.
+# Output:
+# - lookedup_file name of the merged (combined) file
+# - lookedup_tmp true if it is located in the tmp directory, blank otherwise
+func_lookup_file ()
+{
+ lkfile="$1"
+ if test -n "$local_gnulib_dir" && test -f "$local_gnulib_dir/$lkfile"; then
+ lookedup_file="$local_gnulib_dir/$lkfile"
+ lookedup_tmp=
+ else
+ if test -f "$gnulib_dir/$lkfile"; then
+ if test -n "$local_gnulib_dir" && test -f "$local_gnulib_dir/$lkfile.diff"; then
+ lkbase=`echo "$lkfile" | sed -e 's,^.*/,,'`
+ rm -f "$tmp/$lkbase"
+ cp "$gnulib_dir/$lkfile" "$tmp/$lkbase"
+ patch -s "$tmp/$lkbase" < "$local_gnulib_dir/$lkfile.diff" \
+ || func_fatal_error "patch file $local_gnulib_dir/$lkfile.diff didn't apply cleanly"
+ lookedup_file="$tmp/$lkbase"
+ lookedup_tmp=true
+ else
+ lookedup_file="$gnulib_dir/$lkfile"
+ lookedup_tmp=
+ fi
+ else
+ func_fatal_error "file $gnulib_dir/$lkfile not found"
+ fi
+ fi
+}
+