################################################################################
##
## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
## Copyright (C) 2015, cPanel Inc.
## Version 2.x, Copyright (C) 2001, Paul Marquess.
## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
##
## This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself.
##
################################################################################
=provides
__UNDEFINED__
=implementation
__UNDEFINED__ HvNAME_get(hv) HvNAME(hv)
__UNDEFINED__ HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0)
__UNDEFINED__ HvNAMELEN(hv) HvNAMELEN_get(hv)
__UNDEFINED__ HvENAME(hv) HvNAME(hv)
__UNDEFINED__ HvENAMELEN(hv) (HvENAME(hv) ? strlen(HvENAME(hv)) : 0)
# if { VERSION < 5.10.0 }
__UNDEFINED__ HvNAMEUTF8(hv) 0
__UNDEFINED__ HvENAMEUTF8(hv) 0
#else
__UNDEFINED__ HvNAMEUTF8(hv) (HvNAME_HEK(hv) ? HEK_UTF8(HvNAME_HEK(hv)) : 0)
__UNDEFINED__ HvENAMEUTF8(hv) HvNAMEUTF8(hv)
#endif
=xsubs
char*
HvNAME_get(hv)
HV *hv
int
HvNAMELEN_get(hv)
HV *hv
int
HvNAMELEN(hv)
HV *hv
int
HvNAMEUTF8(hv)
HV *hv
char *
HvENAME(hv)
HV *hv
int
HvENAMELEN(hv)
HV *hv
int
HvENAMEUTF8(hv)
HV *hv
=tests plan => 11
ok(Devel::PPPort::HvNAME_get(\%Devel::PPPort::), 'Devel::PPPort');
ok(!defined Devel::PPPort::HvNAME_get({}));
ok(Devel::PPPort::HvNAMELEN_get(\%Devel::PPPort::), length('Devel::PPPort'));
ok(Devel::PPPort::HvNAMELEN_get({}), 0);
ok(Devel::PPPort::HvNAMELEN({}), 0);
ok(Devel::PPPort::HvENAME({}), undef);
ok(Devel::PPPort::HvENAMELEN({}), 0);
ok(Devel::PPPort::HvENAMEUTF8({}), 0);
ok(Devel::PPPort::HvNAMEUTF8(\%Devel::PPPort::), 0);
if ($] > 5.015006) {
use utf8;
ok(Devel::PPPort::HvNAMEUTF8(\%αaαb::), 1);
ok(Devel::PPPort::HvENAMEUTF8(\%αaαb::), 1);
} else {
ok(1, 1, "skip HvNAMEUTF8 with $]");
ok(1, 1, "skip HvENAMEUTF8 with $]");
}