diff -p -up ./src/main.c.org ./src/main.c --- ./src/main.c.org 2013-01-03 18:14:12.000000000 +0100 +++ ./src/main.c 2014-03-23 08:26:34.663176056 +0100 @@ -1876,10 +1876,16 @@ main (int argc, char *argv[]) setbuf (stdout, 0); InitPaths (argv[0]); +#ifdef ENABLE_NLS + #ifdef LOCALEDIR bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + #endif textdomain(GETTEXT_PACKAGE); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); setlocale(LC_ALL,""); + /*use decimal point instead of comma */ + setlocale(LC_NUMERIC,"C"); +#endif srand ( time(NULL) ); /* Set seed for rand() */ @@ -2040,8 +2046,6 @@ main (int argc, char *argv[]) if (gui->printer || gui->exporter) { - // Workaround to fix batch output for non-C locales - setlocale(LC_NUMERIC,"C"); gui->do_export (0); exit (0); } ##################################3 diff -p -up ./src/hid/gcode/gcode.c.org ./src/hid/gcode/gcode.c --- ./src/hid/gcode/gcode.c.org 2013-01-03 18:14:12.000000000 +0100 +++ ./src/hid/gcode/gcode.c 2014-03-23 16:04:37.960729030 +0100 @@ -531,7 +531,6 @@ gcode_do_export (HID_Attr_Val * options) char variable_isoplunge[20], variable_isofeedrate[20]; char variable_drilldepth[20], variable_milldepth[20]; char variable_millplunge[20], variable_millfeedrate[20]; - char *old_locale = setlocale (LC_NUMERIC, NULL); if (!options) { @@ -575,7 +574,6 @@ gcode_do_export (HID_Attr_Val * options) gcode_millfeedrate = options[HA_millfeedrate].real_value * scale; gcode_advanced = options[HA_advanced].int_value; gcode_choose_groups (); - setlocale (LC_NUMERIC, "C"); /* use . as separator */ if (gcode_advanced) { /* give each variable distinct names, even if they don't appear @@ -668,7 +666,7 @@ gcode_do_export (HID_Attr_Val * options) if (!gcode_f) { bm_free (bm); - goto error; + return; } fprintf (gcode_f, "(Accuracy %d dpi)\n", gcode_dpi); fprintf (gcode_f, "(Tool diameter: %f %s)\n", @@ -702,7 +700,7 @@ gcode_do_export (HID_Attr_Val * options) if (r) { fprintf (stderr, "ERROR: pathlist function failed\n"); - goto error; + return; } /* generate best polygon and write vertices in g-code format */ d = process_path (plist, ¶m_default, bm, gcode_f, @@ -712,7 +710,7 @@ gcode_do_export (HID_Attr_Val * options) if (d < 0) { fprintf (stderr, "ERROR: path process function failed\n"); - goto error; + return; } if (gcode_predrill && save_drill) { @@ -832,7 +830,7 @@ gcode_do_export (HID_Attr_Val * options) gcode_f = gcode_start_gcode(layername, metric); } if (!gcode_f) - goto error; + return; fprintf (gcode_f, "(Drill file: %d drills)\n", drill->n_holes); if (metric) fprintf (gcode_f, "(Drill diameter: %f mm)\n", @@ -940,7 +938,7 @@ gcode_do_export (HID_Attr_Val * options) gcode_f = gcode_start_gcode("drillmill", metric); if (!gcode_f) - goto error; + return; fprintf (gcode_f, "(Drillmill file)\n"); fprintf (gcode_f, "(Tool diameter: %f %s)\n", gcode_milltoolradius * 2, metric ? "mm" : "inch"); @@ -1062,7 +1060,7 @@ gcode_do_export (HID_Attr_Val * options) gcode_f = gcode_start_gcode("outline", metric); if (!gcode_f) - goto error; + return; fprintf (gcode_f, "(Outline mill file)\n"); fprintf (gcode_f, "(Tool diameter: %f %s)\n", gcode_milltoolradius * 2, metric ? "mm" : "inch"); @@ -1130,9 +1128,6 @@ gcode_do_export (HID_Attr_Val * options) mill_distance * 25.4, mill_distance); fclose (gcode_f); } - -error: - setlocale (LC_NUMERIC, old_locale); /* restore locale */ } /* *** PNG export (slightly modified code from PNG export HID) ************* */