Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: third_party/harfbuzz-ng/src/hb-buffer-deserialize-text.hh

Issue 1005693006: Roll harfbuzz-ng to 0.9.40 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/harfbuzz-ng/src/hb-buffer.cc ('k') | third_party/harfbuzz-ng/src/hb-ft.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 #line 1 "../../src/hb-buffer-deserialize-text.rl" 2 #line 1 "hb-buffer-deserialize-text.rl"
3 /* 3 /*
4 * Copyright © 2013 Google, Inc. 4 * Copyright © 2013 Google, Inc.
5 * 5 *
6 * This is part of HarfBuzz, a text shaping library. 6 * This is part of HarfBuzz, a text shaping library.
7 * 7 *
8 * Permission is hereby granted, without written agreement and without 8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this 9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the 10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in 11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software. 12 * all copies of this software.
(...skipping 12 matching lines...) Expand all
25 * 25 *
26 * Google Author(s): Behdad Esfahbod 26 * Google Author(s): Behdad Esfahbod
27 */ 27 */
28 28
29 #ifndef HB_BUFFER_DESERIALIZE_TEXT_HH 29 #ifndef HB_BUFFER_DESERIALIZE_TEXT_HH
30 #define HB_BUFFER_DESERIALIZE_TEXT_HH 30 #define HB_BUFFER_DESERIALIZE_TEXT_HH
31 31
32 #include "hb-private.hh" 32 #include "hb-private.hh"
33 33
34 34
35 #line 36 "../../src/hb-buffer-deserialize-text.hh" 35 #line 36 "hb-buffer-deserialize-text.hh"
36 static const unsigned char _deserialize_text_trans_keys[] = { 36 static const unsigned char _deserialize_text_trans_keys[] = {
37 0u, 0u, 9u, 122u, 45u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 48u, 57u, 45u, 57u, 37 0u, 0u, 9u, 122u, 45u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 48u, 57u, 45u, 57u,
38 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 57u, 9u, 124u, 9u, 124u, 0u , 0u, 38 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 57u, 9u, 124u, 9u, 124u, 0u , 0u,
39 9u, 122u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u , 124u, 39 9u, 122u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u , 124u,
40 9u, 124u, 9u, 124u, 9u, 124u, 0 40 9u, 124u, 9u, 124u, 9u, 124u, 0
41 }; 41 };
42 42
43 static const char _deserialize_text_key_spans[] = { 43 static const char _deserialize_text_key_spans[] = {
44 0, 114, 13, 10, 13, 10, 10, 13, 44 0, 114, 13, 10, 13, 10, 10, 13,
45 10, 1, 13, 10, 14, 116, 116, 0, 45 10, 1, 13, 10, 14, 116, 116, 0,
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 11, 9, 4 305 11, 9, 4
306 }; 306 };
307 307
308 static const int deserialize_text_start = 1; 308 static const int deserialize_text_start = 1;
309 static const int deserialize_text_first_final = 13; 309 static const int deserialize_text_first_final = 13;
310 static const int deserialize_text_error = 0; 310 static const int deserialize_text_error = 0;
311 311
312 static const int deserialize_text_en_main = 1; 312 static const int deserialize_text_en_main = 1;
313 313
314 314
315 #line 91 "../../src/hb-buffer-deserialize-text.rl" 315 #line 91 "hb-buffer-deserialize-text.rl"
316 316
317 317
318 static hb_bool_t 318 static hb_bool_t
319 _hb_buffer_deserialize_glyphs_text (hb_buffer_t *buffer, 319 _hb_buffer_deserialize_glyphs_text (hb_buffer_t *buffer,
320 const char *buf, 320 const char *buf,
321 unsigned int buf_len, 321 unsigned int buf_len,
322 const char **end_ptr, 322 const char **end_ptr,
323 hb_font_t *font) 323 hb_font_t *font)
324 { 324 {
325 const char *p = buf, *pe = buf + buf_len; 325 const char *p = buf, *pe = buf + buf_len;
326 326
327 /* Ensure we have positions. */ 327 /* Ensure we have positions. */
328 (void) hb_buffer_get_glyph_positions (buffer, NULL); 328 (void) hb_buffer_get_glyph_positions (buffer, NULL);
329 329
330 while (p < pe && ISSPACE (*p)) 330 while (p < pe && ISSPACE (*p))
331 p++; 331 p++;
332 if (p < pe && *p == (buffer->len ? '|' : '[')) 332 if (p < pe && *p == (buffer->len ? '|' : '['))
333 { 333 {
334 *end_ptr = ++p; 334 *end_ptr = ++p;
335 } 335 }
336 336
337 const char *eof = pe, *tok = NULL; 337 const char *eof = pe, *tok = NULL;
338 int cs; 338 int cs;
339 hb_glyph_info_t info; 339 hb_glyph_info_t info;
340 hb_glyph_position_t pos; 340 hb_glyph_position_t pos;
341 341
342 #line 343 "../../src/hb-buffer-deserialize-text.hh" 342 #line 343 "hb-buffer-deserialize-text.hh"
343 { 343 {
344 cs = deserialize_text_start; 344 cs = deserialize_text_start;
345 } 345 }
346 346
347 #line 348 "../../src/hb-buffer-deserialize-text.hh" 347 #line 348 "hb-buffer-deserialize-text.hh"
348 { 348 {
349 int _slen; 349 int _slen;
350 int _trans; 350 int _trans;
351 const unsigned char *_keys; 351 const unsigned char *_keys;
352 const char *_inds; 352 const char *_inds;
353 if ( p == pe ) 353 if ( p == pe )
354 goto _test_eof; 354 goto _test_eof;
355 if ( cs == 0 ) 355 if ( cs == 0 )
356 goto _out; 356 goto _out;
357 _resume: 357 _resume:
358 _keys = _deserialize_text_trans_keys + (cs<<1); 358 _keys = _deserialize_text_trans_keys + (cs<<1);
359 _inds = _deserialize_text_indicies + _deserialize_text_index_offsets[cs] ; 359 _inds = _deserialize_text_indicies + _deserialize_text_index_offsets[cs] ;
360 360
361 _slen = _deserialize_text_key_spans[cs]; 361 _slen = _deserialize_text_key_spans[cs];
362 _trans = _inds[ _slen > 0 && _keys[0] <=(*p) && 362 _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
363 (*p) <= _keys[1] ? 363 (*p) <= _keys[1] ?
364 (*p) - _keys[0] : _slen ]; 364 (*p) - _keys[0] : _slen ];
365 365
366 cs = _deserialize_text_trans_targs[_trans]; 366 cs = _deserialize_text_trans_targs[_trans];
367 367
368 if ( _deserialize_text_trans_actions[_trans] == 0 ) 368 if ( _deserialize_text_trans_actions[_trans] == 0 )
369 goto _again; 369 goto _again;
370 370
371 switch ( _deserialize_text_trans_actions[_trans] ) { 371 switch ( _deserialize_text_trans_actions[_trans] ) {
372 case 2: 372 case 2:
373 #line 51 "../../src/hb-buffer-deserialize-text.rl" 373 #line 51 "hb-buffer-deserialize-text.rl"
374 { 374 {
375 tok = p; 375 tok = p;
376 } 376 }
377 break; 377 break;
378 case 5: 378 case 5:
379 #line 55 "../../src/hb-buffer-deserialize-text.rl" 379 #line 55 "hb-buffer-deserialize-text.rl"
380 { 380 {
381 if (!hb_font_glyph_from_string (font, 381 if (!hb_font_glyph_from_string (font,
382 tok, p - tok, 382 tok, p - tok,
383 &info.codepoint)) 383 &info.codepoint))
384 return false; 384 return false;
385 } 385 }
386 break; 386 break;
387 case 10: 387 case 10:
388 #line 62 "../../src/hb-buffer-deserialize-text.rl" 388 #line 62 "hb-buffer-deserialize-text.rl"
389 { if (!parse_uint (tok, p, &info.cluster )) return false; } 389 { if (!parse_uint (tok, p, &info.cluster )) return false; }
390 break; 390 break;
391 case 3: 391 case 3:
392 #line 63 "../../src/hb-buffer-deserialize-text.rl" 392 #line 63 "hb-buffer-deserialize-text.rl"
393 { if (!parse_int (tok, p, &pos.x_offset )) return false; } 393 { if (!parse_int (tok, p, &pos.x_offset )) return false; }
394 break; 394 break;
395 case 12: 395 case 12:
396 #line 64 "../../src/hb-buffer-deserialize-text.rl" 396 #line 64 "hb-buffer-deserialize-text.rl"
397 { if (!parse_int (tok, p, &pos.y_offset )) return false; } 397 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
398 break; 398 break;
399 case 7: 399 case 7:
400 #line 65 "../../src/hb-buffer-deserialize-text.rl" 400 #line 65 "hb-buffer-deserialize-text.rl"
401 { if (!parse_int (tok, p, &pos.x_advance)) return false; } 401 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
402 break; 402 break;
403 case 1: 403 case 1:
404 #line 38 "../../src/hb-buffer-deserialize-text.rl" 404 #line 38 "hb-buffer-deserialize-text.rl"
405 { 405 {
406 memset (&info, 0, sizeof (info)); 406 memset (&info, 0, sizeof (info));
407 memset (&pos , 0, sizeof (pos )); 407 memset (&pos , 0, sizeof (pos ));
408 } 408 }
409 #line 51 "../../src/hb-buffer-deserialize-text.rl" 409 #line 51 "hb-buffer-deserialize-text.rl"
410 { 410 {
411 tok = p; 411 tok = p;
412 } 412 }
413 break; 413 break;
414 case 4: 414 case 4:
415 #line 55 "../../src/hb-buffer-deserialize-text.rl" 415 #line 55 "hb-buffer-deserialize-text.rl"
416 { 416 {
417 if (!hb_font_glyph_from_string (font, 417 if (!hb_font_glyph_from_string (font,
418 tok, p - tok, 418 tok, p - tok,
419 &info.codepoint)) 419 &info.codepoint))
420 return false; 420 return false;
421 } 421 }
422 #line 43 "../../src/hb-buffer-deserialize-text.rl" 422 #line 43 "hb-buffer-deserialize-text.rl"
423 { 423 {
424 buffer->add_info (info); 424 buffer->add_info (info);
425 if (buffer->in_error) 425 if (buffer->in_error)
426 return false; 426 return false;
427 buffer->pos[buffer->len - 1] = pos; 427 buffer->pos[buffer->len - 1] = pos;
428 *end_ptr = p; 428 *end_ptr = p;
429 } 429 }
430 break; 430 break;
431 case 9: 431 case 9:
432 #line 62 "../../src/hb-buffer-deserialize-text.rl" 432 #line 62 "hb-buffer-deserialize-text.rl"
433 { if (!parse_uint (tok, p, &info.cluster )) return false; } 433 { if (!parse_uint (tok, p, &info.cluster )) return false; }
434 #line 43 "../../src/hb-buffer-deserialize-text.rl" 434 #line 43 "hb-buffer-deserialize-text.rl"
435 { 435 {
436 buffer->add_info (info); 436 buffer->add_info (info);
437 if (buffer->in_error) 437 if (buffer->in_error)
438 return false; 438 return false;
439 buffer->pos[buffer->len - 1] = pos; 439 buffer->pos[buffer->len - 1] = pos;
440 *end_ptr = p; 440 *end_ptr = p;
441 } 441 }
442 break; 442 break;
443 case 11: 443 case 11:
444 #line 64 "../../src/hb-buffer-deserialize-text.rl" 444 #line 64 "hb-buffer-deserialize-text.rl"
445 { if (!parse_int (tok, p, &pos.y_offset )) return false; } 445 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
446 #line 43 "../../src/hb-buffer-deserialize-text.rl" 446 #line 43 "hb-buffer-deserialize-text.rl"
447 { 447 {
448 buffer->add_info (info); 448 buffer->add_info (info);
449 if (buffer->in_error) 449 if (buffer->in_error)
450 return false; 450 return false;
451 buffer->pos[buffer->len - 1] = pos; 451 buffer->pos[buffer->len - 1] = pos;
452 *end_ptr = p; 452 *end_ptr = p;
453 } 453 }
454 break; 454 break;
455 case 6: 455 case 6:
456 #line 65 "../../src/hb-buffer-deserialize-text.rl" 456 #line 65 "hb-buffer-deserialize-text.rl"
457 { if (!parse_int (tok, p, &pos.x_advance)) return false; } 457 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
458 #line 43 "../../src/hb-buffer-deserialize-text.rl" 458 #line 43 "hb-buffer-deserialize-text.rl"
459 { 459 {
460 buffer->add_info (info); 460 buffer->add_info (info);
461 if (buffer->in_error) 461 if (buffer->in_error)
462 return false; 462 return false;
463 buffer->pos[buffer->len - 1] = pos; 463 buffer->pos[buffer->len - 1] = pos;
464 *end_ptr = p; 464 *end_ptr = p;
465 } 465 }
466 break; 466 break;
467 case 8: 467 case 8:
468 #line 66 "../../src/hb-buffer-deserialize-text.rl" 468 #line 66 "hb-buffer-deserialize-text.rl"
469 { if (!parse_int (tok, p, &pos.y_advance)) return false; } 469 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
470 #line 43 "../../src/hb-buffer-deserialize-text.rl" 470 #line 43 "hb-buffer-deserialize-text.rl"
471 { 471 {
472 buffer->add_info (info); 472 buffer->add_info (info);
473 if (buffer->in_error) 473 if (buffer->in_error)
474 return false; 474 return false;
475 buffer->pos[buffer->len - 1] = pos; 475 buffer->pos[buffer->len - 1] = pos;
476 *end_ptr = p; 476 *end_ptr = p;
477 } 477 }
478 break; 478 break;
479 #line 480 "../../src/hb-buffer-deserialize-text.hh" 479 #line 480 "hb-buffer-deserialize-text.hh"
480 } 480 }
481 481
482 _again: 482 _again:
483 if ( cs == 0 ) 483 if ( cs == 0 )
484 goto _out; 484 goto _out;
485 if ( ++p != pe ) 485 if ( ++p != pe )
486 goto _resume; 486 goto _resume;
487 _test_eof: {} 487 _test_eof: {}
488 if ( p == eof ) 488 if ( p == eof )
489 { 489 {
490 switch ( _deserialize_text_eof_actions[cs] ) { 490 switch ( _deserialize_text_eof_actions[cs] ) {
491 case 4: 491 case 4:
492 #line 55 "../../src/hb-buffer-deserialize-text.rl" 492 #line 55 "hb-buffer-deserialize-text.rl"
493 { 493 {
494 if (!hb_font_glyph_from_string (font, 494 if (!hb_font_glyph_from_string (font,
495 tok, p - tok, 495 tok, p - tok,
496 &info.codepoint)) 496 &info.codepoint))
497 return false; 497 return false;
498 } 498 }
499 #line 43 "../../src/hb-buffer-deserialize-text.rl" 499 #line 43 "hb-buffer-deserialize-text.rl"
500 { 500 {
501 buffer->add_info (info); 501 buffer->add_info (info);
502 if (buffer->in_error) 502 if (buffer->in_error)
503 return false; 503 return false;
504 buffer->pos[buffer->len - 1] = pos; 504 buffer->pos[buffer->len - 1] = pos;
505 *end_ptr = p; 505 *end_ptr = p;
506 } 506 }
507 break; 507 break;
508 case 9: 508 case 9:
509 #line 62 "../../src/hb-buffer-deserialize-text.rl" 509 #line 62 "hb-buffer-deserialize-text.rl"
510 { if (!parse_uint (tok, p, &info.cluster )) return false; } 510 { if (!parse_uint (tok, p, &info.cluster )) return false; }
511 #line 43 "../../src/hb-buffer-deserialize-text.rl" 511 #line 43 "hb-buffer-deserialize-text.rl"
512 { 512 {
513 buffer->add_info (info); 513 buffer->add_info (info);
514 if (buffer->in_error) 514 if (buffer->in_error)
515 return false; 515 return false;
516 buffer->pos[buffer->len - 1] = pos; 516 buffer->pos[buffer->len - 1] = pos;
517 *end_ptr = p; 517 *end_ptr = p;
518 } 518 }
519 break; 519 break;
520 case 11: 520 case 11:
521 #line 64 "../../src/hb-buffer-deserialize-text.rl" 521 #line 64 "hb-buffer-deserialize-text.rl"
522 { if (!parse_int (tok, p, &pos.y_offset )) return false; } 522 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
523 #line 43 "../../src/hb-buffer-deserialize-text.rl" 523 #line 43 "hb-buffer-deserialize-text.rl"
524 { 524 {
525 buffer->add_info (info); 525 buffer->add_info (info);
526 if (buffer->in_error) 526 if (buffer->in_error)
527 return false; 527 return false;
528 buffer->pos[buffer->len - 1] = pos; 528 buffer->pos[buffer->len - 1] = pos;
529 *end_ptr = p; 529 *end_ptr = p;
530 } 530 }
531 break; 531 break;
532 case 6: 532 case 6:
533 #line 65 "../../src/hb-buffer-deserialize-text.rl" 533 #line 65 "hb-buffer-deserialize-text.rl"
534 { if (!parse_int (tok, p, &pos.x_advance)) return false; } 534 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
535 #line 43 "../../src/hb-buffer-deserialize-text.rl" 535 #line 43 "hb-buffer-deserialize-text.rl"
536 { 536 {
537 buffer->add_info (info); 537 buffer->add_info (info);
538 if (buffer->in_error) 538 if (buffer->in_error)
539 return false; 539 return false;
540 buffer->pos[buffer->len - 1] = pos; 540 buffer->pos[buffer->len - 1] = pos;
541 *end_ptr = p; 541 *end_ptr = p;
542 } 542 }
543 break; 543 break;
544 case 8: 544 case 8:
545 #line 66 "../../src/hb-buffer-deserialize-text.rl" 545 #line 66 "hb-buffer-deserialize-text.rl"
546 { if (!parse_int (tok, p, &pos.y_advance)) return false; } 546 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
547 #line 43 "../../src/hb-buffer-deserialize-text.rl" 547 #line 43 "hb-buffer-deserialize-text.rl"
548 { 548 {
549 buffer->add_info (info); 549 buffer->add_info (info);
550 if (buffer->in_error) 550 if (buffer->in_error)
551 return false; 551 return false;
552 buffer->pos[buffer->len - 1] = pos; 552 buffer->pos[buffer->len - 1] = pos;
553 *end_ptr = p; 553 *end_ptr = p;
554 } 554 }
555 break; 555 break;
556 #line 557 "../../src/hb-buffer-deserialize-text.hh" 556 #line 557 "hb-buffer-deserialize-text.hh"
557 } 557 }
558 } 558 }
559 559
560 _out: {} 560 _out: {}
561 } 561 }
562 562
563 #line 119 "../../src/hb-buffer-deserialize-text.rl" 563 #line 119 "hb-buffer-deserialize-text.rl"
564 564
565 565
566 *end_ptr = p; 566 *end_ptr = p;
567 567
568 return p == pe && *(p-1) != ']'; 568 return p == pe && *(p-1) != ']';
569 } 569 }
570 570
571 #endif /* HB_BUFFER_DESERIALIZE_TEXT_HH */ 571 #endif /* HB_BUFFER_DESERIALIZE_TEXT_HH */
OLDNEW
« no previous file with comments | « third_party/harfbuzz-ng/src/hb-buffer.cc ('k') | third_party/harfbuzz-ng/src/hb-ft.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698