|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
|
|
Packit |
7d6a7d |
## Version 2.x, Copyright (C) 2001, Paul Marquess.
|
|
Packit |
7d6a7d |
## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
## This program is free software; you can redistribute it and/or
|
|
Packit |
7d6a7d |
## modify it under the same terms as Perl itself.
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=provides
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
/^#\s*define\s+(\w+)/
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=implementation
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef IVdf
|
|
Packit |
7d6a7d |
# if IVSIZE == LONGSIZE
|
|
Packit |
7d6a7d |
# define IVdf "ld"
|
|
Packit |
7d6a7d |
# define UVuf "lu"
|
|
Packit |
7d6a7d |
# define UVof "lo"
|
|
Packit |
7d6a7d |
# define UVxf "lx"
|
|
Packit |
7d6a7d |
# define UVXf "lX"
|
|
Packit |
7d6a7d |
# elif IVSIZE == INTSIZE
|
|
Packit |
7d6a7d |
# define IVdf "d"
|
|
Packit |
7d6a7d |
# define UVuf "u"
|
|
Packit |
7d6a7d |
# define UVof "o"
|
|
Packit |
7d6a7d |
# define UVxf "x"
|
|
Packit |
7d6a7d |
# define UVXf "X"
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# error "cannot define IV/UV formats"
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef NVef
|
|
Packit |
7d6a7d |
# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \
|
|
Packit |
7d6a7d |
defined(PERL_PRIfldbl) && { VERSION != 5.6.0 }
|
|
Packit |
7d6a7d |
/* Not very likely, but let's try anyway. */
|
|
Packit |
7d6a7d |
# define NVef PERL_PRIeldbl
|
|
Packit |
7d6a7d |
# define NVff PERL_PRIfldbl
|
|
Packit |
7d6a7d |
# define NVgf PERL_PRIgldbl
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define NVef "e"
|
|
Packit |
7d6a7d |
# define NVff "f"
|
|
Packit |
7d6a7d |
# define NVgf "g"
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=xsubs
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
void
|
|
Packit |
7d6a7d |
croak_NVgf(num)
|
|
Packit |
7d6a7d |
NV num
|
|
Packit |
7d6a7d |
PPCODE:
|
|
Packit |
7d6a7d |
Perl_croak(aTHX_ "%.20" NVgf "\n", num);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=tests plan => 1
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
my $num = 1.12345678901234567890;
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
eval { Devel::PPPort::croak_NVgf($num) };
|
|
Packit |
7d6a7d |
ok($@ =~ /^1.1234567890/);
|