eric6/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py

changeset 7775
4a1db75550bd
parent 7360
9190402e4505
child 7923
91e843545d9a
diff -r 9eed155411f0 -r 4a1db75550bd eric6/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py
--- 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):

eric ide

mercurial