# std.c reorganization · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/e8c4e79499fbb2a83a0f4fe2cac0d80e5d12a07e)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: e8c4e79499fbb2a83a0f4fe2cac0d80e5d12a07e

Requested commit: e8c4e79499fbb2a83a0f4fe2cac0d80e5d12a07e

Commit: e8c4e79499fbb2a83a0f4fe2cac0d80e5d12a07e

Tree: fa8018ad4597f8f51ce760c34822ad50e9a7157c

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
std.c reorganization

It is now composed of these main sections:
* Declarations that are shared among all operating systems.
* Declarations that have the same name, but different type signatures
  depending on the operating system. Often multiple operating systems
  share the same type signatures however.
* Declarations that are specific to a single operating system.
  - These are imported one per line so you can see where they come from,
    protected by a comptime block to prevent accessing the wrong one.

Closes #19352 by changing the convention to making types `void` and
functions `{}`, so that it becomes possible to update `@hasDecl` sites
to use `@TypeOf(f) != void` or `T != void`. Happily, this ended up
removing some duplicate logic and update some bitrotted feature
detection checks.

A handful of types have been modified to gain namespacing and type
safety. This is a breaking change.

Oh, and the last usage of `usingnamespace` site is eliminated.

```

## Parents

- [16604a93b9159fafec3528457366ca146bf29ce5](https://git.cafe/gitcafe/zig/commit/16604a93b9159fafec3528457366ca146bf29ce5?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/e8c4e79499fbb2a83a0f4fe2cac0d80e5d12a07e?format=markdown)
