about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* fix "window `NULL` issue" (hopefully)Steffen Jaeckel2023-05-101-1/+1
| | | | | | | | | | | | | | | | | | | There were multiple reports where after a reconnect the window of the MUC that was last opened, was empty. `muc_join()` creates an instance of a MUC, `presence_join_room()` works with this instance. Therefore the instance has to exist before working on it. I'm not sure if this really fixes the issue, but at least it didn't happen anymore after I applied this modification. I can't remember how I stumbled over this, either while looking at debug logs or while looking at Valgrind output while a reconnect happened, but something went wrong. Then I came to the conclusion that this may fix the issue and for now it did ... maybe it comes back, then my RCA was wrong. Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
* Add ability to disable avatar publishingIsaacM882023-05-027-20/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add "/avatar disable" to comply with point "3.5 Publisher Disables Avatar Publishing" in XEP-0084. src/command/cmd_defs.c:2416 Add "disable" argument. Reword the "/avatar" command description so it flows better. src/command/cmd_ac.c:1101 Add "disable" to the "/avatar" autocomplete dictionary. src/command/cmd_funcs.c:9277 Split "/avatar" commands into two groups with an if statement; those with a parameter and those without. "cons_bad_cmd_usage()" is in both groups, which is messy. "disable" has similar logic to "set", but it includes a failure message. src/xmpp/avatar.c:152 "avatar_publishing_disable()" uses the same logic to publish metadata as in "avatar_set()". src/xmpp/avatar.c:238 Add a message to inform users when they do not receive an avatar after using "/avatar get" and "/avatar open". In case of a failure, the user will be subscribed to future avatar updates as long as they continue to use their current instance of profanity. Adding "caps_remove_feature()" after "cons_show()" will unsubscribe the user from avatar updates and prevent the user from downloading an avatar unexpectedly hours later without issuing an "/avatar" command. src/xmpp/stanza.c:2698 The new "disable" function follows the same logic as "stanza_create_avatar_metadata_publish_iq()".
* Merge pull request #1838 from H3rnand3zzz/fix/omemo-trust-notificationMichael Vetter2023-04-191-3/+3
|\ | | | | Improve OMEMO messages
| * Improve OMEMO messagesJohn Hernandez2023-04-191-3/+3
| |
* | Merge pull request #1840 from H3rnand3zzz/fix/plugins-unloadMichael Vetter2023-04-191-31/+22
|\ \ | | | | | | Fix `/plugins update`
| * | Fix `/plugins update`John Hernandez2023-04-191-31/+22
| |/ | | | | | | | | | | | | | | | | | | | | Before it tried to unload the plugin first and check the output. But if broken plugin was loaded, then it couldn't unload it, so before it require uninstall and install after it, making update useless for plugin development purposes. Unload is part of the uninstall so no unload is needed inside of the cmd function. Refactoring of cmd_plugins_update.
* | Fix memleak in _inp_rl_linehandlerMichael Vetter2023-04-181-0/+1
| | | | | | | | Introduced in 59b99fece.
* | Fix memleak in stanza_create_caps_query_elementMichael Vetter2023-04-181-0/+3
|/ | | | Got introduced with 5d3c8ce7c.
* Add logging consistencyJohn Hernandez2023-04-181-1/+2
| | | | | | | Since MUC private messages are not logged by design, part where this logging happening is removed to add consistency. Add explanation in comment.
* Fix `/log level` crashJohn Hernandez2023-04-181-18/+10
| | | | | | Fix crash caused by `/log level` command. Minor refactoring of command function.
* Merge pull request #1827 from H3rnand3zzz/feature/sessions-alarmMichael Vetter2023-04-1811-6/+153
|\ | | | | New Feature: Session Alarm
| * Add sessions_alarmJohn Hernandez2023-04-1811-6/+153
| | | | | | | | | | | | | | | | | | Introduce new feature: sessions_alarm. Added new account setting: max_connections. On exceeding this number, user will get an alert. If number is less than 1, no alert will happen. Tests altered to fit new feature.
* | Don't add the same command twice to historyJohn Hernandez2023-04-171-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Expected behaviour When you type /command /command it should be just 1 entry in the history. Behaviour All the entries were saved. Behaviour is changed by introducing check. Before adding to history, entry now is compared to the last history entry.
* | Format code with clang-format 16Michael Vetter2023-04-144-134/+137
|/
* Merge pull request #1823 from H3rnand3zzz/fix/msg-crashMichael Vetter2023-04-142-7/+8
|\ | | | | Fix memory corruption crash
| * Cleanup p_ox_gpg_decryptJohn Hernandez2023-04-131-4/+6
| | | | | | | | | | | | In OX implementation gpgme's buffer remains untouched, thus not leading to the crash. But code can be shorter and more concise.
| * Fix memory corruption crashJohn Hernandez2023-04-131-3/+2
| | | | | | | | | | | | | | Under certain circumstances setting plain_str[len] to 0 might lead to crash and it does not follow the best practices as well. This change allows better handling of buffer copying and prevents crash.
* | Add nickname support for /roster removeJohn Hernandez2023-04-133-7/+10
|/ | | | | | Add support of name/nickname instead of only JID for `/roster remove` command. Add tests for it as well.
* iq: initialize os and os_txtMichael Vetter2023-04-111-2/+2
| | | | | | | | | | | | Let's set this to NULL. Someone was using `picaur` and got an error about potential uninitialization. Even though the code is fine let's set this to NULL to make the compiler happy. The strange thing was that building manually on the same system worked. Related to 2e43b0ae62478bede34f6f52f73d22d671425f85.
* Merge pull request #1822 from H3rnand3zzz/fix/iq-osMichael Vetter2023-04-111-3/+2
|\ | | | | Hotfix stanza release
| * Fix releases of os and os_txt stanzasJohn Hernandez2023-04-101-3/+2
| | | | | | | | | | | | | | | | | | | | If custom client is not set and include_os is true, stanzas might be released without initializiting. This commit fixes it by introducing an additional check on usage of custom client. Related to commit e52ca2fbaa02acec3b2b757369ef5740e7a103da
* | Add limitation info about /statusbar chat user|jidMichael Vetter2023-04-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While testing https://github.com/profanity-im/profanity/pull/1817 we found that: ``` /statusbar show name (I have this off by default /msg someone where I chose someone in my roster that has a nick assigned /statusbar chat jid ``` Will only take effect upon creation or redraw of that tab. Reason is that we do this in create_tab to limit building this dynamically. Let's leave it like it is but add a note to users. Not worth build that string all the time.
* | Fixes Statusbar tabs and CleanupJohn Hernandez2023-04-102-15/+39
| | | | | | | | | | | | | | | | | | | | - Fixes statusbar tabs. Bug: Statusbar used nickname if it was set in roster, irrelevant to /statusbar chat setting. Expected behaviour would be using this setting set as "user" to show nickname, and to show jid with "jid" setting. Other solution is to give a user control over it with another settings. - _status_bar_draw_maintext cleaned up, no changes to behaviour
* | Improve titlebar flexibilityJohn Hernandez2023-04-102-11/+19
|/ | | | | | | Before this change, only nickname or JID (if no nickname set) is shown in the titlebar. Change allows to alter nickname/JID preference using already implemented /titlebar show jid|name setting. If both are set to "show", then it is displayed in "nickname <JID>" format.
* Rewrite description for clientidMichael Vetter2023-04-091-1/+1
|
* Merge pull request #1815 from H3rnand3zzz/feature/the-client-switcherMichael Vetter2023-04-0910-68/+125
|\ | | | | Feature: Allow setting client identification name/version manually
| * Allow setting client identification name/version manuallyJohn Hernandez2023-04-0910-68/+125
| | | | | | | | | | | | | | | | Add changes allowing user to switch client name and version. Useful for enhancing user privacy. Minor cleanup.
* | User proper ellipsis charMartin Dosch2023-04-0910-28/+28
| | | | | | | | | | | | | | As stated in https://github.com/profanity-im/profanity/pull/1820#issuecomment-1498083383 profanity uses "..." (three dots) in a lot of places instead the proper ellipsis char "…".
* | add `/statusbar tabmode actlist`Steffen Jaeckel2023-04-087-46/+135
| | | | | | | | | | | | | | | | | | | | The existing way how active tabs are displayed didn't allow showing more than 10 tabs. This patch adds a mode where the statusbar shows a comma-separated list of tabs which were active since the last time viewed. This view is inspired by how `irssi` shows the active tabs, therefore it is also called `actlist`. Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
* | fix display of a "list type" in a form if there's no value assigned yetSteffen Jaeckel2023-04-041-27/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is possible, that a server sends a form with a field as follows, which has no (default) value assigned. ``` <field label="foo" type="list-single" var="bar"> <option label="a"><value>a</value></option> <option label="b"><value>b</value></option> <option label="c"><value>c</value></option> </field> ``` This patch fixes profanity to show that list. Before this patch profanity showed nothing. I stumbled over this while running the `/room config` command inside a newly created muc on the `sure.im` XMPP server. Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
* | refactor into array of a `struct`Steffen Jaeckel2023-04-041-5/+15
| | | | | | | | | | | | ...instead of having two separate arrays. Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
* | only create hashtable onceSteffen Jaeckel2023-04-041-72/+74
| | | | | | | | | | | | | | Before this change the same hashtable was re-created each time one used the auto-completion feature. Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
* | fix memory leakSteffen Jaeckel2023-04-041-9/+8
|/ | | | | | | | `found` was leaked before This was somehow missed in e9aaba938b4f1b62b5f9018583a82ed7e7180977 Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
* Fix typosMichael Vetter2023-04-034-4/+4
|
* Merge pull request #1808 from ↵Michael Vetter2023-04-031-1/+1
|\ | | | | | | | | MarcoPolo-PasTonMolo/fix/empty_window_after_reconnect Fix empty window after reconnect
| * Fix empty window after reconnectMarcoPolo-PasTonMolo2023-04-021-1/+1
| | | | | | | | | | | | | | | | Sometimes after a reconnect the current window would get cleared. This was a deliberate change to fix the profanity window looking all garbled up after providing the passphrase for a gpg key using pinentry-curses. Fixes https://github.com/profanity-im/profanity/issues/1556
* | Merge pull request #1809 from MarcoPolo-PasTonMolo/fix/no-ac-for-reconnect-nowMichael Vetter2023-04-031-0/+16
|\ \ | | | | | | Add autocomplete for the /reconnect command
| * | Add autocomplete for the /reconnect commandMarcoPolo-PasTonMolo2023-04-021-0/+16
| |/ | | | | | | | | After typing `/reconnect ` and pressing tab nothing appeared where in reality, it should have been autocompleted to `/reconnect now`
* / Fix typos and update codespell configurationDaniel Santos2023-04-032-2/+2
|/ | | | | | | | | | * Fix typos. * Add words that are not typos to codespell's ignore words list and ignore regex. * Make codespell ignore URIs. * Make `make doublecheck` throw no error. Signed-off-by: Daniel Santos <dacs.git@brilhante.top>
* Merge pull request #1801 from alexandre1985/editor-with-argumentsMichael Vetter2023-03-312-2/+8
|\ | | | | Editor executable support flags
| * Add editor executable to CMD_SYNDaniel Santos2023-03-311-0/+1
| | | | | | | | | | | | * Add missing text of how to set editor in CMD_SYN Signed-off-by: Daniel Santos <dacs.git@brilhante.top>
| * Editor executable support flagsDaniel Santos2023-03-302-2/+7
| | | | | | | | | | | | | | | | * Make editor executable into a string to be able to support (multiple) flags. * Change /help executable to suit this new feature Signed-off-by: Daniel Santos <dacs.git@brilhante.top>
* | Fix OTRJohn Hernandez2023-03-311-4/+0
| | | | | | | | Fix OTR: carbon in stanza breaks OTR and prevents it from starting and working properly.
* | Fix PGPJohn Hernandez2023-03-313-13/+10
|/ | | | Fix of PGP and potentially other encryption methods by calling correct function that would initiate them in case if someone writes.
* Add WIN_VCARD to win_get_tab_identifier()Michael Vetter2023-03-231-0/+4
| | | | | | Thanks to 12b997c5f34776f34634d4ca155a14586aebc905 we already found a place where we should add this missing window type. AFAIK there can be only one vcard window.
* Adapt to new g_string_free() usageMichael Vetter2023-03-232-13/+4
| | | | | Somehow this must have been overlooked when doing e59c401c840f379e64945734969db03b0e55ef22.
* ui: make it easier to find non covered window typesMichael Vetter2023-03-231-20/+31
| | | | | | | | | | | | | | | | Rewrite `win_get_title()` to using switch without a default case. So the compiler warns us (`enumeration value ‘WIN_XXX’ not handled in switch`) in case we add a new window type (WIN_CHAT, WIN_PRIV etc) and forget to adapt this function. Add assert() in the end to make compiler happy when he realizes there the function might have no return value (`control reaches end of non-void function`). This should ever be reached. Replace the default value of `win_to_string()`, `win_get_tab_identifier()` as well, and replace it with an assert. See discussion started at https://github.com/profanity-im/profanity/pull/1799#discussion_r1142444684
* Adapt to g_string_free glib 2.75.3 changeMichael Vetter2023-03-2117-145/+42
| | | | | | | | | | | | glib 2.75.3 changes warning behaviour of `g_string_free()`. See: * https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3219 * https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3226 Use this opportunity to replace the use of GString with `g_strdup_printf()` where possible. Otherwise correctly take the return value of `g_string_free()` which is nicer anyways.
* change OMEMO QR code `0` bits to 'space'Steffen Jaeckel2023-03-121-2/+6
| | | | | | This makes the generated QR code a lot better recognizable in my case. Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
* fix #1797Steffen Jaeckel2023-03-121-1/+1
| | | | Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>