Rename ext/Devel/DProf to ext/Devel-DProf
[p5sagit/p5-mst-13.2.git] / ext / Devel-PPPort / parts / inc / format
1 ################################################################################
2 ##
3 ##  $Revision: 9 $
4 ##  $Author: mhx $
5 ##  $Date: 2009/01/18 14:10:55 +0100 $
6 ##
7 ################################################################################
8 ##
9 ##  Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
10 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
11 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
12 ##
13 ##  This program is free software; you can redistribute it and/or
14 ##  modify it under the same terms as Perl itself.
15 ##
16 ################################################################################
17
18 =provides
19
20 /^#\s*define\s+(\w+)/
21
22 =implementation
23
24 #ifndef IVdf
25 #  if IVSIZE == LONGSIZE
26 #    define     IVdf      "ld"
27 #    define     UVuf      "lu"
28 #    define     UVof      "lo"
29 #    define     UVxf      "lx"
30 #    define     UVXf      "lX"
31 #  else
32 #    if IVSIZE == INTSIZE
33 #      define   IVdf      "d"
34 #      define   UVuf      "u"
35 #      define   UVof      "o"
36 #      define   UVxf      "x"
37 #      define   UVXf      "X"
38 #    endif
39 #  endif
40 #endif
41
42 #ifndef NVef
43 #  if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \
44       defined(PERL_PRIfldbl) && { VERSION != 5.6.0 }
45             /* Not very likely, but let's try anyway. */
46 #    define NVef          PERL_PRIeldbl
47 #    define NVff          PERL_PRIfldbl
48 #    define NVgf          PERL_PRIgldbl
49 #  else
50 #    define NVef          "e"
51 #    define NVff          "f"
52 #    define NVgf          "g"
53 #  endif
54 #endif
55
56 =xsubs
57
58 void
59 croak_NVgf(num)
60         NV num
61         PPCODE:
62                 Perl_croak(aTHX_ "%.20" NVgf "\n", num);
63
64 =tests plan => 1
65
66 my $num = 1.12345678901234567890;
67
68 eval { Devel::PPPort::croak_NVgf($num) };
69 ok($@ =~ /^1.1234567890/);
70