X-Git-Url: http://git.droids-corp.org/?p=diff2html.git;a=blobdiff_plain;f=diff2html.py;h=337667faadfec6247fb4e14b4736cc3867e8b73a;hp=9c0af692fad2be6d5d1432bc62ca32284b93ad70;hb=dd0649dbd5ba5463535a8a2cb4c2335a78e4fec6;hpb=5b5fb01ad7b4502e171d2216ffd21dde1f42271c
diff --git a/diff2html.py b/diff2html.py
index 9c0af69..337667f 100644
--- a/diff2html.py
+++ b/diff2html.py
@@ -20,6 +20,7 @@
#
# Authors: Olivier MATZ
# Alan De Smet
+# Sergey Satskiy
#
# Inspired by diff2html.rb from Dave Burt
# (mainly for html theme)
@@ -32,7 +33,7 @@
# and display those directly.
-import sys, re, htmlentitydefs, getopt
+import sys, re, htmlentitydefs, getopt, StringIO
# minimum line size, we add a zero-sized breakable space every
# LINESIZE characters
@@ -164,7 +165,6 @@ def linediff(s, t):
def convert(s, linesize=0, ponct=0):
i = 0
t = ""
- l=[]
for c in s:
# used by diffs
if c == DIFFON:
@@ -309,10 +309,12 @@ def parse_input(input_file, output_file,
if m:
empty_buffer(output_file)
file1 = m.groups()[0]
- l = input_file.readline()
- m = re.match('^\+\+\+ ([^\s]*)', l)
- if m:
- file2 = m.groups()[0]
+ while True:
+ l = input_file.readline()
+ m = re.match('^\+\+\+ ([^\s]*)', l)
+ if m:
+ file2 = m.groups()[0]
+ break
add_filename(file1, file2, output_file)
hunk_off1, hunk_size1, hunk_off2, hunk_size2 = 0, 0, 0, 0
continue
@@ -396,7 +398,6 @@ def main():
print str(err) # will print something like "option -a not recognized"
usage()
sys.exit(2)
- output = None
verbose = False
for o, a in opts:
if o in ("-h", "--help"):
@@ -421,6 +422,11 @@ def main():
parse_input(input_file, output_file,
exclude_headers, show_hunk_infos)
+def parse_from_memory(txt, exclude_headers, show_hunk_infos):
+ " Parses diff from memory and returns a string with html "
+ stream = StringIO.StringIO(txt)
+ parse_input(stream, stream, exclude_headers, show_hunk_infos)
+ return stream.buf
if __name__ == "__main__":
main()