out.side-by-side 4.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. commit 15bfa564b9db08fb277a343a3d0a01d377800606
  2. Author: Matthew Wang <XXXXXXX@gmail.com>
  3. Date: Thu Jan 31 15:27:17 2013 +0800
  4. 
  5.  Default width is now 80
  6. 
  7. diff --git a/src/cdiff.py b/src/cdiff.py
  8. index 13f725f..bf15ef1 100755
  9. --- a/src/cdiff.py
  10. +++ b/src/cdiff.py
  11. @@ -128,9 +128,7 @@ class Diff(object):
  12. 128  yield self._markup_common(' ' + old[1]) 128  yield self._markup_common(' ' + old[1])
  13. 129  129 
  14. 130  def markup_side_by_side(self, width): 130  def markup_side_by_side(self, width):
  15. 131  """width of 0 means infinite width, None means auto detect. Returns a 131  """Returns a generator"""
  16. 132  generator  
  17. 133  """  
  18. 134  def _normalize(line): 132  def _normalize(line):
  19. 135  return line.replace('\t', ' ' * 8).replace('\n', '') 133  return line.replace('\t', ' ' * 8).replace('\n', '')
  20. 136  134 
  21. @@ -147,7 +145,8 @@ class Diff(object):
  22. 147  return markup 145  return markup
  23. 148  146 
  24. 149  # Setup line width and number width 147  # Setup line width and number width
  25. 150  if not width: width = 80 148  if width <= 0:
  26.   149  width = 80
  27. 151  (start, offset) = self._hunks[-1].get_old_addr() 150  (start, offset) = self._hunks[-1].get_old_addr()
  28. 152  max1 = start + offset - 1 151  max1 = start + offset - 1
  29. 153  (start, offset) = self._hunks[-1].get_new_addr() 152  (start, offset) = self._hunks[-1].get_new_addr()
  30. @@ -430,13 +429,10 @@ if __name__ == '__main__':
  31. 430  parser = optparse.OptionParser(usage) 429  parser = optparse.OptionParser(usage)
  32. 431  parser.add_option('-s', '--side-by-side', action='store_true', 430  parser.add_option('-s', '--side-by-side', action='store_true',
  33. 432  help=('show in side-by-side mode')) 431  help=('show in side-by-side mode'))
  34. 433  parser.add_option('-w', '--width', type='int', default=None, 432  parser.add_option('-w', '--width', type='int', default=80,
  35. 434  help='set line width (side-by-side mode only)') 433  help='set line width (side-by-side mode only), default is 80')
  36. 435  opts, args = parser.parse_args() 434  opts, args = parser.parse_args()
  37. 436   
  38. 437  if opts.width and opts.width < 0:  
  39. 438  opts.width = 0  
  40. 439  435 
  41. 440  if len(args) >= 1: 436  if len(args) >= 1:
  42. 441  diff_hdl = open(args[0], 'r') 437  diff_hdl = open(args[0], 'r')
  43. 442  elif sys.stdin.isatty(): 438  elif sys.stdin.isatty():