# The line "* text=auto !eol" means the following:
#  For text files (auto-detected), EOLs will be converted on checkout to OS-dependent EOL (LF for Unix, CRLF for Windows).
#  No EOL (end of line) conversion for binary files.
* text=auto !eol

# Note:
#  "text" tells git the file is text.
#  "-text" tells git the file is binary.
#  The only difference between the two is that git will do EOL conversion for text files.
#  "!eol" is the equivalent of "svneol=native".

*.bat text !eol zos-working-tree-encoding=IBM-1047
*.c text !eol zos-working-tree-encoding=UTF-8 diff=cpp
*.cc text !eol zos-working-tree-encoding=UTF-8 diff=cpp
*.classpath text !eol zos-working-tree-encoding=IBM-1047
*.cmd text eol=crlf
*.cpp text !eol zos-working-tree-encoding=UTF-8 diff=cpp
*.css text !eol zos-working-tree-encoding=IBM-1047 diff=css
*.dsp text !eol zos-working-tree-encoding=IBM-1047
*.dsw text !eol zos-working-tree-encoding=IBM-1047
*.dtd text !eol zos-working-tree-encoding=IBM-1047
*.el text !eol zos-working-tree-encoding=IBM-1047
*.filters text !eol zos-working-tree-encoding=IBM-1047
*.h text !eol zos-working-tree-encoding=UTF-8 diff=cpp
*.htm text !eol zos-working-tree-encoding=UTF-8 diff=html
*.html text !eol zos-working-tree-encoding=UTF-8 diff=html
*.in text !eol zos-working-tree-encoding=IBM-1047
*.java text !eol zos-working-tree-encoding=UTF-8 diff=java
*.launch text !eol zos-working-tree-encoding=IBM-1047
*.m4 text !eol zos-working-tree-encoding=IBM-1047
*.mak text !eol zos-working-tree-encoding=IBM-1047
*.md text !eol zos-working-tree-encoding=UTF-8
*.MF text !eol zos-working-tree-encoding=IBM-1047
*.mk text !eol zos-working-tree-encoding=IBM-1047
*.pl text !eol zos-working-tree-encoding=UTF-8 diff=perl
*.pm text !eol zos-working-tree-encoding=IBM-1047 diff=perl
*.project text !eol zos-working-tree-encoding=IBM-1047
*.properties text !eol zos-working-tree-encoding=UTF-8
*.props text !eol zos-working-tree-encoding=IBM-1047
*.py text !eol zos-working-tree-encoding=UTF-8 diff=python
*.rc text !eol zos-working-tree-encoding=IBM-1047
*.sh text eol=lf
*.sed text eol=lf
*.sln text !eol zos-working-tree-encoding=UTF-8
*.stub text !eol zos-working-tree-encoding=IBM-1047
*.targets text !eol zos-working-tree-encoding=UTF-8
*.txt text !eol zos-working-tree-encoding=UTF-8
*.ucm text !eol zos-working-tree-encoding=IBM-1047
*.vcproj text !eol zos-working-tree-encoding=UTF-8
*.vcproj.filters text !eol zos-working-tree-encoding=UTF-8
*.vcxproj text !eol zos-working-tree-encoding=UTF-8
*.vcxproj.filters text !eol zos-working-tree-encoding=UTF-8
*.xml text !eol zos-working-tree-encoding=UTF-8
*.xsl text !eol zos-working-tree-encoding=IBM-1047
*.xslt text !eol zos-working-tree-encoding=IBM-1047
AUTHORS text !eol zos-working-tree-encoding=IBM-1047
BUILD text !eol zos-working-tree-encoding=IBM-1047
COPYING text !eol zos-working-tree-encoding=IBM-1047
Changelog text !eol zos-working-tree-encoding=IBM-1047
LICENSE text !eol zos-working-tree-encoding=IBM-1047
Makefile text !eol zos-working-tree-encoding=IBM-1047
README text !eol zos-working-tree-encoding=UTF-8
SConscript text !eol zos-working-tree-encoding=IBM-1047
SConstruct text !eol zos-working-tree-encoding=IBM-1047
config* text !eol zos-working-tree-encoding=IBM-1047

# Explicitly set the following file types as binary files.
*.bin -text zos-working-tree-encoding=UTF-8
*.brk -text zos-working-tree-encoding=UTF-8
*.cnv -text zos-working-tree-encoding=UTF-8
*.icu -text zos-working-tree-encoding=UTF-8
*.res -text zos-working-tree-encoding=UTF-8
*.nrm -text zos-working-tree-encoding=UTF-8
*.spp -text zos-working-tree-encoding=UTF-8
*.tri2 -text zos-working-tree-encoding=UTF-8
*.otf -text zos-working-tree-encoding=UTF-8
*.utf16be -text zos-working-tree-encoding=UTF-8

# Enable syntax highlighting on GitHub.com
.cpyskip.txt linguist-language=Ignore-List

# Use JSONC for syntax highlighting on GitHub.com
*.json linguist-language=jsonc

#Files below should be IBM-1047 on mainframe, while other txt shall stay UTF-8
icu4c/source/runConfigureICU zos-working-tree-encoding=IBM-1047
icu4c/source/install-sh zos-working-tree-encoding=IBM-1047
icu4c/source/mkinstalldirs zos-working-tree-encoding=IBM-1047
sources.txt zos-working-tree-encoding=IBM-1047
*.sub zos-working-tree-encoding=IBM-1047
icu4c/source/data/mappings/convrtrs.txt zos-working-tree-encoding=IBM-1047
icu4c/source/data/sprep/*.txt text !eol zos-working-tree-encoding=IBM-1047
icu4c/source/data/unidata/NormalizationCorrections.txt text !eol zos-working-tree-encoding=IBM-1047
icu4c/source/data/zone/tzdbNames.txt text !eol zos-working-tree-encoding=IBM-1047
icu4c/source/test/testdata/*.txt text !eol zos-working-tree-encoding=IBM-1047
icu4c/source/test/testdata/filters/*.txt text !eol zos-working-tree-encoding=IBM-1047
icu4c/source/test/testdata/*.ucm text !eol zos-working-tree-encoding=IBM-1047

#simpler to say who should stay UTF-8 from test data
icu4c/source/data/misc/*.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/cintltst/usrchdat.inc text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/Burmese_graphclust_model5_heavy.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/Burmese_graphclust_model5_heavy_Test.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/ConverterSelectorTestUTF8.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/IdnaTestV2.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/NumberFormatTestCases.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/Thai_codepoints_exclusive_model5_heavy.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/Thai_codepoints_exclusive_model5_heavy_Test.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/Thai_graphclust_model4_heavy.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/Thai_graphclust_model4_heavy_Test.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/casing.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/collationtest.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/dcfmtest.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/emoji-test.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/format.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/idna_conf.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/metaZones.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/numberformattestspecification.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/numberpermutationtest.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/rbbitst.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/regextst.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/riwords.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/te_IN.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/timezoneTypes.txt text !eol zos-working-tree-encoding=UTF-8
icu4c/source/test/testdata/windowsZones.txt text !eol zos-working-tree-encoding=UTF-8