# Handle line endings automatically for files detected as text
# and leave all files detected as binary untouched.
*               text=auto

#
# The above will handle all files NOT found below
#
# These files are text and should be normalized (Convert crlf => lf)
.gitignore      text
.gitattributes  text
*.md            text

#
# Exclude files from exporting
#

.gitattributes  export-ignore
.gitignore      export-ignore
.github         export-ignore
.travis.yml     export-ignore

# Java sources
*.java          text diff=java

# These files are text and should be normalized (Convert crlf => lf)
*.css           text diff=css
*.df            text
*.htm           text diff=html
*.html          text diff=html
*.js            text
*.jsp           text
*.jspf          text
*.jspx          text
*.properties    text
*.tld           text
*.tag           text
*.tagx          text
*.xml           text
*.dtd           text
*.xsd           text
*.xsl           text

# These files are binary and should be left untouched
# (binary is a macro for -text -diff)
*.jks           binary