boost::process::spawn() sets SIGCHLD to SIGIGN for the child process, thus if a child PrusaSlicer spawns another
subprocess and the subrocess dies, the child PrusaSlicer will not receive information on end of subprocess
(posix waitpid() call will always fail).
https://jmmv.dev/2008/10/boostprocess-and-sigchld.html
The child instance of PrusaSlicer has to reset SIGCHLD to its default, so that posix waitpid() and similar continue to work.
Fixes#5507
Problem: Add an object, name it using cyrilic, Slice, click Export: the proposed name is mangled. Affects all platforms, 2.2.0 was fine.
Cause: It is mangled during ASCII folding, which was broken with 28c0880 when it was generalized to be used from the fuzzy matcher.
fold_to_ascii(wchar_t c, char *out) relies on narrowing char = wchar_t assignment, the old one used std::back_insert_iterator<std::wstring>.
It is thus unable to leave a character alone even when it should (it should, right?).
Solution:
1. Typed the fold_to_ascii function so it works on wchar_t only, which should mimic the old behaviour.
2. Changed the respective call in fts_fuzzy_match.h. That function also works with wide char C-strings.
Cleanup:
1. Removed the unused fold_utf8_to_ascii(const char *src) overload to avoid code duplication.
2. Untemplated the fold_to_ascii(wchar_t c, std::back_insert_iterator<std::wstring>& out) function, it was never called with a different type.
3. The function is now static in ASCIIFolding.cpp, nobody else needs to know.
This reverts commits:
57ba953 ("PresetUpdater - exceptions reformatted, not throwing an exception")
03028bb ("Improved exception throwing at copy file in preset updater")
The repair can remove some of the triangles, so the custom data would make no sense.
This will hopefully fix#5458
Also, show a notification with a hyperlink to undo just before the repair.
has_undo_snapshot(timestamp) to query whether one can undo to a snapshot
with a specific timestamp. Useful for notifications, that want to Undo
a specific operation, to verify whether such operation is still valid.
on Linux when changing file attributes, as changing file attributes
may fail when writing onto FAT file system, which does not support
some of the common Unix file attributes.
with the following refactorings:
1) Removed the "printhost_slug" config from the Printer config
and from all the Printer config related spots.
2) "printhost_slug" renamed to "printhost_port". Slug sounds nasty.
3) Improved error reporting of RepetierHost class.
4) Refactored for the new "Physical Printers"
Following refactorings were done independently of the Repetier pull request:
1) Removed PrintHost static print config.
2) Clean-up after conversion of print host configuration
from Printer config to Physical Printer config.
3) Fixed some issues, where the Printer config was still queried for
host configuration. Vojtech believes that this should not happen
after the host configuration is converted to physical printers.
Vojtech still feels that more refactoring is needed in regard to porting
the host configuration from Printer profile to the new Physical Printer
profile.
Use https in config update URLs
http://files.prusa3d.com/* always redirects to HTTPS so use https scheme
directly.
The pull request broke updates to those who installed configs with
http://, not https:// prefix.
The following threads are named with this commit:
slic3r_main, slic3r_BackgroundSlicingProcess,
slic3r_tbbpool_xx_yy where xx is a one based index of the TTB thread
and yy is the platform thread ID.
to help with detecting "not changed" event when taking
Undo/Redo snapshot or synchronizing with the back-end.
Converted layer height profile and supports / seam painted areas
to the same timestamp controlled structure.
If an object indicates a valid timestamp, then the timestamp
is relied upon to not serialize the object data if the timestamp
of the same object on the undo/redo stack matches.