Change 14921 by jhi@alpha on 2002/03/01 13:14:18

        Subject: Re: Smoke 14900 /pro/3gl/CPAN/perl-current
        From: "H.Merijn Brand" <[EMAIL PROTECTED]>
        Date: Thu, 28 Feb 2002 18:55:48 +0100
        Message-Id: <[EMAIL PROTECTED]>

Affected files ...

.... //depot/perl/x2p/walk.c#17 edit

Differences ...

==== //depot/perl/x2p/walk.c#17 (text) ====
Index: perl/x2p/walk.c
--- perl/x2p/walk.c.~1~ Fri Mar  1 06:30:05 2002
+++ perl/x2p/walk.c     Fri Mar  1 06:30:05 2002
@@ -52,7 +52,7 @@
     STR *tmp2str;
     STR *tmp3str;
     char *t;
-    char *d, *s = 0;
+    char *d, *s;
     int numarg;
     int numeric = FALSE;
     STR *fstr;
@@ -822,11 +822,8 @@
        str_cat(str,")");
        break;
     case OGSUB:
-    case OSUB:
-       if (type == OGSUB)
-           s = "g";
-       else
-           s = "";
+    case OSUB: {
+       int gsub = type == OGSUB ? 1 : 0;
        str = str_new(0);
        tmpstr = str_new(0);
        i = 0;
@@ -856,6 +853,7 @@
            }
            *d = '\0';
            str_set(tmp2str,tokenbuf);
+           s = gsub ? "/g" : "/";
        }
        else {
            tmp2str=walk(1,level,ops[node+2].ival,&numarg,P_MIN);
@@ -863,9 +861,10 @@
            str_scat(tmp3str,tmp2str);
            str_cat(tmp3str,").'\"') =~ s/&/\\$&/g, ");
            str_set(tmp2str,"eval $s_");
-           s = (char*)(*s == 'g' ? "ge" : "e");
+           s = gsub ? "/ge" : "/e";
            i++;
        }
+       str_cat(tmp2str,s);
        type = ops[ops[node+1].ival].ival;
        len = type >> 8;
        type &= 255;
@@ -877,8 +876,6 @@
            str_scat(str,tmpstr);
            str_scat(str,fstr);
            str_scat(str,tmp2str);
-           str_cat(str,"/");
-           str_cat(str,s);
        }
        else if ((type == OFLD && !split_to_array) || (type == OVAR && len == 1)) {
            if (useval && i)
@@ -889,8 +886,6 @@
            str_scat(str,fstr);
            str_cat(str,"/");
            str_scat(str,tmp2str);
-           str_cat(str,"/");
-           str_cat(str,s);
        }
        else {
            i++;
@@ -903,8 +898,6 @@
            str_scat(str,tmpstr);
            str_cat(str,"/$s/");
            str_scat(str,tmp2str);
-           str_cat(str,"/");
-           str_cat(str,s);
        }
        if (useval && i)
            str_cat(str,")");
@@ -913,7 +906,7 @@
        str_free(tmp2str);
        str_free(tmp3str);
        numeric = 1;
-       break;
+       break; }
     case ONUM:
        str = walk(1,level,ops[node+1].ival,&numarg,P_MIN);
        numeric = 1;
End of Patch.

Reply via email to