Преглед на файлове

More fix after merge pull request from @myint to support python3 (issue #2)

Matthew Wang преди 12 години
родител
ревизия
1ea76e6853
променени са 2 файла, в които са добавени 11 реда и са изтрити 4 реда
  1. 3
    2
      Makefile
  2. 8
    2
      src/cdiff.py

+ 3
- 2
Makefile Целия файл

7
 dogfood:
7
 dogfood:
8
 	git diff | src/cdiff.py
8
 	git diff | src/cdiff.py
9
 	git diff | src/cdiff.py -s
9
 	git diff | src/cdiff.py -s
10
-	git diff | src/cdiff.py -s -w 60
11
-	git diff | src/cdiff.py -s -w 90
12
 
10
 
13
 test: $(TESTS)
11
 test: $(TESTS)
14
 
12
 
16
 	src/cdiff.py tests/$@.diff
14
 	src/cdiff.py tests/$@.diff
17
 	src/cdiff.py tests/$@.diff -s
15
 	src/cdiff.py tests/$@.diff -s
18
 	src/cdiff.py tests/$@.diff | diff -u tests/$@.diff -
16
 	src/cdiff.py tests/$@.diff | diff -u tests/$@.diff -
17
+	python3 src/cdiff.py tests/$@.diff
18
+	python3 src/cdiff.py tests/$@.diff -s
19
+	python3 src/cdiff.py tests/$@.diff | diff -u tests/$@.diff -
19
 
20
 
20
 # vim:set noet ts=8 sw=8:
21
 # vim:set noet ts=8 sw=8:

+ 8
- 2
src/cdiff.py Целия файл

13
 if sys.hexversion < 0x02050000:
13
 if sys.hexversion < 0x02050000:
14
     sys.stderr.write("ERROR: requires python >= 2.5.0\n")
14
     sys.stderr.write("ERROR: requires python >= 2.5.0\n")
15
     sys.exit(1)
15
     sys.exit(1)
16
+_is_py3 = sys.hexversion >= 0x03000000
16
 
17
 
17
 import os
18
 import os
18
 import re
19
 import re
160
                     out.append(patt.sub(r'\1', markup))
161
                     out.append(patt.sub(r'\1', markup))
161
                     markup = patt.sub(r'\3', markup)
162
                     markup = patt.sub(r'\3', markup)
162
                 else:
163
                 else:
163
-                    # FIXME: utf-8 char broken here
164
+                    # FIXME: utf-8 wchar broken here
164
                     out.append(markup[0])
165
                     out.append(markup[0])
165
                     markup = markup[1:]
166
                     markup = markup[1:]
166
                     count += 1
167
                     count += 1
468
     opts, args = parser.parse_args()
469
     opts, args = parser.parse_args()
469
 
470
 
470
     if len(args) >= 1:
471
     if len(args) >= 1:
471
-        diff_hdl = open(args[0], 'r')
472
+        if _is_py3:
473
+            # Python3 needs the newline='' to keep '\r' (DOS format)
474
+            diff_hdl = open(args[0], mode='rt', newline='')
475
+        else:
476
+            diff_hdl = open(args[0], mode='rt')
472
     elif sys.stdin.isatty():
477
     elif sys.stdin.isatty():
473
         sys.stderr.write('Try --help option for usage\n')
478
         sys.stderr.write('Try --help option for usage\n')
474
         sys.exit(1)
479
         sys.exit(1)
477
 
482
 
478
     # FIXME: can't use generator for now due to current implementation in parser
483
     # FIXME: can't use generator for now due to current implementation in parser
479
     stream = diff_hdl.readlines()
484
     stream = diff_hdl.readlines()
485
+
480
     # Don't let empty diff pass thru
486
     # Don't let empty diff pass thru
481
     if not stream:
487
     if not stream:
482
         sys.exit(0)
488
         sys.exit(0)