--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py Sat Oct 10 16:03:53 2020 +0200 +++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py Sun Oct 11 17:54:52 2020 +0200 @@ -8,10 +8,10 @@ process. """ - +import re import os -from PyQt5.QtCore import QTimer, QProcess, QRegExp, Qt, pyqtSlot +from PyQt5.QtCore import pyqtSlot, Qt, QTimer, QProcess from PyQt5.QtWidgets import ( QWidget, QHeaderView, QLineEdit, QApplication, QMenu, QDialogButtonBox, QTreeWidgetItem @@ -196,12 +196,12 @@ '*': self.tr('no'), } - self.rx_status = QRegExp( + self.rx_status = re.compile( '(.{8,9})\\s+([0-9-]+)\\s+([0-9?]+)\\s+(\\S+)\\s+(.+)\\s*') # flags (8 or 9 anything), revision, changed rev, author, path - self.rx_status2 = QRegExp('(.{8,9})\\s+(.+)\\s*') + self.rx_status2 = re.compile('(.{8,9})\\s+(.+)\\s*') # flags (8 or 9 anything), path - self.rx_changelist = QRegExp('--- \\S+ .([\\w\\s]+).:\\s+') + self.rx_changelist = re.compile('--- \\S+ .([\\w\\s]+).:\\s+') # three dashes, Changelist (translated), quote, # changelist name, quote, : @@ -507,26 +507,31 @@ s = str(self.process.readLine(), Preferences.getSystem("IOEncoding"), 'replace') - if self.rx_status.exactMatch(s): - flags = self.rx_status.cap(1) - rev = self.rx_status.cap(2) - change = self.rx_status.cap(3) - author = self.rx_status.cap(4) - path = self.rx_status.cap(5).strip() + match = ( + self.rx_status.fullmatch(s) or + self.rx_status2.fullmatch(s) or + self.rx_changelist.fullmatch(s) + ) + if match.re is self.rx_status: + flags = match.group(1) + rev = match.group(2) + change = match.group(3) + author = match.group(4) + path = match.group(5).strip() self.__generateItem(flags[0], flags[1], flags[2], flags[3], flags[4], flags[5], flags[-1], rev, change, author, path) - elif self.rx_status2.exactMatch(s): - flags = self.rx_status2.cap(1) - path = self.rx_status2.cap(2).strip() + elif match.re is self.rx_status2: + flags = match.group(1) + path = match.group(2).strip() if flags[-1] in self.uptodate: self.__generateItem(flags[0], flags[1], flags[2], flags[3], flags[4], flags[5], flags[-1], "", "", "", path) - elif self.rx_changelist.exactMatch(s): - self.currentChangelist = self.rx_changelist.cap(1) + elif match.re is self.rx_changelist: + self.currentChangelist = match.group(1) self.changelistFound = True def __readStderr(self):