diff --git a/src/Mod/AddonManager/AddonManager.py b/src/Mod/AddonManager/AddonManager.py index 4a6516e112..c07a078986 100644 --- a/src/Mod/AddonManager/AddonManager.py +++ b/src/Mod/AddonManager/AddonManager.py @@ -220,7 +220,7 @@ class AddonsInstaller(QtGui.QDialog): if not thread.isFinished(): oktoclose = False if oktoclose: - shutil.rmtree(self.macro_repo_dir) + shutil.rmtree(self.macro_repo_dir,onerror=self.remove_readonly) QtGui.QDialog.reject(self) def retranslateUi(self): @@ -687,7 +687,12 @@ class Macro(object): code = code.encode('utf8') code = code.replace('\xc2\xa0', ' ') except: - FreeCAD.Console.PrintWarning(translate("AddonsInstaller", "Unable to clean macro code: ") + code + '\n') + #HTMLParser().unescape() didn't work, so try manually + try: + code = code.replace('>','>').replace('<','<').replace(' ','').replace('&','&').replace('\xc2\xa0', ' ') + code = code.replace('\t',' ')#some macros in the wiki have tabs interspersed, this might fix some of them + except: + FreeCAD.Console.PrintWarning(translate("AddonsInstaller", "Unable to clean macro code: ") + code + '\n') desc = re.findall("(.*?)<\/td>", p.replace('\n', ' ')) if desc: desc = desc[0]