50 Commits

Author SHA1 Message Date
72f4f186da merge: sync upstream profanity-im/profanity
All checks were successful
CI Code / Check spelling (push) Successful in 18s
CI Code / Check coding style (push) Successful in 34s
CI Code / Code Coverage (push) Successful in 2m36s
CI Code / Linux (debian) (push) Successful in 4m41s
CI Code / Linux (ubuntu) (push) Successful in 4m52s
CI Code / Linux (arch) (push) Successful in 5m40s
Sync with upstream profanity-im/profanity.

Major upstream changes incorporated:

Memory management
  - Replace malloc+memset with g_new0 throughout codebase
  - Adopt auto_gchar / auto_gcharv / auto_gerror / auto_jid cleanup macros
  - Replace free() with g_free() for GAlloc'd memory

Editor rewrite
  - Remove pthread-based async editor; use GChildWatch callback API
  - New launch_editor(initial_content, callback, user_data) interface
  - Proper signal handling (SIGINT, SIGTSTP, SIGPIPE reset in child)
  - ui_suspend()/ui_resume() integration for TTY management

OMEMO improvements
  - Dual backend support: libsignal-protocol-c and libomemo-c
  - Proper pre-key removal after use (XEP-0384 compliance)
  - Automatic pre-key regeneration when store drops below threshold
  - New functions: omemo_is_device_active(), omemo_is_jid_trusted()
  - omemo_get_jid_untrusted_fingerprints() for better error messages
  - Fingerprint notifications on new device identity discovery
  - Deterministic pre-key ID generation tracking max_pre_key_id
  - omemo_trust_changed() UI updates on trust state changes

JID validation
  - RFC 6122-compliant validation in jid_is_valid()
  - Character-level checks (RFC 6122 forbidden chars: & ' / : < > @)
  - Length limits: 1023 per component, 3071 total
  - New jid_is_valid_user_jid() for user vs. service JID distinction

Database
  - Schema migration v3: UNIQUE constraint on archive_id for deduplication
  - Triggers for corrected message tracking (replaces_db_id / replaced_by_db_id)
  - db_history_result_t return type, _truncate_datetime_suffix()

UI / console
  - win_warn_needed() / win_warn_sent() warning deduplication hash table
  - PAD_MIN_HEIGHT dynamic pad sizing with PAD_THRESHOLD auto-cleanup
  - Spellcheck integration in input field with Unicode word detection
  - cons_spellcheck_setting() for /settings ui output
  - /[command]? shortcut for command help

Account config
  - Account name sanitization for GKeyFile special chars ([ ] = # \n \r)
  - Replace popen() with g_spawn_sync() for eval_password
  - TLS policy: add "direct" option alongside legacy

Connection
  - Port validation with g_assert (0–65535)
  - SHA-256 certificate fingerprint support (XMPP_CERT_PUBKEY_FINGERPRINT_SHA256)
  - "direct" TLS policy alias for legacy SSL

Common utilities
  - str_xml_sanitize() for XML 1.0 illegal character removal
  - string_matches_one_of() with formatted error messages
  - valid_tls_policy_option() helper
  - prof_date_time_format_iso8601() utility
  - Improved strip_arg_quotes() with backslash unescaping
  - prof_occurrences() uses g_slist_prepend + reverse for performance

PGP / OX
  - Proper GPGME resource cleanup with goto-cleanup pattern
  - g_string_free(xmppuri) leak fix in _ox_key_lookup

CSV export
  - Use GString + g_file_set_contents instead of raw write() syscalls

Tests
  - Restructured into subdirectories: command/, config/, xmpp/, ui/, omemo/, otr/, pgp/
  - New test_cmd_ac.c for autocompleter unit tests
  - Updated stubs for new UI suspend/resume functions

License headers
  - Migrate to SPDX-3.0 identifiers (GPL-3.0-or-later WITH OpenSSL-exception)

────────────────────────────────────────────────────
cproof-specific preservations:

  - XEP-0308 LMC: replace_id ?: id logic in message/stanza/omemo
  - Force encryption: cmd_force_encryption, test_forced_encryption
  - CWE-134: format string protection (cons_show("%s", ...))
  - y_start_pos-based paging in window.c
  - db_history_result_t return type, _truncate_datetime_suffix()

Merge-time fixes:

  - common.c: format-security (-Werror) — cons_show(errmsg) → cons_show("%s", errmsg)
  - database.c: null-deref guard — !msg->timestamp → msg && !msg->timestamp
  - console.c: implicit size_t → int cast — (int)(maxlen + 1)
  - tlscerts.c: %d for size_t — %zu

Build system:
  - Kept autotools (Makefile.am, configure.ac); upstream uses Meson
  - Restored deleted files: bootstrap.sh, autogen.sh, ax_valgrind_check.m4, configure-debug
  - Updated Makefile.am test paths for subdirectory structure
  - Added test_cmd_ac, test_forced_encryption to test sources

Functional tests:
  - Use cproof version; upstream requires stbbr_for_xmlns from updated stabber
  - Not yet available in devs/stabber fork

Closes #64

Merge author: jabber.developer2
Commits authors:
 Michael Vetter <jubalh@iodoru.org>
& Steffen Jaeckel <s@jaeckel.eu>
2026-05-26 17:48:14 +00:00
Michael Vetter
fcd69532ad Make 'scrolled' themeable 2020-05-21 09:16:18 +02:00
Michael Vetter
85520ecdc5 Remove unanimous MAM display
For some time users could choose to have the old way "unanimous" where
all the MUC history is just grey (or whatever was set). Now it is always
just displayed like regular new incoming MUC text.
2020-04-25 17:19:02 +02:00
Michael Vetter
4b56fe6c57 Add history.muc.color to theme template 2020-03-25 15:45:23 +01:00
Michael Vetter
6dbbbe11e5 Make trackbar color configurable
Use `main.trackbar` in themes.
2020-02-21 19:12:16 +01:00
Michael Vetter
3c1db1cd32 xep-0308: make correction.char themeable 2020-02-10 14:58:22 +01:00
Michael Vetter
5c53e02d86 Add option to hilight unread rooms in /wins command
In the theme we can now set `cmd.wins.unread` to hvae a special color
for the lines of the `/wins` output that have unread messages.

Fix https://github.com/profanity-im/profanity/issues/895
2019-10-12 13:03:14 +02:00
Michael Vetter
d9fb5a896a Add statusbar.current to template 2019-09-29 15:31:24 +02:00
Michael Vetter
aa0f497975 Allow colorization of history messages
History was always printed with `THEME_DEFAULT` we now use
`THEME_TEXT_HISTORY` which is accesible in theme files via
`main.text.history`.

Fix https://github.com/profanity-im/profanity/issues/1170
2019-09-10 11:22:30 +02:00
Paul Fariello
9482ce6168 Set foreground color for untrusted messages 2019-06-20 14:30:45 +02:00
Michael Vetter
84ccee2093 Add omemo.char to themes 2019-06-05 11:01:58 +02:00
Michael Vetter
fcf4d14374 Document statusbar.time theme feature
Users where under the impression that you can't colour the time displayed
in the statusbar.
Let's add it to the template, and also change all themes to use the same
colour for the time as for the statusbar text.
2019-06-05 10:40:03 +02:00
Michael Vetter
f082563bf2 Add occupants char
`/occupants char` now sets a character that is displayed before the nick
in MUCs. Similar like `/roster char` is displaying a char for the roster.

Regards #690
2019-05-02 17:01:55 +02:00
Michael Vetter
01e13f98fd Add occupants.wrap to theme template 2019-04-24 10:50:01 +02:00
Michael Vetter
566022786d Add occupants header char
`/occupants header char` now sets a character that is displayed before
the role (moderator, visitor..) in a room. Similar to `/roster header
char` is displaying a char for the roster.

Regards https://github.com/boothj5/profanity/issues/690
2019-04-23 14:13:03 +02:00
Michael Vetter
295cb0daa7 Add occupants.indent to theme_template 2019-04-20 20:35:45 +02:00
Paul Fariello
a952776b89 Rename mucconf wins into conf wins
Configuration windows are now being used by both muc and cmd.
2018-09-05 13:51:00 +02:00
James Booth
0aa758cbfb Add /inputwin top|bottom command
closes #853
2016-09-19 23:40:45 +01:00
James Booth
1a3dc91e11 Highlight room trigger terms 2016-02-13 22:46:25 +00:00
James Booth
2f82f50a35 Added roommention.term theme option 2016-02-10 23:03:23 +00:00
James Booth
71679a3159 Added mention and trigger themes for console 2016-02-10 21:38:28 +00:00
James Booth
abc2f0de39 Added /roster show|hide unsubscribed 2016-02-07 00:49:48 +00:00
James Booth
bab75cae15 Implemented /console private setting 2016-02-03 23:39:20 +00:00
James Booth
72c1c49695 Added console.chat preference 2016-02-03 23:02:52 +00:00
James Booth
f91b21a1d6 Allow splitting roster rooms by conference server 2016-02-01 01:11:01 +00:00
James Booth
a00095c8a9 Added roster.rooms.private.char setting 2016-01-31 20:17:20 +00:00
James Booth
0ae975c27f Added themes for roster room mention and triggers
closes #718
2016-01-25 00:19:26 +00:00
James Booth
86c1c38892 Updated themes 2016-01-24 17:46:15 +00:00
James Booth
2bda22c3d6 Updated themes 2016-01-24 02:44:46 +00:00
James Booth
5bccee93cc Added /roster show|hide contacts 2016-01-20 01:48:41 +00:00
James Booth
cce01f1d75 Added /roster unread preferrence
closes #712
2016-01-17 02:17:12 +00:00
James Booth
fbc302317a Added roster contact themes 2016-01-14 22:54:50 +00:00
James Booth
97d9674615 Updated themes 2016-01-09 22:31:24 +00:00
James Booth
cd2458c019 Added roster room themes 2016-01-09 21:37:59 +00:00
James Booth
fb7001cffb Added console muc message setting to themes 2015-12-30 00:48:37 +00:00
James Booth
216493ef07 Tidied roster commands 2015-11-22 17:45:38 +00:00
James Booth
c4e8af0b6d Added /roster char resource 2015-11-22 02:04:59 +00:00
James Booth
3bc9275079 Added word wrap to roster panel 2015-11-22 01:39:20 +00:00
James Booth
b4482b9fe1 Updated themes 2015-11-22 00:48:18 +00:00
James Booth
16fbdedceb Added /roster char contact 2015-11-20 00:06:46 +00:00
James Booth
316b6a7b8b Added /roster char header 2015-11-19 23:21:51 +00:00
James Booth
09cd288186 Updated theme template, changed default lastactivity format 2015-09-30 23:22:39 +01:00
James Booth
35239ee319 Added otr and pgp char to themes 2015-08-26 01:36:41 +01:00
James Booth
3000916ad9 Added roster.empty to themes 2015-08-20 21:26:16 +01:00
James Booth
1900402ff9 Updated themes time display settings 2015-07-01 20:24:31 +01:00
James Booth
446027b950 Moved setting otr.warn -> enc.warn 2015-06-21 21:07:57 +01:00
James Booth
f0f3a739f4 Merge remote-tracking branch 'PMaynard/#551' 2015-06-02 20:29:35 +01:00
James Booth
57dc5f14ef Added option to show jids in occupants panel 2015-04-12 02:14:37 +01:00
James Booth
b21edfaa51 Added receipt.sent theme setting 2015-03-15 19:35:25 +00:00
James Booth
30b5f112fd Updated themes for release 2015-02-26 23:23:15 +00:00