4319172758
Merge upstream/master into merge/upstream-full
...
CI Code / Check coding style (pull_request) Successful in 32s
CI Code / Check spelling (pull_request) Successful in 15s
CI Code / Linux (debian) (pull_request) Successful in 6m43s
CI Code / Linux (ubuntu) (pull_request) Successful in 6m49s
CI Code / Linux (arch) (pull_request) Successful in 8m52s
CI Code / Code Coverage (pull_request) Successful in 7m19s
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
4922366366
feat: add spellcheck highlighting support
...
Introduce optional spellcheck highlighting in the input window using
the Enchant-2 library.
```
/spellcheck on
/spellcheck lang en_US
```
New theme color `input.misspelled`.
Fixes: https://github.com/profanity-im/profanity/issues/183
Signed-off-by: Michael Vetter <jubalh@iodoru.org >
2026-03-26 23:34:06 +01:00
Michael Vetter
798edce22a
chore: Move to SPDX license header
2026-03-09 12:55:37 +01:00
Michael Vetter
f1acf702a9
chore: Update copyright year
2026-02-20 16:13:31 +01:00
Steffen Jaeckel
038f345a4e
Minor improve theme
...
* Less `GString`.
* Don't `g_free()` a `strdup()`'ed string.
* Don't lookup the `console` window X times, but only once.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu >
2025-11-23 12:47:39 +01:00
Steffen Jaeckel
62fd40c510
Use gboolean consistently.
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu >
2025-11-23 12:47:39 +01:00
d5d5dc5180
ref(theme): ensure clean reinitialization and explicitly initialize static vars
...
CI / Check spelling (pull_request) Successful in 17s
CI / Check coding style (pull_request) Successful in 32s
CI / Linux (debian) (pull_request) Successful in 9m44s
CI / Linux (fedora) (pull_request) Successful in 10m40s
CI / Linux (ubuntu) (pull_request) Successful in 12m19s
CI / Linux (arch) (pull_request) Successful in 15m41s
Improves code robustness by calling _theme_close() in theme_init() when the
theme was already initialized, preventing potential memory leaks or
inconsistent state.
Closes #4
2025-06-24 16:22:48 +02:00
83c569de37
ref: Remove unnecessary variable bold_items
...
The variable was introduced in 976e5aa . First used to detect bold characters, it was later replaced by another solution in 850ac3c .
2025-06-24 15:24:09 +02:00
Michael Vetter
07dfeec816
Release 0.15.0
2025-03-27 20:06:38 +01:00
Steffen Jaeckel
c5a131ee46
Introduce our own shutdown callback mechanism.
...
Instead of adding stuff to `_shutdown()`, we can now register a shutdown
routine from the respective `init()` function of our modules.
This also has the advantage, that we're sure they're called in reverse
order from how the initialization happened.
I didn't simply use `atexit()` because POSIX says that the number of
possible callbacks is limited (min 32) and I was not sure whether
we will maybe extend this number at one point.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu >
2025-03-07 21:09:16 +01:00
Steffen Jaeckel
2696989ce5
Fix a bunch of obvious memory leaks at termination
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu >
2025-01-28 16:43:13 +01:00
Michael Vetter
569e37f018
Update copyright to 2024
2024-01-22 16:03:48 +01:00
John Hernandez
8e40ca1470
Add unicode support for correction char
...
Commit to allow unicode support in omemo/pgp/otr chars misses
adding support to set correction character.
1f8b1eb740
Further fixing commit also misses adding support to set the unicode character,
it only adds ability to display unicode correction character in the settings.
5cf6ee15cf6ee1bc6d0b99b01891bc455a657bf022a72b0
2023-11-03 09:21:00 +01:00
IsaacM88
23c6936398
Improve MUC title behaviour for roster, statusbar, and titlebar
...
## Abstract
Continuation of https://github.com/profanity-im/profanity/pull/1881
Give all MUC title commands a consistent command structure and appearance.
- `/roster room use name|jid` and `/roster room show|hide server` are now `/roster room title bookmark|jid|localpart|name`
- `/statusbar room room|jid` is now `/statusbar room title bookmark|jid|localpart|name`
- `/statusbar show|hide jid` and `/statusbar show|hide name` are now `/titlebar room title bookmark|jid|localpart|name`
Fix both bugs mentioned in https://github.com/profanity-im/profanity/pull/1881
### src/ui/mucwin.c:mucwin_generate_title
Called by each command to generate a properly formatted title. It checks for "name" first because "name" is the default preference for each command. The last if-statement sets the title to "localpart" for special cases when the title should be "localpart" instead of the user-defined preference.
## Testing
### Preparation
Remove preferences that will interfere with testing.
```
sed -i "/roster.rooms.title=/d" profrc
sed -i "/statusbar.room.title=/d" profrc
sed -i "/titlebar.muc.title=/d" profrc
sed -i "/roster.rooms.use.name=/d" profrc
sed -i "/roster.rooms.server=/d" profrc
sed -i "/statusbar.room=/d" profrc
sed -i "/titlebar.muc.title.jid=/d" profrc
sed -i "/titlebar.muc.title.name=/d" profrc
sed -i "/roster.rooms.by=/d" profrc
```
### Command Definitions
| Test | Window |
| :--- | :--- |
| `/help roster` | - /roster room title bookmark\|jid\|localpart\|name<br>- room title bookmark\|jid\|localpart\|name : Display the bookmark name, JID, JID localpart, or room name as the roster title for MUCs.<br>- *No /roster show\|hide server*<br>- *No /roster room use jid\|name* |
| `/help statusbar` | - /statusbar room title bookmark\|jid\|localpart\|name<br>- room title bookmark\|jid\|localpart\|name : Display the bookmark name, JID, JID localpart, or room name as the title for MUC tabs.<br>- *No /statusbar room jid\|room* |
| `/help titlebar` | - /titlebar room title bookmark\|jid\|localpart\|name<br>- room title bookmark\|jid\|localpart\|name : Display the bookmark name, JID, JID localpart, or room name as the MUC window title.<br>- *No /titlebar show\|hide jid\|name* |
### Autocomplete
| Test | Command line |
| :--- | :--- |
| `/roster room <TAB>` | Autocompletes `title` |
| `/roster room title <TAB>` | Autocompletes `bookmark\|jid\|localpart\|name` |
| `/statusbar room <TAB>` | Autocompletes `title` |
| `/statusbar room title <TAB>` | Autocompletes `bookmark\|jid\|localpart\|name` |
| `/titlebar room <TAB>` | Autocompletes `title` |
| `/titlebar room title <TAB>` | Autocompletes `bookmark\|jid\|localpart\|name` |
| `/roster room <TAB>` | Does not autocomplete `use`, `show`, or `hide` |
| `/roster room use <TAB>` | Does not autocomplete `name` |
| `/roster room show <TAB>` | Does not autocomplete `server` |
| `/roster room hide <TAB>` | Does not autocomplete `server` |
| `/statusbar room <TAB>` | Does not autocomplete `jid` or `room` |
| `/titlebar show <TAB>` | Does not autocomplete `jid` or `name` |
| `/titlebar hide <TAB>` | Does not autocomplete `jid` or `name` |
### Set Preferences
| Test | Window | profrc |
| :--- | :--- | :--- |
| `/roster room title bookmark` | Roster MUCs will display 'bookmark' as their title. | roster.rooms.title=bookmark |
| `/roster room title jid` | Roster MUCs will display 'jid' as their title. | roster.rooms.title=jid |
| `/roster room title localpart` | Roster MUCs will display 'localpart' as their title. | roster.rooms.title=localpart |
| `/roster room title name` | Roster MUCs will display 'name' as their title. | roster.rooms.title=name |
| `/roster room title invalid` | Invalid usage, see '/help roster' for details. | |
| `/statusbar room title bookmark` | Displaying 'bookmark' as the title for MUC tabs. | statusbar.room.title=bookmark |
| `/statusbar room title jid` | Displaying 'jid' as the title for MUC tabs. | statusbar.room.title=jid |
| `/statusbar room title localpart` | Displaying 'localpart' as the title for MUC tabs. | statusbar.room.title=localpart |
| `/statusbar room title name` | Displaying 'name' as the title for MUC tabs. | statusbar.room.title=name |
| `/statusbar room title invalid` | Invalid usage, see '/help statusbar' for details. | |
| `/titlebar room title bookmark` | MUC windows will display 'bookmark' as the window title. | titlebar.muc.title=bookmark |
| `/titlebar room title jid` | MUC windows will display 'jid' as the window title. | titlebar.muc.title=jid |
| `/titlebar room title localpart` | MUC windows will display 'localpart' as the window title. | titlebar.muc.title=localpart |
| `/titlebar room title name` | MUC windows will display 'name' as the window title. | titlebar.muc.title=name |
| `/titlebar room title invalid` | Invalid usage, see '/help titlebar' for details. | |
| `/roster room use jid` | Invalid usage, see '/help roster' for details. | |
| `/roster room use name` | Invalid usage, see '/help roster' for details. | |
| `/roster room show server` | Invalid usage, see '/help roster' for details. | |
| `/roster room hide server` | Invalid usage, see '/help roster' for details. | |
| `/statusbar room jid` | Invalid usage, see '/help statusbar' for details. | |
| `/statusbar room room` | Invalid usage, see '/help statusbar' for details. | |
| `/titlebar show jid` | Invalid usage, see '/help titlebar' for details. | |
| `/titlebar hide jid` | Invalid usage, see '/help titlebar' for details. | |
| `/titlebar show name` | Invalid usage, see '/help titlebar' for details. | |
| `/titlebar hide name` | Invalid usage, see '/help titlebar' for details. | |
### Display Set Preferences
| Test | Window |
| :--- | :--- |
| /prefs ui | - Roster rooms title (/roster) : name<br>- Room tab display (/statusbar) : name<br>- MUC window title (/titlebar) : name |
### Test MUC Window
#### Test: without *name* preference, without *room name* field
```
/join muc@dmn.im
/room config
/field1 ""
/form submit
/quit
```
| Test | Roster | Statusbar | Titlebar |
| :--- | :--- | :--- | :--- |
| `/join muc@dmn.im ` | muc<span/>@dmn.im | muc<span/>@dmn.im | muc<span/>@dmn.im |
| `/room config` | | muc<span/>@dmn.im conf | muc<span/>@dmn.im config |
| `/field2 edit` | | | muc<span/>@dmn.im config * |
| `/msg tst` | tst | muc<span/>@dmn.im/tst | muc<span/>@dmn.im/tst |
| `/roster room by service` | muc | | |
#### Test: with *name* preference, without *room name* field
```
/roster room title name
/statusbar room title name
/titlebar room title name
/save
/quit
```
| Test | Roster | Statusbar | Titlebar |
| :--- | :--- | :--- | :--- |
| `/join muc@dmn.im ` | muc<span/>@dmn.im | muc<span/>@dmn.im | muc<span/>@dmn.im |
| `/room config` | | muc<span/>@dmn.im conf | muc<span/>@dmn.im config |
| `/field2 edit` | | | muc<span/>@dmn.im config * |
| `/msg tst` | tst | muc<span/>@dmn.im/tst | muc<span/>@dmn.im/tst |
| `/roster room by service` | muc | | |
#### Test: without *name* preference, with *room name* field
```
sed -i "/roster.rooms.title=/d" profrc
sed -i "/statusbar.room.title=/d" profrc
sed -i "/titlebar.muc.title=/d" profrc
/join muc@dmn.im
/room config
/field1 "my_room"
/form submit
/quit
```
| Test | Roster | Statusbar | Titlebar |
| :--- | :--- | :--- | :--- |
| `/join muc@dmn.im ` | my_room | my_room | my_room |
| `/room config` | | my_room conf | my_room config |
| `/field2 edit` | | | my_room config * |
| `/msg tst` | tst | my_room/tst | my_room/tst |
| `/roster room by service` | my_room | | |
#### Test: with *name* preference, with *room name* field
```
/quit
/roster room title name
/statusbar room title name
/titlebar room title name
/save
/quit
```
| Test | Roster | Statusbar | Titlebar |
| :--- | :--- | :--- | :--- |
| `/join muc@dmn.im ` | my_room | my_room | my_room |
| `/room config` | | my_room conf | my_room config |
| `/field2 edit` | | | my_room config * |
| `/msg tst` | tst | my_room/tst | my_room/tst |
| `/roster room by service` | my_room | | |
#### Test: with *localpart* preference
```
/quit
/roster room title localpart
/statusbar room title localpart
/titlebar room title localpart
/save
/quit
```
| Test | Roster | Statusbar | Titlebar |
| :--- | :--- | :--- | :--- |
| `/join muc@dmn.im ` | muc | muc | muc |
| `/room config` | | muc conf | muc config |
| `/field2 edit` | | | muc config * |
| `/msg tst` | tst | muc/tst | muc/tst |
| `/roster room by service` | muc | | |
#### Test: with *bookmark* preference, without *bookmark name*
```
/quit
/roster room title bookmark
/statusbar room title bookmark
/titlebar room title bookmark
/save
/quit
/bookmark add muc@dmn.im
```
| Test | Roster | Statusbar | Titlebar |
| :--- | :--- | :--- | :--- |
| `/bookmark join muc@dmn.im ` | muc<span/>@dmn.im | muc<span/>@dmn.im | muc<span/>@dmn.im |
| `/room config` | | muc<span/>@dmn.im conf | muc<span/>@dmn.im config |
| `/field2 edit` | | | muc<span/>@dmn.im config * |
| `/msg tst` | tst | muc<span/>@dmn.im/tst | muc<span/>@dmn.im/tst |
| `/roster room by service` | muc | | |
#### Test: with *bookmark* preference, with *bookmark name*
```
/quit
/bookmark remove muc@dmn.im
/bookmark add muc@dmn.im name "my_bookmark"
```
| Test | Roster | Statusbar | Titlebar |
| :--- | :--- | :--- | :--- |
| `/bookmark join muc@dmn.im ` | my_bookmark | my_bookmark | my_bookmark |
| `/room config` | | my_bookmark conf | my_bookmark config |
| `/field2 edit` | | | my_bookmark config * |
| `/msg tst` | tst | my_bookmark/tst | my_bookmark/tst |
| `/roster room by service` | my_bookmark | | |
#### Test: with *jid* preference
```
/quit
/roster room title jid
/statusbar room title jid
/titlebar room title jid
/save
/quit
```
| Test | Roster | Statusbar | Titlebar |
| :--- | :--- | :--- | :--- |
| `/join muc@dmn.im ` | muc<span/>@dmn.im | muc<span/>@dmn.im | muc<span/>@dmn.im |
| `/room config` | | muc<span/>@dmn.im conf | muc<span/>@dmn.im config |
| `/field2 edit` | | | muc<span/>@dmn.im config * |
| `/msg tst` | tst | muc<span/>@dmn.im/tst | muc<span/>@dmn.im/tst |
| `/roster room by service` | muc | | |
### Test Contact Chat Window Title
#### Test: without contact nick
```
/roster add tst@dmn.im
```
| Test | Titlebar |
| :--- | :--- |
| `/msg tst@dmn.im ` | tst<span/>@dmn.im |
#### Test: with contact nick
```
/roster add tst@dmn.im my_tst
```
| Test | Titlebar |
| :--- | :--- |
| `/msg my_tst` | my_tst <tst<span/>@ike.snikket.chat> |
### Test Preference Upgrade
#### Test /roster
| Test | profrc |
| :--- | :--- |
| `sed -i '/\[ui\]/a\roster.rooms.use.name=name' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\roster.rooms.use.name=' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\roster.rooms.server=' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\roster.rooms.use.name=jid' profrc` | Original key removed.<br>roster.rooms.title=jid |
| `sed -i '/\[ui\]/a\roster.rooms.use.name=jid' profrc`<br>`sed -i '/\[ui\]/a\roster.rooms.server=false' profrc` | Original keys removed.<br>roster.rooms.title=localpart |
| `sed -i '/\[ui\]/a\roster.rooms.use.name=jid' profrc`<br>`sed -i '/\[ui\]/a\roster.rooms.server=true' profrc` | Original keys removed.<br>roster.rooms.title=jid |
| `sed -i '/\[ui\]/a\roster.rooms.use.name=jid' profrc`<br>`sed -i '/\[ui\]/a\roster.rooms.server=' profrc` | Original keys removed.<br>roster.rooms.title=jid |
| `sed -i '/\[ui\]/a\statusbar.room=' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\statusbar.room=room' profrc` | Original key removed.<br>statusbar.room.title=localpart |
| `sed -i '/\[ui\]/a\statusbar.room=jid' profrc` | Original key removed.<br>statusbar.room.title=jid |
| `sed -i '/\[ui\]/a\titlebar.muc.title.jid=' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\titlebar.muc.title.name=' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\titlebar.muc.title.jid=true' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\titlebar.muc.title.name=true' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\titlebar.muc.title.jid=false' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\titlebar.muc.title.name=false' profrc` | Original key removed. |
| `sed -i '/\[ui\]/a\titlebar.muc.title.jid=true' profrc`<br>`sed -i '/\[ui\]/a\titlebar.muc.title.name=false' profrc` | Original key removed.<br>titlebar.muc.title=jid |
| `sed -i '/\[ui\]/a\titlebar.muc.title.jid=false' profrc`<br>`sed -i '/\[ui\]/a\titlebar.muc.title.name=true' profrc` | Original keys removed. |
| `sed -i '/\[ui\]/a\titlebar.muc.title.jid=true' profrc`<br>`sed -i '/\[ui\]/a\titlebar.muc.title.name=true' profrc` | Original keys removed. |
### Test Valgrind
No memory leaks detected relating to these changes.
2023-10-05 18:16:04 -06:00
John Hernandez
8304ac86ff
g_free() to auto_gfree, introduce auto_guchar
...
Fix 11 potential mem leaks in theme.c
2023-07-13 17:04:59 +02:00
John Hernandez
4a70f5f513
Cleanup char* to auto_gchar gchar* for prefs_get_string
...
Necessity explained in #1819
2023-07-03 16:06:27 +02:00
John Hernandez
7f3fca2bd0
Cleanup: gchar as gchar instead of char
...
Use gchar instead of char in most of the cases where gchar is intended.
Reason: improve compatibility and stability. Issue #1819
Minor refactoring.
2023-05-04 16:15:09 +02:00
Michael Vetter
3adc399da0
Update copyright year
2023-01-10 10:37:25 +01:00
Michael Vetter
1330ad4e1e
Update copyright year
2022-05-09 15:43:33 +02:00
Michael Vetter
db154f226e
Merge pull request #1674 from paulfertser/allow-bold-for-default-colours
...
Allow bold for default colours
2022-04-04 23:38:31 +02:00
Artjom Vejsel
9c2713c917
disable execution of colors-changing code when call for theme load and it doesn't exist
2022-04-02 19:07:59 +03:00
Paul Fertser
4217105ff0
Allow bold for default colours
2022-04-01 17:00:13 +03:00
Michael Vetter
a9bcc8e8bd
Allow utf8 in occupants header char
2021-10-22 16:54:05 +02:00
Michael Vetter
1c96115f97
Allow utf8 in occupants char
2021-10-22 16:54:05 +02:00
Michael Vetter
fa2881fcea
Allow utf8 in roster room private char
2021-10-22 16:54:05 +02:00
Michael Vetter
8fc359ba2d
Allow utf8 in roster rooms char
2021-10-22 16:54:05 +02:00
Michael Vetter
7faf15a18c
Allow utf8 in roster private char
2021-10-22 16:54:05 +02:00
Michael Vetter
83ee4a27cb
Allow utf8 in roster resource char
2021-10-22 16:54:02 +02:00
Michael Vetter
a668ca45b7
Allow utf8 in roster contact char
2021-10-22 16:23:18 +02:00
Michael Vetter
91898597dd
Allow utf8 in roster header char
...
This and the following commits should make a couple of more configs
allow utf8 chars so people can use their weird icons :-)
We did the same for the otr/omemo/pgp indicators at:
1f8b1eb740
5cf6ee1bc6
2021-10-21 15:30:01 +02:00
Thorben Günther
f1780f0017
MUC: Show offline members in sidebar
2021-03-08 14:34:59 +01:00
Michael Vetter
8c08e64f37
Update copyright
2021-01-08 16:36:30 +01:00
Michael Vetter
3b093553e1
Set default color for trackbar
...
Fix https://github.com/profanity-im/profanity/issues/1453
2020-12-10 15:07:55 +01:00
Michael Vetter
a94378f206
Fix various typos
2020-12-10 09:24:32 +01:00
Tim Gates
93480bed09
docs: fix simple typo, certian -> certain
...
There is a small typo in src/config/theme.c.
Should read `certain` rather than `certian`.
2020-12-10 05:25:37 +11:00
nia
52e9be4abc
Basic support for building on NetBSD.
...
- Add NetBSD as a recognized platform without -ldl.
- Allow building with NetBSD libcurses instead of ncurses.
- Portability to NetBSD sh - use POSIX '=' instead of '=='.
2020-09-04 12:55:20 +02:00
Michael Vetter
a2726b6a7d
Apply coding style
2020-07-07 14:18:57 +02:00
Michael Vetter
a4cadf78fa
Revert "Apply coding style"
...
This reverts commit 9b55f2dec0 .
Sorting the includes creates some problems.
2020-07-07 13:53:30 +02:00
Michael Vetter
9b55f2dec0
Apply coding style
...
Regards https://github.com/profanity-im/profanity/issues/1396
2020-07-07 09:43:28 +02:00
Michael Vetter
e5ac12afa6
Remove prefs_free_string()
...
It just does a free.
Related to b580b9ef11
2020-07-02 11:34:12 +02:00
Michael Vetter
92cba92c5d
Add default value for titlebar.scrolled
...
Fix https://github.com/profanity-im/profanity/issues/1380
2020-07-01 18:37:35 +02:00
Michael Vetter
74e061165a
Define POSIX macro to have strdup
...
98c38dc6d6
sets C99 as standard.
strdup() is not part of C99.
For now set `-D_POSIX_C_SOURCE=200809L` macro to have strdup() in C99.
Using `gnu99` instead would be another option.
We should take more care to use glib functions whenever possible.
Regards https://github.com/profanity-im/profanity/issues/1357
2020-06-12 16:12:21 +02:00
Michael Vetter
fcd69532ad
Make 'scrolled' themeable
2020-05-21 09:16:18 +02:00
Michael Vetter
4f19ea2642
Add -t theme option
...
`profanity -t bios` loads the bios theme now.
Fix https://github.com/profanity-im/profanity/issues/1286
2020-03-24 23:00:39 +01:00
Michael Vetter
f131680055
titlebar: allow displaying MUC name and MUC jid
...
`/titlebar use name|jid` -> `/titlebar show|hide name|jid`
Fix https://github.com/profanity-im/profanity/issues/1284
2020-03-24 22:22:16 +01:00
Michael Vetter
6dbbbe11e5
Make trackbar color configurable
...
Use `main.trackbar` in themes.
2020-02-21 19:12:16 +01:00
Michael Vetter
1f8b1eb740
Allow utf8 symbols as omemo/pgp/otr indicator char
...
Fix https://github.com/profanity-im/profanity/issues/1264
2020-02-20 23:36:10 +01:00
Michael Vetter
280b718cfb
Fix theme setting correction char
...
Copy paste error. We actually set the omemo char..
2020-02-20 16:50:17 +01:00
Michael Vetter
3c1db1cd32
xep-0308: make correction.char themeable
2020-02-10 14:58:22 +01:00
Michael Vetter
cd80b6cbf2
Change theme handling
...
So far when loading a theme it also overwrote the preferences the user
set.
Lengthy discussion can be found at
https://github.com/profanity-im/profanity/issues/1077
Now we use `/theme load themename` to load the [colours] part of a
themem only.
`/theme full-load themename` will load the complete theme including
preferences set in there.
Regards https://github.com/profanity-im/profanity/issues/1077
2020-01-29 12:33:55 +01:00