PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ parse_hex()

uint8_t parse_hex ( char *  str)
extern

Convert a single hex digit into the corresponding char.

Convert a single hex digit into the corresponding char.

No error checking done!

Definition at line 489 of file lwgeom_api.c.

490{
491 /* do this a little brute force to make it faster */
492
493 uint8_t result_high = 0;
494 uint8_t result_low = 0;
495
496 switch (str[0])
497 {
498 case '0' :
499 result_high = 0;
500 break;
501 case '1' :
502 result_high = 1;
503 break;
504 case '2' :
505 result_high = 2;
506 break;
507 case '3' :
508 result_high = 3;
509 break;
510 case '4' :
511 result_high = 4;
512 break;
513 case '5' :
514 result_high = 5;
515 break;
516 case '6' :
517 result_high = 6;
518 break;
519 case '7' :
520 result_high = 7;
521 break;
522 case '8' :
523 result_high = 8;
524 break;
525 case '9' :
526 result_high = 9;
527 break;
528 case 'A' :
529 case 'a' :
530 result_high = 10;
531 break;
532 case 'B' :
533 case 'b' :
534 result_high = 11;
535 break;
536 case 'C' :
537 case 'c' :
538 result_high = 12;
539 break;
540 case 'D' :
541 case 'd' :
542 result_high = 13;
543 break;
544 case 'E' :
545 case 'e' :
546 result_high = 14;
547 break;
548 case 'F' :
549 case 'f' :
550 result_high = 15;
551 break;
552 }
553 switch (str[1])
554 {
555 case '0' :
556 result_low = 0;
557 break;
558 case '1' :
559 result_low = 1;
560 break;
561 case '2' :
562 result_low = 2;
563 break;
564 case '3' :
565 result_low = 3;
566 break;
567 case '4' :
568 result_low = 4;
569 break;
570 case '5' :
571 result_low = 5;
572 break;
573 case '6' :
574 result_low = 6;
575 break;
576 case '7' :
577 result_low = 7;
578 break;
579 case '8' :
580 result_low = 8;
581 break;
582 case '9' :
583 result_low = 9;
584 break;
585 case 'A' :
586 case 'a' :
587 result_low = 10;
588 break;
589 case 'B' :
590 case 'b' :
591 result_low = 11;
592 break;
593 case 'C' :
594 case 'c' :
595 result_low = 12;
596 break;
597 case 'D' :
598 case 'd' :
599 result_low = 13;
600 break;
601 case 'E' :
602 case 'e' :
603 result_low = 14;
604 break;
605 case 'F' :
606 case 'f' :
607 result_low = 15;
608 break;
609 }
610 return (uint8_t) ((result_high<<4) + result_low);
611}
#define str(s)
Definition lwgeom_api.c:36

References str.

Referenced by rt_raster_from_hexwkb().

Here is the caller graph for this function: