Commit Graph

38 Commits

Author SHA1 Message Date
a5fe32b245 Merge remote-tracking branch 'upstream/master' into merge/upstream-full
# Conflicts:
#	CONTRIBUTING.md
#	src/profanity.c
#	src/tools/editor.c
2026-04-18 12:26:52 +03:00
Michael Vetter
dd76f9087f fix: resolve issues with async editor
If we build Profanity without GTK we dont iterate the context so we will
never know when the editor exited. Calling `g_main_context_iteration()`
or finally switching to GMainLoop fixes this.
So far calling `tray_update()` does this for us in GTK builds.
So this went unnoticed.

The editor will inherit ignored signal handlers (SIGINT, SIGTSTP, SIGPIPE)
from us. Neovim uses libuv which seems to check SIGINT on startup to
determine whether the environment is interactive or not.
We now reset these signals to SIG_DFL in the child process before execvp.

Profanity uses readline which still competed for terminal input with the
editor. We only took care about other Profanity UI processes in our
previous commit. This led to misordered characters in the editor.

In my tests with vim everything worked fine and these bugs were
discovered when a user used neovim.

Fixes: https://github.com/profanity-im/profanity/issues/2148
Ref: 36ec2b0ae1
Signed-off-by: Michael Vetter <jubalh@iodoru.org>
2026-04-11 23:45:36 +02:00
4319172758 Merge upstream/master into merge/upstream-full
Merge profanity-im/profanity master (373 commits) into cproof fork.

Source changes (manual merge):
- src/command/: cmd_defs, cmd_funcs, cmd_ac — upstream g_new0, auto_gchar,
  launch_editor callback; keep our XEP-0308 LMC, force-encryption, CWE-134
- src/config/: preferences, tlscerts, account — upstream UNIQUE dedup,
  dynamic pad capacity; keep our db_history_result_t, scroll logic
- src/database.*: upstream g_new0 memory mgmt; keep our return types,
  add null-check fix for msg->timestamp
- src/omemo/, src/pgp/: upstream _gpgme_key_get_email, g_new0;
  keep our replace_id in omemo_on_message_send
- src/tools/: editor, http_upload, bookmark_ignore — upstream launch_editor
  callback API
- src/ui/: console, window, chatwin, mucwin, inputwin, buffer —
  upstream win_warn_needed/sent dedup, PAD_MIN_HEIGHT dynamic pads;
  keep our y_start_pos scroll, _truncate_datetime_suffix
- src/xmpp/: message, stanza, presence, roster_list, iq, session —
  upstream connection_get_available_resources; keep our LMC stanza logic
- src/common.c: fix format-security (cons_show)

Build system:
- Makefile.am: updated test paths to subdirectory structure, added
  test_cmd_ac, test_forced_encryption
- Restored autotools files deleted by upstream meson migration:
  bootstrap.sh, autogen.sh, m4/ax_valgrind_check.m4, configure-debug

Tests:
- Unit tests: upstream unittests.c base + our forced_encryption tests
  (482 passed, 0 failed across all 4 configurations)
- Functional tests: kept our version (93 passed, 0 failed)
  upstream version requires stbbr_for_xmlns not yet in our stabber fork
- Updated test stubs: stub_xmpp.c, stub_omemo.c from upstream

Compile fixes:
- src/common.c: cons_show(errmsg) -> cons_show("%s", errmsg)
- src/database.c: null-check before msg->timestamp access
- src/ui/console.c: size_t -> (int) cast for format width
- src/config/tlscerts.c: %d -> %zu for size_t
2026-04-11 13:44:50 +03:00
Michael Vetter
798edce22a chore: Move to SPDX license header 2026-03-09 12:55:37 +01:00
442bfb6ce1 feat: Add /force-encryption command and update message handling
Implement /force-encryption command to configure forced encryption
settings with on|off and policy resend-to-confirm|block options.

The changes enhance user experience by clarifying encryption requirements
and providing actionable commands. Users can now press Enter again to
confirm unencrypted messages in resend-to-confirm mode.
2025-08-25 21:11:27 +02:00
Michael Vetter
88b26cfdb9 Undo gmainloop related changes
Revert "Merge pull request #1943 from H3rnand3zzz/gmainloop

This reverts commit 609fde0998, reversing
changes made to 2ec94064ed.

Revert "Merge pull request #1948 from H3rnand3zzz/fix/rl-less-refreshes"

This reverts commit 11762fd2b0, reversing
changes made to 609fde0998.

We have got several issues, that we don't quite see how to solve, with
the merge of the gmainloop PR.

* Slashguard is broken (#1955) (though #1956 could fix that)
* One person reported problems with copy paste selection via mouse
* Some input buffer seems not to be cleared correctly
  It happened that I was debugging profanity used `/connect` and typed
  the password. I then debugged so long that a time out occurred, so
  profanity disconnected. Then it printed "unknown command: $password".

There was something else that I forgot now.

Bottomline is: so far we didn't get it right so we will undo these
changes until someone proposes a working solution.

We got a slight performance increase (apparently noticable when
alt+mouse scrolling) but got too many issues with this change.
2024-02-19 17:41:06 +01:00
Rodrigo Arias
7eac636fc8 Implement keyboard input using GIOChannel 2023-12-28 18:09:50 +01:00
Michael Vetter
46fd7150e5 Add vim modeline 2019-11-13 12:11:05 +01:00
Michael Vetter
706af9a900 Update copyright to include 2019 2019-01-22 11:31:45 +01:00
James Booth
250e972b7a Update copyright 2018-01-21 15:00:02 +00:00
James Booth
68a3daedb9 Update Copyright 2017-01-28 17:24:22 +00:00
James Booth
e8fc80f5c1 Update GPL link in headers 2016-07-24 01:14:49 +01:00
James Booth
e53e94f1e2 Updated copyright 2016-02-14 22:54:46 +00:00
James Booth
d6e4b74802 Removed ui_input_nonblocking() 2015-11-01 18:56:34 +00:00
James Booth
4fa2efc7ca Removed inp_win_clear() 2015-11-01 18:45:57 +00:00
James Booth
4c42ce9701 Removed ui_readline() 2015-11-01 18:38:21 +00:00
James Booth
2ce43b633f Applied coding style to src/ui/ 2015-10-25 23:31:11 +00:00
James Booth
9414ad268d Prompt user to allow or deny untrusted TLS certificates 2015-09-22 21:42:05 +01:00
James Booth
b24510c776 Merge branch 'master' into readline
Conflicts:
	src/tools/history.c
	src/tools/history.h
2015-02-11 00:09:58 +00:00
James Booth
b3be26a214 Updated copyright 2015-02-10 23:16:09 +00:00
James Booth
2e83d23873 Removed unused function 2015-02-06 00:20:06 +00:00
James Booth
a70aa0255f Moved command processing to main loop, allow resize during password prompt 2015-02-05 00:58:23 +00:00
James Booth
d64c4a69d7 Removed unused functions from inputwin.c 2015-02-04 22:22:18 +00:00
James Booth
b3448eb265 Moved input blocking code to inputwin.c 2015-01-31 01:11:41 +00:00
James Booth
83bd207316 Moved readline code to inputwin.c 2015-01-30 23:28:02 +00:00
James Booth
2cdbfc7eb7 Added gnu readline 2015-01-27 22:13:09 +00:00
James Booth
2ed78fe5af Extracted keyhandler for printable characters 2015-01-20 00:09:47 +00:00
James Booth
0e8092afef Inlined static functions in inputwin 2015-01-19 20:51:41 +00:00
James Booth
4c6cfcdca0 Simplified autocompleters and command history 2015-01-16 22:50:40 +00:00
James Booth
f0ffc31cd6 Renamed inp_get_char->inp_read 2015-01-15 23:46:54 +00:00
James Booth
51105720ab Moved input line to inputwin 2015-01-15 23:43:22 +00:00
James Booth
65fc4bcd9f Pass pointers to inp_get_char 2015-01-15 23:29:48 +00:00
James Booth
ad896ef201 Moved input size to inputwin 2015-01-15 22:51:05 +00:00
Simon Effenberg
c7ff3255b8 trying to block (and save cpu power) more dynamically
instead of blocking too long if inpblock is set to something like
500ms the input timeout is not set directly to inpblock but is
increasing dynamically from 0 to inpblock by a little algorithm

FIXME: the call from the win_* method to the ui_input_* method looks
wrong.. this causes a cross reference which shouldn't be
2015-01-12 08:08:07 +01:00
James Booth
076576178c Update input window on /theme set 2014-11-19 16:32:26 +00:00
James Booth
b8ba9b038c Added scroll support to occupant list 2014-10-07 21:12:19 +01:00
James Booth
f9737251a6 Added license exemption for OpenSSL to source headers 2014-08-24 20:57:39 +01:00
James Booth
9aa282f6de Removed inputwin functions from ui.h 2014-04-07 21:50:28 +01:00