mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
xep-0308: create setting to toggle lmc
and print settings if only `/correction` is run.
This commit is contained in:
parent
c2d70a071f
commit
dd8086772d
@ -2363,7 +2363,7 @@ static struct cmd_t command_defs[] =
|
|||||||
},
|
},
|
||||||
|
|
||||||
{ "/correction",
|
{ "/correction",
|
||||||
parse_args, 1, 1, &cons_correction_setting,
|
parse_args, 1, 2, &cons_correction_setting,
|
||||||
CMD_NOSUBFUNCS
|
CMD_NOSUBFUNCS
|
||||||
CMD_MAINFUNC(cmd_correction)
|
CMD_MAINFUNC(cmd_correction)
|
||||||
CMD_TAGS(
|
CMD_TAGS(
|
||||||
|
@ -8657,15 +8657,17 @@ cmd_correction(ProfWin *window, const char *const command, gchar **args)
|
|||||||
{
|
{
|
||||||
// enable/disable
|
// enable/disable
|
||||||
if (g_strcmp0(args[0], "on") == 0) {
|
if (g_strcmp0(args[0], "on") == 0) {
|
||||||
prefs_set_boolean(PREF_BOOKMARK_INVITE, TRUE);
|
_cmd_set_boolean_preference(args[0], command, "Last Message Correction", PREF_CORRECTION_ALLOW);
|
||||||
|
caps_add_feature(XMPP_FEATURE_LAST_MESSAGE_CORRECTION);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} else if (g_strcmp0(args[0], "off") == 0) {
|
} else if (g_strcmp0(args[0], "off") == 0) {
|
||||||
prefs_set_boolean(PREF_BOOKMARK_INVITE, FALSE);
|
_cmd_set_boolean_preference(args[0], command, "Last Message Correction", PREF_CORRECTION_ALLOW);
|
||||||
|
caps_remove_feature(XMPP_FEATURE_LAST_MESSAGE_CORRECTION);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// char
|
// char
|
||||||
if (g_strcmp(args[0], "char") == 0) {
|
if (g_strcmp0(args[0], "char") == 0) {
|
||||||
if (args[1] == NULL) {
|
if (args[1] == NULL) {
|
||||||
cons_bad_cmd_usage(command);
|
cons_bad_cmd_usage(command);
|
||||||
} else if (strlen(args[1]) != 1) {
|
} else if (strlen(args[1]) != 1) {
|
||||||
|
@ -1786,6 +1786,7 @@ _get_group(preference_t pref)
|
|||||||
case PREF_RECEIPTS_REQUEST:
|
case PREF_RECEIPTS_REQUEST:
|
||||||
case PREF_REVEAL_OS:
|
case PREF_REVEAL_OS:
|
||||||
case PREF_TLS_CERTPATH:
|
case PREF_TLS_CERTPATH:
|
||||||
|
case PREF_CORRECTION_ALLOW:
|
||||||
return PREF_GROUP_CONNECTION;
|
return PREF_GROUP_CONNECTION;
|
||||||
case PREF_OTR_LOG:
|
case PREF_OTR_LOG:
|
||||||
case PREF_OTR_POLICY:
|
case PREF_OTR_POLICY:
|
||||||
@ -2036,6 +2037,8 @@ _get_key(preference_t pref)
|
|||||||
return "log";
|
return "log";
|
||||||
case PREF_OMEMO_POLICY:
|
case PREF_OMEMO_POLICY:
|
||||||
return "policy";
|
return "policy";
|
||||||
|
case PREF_CORRECTION_ALLOW:
|
||||||
|
return "correction.allow";
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -161,6 +161,7 @@ typedef enum {
|
|||||||
PREF_OMEMO_LOG,
|
PREF_OMEMO_LOG,
|
||||||
PREF_OMEMO_POLICY,
|
PREF_OMEMO_POLICY,
|
||||||
PREF_OCCUPANTS_WRAP,
|
PREF_OCCUPANTS_WRAP,
|
||||||
|
PREF_CORRECTION_ALLOW,
|
||||||
} preference_t;
|
} preference_t;
|
||||||
|
|
||||||
typedef struct prof_alias_t {
|
typedef struct prof_alias_t {
|
||||||
|
@ -2024,7 +2024,14 @@ cons_os_setting(void)
|
|||||||
void
|
void
|
||||||
cons_correction_setting(void)
|
cons_correction_setting(void)
|
||||||
{
|
{
|
||||||
cons_show("TODO");
|
if (prefs_get_boolean(PREF_CORRECTION_ALLOW)) {
|
||||||
|
cons_show("Last Message Correction (XEP-0308) (/correction) : ON");
|
||||||
|
} else {
|
||||||
|
cons_show("Last Message Correction (XEP-0308) (/correction) : OFF");
|
||||||
|
}
|
||||||
|
|
||||||
|
char cc = prefs_get_correction_char();
|
||||||
|
cons_show("LMC indication char (/correction char) : %c", cc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1065,7 +1065,7 @@ win_correct_incoming(ProfWin *window, const char *const message, const char *con
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*TODO: set date?
|
||||||
if (entry->date) {
|
if (entry->date) {
|
||||||
if (entry->date->timestamp) {
|
if (entry->date->timestamp) {
|
||||||
g_date_time_unref(entry->date->timestamp);
|
g_date_time_unref(entry->date->timestamp);
|
||||||
@ -1076,9 +1076,7 @@ win_correct_incoming(ProfWin *window, const char *const message, const char *con
|
|||||||
entry->date = buffer_date_new_now();
|
entry->date = buffer_date_new_now();
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: setting
|
entry->show_char = prefs_get_correction_char();
|
||||||
//entry->show_char = prefs_get_correction_char();
|
|
||||||
entry->show_char = '+';
|
|
||||||
|
|
||||||
if (entry->message) {
|
if (entry->message) {
|
||||||
free(entry->message);
|
free(entry->message);
|
||||||
|
@ -104,14 +104,19 @@ caps_init(void)
|
|||||||
g_hash_table_add(prof_features, strdup(STANZA_NS_CHATSTATES));
|
g_hash_table_add(prof_features, strdup(STANZA_NS_CHATSTATES));
|
||||||
g_hash_table_add(prof_features, strdup(STANZA_NS_PING));
|
g_hash_table_add(prof_features, strdup(STANZA_NS_PING));
|
||||||
g_hash_table_add(prof_features, strdup(STANZA_NS_STABLE_ID));
|
g_hash_table_add(prof_features, strdup(STANZA_NS_STABLE_ID));
|
||||||
|
|
||||||
if (prefs_get_boolean(PREF_RECEIPTS_SEND)) {
|
if (prefs_get_boolean(PREF_RECEIPTS_SEND)) {
|
||||||
g_hash_table_add(prof_features, strdup(STANZA_NS_RECEIPTS));
|
g_hash_table_add(prof_features, strdup(STANZA_NS_RECEIPTS));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prefs_get_boolean(PREF_LASTACTIVITY)) {
|
if (prefs_get_boolean(PREF_LASTACTIVITY)) {
|
||||||
g_hash_table_add(prof_features, strdup(STANZA_NS_LASTACTIVITY));
|
g_hash_table_add(prof_features, strdup(STANZA_NS_LASTACTIVITY));
|
||||||
}
|
}
|
||||||
//TODO: depend on setting
|
|
||||||
g_hash_table_add(prof_features, strdup(STANZA_NS_LAST_MESSAGE_CORRECTION));
|
if (prefs_get_boolean(PREF_CORRECTION_ALLOW)) {
|
||||||
|
g_hash_table_add(prof_features, strdup(STANZA_NS_LAST_MESSAGE_CORRECTION));
|
||||||
|
}
|
||||||
|
|
||||||
my_sha1 = NULL;
|
my_sha1 = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user