]> git.vpit.fr Git - perl/modules/indirect.git/blobdiff - indirect.xs
Brr. Those strstr() really were fugly
[perl/modules/indirect.git] / indirect.xs
index 7c0144689d9106519b44b62882a6749bdfb495db..c6e18e7204dbde48f30b5bdafebe646e988ad044 100644 (file)
@@ -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);