Skip to main content

zsh/ported/
mod.rs

1//! Ported subsystems — every submodule here is a faithful 1:1 port of
2//! a corresponding upstream zsh C source file under `src/zsh/Src/`.
3//!
4//! Companion / opposite of `src/extensions/`. See `docs/PORT.md` for the
5//! full ruleset. `tests/port_purity.rs` enforces:
6//!   - Every `.rs` file under this directory has a matching `.c` file
7//!     under `src/zsh/Src/` (byte-for-byte identical stem).
8//!   - Every top-level `fn` carries a doc comment matching the PORT.md
9//!     template: `/// Port of NAME() from Src/STEM.c:NNNN`.
10//!   - No file may carry the `WARNING: THIS IS ADHOC IMPLEMENTATION`
11//!     marker.
12//!
13//! The crate root re-exports every submodule (`pub use ported::*;` in
14//! `src/lib.rs`) so historical call sites that reference
15//! `crate::exec::`, `crate::subst::`, `crate::zle::`, etc. continue
16//! to resolve unchanged.
17
18pub mod compat;
19pub mod cond;
20pub mod context;
21// `exec` was moved to crate root (src/exec.rs) — it isn't a port of
22// Src/exec.c (zshrs replaced the tree-walking interpreter with the
23// fusevm bytecode VM). Keep `crate::ported::exec` as a path alias so
24// the many existing `crate::ported::exec::*` call-sites still work.
25pub use crate::exec;
26pub mod glob;
27pub mod hashnameddir;
28pub mod hashtable;
29pub mod hashtable_h;
30pub mod hist;
31pub mod init;
32pub mod input;
33pub mod jobs;
34pub mod linklist;
35pub mod r#loop;
36pub mod math;
37pub mod mem;
38pub mod modentry;
39pub mod module;
40pub mod modules;
41pub mod openssh_bsd_setres_id;
42pub mod options;
43pub mod params;
44pub mod pattern;
45pub mod prompt;
46pub mod signals;
47pub mod sort;
48pub mod string;
49pub mod subst;
50pub mod text;
51pub mod utils;
52
53pub mod builtin;
54pub mod builtins;
55pub mod zle;
56pub mod zsh_h;
57pub mod zsh_system_h;
58pub mod ztype_h;
59mod prototypes_h;
60pub mod patchlevel;
61pub mod signals_h;
62pub mod config_h;
63pub mod lex;
64pub mod parse;