X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=indirect.xs;h=c6e18e7204dbde48f30b5bdafebe646e988ad044;hb=5ad2eeb198dc46b5e4497d3dbb84490d2e5affee;hp=7c0144689d9106519b44b62882a6749bdfb495db;hpb=3b965096935eb9216e70a0f6b8ab70d156fb371a;p=perl%2Fmodules%2Findirect.git diff --git a/indirect.xs b/indirect.xs index 7c01446..c6e18e7 100644 --- a/indirect.xs +++ b/indirect.xs @@ -183,11 +183,11 @@ STATIC OP *indirect_ck_rv2sv(pTHX_ OP *o) { const char *stash = HvNAME_get(PL_curstash); STRLEN stashlen = HvNAMELEN_get(PL_curstash); - if ((len < stashlen + 2) || name != strstr(name, stash)) { + if ((len < stashlen + 2) || strnNE(name, stash, stashlen)) { /* Failed again ? Try to remove main */ stash = "main"; stashlen = 4; - if ((len < stashlen + 2) || name != strstr(name, stash)) + if ((len < stashlen + 2) || strnNE(name, stash, stashlen)) goto done; } if (name[stashlen] != ':' || name[stashlen+1] != ':') @@ -225,8 +225,6 @@ STATIC OP *indirect_ck_padany(pTHX_ OP *o) { if (*s == '$' && ++s <= t) { while (s < t && isSPACE(*s)) ++s; while (s < t && isSPACE(*t)) --t; - if (!isALPHA(*s)) - return o; sv = sv_2mortal(newSVpvn("$", 1)); sv_catpvn_nomg(sv, s, t - s + 1); indirect_map_store(o, s, sv);