--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py Sat Oct 10 16:03:53 2020 +0200 +++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py Sun Oct 11 17:54:52 2020 +0200 @@ -8,10 +8,9 @@ process. """ +import re -from PyQt5.QtCore import ( - pyqtSlot, QTimer, QProcess, QProcessEnvironment, QRegExp, Qt -) +from PyQt5.QtCore import pyqtSlot, Qt, QTimer, QProcess, QProcessEnvironment from PyQt5.QtWidgets import ( QWidget, QHeaderView, QDialogButtonBox, QTreeWidgetItem ) @@ -59,8 +58,8 @@ self.process.readyReadStandardOutput.connect(self.__readStdout) self.process.readyReadStandardError.connect(self.__readStderr) - self.rx_path = QRegExp(r"Properties on '([^']+)':\s*") - self.rx_prop = QRegExp(r" (.*) *: *(.*)[\r\n]") + self.rx_path = re.compile(r"Properties on '([^']+)':\s*") + self.rx_prop = re.compile(r" (.*) *: *(.*)[\r\n]") def __resort(self): """ @@ -223,23 +222,24 @@ s = str(self.process.readLine(), Preferences.getSystem("IOEncoding"), 'replace') - if self.rx_path.exactMatch(s): + match = self.rx_path.fullmatch(s) or self.rx_prop.fullmatch(s) + if match is None: + self.propBuffer += ' ' + self.propBuffer += s + elif match.re is self.rx_path: if self.lastProp: self.__generateItem( self.lastPath, self.lastProp, self.propBuffer) - self.lastPath = self.rx_path.cap(1) + self.lastPath = match.group(1) self.lastProp = None self.propBuffer = "" - elif self.rx_prop.exactMatch(s): + elif match.re is self.rx_prop: if self.lastProp: self.__generateItem( self.lastPath, self.lastProp, self.propBuffer) - self.lastProp = self.rx_prop.cap(1) - self.propBuffer = self.rx_prop.cap(2) - else: - self.propBuffer += ' ' - self.propBuffer += s - + self.lastProp = match.group(1) + self.propBuffer = match.group(2) + def __readStderr(self): """ Private slot to handle the readyReadStandardError signal.