diff options
Diffstat (limited to 'Parser/tokenizer.c')
| -rw-r--r-- | Parser/tokenizer.c | 20 | 
1 files changed, 9 insertions, 11 deletions
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 184ffe7a7d..90a8270c19 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -202,8 +202,8 @@ error_ret(struct tok_state *tok) /* XXX */  } -static char * -get_normal_name(char *s)        /* for utf-8 and latin-1 */ +static const char * +get_normal_name(const char *s)  /* for utf-8 and latin-1 */  {      char buf[13];      int i; @@ -264,7 +264,7 @@ get_coding_spec(const char *s, char **spec, Py_ssize_t size, struct tok_state *t              if (begin < t) {                  char* r = new_string(begin, t - begin, tok); -                char* q; +                const char* q;                  if (!r)                      return 0;                  q = get_normal_name(r); @@ -1475,17 +1475,19 @@ tok_get(struct tok_state *tok, char **p_start, char **p_end)      nonascii = 0;      if (is_potential_identifier_start(c)) {          /* Process b"", r"", u"", br"" and rb"" */ -        int saw_b = 0, saw_r = 0, saw_u = 0; +        int saw_b = 0, saw_r = 0, saw_u = 0, saw_f = 0;          while (1) { -            if (!(saw_b || saw_u) && (c == 'b' || c == 'B')) +            if (!(saw_b || saw_u || saw_f) && (c == 'b' || c == 'B'))                  saw_b = 1;              /* Since this is a backwards compatibility support literal we don't                 want to support it in arbitrary order like byte literals. */ -            else if (!(saw_b || saw_u || saw_r) && (c == 'u' || c == 'U')) +            else if (!(saw_b || saw_u || saw_r || saw_f) && (c == 'u' || c == 'U'))                  saw_u = 1;              /* ur"" and ru"" are not supported */              else if (!(saw_r || saw_u) && (c == 'r' || c == 'R'))                  saw_r = 1; +            else if (!(saw_f || saw_b || saw_u) && (c == 'f' || c == 'F')) +                saw_f = 1;              else                  break;              c = tok_nextc(tok); @@ -1585,10 +1587,6 @@ tok_get(struct tok_state *tok, char **p_start, char **p_end)          if (c == '0') {              /* Hex, octal or binary -- maybe. */              c = tok_nextc(tok); -            if (c == '.') -                goto fraction; -            if (c == 'j' || c == 'J') -                goto imaginary;              if (c == 'x' || c == 'X') {                  /* Hex */ @@ -1739,7 +1737,7 @@ tok_get(struct tok_state *tok, char **p_start, char **p_end)              else {                  end_quote_size = 0;                  if (c == '\\') -                c = tok_nextc(tok);  /* skip escaped char */ +                    c = tok_nextc(tok);  /* skip escaped char */              }          }  | 
