mirror of
https://https.git.savannah.gnu.org/git/groff.git
synced 2026-01-26 15:39:07 +00:00
* src/libs/libgroff/searchpath.cpp (is_directory): New function uses stat(2) to check file name argument to see if it's a directory, and returns a Boolean. (search_path::open_file): (search_path::open_file_cautious): Use `is_directory()` before attempting to `fopen()` a file specification; fail and set `errno` to `EISDIR` if it's a directory so that the caller reports a useful diagnostic. * bootstrap.conf: Add gnulib `stat` module, because the story of POSIX and non-POSIX systems alike trying and failing to sensibly implement the fundamental Unix file system model is a sorry tale of indifference and self-owns by rock star programmers. (Seriously, read the "sys/stat.h" and "stat" sections of the gnulib manual.) Fixes <https://savannah.gnu.org/bugs/?65980>. Thanks to Dave Kemper for the report.
110 lines
2.9 KiB
Plaintext
110 lines
2.9 KiB
Plaintext
# Bootstrap configuration.
|
|
|
|
# Copyright (C) 2006-2022 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 <https://www.gnu.org/licenses/>.
|
|
|
|
|
|
# gnulib m4 macro
|
|
m4_base=gnulib_m4
|
|
|
|
# gnulib C source files
|
|
source_base=lib
|
|
|
|
# additional standard files, particularly added by
|
|
# automake --add-missing
|
|
build_aux=build-aux
|
|
|
|
gnulib_name=libgnu
|
|
|
|
# This file is not distributed and used to check if the bootstrap
|
|
# script is not launched on a tarball
|
|
checkout_only_file=README.git
|
|
|
|
# gnulib modules used by this package.
|
|
# havelib provides config.rpath
|
|
# can be get through gettext though
|
|
gnulib_modules="
|
|
attribute
|
|
git-version-gen
|
|
havelib
|
|
wcwidth
|
|
fprintf-posix
|
|
snprintf
|
|
vsnprintf
|
|
stat
|
|
stdbool-c99
|
|
stdint
|
|
sys_wait
|
|
"
|
|
|
|
# Name of the Makefile.am
|
|
gnulib_tool_option_extras="
|
|
--makefile-name=gnulib.mk
|
|
--automake-subdir"
|
|
|
|
# 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
|
|
|
|
# Build prerequisites
|
|
buildreq="\
|
|
autoconf 2.68
|
|
automake 1.12.2
|
|
git 1.5.5
|
|
libtool 2.2.2
|
|
tar -
|
|
pkg-config -
|
|
"
|
|
|
|
bootstrap_post_import_hook ()
|
|
{
|
|
# Automake requires that ChangeLog exist.
|
|
touch ChangeLog || return 1
|
|
}
|