remove unused variable
[p5sagit/Function-Parameters.git] / Parameters.xs
index 0900901..261a5bc 100644 (file)
@@ -94,7 +94,12 @@ static int kw_flags(pTHX_ const char *kw_ptr, STRLEN kw_len, Spec *spec) {
        if (kw_active_len <= kw_len) {
                return FALSE;
        }
-       for (p = kw_active; p < kw_active + kw_active_len - kw_len; p++) {
+       for (
+               p = kw_active;
+               (p = strchr(p, *kw_ptr)) &&
+               p < kw_active + kw_active_len - kw_len;
+               p++
+       ) {
                if (
                        (p == kw_active || p[-1] == ' ') &&
                        p[kw_len] == ' ' &&
@@ -135,7 +140,6 @@ static int kw_flags(pTHX_ const char *kw_ptr, STRLEN kw_len, Spec *spec) {
 
 static int parse_fun(pTHX_ OP **pop, const char *keyword_ptr, STRLEN keyword_len, const Spec *spec) {
        SV *gen, *declarator, *params, *sv;
-       line_t line_start;
        int saw_name, saw_colon;
        STRLEN len;
        char *s;
@@ -145,7 +149,6 @@ static int parse_fun(pTHX_ OP **pop, const char *keyword_ptr, STRLEN keyword_len
        declarator = sv_2mortal(newSVpvn(keyword_ptr, keyword_len));
        params = sv_2mortal(newSVpvs(""));
 
-       line_start = CopLINE(PL_curcop);
        lex_read_space(0);
 
        /* function name */
@@ -175,17 +178,17 @@ static int parse_fun(pTHX_ OP **pop, const char *keyword_ptr, STRLEN keyword_len
 
                for (;;) {
                        c = lex_peek_unichar(0);
-                       if (c && strchr("$@%", c)) {
+                       if (c == '$' || c == '@' || c == '%') {
                                sv_catpvf(params, "%c", (int)c);
                                lex_read_unichar(0);
                                lex_read_space(0);
 
                                s = PL_parser->bufptr;
                                if (!(len = S_scan_word(aTHX_ s, FALSE))) {
-                                       croak("In %.*s: missing identifier", (int)SvCUR(declarator), SvPV_nolen(declarator));
+                                       croak("In %"SVf": missing identifier", SVfARG(declarator));
                                }
                                if (saw_slurpy) {
-                                       croak("In %.*s: I was expecting \")\" after \"%s\", not \"%c%.*s\"", (int)SvCUR(declarator), SvPV_nolen(declarator), SvPV_nolen(saw_slurpy), (int)c, (int)len, s);
+                                       croak("In %"SVf": I was expecting \")\" after \"%"SVf"\", not \"%c%.*s\"", SVfARG(declarator), SVfARG(saw_slurpy), (int)c, (int)len, s);
                                }
                                if (c != '$') {
                                        saw_slurpy = sv_2mortal(newSVpvf("%c%.*s", (int)c, (int)len, s));
@@ -210,9 +213,9 @@ static int parse_fun(pTHX_ OP **pop, const char *keyword_ptr, STRLEN keyword_len
                        }
 
                        if (c == -1) {
-                               croak("In %.*s: unexpected EOF in parameter list", (int)SvCUR(declarator), SvPV_nolen(declarator));
+                               croak("In %"SVf": unexpected EOF in parameter list", SVfARG(declarator));
                        }
-                       croak("In %.*s: unexpected '%c' in parameter list", (int)SvCUR(declarator), SvPV_nolen(declarator), (int)c);
+                       croak("In %"SVf": unexpected '%c' in parameter list", SVfARG(declarator), (int)c);
                }
        }
 
@@ -229,7 +232,7 @@ static int parse_fun(pTHX_ OP **pop, const char *keyword_ptr, STRLEN keyword_len
                } else {
                        sv = sv_2mortal(newSVpvs(""));
                        if (!S_scan_str(aTHX_ sv, TRUE, TRUE)) {
-                               croak("In %.*s: malformed prototype", (int)SvCUR(declarator), SvPV_nolen(declarator));
+                               croak("In %"SVf": prototype not terminated", SVfARG(declarator));
                        }
                        sv_catsv(gen, sv);
                        lex_read_space(0);
@@ -270,7 +273,7 @@ static int parse_fun(pTHX_ OP **pop, const char *keyword_ptr, STRLEN keyword_len
                        if (c == '(') {
                                sv = sv_2mortal(newSVpvs(""));
                                if (!S_scan_str(aTHX_ sv, TRUE, TRUE)) {
-                                       croak("In %.*s: malformed attribute argument list", (int)SvCUR(declarator), SvPV_nolen(declarator));
+                                       croak("In %"SVf": unterminated attribute parameter in attribute list", SVfARG(declarator));
                                }
                                sv_catsv(gen, sv);
                                lex_read_space(0);
@@ -286,7 +289,7 @@ static int parse_fun(pTHX_ OP **pop, const char *keyword_ptr, STRLEN keyword_len
        /* body */
        c = lex_peek_unichar(0);
        if (c != '{') {
-               croak("In %.*s: I was expecting a function body, not \"%c\"", (int)SvCUR(declarator), SvPV_nolen(declarator), (int)c);
+               croak("In %"SVf": I was expecting a function body, not \"%c\"", SVfARG(declarator), (int)c);
        }
        lex_read_unichar(0);
        sv_catpvs(gen, "{");
@@ -301,7 +304,6 @@ static int parse_fun(pTHX_ OP **pop, const char *keyword_ptr, STRLEN keyword_len
                sv_catpvs(gen, ")=@_;");
        }
 
-
        /* named sub */
        if (saw_name) {
                /* fprintf(stderr, "! [%.*s]\n", (int)(PL_bufend - PL_bufptr), PL_bufptr); */