#!/usr/bin/python -u ##################################################################### # diff2html # License terms at: ##################################################################### import string, sys diffstart = """ """ diffend = """
""" def printusage() : print """ diff2html - Formats {rcs,cvs,}diff output into HTML Example: rcsdiff -e -rV1 -rV2 -u RCS/file,v | diff2html """ def sanitizeHTMLline(line): # assume input is already wrapped in
 tags
  #for line in data.splitlines():
  if line and line != '':
    line = line.replace('&', '&')
    line = line.replace('\t', '    ')
    line = line.replace('>', '>')
    line = line.replace('<', '<')
    line = line.replace('"', '"')
    line = line.replace('\'', '`')
    line = line.replace('`', '‘')
    line = line.replace('javascript:', 'javascript:')
    line = line.replace('onclick', 'onclick')
  return( line ) 


if ( __name__ == "__main__" ) :
  if (len(sys.argv) > 1):
    printusage()
    sys.exit()
  tdclass = ""
  print(diffstart)
  for line in sys.stdin.readlines():
    if line.startswith('-'):
      tdclass = 'removed'
    elif line.startswith('+'):
      tdclass = 'added'
    elif line[:1].isalnum() or line.startswith('@'):
      tdclass = 'meta'
    else:
      tdclass = 'context'
    print('' + sanitizeHTMLline(line) + '')
  print(diffend)