mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-10-29 05:40:16 -04:00
connection, client: Avoid locale-dependent float printing
Specifically, in the log formed when WAYLAND_DEBUG is set, this commit ensures that floating point numbers are formatted using '.' instead of the locale-specific decimal separator. As the debug logs are not otherwise localized for end-users, and may be parsed by scripts, it is better to have consistent output here. The 24.8 fixed point numbers are now represented with 8 digits after the decimal, since this is both exact and simpler to compute. Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
This commit is contained in:
parent
91d98b622f
commit
2f05ceeb4d
2 changed files with 15 additions and 6 deletions
|
|
@ -1275,8 +1275,8 @@ wl_closure_print(struct wl_closure *closure, struct wl_object *target,
|
|||
clock_gettime(CLOCK_REALTIME, &tp);
|
||||
time = (tp.tv_sec * 1000000L) + (tp.tv_nsec / 1000);
|
||||
|
||||
fprintf(stderr, "[%10.3f] %s%s%s@%u.%s(",
|
||||
time / 1000.0,
|
||||
fprintf(stderr, "[%7u.%03u] %s%s%s@%u.%s(",
|
||||
time / 1000, time % 1000,
|
||||
discarded ? "discarded " : "",
|
||||
send ? " -> " : "",
|
||||
target->interface->name, target->id,
|
||||
|
|
@ -1295,8 +1295,17 @@ wl_closure_print(struct wl_closure *closure, struct wl_object *target,
|
|||
fprintf(stderr, "%d", closure->args[i].i);
|
||||
break;
|
||||
case 'f':
|
||||
fprintf(stderr, "%f",
|
||||
wl_fixed_to_double(closure->args[i].f));
|
||||
/* The magic number 390625 is 1e8 / 256 */
|
||||
if (closure->args[i].f >= 0) {
|
||||
fprintf(stderr, "%d.%08d",
|
||||
closure->args[i].f / 256,
|
||||
390625 * (closure->args[i].f % 256));
|
||||
} else {
|
||||
|
||||
fprintf(stderr, "-%d.%08d",
|
||||
closure->args[i].f / -256,
|
||||
-390625 * (closure->args[i].f % 256));
|
||||
}
|
||||
break;
|
||||
case 's':
|
||||
if (closure->args[i].s)
|
||||
|
|
|
|||
|
|
@ -1381,9 +1381,9 @@ queue_event(struct wl_display *display, int len)
|
|||
clock_gettime(CLOCK_REALTIME, &tp);
|
||||
time = (tp.tv_sec * 1000000L) + (tp.tv_nsec / 1000);
|
||||
|
||||
fprintf(stderr, "[%10.3f] discarded [%s]@%d.[event %d]"
|
||||
fprintf(stderr, "[%7u.%03u] discarded [%s]@%d.[event %d]"
|
||||
"(%d fd, %d byte)\n",
|
||||
time / 1000.0,
|
||||
time / 1000, time % 1000,
|
||||
zombie ? "zombie" : "unknown",
|
||||
id, opcode,
|
||||
num_zombie_fds, size);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue