Skip to content

Instantly share code, notes, and snippets.

@Girgias
Created January 15, 2020 15:58
Show Gist options
  • Save Girgias/ad8a447f4d98950c5ef210bd9cc47a34 to your computer and use it in GitHub Desktop.
Save Girgias/ad8a447f4d98950c5ef210bd9cc47a34 to your computer and use it in GitHub Desktop.
Locale aware sprintf family calls in php-src (Format f, F, e, E, g, G, k, H)
Command: grep -rPbnH "(v)?(a)?s(n|l)?printf\(.*%(\+|-| |#|0)?(\d+|\*)?(\.(\d+|\*))?(f|F|e|E|g|G|k|H).*\)"
ext/fileinfo/libmagic/softmagic.c:751:19760: (void)snprintf(buf, sizeof(buf), "%g", vf);
ext/fileinfo/libmagic/softmagic.c:771:20167: (void)snprintf(buf, sizeof(buf), "%g", vd);
ext/mysqlnd/mysql_float_to_double.h:43:1713: sprintf(num_buf, "%.*f", decimals, fp4);
ext/opcache/jit/dynasm/minilua.c:145:3126:#define lua_number2str(s,n)sprintf((s),"%.14g",(n))
ext/pdo_firebird/firebird_statement.c:376:10371: *len = slprintf(*ptr, CHAR_BUF_LEN, "%.*F", -var->sqlscale, *(double*)var->sqldata);
ext/pdo_firebird/firebird_statement.c:384:10741: *len = slprintf(*ptr, CHAR_BUF_LEN, "-0.%0*" LL_MASK "d", -var->sqlscale, -n % f);
ext/pdo_firebird/firebird_statement.c:421:11909: *len = slprintf(*ptr, CHAR_BUF_LEN, "%F", *(float*)var->sqldata);
ext/pdo_firebird/firebird_statement.c:425:12083: *len = slprintf(*ptr, CHAR_BUF_LEN, "%F" , *(double*)var->sqldata);
ext/pgsql/pgsql.c:6670:187883: smart_str_appendl(&querystr, buf, snprintf(buf, sizeof(buf), "%F", Z_DVAL_P(val)));
ext/pgsql/pgsql.c:6836:192734: smart_str_appendl(querystr, buf, MIN(snprintf(buf, sizeof(buf), "%F", Z_DVAL_P(val)), sizeof(buf) - 1));
ext/snmp/snmp.c:392:11006: snprintf(buf, buflen, "%f", *vars->val.floatVal);
ext/snmp/snmp.c:397:11143: snprintf(buf, buflen, "%f", *vars->val.doubleVal);
ext/soap/php_encoding.c:1059:36860: snprintf(s, sizeof(s), "%0.0F",floor(Z_DVAL_P(data)));
ext/standard/math.c:194:6185: snprintf(buf, 39, "%15fe%d", tmp_value, -places);
ext/xmlrpc/libxmlrpc/xml_to_dandarpc.c:216:7546: snprintf(buf, BUF_SIZE, "%f", XMLRPC_GetValueDouble(node));
ext/xmlrpc/libxmlrpc/xml_to_soap.c:510:17355: snprintf(buf, BUF_SIZE, "%f", XMLRPC_GetValueDouble(node));
ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c:227:8749: snprintf(buf, BUF_SIZE, "%.*G", (int) EG(precision), XMLRPC_GetValueDouble(node));
sapi/fpm/fpm/fpm_log.c:196:4204: len2 = snprintf(b, FPM_LOG_BUFFER - len, "%.2f", tms_total / fpm_scoreboard_get_tick() / (proc.cpu_duration.tv_sec + proc.cpu_duration.tv_usec / 1000000.) * 100.);
sapi/fpm/fpm/fpm_log.c:205:4536: len2 = snprintf(b, FPM_LOG_BUFFER - len, "%.3f", proc.duration.tv_sec + proc.duration.tv_usec / 1000000.);
sapi/fpm/fpm/fpm_log.c:211:4786: len2 = snprintf(b, FPM_LOG_BUFFER - len, "%.3f", proc.duration.tv_sec * 1000. + proc.duration.tv_usec / 1000.);
sapi/phpdbg/phpdbg_out.c:1029:24341: msgoutlen = phpdbg_asprintf(&msgout, "[%ld %.8F]: %.*s\n", tp.tv_sec, tp.tv_usec / 1000000., msglen, msg);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment