# Source map ## `src/` module directories | Path | Purpose | Key files | |---|---|---| | `src/command/` | `/command` definition, dispatch, autocompletion. | `cmd_defs.c/h`, `cmd_funcs.c/h`, `cmd_ac.c/h` | | `src/config/` | Persistent configuration: accounts, prefs, themes, colors, CA file, scripts. | `accounts.c/h`, `preferences.c/h`, `theme.c/h`, `color.c/h`, `cafile.c/h`, `scripts.c/h`, `tlscerts.c/h`, `conflists.c/h`, `files.c/h`, `account.c/h` | | `src/event/` | Mediates between XMPP layer and UI/commands. | `client_events.c/h`, `server_events.c/h`, `common.c/h` | | `src/omemo/` | OMEMO encryption (libsignal-protocol). | `omemo.c/h`, `crypto.c/h`, `store.c/h` | | `src/otr/` | OTR encryption (libotr v4). | `otr.c/h`, `otrlib.h`, `otrlibv4.c` | | `src/pgp/` | OpenPGP / OX (gpgme). | `gpg.c/h`, `ox.c/h` | | `src/plugins/` | C and Python plugin support. | `plugins.c/h`, `c_plugins.c/h`, `python_plugins.c/h`, `c_api.c/h`, `python_api.c/h`, `api.c/h`, `profapi.c/h`, `callbacks.c/h`, `autocompleters.c/h`, `disco.c/h`, `settings.c/h`, `themes.c/h` | | `src/tools/` | Generic utilities. | `parser.c/h`, `autocomplete.c/h`, `clipboard.c/h`, `editor.c/h`, `http_*.c/h`, `aesgcm_download.c/h`, `bookmark_ignore.c/h`, `plugin_download.c/h` | | `src/ui/` | Windows, buffers, status bar, input. | `window.c/h`, `window_list.c/h`, `chatwin.c`, `mucwin.c`, `console.c`, `confwin.c`, `privwin.c`, `xmlwin.c`, `vcardwin.c`, `rosterwin.c`, `occupantswin.c`, `inputwin.c/h`, `statusbar.c/h`, `titlebar.c/h`, `tray.c/h`, `screen.c/h`, `notifier.c`, `core.c`, `buffer.c/h`, `ui.h`, `win_types.h` | | `src/xmpp/` | XMPP protocol layer. | `connection.c/h`, `session.c/h`, `roster.c/h`, `roster_list.c/h`, `muc.c/h`, `presence.c/h`, `message.c/h`, `iq.c/h`, `stanza.c/h`, `vcard.c/h`, `vcard_funcs.h`, `jid.c/h`, `capabilities.c/h`, `omemo.c/h`, `ox.c/h`, `blocking.c/h`, `bookmark.c/h`, `chat_session.c/h`, `chat_state.c/h`, `avatar.c/h`, `contact.c/h`, `form.c/h`, `resource.c/h` | ## Top-level files in `src/` | File | Role | |---|---| | `main.c` | Process entry. | | `profanity.c` / `profanity.h` | Application init/shutdown. | | `common.h` / `common.c` | Project-wide macros and small helpers. | | `database.c` / `database.h` | Database facade (SQLite + flatfile). | | `chatlog.c` / `chatlog.h` | Chat log writer/reader. | | `log.c` / `log.h` | Application log. | | `config.h.in` | autoconf-generated config header (do not edit `config.h`). | | `gitversion.h.in` | Generated `gitversion.h` carrying build-time SHA. | ## Naming notes - The fork-rename (Profanity → cproof) is incomplete. Many symbols, file paths, and headers still carry "Profanity" / "prof_" prefixes. Treat them as current and authoritative; do not rename opportunistically. - Encryption modules under `src/omemo/`, `src/otr/`, `src/pgp/` use module- internal helpers; the XMPP-side bridges live in `src/xmpp/omemo.c` and `src/xmpp/ox.c` (separate files with the same names — be precise about path).