mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Update Gnulib; add new modules.
This updates Gnulib to v0.0-4889-ge375fe3. * m4/gnulib-cache.m4: Add `accept', `bind', `close', `connect', `getpeername', `getsockname', `getsockopt', `listen', `malloc', `malloca', `recv', `recvfrom', `send', `sendto', `setsockopt', `shutdown', `socket', and `sockets', requested by Jan Nieuwenhuizen <janneke-list@xs4all.nl> for cross-MinGW32 builds. Add `trunc', requested by Mark H Weaver <mhw@netris.org>.
This commit is contained in:
parent
d9a00aa536
commit
49114fd43d
270 changed files with 2964 additions and 4013 deletions
|
@ -5,7 +5,7 @@
|
||||||
# It is necessary if you want to build targets usually of interest
|
# It is necessary if you want to build targets usually of interest
|
||||||
# only to the maintainer.
|
# only to the maintainer.
|
||||||
|
|
||||||
# Copyright (C) 2001, 2003, 2006-2010 Free Software Foundation, Inc.
|
# Copyright (C) 2001, 2003, 2006-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -9,7 +9,7 @@ my $VERSION = '2010-05-03 20:17'; # UTC
|
||||||
# If you change this file with Emacs, please let the write hook
|
# If you change this file with Emacs, please let the write hook
|
||||||
# do its job. Otherwise, update this string manually.
|
# do its job. Otherwise, update this string manually.
|
||||||
|
|
||||||
# Copyright (C) 2002-2010 Free Software Foundation, Inc.
|
# Copyright (C) 2002-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* A C macro for declaring that specific arguments must not be NULL.
|
/* A C macro for declaring that specific arguments must not be NULL.
|
||||||
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published
|
under the terms of the GNU General Public License as published
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
Lesser General Public License for more details.
|
General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* C++ compatible function declaration macros.
|
/* C++ compatible function declaration macros.
|
||||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
Copyright (C) 2010-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published
|
under the terms of the GNU General Public License as published
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
Lesser General Public License for more details.
|
General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Output a system dependent set of variables, describing how to set the
|
# Output a system dependent set of variables, describing how to set the
|
||||||
# run time search path of shared libraries in an executable.
|
# run time search path of shared libraries in an executable.
|
||||||
#
|
#
|
||||||
# Copyright 1996-2010 Free Software Foundation, Inc.
|
# Copyright 1996-2011 Free Software Foundation, Inc.
|
||||||
# Taken from GNU libtool, 2001
|
# Taken from GNU libtool, 2001
|
||||||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
||||||
#
|
#
|
||||||
|
@ -357,9 +357,6 @@ else
|
||||||
dgux*)
|
dgux*)
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
hardcode_libdir_flag_spec='-L$libdir'
|
||||||
;;
|
;;
|
||||||
freebsd1*)
|
|
||||||
ld_shlibs=no
|
|
||||||
;;
|
|
||||||
freebsd2.2*)
|
freebsd2.2*)
|
||||||
hardcode_libdir_flag_spec='-R$libdir'
|
hardcode_libdir_flag_spec='-R$libdir'
|
||||||
hardcode_direct=yes
|
hardcode_direct=yes
|
||||||
|
@ -534,8 +531,6 @@ case "$host_os" in
|
||||||
dgux*)
|
dgux*)
|
||||||
library_names_spec='$libname$shrext'
|
library_names_spec='$libname$shrext'
|
||||||
;;
|
;;
|
||||||
freebsd1*)
|
|
||||||
;;
|
|
||||||
freebsd* | dragonfly*)
|
freebsd* | dragonfly*)
|
||||||
case "$host_os" in
|
case "$host_os" in
|
||||||
freebsd[123]*)
|
freebsd[123]*)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Print a version string.
|
# Print a version string.
|
||||||
scriptversion=2010-10-13.20; # UTC
|
scriptversion=2011-01-04.17; # UTC
|
||||||
|
|
||||||
# Copyright (C) 2007-2010 Free Software Foundation, Inc.
|
# Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -85,14 +85,14 @@ v=
|
||||||
# then try "git describe", then default.
|
# then try "git describe", then default.
|
||||||
if test -f $tarball_version_file
|
if test -f $tarball_version_file
|
||||||
then
|
then
|
||||||
v=`cat $tarball_version_file` || exit 1
|
v=`cat $tarball_version_file` || v=
|
||||||
case $v in
|
case $v in
|
||||||
*$nl*) v= ;; # reject multi-line output
|
*$nl*) v= ;; # reject multi-line output
|
||||||
[0-9]*) ;;
|
[0-9]*) ;;
|
||||||
*) v= ;;
|
*) v= ;;
|
||||||
esac
|
esac
|
||||||
test -z "$v" \
|
test -z "$v" \
|
||||||
&& echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2
|
&& echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "$v"
|
if test -n "$v"
|
||||||
|
@ -103,11 +103,11 @@ then
|
||||||
# derive a version string.
|
# derive a version string.
|
||||||
elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
|
elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
|
||||||
&& v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
|
&& v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
|
||||||
|| git describe --abbrev=4 HEAD 2>/dev/null` \
|
|| git describe --abbrev=4 HEAD 2>/dev/null` \
|
||||||
&& v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
|
&& v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
|
||||||
&& case $v in
|
&& case $v in
|
||||||
v[0-9]*) ;;
|
v[0-9]*) ;;
|
||||||
*) (exit 1) ;;
|
*) (exit 1) ;;
|
||||||
esac
|
esac
|
||||||
then
|
then
|
||||||
# Is this a new git that lists number of commits since the last
|
# Is this a new git that lists number of commits since the last
|
||||||
|
@ -115,16 +115,20 @@ then
|
||||||
# Newer: v6.10-77-g0f8faeb
|
# Newer: v6.10-77-g0f8faeb
|
||||||
# Older: v6.10-g0f8faeb
|
# Older: v6.10-g0f8faeb
|
||||||
case $v in
|
case $v in
|
||||||
*-*-*) : git describe is okay three part flavor ;;
|
*-*-*) : git describe is okay three part flavor ;;
|
||||||
*-*)
|
*-*)
|
||||||
: git describe is older two part flavor
|
: git describe is older two part flavor
|
||||||
# Recreate the number of commits and rewrite such that the
|
# Recreate the number of commits and rewrite such that the
|
||||||
# result is the same as if we were using the newer version
|
# result is the same as if we were using the newer version
|
||||||
# of git describe.
|
# of git describe.
|
||||||
vtag=`echo "$v" | sed 's/-.*//'`
|
vtag=`echo "$v" | sed 's/-.*//'`
|
||||||
numcommits=`git rev-list "$vtag"..HEAD | wc -l`
|
commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \
|
||||||
v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
|
|| { commit_list=failed;
|
||||||
;;
|
echo "$0: WARNING: git rev-list failed" 1>&2; }
|
||||||
|
numcommits=`echo "$commit_list" | wc -l`
|
||||||
|
v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
|
||||||
|
test "$commit_list" = failed && v=UNKNOWN
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Change the first '-' to a '.', so version-comparing tools work properly.
|
# Change the first '-' to a '.', so version-comparing tools work properly.
|
||||||
|
@ -139,14 +143,14 @@ v=`echo "$v" |sed 's/^v//'`
|
||||||
# Don't declare a version "dirty" merely because a time stamp has changed.
|
# Don't declare a version "dirty" merely because a time stamp has changed.
|
||||||
git update-index --refresh > /dev/null 2>&1
|
git update-index --refresh > /dev/null 2>&1
|
||||||
|
|
||||||
dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
|
dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty=
|
||||||
case "$dirty" in
|
case "$dirty" in
|
||||||
'') ;;
|
'') ;;
|
||||||
*) # Append the suffix only if there isn't one already.
|
*) # Append the suffix only if there isn't one already.
|
||||||
case $v in
|
case $v in
|
||||||
*-dirty) ;;
|
*-dirty) ;;
|
||||||
*) v="$v-dirty" ;;
|
*) v="$v-dirty" ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Omit the trailing newline, so that m4_esyscmd can use the result directly.
|
# Omit the trailing newline, so that m4_esyscmd can use the result directly.
|
||||||
|
|
|
@ -9,7 +9,7 @@ my $VERSION = '2009-10-30 13:46'; # UTC
|
||||||
# If you change this file with Emacs, please let the write hook
|
# If you change this file with Emacs, please let the write hook
|
||||||
# do its job. Otherwise, update this string manually.
|
# do its job. Otherwise, update this string manually.
|
||||||
|
|
||||||
# Copyright (C) 2008-2010 Free Software Foundation, Inc.
|
# Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
VERSION=2009-07-21.16; # UTC
|
VERSION=2009-07-21.16; # UTC
|
||||||
|
|
||||||
# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
# Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* A C macro for declaring that specific function parameters are not used.
|
/* A C macro for declaring that specific function parameters are not used.
|
||||||
Copyright (C) 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published
|
under the terms of the GNU General Public License as published
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
Lesser General Public License for more details.
|
General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
|
@ -2,17 +2,15 @@ eval '(exit $?0)' && eval 'exec perl -wST "$0" ${1+"$@"}'
|
||||||
& eval 'exec perl -wST "$0" $argv:q'
|
& eval 'exec perl -wST "$0" $argv:q'
|
||||||
if 0;
|
if 0;
|
||||||
# Detect instances of "if (p) free (p);".
|
# Detect instances of "if (p) free (p);".
|
||||||
# Likewise for "if (p != NULL) free (p);". And with braces.
|
# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
|
||||||
# Also detect "if (NULL != p) free (p);".
|
|
||||||
# And with 0 in place of NULL.
|
|
||||||
|
|
||||||
my $VERSION = '2009-04-16 15:57'; # UTC
|
my $VERSION = '2011-01-09 01:39'; # UTC
|
||||||
# The definition above must lie within the first 8 lines in order
|
# The definition above must lie within the first 8 lines in order
|
||||||
# for the Emacs time-stamp write hook (at end) to update it.
|
# for the Emacs time-stamp write hook (at end) to update it.
|
||||||
# If you change this file with Emacs, please let the write hook
|
# If you change this file with Emacs, please let the write hook
|
||||||
# do its job. Otherwise, update this string manually.
|
# do its job. Otherwise, update this string manually.
|
||||||
|
|
||||||
# Copyright (C) 2008-2010 Free Software Foundation, Inc.
|
# Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -63,7 +61,7 @@ detect free-like functions named FOO and BAR.
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
|
||||||
--list print only the name of each matching FILE (\0-terminated)
|
--list print only the name of each matching FILE (\\0-terminated)
|
||||||
--name=N add name N to the list of \`free\'-like functions to detect;
|
--name=N add name N to the list of \`free\'-like functions to detect;
|
||||||
may be repeated
|
may be repeated
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# Print a version string.
|
# Print a version string.
|
||||||
scriptversion=2010-04-23.22; # UTC
|
scriptversion=2010-04-23.22; # UTC
|
||||||
|
|
||||||
# Copyright (C) 2006-2010 Free Software Foundation, Inc.
|
# Copyright (C) 2006-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* A C macro for emitting warnings if a function is used.
|
/* A C macro for emitting warnings if a function is used.
|
||||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
Copyright (C) 2010-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published
|
under the terms of the GNU General Public License as published
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
Lesser General Public License for more details.
|
General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
446
lib/Makefile.am
446
lib/Makefile.am
|
@ -1,6 +1,6 @@
|
||||||
## DO NOT EDIT! GENERATED AUTOMATICALLY!
|
## DO NOT EDIT! GENERATED AUTOMATICALLY!
|
||||||
## Process this file with automake to produce Makefile.in.
|
## Process this file with automake to produce Makefile.in.
|
||||||
# Copyright (C) 2002-2010 Free Software Foundation, Inc.
|
# Copyright (C) 2002-2011 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software, distributed under the terms of the GNU
|
# This file is free software, distributed under the terms of the GNU
|
||||||
# General Public License. As a special exception to the GNU General
|
# General Public License. As a special exception to the GNU General
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
# the same distribution terms as the rest of that program.
|
# the same distribution terms as the rest of that program.
|
||||||
#
|
#
|
||||||
# Generated by gnulib-tool.
|
# Generated by gnulib-tool.
|
||||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --lgpl=3 --libtool --macro-prefix=gl --no-vc-files alignof alloca-opt announce-gen autobuild byteswap canonicalize-lgpl duplocale environ extensions flock fpieee full-read full-write func gendocs getaddrinfo git-version-gen gitlog-to-changelog gnu-web-doc-update gnupload havelib iconv_open-utf inet_ntop inet_pton isinf isnan lib-symbol-versions lib-symbol-visibility libunistring locale maintainer-makefile nproc putenv stat-time stdlib strcase strftime striconveh string sys_stat verify version-etc-fsf vsnprintf warnings
|
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --lgpl=3 --libtool --macro-prefix=gl --no-vc-files accept alignof alloca-opt announce-gen autobuild bind byteswap canonicalize-lgpl close connect duplocale environ extensions flock fpieee full-read full-write func gendocs getaddrinfo getpeername getsockname getsockopt git-version-gen gitlog-to-changelog gnu-web-doc-update gnupload havelib iconv_open-utf inet_ntop inet_pton isinf isnan lib-symbol-versions lib-symbol-visibility libunistring listen locale maintainer-makefile malloc malloca nproc putenv recv recvfrom send sendto setsockopt shutdown socket sockets stat-time stdlib strcase strftime striconveh string sys_stat trunc verify version-etc-fsf vsnprintf warnings
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
|
AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
|
||||||
|
|
||||||
|
@ -49,6 +49,16 @@ libgnu_la_LDFLAGS += $(LTLIBICONV)
|
||||||
libgnu_la_LDFLAGS += $(LTLIBINTL)
|
libgnu_la_LDFLAGS += $(LTLIBINTL)
|
||||||
libgnu_la_LDFLAGS += $(LTLIBUNISTRING)
|
libgnu_la_LDFLAGS += $(LTLIBUNISTRING)
|
||||||
libgnu_la_LDFLAGS += $(SERVENT_LIB)
|
libgnu_la_LDFLAGS += $(SERVENT_LIB)
|
||||||
|
libgnu_la_LDFLAGS += $(TRUNC_LIBM)
|
||||||
|
|
||||||
|
## begin gnulib module accept
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += accept.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += accept.c
|
||||||
|
|
||||||
|
## end gnulib module accept
|
||||||
|
|
||||||
## begin gnulib module alignof
|
## begin gnulib module alignof
|
||||||
|
|
||||||
|
@ -112,7 +122,7 @@ BUILT_SOURCES += arpa/inet.h
|
||||||
|
|
||||||
# We need the following in order to create <arpa/inet.h> when the system
|
# We need the following in order to create <arpa/inet.h> when the system
|
||||||
# doesn't have one.
|
# doesn't have one.
|
||||||
arpa/inet.h: arpa_inet.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
|
arpa/inet.h: arpa_inet.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
|
||||||
$(AM_V_at)$(MKDIR_P) arpa
|
$(AM_V_at)$(MKDIR_P) arpa
|
||||||
$(AM_V_GEN)rm -f $@-t $@ && \
|
$(AM_V_GEN)rm -f $@-t $@ && \
|
||||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
||||||
|
@ -126,6 +136,7 @@ arpa/inet.h: arpa_inet.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
|
||||||
-e 's|@''GNULIB_INET_PTON''@|$(GNULIB_INET_PTON)|g' \
|
-e 's|@''GNULIB_INET_PTON''@|$(GNULIB_INET_PTON)|g' \
|
||||||
-e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \
|
-e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \
|
||||||
-e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \
|
-e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \
|
||||||
|
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
||||||
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
||||||
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
|
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
|
||||||
< $(srcdir)/arpa_inet.in.h; \
|
< $(srcdir)/arpa_inet.in.h; \
|
||||||
|
@ -138,6 +149,15 @@ EXTRA_DIST += arpa_inet.in.h
|
||||||
|
|
||||||
## end gnulib module arpa_inet
|
## end gnulib module arpa_inet
|
||||||
|
|
||||||
|
## begin gnulib module bind
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += bind.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += bind.c
|
||||||
|
|
||||||
|
## end gnulib module bind
|
||||||
|
|
||||||
## begin gnulib module byteswap
|
## begin gnulib module byteswap
|
||||||
|
|
||||||
BUILT_SOURCES += $(BYTESWAP_H)
|
BUILT_SOURCES += $(BYTESWAP_H)
|
||||||
|
@ -208,6 +228,15 @@ EXTRA_libgnu_la_SOURCES += canonicalize-lgpl.c
|
||||||
|
|
||||||
## end gnulib module canonicalize-lgpl
|
## end gnulib module canonicalize-lgpl
|
||||||
|
|
||||||
|
## begin gnulib module close
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += close.c
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += close.c
|
||||||
|
|
||||||
|
## end gnulib module close
|
||||||
|
|
||||||
## begin gnulib module close-hook
|
## begin gnulib module close-hook
|
||||||
|
|
||||||
libgnu_la_SOURCES += close-hook.c
|
libgnu_la_SOURCES += close-hook.c
|
||||||
|
@ -216,67 +245,14 @@ EXTRA_DIST += close-hook.h
|
||||||
|
|
||||||
## end gnulib module close-hook
|
## end gnulib module close-hook
|
||||||
|
|
||||||
## begin gnulib module configmake
|
## begin gnulib module connect
|
||||||
|
|
||||||
# Retrieve values of the variables through 'configure' followed by
|
|
||||||
# 'make', not directly through 'configure', so that a user who
|
|
||||||
# sets some of these variables consistently on the 'make' command
|
|
||||||
# line gets correct results.
|
|
||||||
#
|
|
||||||
# One advantage of this approach, compared to the classical
|
|
||||||
# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
|
|
||||||
# is that it protects against the use of undefined variables.
|
|
||||||
# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
|
|
||||||
# defined by this module, and code using LIBDIR gives a
|
|
||||||
# compilation error.
|
|
||||||
#
|
|
||||||
# Another advantage is that 'make' output is shorter.
|
|
||||||
#
|
|
||||||
# Listed in the same order as the GNU makefile conventions, and
|
|
||||||
# provided by autoconf 2.59c+.
|
|
||||||
# The Automake-defined pkg* macros are appended, in the order
|
|
||||||
# listed in the Automake 1.10a+ documentation.
|
|
||||||
configmake.h: Makefile
|
|
||||||
$(AM_V_GEN)rm -f $@-t && \
|
|
||||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
|
||||||
echo '#define PREFIX "$(prefix)"'; \
|
|
||||||
echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
|
|
||||||
echo '#define BINDIR "$(bindir)"'; \
|
|
||||||
echo '#define SBINDIR "$(sbindir)"'; \
|
|
||||||
echo '#define LIBEXECDIR "$(libexecdir)"'; \
|
|
||||||
echo '#define DATAROOTDIR "$(datarootdir)"'; \
|
|
||||||
echo '#define DATADIR "$(datadir)"'; \
|
|
||||||
echo '#define SYSCONFDIR "$(sysconfdir)"'; \
|
|
||||||
echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
|
|
||||||
echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
|
|
||||||
echo '#define INCLUDEDIR "$(includedir)"'; \
|
|
||||||
echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
|
|
||||||
echo '#define DOCDIR "$(docdir)"'; \
|
|
||||||
echo '#define INFODIR "$(infodir)"'; \
|
|
||||||
echo '#define HTMLDIR "$(htmldir)"'; \
|
|
||||||
echo '#define DVIDIR "$(dvidir)"'; \
|
|
||||||
echo '#define PDFDIR "$(pdfdir)"'; \
|
|
||||||
echo '#define PSDIR "$(psdir)"'; \
|
|
||||||
echo '#define LIBDIR "$(libdir)"'; \
|
|
||||||
echo '#define LISPDIR "$(lispdir)"'; \
|
|
||||||
echo '#define LOCALEDIR "$(localedir)"'; \
|
|
||||||
echo '#define MANDIR "$(mandir)"'; \
|
|
||||||
echo '#define MANEXT "$(manext)"'; \
|
|
||||||
echo '#define PKGDATADIR "$(pkgdatadir)"'; \
|
|
||||||
echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
|
|
||||||
echo '#define PKGLIBDIR "$(pkglibdir)"'; \
|
|
||||||
echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
|
|
||||||
} | sed '/""/d' > $@-t && \
|
|
||||||
if test -f $@ && cmp $@-t $@ > /dev/null; then \
|
|
||||||
rm -f $@-t; \
|
|
||||||
else \
|
|
||||||
rm -f $@; mv $@-t $@; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
BUILT_SOURCES += configmake.h
|
EXTRA_DIST += connect.c w32sock.h
|
||||||
CLEANFILES += configmake.h configmake.h-t
|
|
||||||
|
|
||||||
## end gnulib module configmake
|
EXTRA_libgnu_la_SOURCES += connect.c
|
||||||
|
|
||||||
|
## end gnulib module connect
|
||||||
|
|
||||||
## begin gnulib module duplocale
|
## begin gnulib module duplocale
|
||||||
|
|
||||||
|
@ -315,6 +291,15 @@ EXTRA_DIST += errno.in.h
|
||||||
|
|
||||||
## end gnulib module errno
|
## end gnulib module errno
|
||||||
|
|
||||||
|
## begin gnulib module fclose
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += fclose.c
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += fclose.c
|
||||||
|
|
||||||
|
## end gnulib module fclose
|
||||||
|
|
||||||
## begin gnulib module float
|
## begin gnulib module float
|
||||||
|
|
||||||
BUILT_SOURCES += $(FLOAT_H)
|
BUILT_SOURCES += $(FLOAT_H)
|
||||||
|
@ -374,6 +359,33 @@ EXTRA_libgnu_la_SOURCES += gai_strerror.c getaddrinfo.c
|
||||||
|
|
||||||
## end gnulib module getaddrinfo
|
## end gnulib module getaddrinfo
|
||||||
|
|
||||||
|
## begin gnulib module getpeername
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += getpeername.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += getpeername.c
|
||||||
|
|
||||||
|
## end gnulib module getpeername
|
||||||
|
|
||||||
|
## begin gnulib module getsockname
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += getsockname.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += getsockname.c
|
||||||
|
|
||||||
|
## end gnulib module getsockname
|
||||||
|
|
||||||
|
## begin gnulib module getsockopt
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += getsockopt.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += getsockopt.c
|
||||||
|
|
||||||
|
## end gnulib module getsockopt
|
||||||
|
|
||||||
## begin gnulib module gettext-h
|
## begin gnulib module gettext-h
|
||||||
|
|
||||||
libgnu_la_SOURCES += gettext.h
|
libgnu_la_SOURCES += gettext.h
|
||||||
|
@ -569,79 +581,14 @@ EXTRA_DIST += libunistring.valgrind
|
||||||
|
|
||||||
## end gnulib module libunistring
|
## end gnulib module libunistring
|
||||||
|
|
||||||
## begin gnulib module localcharset
|
## begin gnulib module listen
|
||||||
|
|
||||||
libgnu_la_SOURCES += localcharset.h localcharset.c
|
|
||||||
|
|
||||||
# We need the following in order to install a simple file in $(libdir)
|
EXTRA_DIST += listen.c w32sock.h
|
||||||
# which is shared with other installed packages. We use a list of referencing
|
|
||||||
# packages so that "make uninstall" will remove the file if and only if it
|
|
||||||
# is not used by another installed package.
|
|
||||||
# On systems with glibc-2.1 or newer, the file is redundant, therefore we
|
|
||||||
# avoid installing it.
|
|
||||||
|
|
||||||
all-local: charset.alias ref-add.sed ref-del.sed
|
EXTRA_libgnu_la_SOURCES += listen.c
|
||||||
|
|
||||||
charset_alias = $(DESTDIR)$(libdir)/charset.alias
|
## end gnulib module listen
|
||||||
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
|
|
||||||
install-exec-local: install-exec-localcharset
|
|
||||||
install-exec-localcharset: all-local
|
|
||||||
if test $(GLIBC21) = no; then \
|
|
||||||
case '$(host_os)' in \
|
|
||||||
darwin[56]*) \
|
|
||||||
need_charset_alias=true ;; \
|
|
||||||
darwin* | cygwin* | mingw* | pw32* | cegcc*) \
|
|
||||||
need_charset_alias=false ;; \
|
|
||||||
*) \
|
|
||||||
need_charset_alias=true ;; \
|
|
||||||
esac ; \
|
|
||||||
else \
|
|
||||||
need_charset_alias=false ; \
|
|
||||||
fi ; \
|
|
||||||
if $$need_charset_alias; then \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(libdir) ; \
|
|
||||||
fi ; \
|
|
||||||
if test -f $(charset_alias); then \
|
|
||||||
sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
|
|
||||||
$(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
|
|
||||||
rm -f $(charset_tmp) ; \
|
|
||||||
else \
|
|
||||||
if $$need_charset_alias; then \
|
|
||||||
sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
|
|
||||||
$(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
|
|
||||||
rm -f $(charset_tmp) ; \
|
|
||||||
fi ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
uninstall-local: uninstall-localcharset
|
|
||||||
uninstall-localcharset: all-local
|
|
||||||
if test -f $(charset_alias); then \
|
|
||||||
sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
|
|
||||||
if grep '^# Packages using this file: $$' $(charset_tmp) \
|
|
||||||
> /dev/null; then \
|
|
||||||
rm -f $(charset_alias); \
|
|
||||||
else \
|
|
||||||
$(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
|
|
||||||
fi; \
|
|
||||||
rm -f $(charset_tmp); \
|
|
||||||
fi
|
|
||||||
|
|
||||||
charset.alias: config.charset
|
|
||||||
$(AM_V_GEN)rm -f t-$@ $@ && \
|
|
||||||
$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \
|
|
||||||
mv t-$@ $@
|
|
||||||
|
|
||||||
SUFFIXES += .sed .sin
|
|
||||||
.sin.sed:
|
|
||||||
$(AM_V_GEN)rm -f t-$@ $@ && \
|
|
||||||
sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \
|
|
||||||
mv t-$@ $@
|
|
||||||
|
|
||||||
CLEANFILES += charset.alias ref-add.sed ref-del.sed
|
|
||||||
|
|
||||||
EXTRA_DIST += config.charset ref-add.sin ref-del.sin
|
|
||||||
|
|
||||||
## end gnulib module localcharset
|
|
||||||
|
|
||||||
## begin gnulib module locale
|
## begin gnulib module locale
|
||||||
|
|
||||||
|
@ -656,9 +603,11 @@ locale.h: locale.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
|
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
|
||||||
-e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
|
-e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
|
||||||
|
-e 's|@''GNULIB_SETLOCALE''@|$(GNULIB_SETLOCALE)|g' \
|
||||||
-e 's|@''GNULIB_DUPLOCALE''@|$(GNULIB_DUPLOCALE)|g' \
|
-e 's|@''GNULIB_DUPLOCALE''@|$(GNULIB_DUPLOCALE)|g' \
|
||||||
-e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
|
-e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
|
||||||
-e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
|
-e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
|
||||||
|
-e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
|
||||||
-e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
|
-e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
|
||||||
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
||||||
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
||||||
|
@ -687,6 +636,15 @@ EXTRA_DIST += $(top_srcdir)/maint.mk
|
||||||
|
|
||||||
## end gnulib module maintainer-makefile
|
## end gnulib module maintainer-makefile
|
||||||
|
|
||||||
|
## begin gnulib module malloc-gnu
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += malloc.c
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += malloc.c
|
||||||
|
|
||||||
|
## end gnulib module malloc-gnu
|
||||||
|
|
||||||
## begin gnulib module malloc-posix
|
## begin gnulib module malloc-posix
|
||||||
|
|
||||||
|
|
||||||
|
@ -720,10 +678,12 @@ math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''GNULIB_ACOSL''@|$(GNULIB_ACOSL)|g' \
|
-e 's|@''GNULIB_ACOSL''@|$(GNULIB_ACOSL)|g' \
|
||||||
-e 's|@''GNULIB_ASINL''@|$(GNULIB_ASINL)|g' \
|
-e 's|@''GNULIB_ASINL''@|$(GNULIB_ASINL)|g' \
|
||||||
-e 's|@''GNULIB_ATANL''@|$(GNULIB_ATANL)|g' \
|
-e 's|@''GNULIB_ATANL''@|$(GNULIB_ATANL)|g' \
|
||||||
|
-e 's|@''GNULIB_CEIL''@|$(GNULIB_CEIL)|g' \
|
||||||
-e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
|
-e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
|
||||||
-e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
|
-e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
|
||||||
-e 's|@''GNULIB_COSL''@|$(GNULIB_COSL)|g' \
|
-e 's|@''GNULIB_COSL''@|$(GNULIB_COSL)|g' \
|
||||||
-e 's|@''GNULIB_EXPL''@|$(GNULIB_EXPL)|g' \
|
-e 's|@''GNULIB_EXPL''@|$(GNULIB_EXPL)|g' \
|
||||||
|
-e 's|@''GNULIB_FLOOR''@|$(GNULIB_FLOOR)|g' \
|
||||||
-e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
|
-e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
|
||||||
-e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
|
-e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
|
||||||
-e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
|
-e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
|
||||||
|
@ -747,7 +707,8 @@ math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
|
-e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
|
||||||
-e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
|
-e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
|
||||||
-e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
|
-e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
|
||||||
-e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \
|
< $(srcdir)/math.in.h | \
|
||||||
|
sed -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \
|
||||||
-e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \
|
-e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \
|
||||||
-e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \
|
-e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \
|
||||||
-e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \
|
-e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \
|
||||||
|
@ -781,8 +742,11 @@ math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
|
-e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
|
||||||
-e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
|
-e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
|
||||||
-e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \
|
-e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \
|
||||||
|
| \
|
||||||
|
sed -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \
|
||||||
-e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
|
-e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
|
||||||
-e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
|
-e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
|
||||||
|
-e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \
|
||||||
-e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
|
-e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
|
||||||
-e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
|
-e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
|
||||||
-e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
|
-e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
|
||||||
|
@ -798,11 +762,12 @@ math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
|
-e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
|
||||||
-e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
|
-e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
|
||||||
-e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
|
-e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
|
||||||
|
-e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \
|
||||||
|
-e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \
|
||||||
-e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \
|
-e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \
|
||||||
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
||||||
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
||||||
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
|
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
|
||||||
< $(srcdir)/math.in.h; \
|
|
||||||
} > $@-t && \
|
} > $@-t && \
|
||||||
mv $@-t $@
|
mv $@-t $@
|
||||||
MOSTLYCLEANFILES += math.h math.h-t
|
MOSTLYCLEANFILES += math.h math.h-t
|
||||||
|
@ -811,33 +776,6 @@ EXTRA_DIST += math.in.h
|
||||||
|
|
||||||
## end gnulib module math
|
## end gnulib module math
|
||||||
|
|
||||||
## begin gnulib module mbrlen
|
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST += mbrlen.c
|
|
||||||
|
|
||||||
EXTRA_libgnu_la_SOURCES += mbrlen.c
|
|
||||||
|
|
||||||
## end gnulib module mbrlen
|
|
||||||
|
|
||||||
## begin gnulib module mbrtowc
|
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST += mbrtowc.c
|
|
||||||
|
|
||||||
EXTRA_libgnu_la_SOURCES += mbrtowc.c
|
|
||||||
|
|
||||||
## end gnulib module mbrtowc
|
|
||||||
|
|
||||||
## begin gnulib module mbsinit
|
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST += mbsinit.c
|
|
||||||
|
|
||||||
EXTRA_libgnu_la_SOURCES += mbsinit.c
|
|
||||||
|
|
||||||
## end gnulib module mbsinit
|
|
||||||
|
|
||||||
## begin gnulib module memchr
|
## begin gnulib module memchr
|
||||||
|
|
||||||
|
|
||||||
|
@ -936,6 +874,24 @@ EXTRA_libgnu_la_SOURCES += readlink.c
|
||||||
|
|
||||||
## end gnulib module readlink
|
## end gnulib module readlink
|
||||||
|
|
||||||
|
## begin gnulib module recv
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += recv.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += recv.c
|
||||||
|
|
||||||
|
## end gnulib module recv
|
||||||
|
|
||||||
|
## begin gnulib module recvfrom
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += recvfrom.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += recvfrom.c
|
||||||
|
|
||||||
|
## end gnulib module recvfrom
|
||||||
|
|
||||||
## begin gnulib module safe-read
|
## begin gnulib module safe-read
|
||||||
|
|
||||||
|
|
||||||
|
@ -954,6 +910,42 @@ EXTRA_libgnu_la_SOURCES += safe-write.c
|
||||||
|
|
||||||
## end gnulib module safe-write
|
## end gnulib module safe-write
|
||||||
|
|
||||||
|
## begin gnulib module send
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += send.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += send.c
|
||||||
|
|
||||||
|
## end gnulib module send
|
||||||
|
|
||||||
|
## begin gnulib module sendto
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += sendto.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += sendto.c
|
||||||
|
|
||||||
|
## end gnulib module sendto
|
||||||
|
|
||||||
|
## begin gnulib module setsockopt
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += setsockopt.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += setsockopt.c
|
||||||
|
|
||||||
|
## end gnulib module setsockopt
|
||||||
|
|
||||||
|
## begin gnulib module shutdown
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += shutdown.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += shutdown.c
|
||||||
|
|
||||||
|
## end gnulib module shutdown
|
||||||
|
|
||||||
## begin gnulib module size_max
|
## begin gnulib module size_max
|
||||||
|
|
||||||
libgnu_la_SOURCES += size_max.h
|
libgnu_la_SOURCES += size_max.h
|
||||||
|
@ -969,6 +961,15 @@ EXTRA_libgnu_la_SOURCES += snprintf.c
|
||||||
|
|
||||||
## end gnulib module snprintf
|
## end gnulib module snprintf
|
||||||
|
|
||||||
|
## begin gnulib module socket
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += socket.c w32sock.h
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += socket.c
|
||||||
|
|
||||||
|
## end gnulib module socket
|
||||||
|
|
||||||
## begin gnulib module sockets
|
## begin gnulib module sockets
|
||||||
|
|
||||||
libgnu_la_SOURCES += sockets.h sockets.c
|
libgnu_la_SOURCES += sockets.h sockets.c
|
||||||
|
@ -1252,7 +1253,8 @@ stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''GNULIB_SYSTEM_POSIX''@|$(GNULIB_SYSTEM_POSIX)|g' \
|
-e 's|@''GNULIB_SYSTEM_POSIX''@|$(GNULIB_SYSTEM_POSIX)|g' \
|
||||||
-e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \
|
-e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \
|
||||||
-e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
|
-e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
|
||||||
-e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
|
< $(srcdir)/stdlib.in.h | \
|
||||||
|
sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
|
||||||
-e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
|
-e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
|
||||||
-e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \
|
-e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \
|
||||||
-e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
|
-e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
|
||||||
|
@ -1288,8 +1290,7 @@ stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
|
-e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
|
||||||
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
||||||
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
||||||
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
|
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
|
||||||
< $(srcdir)/stdlib.in.h; \
|
|
||||||
} > $@-t && \
|
} > $@-t && \
|
||||||
mv $@-t $@
|
mv $@-t $@
|
||||||
MOSTLYCLEANFILES += stdlib.h stdlib.h-t
|
MOSTLYCLEANFILES += stdlib.h stdlib.h-t
|
||||||
|
@ -1307,13 +1308,6 @@ EXTRA_libgnu_la_SOURCES += strcasecmp.c strncasecmp.c
|
||||||
|
|
||||||
## end gnulib module strcase
|
## end gnulib module strcase
|
||||||
|
|
||||||
## begin gnulib module streq
|
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST += streq.h
|
|
||||||
|
|
||||||
## end gnulib module streq
|
|
||||||
|
|
||||||
## begin gnulib module strftime
|
## begin gnulib module strftime
|
||||||
|
|
||||||
|
|
||||||
|
@ -1591,6 +1585,37 @@ EXTRA_DIST += sys_stat.in.h
|
||||||
|
|
||||||
## end gnulib module sys_stat
|
## end gnulib module sys_stat
|
||||||
|
|
||||||
|
## begin gnulib module sys_time
|
||||||
|
|
||||||
|
BUILT_SOURCES += sys/time.h
|
||||||
|
|
||||||
|
# We need the following in order to create <sys/time.h> when the system
|
||||||
|
# doesn't have one that works with the given compiler.
|
||||||
|
sys/time.h: sys_time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
|
$(AM_V_at)$(MKDIR_P) sys
|
||||||
|
$(AM_V_GEN)rm -f $@-t $@ && \
|
||||||
|
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
||||||
|
sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
|
||||||
|
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
|
||||||
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
|
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
|
||||||
|
-e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
|
||||||
|
-e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
|
||||||
|
-e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \
|
||||||
|
-e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
|
||||||
|
-e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
|
||||||
|
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
||||||
|
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
||||||
|
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
|
||||||
|
< $(srcdir)/sys_time.in.h; \
|
||||||
|
} > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
MOSTLYCLEANFILES += sys/time.h sys/time.h-t
|
||||||
|
|
||||||
|
EXTRA_DIST += sys_time.in.h
|
||||||
|
|
||||||
|
## end gnulib module sys_time
|
||||||
|
|
||||||
## begin gnulib module time
|
## begin gnulib module time
|
||||||
|
|
||||||
BUILT_SOURCES += time.h
|
BUILT_SOURCES += time.h
|
||||||
|
@ -1609,7 +1634,7 @@ time.h: time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''GNULIB_STRPTIME''@|$(GNULIB_STRPTIME)|g' \
|
-e 's|@''GNULIB_STRPTIME''@|$(GNULIB_STRPTIME)|g' \
|
||||||
-e 's|@''GNULIB_TIMEGM''@|$(GNULIB_TIMEGM)|g' \
|
-e 's|@''GNULIB_TIMEGM''@|$(GNULIB_TIMEGM)|g' \
|
||||||
-e 's|@''GNULIB_TIME_R''@|$(GNULIB_TIME_R)|g' \
|
-e 's|@''GNULIB_TIME_R''@|$(GNULIB_TIME_R)|g' \
|
||||||
-e 's|@''HAVE_LOCALTIME_R''@|$(HAVE_LOCALTIME_R)|g' \
|
-e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
|
||||||
-e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
|
-e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
|
||||||
-e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
|
-e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
|
||||||
-e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
|
-e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
|
||||||
|
@ -1641,6 +1666,15 @@ EXTRA_libgnu_la_SOURCES += time_r.c
|
||||||
|
|
||||||
## end gnulib module time_r
|
## end gnulib module time_r
|
||||||
|
|
||||||
|
## begin gnulib module trunc
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += trunc.c
|
||||||
|
|
||||||
|
EXTRA_libgnu_la_SOURCES += trunc.c
|
||||||
|
|
||||||
|
## end gnulib module trunc
|
||||||
|
|
||||||
## begin gnulib module unistd
|
## begin gnulib module unistd
|
||||||
|
|
||||||
BUILT_SOURCES += unistd.h
|
BUILT_SOURCES += unistd.h
|
||||||
|
@ -1734,13 +1768,15 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
|
-e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
|
||||||
-e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
|
-e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
|
||||||
-e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
|
-e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
|
||||||
-e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
|
| \
|
||||||
|
sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
|
||||||
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
|
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
|
||||||
-e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
|
-e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
|
||||||
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
|
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
|
||||||
-e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
|
-e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
|
||||||
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
||||||
-e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
|
-e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
|
||||||
|
-e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
|
||||||
-e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
|
-e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
|
||||||
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
|
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
|
||||||
-e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
|
-e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
|
||||||
|
@ -1963,7 +1999,36 @@ wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
|
-e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
|
||||||
-e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
|
-e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
|
||||||
-e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
|
-e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
|
||||||
-e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
|
-e 's|@''GNULIB_WMEMCHR''@|$(GNULIB_WMEMCHR)|g' \
|
||||||
|
-e 's|@''GNULIB_WMEMCMP''@|$(GNULIB_WMEMCMP)|g' \
|
||||||
|
-e 's|@''GNULIB_WMEMCPY''@|$(GNULIB_WMEMCPY)|g' \
|
||||||
|
-e 's|@''GNULIB_WMEMMOVE''@|$(GNULIB_WMEMMOVE)|g' \
|
||||||
|
-e 's|@''GNULIB_WMEMSET''@|$(GNULIB_WMEMSET)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSLEN''@|$(GNULIB_WCSLEN)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSNLEN''@|$(GNULIB_WCSNLEN)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSCPY''@|$(GNULIB_WCSCPY)|g' \
|
||||||
|
-e 's|@''GNULIB_WCPCPY''@|$(GNULIB_WCPCPY)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSNCPY''@|$(GNULIB_WCSNCPY)|g' \
|
||||||
|
-e 's|@''GNULIB_WCPNCPY''@|$(GNULIB_WCPNCPY)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSCAT''@|$(GNULIB_WCSCAT)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSNCAT''@|$(GNULIB_WCSNCAT)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSCMP''@|$(GNULIB_WCSCMP)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSNCMP''@|$(GNULIB_WCSNCMP)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSCASECMP''@|$(GNULIB_WCSCASECMP)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSNCASECMP''@|$(GNULIB_WCSNCASECMP)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSCOLL''@|$(GNULIB_WCSCOLL)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSXFRM''@|$(GNULIB_WCSXFRM)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSDUP''@|$(GNULIB_WCSDUP)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSCHR''@|$(GNULIB_WCSCHR)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSRCHR''@|$(GNULIB_WCSRCHR)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSCSPN''@|$(GNULIB_WCSCSPN)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSSPN''@|$(GNULIB_WCSSPN)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSPBRK''@|$(GNULIB_WCSPBRK)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSSTR''@|$(GNULIB_WCSSTR)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSTOK''@|$(GNULIB_WCSTOK)|g' \
|
||||||
|
-e 's|@''GNULIB_WCSWIDTH''@|$(GNULIB_WCSWIDTH)|g' \
|
||||||
|
< $(srcdir)/wchar.in.h | \
|
||||||
|
sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
|
||||||
-e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
|
-e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
|
||||||
-e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
|
-e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
|
||||||
-e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
|
-e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
|
||||||
|
@ -1973,9 +2038,38 @@ wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
|
-e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
|
||||||
-e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
|
-e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
|
||||||
-e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
|
-e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
|
||||||
|
-e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
|
||||||
|
-e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
|
||||||
|
-e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
|
||||||
|
-e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
|
||||||
|
-e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
|
||||||
|
-e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
|
||||||
|
-e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
|
||||||
|
-e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
|
||||||
|
-e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
|
||||||
|
-e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
|
||||||
|
-e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
|
||||||
|
-e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
|
||||||
|
-e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
|
||||||
|
-e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
|
||||||
|
-e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
|
||||||
|
-e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
|
||||||
|
-e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
|
||||||
|
-e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
|
||||||
|
-e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
|
||||||
|
-e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
|
||||||
|
-e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
|
||||||
|
-e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
|
||||||
|
-e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
|
||||||
|
-e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
|
||||||
|
-e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
|
||||||
|
-e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
|
||||||
|
-e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
|
||||||
|
-e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
|
||||||
-e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
|
-e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
|
||||||
-e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
|
-e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
|
||||||
-e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
|
| \
|
||||||
|
sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
|
||||||
-e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
|
-e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
|
||||||
-e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
|
-e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
|
||||||
-e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
|
-e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
|
||||||
|
@ -1987,10 +2081,10 @@ wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
|
||||||
-e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
|
-e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
|
||||||
-e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
|
-e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
|
||||||
-e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
|
-e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
|
||||||
|
-e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
|
||||||
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
||||||
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
|
||||||
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
|
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
|
||||||
< $(srcdir)/wchar.in.h; \
|
|
||||||
} > $@-t && \
|
} > $@-t && \
|
||||||
mv $@-t $@
|
mv $@-t $@
|
||||||
MOSTLYCLEANFILES += wchar.h wchar.h-t
|
MOSTLYCLEANFILES += wchar.h wchar.h-t
|
||||||
|
|
42
lib/accept.c
Normal file
42
lib/accept.c
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
/* accept.c --- wrappers for Windows accept function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef accept
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_accept (int fd, struct sockaddr *addr, socklen_t *addrlen)
|
||||||
|
{
|
||||||
|
SOCKET fh = accept (FD_TO_SOCKET (fd), addr, addrlen);
|
||||||
|
if (fh == INVALID_SOCKET)
|
||||||
|
{
|
||||||
|
set_winsock_errno ();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return SOCKET_TO_FD (fh);
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/* Determine alignment of types.
|
/* Determine alignment of types.
|
||||||
Copyright (C) 2003-2004, 2006, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2003-2004, 2006, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Memory allocation on the stack.
|
/* Memory allocation on the stack.
|
||||||
|
|
||||||
Copyright (C) 1995, 1999, 2001-2004, 2006-2010 Free Software Foundation,
|
Copyright (C) 1995, 1999, 2001-2004, 2006-2011 Free Software Foundation,
|
||||||
Inc.
|
Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
This program is free software; you can redistribute it and/or modify it
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
General Public License for more details.
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
You should have received a copy of the GNU Lesser General Public
|
||||||
License along with this program; if not, write to the Free Software
|
License along with this program; if not, write to the Free Software
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* A GNU-like <arpa/inet.h>.
|
/* A GNU-like <arpa/inet.h>.
|
||||||
|
|
||||||
Copyright (C) 2005-2006, 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
@ -34,6 +34,12 @@
|
||||||
# include <sys/socket.h>
|
# include <sys/socket.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* On NonStop Kernel, inet_ntop and inet_pton are declared in <netdb.h>.
|
||||||
|
But avoid namespace pollution on glibc systems. */
|
||||||
|
#if defined __TANDEM && !defined __GLIBC__
|
||||||
|
# include <netdb.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if @HAVE_ARPA_INET_H@
|
#if @HAVE_ARPA_INET_H@
|
||||||
|
|
||||||
/* The include_next requires a split double-inclusion guard. */
|
/* The include_next requires a split double-inclusion guard. */
|
||||||
|
@ -44,13 +50,12 @@
|
||||||
#ifndef _GL_ARPA_INET_H
|
#ifndef _GL_ARPA_INET_H
|
||||||
#define _GL_ARPA_INET_H
|
#define _GL_ARPA_INET_H
|
||||||
|
|
||||||
|
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
|
||||||
|
|
||||||
/* The definition of _GL_ARG_NONNULL is copied here. */
|
/* The definition of _GL_ARG_NONNULL is copied here. */
|
||||||
|
|
||||||
/* The definition of _GL_WARN_ON_USE is copied here. */
|
/* The definition of _GL_WARN_ON_USE is copied here. */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if @GNULIB_INET_NTOP@
|
#if @GNULIB_INET_NTOP@
|
||||||
# if !@HAVE_DECL_INET_NTOP@
|
# if !@HAVE_DECL_INET_NTOP@
|
||||||
|
@ -69,10 +74,17 @@ extern "C" {
|
||||||
|
|
||||||
For more details, see the POSIX:2001 specification
|
For more details, see the POSIX:2001 specification
|
||||||
<http://www.opengroup.org/susv3xsh/inet_ntop.html>. */
|
<http://www.opengroup.org/susv3xsh/inet_ntop.html>. */
|
||||||
extern const char *inet_ntop (int af, const void *restrict src,
|
_GL_FUNCDECL_SYS (inet_ntop, const char *,
|
||||||
char *restrict dst, socklen_t cnt)
|
(int af, const void *restrict src,
|
||||||
_GL_ARG_NONNULL ((2, 3));
|
char *restrict dst, socklen_t cnt)
|
||||||
|
_GL_ARG_NONNULL ((2, 3)));
|
||||||
# endif
|
# endif
|
||||||
|
/* Need to cast, because on NonStop Kernel, the fourth parameter is
|
||||||
|
size_t cnt. */
|
||||||
|
_GL_CXXALIAS_SYS_CAST (inet_ntop, const char *,
|
||||||
|
(int af, const void *restrict src,
|
||||||
|
char *restrict dst, socklen_t cnt));
|
||||||
|
_GL_CXXALIASWARN (inet_ntop);
|
||||||
#elif defined GNULIB_POSIXCHECK
|
#elif defined GNULIB_POSIXCHECK
|
||||||
# undef inet_ntop
|
# undef inet_ntop
|
||||||
# if HAVE_RAW_DECL_INET_NTOP
|
# if HAVE_RAW_DECL_INET_NTOP
|
||||||
|
@ -83,9 +95,13 @@ _GL_WARN_ON_USE (inet_ntop, "inet_ntop is unportable - "
|
||||||
|
|
||||||
#if @GNULIB_INET_PTON@
|
#if @GNULIB_INET_PTON@
|
||||||
# if !@HAVE_DECL_INET_PTON@
|
# if !@HAVE_DECL_INET_PTON@
|
||||||
extern int inet_pton (int af, const char *restrict src, void *restrict dst)
|
_GL_FUNCDECL_SYS (inet_pton, int,
|
||||||
_GL_ARG_NONNULL ((2, 3));
|
(int af, const char *restrict src, void *restrict dst)
|
||||||
|
_GL_ARG_NONNULL ((2, 3)));
|
||||||
# endif
|
# endif
|
||||||
|
_GL_CXXALIAS_SYS (inet_pton, int,
|
||||||
|
(int af, const char *restrict src, void *restrict dst));
|
||||||
|
_GL_CXXALIASWARN (inet_pton);
|
||||||
#elif defined GNULIB_POSIXCHECK
|
#elif defined GNULIB_POSIXCHECK
|
||||||
# undef inet_pton
|
# undef inet_pton
|
||||||
# if HAVE_RAW_DECL_INET_PTON
|
# if HAVE_RAW_DECL_INET_PTON
|
||||||
|
@ -94,9 +110,6 @@ _GL_WARN_ON_USE (inet_pton, "inet_pton is unportable - "
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _GL_ARPA_INET_H */
|
#endif /* _GL_ARPA_INET_H */
|
||||||
#endif /* _GL_ARPA_INET_H */
|
#endif /* _GL_ARPA_INET_H */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Formatted output to strings.
|
/* Formatted output to strings.
|
||||||
Copyright (C) 1999, 2002, 2006, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 1999, 2002, 2006, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
40
lib/bind.c
Normal file
40
lib/bind.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* bind.c --- wrappers for Windows bind function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef bind
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_bind (int fd, const struct sockaddr *sockaddr, socklen_t len)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = bind (sock, sockaddr, len);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/* byteswap.h - Byte swapping
|
/* byteswap.h - Byte swapping
|
||||||
Copyright (C) 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
Written by Oskar Liljeblad <oskar@osk.mine.nu>, 2005.
|
Written by Oskar Liljeblad <oskar@osk.mine.nu>, 2005.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Character handling in C locale.
|
/* Character handling in C locale.
|
||||||
|
|
||||||
Copyright 2000-2003, 2006, 2009-2010 Free Software Foundation, Inc.
|
Copyright 2000-2003, 2006, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<ctype.h> functions' behaviour depends on the current locale set via
|
<ctype.h> functions' behaviour depends on the current locale set via
|
||||||
setlocale.
|
setlocale.
|
||||||
|
|
||||||
Copyright (C) 2000-2003, 2006, 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2000-2003, 2006, 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Case-insensitive string comparison functions in C locale.
|
/* Case-insensitive string comparison functions in C locale.
|
||||||
Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2010 Free Software
|
Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2011 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* c-strcasecmp.c -- case insensitive string comparator in C locale
|
/* c-strcasecmp.c -- case insensitive string comparator in C locale
|
||||||
Copyright (C) 1998-1999, 2005-2006, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 1998-1999, 2005-2006, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Optimized case-insensitive string comparison in C locale.
|
/* Optimized case-insensitive string comparison in C locale.
|
||||||
Copyright (C) 2001-2002, 2007, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2001-2002, 2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU Lesser General Public License as published
|
under the terms of the GNU Lesser General Public License as published
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* c-strncasecmp.c -- case insensitive string comparator in C locale
|
/* c-strncasecmp.c -- case insensitive string comparator in C locale
|
||||||
Copyright (C) 1998-1999, 2005-2006, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 1998-1999, 2005-2006, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Return the canonical absolute name of a given file.
|
/* Return the canonical absolute name of a given file.
|
||||||
Copyright (C) 1996-2010 Free Software Foundation, Inc.
|
Copyright (C) 1996-2011 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Hook for making the close() function extensible.
|
/* Hook for making the close() function extensible.
|
||||||
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||||
Written by Bruno Haible <bruno@clisp.org>, 2009.
|
Written by Bruno Haible <bruno@clisp.org>, 2009.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Hook for making the close() function extensible.
|
/* Hook for making the close() function extensible.
|
||||||
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU Lesser General Public License as published
|
under the terms of the GNU Lesser General Public License as published
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
/* Recognize multibyte character.
|
/* close replacement.
|
||||||
Copyright (C) 1999-2000, 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
Written by Bruno Haible <bruno@clisp.org>, 2008.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
@ -18,15 +17,26 @@
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
/* Specification. */
|
/* Specification. */
|
||||||
#include <wchar.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "close-hook.h"
|
||||||
|
|
||||||
static mbstate_t internal_state;
|
/* Override close() to call into other gnulib modules. */
|
||||||
|
|
||||||
size_t
|
int
|
||||||
mbrlen (const char *s, size_t n, mbstate_t *ps)
|
rpl_close (int fd)
|
||||||
|
#undef close
|
||||||
{
|
{
|
||||||
if (ps == NULL)
|
#if WINDOWS_SOCKETS
|
||||||
ps = &internal_state;
|
int retval = execute_all_close_hooks (fd);
|
||||||
return mbrtowc (NULL, s, n, ps);
|
#else
|
||||||
|
int retval = close (fd);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if REPLACE_FCHDIR
|
||||||
|
if (retval >= 0)
|
||||||
|
_gl_unregister_fd (fd);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
|
@ -1,683 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
# Output a system dependent table of character encoding aliases.
|
|
||||||
#
|
|
||||||
# Copyright (C) 2000-2004, 2006-2010 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, 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 Lesser General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
# with this program; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# The table consists of lines of the form
|
|
||||||
# ALIAS CANONICAL
|
|
||||||
#
|
|
||||||
# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
|
|
||||||
# ALIAS is compared in a case sensitive way.
|
|
||||||
#
|
|
||||||
# CANONICAL is the GNU canonical name for this character encoding.
|
|
||||||
# It must be an encoding supported by libiconv. Support by GNU libc is
|
|
||||||
# also desirable. CANONICAL is case insensitive. Usually an upper case
|
|
||||||
# MIME charset name is preferred.
|
|
||||||
# The current list of GNU canonical charset names is as follows.
|
|
||||||
#
|
|
||||||
# name MIME? used by which systems
|
|
||||||
# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin cygwin
|
|
||||||
# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
|
|
||||||
# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
|
|
||||||
# ISO-8859-3 Y glibc solaris cygwin
|
|
||||||
# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin
|
|
||||||
# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
|
|
||||||
# ISO-8859-6 Y glibc aix hpux solaris cygwin
|
|
||||||
# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin
|
|
||||||
# ISO-8859-8 Y glibc aix hpux osf solaris cygwin
|
|
||||||
# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin
|
|
||||||
# ISO-8859-13 glibc netbsd openbsd darwin cygwin
|
|
||||||
# ISO-8859-14 glibc cygwin
|
|
||||||
# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin
|
|
||||||
# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin
|
|
||||||
# KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin
|
|
||||||
# KOI8-T glibc
|
|
||||||
# CP437 dos
|
|
||||||
# CP775 dos
|
|
||||||
# CP850 aix osf dos
|
|
||||||
# CP852 dos
|
|
||||||
# CP855 dos
|
|
||||||
# CP856 aix
|
|
||||||
# CP857 dos
|
|
||||||
# CP861 dos
|
|
||||||
# CP862 dos
|
|
||||||
# CP864 dos
|
|
||||||
# CP865 dos
|
|
||||||
# CP866 freebsd netbsd openbsd darwin dos
|
|
||||||
# CP869 dos
|
|
||||||
# CP874 woe32 dos
|
|
||||||
# CP922 aix
|
|
||||||
# CP932 aix cygwin woe32 dos
|
|
||||||
# CP943 aix
|
|
||||||
# CP949 osf darwin woe32 dos
|
|
||||||
# CP950 woe32 dos
|
|
||||||
# CP1046 aix
|
|
||||||
# CP1124 aix
|
|
||||||
# CP1125 dos
|
|
||||||
# CP1129 aix
|
|
||||||
# CP1131 darwin
|
|
||||||
# CP1250 woe32
|
|
||||||
# CP1251 glibc solaris netbsd openbsd darwin cygwin woe32
|
|
||||||
# CP1252 aix woe32
|
|
||||||
# CP1253 woe32
|
|
||||||
# CP1254 woe32
|
|
||||||
# CP1255 glibc woe32
|
|
||||||
# CP1256 woe32
|
|
||||||
# CP1257 woe32
|
|
||||||
# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin
|
|
||||||
# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin
|
|
||||||
# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
|
|
||||||
# EUC-TW glibc aix hpux irix osf solaris netbsd
|
|
||||||
# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin
|
|
||||||
# BIG5-HKSCS glibc solaris darwin
|
|
||||||
# GBK glibc aix osf solaris darwin cygwin woe32 dos
|
|
||||||
# GB18030 glibc solaris netbsd darwin
|
|
||||||
# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin
|
|
||||||
# JOHAB glibc solaris woe32
|
|
||||||
# TIS-620 glibc aix hpux osf solaris cygwin
|
|
||||||
# VISCII Y glibc
|
|
||||||
# TCVN5712-1 glibc
|
|
||||||
# ARMSCII-8 glibc darwin
|
|
||||||
# GEORGIAN-PS glibc cygwin
|
|
||||||
# PT154 glibc
|
|
||||||
# HP-ROMAN8 hpux
|
|
||||||
# HP-ARABIC8 hpux
|
|
||||||
# HP-GREEK8 hpux
|
|
||||||
# HP-HEBREW8 hpux
|
|
||||||
# HP-TURKISH8 hpux
|
|
||||||
# HP-KANA8 hpux
|
|
||||||
# DEC-KANJI osf
|
|
||||||
# DEC-HANYU osf
|
|
||||||
# UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin
|
|
||||||
#
|
|
||||||
# Note: Names which are not marked as being a MIME name should not be used in
|
|
||||||
# Internet protocols for information interchange (mail, news, etc.).
|
|
||||||
#
|
|
||||||
# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
|
|
||||||
# must understand both names and treat them as equivalent.
|
|
||||||
#
|
|
||||||
# The first argument passed to this file is the canonical host specification,
|
|
||||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
|
||||||
# or
|
|
||||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
|
||||||
|
|
||||||
host="$1"
|
|
||||||
os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
|
|
||||||
echo "# This file contains a table of character encoding aliases,"
|
|
||||||
echo "# suitable for operating system '${os}'."
|
|
||||||
echo "# It was automatically generated from config.charset."
|
|
||||||
# List of references, updated during installation:
|
|
||||||
echo "# Packages using this file: "
|
|
||||||
case "$os" in
|
|
||||||
linux-gnulibc1*)
|
|
||||||
# Linux libc5 doesn't have nl_langinfo(CODESET); therefore
|
|
||||||
# localcharset.c falls back to using the full locale name
|
|
||||||
# from the environment variables.
|
|
||||||
echo "C ASCII"
|
|
||||||
echo "POSIX ASCII"
|
|
||||||
for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
|
|
||||||
en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
|
|
||||||
en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
|
|
||||||
es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
|
|
||||||
et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
|
|
||||||
fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
|
|
||||||
it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
|
|
||||||
sv_FI sv_SE; do
|
|
||||||
echo "$l ISO-8859-1"
|
|
||||||
echo "$l.iso-8859-1 ISO-8859-1"
|
|
||||||
echo "$l.iso-8859-15 ISO-8859-15"
|
|
||||||
echo "$l.iso-8859-15@euro ISO-8859-15"
|
|
||||||
echo "$l@euro ISO-8859-15"
|
|
||||||
echo "$l.cp-437 CP437"
|
|
||||||
echo "$l.cp-850 CP850"
|
|
||||||
echo "$l.cp-1252 CP1252"
|
|
||||||
echo "$l.cp-1252@euro CP1252"
|
|
||||||
#echo "$l.atari-st ATARI-ST" # not a commonly used encoding
|
|
||||||
echo "$l.utf-8 UTF-8"
|
|
||||||
echo "$l.utf-8@euro UTF-8"
|
|
||||||
done
|
|
||||||
for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
|
|
||||||
sl_SI sr sr_CS sr_YU; do
|
|
||||||
echo "$l ISO-8859-2"
|
|
||||||
echo "$l.iso-8859-2 ISO-8859-2"
|
|
||||||
echo "$l.cp-852 CP852"
|
|
||||||
echo "$l.cp-1250 CP1250"
|
|
||||||
echo "$l.utf-8 UTF-8"
|
|
||||||
done
|
|
||||||
for l in mk mk_MK ru ru_RU; do
|
|
||||||
echo "$l ISO-8859-5"
|
|
||||||
echo "$l.iso-8859-5 ISO-8859-5"
|
|
||||||
echo "$l.koi8-r KOI8-R"
|
|
||||||
echo "$l.cp-866 CP866"
|
|
||||||
echo "$l.cp-1251 CP1251"
|
|
||||||
echo "$l.utf-8 UTF-8"
|
|
||||||
done
|
|
||||||
for l in ar ar_SA; do
|
|
||||||
echo "$l ISO-8859-6"
|
|
||||||
echo "$l.iso-8859-6 ISO-8859-6"
|
|
||||||
echo "$l.cp-864 CP864"
|
|
||||||
#echo "$l.cp-868 CP868" # not a commonly used encoding
|
|
||||||
echo "$l.cp-1256 CP1256"
|
|
||||||
echo "$l.utf-8 UTF-8"
|
|
||||||
done
|
|
||||||
for l in el el_GR gr gr_GR; do
|
|
||||||
echo "$l ISO-8859-7"
|
|
||||||
echo "$l.iso-8859-7 ISO-8859-7"
|
|
||||||
echo "$l.cp-869 CP869"
|
|
||||||
echo "$l.cp-1253 CP1253"
|
|
||||||
echo "$l.cp-1253@euro CP1253"
|
|
||||||
echo "$l.utf-8 UTF-8"
|
|
||||||
echo "$l.utf-8@euro UTF-8"
|
|
||||||
done
|
|
||||||
for l in he he_IL iw iw_IL; do
|
|
||||||
echo "$l ISO-8859-8"
|
|
||||||
echo "$l.iso-8859-8 ISO-8859-8"
|
|
||||||
echo "$l.cp-862 CP862"
|
|
||||||
echo "$l.cp-1255 CP1255"
|
|
||||||
echo "$l.utf-8 UTF-8"
|
|
||||||
done
|
|
||||||
for l in tr tr_TR; do
|
|
||||||
echo "$l ISO-8859-9"
|
|
||||||
echo "$l.iso-8859-9 ISO-8859-9"
|
|
||||||
echo "$l.cp-857 CP857"
|
|
||||||
echo "$l.cp-1254 CP1254"
|
|
||||||
echo "$l.utf-8 UTF-8"
|
|
||||||
done
|
|
||||||
for l in lt lt_LT lv lv_LV; do
|
|
||||||
#echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
|
|
||||||
echo "$l ISO-8859-13"
|
|
||||||
done
|
|
||||||
for l in ru_UA uk uk_UA; do
|
|
||||||
echo "$l KOI8-U"
|
|
||||||
done
|
|
||||||
for l in zh zh_CN; do
|
|
||||||
#echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
|
|
||||||
echo "$l GB2312"
|
|
||||||
done
|
|
||||||
for l in ja ja_JP ja_JP.EUC; do
|
|
||||||
echo "$l EUC-JP"
|
|
||||||
done
|
|
||||||
for l in ko ko_KR; do
|
|
||||||
echo "$l EUC-KR"
|
|
||||||
done
|
|
||||||
for l in th th_TH; do
|
|
||||||
echo "$l TIS-620"
|
|
||||||
done
|
|
||||||
for l in fa fa_IR; do
|
|
||||||
#echo "$l ISIRI-3342" # a broken encoding
|
|
||||||
echo "$l.utf-8 UTF-8"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
linux* | *-gnu*)
|
|
||||||
# With glibc-2.1 or newer, we don't need any canonicalization,
|
|
||||||
# because glibc has iconv and both glibc and libiconv support all
|
|
||||||
# GNU canonical names directly. Therefore, the Makefile does not
|
|
||||||
# need to install the alias file at all.
|
|
||||||
# The following applies only to glibc-2.0.x and older libcs.
|
|
||||||
echo "ISO_646.IRV:1983 ASCII"
|
|
||||||
;;
|
|
||||||
aix*)
|
|
||||||
echo "ISO8859-1 ISO-8859-1"
|
|
||||||
echo "ISO8859-2 ISO-8859-2"
|
|
||||||
echo "ISO8859-5 ISO-8859-5"
|
|
||||||
echo "ISO8859-6 ISO-8859-6"
|
|
||||||
echo "ISO8859-7 ISO-8859-7"
|
|
||||||
echo "ISO8859-8 ISO-8859-8"
|
|
||||||
echo "ISO8859-9 ISO-8859-9"
|
|
||||||
echo "ISO8859-15 ISO-8859-15"
|
|
||||||
echo "IBM-850 CP850"
|
|
||||||
echo "IBM-856 CP856"
|
|
||||||
echo "IBM-921 ISO-8859-13"
|
|
||||||
echo "IBM-922 CP922"
|
|
||||||
echo "IBM-932 CP932"
|
|
||||||
echo "IBM-943 CP943"
|
|
||||||
echo "IBM-1046 CP1046"
|
|
||||||
echo "IBM-1124 CP1124"
|
|
||||||
echo "IBM-1129 CP1129"
|
|
||||||
echo "IBM-1252 CP1252"
|
|
||||||
echo "IBM-eucCN GB2312"
|
|
||||||
echo "IBM-eucJP EUC-JP"
|
|
||||||
echo "IBM-eucKR EUC-KR"
|
|
||||||
echo "IBM-eucTW EUC-TW"
|
|
||||||
echo "big5 BIG5"
|
|
||||||
echo "GBK GBK"
|
|
||||||
echo "TIS-620 TIS-620"
|
|
||||||
echo "UTF-8 UTF-8"
|
|
||||||
;;
|
|
||||||
hpux*)
|
|
||||||
echo "iso88591 ISO-8859-1"
|
|
||||||
echo "iso88592 ISO-8859-2"
|
|
||||||
echo "iso88595 ISO-8859-5"
|
|
||||||
echo "iso88596 ISO-8859-6"
|
|
||||||
echo "iso88597 ISO-8859-7"
|
|
||||||
echo "iso88598 ISO-8859-8"
|
|
||||||
echo "iso88599 ISO-8859-9"
|
|
||||||
echo "iso885915 ISO-8859-15"
|
|
||||||
echo "roman8 HP-ROMAN8"
|
|
||||||
echo "arabic8 HP-ARABIC8"
|
|
||||||
echo "greek8 HP-GREEK8"
|
|
||||||
echo "hebrew8 HP-HEBREW8"
|
|
||||||
echo "turkish8 HP-TURKISH8"
|
|
||||||
echo "kana8 HP-KANA8"
|
|
||||||
echo "tis620 TIS-620"
|
|
||||||
echo "big5 BIG5"
|
|
||||||
echo "eucJP EUC-JP"
|
|
||||||
echo "eucKR EUC-KR"
|
|
||||||
echo "eucTW EUC-TW"
|
|
||||||
echo "hp15CN GB2312"
|
|
||||||
#echo "ccdc ?" # what is this?
|
|
||||||
echo "SJIS SHIFT_JIS"
|
|
||||||
echo "utf8 UTF-8"
|
|
||||||
;;
|
|
||||||
irix*)
|
|
||||||
echo "ISO8859-1 ISO-8859-1"
|
|
||||||
echo "ISO8859-2 ISO-8859-2"
|
|
||||||
echo "ISO8859-5 ISO-8859-5"
|
|
||||||
echo "ISO8859-7 ISO-8859-7"
|
|
||||||
echo "ISO8859-9 ISO-8859-9"
|
|
||||||
echo "eucCN GB2312"
|
|
||||||
echo "eucJP EUC-JP"
|
|
||||||
echo "eucKR EUC-KR"
|
|
||||||
echo "eucTW EUC-TW"
|
|
||||||
;;
|
|
||||||
osf*)
|
|
||||||
echo "ISO8859-1 ISO-8859-1"
|
|
||||||
echo "ISO8859-2 ISO-8859-2"
|
|
||||||
echo "ISO8859-4 ISO-8859-4"
|
|
||||||
echo "ISO8859-5 ISO-8859-5"
|
|
||||||
echo "ISO8859-7 ISO-8859-7"
|
|
||||||
echo "ISO8859-8 ISO-8859-8"
|
|
||||||
echo "ISO8859-9 ISO-8859-9"
|
|
||||||
echo "ISO8859-15 ISO-8859-15"
|
|
||||||
echo "cp850 CP850"
|
|
||||||
echo "big5 BIG5"
|
|
||||||
echo "dechanyu DEC-HANYU"
|
|
||||||
echo "dechanzi GB2312"
|
|
||||||
echo "deckanji DEC-KANJI"
|
|
||||||
echo "deckorean EUC-KR"
|
|
||||||
echo "eucJP EUC-JP"
|
|
||||||
echo "eucKR EUC-KR"
|
|
||||||
echo "eucTW EUC-TW"
|
|
||||||
echo "GBK GBK"
|
|
||||||
echo "KSC5601 CP949"
|
|
||||||
echo "sdeckanji EUC-JP"
|
|
||||||
echo "SJIS SHIFT_JIS"
|
|
||||||
echo "TACTIS TIS-620"
|
|
||||||
echo "UTF-8 UTF-8"
|
|
||||||
;;
|
|
||||||
solaris*)
|
|
||||||
echo "646 ASCII"
|
|
||||||
echo "ISO8859-1 ISO-8859-1"
|
|
||||||
echo "ISO8859-2 ISO-8859-2"
|
|
||||||
echo "ISO8859-3 ISO-8859-3"
|
|
||||||
echo "ISO8859-4 ISO-8859-4"
|
|
||||||
echo "ISO8859-5 ISO-8859-5"
|
|
||||||
echo "ISO8859-6 ISO-8859-6"
|
|
||||||
echo "ISO8859-7 ISO-8859-7"
|
|
||||||
echo "ISO8859-8 ISO-8859-8"
|
|
||||||
echo "ISO8859-9 ISO-8859-9"
|
|
||||||
echo "ISO8859-15 ISO-8859-15"
|
|
||||||
echo "koi8-r KOI8-R"
|
|
||||||
echo "ansi-1251 CP1251"
|
|
||||||
echo "BIG5 BIG5"
|
|
||||||
echo "Big5-HKSCS BIG5-HKSCS"
|
|
||||||
echo "gb2312 GB2312"
|
|
||||||
echo "GBK GBK"
|
|
||||||
echo "GB18030 GB18030"
|
|
||||||
echo "cns11643 EUC-TW"
|
|
||||||
echo "5601 EUC-KR"
|
|
||||||
echo "ko_KR.johap92 JOHAB"
|
|
||||||
echo "eucJP EUC-JP"
|
|
||||||
echo "PCK SHIFT_JIS"
|
|
||||||
echo "TIS620.2533 TIS-620"
|
|
||||||
#echo "sun_eu_greek ?" # what is this?
|
|
||||||
echo "UTF-8 UTF-8"
|
|
||||||
;;
|
|
||||||
freebsd* | os2*)
|
|
||||||
# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
|
|
||||||
# localcharset.c falls back to using the full locale name
|
|
||||||
# from the environment variables.
|
|
||||||
# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
|
|
||||||
# reuse FreeBSD's locale data for OS/2.
|
|
||||||
echo "C ASCII"
|
|
||||||
echo "US-ASCII ASCII"
|
|
||||||
for l in la_LN lt_LN; do
|
|
||||||
echo "$l.ASCII ASCII"
|
|
||||||
done
|
|
||||||
for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
|
|
||||||
fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
|
|
||||||
lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
|
|
||||||
echo "$l.ISO_8859-1 ISO-8859-1"
|
|
||||||
echo "$l.DIS_8859-15 ISO-8859-15"
|
|
||||||
done
|
|
||||||
for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
|
|
||||||
echo "$l.ISO_8859-2 ISO-8859-2"
|
|
||||||
done
|
|
||||||
for l in la_LN lt_LT; do
|
|
||||||
echo "$l.ISO_8859-4 ISO-8859-4"
|
|
||||||
done
|
|
||||||
for l in ru_RU ru_SU; do
|
|
||||||
echo "$l.KOI8-R KOI8-R"
|
|
||||||
echo "$l.ISO_8859-5 ISO-8859-5"
|
|
||||||
echo "$l.CP866 CP866"
|
|
||||||
done
|
|
||||||
echo "uk_UA.KOI8-U KOI8-U"
|
|
||||||
echo "zh_TW.BIG5 BIG5"
|
|
||||||
echo "zh_TW.Big5 BIG5"
|
|
||||||
echo "zh_CN.EUC GB2312"
|
|
||||||
echo "ja_JP.EUC EUC-JP"
|
|
||||||
echo "ja_JP.SJIS SHIFT_JIS"
|
|
||||||
echo "ja_JP.Shift_JIS SHIFT_JIS"
|
|
||||||
echo "ko_KR.EUC EUC-KR"
|
|
||||||
;;
|
|
||||||
netbsd*)
|
|
||||||
echo "646 ASCII"
|
|
||||||
echo "ISO8859-1 ISO-8859-1"
|
|
||||||
echo "ISO8859-2 ISO-8859-2"
|
|
||||||
echo "ISO8859-4 ISO-8859-4"
|
|
||||||
echo "ISO8859-5 ISO-8859-5"
|
|
||||||
echo "ISO8859-7 ISO-8859-7"
|
|
||||||
echo "ISO8859-13 ISO-8859-13"
|
|
||||||
echo "ISO8859-15 ISO-8859-15"
|
|
||||||
echo "eucCN GB2312"
|
|
||||||
echo "eucJP EUC-JP"
|
|
||||||
echo "eucKR EUC-KR"
|
|
||||||
echo "eucTW EUC-TW"
|
|
||||||
echo "BIG5 BIG5"
|
|
||||||
echo "SJIS SHIFT_JIS"
|
|
||||||
;;
|
|
||||||
openbsd*)
|
|
||||||
echo "646 ASCII"
|
|
||||||
echo "ISO8859-1 ISO-8859-1"
|
|
||||||
echo "ISO8859-2 ISO-8859-2"
|
|
||||||
echo "ISO8859-4 ISO-8859-4"
|
|
||||||
echo "ISO8859-5 ISO-8859-5"
|
|
||||||
echo "ISO8859-7 ISO-8859-7"
|
|
||||||
echo "ISO8859-13 ISO-8859-13"
|
|
||||||
echo "ISO8859-15 ISO-8859-15"
|
|
||||||
;;
|
|
||||||
darwin[56]*)
|
|
||||||
# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
|
|
||||||
# localcharset.c falls back to using the full locale name
|
|
||||||
# from the environment variables.
|
|
||||||
echo "C ASCII"
|
|
||||||
for l in en_AU en_CA en_GB en_US la_LN; do
|
|
||||||
echo "$l.US-ASCII ASCII"
|
|
||||||
done
|
|
||||||
for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
|
|
||||||
fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
|
|
||||||
nl_NL no_NO pt_PT sv_SE; do
|
|
||||||
echo "$l ISO-8859-1"
|
|
||||||
echo "$l.ISO8859-1 ISO-8859-1"
|
|
||||||
echo "$l.ISO8859-15 ISO-8859-15"
|
|
||||||
done
|
|
||||||
for l in la_LN; do
|
|
||||||
echo "$l.ISO8859-1 ISO-8859-1"
|
|
||||||
echo "$l.ISO8859-15 ISO-8859-15"
|
|
||||||
done
|
|
||||||
for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
|
|
||||||
echo "$l.ISO8859-2 ISO-8859-2"
|
|
||||||
done
|
|
||||||
for l in la_LN lt_LT; do
|
|
||||||
echo "$l.ISO8859-4 ISO-8859-4"
|
|
||||||
done
|
|
||||||
for l in ru_RU; do
|
|
||||||
echo "$l.KOI8-R KOI8-R"
|
|
||||||
echo "$l.ISO8859-5 ISO-8859-5"
|
|
||||||
echo "$l.CP866 CP866"
|
|
||||||
done
|
|
||||||
for l in bg_BG; do
|
|
||||||
echo "$l.CP1251 CP1251"
|
|
||||||
done
|
|
||||||
echo "uk_UA.KOI8-U KOI8-U"
|
|
||||||
echo "zh_TW.BIG5 BIG5"
|
|
||||||
echo "zh_TW.Big5 BIG5"
|
|
||||||
echo "zh_CN.EUC GB2312"
|
|
||||||
echo "ja_JP.EUC EUC-JP"
|
|
||||||
echo "ja_JP.SJIS SHIFT_JIS"
|
|
||||||
echo "ko_KR.EUC EUC-KR"
|
|
||||||
;;
|
|
||||||
darwin*)
|
|
||||||
# Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is
|
|
||||||
# useless:
|
|
||||||
# - It returns the empty string when LANG is set to a locale of the
|
|
||||||
# form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
|
|
||||||
# LC_CTYPE file.
|
|
||||||
# - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
|
|
||||||
# the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
|
|
||||||
# - The documentation says:
|
|
||||||
# "... all code that calls BSD system routines should ensure
|
|
||||||
# that the const *char parameters of these routines are in UTF-8
|
|
||||||
# encoding. All BSD system functions expect their string
|
|
||||||
# parameters to be in UTF-8 encoding and nothing else."
|
|
||||||
# It also says
|
|
||||||
# "An additional caveat is that string parameters for files,
|
|
||||||
# paths, and other file-system entities must be in canonical
|
|
||||||
# UTF-8. In a canonical UTF-8 Unicode string, all decomposable
|
|
||||||
# characters are decomposed ..."
|
|
||||||
# but this is not true: You can pass non-decomposed UTF-8 strings
|
|
||||||
# to file system functions, and it is the OS which will convert
|
|
||||||
# them to decomposed UTF-8 before accessing the file system.
|
|
||||||
# - The Apple Terminal application displays UTF-8 by default.
|
|
||||||
# - However, other applications are free to use different encodings:
|
|
||||||
# - xterm uses ISO-8859-1 by default.
|
|
||||||
# - TextEdit uses MacRoman by default.
|
|
||||||
# We prefer UTF-8 over decomposed UTF-8-MAC because one should
|
|
||||||
# minimize the use of decomposed Unicode. Unfortunately, through the
|
|
||||||
# Darwin file system, decomposed UTF-8 strings are leaked into user
|
|
||||||
# space nevertheless.
|
|
||||||
# Then there are also the locales with encodings other than US-ASCII
|
|
||||||
# and UTF-8. These locales can be occasionally useful to users (e.g.
|
|
||||||
# when grepping through ISO-8859-1 encoded text files), when all their
|
|
||||||
# file names are in US-ASCII.
|
|
||||||
echo "ISO8859-1 ISO-8859-1"
|
|
||||||
echo "ISO8859-2 ISO-8859-2"
|
|
||||||
echo "ISO8859-4 ISO-8859-4"
|
|
||||||
echo "ISO8859-5 ISO-8859-5"
|
|
||||||
echo "ISO8859-7 ISO-8859-7"
|
|
||||||
echo "ISO8859-9 ISO-8859-9"
|
|
||||||
echo "ISO8859-13 ISO-8859-13"
|
|
||||||
echo "ISO8859-15 ISO-8859-15"
|
|
||||||
echo "KOI8-R KOI8-R"
|
|
||||||
echo "KOI8-U KOI8-U"
|
|
||||||
echo "CP866 CP866"
|
|
||||||
echo "CP949 CP949"
|
|
||||||
echo "CP1131 CP1131"
|
|
||||||
echo "CP1251 CP1251"
|
|
||||||
echo "eucCN GB2312"
|
|
||||||
echo "GB2312 GB2312"
|
|
||||||
echo "eucJP EUC-JP"
|
|
||||||
echo "eucKR EUC-KR"
|
|
||||||
echo "Big5 BIG5"
|
|
||||||
echo "Big5HKSCS BIG5-HKSCS"
|
|
||||||
echo "GBK GBK"
|
|
||||||
echo "GB18030 GB18030"
|
|
||||||
echo "SJIS SHIFT_JIS"
|
|
||||||
echo "ARMSCII-8 ARMSCII-8"
|
|
||||||
echo "PT154 PT154"
|
|
||||||
#echo "ISCII-DEV ?"
|
|
||||||
echo "* UTF-8"
|
|
||||||
;;
|
|
||||||
beos* | haiku*)
|
|
||||||
# BeOS and Haiku have a single locale, and it has UTF-8 encoding.
|
|
||||||
echo "* UTF-8"
|
|
||||||
;;
|
|
||||||
msdosdjgpp*)
|
|
||||||
# DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
|
|
||||||
# localcharset.c falls back to using the full locale name
|
|
||||||
# from the environment variables.
|
|
||||||
echo "#"
|
|
||||||
echo "# The encodings given here may not all be correct."
|
|
||||||
echo "# If you find that the encoding given for your language and"
|
|
||||||
echo "# country is not the one your DOS machine actually uses, just"
|
|
||||||
echo "# correct it in this file, and send a mail to"
|
|
||||||
echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>"
|
|
||||||
echo "# and Bruno Haible <bruno@clisp.org>."
|
|
||||||
echo "#"
|
|
||||||
echo "C ASCII"
|
|
||||||
# ISO-8859-1 languages
|
|
||||||
echo "ca CP850"
|
|
||||||
echo "ca_ES CP850"
|
|
||||||
echo "da CP865" # not CP850 ??
|
|
||||||
echo "da_DK CP865" # not CP850 ??
|
|
||||||
echo "de CP850"
|
|
||||||
echo "de_AT CP850"
|
|
||||||
echo "de_CH CP850"
|
|
||||||
echo "de_DE CP850"
|
|
||||||
echo "en CP850"
|
|
||||||
echo "en_AU CP850" # not CP437 ??
|
|
||||||
echo "en_CA CP850"
|
|
||||||
echo "en_GB CP850"
|
|
||||||
echo "en_NZ CP437"
|
|
||||||
echo "en_US CP437"
|
|
||||||
echo "en_ZA CP850" # not CP437 ??
|
|
||||||
echo "es CP850"
|
|
||||||
echo "es_AR CP850"
|
|
||||||
echo "es_BO CP850"
|
|
||||||
echo "es_CL CP850"
|
|
||||||
echo "es_CO CP850"
|
|
||||||
echo "es_CR CP850"
|
|
||||||
echo "es_CU CP850"
|
|
||||||
echo "es_DO CP850"
|
|
||||||
echo "es_EC CP850"
|
|
||||||
echo "es_ES CP850"
|
|
||||||
echo "es_GT CP850"
|
|
||||||
echo "es_HN CP850"
|
|
||||||
echo "es_MX CP850"
|
|
||||||
echo "es_NI CP850"
|
|
||||||
echo "es_PA CP850"
|
|
||||||
echo "es_PY CP850"
|
|
||||||
echo "es_PE CP850"
|
|
||||||
echo "es_SV CP850"
|
|
||||||
echo "es_UY CP850"
|
|
||||||
echo "es_VE CP850"
|
|
||||||
echo "et CP850"
|
|
||||||
echo "et_EE CP850"
|
|
||||||
echo "eu CP850"
|
|
||||||
echo "eu_ES CP850"
|
|
||||||
echo "fi CP850"
|
|
||||||
echo "fi_FI CP850"
|
|
||||||
echo "fr CP850"
|
|
||||||
echo "fr_BE CP850"
|
|
||||||
echo "fr_CA CP850"
|
|
||||||
echo "fr_CH CP850"
|
|
||||||
echo "fr_FR CP850"
|
|
||||||
echo "ga CP850"
|
|
||||||
echo "ga_IE CP850"
|
|
||||||
echo "gd CP850"
|
|
||||||
echo "gd_GB CP850"
|
|
||||||
echo "gl CP850"
|
|
||||||
echo "gl_ES CP850"
|
|
||||||
echo "id CP850" # not CP437 ??
|
|
||||||
echo "id_ID CP850" # not CP437 ??
|
|
||||||
echo "is CP861" # not CP850 ??
|
|
||||||
echo "is_IS CP861" # not CP850 ??
|
|
||||||
echo "it CP850"
|
|
||||||
echo "it_CH CP850"
|
|
||||||
echo "it_IT CP850"
|
|
||||||
echo "lt CP775"
|
|
||||||
echo "lt_LT CP775"
|
|
||||||
echo "lv CP775"
|
|
||||||
echo "lv_LV CP775"
|
|
||||||
echo "nb CP865" # not CP850 ??
|
|
||||||
echo "nb_NO CP865" # not CP850 ??
|
|
||||||
echo "nl CP850"
|
|
||||||
echo "nl_BE CP850"
|
|
||||||
echo "nl_NL CP850"
|
|
||||||
echo "nn CP865" # not CP850 ??
|
|
||||||
echo "nn_NO CP865" # not CP850 ??
|
|
||||||
echo "no CP865" # not CP850 ??
|
|
||||||
echo "no_NO CP865" # not CP850 ??
|
|
||||||
echo "pt CP850"
|
|
||||||
echo "pt_BR CP850"
|
|
||||||
echo "pt_PT CP850"
|
|
||||||
echo "sv CP850"
|
|
||||||
echo "sv_SE CP850"
|
|
||||||
# ISO-8859-2 languages
|
|
||||||
echo "cs CP852"
|
|
||||||
echo "cs_CZ CP852"
|
|
||||||
echo "hr CP852"
|
|
||||||
echo "hr_HR CP852"
|
|
||||||
echo "hu CP852"
|
|
||||||
echo "hu_HU CP852"
|
|
||||||
echo "pl CP852"
|
|
||||||
echo "pl_PL CP852"
|
|
||||||
echo "ro CP852"
|
|
||||||
echo "ro_RO CP852"
|
|
||||||
echo "sk CP852"
|
|
||||||
echo "sk_SK CP852"
|
|
||||||
echo "sl CP852"
|
|
||||||
echo "sl_SI CP852"
|
|
||||||
echo "sq CP852"
|
|
||||||
echo "sq_AL CP852"
|
|
||||||
echo "sr CP852" # CP852 or CP866 or CP855 ??
|
|
||||||
echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
|
|
||||||
echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
|
|
||||||
# ISO-8859-3 languages
|
|
||||||
echo "mt CP850"
|
|
||||||
echo "mt_MT CP850"
|
|
||||||
# ISO-8859-5 languages
|
|
||||||
echo "be CP866"
|
|
||||||
echo "be_BE CP866"
|
|
||||||
echo "bg CP866" # not CP855 ??
|
|
||||||
echo "bg_BG CP866" # not CP855 ??
|
|
||||||
echo "mk CP866" # not CP855 ??
|
|
||||||
echo "mk_MK CP866" # not CP855 ??
|
|
||||||
echo "ru CP866"
|
|
||||||
echo "ru_RU CP866"
|
|
||||||
echo "uk CP1125"
|
|
||||||
echo "uk_UA CP1125"
|
|
||||||
# ISO-8859-6 languages
|
|
||||||
echo "ar CP864"
|
|
||||||
echo "ar_AE CP864"
|
|
||||||
echo "ar_DZ CP864"
|
|
||||||
echo "ar_EG CP864"
|
|
||||||
echo "ar_IQ CP864"
|
|
||||||
echo "ar_IR CP864"
|
|
||||||
echo "ar_JO CP864"
|
|
||||||
echo "ar_KW CP864"
|
|
||||||
echo "ar_MA CP864"
|
|
||||||
echo "ar_OM CP864"
|
|
||||||
echo "ar_QA CP864"
|
|
||||||
echo "ar_SA CP864"
|
|
||||||
echo "ar_SY CP864"
|
|
||||||
# ISO-8859-7 languages
|
|
||||||
echo "el CP869"
|
|
||||||
echo "el_GR CP869"
|
|
||||||
# ISO-8859-8 languages
|
|
||||||
echo "he CP862"
|
|
||||||
echo "he_IL CP862"
|
|
||||||
# ISO-8859-9 languages
|
|
||||||
echo "tr CP857"
|
|
||||||
echo "tr_TR CP857"
|
|
||||||
# Japanese
|
|
||||||
echo "ja CP932"
|
|
||||||
echo "ja_JP CP932"
|
|
||||||
# Chinese
|
|
||||||
echo "zh_CN GBK"
|
|
||||||
echo "zh_TW CP950" # not CP938 ??
|
|
||||||
# Korean
|
|
||||||
echo "kr CP949" # not CP934 ??
|
|
||||||
echo "kr_KR CP949" # not CP934 ??
|
|
||||||
# Thai
|
|
||||||
echo "th CP874"
|
|
||||||
echo "th_TH CP874"
|
|
||||||
# Other
|
|
||||||
echo "eo CP850"
|
|
||||||
echo "eo_EO CP850"
|
|
||||||
;;
|
|
||||||
esac
|
|
47
lib/connect.c
Normal file
47
lib/connect.c
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/* connect.c --- wrappers for Windows connect function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef connect
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_connect (int fd, const struct sockaddr *sockaddr, socklen_t len)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = connect (sock, sockaddr, len);
|
||||||
|
if (r < 0)
|
||||||
|
{
|
||||||
|
/* EINPROGRESS is not returned by WinSock 2.0; for backwards
|
||||||
|
compatibility, connect(2) uses EWOULDBLOCK. */
|
||||||
|
if (WSAGetLastError () == WSAEWOULDBLOCK)
|
||||||
|
WSASetLastError (WSAEINPROGRESS);
|
||||||
|
|
||||||
|
set_winsock_errno ();
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/* Duplicate a locale object.
|
/* Duplicate a locale object.
|
||||||
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* A POSIX-like <errno.h>.
|
/* A POSIX-like <errno.h>.
|
||||||
|
|
||||||
Copyright (C) 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
47
lib/fclose.c
Normal file
47
lib/fclose.c
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/* fclose replacement.
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
/* Specification. */
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
/* Override fclose() to call the overridden close(). */
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_fclose (FILE *fp)
|
||||||
|
#undef fclose
|
||||||
|
{
|
||||||
|
int saved_errno = 0;
|
||||||
|
|
||||||
|
if (fflush (fp))
|
||||||
|
saved_errno = errno;
|
||||||
|
|
||||||
|
if (close (fileno (fp)) < 0 && saved_errno == 0)
|
||||||
|
saved_errno = errno;
|
||||||
|
|
||||||
|
fclose (fp); /* will fail with errno = EBADF */
|
||||||
|
|
||||||
|
if (saved_errno != 0)
|
||||||
|
{
|
||||||
|
errno = saved_errno;
|
||||||
|
return EOF;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/* Supplemental information about the floating-point formats.
|
/* Supplemental information about the floating-point formats.
|
||||||
Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
Written by Bruno Haible <bruno@clisp.org>, 2007.
|
Written by Bruno Haible <bruno@clisp.org>, 2007.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* A correct <float.h>.
|
/* A correct <float.h>.
|
||||||
|
|
||||||
Copyright (C) 2007-2010 Free Software Foundation, Inc.
|
Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
Written by Richard W.M. Jones <rjones.at.redhat.com>
|
Written by Richard W.M. Jones <rjones.at.redhat.com>
|
||||||
|
|
||||||
Copyright (C) 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
This library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Lesser General Public
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -163,9 +163,7 @@ flock (int fd, int operation)
|
||||||
#ifdef HAVE_STRUCT_FLOCK_L_TYPE
|
#ifdef HAVE_STRUCT_FLOCK_L_TYPE
|
||||||
/* We know how to implement flock in terms of fcntl. */
|
/* We know how to implement flock in terms of fcntl. */
|
||||||
|
|
||||||
#ifdef HAVE_FCNTL_H
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* An interface to read that retries after partial reads and interrupts.
|
/* An interface to read that retries after partial reads and interrupts.
|
||||||
Copyright (C) 2002-2003, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2002-2003, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* An interface to read() that reads all it is asked to read.
|
/* An interface to read() that reads all it is asked to read.
|
||||||
|
|
||||||
Copyright (C) 2002, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* An interface to read and write that retries (if necessary) until complete.
|
/* An interface to read and write that retries (if necessary) until complete.
|
||||||
|
|
||||||
Copyright (C) 1993-1994, 1997-2006, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 1993-1994, 1997-2006, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* An interface to write() that writes all it is asked to write.
|
/* An interface to write() that writes all it is asked to write.
|
||||||
|
|
||||||
Copyright (C) 2002-2003, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2002-2003, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006, 2008, 2009, 2010 Free
|
/* Copyright (C) 1997, 2001-2002, 2004-2006, 2008-2011 Free Software
|
||||||
Software Foundation, Inc.
|
Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Philip Blundell <pjb27@cam.ac.uk>, 1997.
|
Contributed by Philip Blundell <pjb27@cam.ac.uk>, 1997.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Get address information (partial implementation).
|
/* Get address information (partial implementation).
|
||||||
Copyright (C) 1997, 2001-2002, 2004-2010 Free Software Foundation, Inc.
|
Copyright (C) 1997, 2001-2002, 2004-2011 Free Software Foundation, Inc.
|
||||||
Contributed by Simon Josefsson <simon@josefsson.org>.
|
Contributed by Simon Josefsson <simon@josefsson.org>.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
40
lib/getpeername.c
Normal file
40
lib/getpeername.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* getpeername.c --- wrappers for Windows getpeername function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef getpeername
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_getpeername (int fd, struct sockaddr *addr, socklen_t *addrlen)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = getpeername (sock, addr, addrlen);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
40
lib/getsockname.c
Normal file
40
lib/getsockname.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* getsockname.c --- wrappers for Windows getsockname function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef getsockname
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_getsockname (int fd, struct sockaddr *addr, socklen_t *addrlen)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = getsockname (sock, addr, addrlen);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
67
lib/getsockopt.c
Normal file
67
lib/getsockopt.c
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/* getsockopt.c --- wrappers for Windows getsockopt function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get struct timeval. */
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
/* Get memcpy. */
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef getsockopt
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_getsockopt (int fd, int level, int optname, void *optval, socklen_t *optlen)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
|
||||||
|
if (level == SOL_SOCKET && (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO))
|
||||||
|
{
|
||||||
|
int milliseconds;
|
||||||
|
int milliseconds_len = sizeof (int);
|
||||||
|
struct timeval tv;
|
||||||
|
size_t n;
|
||||||
|
r = getsockopt (sock, level, optname, &milliseconds, &milliseconds_len);
|
||||||
|
tv.tv_sec = milliseconds / 1000;
|
||||||
|
tv.tv_usec = (milliseconds - 1000 * tv.tv_sec) * 1000;
|
||||||
|
n = sizeof (struct timeval);
|
||||||
|
if (n > *optlen)
|
||||||
|
n = *optlen;
|
||||||
|
memcpy (optval, &tv, n);
|
||||||
|
*optlen = n;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
r = getsockopt (sock, level, optname, optval, optlen);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/* Convenience header for conditional use of GNU <libintl.h>.
|
/* Convenience header for conditional use of GNU <libintl.h>.
|
||||||
Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2010 Free Software
|
Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2011 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -93,6 +93,12 @@
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Prefer gnulib's setlocale override over libintl's setlocale override. */
|
||||||
|
#ifdef GNULIB_defined_setlocale
|
||||||
|
# undef setlocale
|
||||||
|
# define setlocale rpl_setlocale
|
||||||
|
#endif
|
||||||
|
|
||||||
/* A pseudo function call that serves as a marker for the automated
|
/* A pseudo function call that serves as a marker for the automated
|
||||||
extraction of messages, but does not call gettext(). The run-time
|
extraction of messages, but does not call gettext(). The run-time
|
||||||
translation is done at a different place in the code.
|
translation is done at a different place in the code.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Character set conversion.
|
/* Character set conversion.
|
||||||
Copyright (C) 1999-2001, 2007, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 1999-2001, 2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* A GNU-like <iconv.h>.
|
/* A GNU-like <iconv.h>.
|
||||||
|
|
||||||
Copyright (C) 2007-2010 Free Software Foundation, Inc.
|
Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Character set conversion.
|
/* Character set conversion.
|
||||||
Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Character set conversion.
|
/* Character set conversion.
|
||||||
Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Character set conversion handler type.
|
/* Character set conversion handler type.
|
||||||
Copyright (C) 2001-2007, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2001-2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
Written by Bruno Haible.
|
Written by Bruno Haible.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* inet_ntop.c -- convert IPv4 and IPv6 addresses from binary to text form
|
/* inet_ntop.c -- convert IPv4 and IPv6 addresses from binary to text form
|
||||||
|
|
||||||
Copyright (C) 2005-2006, 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form
|
/* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form
|
||||||
|
|
||||||
Copyright (C) 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Test for positive or negative infinity.
|
/* Test for positive or negative infinity.
|
||||||
Copyright (C) 2007-2010 Free Software Foundation, Inc.
|
Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Test for NaN that does not need libm.
|
/* Test for NaN that does not need libm.
|
||||||
Copyright (C) 2007-2010 Free Software Foundation, Inc.
|
Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Test for NaN that does not need libm.
|
/* Test for NaN that does not need libm.
|
||||||
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Test for NaN that does not need libm.
|
/* Test for NaN that does not need libm.
|
||||||
Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Test for NaN that does not need libm.
|
/* Test for NaN that does not need libm.
|
||||||
Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
40
lib/listen.c
Normal file
40
lib/listen.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* listen.c --- wrappers for Windows listen function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef listen
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_listen (int fd, int backlog)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = listen (sock, backlog);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
|
@ -1,548 +0,0 @@
|
||||||
/* Determine a canonical name for the current locale's character encoding.
|
|
||||||
|
|
||||||
Copyright (C) 2000-2006, 2008-2010 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2, 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 Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation,
|
|
||||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
|
||||||
|
|
||||||
/* Written by Bruno Haible <bruno@clisp.org>. */
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
/* Specification. */
|
|
||||||
#include "localcharset.h"
|
|
||||||
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET
|
|
||||||
# define DARWIN7 /* Darwin 7 or newer, i.e. MacOS X 10.3 or newer */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined _WIN32 || defined __WIN32__
|
|
||||||
# define WIN32_NATIVE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined __EMX__
|
|
||||||
/* Assume EMX program runs on OS/2, even if compiled under DOS. */
|
|
||||||
# ifndef OS2
|
|
||||||
# define OS2
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined WIN32_NATIVE
|
|
||||||
# include <unistd.h>
|
|
||||||
# if HAVE_LANGINFO_CODESET
|
|
||||||
# include <langinfo.h>
|
|
||||||
# else
|
|
||||||
# if 0 /* see comment below */
|
|
||||||
# include <locale.h>
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# ifdef __CYGWIN__
|
|
||||||
# define WIN32_LEAN_AND_MEAN
|
|
||||||
# include <windows.h>
|
|
||||||
# endif
|
|
||||||
#elif defined WIN32_NATIVE
|
|
||||||
# define WIN32_LEAN_AND_MEAN
|
|
||||||
# include <windows.h>
|
|
||||||
#endif
|
|
||||||
#if defined OS2
|
|
||||||
# define INCL_DOS
|
|
||||||
# include <os2.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ENABLE_RELOCATABLE
|
|
||||||
# include "relocatable.h"
|
|
||||||
#else
|
|
||||||
# define relocate(pathname) (pathname)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Get LIBDIR. */
|
|
||||||
#ifndef LIBDIR
|
|
||||||
# include "configmake.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define O_NOFOLLOW to 0 on platforms where it does not exist. */
|
|
||||||
#ifndef O_NOFOLLOW
|
|
||||||
# define O_NOFOLLOW 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
|
|
||||||
/* Win32, Cygwin, OS/2, DOS */
|
|
||||||
# define ISSLASH(C) ((C) == '/' || (C) == '\\')
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef DIRECTORY_SEPARATOR
|
|
||||||
# define DIRECTORY_SEPARATOR '/'
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ISSLASH
|
|
||||||
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_DECL_GETC_UNLOCKED
|
|
||||||
# undef getc
|
|
||||||
# define getc getc_unlocked
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The following static variable is declared 'volatile' to avoid a
|
|
||||||
possible multithread problem in the function get_charset_aliases. If we
|
|
||||||
are running in a threaded environment, and if two threads initialize
|
|
||||||
'charset_aliases' simultaneously, both will produce the same value,
|
|
||||||
and everything will be ok if the two assignments to 'charset_aliases'
|
|
||||||
are atomic. But I don't know what will happen if the two assignments mix. */
|
|
||||||
#if __STDC__ != 1
|
|
||||||
# define volatile /* empty */
|
|
||||||
#endif
|
|
||||||
/* Pointer to the contents of the charset.alias file, if it has already been
|
|
||||||
read, else NULL. Its format is:
|
|
||||||
ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
|
|
||||||
static const char * volatile charset_aliases;
|
|
||||||
|
|
||||||
/* Return a pointer to the contents of the charset.alias file. */
|
|
||||||
static const char *
|
|
||||||
get_charset_aliases (void)
|
|
||||||
{
|
|
||||||
const char *cp;
|
|
||||||
|
|
||||||
cp = charset_aliases;
|
|
||||||
if (cp == NULL)
|
|
||||||
{
|
|
||||||
#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
|
|
||||||
const char *dir;
|
|
||||||
const char *base = "charset.alias";
|
|
||||||
char *file_name;
|
|
||||||
|
|
||||||
/* Make it possible to override the charset.alias location. This is
|
|
||||||
necessary for running the testsuite before "make install". */
|
|
||||||
dir = getenv ("CHARSETALIASDIR");
|
|
||||||
if (dir == NULL || dir[0] == '\0')
|
|
||||||
dir = relocate (LIBDIR);
|
|
||||||
|
|
||||||
/* Concatenate dir and base into freshly allocated file_name. */
|
|
||||||
{
|
|
||||||
size_t dir_len = strlen (dir);
|
|
||||||
size_t base_len = strlen (base);
|
|
||||||
int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
|
|
||||||
file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
|
|
||||||
if (file_name != NULL)
|
|
||||||
{
|
|
||||||
memcpy (file_name, dir, dir_len);
|
|
||||||
if (add_slash)
|
|
||||||
file_name[dir_len] = DIRECTORY_SEPARATOR;
|
|
||||||
memcpy (file_name + dir_len + add_slash, base, base_len + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_name == NULL)
|
|
||||||
/* Out of memory. Treat the file as empty. */
|
|
||||||
cp = "";
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int fd;
|
|
||||||
|
|
||||||
/* Open the file. Reject symbolic links on platforms that support
|
|
||||||
O_NOFOLLOW. This is a security feature. Without it, an attacker
|
|
||||||
could retrieve parts of the contents (namely, the tail of the
|
|
||||||
first line that starts with "* ") of an arbitrary file by placing
|
|
||||||
a symbolic link to that file under the name "charset.alias" in
|
|
||||||
some writable directory and defining the environment variable
|
|
||||||
CHARSETALIASDIR to point to that directory. */
|
|
||||||
fd = open (file_name,
|
|
||||||
O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0));
|
|
||||||
if (fd < 0)
|
|
||||||
/* File not found. Treat it as empty. */
|
|
||||||
cp = "";
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FILE *fp;
|
|
||||||
|
|
||||||
fp = fdopen (fd, "r");
|
|
||||||
if (fp == NULL)
|
|
||||||
{
|
|
||||||
/* Out of memory. Treat the file as empty. */
|
|
||||||
close (fd);
|
|
||||||
cp = "";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Parse the file's contents. */
|
|
||||||
char *res_ptr = NULL;
|
|
||||||
size_t res_size = 0;
|
|
||||||
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
char buf1[50+1];
|
|
||||||
char buf2[50+1];
|
|
||||||
size_t l1, l2;
|
|
||||||
char *old_res_ptr;
|
|
||||||
|
|
||||||
c = getc (fp);
|
|
||||||
if (c == EOF)
|
|
||||||
break;
|
|
||||||
if (c == '\n' || c == ' ' || c == '\t')
|
|
||||||
continue;
|
|
||||||
if (c == '#')
|
|
||||||
{
|
|
||||||
/* Skip comment, to end of line. */
|
|
||||||
do
|
|
||||||
c = getc (fp);
|
|
||||||
while (!(c == EOF || c == '\n'));
|
|
||||||
if (c == EOF)
|
|
||||||
break;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
ungetc (c, fp);
|
|
||||||
if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
|
|
||||||
break;
|
|
||||||
l1 = strlen (buf1);
|
|
||||||
l2 = strlen (buf2);
|
|
||||||
old_res_ptr = res_ptr;
|
|
||||||
if (res_size == 0)
|
|
||||||
{
|
|
||||||
res_size = l1 + 1 + l2 + 1;
|
|
||||||
res_ptr = (char *) malloc (res_size + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
res_size += l1 + 1 + l2 + 1;
|
|
||||||
res_ptr = (char *) realloc (res_ptr, res_size + 1);
|
|
||||||
}
|
|
||||||
if (res_ptr == NULL)
|
|
||||||
{
|
|
||||||
/* Out of memory. */
|
|
||||||
res_size = 0;
|
|
||||||
if (old_res_ptr != NULL)
|
|
||||||
free (old_res_ptr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
|
|
||||||
strcpy (res_ptr + res_size - (l2 + 1), buf2);
|
|
||||||
}
|
|
||||||
fclose (fp);
|
|
||||||
if (res_size == 0)
|
|
||||||
cp = "";
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*(res_ptr + res_size) = '\0';
|
|
||||||
cp = res_ptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
free (file_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
# if defined DARWIN7
|
|
||||||
/* To avoid the trouble of installing a file that is shared by many
|
|
||||||
GNU packages -- many packaging systems have problems with this --,
|
|
||||||
simply inline the aliases here. */
|
|
||||||
cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
|
|
||||||
"ISO8859-2" "\0" "ISO-8859-2" "\0"
|
|
||||||
"ISO8859-4" "\0" "ISO-8859-4" "\0"
|
|
||||||
"ISO8859-5" "\0" "ISO-8859-5" "\0"
|
|
||||||
"ISO8859-7" "\0" "ISO-8859-7" "\0"
|
|
||||||
"ISO8859-9" "\0" "ISO-8859-9" "\0"
|
|
||||||
"ISO8859-13" "\0" "ISO-8859-13" "\0"
|
|
||||||
"ISO8859-15" "\0" "ISO-8859-15" "\0"
|
|
||||||
"KOI8-R" "\0" "KOI8-R" "\0"
|
|
||||||
"KOI8-U" "\0" "KOI8-U" "\0"
|
|
||||||
"CP866" "\0" "CP866" "\0"
|
|
||||||
"CP949" "\0" "CP949" "\0"
|
|
||||||
"CP1131" "\0" "CP1131" "\0"
|
|
||||||
"CP1251" "\0" "CP1251" "\0"
|
|
||||||
"eucCN" "\0" "GB2312" "\0"
|
|
||||||
"GB2312" "\0" "GB2312" "\0"
|
|
||||||
"eucJP" "\0" "EUC-JP" "\0"
|
|
||||||
"eucKR" "\0" "EUC-KR" "\0"
|
|
||||||
"Big5" "\0" "BIG5" "\0"
|
|
||||||
"Big5HKSCS" "\0" "BIG5-HKSCS" "\0"
|
|
||||||
"GBK" "\0" "GBK" "\0"
|
|
||||||
"GB18030" "\0" "GB18030" "\0"
|
|
||||||
"SJIS" "\0" "SHIFT_JIS" "\0"
|
|
||||||
"ARMSCII-8" "\0" "ARMSCII-8" "\0"
|
|
||||||
"PT154" "\0" "PT154" "\0"
|
|
||||||
/*"ISCII-DEV" "\0" "?" "\0"*/
|
|
||||||
"*" "\0" "UTF-8" "\0";
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if defined VMS
|
|
||||||
/* To avoid the troubles of an extra file charset.alias_vms in the
|
|
||||||
sources of many GNU packages, simply inline the aliases here. */
|
|
||||||
/* The list of encodings is taken from the OpenVMS 7.3-1 documentation
|
|
||||||
"Compaq C Run-Time Library Reference Manual for OpenVMS systems"
|
|
||||||
section 10.7 "Handling Different Character Sets". */
|
|
||||||
cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
|
|
||||||
"ISO8859-2" "\0" "ISO-8859-2" "\0"
|
|
||||||
"ISO8859-5" "\0" "ISO-8859-5" "\0"
|
|
||||||
"ISO8859-7" "\0" "ISO-8859-7" "\0"
|
|
||||||
"ISO8859-8" "\0" "ISO-8859-8" "\0"
|
|
||||||
"ISO8859-9" "\0" "ISO-8859-9" "\0"
|
|
||||||
/* Japanese */
|
|
||||||
"eucJP" "\0" "EUC-JP" "\0"
|
|
||||||
"SJIS" "\0" "SHIFT_JIS" "\0"
|
|
||||||
"DECKANJI" "\0" "DEC-KANJI" "\0"
|
|
||||||
"SDECKANJI" "\0" "EUC-JP" "\0"
|
|
||||||
/* Chinese */
|
|
||||||
"eucTW" "\0" "EUC-TW" "\0"
|
|
||||||
"DECHANYU" "\0" "DEC-HANYU" "\0"
|
|
||||||
"DECHANZI" "\0" "GB2312" "\0"
|
|
||||||
/* Korean */
|
|
||||||
"DECKOREAN" "\0" "EUC-KR" "\0";
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if defined WIN32_NATIVE || defined __CYGWIN__
|
|
||||||
/* To avoid the troubles of installing a separate file in the same
|
|
||||||
directory as the DLL and of retrieving the DLL's directory at
|
|
||||||
runtime, simply inline the aliases here. */
|
|
||||||
|
|
||||||
cp = "CP936" "\0" "GBK" "\0"
|
|
||||||
"CP1361" "\0" "JOHAB" "\0"
|
|
||||||
"CP20127" "\0" "ASCII" "\0"
|
|
||||||
"CP20866" "\0" "KOI8-R" "\0"
|
|
||||||
"CP20936" "\0" "GB2312" "\0"
|
|
||||||
"CP21866" "\0" "KOI8-RU" "\0"
|
|
||||||
"CP28591" "\0" "ISO-8859-1" "\0"
|
|
||||||
"CP28592" "\0" "ISO-8859-2" "\0"
|
|
||||||
"CP28593" "\0" "ISO-8859-3" "\0"
|
|
||||||
"CP28594" "\0" "ISO-8859-4" "\0"
|
|
||||||
"CP28595" "\0" "ISO-8859-5" "\0"
|
|
||||||
"CP28596" "\0" "ISO-8859-6" "\0"
|
|
||||||
"CP28597" "\0" "ISO-8859-7" "\0"
|
|
||||||
"CP28598" "\0" "ISO-8859-8" "\0"
|
|
||||||
"CP28599" "\0" "ISO-8859-9" "\0"
|
|
||||||
"CP28605" "\0" "ISO-8859-15" "\0"
|
|
||||||
"CP38598" "\0" "ISO-8859-8" "\0"
|
|
||||||
"CP51932" "\0" "EUC-JP" "\0"
|
|
||||||
"CP51936" "\0" "GB2312" "\0"
|
|
||||||
"CP51949" "\0" "EUC-KR" "\0"
|
|
||||||
"CP51950" "\0" "EUC-TW" "\0"
|
|
||||||
"CP54936" "\0" "GB18030" "\0"
|
|
||||||
"CP65001" "\0" "UTF-8" "\0";
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
charset_aliases = cp;
|
|
||||||
}
|
|
||||||
|
|
||||||
return cp;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Determine the current locale's character encoding, and canonicalize it
|
|
||||||
into one of the canonical names listed in config.charset.
|
|
||||||
The result must not be freed; it is statically allocated.
|
|
||||||
If the canonical name cannot be determined, the result is a non-canonical
|
|
||||||
name. */
|
|
||||||
|
|
||||||
#ifdef STATIC
|
|
||||||
STATIC
|
|
||||||
#endif
|
|
||||||
const char *
|
|
||||||
locale_charset (void)
|
|
||||||
{
|
|
||||||
const char *codeset;
|
|
||||||
const char *aliases;
|
|
||||||
|
|
||||||
#if !(defined WIN32_NATIVE || defined OS2)
|
|
||||||
|
|
||||||
# if HAVE_LANGINFO_CODESET
|
|
||||||
|
|
||||||
/* Most systems support nl_langinfo (CODESET) nowadays. */
|
|
||||||
codeset = nl_langinfo (CODESET);
|
|
||||||
|
|
||||||
# ifdef __CYGWIN__
|
|
||||||
/* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always
|
|
||||||
returns "US-ASCII". Return the suffix of the locale name from the
|
|
||||||
environment variables (if present) or the codepage as a number. */
|
|
||||||
if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
|
|
||||||
{
|
|
||||||
const char *locale;
|
|
||||||
static char buf[2 + 10 + 1];
|
|
||||||
|
|
||||||
locale = getenv ("LC_ALL");
|
|
||||||
if (locale == NULL || locale[0] == '\0')
|
|
||||||
{
|
|
||||||
locale = getenv ("LC_CTYPE");
|
|
||||||
if (locale == NULL || locale[0] == '\0')
|
|
||||||
locale = getenv ("LANG");
|
|
||||||
}
|
|
||||||
if (locale != NULL && locale[0] != '\0')
|
|
||||||
{
|
|
||||||
/* If the locale name contains an encoding after the dot, return
|
|
||||||
it. */
|
|
||||||
const char *dot = strchr (locale, '.');
|
|
||||||
|
|
||||||
if (dot != NULL)
|
|
||||||
{
|
|
||||||
const char *modifier;
|
|
||||||
|
|
||||||
dot++;
|
|
||||||
/* Look for the possible @... trailer and remove it, if any. */
|
|
||||||
modifier = strchr (dot, '@');
|
|
||||||
if (modifier == NULL)
|
|
||||||
return dot;
|
|
||||||
if (modifier - dot < sizeof (buf))
|
|
||||||
{
|
|
||||||
memcpy (buf, dot, modifier - dot);
|
|
||||||
buf [modifier - dot] = '\0';
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Woe32 has a function returning the locale's codepage as a number:
|
|
||||||
GetACP(). This encoding is used by Cygwin, unless the user has set
|
|
||||||
the environment variable CYGWIN=codepage:oem (which very few people
|
|
||||||
do).
|
|
||||||
Output directed to console windows needs to be converted (to
|
|
||||||
GetOEMCP() if the console is using a raster font, or to
|
|
||||||
GetConsoleOutputCP() if it is using a TrueType font). Cygwin does
|
|
||||||
this conversion transparently (see winsup/cygwin/fhandler_console.cc),
|
|
||||||
converting to GetConsoleOutputCP(). This leads to correct results,
|
|
||||||
except when SetConsoleOutputCP has been called and a raster font is
|
|
||||||
in use. */
|
|
||||||
sprintf (buf, "CP%u", GetACP ());
|
|
||||||
codeset = buf;
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# else
|
|
||||||
|
|
||||||
/* On old systems which lack it, use setlocale or getenv. */
|
|
||||||
const char *locale = NULL;
|
|
||||||
|
|
||||||
/* But most old systems don't have a complete set of locales. Some
|
|
||||||
(like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
|
|
||||||
use setlocale here; it would return "C" when it doesn't support the
|
|
||||||
locale name the user has set. */
|
|
||||||
# if 0
|
|
||||||
locale = setlocale (LC_CTYPE, NULL);
|
|
||||||
# endif
|
|
||||||
if (locale == NULL || locale[0] == '\0')
|
|
||||||
{
|
|
||||||
locale = getenv ("LC_ALL");
|
|
||||||
if (locale == NULL || locale[0] == '\0')
|
|
||||||
{
|
|
||||||
locale = getenv ("LC_CTYPE");
|
|
||||||
if (locale == NULL || locale[0] == '\0')
|
|
||||||
locale = getenv ("LANG");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* On some old systems, one used to set locale = "iso8859_1". On others,
|
|
||||||
you set it to "language_COUNTRY.charset". In any case, we resolve it
|
|
||||||
through the charset.alias file. */
|
|
||||||
codeset = locale;
|
|
||||||
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif defined WIN32_NATIVE
|
|
||||||
|
|
||||||
static char buf[2 + 10 + 1];
|
|
||||||
|
|
||||||
/* Woe32 has a function returning the locale's codepage as a number:
|
|
||||||
GetACP().
|
|
||||||
When the output goes to a console window, it needs to be provided in
|
|
||||||
GetOEMCP() encoding if the console is using a raster font, or in
|
|
||||||
GetConsoleOutputCP() encoding if it is using a TrueType font.
|
|
||||||
But in GUI programs and for output sent to files and pipes, GetACP()
|
|
||||||
encoding is the best bet. */
|
|
||||||
sprintf (buf, "CP%u", GetACP ());
|
|
||||||
codeset = buf;
|
|
||||||
|
|
||||||
#elif defined OS2
|
|
||||||
|
|
||||||
const char *locale;
|
|
||||||
static char buf[2 + 10 + 1];
|
|
||||||
ULONG cp[3];
|
|
||||||
ULONG cplen;
|
|
||||||
|
|
||||||
/* Allow user to override the codeset, as set in the operating system,
|
|
||||||
with standard language environment variables. */
|
|
||||||
locale = getenv ("LC_ALL");
|
|
||||||
if (locale == NULL || locale[0] == '\0')
|
|
||||||
{
|
|
||||||
locale = getenv ("LC_CTYPE");
|
|
||||||
if (locale == NULL || locale[0] == '\0')
|
|
||||||
locale = getenv ("LANG");
|
|
||||||
}
|
|
||||||
if (locale != NULL && locale[0] != '\0')
|
|
||||||
{
|
|
||||||
/* If the locale name contains an encoding after the dot, return it. */
|
|
||||||
const char *dot = strchr (locale, '.');
|
|
||||||
|
|
||||||
if (dot != NULL)
|
|
||||||
{
|
|
||||||
const char *modifier;
|
|
||||||
|
|
||||||
dot++;
|
|
||||||
/* Look for the possible @... trailer and remove it, if any. */
|
|
||||||
modifier = strchr (dot, '@');
|
|
||||||
if (modifier == NULL)
|
|
||||||
return dot;
|
|
||||||
if (modifier - dot < sizeof (buf))
|
|
||||||
{
|
|
||||||
memcpy (buf, dot, modifier - dot);
|
|
||||||
buf [modifier - dot] = '\0';
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Resolve through the charset.alias file. */
|
|
||||||
codeset = locale;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* OS/2 has a function returning the locale's codepage as a number. */
|
|
||||||
if (DosQueryCp (sizeof (cp), cp, &cplen))
|
|
||||||
codeset = "";
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sprintf (buf, "CP%u", cp[0]);
|
|
||||||
codeset = buf;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (codeset == NULL)
|
|
||||||
/* The canonical name cannot be determined. */
|
|
||||||
codeset = "";
|
|
||||||
|
|
||||||
/* Resolve alias. */
|
|
||||||
for (aliases = get_charset_aliases ();
|
|
||||||
*aliases != '\0';
|
|
||||||
aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
|
|
||||||
if (strcmp (codeset, aliases) == 0
|
|
||||||
|| (aliases[0] == '*' && aliases[1] == '\0'))
|
|
||||||
{
|
|
||||||
codeset = aliases + strlen (aliases) + 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Don't return an empty string. GNU libc and GNU libiconv interpret
|
|
||||||
the empty string as denoting "the locale's character encoding",
|
|
||||||
thus GNU libiconv would call this function a second time. */
|
|
||||||
if (codeset[0] == '\0')
|
|
||||||
codeset = "ASCII";
|
|
||||||
|
|
||||||
return codeset;
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
/* Determine a canonical name for the current locale's character encoding.
|
|
||||||
Copyright (C) 2000-2003, 2009-2010 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU CHARSET Library.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2, 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 Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation,
|
|
||||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
|
||||||
|
|
||||||
#ifndef _LOCALCHARSET_H
|
|
||||||
#define _LOCALCHARSET_H
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Determine the current locale's character encoding, and canonicalize it
|
|
||||||
into one of the canonical names listed in config.charset.
|
|
||||||
The result must not be freed; it is statically allocated.
|
|
||||||
If the canonical name cannot be determined, the result is a non-canonical
|
|
||||||
name. */
|
|
||||||
extern const char * locale_charset (void);
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* _LOCALCHARSET_H */
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* A POSIX <locale.h>.
|
/* A POSIX <locale.h>.
|
||||||
Copyright (C) 2007-2010 Free Software Foundation, Inc.
|
Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
@ -47,6 +47,27 @@
|
||||||
# define LC_MESSAGES 1729
|
# define LC_MESSAGES 1729
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if @GNULIB_SETLOCALE@
|
||||||
|
# if @REPLACE_SETLOCALE@
|
||||||
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||||
|
# undef setlocale
|
||||||
|
# define setlocale rpl_setlocale
|
||||||
|
# define GNULIB_defined_setlocale 1
|
||||||
|
# endif
|
||||||
|
_GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale));
|
||||||
|
_GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale));
|
||||||
|
# else
|
||||||
|
_GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale));
|
||||||
|
# endif
|
||||||
|
_GL_CXXALIASWARN (setlocale);
|
||||||
|
#elif defined GNULIB_POSIXCHECK
|
||||||
|
# undef setlocale
|
||||||
|
# if HAVE_RAW_DECL_SETLOCALE
|
||||||
|
_GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - "
|
||||||
|
"use gnulib module setlocale for portability");
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if @GNULIB_DUPLOCALE@
|
#if @GNULIB_DUPLOCALE@
|
||||||
# if @REPLACE_DUPLOCALE@
|
# if @REPLACE_DUPLOCALE@
|
||||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Work around a bug of lstat on some systems
|
/* Work around a bug of lstat on some systems
|
||||||
|
|
||||||
Copyright (C) 1997-2006, 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 1997-2006, 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* malloc() function that is glibc compatible.
|
/* malloc() function that is glibc compatible.
|
||||||
|
|
||||||
Copyright (C) 1997-1998, 2006-2007, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 1997-1998, 2006-2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Safe automatic memory allocation.
|
/* Safe automatic memory allocation.
|
||||||
Copyright (C) 2003, 2006-2007, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2003, 2006-2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
Written by Bruno Haible <bruno@clisp.org>, 2003.
|
Written by Bruno Haible <bruno@clisp.org>, 2003.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Safe automatic memory allocation.
|
/* Safe automatic memory allocation.
|
||||||
Copyright (C) 2003-2007, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
Written by Bruno Haible <bruno@clisp.org>, 2003.
|
Written by Bruno Haible <bruno@clisp.org>, 2003.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* A GNU-like <math.h>.
|
/* A GNU-like <math.h>.
|
||||||
|
|
||||||
Copyright (C) 2002-2003, 2007-2010 Free Software Foundation, Inc.
|
Copyright (C) 2002-2003, 2007-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
@ -73,18 +73,21 @@ _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \
|
||||||
it on platforms like Solaris 10, where NAN is present but defined
|
it on platforms like Solaris 10, where NAN is present but defined
|
||||||
as a function pointer rather than a floating point constant. */
|
as a function pointer rather than a floating point constant. */
|
||||||
#if !defined NAN || @REPLACE_NAN@
|
#if !defined NAN || @REPLACE_NAN@
|
||||||
# undef NAN
|
# if !GNULIB_defined_NAN
|
||||||
|
# undef NAN
|
||||||
/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
|
/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
|
||||||
# ifdef __DECC
|
# ifdef __DECC
|
||||||
static float
|
static float
|
||||||
_NaN ()
|
_NaN ()
|
||||||
{
|
{
|
||||||
static float zero = 0.0f;
|
static float zero = 0.0f;
|
||||||
return zero / zero;
|
return zero / zero;
|
||||||
}
|
}
|
||||||
# define NAN (_NaN())
|
# define NAN (_NaN())
|
||||||
# else
|
# else
|
||||||
# define NAN (0.0f / 0.0f)
|
# define NAN (0.0f / 0.0f)
|
||||||
|
# endif
|
||||||
|
# define GNULIB_defined_NAN 1
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -202,6 +205,19 @@ _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if @GNULIB_CEIL@
|
||||||
|
# if @REPLACE_CEIL@
|
||||||
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||||
|
# define ceil rpl_ceil
|
||||||
|
# endif
|
||||||
|
_GL_FUNCDECL_RPL (ceil, double, (double x));
|
||||||
|
_GL_CXXALIAS_RPL (ceil, double, (double x));
|
||||||
|
# else
|
||||||
|
_GL_CXXALIAS_SYS (ceil, double, (double x));
|
||||||
|
# endif
|
||||||
|
_GL_CXXALIASWARN (ceil);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if @GNULIB_CEILL@
|
#if @GNULIB_CEILL@
|
||||||
# if @REPLACE_CEILL@
|
# if @REPLACE_CEILL@
|
||||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||||
|
@ -262,7 +278,7 @@ _GL_WARN_ON_USE (expl, "expl is unportable - "
|
||||||
# endif
|
# endif
|
||||||
_GL_FUNCDECL_RPL (floorf, float, (float x));
|
_GL_FUNCDECL_RPL (floorf, float, (float x));
|
||||||
_GL_CXXALIAS_RPL (floorf, float, (float x));
|
_GL_CXXALIAS_RPL (floorf, float, (float x));
|
||||||
#else
|
# else
|
||||||
# if !@HAVE_DECL_FLOORF@
|
# if !@HAVE_DECL_FLOORF@
|
||||||
_GL_FUNCDECL_SYS (floorf, float, (float x));
|
_GL_FUNCDECL_SYS (floorf, float, (float x));
|
||||||
# endif
|
# endif
|
||||||
|
@ -277,6 +293,19 @@ _GL_WARN_ON_USE (floorf, "floorf is unportable - "
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if @GNULIB_FLOOR@
|
||||||
|
# if @REPLACE_FLOOR@
|
||||||
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||||
|
# define floor rpl_floor
|
||||||
|
# endif
|
||||||
|
_GL_FUNCDECL_RPL (floor, double, (double x));
|
||||||
|
_GL_CXXALIAS_RPL (floor, double, (double x));
|
||||||
|
# else
|
||||||
|
_GL_CXXALIAS_SYS (floor, double, (double x));
|
||||||
|
# endif
|
||||||
|
_GL_CXXALIASWARN (floor);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if @GNULIB_FLOORL@
|
#if @GNULIB_FLOORL@
|
||||||
# if @REPLACE_FLOORL@
|
# if @REPLACE_FLOORL@
|
||||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||||
|
@ -493,10 +522,18 @@ _GL_WARN_ON_USE (tanl, "tanl is unportable - "
|
||||||
|
|
||||||
|
|
||||||
#if @GNULIB_TRUNCF@
|
#if @GNULIB_TRUNCF@
|
||||||
# if !@HAVE_DECL_TRUNCF@
|
# if @REPLACE_TRUNCF@
|
||||||
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||||
|
# define truncf rpl_truncf
|
||||||
|
# endif
|
||||||
|
_GL_FUNCDECL_RPL (truncf, float, (float x));
|
||||||
|
_GL_CXXALIAS_RPL (truncf, float, (float x));
|
||||||
|
# else
|
||||||
|
# if !@HAVE_DECL_TRUNCF@
|
||||||
_GL_FUNCDECL_SYS (truncf, float, (float x));
|
_GL_FUNCDECL_SYS (truncf, float, (float x));
|
||||||
# endif
|
# endif
|
||||||
_GL_CXXALIAS_SYS (truncf, float, (float x));
|
_GL_CXXALIAS_SYS (truncf, float, (float x));
|
||||||
|
# endif
|
||||||
_GL_CXXALIASWARN (truncf);
|
_GL_CXXALIASWARN (truncf);
|
||||||
#elif defined GNULIB_POSIXCHECK
|
#elif defined GNULIB_POSIXCHECK
|
||||||
# undef truncf
|
# undef truncf
|
||||||
|
@ -507,10 +544,18 @@ _GL_WARN_ON_USE (truncf, "truncf is unportable - "
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if @GNULIB_TRUNC@
|
#if @GNULIB_TRUNC@
|
||||||
# if !@HAVE_DECL_TRUNC@
|
# if @REPLACE_TRUNC@
|
||||||
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||||
|
# define trunc rpl_trunc
|
||||||
|
# endif
|
||||||
|
_GL_FUNCDECL_RPL (trunc, double, (double x));
|
||||||
|
_GL_CXXALIAS_RPL (trunc, double, (double x));
|
||||||
|
# else
|
||||||
|
# if !@HAVE_DECL_TRUNC@
|
||||||
_GL_FUNCDECL_SYS (trunc, double, (double x));
|
_GL_FUNCDECL_SYS (trunc, double, (double x));
|
||||||
# endif
|
# endif
|
||||||
_GL_CXXALIAS_SYS (trunc, double, (double x));
|
_GL_CXXALIAS_SYS (trunc, double, (double x));
|
||||||
|
# endif
|
||||||
_GL_CXXALIASWARN (trunc);
|
_GL_CXXALIASWARN (trunc);
|
||||||
#elif defined GNULIB_POSIXCHECK
|
#elif defined GNULIB_POSIXCHECK
|
||||||
# undef trunc
|
# undef trunc
|
||||||
|
@ -657,7 +702,7 @@ _GL_EXTERN_C int isnanl (long double x);
|
||||||
that recursively expand back to isnan. So use the gnulib
|
that recursively expand back to isnan. So use the gnulib
|
||||||
replacements for them directly. */
|
replacements for them directly. */
|
||||||
# if @HAVE_ISNANF@ && __GNUC__ >= 4
|
# if @HAVE_ISNANF@ && __GNUC__ >= 4
|
||||||
# define gl_isnan_f(x) __builtin_isnan ((float)(x))
|
# define gl_isnan_f(x) __builtin_isnanf ((float)(x))
|
||||||
# else
|
# else
|
||||||
_GL_EXTERN_C int rpl_isnanf (float x);
|
_GL_EXTERN_C int rpl_isnanf (float x);
|
||||||
# define gl_isnan_f(x) rpl_isnanf (x)
|
# define gl_isnan_f(x) rpl_isnanf (x)
|
||||||
|
@ -669,7 +714,7 @@ _GL_EXTERN_C int rpl_isnand (double x);
|
||||||
# define gl_isnan_d(x) rpl_isnand (x)
|
# define gl_isnan_d(x) rpl_isnand (x)
|
||||||
# endif
|
# endif
|
||||||
# if @HAVE_ISNANL@ && __GNUC__ >= 4
|
# if @HAVE_ISNANL@ && __GNUC__ >= 4
|
||||||
# define gl_isnan_l(x) __builtin_isnan ((long double)(x))
|
# define gl_isnan_l(x) __builtin_isnanl ((long double)(x))
|
||||||
# else
|
# else
|
||||||
_GL_EXTERN_C int rpl_isnanl (long double x);
|
_GL_EXTERN_C int rpl_isnanl (long double x);
|
||||||
# define gl_isnan_l(x) rpl_isnanl (x)
|
# define gl_isnan_l(x) rpl_isnanl (x)
|
||||||
|
@ -679,6 +724,12 @@ _GL_EXTERN_C int rpl_isnanl (long double x);
|
||||||
(sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
|
(sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
|
||||||
sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
|
sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
|
||||||
gl_isnan_f (x))
|
gl_isnan_f (x))
|
||||||
|
# elif __GNUC__ >= 4
|
||||||
|
# undef isnan
|
||||||
|
# define isnan(x) \
|
||||||
|
(sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \
|
||||||
|
sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
|
||||||
|
__builtin_isnanf ((float)(x)))
|
||||||
# endif
|
# endif
|
||||||
/* Ensure isnan is a macro. */
|
/* Ensure isnan is a macro. */
|
||||||
# ifndef isnan
|
# ifndef isnan
|
||||||
|
|
386
lib/mbrtowc.c
386
lib/mbrtowc.c
|
@ -1,386 +0,0 @@
|
||||||
/* Convert multibyte character to wide character.
|
|
||||||
Copyright (C) 1999-2002, 2005-2010 Free Software Foundation, Inc.
|
|
||||||
Written by Bruno Haible <bruno@clisp.org>, 2008.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
/* Specification. */
|
|
||||||
#include <wchar.h>
|
|
||||||
|
|
||||||
#if GNULIB_defined_mbstate_t
|
|
||||||
/* Implement mbrtowc() on top of mbtowc(). */
|
|
||||||
|
|
||||||
# include <errno.h>
|
|
||||||
# include <stdlib.h>
|
|
||||||
|
|
||||||
# include "localcharset.h"
|
|
||||||
# include "streq.h"
|
|
||||||
# include "verify.h"
|
|
||||||
|
|
||||||
|
|
||||||
verify (sizeof (mbstate_t) >= 4);
|
|
||||||
|
|
||||||
static char internal_state[4];
|
|
||||||
|
|
||||||
size_t
|
|
||||||
mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
|
|
||||||
{
|
|
||||||
char *pstate = (char *)ps;
|
|
||||||
|
|
||||||
if (pstate == NULL)
|
|
||||||
pstate = internal_state;
|
|
||||||
|
|
||||||
if (s == NULL)
|
|
||||||
{
|
|
||||||
pwc = NULL;
|
|
||||||
s = "";
|
|
||||||
n = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (n == 0)
|
|
||||||
return (size_t)(-2);
|
|
||||||
|
|
||||||
/* Here n > 0. */
|
|
||||||
{
|
|
||||||
size_t nstate = pstate[0];
|
|
||||||
char buf[4];
|
|
||||||
const char *p;
|
|
||||||
size_t m;
|
|
||||||
|
|
||||||
switch (nstate)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
p = s;
|
|
||||||
m = n;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
buf[2] = pstate[3];
|
|
||||||
/*FALLTHROUGH*/
|
|
||||||
case 2:
|
|
||||||
buf[1] = pstate[2];
|
|
||||||
/*FALLTHROUGH*/
|
|
||||||
case 1:
|
|
||||||
buf[0] = pstate[1];
|
|
||||||
p = buf;
|
|
||||||
m = nstate;
|
|
||||||
buf[m++] = s[0];
|
|
||||||
if (n >= 2 && m < 4)
|
|
||||||
{
|
|
||||||
buf[m++] = s[1];
|
|
||||||
if (n >= 3 && m < 4)
|
|
||||||
buf[m++] = s[2];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
errno = EINVAL;
|
|
||||||
return (size_t)(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Here m > 0. */
|
|
||||||
|
|
||||||
# if __GLIBC__ || defined __UCLIBC__
|
|
||||||
/* Work around bug <http://sourceware.org/bugzilla/show_bug.cgi?id=9674> */
|
|
||||||
mbtowc (NULL, NULL, 0);
|
|
||||||
# endif
|
|
||||||
{
|
|
||||||
int res = mbtowc (pwc, p, m);
|
|
||||||
|
|
||||||
if (res >= 0)
|
|
||||||
{
|
|
||||||
if (pwc != NULL && ((*pwc == 0) != (res == 0)))
|
|
||||||
abort ();
|
|
||||||
if (nstate >= (res > 0 ? res : 1))
|
|
||||||
abort ();
|
|
||||||
res -= nstate;
|
|
||||||
pstate[0] = 0;
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* mbtowc does not distinguish between invalid and incomplete multibyte
|
|
||||||
sequences. But mbrtowc needs to make this distinction.
|
|
||||||
There are two possible approaches:
|
|
||||||
- Use iconv() and its return value.
|
|
||||||
- Use built-in knowledge about the possible encodings.
|
|
||||||
Given the low quality of implementation of iconv() on the systems that
|
|
||||||
lack mbrtowc(), we use the second approach.
|
|
||||||
The possible encodings are:
|
|
||||||
- 8-bit encodings,
|
|
||||||
- EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS,
|
|
||||||
- UTF-8.
|
|
||||||
Use specialized code for each. */
|
|
||||||
if (m >= 4 || m >= MB_CUR_MAX)
|
|
||||||
goto invalid;
|
|
||||||
/* Here MB_CUR_MAX > 1 and 0 < m < 4. */
|
|
||||||
{
|
|
||||||
const char *encoding = locale_charset ();
|
|
||||||
|
|
||||||
if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
|
|
||||||
{
|
|
||||||
/* Cf. unistr/u8-mblen.c. */
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if (c >= 0xc2)
|
|
||||||
{
|
|
||||||
if (c < 0xe0)
|
|
||||||
{
|
|
||||||
if (m == 1)
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
else if (c < 0xf0)
|
|
||||||
{
|
|
||||||
if (m == 1)
|
|
||||||
goto incomplete;
|
|
||||||
if (m == 2)
|
|
||||||
{
|
|
||||||
unsigned char c2 = (unsigned char) p[1];
|
|
||||||
|
|
||||||
if ((c2 ^ 0x80) < 0x40
|
|
||||||
&& (c >= 0xe1 || c2 >= 0xa0)
|
|
||||||
&& (c != 0xed || c2 < 0xa0))
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (c <= 0xf4)
|
|
||||||
{
|
|
||||||
if (m == 1)
|
|
||||||
goto incomplete;
|
|
||||||
else /* m == 2 || m == 3 */
|
|
||||||
{
|
|
||||||
unsigned char c2 = (unsigned char) p[1];
|
|
||||||
|
|
||||||
if ((c2 ^ 0x80) < 0x40
|
|
||||||
&& (c >= 0xf1 || c2 >= 0x90)
|
|
||||||
&& (c < 0xf4 || (c == 0xf4 && c2 < 0x90)))
|
|
||||||
{
|
|
||||||
if (m == 2)
|
|
||||||
goto incomplete;
|
|
||||||
else /* m == 3 */
|
|
||||||
{
|
|
||||||
unsigned char c3 = (unsigned char) p[2];
|
|
||||||
|
|
||||||
if ((c3 ^ 0x80) < 0x40)
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
goto invalid;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* As a reference for this code, you can use the GNU libiconv
|
|
||||||
implementation. Look for uses of the RET_TOOFEW macro. */
|
|
||||||
|
|
||||||
if (STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
|
|
||||||
{
|
|
||||||
if (m == 1)
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f)
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
if (m == 2)
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if (c == 0x8f)
|
|
||||||
{
|
|
||||||
unsigned char c2 = (unsigned char) p[1];
|
|
||||||
|
|
||||||
if (c2 >= 0xa1 && c2 < 0xff)
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
goto invalid;
|
|
||||||
}
|
|
||||||
if (STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
|
|
||||||
|| STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
|
|
||||||
|| STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
|
|
||||||
{
|
|
||||||
if (m == 1)
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if (c >= 0xa1 && c < 0xff)
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
goto invalid;
|
|
||||||
}
|
|
||||||
if (STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
|
|
||||||
{
|
|
||||||
if (m == 1)
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if ((c >= 0xa1 && c < 0xff) || c == 0x8e)
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
else /* m == 2 || m == 3 */
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if (c == 0x8e)
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
goto invalid;
|
|
||||||
}
|
|
||||||
if (STREQ (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
|
|
||||||
{
|
|
||||||
if (m == 1)
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe))
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
else /* m == 2 || m == 3 */
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if (c >= 0x90 && c <= 0xe3)
|
|
||||||
{
|
|
||||||
unsigned char c2 = (unsigned char) p[1];
|
|
||||||
|
|
||||||
if (c2 >= 0x30 && c2 <= 0x39)
|
|
||||||
{
|
|
||||||
if (m == 2)
|
|
||||||
goto incomplete;
|
|
||||||
else /* m == 3 */
|
|
||||||
{
|
|
||||||
unsigned char c3 = (unsigned char) p[2];
|
|
||||||
|
|
||||||
if (c3 >= 0x81 && c3 <= 0xfe)
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
goto invalid;
|
|
||||||
}
|
|
||||||
if (STREQ (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
|
|
||||||
{
|
|
||||||
if (m == 1)
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) p[0];
|
|
||||||
|
|
||||||
if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea)
|
|
||||||
|| (c >= 0xf0 && c <= 0xf9))
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
goto invalid;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* An unknown multibyte encoding. */
|
|
||||||
goto incomplete;
|
|
||||||
}
|
|
||||||
|
|
||||||
incomplete:
|
|
||||||
{
|
|
||||||
size_t k = nstate;
|
|
||||||
/* Here 0 <= k < m < 4. */
|
|
||||||
pstate[++k] = s[0];
|
|
||||||
if (k < m)
|
|
||||||
{
|
|
||||||
pstate[++k] = s[1];
|
|
||||||
if (k < m)
|
|
||||||
pstate[++k] = s[2];
|
|
||||||
}
|
|
||||||
if (k != m)
|
|
||||||
abort ();
|
|
||||||
}
|
|
||||||
pstate[0] = m;
|
|
||||||
return (size_t)(-2);
|
|
||||||
|
|
||||||
invalid:
|
|
||||||
errno = EILSEQ;
|
|
||||||
/* The conversion state is undefined, says POSIX. */
|
|
||||||
return (size_t)(-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
/* Override the system's mbrtowc() function. */
|
|
||||||
|
|
||||||
# undef mbrtowc
|
|
||||||
|
|
||||||
size_t
|
|
||||||
rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
|
|
||||||
{
|
|
||||||
# if MBRTOWC_NULL_ARG_BUG || MBRTOWC_RETVAL_BUG
|
|
||||||
if (s == NULL)
|
|
||||||
{
|
|
||||||
pwc = NULL;
|
|
||||||
s = "";
|
|
||||||
n = 1;
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if MBRTOWC_RETVAL_BUG
|
|
||||||
{
|
|
||||||
static mbstate_t internal_state;
|
|
||||||
|
|
||||||
/* Override mbrtowc's internal state. We can not call mbsinit() on the
|
|
||||||
hidden internal state, but we can call it on our variable. */
|
|
||||||
if (ps == NULL)
|
|
||||||
ps = &internal_state;
|
|
||||||
|
|
||||||
if (!mbsinit (ps))
|
|
||||||
{
|
|
||||||
/* Parse the rest of the multibyte character byte for byte. */
|
|
||||||
size_t count = 0;
|
|
||||||
for (; n > 0; s++, n--)
|
|
||||||
{
|
|
||||||
wchar_t wc;
|
|
||||||
size_t ret = mbrtowc (&wc, s, 1, ps);
|
|
||||||
|
|
||||||
if (ret == (size_t)(-1))
|
|
||||||
return (size_t)(-1);
|
|
||||||
count++;
|
|
||||||
if (ret != (size_t)(-2))
|
|
||||||
{
|
|
||||||
/* The multibyte character has been completed. */
|
|
||||||
if (pwc != NULL)
|
|
||||||
*pwc = wc;
|
|
||||||
return (wc == 0 ? 0 : count);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (size_t)(-2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if MBRTOWC_NUL_RETVAL_BUG
|
|
||||||
{
|
|
||||||
wchar_t wc;
|
|
||||||
size_t ret = mbrtowc (&wc, s, n, ps);
|
|
||||||
|
|
||||||
if (ret != (size_t)(-1) && ret != (size_t)(-2))
|
|
||||||
{
|
|
||||||
if (pwc != NULL)
|
|
||||||
*pwc = wc;
|
|
||||||
if (wc == 0)
|
|
||||||
ret = 0;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
# else
|
|
||||||
return mbrtowc (pwc, s, n, ps);
|
|
||||||
# endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,47 +0,0 @@
|
||||||
/* Test for initial conversion state.
|
|
||||||
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
|
|
||||||
Written by Bruno Haible <bruno@clisp.org>, 2008.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
/* Specification. */
|
|
||||||
#include <wchar.h>
|
|
||||||
|
|
||||||
#include "verify.h"
|
|
||||||
|
|
||||||
/* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs()
|
|
||||||
and wcrtomb(), wcsrtombs().
|
|
||||||
We assume that
|
|
||||||
- sizeof (mbstate_t) >= 4,
|
|
||||||
- only stateless encodings are supported (such as UTF-8 and EUC-JP, but
|
|
||||||
not ISO-2022 variants),
|
|
||||||
- for each encoding, the number of bytes for a wide character is <= 4.
|
|
||||||
(This maximum is attained for UTF-8, GB18030, EUC-TW.)
|
|
||||||
We define the meaning of mbstate_t as follows:
|
|
||||||
- In mb -> wc direction, mbstate_t's first byte contains the number of
|
|
||||||
buffered bytes (in the range 0..3), followed by up to 3 buffered bytes.
|
|
||||||
- In wc -> mb direction, mbstate_t contains no information. In other
|
|
||||||
words, it is always in the initial state. */
|
|
||||||
|
|
||||||
verify (sizeof (mbstate_t) >= 4);
|
|
||||||
|
|
||||||
int
|
|
||||||
mbsinit (const mbstate_t *ps)
|
|
||||||
{
|
|
||||||
const char *pstate = (const char *)ps;
|
|
||||||
|
|
||||||
return pstate[0] == 0;
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2010
|
/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2011
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
|
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Provide a netdb.h header file for systems lacking it (read: MinGW).
|
/* Provide a netdb.h header file for systems lacking it (read: MinGW).
|
||||||
Copyright (C) 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
Written by Simon Josefsson.
|
Written by Simon Josefsson.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -51,6 +51,7 @@
|
||||||
|
|
||||||
# if !@HAVE_STRUCT_ADDRINFO@
|
# if !@HAVE_STRUCT_ADDRINFO@
|
||||||
|
|
||||||
|
# if !GNULIB_defined_struct_addrinfo
|
||||||
/* Structure to contain information about address of a service provider. */
|
/* Structure to contain information about address of a service provider. */
|
||||||
struct addrinfo
|
struct addrinfo
|
||||||
{
|
{
|
||||||
|
@ -63,6 +64,8 @@ struct addrinfo
|
||||||
char *ai_canonname; /* Canonical name for service location. */
|
char *ai_canonname; /* Canonical name for service location. */
|
||||||
struct addrinfo *ai_next; /* Pointer to next in list. */
|
struct addrinfo *ai_next; /* Pointer to next in list. */
|
||||||
};
|
};
|
||||||
|
# define GNULIB_defined_struct_addrinfo 1
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* Possible values for `ai_flags' field in `addrinfo' structure. */
|
/* Possible values for `ai_flags' field in `addrinfo' structure. */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Substitute for <netinet/in.h>.
|
/* Substitute for <netinet/in.h>.
|
||||||
Copyright (C) 2007-2010 Free Software Foundation, Inc.
|
Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Detect the number of processors.
|
/* Detect the number of processors.
|
||||||
|
|
||||||
Copyright (C) 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Detect the number of processors.
|
/* Detect the number of processors.
|
||||||
|
|
||||||
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Define PATH_MAX somehow. Requires sys/types.h.
|
/* Define PATH_MAX somehow. Requires sys/types.h.
|
||||||
Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2010 Free Software
|
Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2011 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Decomposed printf argument list.
|
/* Decomposed printf argument list.
|
||||||
Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2010 Free Software
|
Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2011 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Decomposed printf argument list.
|
/* Decomposed printf argument list.
|
||||||
Copyright (C) 1999, 2002-2003, 2006-2007, 2009-2010 Free Software
|
Copyright (C) 1999, 2002-2003, 2006-2007, 2011 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -136,10 +136,14 @@ typedef struct
|
||||||
}
|
}
|
||||||
argument;
|
argument;
|
||||||
|
|
||||||
|
/* Number of directly allocated arguments (no malloc() needed). */
|
||||||
|
#define N_DIRECT_ALLOC_ARGUMENTS 7
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
size_t count;
|
size_t count;
|
||||||
argument *arg;
|
argument *arg;
|
||||||
|
argument direct_alloc_arg[N_DIRECT_ALLOC_ARGUMENTS];
|
||||||
}
|
}
|
||||||
arguments;
|
arguments;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Formatted output to strings.
|
/* Formatted output to strings.
|
||||||
Copyright (C) 1999-2000, 2002-2003, 2006-2010 Free Software Foundation, Inc.
|
Copyright (C) 1999-2000, 2002-2003, 2006-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
@ -63,6 +63,9 @@
|
||||||
/* malloc(), realloc(), free(). */
|
/* malloc(), realloc(), free(). */
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
/* memcpy(). */
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
/* errno. */
|
/* errno. */
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
@ -80,23 +83,20 @@ STATIC
|
||||||
int
|
int
|
||||||
PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
|
PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
|
||||||
{
|
{
|
||||||
const CHAR_T *cp = format; /* pointer into format */
|
const CHAR_T *cp = format; /* pointer into format */
|
||||||
size_t arg_posn = 0; /* number of regular arguments consumed */
|
size_t arg_posn = 0; /* number of regular arguments consumed */
|
||||||
size_t d_allocated; /* allocated elements of d->dir */
|
size_t d_allocated; /* allocated elements of d->dir */
|
||||||
size_t a_allocated; /* allocated elements of a->arg */
|
size_t a_allocated; /* allocated elements of a->arg */
|
||||||
size_t max_width_length = 0;
|
size_t max_width_length = 0;
|
||||||
size_t max_precision_length = 0;
|
size_t max_precision_length = 0;
|
||||||
|
|
||||||
d->count = 0;
|
d->count = 0;
|
||||||
d_allocated = 1;
|
d_allocated = N_DIRECT_ALLOC_DIRECTIVES;
|
||||||
d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE));
|
d->dir = d->direct_alloc_dir;
|
||||||
if (d->dir == NULL)
|
|
||||||
/* Out of memory. */
|
|
||||||
goto out_of_memory_1;
|
|
||||||
|
|
||||||
a->count = 0;
|
a->count = 0;
|
||||||
a_allocated = 0;
|
a_allocated = N_DIRECT_ALLOC_ARGUMENTS;
|
||||||
a->arg = NULL;
|
a->arg = a->direct_alloc_arg;
|
||||||
|
|
||||||
#define REGISTER_ARG(_index_,_type_) \
|
#define REGISTER_ARG(_index_,_type_) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -113,12 +113,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
|
||||||
if (size_overflow_p (memory_size)) \
|
if (size_overflow_p (memory_size)) \
|
||||||
/* Overflow, would lead to out of memory. */ \
|
/* Overflow, would lead to out of memory. */ \
|
||||||
goto out_of_memory; \
|
goto out_of_memory; \
|
||||||
memory = (argument *) (a->arg \
|
memory = (argument *) (a->arg != a->direct_alloc_arg \
|
||||||
? realloc (a->arg, memory_size) \
|
? realloc (a->arg, memory_size) \
|
||||||
: malloc (memory_size)); \
|
: malloc (memory_size)); \
|
||||||
if (memory == NULL) \
|
if (memory == NULL) \
|
||||||
/* Out of memory. */ \
|
/* Out of memory. */ \
|
||||||
goto out_of_memory; \
|
goto out_of_memory; \
|
||||||
|
if (a->arg == a->direct_alloc_arg) \
|
||||||
|
memcpy (memory, a->arg, a->count * sizeof (argument)); \
|
||||||
a->arg = memory; \
|
a->arg = memory; \
|
||||||
} \
|
} \
|
||||||
while (a->count <= n) \
|
while (a->count <= n) \
|
||||||
|
@ -588,10 +590,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
|
||||||
if (size_overflow_p (memory_size))
|
if (size_overflow_p (memory_size))
|
||||||
/* Overflow, would lead to out of memory. */
|
/* Overflow, would lead to out of memory. */
|
||||||
goto out_of_memory;
|
goto out_of_memory;
|
||||||
memory = (DIRECTIVE *) realloc (d->dir, memory_size);
|
memory = (DIRECTIVE *) (d->dir != d->direct_alloc_dir
|
||||||
|
? realloc (d->dir, memory_size)
|
||||||
|
: malloc (memory_size));
|
||||||
if (memory == NULL)
|
if (memory == NULL)
|
||||||
/* Out of memory. */
|
/* Out of memory. */
|
||||||
goto out_of_memory;
|
goto out_of_memory;
|
||||||
|
if (d->dir == d->direct_alloc_dir)
|
||||||
|
memcpy (memory, d->dir, d->count * sizeof (DIRECTIVE));
|
||||||
d->dir = memory;
|
d->dir = memory;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -610,19 +616,18 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
if (a->arg)
|
if (a->arg != a->direct_alloc_arg)
|
||||||
free (a->arg);
|
free (a->arg);
|
||||||
if (d->dir)
|
if (d->dir != d->direct_alloc_dir)
|
||||||
free (d->dir);
|
free (d->dir);
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
out_of_memory:
|
out_of_memory:
|
||||||
if (a->arg)
|
if (a->arg != a->direct_alloc_arg)
|
||||||
free (a->arg);
|
free (a->arg);
|
||||||
if (d->dir)
|
if (d->dir != d->direct_alloc_dir)
|
||||||
free (d->dir);
|
free (d->dir);
|
||||||
out_of_memory_1:
|
|
||||||
errno = ENOMEM;
|
errno = ENOMEM;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Parse printf format string.
|
/* Parse printf format string.
|
||||||
Copyright (C) 1999, 2002-2003, 2005, 2007, 2009-2010 Free Software
|
Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2011 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -47,6 +47,9 @@
|
||||||
/* xxx_directive: A parsed directive.
|
/* xxx_directive: A parsed directive.
|
||||||
xxx_directives: A parsed format string. */
|
xxx_directives: A parsed format string. */
|
||||||
|
|
||||||
|
/* Number of directly allocated directives (no malloc() needed). */
|
||||||
|
#define N_DIRECT_ALLOC_DIRECTIVES 7
|
||||||
|
|
||||||
/* A parsed directive. */
|
/* A parsed directive. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -71,6 +74,7 @@ typedef struct
|
||||||
char_directive *dir;
|
char_directive *dir;
|
||||||
size_t max_width_length;
|
size_t max_width_length;
|
||||||
size_t max_precision_length;
|
size_t max_precision_length;
|
||||||
|
char_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
|
||||||
}
|
}
|
||||||
char_directives;
|
char_directives;
|
||||||
|
|
||||||
|
@ -100,6 +104,7 @@ typedef struct
|
||||||
u8_directive *dir;
|
u8_directive *dir;
|
||||||
size_t max_width_length;
|
size_t max_width_length;
|
||||||
size_t max_precision_length;
|
size_t max_precision_length;
|
||||||
|
u8_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
|
||||||
}
|
}
|
||||||
u8_directives;
|
u8_directives;
|
||||||
|
|
||||||
|
@ -127,6 +132,7 @@ typedef struct
|
||||||
u16_directive *dir;
|
u16_directive *dir;
|
||||||
size_t max_width_length;
|
size_t max_width_length;
|
||||||
size_t max_precision_length;
|
size_t max_precision_length;
|
||||||
|
u16_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
|
||||||
}
|
}
|
||||||
u16_directives;
|
u16_directives;
|
||||||
|
|
||||||
|
@ -154,6 +160,7 @@ typedef struct
|
||||||
u32_directive *dir;
|
u32_directive *dir;
|
||||||
size_t max_width_length;
|
size_t max_width_length;
|
||||||
size_t max_precision_length;
|
size_t max_precision_length;
|
||||||
|
u32_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
|
||||||
}
|
}
|
||||||
u32_directives;
|
u32_directives;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2010 Free Software
|
/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2011 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C
|
NOTE: The canonical source of this file is maintained with the GNU C
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Stub for readlink().
|
/* Stub for readlink().
|
||||||
Copyright (C) 2003-2007, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
40
lib/recv.c
Normal file
40
lib/recv.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* recv.c --- wrappers for Windows recv function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef recv
|
||||||
|
|
||||||
|
ssize_t
|
||||||
|
rpl_recv (int fd, void *buf, size_t len, int flags)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = recv (sock, buf, len, flags);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
48
lib/recvfrom.c
Normal file
48
lib/recvfrom.c
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/* recvfrom.c --- wrappers for Windows recvfrom function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef recvfrom
|
||||||
|
|
||||||
|
ssize_t
|
||||||
|
rpl_recvfrom (int fd, void *buf, size_t len, int flags, struct sockaddr *from,
|
||||||
|
socklen_t *fromlen)
|
||||||
|
{
|
||||||
|
int frombufsize = (from != NULL ? *fromlen : 0);
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = recvfrom (sock, buf, len, flags, from, fromlen);
|
||||||
|
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
/* Winsock recvfrom() only returns a valid 'from' when the socket is
|
||||||
|
connectionless. POSIX gives a valid 'from' for all types of sockets. */
|
||||||
|
else if (from != NULL && *fromlen == frombufsize)
|
||||||
|
rpl_getpeername (fd, from, fromlen);
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
|
@ -1,30 +0,0 @@
|
||||||
# Add this package to a list of references stored in a text file.
|
|
||||||
#
|
|
||||||
# Copyright (C) 2000, 2009, 2010 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, 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 Lesser General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
# with this program; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# Written by Bruno Haible <haible@clisp.cons.org>.
|
|
||||||
#
|
|
||||||
/^# Packages using this file: / {
|
|
||||||
s/# Packages using this file://
|
|
||||||
ta
|
|
||||||
:a
|
|
||||||
s/ @PACKAGE@ / @PACKAGE@ /
|
|
||||||
tb
|
|
||||||
s/ $/ @PACKAGE@ /
|
|
||||||
:b
|
|
||||||
s/^/# Packages using this file:/
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
# Remove this package from a list of references stored in a text file.
|
|
||||||
#
|
|
||||||
# Copyright (C) 2000, 2009, 2010 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, 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 Lesser General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
# with this program; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# Written by Bruno Haible <haible@clisp.cons.org>.
|
|
||||||
#
|
|
||||||
/^# Packages using this file: / {
|
|
||||||
s/# Packages using this file://
|
|
||||||
s/ @PACKAGE@ / /
|
|
||||||
s/^/# Packages using this file:/
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* An interface to read and write that retries after interrupts.
|
/* An interface to read and write that retries after interrupts.
|
||||||
|
|
||||||
Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2010 Free Software
|
Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2011 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* An interface to read() that retries after interrupts.
|
/* An interface to read() that retries after interrupts.
|
||||||
Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2002, 2006, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* An interface to write that retries after interrupts.
|
/* An interface to write that retries after interrupts.
|
||||||
Copyright (C) 2002, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* An interface to write() that retries after interrupts.
|
/* An interface to write() that retries after interrupts.
|
||||||
Copyright (C) 2002, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
40
lib/send.c
Normal file
40
lib/send.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* send.c --- wrappers for Windows send function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef send
|
||||||
|
|
||||||
|
ssize_t
|
||||||
|
rpl_send (int fd, const void *buf, size_t len, int flags)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = send (sock, buf, len, flags);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
41
lib/sendto.c
Normal file
41
lib/sendto.c
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
/* sendto.c --- wrappers for Windows sendto function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef sendto
|
||||||
|
|
||||||
|
ssize_t
|
||||||
|
rpl_sendto (int fd, const void *buf, size_t len, int flags,
|
||||||
|
const struct sockaddr *to, socklen_t tolen)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = sendto (sock, buf, len, flags, to, tolen);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
56
lib/setsockopt.c
Normal file
56
lib/setsockopt.c
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
/* setsockopt.c --- wrappers for Windows setsockopt function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get struct timeval. */
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef setsockopt
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_setsockopt (int fd, int level, int optname, const void *optval, socklen_t optlen)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
|
||||||
|
if (level == SOL_SOCKET && (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO))
|
||||||
|
{
|
||||||
|
const struct timeval *tv = optval;
|
||||||
|
int milliseconds = tv->tv_sec * 1000 + tv->tv_usec / 1000;
|
||||||
|
optval = &milliseconds;
|
||||||
|
r = setsockopt (sock, level, optname, optval, sizeof (int));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
r = setsockopt (sock, level, optname, optval, optlen);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
40
lib/shutdown.c
Normal file
40
lib/shutdown.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* shutdown.c --- wrappers for Windows shutdown function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#undef shutdown
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_shutdown (int fd, int how)
|
||||||
|
{
|
||||||
|
SOCKET sock = FD_TO_SOCKET (fd);
|
||||||
|
int r = shutdown (sock, how);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/* size_max.h -- declare SIZE_MAX through system headers
|
/* size_max.h -- declare SIZE_MAX through system headers
|
||||||
Copyright (C) 2005-2006, 2009-2010 Free Software Foundation, Inc.
|
Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
|
||||||
Written by Simon Josefsson.
|
Written by Simon Josefsson.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Formatted output to strings.
|
/* Formatted output to strings.
|
||||||
Copyright (C) 2004, 2006-2010 Free Software Foundation, Inc.
|
Copyright (C) 2004, 2006-2011 Free Software Foundation, Inc.
|
||||||
Written by Simon Josefsson and Paul Eggert.
|
Written by Simon Josefsson and Paul Eggert.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
49
lib/socket.c
Normal file
49
lib/socket.c
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
/* socket.c --- wrappers for Windows socket function
|
||||||
|
|
||||||
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paolo Bonzini */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#include "sockets.h"
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_socket (int domain, int type, int protocol)
|
||||||
|
{
|
||||||
|
SOCKET fh;
|
||||||
|
|
||||||
|
gl_sockets_startup (SOCKETS_1_1);
|
||||||
|
|
||||||
|
/* We have to use WSASocket() to create non-overlapped IO sockets.
|
||||||
|
Overlapped IO sockets cannot be used with read/write. */
|
||||||
|
fh = WSASocket (domain, type, protocol, NULL, 0, 0);
|
||||||
|
|
||||||
|
if (fh == INVALID_SOCKET)
|
||||||
|
{
|
||||||
|
set_winsock_errno ();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return SOCKET_TO_FD (fh);
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
/* sockets.c --- wrappers for Windows socket functions
|
/* sockets.c --- wrappers for Windows socket functions
|
||||||
|
|
||||||
Copyright (C) 2008-2010 Free Software Foundation, Inc.
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* sockets.h - wrappers for Windows socket functions
|
/* sockets.h - wrappers for Windows socket functions
|
||||||
|
|
||||||
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
|
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue