~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_lex.cc

  • Committer: Olaf van der Spek
  • Date: 2011-10-14 09:23:40 UTC
  • mto: This revision was merged to the branch mainline in revision 2438.
  • Revision ID: olafvdspek@gmail.com-20111014092340-phpah1o0umps7e63
Use size()

Show diffs side-by-side

added added

removed removed

Lines of Context:
294
294
/* make a copy of token before ptr and set yytoklen */
295
295
static lex_string_t get_token(Lex_input_stream *lip, uint32_t skip, uint32_t length)
296
296
{
 
297
  lip->yyUnget();                       // ptr points now after last token char
 
298
  lip->yytoklen= length;
297
299
  lex_string_t tmp;
298
 
  lip->yyUnget();                       // ptr points now after last token char
299
 
  tmp.str= lip->m_session->mem.strdup(lip->get_tok_start() + skip, length);
300
 
  tmp.length= lip->yytoklen= length;
301
 
 
 
300
  tmp.assign(lip->m_session->mem.strdup(lip->get_tok_start() + skip, length), length);
302
301
  lip->m_cpp_text_start= lip->get_cpp_tok_start() + skip;
303
302
  lip->m_cpp_text_end= lip->m_cpp_text_start + tmp.size();
304
 
 
305
303
  return tmp;
306
304
}
307
305
 
315
313
                                   uint32_t skip,
316
314
                                   uint32_t length, char quote)
317
315
{
 
316
  lip->yyUnget();                       // ptr points now after last token char
 
317
  lip->yytoklen= length;
318
318
  lex_string_t tmp;
319
 
  lip->yyUnget();                       // ptr points now after last token char
320
 
  tmp.str=(char*) lip->m_session->mem.alloc(length + 1);
321
 
  tmp.length= lip->yytoklen= length;
 
319
  tmp.assign((char*)lip->m_session->mem.alloc(length + 1), length);
322
320
  const char* from= lip->get_tok_start() + skip;
323
321
  char* to= (char*)tmp.str;
324
322
  const char* end= to+length;
926
924
        return(ABORT_SYM);              // Illegal hex constant
927
925
      lip->yySkip();                    // Accept closing '
928
926
      length= lip->yyLength();          // Length of hexnum+3
929
 
      if ((length % 2) == 0)
930
 
        return(ABORT_SYM);              // odd number of hex digits
 
927
      if (length % 2 == 0)
 
928
        return ABORT_SYM;               // odd number of hex digits
931
929
      yylval->lex_str=get_token(lip,
932
930
                                2,          // skip x'
933
931
                                length-3);  // don't count x' and last '
997
995
        state= MY_LEX_CHAR;             // Read char by char
998
996
        break;
999
997
      }
1000
 
      yylval->lex_str.length= lip->yytoklen;
 
998
      yylval->lex_str.assign(yylval->lex_str.data(), lip->yytoklen);
1001
999
 
1002
1000
      lip->body_utf8_append(lip->m_cpp_text_start);
1003
 
 
1004
1001
      lip->body_utf8_append_literal(&yylval->lex_str, lip->m_cpp_text_end);
1005
1002
 
1006
1003
      lex->text_string_is_7bit= (lip->tok_bitmap & 0x80) ? 0 : 1;