This function used *printf with a %f directive, which under certain
locales would have generated a string like "270,00x210,00mm" which the
print driver would have rejected.
This change uses the newly available c_xasprintf function from gnulib
to alleviate this problem.
c-strcasestr \
c-ctype \
c-strtod \
c-strcasestr \
c-ctype \
c-strtod \
clean-temp \
close \
configmake \
clean-temp \
close \
configmake \
#include "gl/error.h"
#include "gl/tmpdir.h"
#include "gl/xalloc.h"
#include "gl/error.h"
#include "gl/tmpdir.h"
#include "gl/xalloc.h"
+#include "gl/c-xvasprintf.h"
\f
static void
create_xr_print_driver (GtkPrintContext *context, PsppireOutputWindow *window)
\f
static void
create_xr_print_driver (GtkPrintContext *context, PsppireOutputWindow *window)
string_map_init (&options);
string_map_insert_nocopy (&options, xstrdup ("paper-size"),
string_map_init (&options);
string_map_insert_nocopy (&options, xstrdup ("paper-size"),
- xasprintf("%.2fx%.2fmm", width, height));
+ c_xasprintf("%.2fx%.2fmm", width, height));
string_map_insert_nocopy (&options, xstrdup ("left-margin"),
string_map_insert_nocopy (&options, xstrdup ("left-margin"),
- xasprintf ("%.2fmm", left_margin));
+ c_xasprintf ("%.2fmm", left_margin));
string_map_insert_nocopy (&options, xstrdup ("right-margin"),
string_map_insert_nocopy (&options, xstrdup ("right-margin"),
- xasprintf ("%.2fmm", right_margin));
+ c_xasprintf ("%.2fmm", right_margin));
string_map_insert_nocopy (&options, xstrdup ("top-margin"),
string_map_insert_nocopy (&options, xstrdup ("top-margin"),
- xasprintf ("%.2fmm", top_margin));
+ c_xasprintf ("%.2fmm", top_margin));
string_map_insert_nocopy (&options, xstrdup ("bottom-margin"),
string_map_insert_nocopy (&options, xstrdup ("bottom-margin"),
- xasprintf ("%.2fmm", bottom_margin));
+ c_xasprintf ("%.2fmm", bottom_margin));
window->print_xrd =
xr_driver_create (gtk_print_context_get_cairo_context (context), &options);
window->print_xrd =
xr_driver_create (gtk_print_context_get_cairo_context (context), &options);