MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / parse_values

Function parse_values

src/calc.cpp:615–752  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

613}
614
615static bool parse_values(const TCHAR *ins, TCHAR *out)
616{
617 int ident = 0;
618 TCHAR tmp;
619 TCHAR inbuf[IOBUFFERS];
620 int op;
621
622 _tcscpy (inbuf, ins);
623 TCHAR *in = inbuf;
624 TCHAR *p = out;
625 op = 0;
626 if (in[0] == '-' || in[0] == '+') {
627 *p++ = '0';
628 }
629 while (*in) {
630 TCHAR *instart = in;
631 if (!_tcsncmp(in, _T("true"), 4) && is_separator(in[4])) {
632 in[0] = '1';
633 in[1] = ' ';
634 in[2] = ' ';
635 in[3] = ' ';
636 } else if (!_tcsncmp(in, _T("false"), 5) && is_separator(in[5])) {
637 in[0] = '0';
638 in[1] = ' ';
639 in[2] = ' ';
640 in[3] = ' ';
641 in[4] = ' ';
642 } else if (!_tcsncmp(in, _T("rl("), 3)) {
643 in[0] = (TCHAR)0xf2;
644 in[1] = ' ';
645 } else if (!_tcsncmp(in, _T("rw("), 3)) {
646 in[0] = (TCHAR)0xf1;
647 in[1] = ' ';
648 } else if (!_tcsncmp(in, _T("rb("), 3)) {
649 in[0] = (TCHAR)0xf0;
650 in[1] = ' ';
651 } else if (in[0] == '>' && in[1] == '>') {
652 in[0] = (TCHAR)('>' | 0x80);
653 in[1] = ' ';
654 } else if (in[0] == '<' && in[1] == '<') {
655 in[0] = (TCHAR)('<' | 0x80);
656 in[1] = ' ';
657 } else if (in[0] == '"' || in[0] == '\'') {
658 TCHAR *quoted = in;
659 TCHAR quotec = *in;
660 *in++ = 0;
661 if (ident >= MAX_VALUES)
662 return false;
663 *p++ = ident + 'a';
664 while (*in != 0 && *in != quotec) {
665 in++;
666 }
667 if (*in != quotec) {
668 return false;
669 }
670 *in = 0;
671 parsedvaluess[ident++] = my_strdup(quoted + 1);
672 while (quoted <= in) {

Callers 1

calcFunction · 0.85

Calls 3

is_separatorFunction · 0.85
getregidxFunction · 0.85
returnregxFunction · 0.85

Tested by

no test coverage detected