# language definition for files created with 'diff'

# diff created with -u option
state oldfile = '(?=^[-]{3})' begin
  oldfile start '^[-]{3}'
  oldfile start '^[-]'
  newfile start '^[+]'
  difflines start '^@@'
end

# diff created with -c option
state oldfile = '(?=^[*]{3})' begin
  environment oldfile = '^[*]{3}[[:blank:]]+[[:digit:]]' begin
    normal start '^[[:space:]]'
    newfile = '(?=^[-]{3})' exit
  end
  oldfile start '^[*]{3}'

  environment newfile = '^[-]{3}[[:blank:]]+[[:digit:]]' begin
    normal start '^[[:space:]]'
    newfile = '(?=^[*]{3})' exit
    normal start '^diff' exit
  end
  newfile start '^[-]{3}'
end

# otherwise, created without options
state difflines = '(?=^[[:digit:]])' begin
  difflines start '^[[:digit:]]'
  oldfile start '^[<]'
  newfile start '^[>]'
end
