Rely on C89 vprintf()
authorAaron Crane <arc@cpan.org>
Thu, 12 Oct 2017 15:56:12 +0000 (17:56 +0200)
committerAaron Crane <arc@cpan.org>
Sat, 21 Oct 2017 15:52:03 +0000 (16:52 +0100)
27 files changed:
Configure
Cross/config.sh-arm-linux
Cross/config.sh-arm-linux-n770
INSTALL
NetWare/config.wc
NetWare/config_H.wc
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
configure.com
hints/catamount.sh
perlio.c
plan9/config.plan9
plan9/config_h.sample
plan9/config_sh.sample
symbian/config.sh
uconfig.h
uconfig.sh
uconfig64.sh
util.c
win32/config.ce
win32/config.gc
win32/config.vc
win32/config_H.ce
win32/config_H.gc
win32/config_H.vc

index 2f2d00a..464e5e8 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -926,8 +926,6 @@ d_vfork=''
 usevfork=''
 d_voidsig=''
 signal_t=''
-d_charvspr=''
-d_vprintf=''
 d_wait4=''
 d_waitpid=''
 d_wcscmp=''
@@ -11908,196 +11906,6 @@ $rm_try
 set cbrt d_cbrt
 eval $inlibc
 
-: see if stdarg is available
-echo " "
-if $test `./findhdr stdarg.h`; then
-       echo "<stdarg.h> found." >&4
-       valstd="$define"
-else
-       echo "<stdarg.h> NOT found." >&4
-       valstd="$undef"
-fi
-
-: see if varargs is available
-echo " "
-if $test `./findhdr varargs.h`; then
-       echo "<varargs.h> found." >&4
-else
-       echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
-fi
-
-: set up the varargs testing programs
-$cat > varargs.c <<EOP
-#ifdef I_STDARG
-#include <stdarg.h>
-#endif
-#ifdef I_VARARGS
-#include <varargs.h>
-#endif
-
-#ifdef I_STDARG
-int f(char *p, ...)
-#else
-int f(va_alist)
-va_dcl
-#endif
-{
-       va_list ap;
-#ifndef I_STDARG
-       char *p;
-#endif
-#ifdef I_STDARG
-       va_start(ap,p);
-#else
-       va_start(ap);
-       p = va_arg(ap, char *);
-#endif
-       va_end(ap);
-       return 0;
-}
-EOP
-$cat > varargs <<EOP
-$startsh
-if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
-       echo "true"
-else
-       echo "false"
-fi
-$rm -f varargs$_o
-EOP
-chmod +x varargs
-
-: now check which varargs header should be included
-echo " "
-i_varhdr=''
-val=''
-case "$valstd" in
-"$define")
-       if `./varargs I_STDARG`; then
-               val='stdarg.h'
-       elif `./varargs I_VARARGS`; then
-               val='varargs.h'
-       fi
-       ;;
-*)
-       if `./varargs I_VARARGS`; then
-               val='varargs.h'
-       fi
-       ;;
-esac
-case "$val" in
-'')
-       echo " "
-       echo "*** WHOA THERE!!! ***" >&4
-       echo "    Your C compiler \"$cc\" doesn't seem to support stdarg or varargs!" >&4
-       case "$knowitall" in
-       '')
-       echo "    I'm giving up; maybe you can try again with a different compiler?" >&4
-               exit 1
-               ;;
-       esac
-echo "I could not find the definition for va_dcl... You have problems..." >&4
-       val="$undef"; set i_stdarg; eval $setvar
-       val="$undef"; set i_varargs; eval $setvar
-       ;;
-*)
-       set i_varhdr
-       eval $setvar
-       case "$i_varhdr" in
-       stdarg.h)
-               val="$define"; set i_stdarg; eval $setvar
-               val="$undef"; set i_varargs; eval $setvar
-               ;;
-       varargs.h)
-               val="$undef"; set i_stdarg; eval $setvar
-               val="$define"; set i_varargs; eval $setvar
-               ;;
-       esac
-       echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
-esac
-$rm -f varargs*
-
-: see if vprintf exists
-echo " "
-if set vprintf val -f d_vprintf; eval $csym; $val; then
-       echo 'vprintf() found.' >&4
-       val="$define"
-       $cat >try.c <<EOF
-#$i_stdarg I_STDARG  /* Only one of these can be defined by i_varhrd */
-#$i_varargs I_VARARGS
-
-#$i_stdlib I_STDLIB
-#$i_unistd I_UNISTD
-
-#ifdef I_STDARG
-#  include <stdarg.h>
-#else /* I_VARARGS */
-#  include <varargs.h>
-#endif
-
-#ifdef I_UNISTD
-#  include <unistd.h>
-#endif
-
-#ifdef I_STDLIB
-#  include <stdlib.h>
-#endif
-
-#include <stdio.h> /* vsprintf prototype */
-
-#ifdef I_STDARG
-void xxx(int n, ...)
-{
-    va_list args;
-    char buf[10];
-    va_start(args, n);
-    exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
-}
-int main() { xxx(1, "foo"); }
-
-#else /* I_VARARGS */
-
-xxx(va_alist)
-va_dcl
-{
-    va_list args;
-    char buf[10];
-    va_start(args);
-    exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
-}
-int main() { xxx("foo"); }
-
-#endif
-
-EOF
-       set try
-       if eval $compile_ok; then
-               if $run ./try; then
-                       echo "Your vsprintf() returns (int)." >&4
-                       val2="$undef"
-               else
-                       echo "Your vsprintf() returns (char*)." >&4
-                       val2="$define"
-               fi
-       else
-               echo 'I am unable to compile the vsprintf() test program.' >&4
-               # We shouldn't get here.  If we do, assume the standard signature,
-               # not the old BSD one.
-               echo 'Guessing that vsprintf() returns (int).' >&4
-               val2="$undef"
-       fi
-else
-       echo 'vprintf() NOT found.' >&4
-       val="$undef"
-       val2="$undef"
-fi
-$rm_try
-set d_vprintf
-eval $setvar
-val=$val2
-set d_charvspr
-eval $setvar
-
 : see if chown exists
 set chown d_chown
 eval $inlibc
@@ -21621,6 +21429,115 @@ rp="What is the type used for file modes for system calls (e.g. fchmod())?"
 set mode_t modetype int stdio.h sys/types.h
 eval $typedef_ask
 
+: see if stdarg is available
+echo " "
+if $test `./findhdr stdarg.h`; then
+       echo "<stdarg.h> found." >&4
+       valstd="$define"
+else
+       echo "<stdarg.h> NOT found." >&4
+       valstd="$undef"
+fi
+
+: see if varargs is available
+echo " "
+if $test `./findhdr varargs.h`; then
+       echo "<varargs.h> found." >&4
+else
+       echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
+fi
+
+: set up the varargs testing programs
+$cat > varargs.c <<EOP
+#ifdef I_STDARG
+#include <stdarg.h>
+#endif
+#ifdef I_VARARGS
+#include <varargs.h>
+#endif
+
+#ifdef I_STDARG
+int f(char *p, ...)
+#else
+int f(va_alist)
+va_dcl
+#endif
+{
+       va_list ap;
+#ifndef I_STDARG
+       char *p;
+#endif
+#ifdef I_STDARG
+       va_start(ap,p);
+#else
+       va_start(ap);
+       p = va_arg(ap, char *);
+#endif
+       va_end(ap);
+       return 0;
+}
+EOP
+$cat > varargs <<EOP
+$startsh
+if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
+       echo "true"
+else
+       echo "false"
+fi
+$rm -f varargs$_o
+EOP
+chmod +x varargs
+
+: now check which varargs header should be included
+echo " "
+i_varhdr=''
+val=''
+case "$valstd" in
+"$define")
+       if `./varargs I_STDARG`; then
+               val='stdarg.h'
+       elif `./varargs I_VARARGS`; then
+               val='varargs.h'
+       fi
+       ;;
+*)
+       if `./varargs I_VARARGS`; then
+               val='varargs.h'
+       fi
+       ;;
+esac
+case "$val" in
+'')
+       echo " "
+       echo "*** WHOA THERE!!! ***" >&4
+       echo "    Your C compiler \"$cc\" doesn't seem to support stdarg or varargs!" >&4
+       case "$knowitall" in
+       '')
+       echo "    I'm giving up; maybe you can try again with a different compiler?" >&4
+               exit 1
+               ;;
+       esac
+echo "I could not find the definition for va_dcl... You have problems..." >&4
+       val="$undef"; set i_stdarg; eval $setvar
+       val="$undef"; set i_varargs; eval $setvar
+       ;;
+*)
+       set i_varhdr
+       eval $setvar
+       case "$i_varhdr" in
+       stdarg.h)
+               val="$define"; set i_stdarg; eval $setvar
+               val="$undef"; set i_varargs; eval $setvar
+               ;;
+       varargs.h)
+               val="$undef"; set i_stdarg; eval $setvar
+               val="$define"; set i_varargs; eval $setvar
+               ;;
+       esac
+       echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
+esac
+$rm -f varargs*
+
 : see if we need va_copy
 echo " "
 case "$i_stdarg" in
@@ -24338,7 +24255,6 @@ d_c99_variadic_macros='$d_c99_variadic_macros'
 d_casti32='$d_casti32'
 d_castneg='$d_castneg'
 d_cbrt='$d_cbrt'
-d_charvspr='$d_charvspr'
 d_chown='$d_chown'
 d_chroot='$d_chroot'
 d_chsize='$d_chsize'
@@ -24829,7 +24745,6 @@ d_vfork='$d_vfork'
 d_void_closedir='$d_void_closedir'
 d_voidsig='$d_voidsig'
 d_voidtty='$d_voidtty'
-d_vprintf='$d_vprintf'
 d_wait4='$d_wait4'
 d_waitpid='$d_waitpid'
 d_wcscmp='$d_wcscmp'
index a8c322d..4f9fde3 100644 (file)
@@ -137,7 +137,6 @@ d_c99_variadic_macros='undef'
 d_casti32='define'
 d_castneg='define'
 d_cbrt='undef'
-d_charvspr='undef'
 d_chown='define'
 d_chroot='define'
 d_chsize='undef'
@@ -623,7 +622,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='define'
 d_waitpid='define'
 d_wcscmp='undef'
index b0278a5..781e908 100644 (file)
@@ -125,7 +125,6 @@ d_builtin_expect='define'
 d_c99_variadic_macros='undef'
 d_casti32='define'
 d_castneg='define'
-d_charvspr='undef'
 d_chown='define'
 d_chroot='define'
 d_chsize='undef'
@@ -495,7 +494,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='define'
 d_waitpid='define'
 d_wcstombs='define'
diff --git a/INSTALL b/INSTALL
index ed36ca1..50d4f23 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1540,7 +1540,6 @@ gcc, you should probably have i_stdarg='define' and i_varargs='undef'
 in config.sh.  The problem is usually solved by installing gcc
 correctly.  If you do change config.sh, don't forget to propagate
 your changes (see L<"Propagating your changes to config.sh"> below).
-See also the L<"vsprintf"> item below.
 
 =item util.c
 
@@ -1582,20 +1581,6 @@ Check your config.sh.  You should have d_umask='define'.  If you don't,
 this is probably the L<"nm extraction"> problem discussed above.  Also,
 try reading the hints file for your system for further information.
 
-=item vsprintf
-
-If you run into problems with vsprintf in compiling util.c, the
-problem is probably that Configure failed to detect your system's
-version of vsprintf().  Check whether your system has vprintf().
-(Virtually all modern Unix systems do.)  Then, check the variable
-d_vprintf in config.sh.  If your system has vprintf, it should be:
-
-       d_vprintf='define'
-
-If Configure guessed wrong, it is likely that Configure guessed wrong
-on a number of other common functions too.  This is probably
-the L<"nm extraction"> problem discussed above.
-
 =item do_aspawn
 
 If you run into problems relating to do_aspawn or do_spawn, the
index c66b498..b0cea40 100644 (file)
@@ -124,7 +124,6 @@ d_c99_variadic_macros='undef'
 d_casti32='undef'
 d_castneg='define'
 d_cbrt='undef'
-d_charvspr='undef'
 d_chown='undef'
 d_chroot='undef'
 d_chsize='define'
@@ -612,7 +611,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='undef'
 d_waitpid='define'
 d_wcscmp='undef'
index 5c67388..eddece5 100644 (file)
  */
 #define Signal_t void  /* Signal handler's return type */
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#define HAS_VPRINTF    /**/
-/*#define USE_CHAR_VSPRINTF    /**/
-
 /* HAS_WRITEV:
  *     This symbol, if defined, indicates that the writev routine is
  *     available to do scatter writes.
index 62bb5ab..74d18d6 100644 (file)
@@ -540,11 +540,6 @@ d_cbrt (d_cbrt.U):
        indicates to the C program that the cbrt() (cube root) function
        is available.
 
-d_charvspr (d_vprintf.U):
-       This variable conditionally defines CHARVSPRINTF if this system
-       has vsprintf returning type (char*).  The trend seems to be to
-       declare it as "int vsprintf()".
-
 d_chown (d_chown.U):
        This variable conditionally defines the HAS_CHOWN symbol, which
        indicates to the C program that the chown() routine is available.
@@ -2843,11 +2838,6 @@ d_voidtty (i_sysioctl.U):
        Otherwise (on USG probably), it is enough to close the standard file
        descriptors and do a setpgrp().
 
-d_vprintf (d_vprintf.U):
-       This variable conditionally defines the HAS_VPRINTF symbol, which
-       indicates to the C program that the vprintf() routine is available
-       to printf with a pointer to an argument list.
-
 d_wait4 (d_wait4.U):
        This variable conditionally defines the HAS_WAIT4 symbol, which
        indicates the wait4() routine is available.
index df8d2d6..d268159 100644 (file)
@@ -145,7 +145,6 @@ d_c99_variadic_macros='define'
 d_casti32='undef'
 d_castneg='define'
 d_cbrt='define'
-d_charvspr='undef'
 d_chown='define'
 d_chroot='define'
 d_chsize='undef'
@@ -636,7 +635,6 @@ d_vfork='define'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='define'
 d_waitpid='define'
 d_wcscmp='define'
index 6954758..b2d85ed 100644 (file)
 /*#define HAS_TTYNAME_R           / **/
 #define TTYNAME_R_PROTO 0         /**/
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#define HAS_VPRINTF    /**/
-/*#define USE_CHAR_VSPRINTF    / **/
-
 /* DOUBLESIZE:
  *     This symbol contains the size of a double, so that the C preprocessor
  *     can make decisions based on it.
index 259a2ed..1a80585 100755 (executable)
@@ -1243,20 +1243,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define FILE_bufsiz(fp)        $stdio_bufsiz
 #endif
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#$d_vprintf HAS_VPRINTF        /**/
-#$d_charvspr USE_CHAR_VSPRINTF         /**/
-
 /* DOUBLESIZE:
  *     This symbol contains the size of a double, so that the C preprocessor
  *     can make decisions based on it.
index 38a1fb2..9f3e8b9 100644 (file)
@@ -5992,7 +5992,6 @@ $ WC "d_builtin_sub_overflow='undef'" ! GCC only
 $ WC "d_casti32='define'"
 $ WC "d_castneg='define'"
 $ WC "d_cbrt='" + d_cbrt + "'"
-$ WC "d_charvspr='undef'"
 $ WC "d_chown='define'"
 $ WC "d_chroot='undef'"
 $ WC "d_chsize='undef'"
@@ -6467,7 +6466,6 @@ $ WC "d_vms_shorten_long_symbols='" + d_vms_shorten_long_symbols + "'" ! VMS
 $ WC "d_void_closedir='define'"
 $ WC "d_voidsig='undef'"
 $ WC "d_voidtty='" + "'"
-$ WC "d_vprintf='define'"
 $ WC "d_wait4='" + d_wait4 + "'"
 $ WC "d_waitpid='define'"
 $ WC "d_wcscmp='define'"
index a848f8c..fe0f2bf 100644 (file)
@@ -77,7 +77,6 @@ archname='x86_64-catamount'
 archobjs='catalib.o'
 d_mmap='undef'
 d_setlocale='undef' # There is setlocale() but no locales.
-d_vprintf='define'
 hintfile='catamount'
 i_arpainet='undef'
 i_db='undef'
index 122cfcc..521c274 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -5221,26 +5221,6 @@ PerlIO_getpos(PerlIO *f, SV *pos)
 }
 #endif
 
-#if !defined(HAS_VPRINTF)
-
-int
-vprintf(char *pat, char *args)
-{
-    _doprnt(pat, args, stdout);
-    return 0;                   /* wrong, but perl doesn't use the return
-                                * value */
-}
-
-int
-vfprintf(FILE *fd, char *pat, char *args)
-{
-    _doprnt(pat, args, fd);
-    return 0;                   /* wrong, but perl doesn't use the return
-                                * value */
-}
-
-#endif
-
 /* print a failure format string message to stderr and fail exit the process
    using only libc without depending on any perl data structures being
    initialized.
index 1afcbaf..770ebc8 100644 (file)
  */
 #define Signal_t void  /* Signal handler's return type */
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#define HAS_VPRINTF    /**/
-#define USE_CHAR_VSPRINTF      /**/
-
 /* HAS_WRITEV:
  *     This symbol, if defined, indicates that the writev routine is
  *     available to do scatter writes.
index 766426e..01791a7 100644 (file)
  */
 #define Signal_t void  /* Signal handler's return type */
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#define HAS_VPRINTF    /**/
-#define USE_CHAR_VSPRINTF      /**/
-
 /* HAS_WRITEV:
  *     This symbol, if defined, indicates that the writev routine is
  *     available to do scatter writes.
index a9e89bb..e291ea4 100644 (file)
@@ -137,7 +137,6 @@ d_c99_variadic_macros='undef'
 d_casti32='undef'
 d_castneg='undef'
 d_cbrt='undef'
-d_charvspr='define'
 d_chown='define'
 d_chroot='undef'
 d_chsize='undef'
@@ -622,7 +621,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='undef'
 d_waitpid='define'
 d_wcscmp='undef'
index 0e04e65..31496b0 100644 (file)
@@ -81,7 +81,6 @@ d_c99_variadic_macros='undef'
 d_casti32='undef'
 d_castneg='undef'
 d_cbrt='undef'
-d_charvspr='undef'
 d_chown='undef'
 d_chroot='undef'
 d_chsize='undef'
@@ -570,7 +569,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='undef'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='undef'
 d_waitpid='undef'
 d_wcscmp='undef'
index d94f635..d216c1e 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
 #define FILE_bufsiz(fp)        ((fp)->_IO_read_end - (fp)->_IO_read_base)
 #endif
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#define HAS_VPRINTF    /**/
-/*#define USE_CHAR_VSPRINTF    / **/
-
 /* DOUBLESIZE:
  *     This symbol contains the size of a double, so that the C preprocessor
  *     can make decisions based on it.
 #endif
 
 /* Generated from:
- * 6473cc944f55c251c871ab2c2b621b94505098ecf710a1d9c1ff2f6ce914ed61 config_h.SH
- * ba39162e41cd92a8c139a8885eacd1a562aedede9bc007a19118da3c09fbc3ac uconfig.sh
+ * 7f3bfc1e6859428578c0019ab544d62b4ee21c87767834fb8501279c5b475c34 config_h.SH
+ * b8700c9bc8dced75e16f3f8e898323e77d2c3af9b5722e21942e864eb0a0502b uconfig.sh
  * ex: set ro: */
index 4710a1d..836e35e 100644 (file)
@@ -75,7 +75,6 @@ d_c99_variadic_macros='undef'
 d_casti32='undef'
 d_castneg='undef'
 d_cbrt='undef'
-d_charvspr='undef'
 d_chown='undef'
 d_chroot='undef'
 d_chsize='undef'
@@ -561,7 +560,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='undef'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='undef'
 d_waitpid='undef'
 d_wcscmp='undef'
index fbc956b..798e8cb 100644 (file)
@@ -76,7 +76,6 @@ d_c99_variadic_macros='undef'
 d_casti32='undef'
 d_castneg='undef'
 d_cbrt='undef'
-d_charvspr='undef'
 d_chown='undef'
 d_chroot='undef'
 d_chsize='undef'
@@ -562,7 +561,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='undef'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='undef'
 d_waitpid='undef'
 d_wcscmp='undef'
diff --git a/util.c b/util.c
index 4bc4ba2..a4a6fb6 100644 (file)
--- a/util.c
+++ b/util.c
@@ -2223,53 +2223,6 @@ Perl_unlnk(pTHX_ const char *f)  /* unlink all versions of a file */
 }
 #endif
 
-#ifndef HAS_VPRINTF
-/* This vsprintf replacement should generally never get used, since
-   vsprintf was available in both System V and BSD 2.11.  (There may
-   be some cross-compilation or embedded set-ups where it is needed,
-   however.)
-
-   If you encounter a problem in this function, it's probably a symptom
-   that Configure failed to detect your system's vprintf() function.
-   See the section on "item vsprintf" in the INSTALL file.
-
-   This version may compile on systems with BSD-ish <stdio.h>,
-   but probably won't on others.
-*/
-
-int
-vsprintf(char *dest, const char *pat, void *args)
-{
-    FILE fakebuf;
-
-#if defined(STDIO_PTR_LVALUE) && defined(STDIO_CNT_LVALUE)
-    FILE_ptr(&fakebuf) = (STDCHAR *) dest;
-    FILE_cnt(&fakebuf) = 32767;
-#else
-    /* These probably won't compile -- If you really need
-       this, you'll have to figure out some other method. */
-    fakebuf._ptr = dest;
-    fakebuf._cnt = 32767;
-#endif
-#ifndef _IOSTRG
-#define _IOSTRG 0
-#endif
-    fakebuf._flag = _IOWRT|_IOSTRG;
-    _doprnt(pat, args, &fakebuf);      /* what a kludge */
-#if defined(STDIO_PTR_LVALUE)
-    *(FILE_ptr(&fakebuf)++) = '\0';
-#else
-    /* PerlIO has probably #defined away fputc, but we want it here. */
-#  ifdef fputc
-#    undef fputc  /* XXX Should really restore it later */
-#  endif
-    (void)fputc('\0', &fakebuf);
-#endif
-    return 0;          /* perl doesn't use return value */
-}
-
-#endif /* HAS_VPRINTF */
-
 PerlIO *
 Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args)
 {
index 4bf7f84..fd52ac0 100644 (file)
@@ -122,7 +122,6 @@ d_c99_variadic_macros='undef'
 d_casti32='undef'
 d_castneg='define'
 d_cbrt='undef'
-d_charvspr='undef'
 d_chown='undef'
 d_chroot='undef'
 d_chsize='define'
@@ -610,7 +609,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='undef'
 d_waitpid='define'
 d_wcscmp='undef'
index 528dc93..2385ca3 100644 (file)
@@ -124,7 +124,6 @@ d_c99_variadic_macros='undef'
 d_casti32='define'
 d_castneg='define'
 d_cbrt='undef'
-d_charvspr='undef'
 d_chown='undef'
 d_chroot='undef'
 d_chsize='define'
@@ -612,7 +611,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='undef'
 d_waitpid='define'
index 351e871..bcc779e 100644 (file)
@@ -124,7 +124,6 @@ d_c99_variadic_macros='undef'
 d_casti32='undef'
 d_castneg='define'
 d_cbrt='undef'
-d_charvspr='undef'
 d_chown='undef'
 d_chroot='undef'
 d_chsize='define'
@@ -611,7 +610,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_vprintf='define'
 d_wait4='undef'
 d_waitpid='define'
 d_wcscmp='define'
index 22cef32..b732361 100644 (file)
  */
 #define Signal_t void  /* Signal handler's return type */
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#define HAS_VPRINTF    /**/
-/*#define USE_CHAR_VSPRINTF    /**/
-
 /* HAS_WRITEV:
  *     This symbol, if defined, indicates that the writev routine is
  *     available to do scatter writes.
index 574dfd8..af12777 100644 (file)
 #define FILE_bufsiz(fp)        ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
 #endif
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#define HAS_VPRINTF    /**/
-/*#define USE_CHAR_VSPRINTF    / **/
-
 /* DOUBLESIZE:
  *     This symbol contains the size of a double, so that the C preprocessor
  *     can make decisions based on it.
index a8871e7..bf51e50 100644 (file)
 #define FILE_bufsiz(fp)        ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
 #endif
 
-/* HAS_VPRINTF:
- *     This symbol, if defined, indicates that the vprintf routine is available
- *     to printf with a pointer to an argument list.  If unavailable, you
- *     may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- *     This symbol is defined if this system has vsprintf() returning type
- *     (char*).  The trend seems to be to declare it as "int vsprintf()".  It
- *     is up to the package author to declare vsprintf correctly based on the
- *     symbol.
- */
-#define HAS_VPRINTF    /**/
-/*#define USE_CHAR_VSPRINTF    / **/
-
 /* DOUBLESIZE:
  *     This symbol contains the size of a double, so that the C preprocessor
  *     can make decisions based on it.