diff --git a/src/libply/ply-utils.c b/src/libply/ply-utils.c index c17e0c85..4ff7b1b9 100644 --- a/src/libply/ply-utils.c +++ b/src/libply/ply-utils.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -1109,4 +1110,17 @@ ply_kernel_command_line_override (const char *command_line) kernel_command_line_is_set = true; } +double ply_strtod(const char *str) +{ + char *old_locale; + double ret; + + /* Ensure strtod uses '.' as decimal separator, as we use this in our cfg files. */ + old_locale = setlocale(LC_NUMERIC, "C"); + ret = strtod(str, NULL); + setlocale(LC_NUMERIC, old_locale); + + return ret; +} + /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ diff --git a/src/libply/ply-utils.h b/src/libply/ply-utils.h index ae4776e2..4dd9c09a 100644 --- a/src/libply/ply-utils.h +++ b/src/libply/ply-utils.h @@ -132,6 +132,8 @@ const char *ply_kernel_command_line_get_string_after_prefix (const char *prefix) bool ply_kernel_command_line_has_argument (const char *argument); void ply_kernel_command_line_override (const char *command_line); +double ply_strtod(const char *str); + #endif #endif /* PLY_UTILS_H */ diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c index 16b8fc87..c1e75a8e 100644 --- a/src/plugins/splash/two-step/plugin.c +++ b/src/plugins/splash/two-step/plugin.c @@ -423,6 +423,10 @@ view_load (view_t *view) view->watermark_area.height = ply_image_get_height (plugin->watermark_image); view->watermark_area.x = screen_width * plugin->watermark_horizontal_alignment - ply_image_get_width (plugin->watermark_image) * plugin->watermark_horizontal_alignment; view->watermark_area.y = screen_height * plugin->watermark_vertical_alignment - ply_image_get_height (plugin->watermark_image) * plugin->watermark_vertical_alignment; + ply_trace ("using %ldx%ld watermark centered at %ldx%ld for %ldx%ld screen", + view->watermark_area.width, view->watermark_area.height, + view->watermark_area.x, view->watermark_area.y, + screen_width, screen_height); } ply_trace ("loading entry"); @@ -746,28 +750,28 @@ create_plugin (ply_key_file_t *key_file) alignment = ply_key_file_get_value (key_file, "two-step", "HorizontalAlignment"); if (alignment != NULL) - plugin->animation_horizontal_alignment = strtod (alignment, NULL); + plugin->animation_horizontal_alignment = ply_strtod (alignment); else plugin->animation_horizontal_alignment = .5; free (alignment); alignment = ply_key_file_get_value (key_file, "two-step", "VerticalAlignment"); if (alignment != NULL) - plugin->animation_vertical_alignment = strtod (alignment, NULL); + plugin->animation_vertical_alignment = ply_strtod (alignment); else plugin->animation_vertical_alignment = .5; free (alignment); alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkHorizontalAlignment"); if (alignment != NULL) - plugin->watermark_horizontal_alignment = strtod (alignment, NULL); + plugin->watermark_horizontal_alignment = ply_strtod (alignment); else plugin->watermark_horizontal_alignment = 1.0; free (alignment); alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkVerticalAlignment"); if (alignment != NULL) - plugin->watermark_vertical_alignment = strtod (alignment, NULL); + plugin->watermark_vertical_alignment = ply_strtod (alignment); else plugin->watermark_vertical_alignment = .5; free (alignment); @@ -786,7 +790,7 @@ create_plugin (ply_key_file_t *key_file) transition_duration = ply_key_file_get_value (key_file, "two-step", "TransitionDuration"); if (transition_duration != NULL) - plugin->transition_duration = strtod (transition_duration, NULL); + plugin->transition_duration = ply_strtod (transition_duration); else plugin->transition_duration = 0.0; free (transition_duration);