# -*- coding: utf-8 -*-
# Enforce consistent line endings for tracked text files.
* text=auto eol=lf

# C/C++ source
*.c text eol=lf
*.h text eol=lf

# Rust
*.rs text eol=lf

# Python
*.py text eol=lf

# Shell scripts
*.sh text eol=lf

# Config and data
*.json text eol=lf
*.toml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
*.xml text eol=lf
*.md text eol=lf
*.txt text eol=lf
*.conf text eol=lf
*.properties text eol=lf
*.in text eol=lf
*.lock text eol=lf

# Makefiles (tabs required)
Makefile text eol=lf

# HTML (most are UTF-8 text; exception is listed below)
*.html text eol=lf
*.htm text eol=lf

# Intentional non-UTF-8 fixture: real ISO-8859-1 bytes for charset transcoding tests
tests/corpus/encoding/latin1.html -text

# Binary formats (do not normalize line endings)
*.br binary
*.gz binary
*.png binary
*.jpg binary
*.ico binary
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary

# Fuzz corpus entries are byte-exact inputs, including files named *.txt.
# Keep this path-specific rule last so it overrides every extension rule above.
components/rust-converter/fuzz/corpus/** binary !eol

# This fixture intentionally preserves indentation-only lines inside <pre>.
tests/corpus/edge-cases/whitespace-heavy.html -whitespace
