72f4f186da
merge: sync upstream profanity-im/profanity
...
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