feat(history): nodb backlog (#114)
All checks were successful
CI Code / Check spelling (pull_request) Successful in 16s
CI Code / Check coding style (pull_request) Successful in 33s
CI Code / Code Coverage (pull_request) Successful in 2m44s
CI Code / Linux (debian) (pull_request) Successful in 4m45s
CI Code / Linux (ubuntu) (pull_request) Successful in 4m58s
CI Code / Linux (arch) (pull_request) Successful in 5m48s

Implements all open items from the nodb backlog:

statusbar
- PREF_STATUSBAR_SHOW_DBBACKEND (default ON) gates the [sqlite] /
  [flatfile] indicator; toggle via "/statusbar show|hide dbbackend"

/history off|on
- "/history off" now stops persistence as well as hiding history on
  open: sets PREF_DBLOG=off + PREF_CHLOG=false in addition to
  PREF_HISTORY=false
- "/history on" restores persistence (re-enabling PREF_DBLOG=on if
  it was off) and PREF_CHLOG, in addition to PREF_HISTORY=true

/logging
- Removed the "/logging chat on|off" subcommand — chat-log
  persistence is now controlled exclusively by /history; the
  command kept only "/logging group on|off" for MUC logs
- All "use '/logging chat on' to enable" hints replaced with
  "/history on"

/privacy logging
- Single-pass validation across {on, off, redact, flatfile}
- Backend-switching values (on, flatfile) now take effect
  immediately when connected (via log_database_switch_backend),
  matching "/history switch" behaviour; off/redact only flip
  pref bits and keep the live backend open
- Updated help text to reflect runtime switching

/correction off
- win_print_outgoing and win_print_outgoing_with_receipt now gate
  _win_correct on PREF_CORRECTION_ALLOW, matching incoming-msg
  paths. Previously a peer's correction reflected via XEP-0280
  carbons (or the user's own /correct invocation) was applied
  in-buffer regardless of the pref

style
- Two local g_strndup allocations in database_flatfile.c switched
  from char* with manual g_free to auto_gchar gchar*
This commit is contained in:
2026-05-08 10:45:21 +03:00
committed by jabber.developer2
parent 06b80bc89a
commit 102c32c744
10 changed files with 98 additions and 69 deletions

View File

@@ -1884,6 +1884,12 @@ cons_statusbar_setting(void)
cons_show("Show tab with no actions (/statusbar) : OFF");
}
if (prefs_get_boolean(PREF_STATUSBAR_SHOW_DBBACKEND)) {
cons_show("Show database backend (/statusbar) : ON");
} else {
cons_show("Show database backend (/statusbar) : OFF");
}
cons_show("Max tabs (/statusbar) : %d", prefs_get_statusbartabs());
gint pref_len = prefs_get_statusbartablen();

View File

@@ -609,6 +609,8 @@ _status_bar_draw_maintext(int pos)
static int
_status_bar_draw_dbbackend(int pos)
{
if (!prefs_get_boolean(PREF_STATUSBAR_SHOW_DBBACKEND))
return pos;
if (!active_db_backend || !active_db_backend->name)
return pos;

View File

@@ -1600,7 +1600,7 @@ win_print_outgoing(ProfWin* window, const char* show_char, const char* const id,
GDateTime* timestamp = g_date_time_new_now_local();
const char* myjid = connection_get_fulljid();
if (!_win_correct(window, message, id, replace_id, myjid)) {
if (!prefs_get_boolean(PREF_CORRECTION_ALLOW) || !_win_correct(window, message, id, replace_id, myjid)) {
auto_gchar gchar* outgoing_str = prefs_get_string(PREF_OUTGOING_STAMP);
_win_printf(window, show_char, 0, timestamp, 0, THEME_TEXT_ME, outgoing_str, myjid, id, "%s", message);
}
@@ -1747,7 +1747,7 @@ win_print_outgoing_with_receipt(ProfWin* window, const char* show_char, const ch
receipt->received = FALSE;
const char* myjid = connection_get_fulljid();
if (_win_correct(window, message, id, replace_id, myjid)) {
if (prefs_get_boolean(PREF_CORRECTION_ALLOW) && _win_correct(window, message, id, replace_id, myjid)) {
free(receipt); // TODO: probably we should use this in _win_correct()
} else {
int y_start_pos = getcury(window->layout->win);