d_Gconvert hints and Glossary
Yitzchak Scott-Thoennes [Tue, 19 Feb 2002 11:55:36 +0000 (03:55 -0800)]
Message-ID: <42qc8gzkgOFN092yn@efn.org>

p4raw-id: //depot/perl@14786

Configure
config_h.SH
configpm
hints/aix.sh
hints/dec_osf.sh
hints/newsos4.sh
hints/os2.sh
hints/os390.sh
hints/svr4.sh
hints/svr5.sh

index 7dad2cd..5e8b5d0 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Wed Feb 20 17:35:55 EET 2002 [metaconfig 3.0 PL70]
+# Generated on Wed Feb 20 17:53:32 EET 2002 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
index 2d15aac..26206b0 100644 (file)
@@ -1410,7 +1410,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     a macro using sprintf("%g") is used. Arguments for the Gconvert
  *     macro are: value, number of digits, whether trailing zeros should
  *     be retained, and the output buffer.
- *     Possible values are:
+ *     The usual values are:
  *             d_Gconvert='gconvert((x),(n),(t),(b))'
  *             d_Gconvert='gcvt((x),(n),(b))'
  *             d_Gconvert='sprintf((b),"%.*g",(n),(x))'
index 9f1a2e1..d8339fa 100755 (executable)
--- a/configpm
+++ b/configpm
@@ -420,20 +420,25 @@ $text = 0;
 $/ = '';
 
 sub process {
-  s/\A(\w*)\s+\(([\w.]+)\):\s*\n(\t?)/=item C<$1>\n\nFrom F<$2>:\n\n/m;
-  my $c = substr $1, 0, 1;
-  unless ($seen{$c}++) {
-    print CONFIG <<EOF if $text;
+  if (s/\A(\w*)\s+\(([\w.]+)\):\s*\n(\t?)/=item C<$1>\n\nFrom F<$2>:\n\n/m) {
+    my $c = substr $1, 0, 1;
+    unless ($seen{$c}++) {
+      print CONFIG <<EOF if $text;
 =back
 
 EOF
-    print CONFIG <<EOF;
+      print CONFIG <<EOF;
 =head2 $c
 
 =over 4
 
 EOF
-    $text = 1;
+     $text = 1;
+    }
+  }
+  elsif (!$text || !/\A\t/) {
+    warn "Expected a Configure variable header",
+      ($text ? " or another paragraph of description" : () );
   }
   s/n't/n\00t/g;               # leave can't, won't etc untouched
   s/^\t\s+(.*)/\n\t$1\n/gm;    # Indented lines ===> paragraphs
index 2d2468a..53af9f5 100644 (file)
@@ -475,18 +475,6 @@ EOM
 esac
 EOCBU
 
-cat > UU/uselongdouble.cbu <<'EOCBU'
-# This script UU/uselongdouble.cbu will get 'called-back' by Configure 
-# after it has prompted the user for whether to use long doubles.
-case "$uselongdouble" in
-$define|true|[yY]*)
-        # -qlongdouble for cc taken out on 20010522 cause it
-        # causes more trouble than it does any good --hmb
-        d_Gconvert='sprintf((b),"%.*llg",((int)(n)),(x))'
-       ;;
-esac
-EOCBU
-
 if test $usenativedlopen = 'true'
 then
     ccflags="$ccflags -DUSE_NATIVE_DLOPEN"
index ae56198..1e0122f 100644 (file)
@@ -305,7 +305,6 @@ EOF
                exit 1
                ;;
        esac
-       d_Gconvert='sprintf((b),"%.*Lg",(n),(x))'
        ;;
 esac
 EOCBU
index 3e447a5..5cbcc53 100644 (file)
@@ -28,6 +28,6 @@ timetype='long'
 # filemode type is int (not mode_t)
 modetype='int'
 # using sprintf(3) instead of gcvt(3)
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+gconvert_preference=sprintf
 # No POSIX.
 useposix='false'
index 9c1355c..77085a8 100644 (file)
@@ -111,6 +111,15 @@ i_dlfcn='define'
 # The default one uses exponential notation between 0.0001 and 0.1
 d_Gconvert='gcvt_os2((x),(n),(b))'
 
+cat > UU/uselongdouble.cbu <<'EOCBU'
+# This script UU/uselongdouble.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use long doubles.
+# If we will use them, let Configure choose us a Gconvert.
+case "$uselongdouble:$d_longdbl:$d_sqrtl:$d_modfl" in
+"$define:$define:$define:$define") d_Gconvert='' ;;
+esac
+EOCBU
+
 # -Zomf build has a problem with _exit() *flushing*, so the test
 # gets confused:
 fflushNULL="define"
index e85ebef..38d02c3 100644 (file)
@@ -208,7 +208,7 @@ fi
 # a trivial Perl demonstration snippet is 'print 0.1'.
 # The -W 0,float(ieee) seems to be the switch breaking gcvt().
 # sprintf() seems to get things right(er).
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+gconvert_preference=sprintf
 
 cat >config.arch<<'__CONFIG_ARCH__'
 # The '-W 0,float(ieee)' cannot be used during Configure as ldflags.
index fe88f27..b3be9ac 100644 (file)
@@ -23,7 +23,7 @@ libswanted=`echo " $libswanted " | sed -e 's/ malloc / /'` # -e 's/ ucb / /'`
 #   it is needed for ODBM_File and NDBM_File extensions.
 
 if [ -r /usr/ucblib/libucb.a ]; then   # If using BSD-compat. library:
-    d_Gconvert='gcvt((x),(n),(b))'     # Try gcvt() before gconvert().
+    gconvert_preference='gcvt sprintf' # Try gcvt() before gconvert().
     # Use the "native" counterparts, not the BSD emulation stuff:
     d_bcmp='undef' d_bcopy='undef' d_bzero='undef' d_safebcpy='undef'
     d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef'
index 5f77259..2ddcbb1 100644 (file)
@@ -87,7 +87,7 @@ glibpth=`echo " $glibpth " | sed -e 's/ \/shlib / /' -e 's/ \/lib / /'`
 
 # Don't use BSD emulation pieces (/usr/ucblib) regardless
 # these would probably be autonondetected anyway but ...
-d_Gconvert='gcvt((x),(n),(b))' # Try gcvt() before gconvert().
+gconvert_preference='gcvt sprintf'     # Try gcvt() before gconvert().
 d_bcopy='undef' d_bcmp='undef'  d_bzero='undef'  d_safebcpy='undef'
 d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef'
 d_setlinebuf='undef'