Author: gstein
Date: Fri Dec 15 09:44:03 2023
New Revision: 1914679

URL: http://svn.apache.org/viewvc?rev=1914679&view=rev
Log:
class DifflibDiffContent does not work, and maybe never did. There is
no .next() method on the unified_diff() result object. While it would
be possible to use the next() function, it is better to just remove
this entirely and require the host OS to have a diff executable (not a
hard requirement).

* tools/hook-scripts/mailer/mailer.py:
  (DiffGenerator.__getitem__): remove OSError exception, as the diff
    executable must be present.
  (class DifflibDiffContent): removed.

Modified:
    subversion/trunk/tools/hook-scripts/mailer/mailer.py

Modified: subversion/trunk/tools/hook-scripts/mailer/mailer.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/mailer/mailer.py?rev=1914679&r1=1914678&r2=1914679&view=diff
==============================================================================
--- subversion/trunk/tools/hook-scripts/mailer/mailer.py (original)
+++ subversion/trunk/tools/hook-scripts/mailer/mailer.py Fri Dec 15 09:44:03 
2023
@@ -1016,17 +1016,13 @@ class DiffGenerator:
         if binary:
           content = src_fname = dst_fname = None
         else:
-          src_fname, dst_fname = diff.get_files()
-          try:
+            src_fname, dst_fname = diff.get_files()
             content = DiffContent(self.cfg.get_diff_cmd(self.group, {
               'label_from' : label1,
               'label_to' : label2,
               'from' : src_fname,
               'to' : dst_fname,
               }))
-          except OSError:
-            # diff command does not exist, try difflib.unified_diff()
-            content = DifflibDiffContent(label1, label2, src_fname, dst_fname)
 
       # return a data item for this diff
       return _data(
@@ -1101,36 +1097,6 @@ class DiffContent:
       raise IndexError
 
     line, ltype, self.seen_change = _classify_diff_line(line, self.seen_change)
-    return _data(
-      raw=line,
-      text=line[1:-1],  # remove indicator and newline
-      type=ltype,
-      )
-
-
-class DifflibDiffContent():
-  "This is a generator-like object returning annotated lines of a diff."
-
-  def __init__(self, label_from, label_to, from_file, to_file):
-    import difflib
-    self.seen_change = False
-    fromlines = open(from_file, 'U').readlines()
-    tolines = open(to_file, 'U').readlines()
-    self.diff = difflib.unified_diff(fromlines, tolines,
-                                     label_from, label_to)
-
-  def __nonzero__(self):
-    # we always have some items
-    return True
-
-  def __getitem__(self, idx):
-
-    try:
-      line = self.diff.next()
-    except StopIteration:
-      raise IndexError
-
-    line, ltype, self.seen_change = _classify_diff_line(line, self.seen_change)
     return _data(
       raw=line,
       text=line[1:-1],  # remove indicator and newline


Reply via email to