Mark /notice+ and /me+ with a prefix/suffix as the other commands.
Created a function called mark_crypted().
This commit is contained in:
parent
330e19a274
commit
2232335bc3
30
src/FiSH.c
30
src/FiSH.c
|
@ -480,6 +480,24 @@ void raw_handler(SERVER_REC * server, char *data)
|
||||||
g_string_free(decrypted, TRUE);
|
g_string_free(decrypted, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *mark_crypted(const char *original) {
|
||||||
|
const char * mark = settings_get_str("mark_encrypted");
|
||||||
|
if(mark == NULL || *mark == '\0') {
|
||||||
|
return strdup(original);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 0 for suffix, anything else for prefix
|
||||||
|
const int mark_position = settings_get_int("mark_position");
|
||||||
|
|
||||||
|
const size_t new_len = strlen(original) + strlen(mark) + 1;
|
||||||
|
char * new = (char *) calloc(new_len, sizeof(char));
|
||||||
|
|
||||||
|
snprintf(new, new_len, "%s%s", mark_position == 0 ? original : mark,
|
||||||
|
mark_position == 0 ? mark : original);
|
||||||
|
|
||||||
|
return new;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* /notice+ <nick/#channel> <notice message>
|
* /notice+ <nick/#channel> <notice message>
|
||||||
*/
|
*/
|
||||||
|
@ -488,6 +506,7 @@ void cmd_crypt_notice(const char *data, SERVER_REC * server, WI_ITEM_REC * item)
|
||||||
char bf_dest[1000] = "", *msg;
|
char bf_dest[1000] = "", *msg;
|
||||||
const char *target;
|
const char *target;
|
||||||
void *free_arg = NULL;
|
void *free_arg = NULL;
|
||||||
|
char *marked;
|
||||||
|
|
||||||
if (data == NULL || (strlen(data) < 3))
|
if (data == NULL || (strlen(data) < 3))
|
||||||
goto notice_error;
|
goto notice_error;
|
||||||
|
@ -518,8 +537,11 @@ void cmd_crypt_notice(const char *data, SERVER_REC * server, WI_ITEM_REC * item)
|
||||||
irc_send_cmdv((IRC_SERVER_REC *) server, "NOTICE %s :%s\n", target,
|
irc_send_cmdv((IRC_SERVER_REC *) server, "NOTICE %s :%s\n", target,
|
||||||
bf_dest);
|
bf_dest);
|
||||||
|
|
||||||
signal_emit("message irc own_notice", 3, server, msg, target);
|
marked = mark_crypted(msg);
|
||||||
|
|
||||||
|
signal_emit("message irc own_notice", 3, server, marked, target);
|
||||||
cmd_params_free(free_arg);
|
cmd_params_free(free_arg);
|
||||||
|
free(marked);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
notice_error:
|
notice_error:
|
||||||
|
@ -537,6 +559,7 @@ void cmd_crypt_action(const char *data, SERVER_REC * server, WI_ITEM_REC * item)
|
||||||
{
|
{
|
||||||
char bf_dest[1000] = "";
|
char bf_dest[1000] = "";
|
||||||
const char *target;
|
const char *target;
|
||||||
|
char *marked;
|
||||||
|
|
||||||
if (data == NULL || (strlen(data) < 2))
|
if (data == NULL || (strlen(data) < 2))
|
||||||
goto action_error;
|
goto action_error;
|
||||||
|
@ -564,7 +587,10 @@ void cmd_crypt_action(const char *data, SERVER_REC * server, WI_ITEM_REC * item)
|
||||||
irc_send_cmdv((IRC_SERVER_REC *) server,
|
irc_send_cmdv((IRC_SERVER_REC *) server,
|
||||||
"PRIVMSG %s :\001ACTION %s\001\n", target, bf_dest);
|
"PRIVMSG %s :\001ACTION %s\001\n", target, bf_dest);
|
||||||
|
|
||||||
signal_emit("message irc own_action", 3, server, data, target);
|
marked = mark_crypted(data);
|
||||||
|
|
||||||
|
signal_emit("message irc own_action", 3, server, marked, target);
|
||||||
|
free(marked);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
action_error:
|
action_error:
|
||||||
|
|
Loading…
Reference in New Issue