MIRROR: javascript for ๐Ÿœ's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

numeric seperators

+34 -11
+1 -1
meson.build
··· 74 74 build_date = run_command('date', '+%Y-%m-%d', check: true).stdout().strip() 75 75 76 76 version_conf = configuration_data() 77 - version_conf.set('ANT_VERSION', '0.0.8.25') 77 + version_conf.set('ANT_VERSION', '0.0.8.26') 78 78 version_conf.set('ANT_GIT_HASH', git_hash) 79 79 version_conf.set('ANT_BUILD_DATE', build_date) 80 80
+33 -10
src/ant.c
··· 2504 2504 if (buf[0] == '0' && js->toff + 2 < js->clen) { 2505 2505 if (buf[1] == 'b' || buf[1] == 'B') { 2506 2506 numlen = 2; 2507 - while (js->toff + numlen < js->clen && (buf[numlen] == '0' || buf[numlen] == '1')) { 2508 - value = value * 2 + (buf[numlen] - '0'); 2507 + while (js->toff + numlen < js->clen && (buf[numlen] == '0' || buf[numlen] == '1' || buf[numlen] == '_')) { 2508 + if (buf[numlen] != '_') value = value * 2 + (buf[numlen] - '0'); 2509 2509 numlen++; 2510 2510 } 2511 2511 js->tval = tov(value); 2512 2512 } else if (buf[1] == 'o' || buf[1] == 'O') { 2513 2513 numlen = 2; 2514 - while (js->toff + numlen < js->clen && buf[numlen] >= '0' && buf[numlen] <= '7') { 2515 - value = value * 8 + (buf[numlen] - '0'); 2514 + while (js->toff + numlen < js->clen && ((buf[numlen] >= '0' && buf[numlen] <= '7') || buf[numlen] == '_')) { 2515 + if (buf[numlen] != '_') value = value * 8 + (buf[numlen] - '0'); 2516 2516 numlen++; 2517 2517 } 2518 2518 js->tval = tov(value); 2519 2519 } else if (buf[1] == 'x' || buf[1] == 'X') { 2520 - js->tval = tov(strtod(buf, &end)); 2521 - numlen = (jsoff_t) (end - buf); 2520 + char clean[64]; 2521 + jsoff_t ci = 0; 2522 + numlen = 0; 2523 + while (js->toff + numlen < js->clen && (is_xdigit(buf[numlen]) || buf[numlen] == 'x' || buf[numlen] == 'X' || buf[numlen] == '_') && ci < 63) { 2524 + if (buf[numlen] != '_') clean[ci++] = buf[numlen]; 2525 + numlen++; 2526 + } 2527 + clean[ci] = '\0'; 2528 + js->tval = tov(strtod(clean, &end)); 2522 2529 } else { 2523 - js->tval = tov(strtod(buf, &end)); 2524 - numlen = (jsoff_t) (end - buf); 2530 + char clean[64]; 2531 + jsoff_t ci = 0; 2532 + numlen = 0; 2533 + while (js->toff + numlen < js->clen && (is_digit(buf[numlen]) || buf[numlen] == '.' || buf[numlen] == 'e' || buf[numlen] == 'E' || buf[numlen] == '+' || buf[numlen] == '-' || buf[numlen] == '_') && ci < 63) { 2534 + if (numlen > 0 && (buf[numlen] == '+' || buf[numlen] == '-') && buf[numlen-1] != 'e' && buf[numlen-1] != 'E') break; 2535 + if (buf[numlen] != '_') clean[ci++] = buf[numlen]; 2536 + numlen++; 2537 + } 2538 + clean[ci] = '\0'; 2539 + js->tval = tov(strtod(clean, &end)); 2525 2540 } 2526 2541 } else { 2527 - js->tval = tov(strtod(buf, &end)); 2528 - numlen = (jsoff_t) (end - buf); 2542 + char clean[64]; 2543 + jsoff_t ci = 0; 2544 + numlen = 0; 2545 + while (js->toff + numlen < js->clen && (is_digit(buf[numlen]) || buf[numlen] == '.' || buf[numlen] == 'e' || buf[numlen] == 'E' || buf[numlen] == '+' || buf[numlen] == '-' || buf[numlen] == '_') && ci < 63) { 2546 + if (numlen > 0 && (buf[numlen] == '+' || buf[numlen] == '-') && buf[numlen-1] != 'e' && buf[numlen-1] != 'E') break; 2547 + if (buf[numlen] != '_') clean[ci++] = buf[numlen]; 2548 + numlen++; 2549 + } 2550 + clean[ci] = '\0'; 2551 + js->tval = tov(strtod(clean, &end)); 2529 2552 } 2530 2553 2531 2554 if (js->toff + numlen < js->clen && buf[numlen] == 'n') {