rust-lang / rust-lang/rust-bindgen

bindgen-cli generates mixed EOL if rustfmt is configured to use non-native style

Open
#3,242 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
5.3k
Forks
829
Avg merge
1d 1h
Merged PRs (30d)
15

Description

The following script run on Windows will generate file header.rs which has first four lines ending with CRLF and rest ending with LF:

cd %~dp0

echo int foo; > header.h
echo newline_style = "Unix" > fmt.toml

bindgen "header.h" ^
    -o header.rs ^
    --raw-line "pub use std;" ^
    --rustfmt-configuration-file %~dp0\fmt.toml

I assume this is because rustfmt configuration is not applied to raw-line (third line), bindgen own comment (first line) and empty lines separating comment from raw lines and raw lines from the rest of the file.

I also assume that on linux same problem can be reproduced if rustfmt was configured to use CRLF instead.

Bindgen version: 0.72.0.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Run the provided Windows script with bindgen 0.72.0, then inspect the line endings in generated header.rs and the newline_style setting in fmt.toml. Trace how bindgen combines its comment, empty lines, raw-line content, and formatted output; done means the generated file uses the configured EOL style consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.