# HG changeset patch # User sh!zeeg # Date 1400050076 -14400 # Node ID b41719d57dace513aa05337ec0b03981762e5a67 # Parent 9c791e2a437a2588bce14153e96aaee90e2e2318 reimplement 'unescape_topic' option as '/room topic -u' switch diff -r 9c791e2a437a -r b41719d57dac mcabber/mcabber/commands.c --- a/mcabber/mcabber/commands.c Tue May 13 21:18:22 2014 +0400 +++ b/mcabber/mcabber/commands.c Wed May 14 10:47:56 2014 +0400 @@ -2935,16 +2935,30 @@ } // If arg is "-", let's clear the topic - if (!strcmp(arg, "-")) + if (!g_strcmp0(arg, "-")) arg = NULL; arg = to_utf8(arg); // if arg is not NULL & option is set, unescape it - if (arg && settings_opt_get_int("unescape_topic")) { - gchar *tmp; - tmp = g_strcompress(arg); - g_free(arg); - arg = tmp; + if (arg) { + char *unescaped_topic = NULL; + + if (!strncmp(arg, "-u ", 3)) { + char *tmp; + tmp = g_strdup(arg + 3); + g_free(arg); + arg = tmp; + unescaped_topic = ut_unescape_tabs_cr(arg); + } + + // We must not free() if the original string was returned + if (unescaped_topic == arg) + unescaped_topic = NULL; + + if (unescaped_topic != NULL) { + free(arg); + arg = unescaped_topic; + } } // Set the topic diff -r 9c791e2a437a -r b41719d57dac mcabber/mcabberrc.example --- a/mcabber/mcabberrc.example Tue May 13 21:18:22 2014 +0400 +++ b/mcabber/mcabberrc.example Wed May 14 10:47:56 2014 +0400 @@ -497,12 +497,6 @@ # Values: 0: disable (default) 1: enable #set show_room_occupants_count = 0 # -# To enable C-escape sequences support in /room topic -# set 'unescape_topic' to 1 -# \n - new line` -# \t - tab character -#set unescape_topic = 0 -# # Set 'log_display_sender' to 1 to display the message sender's JID in the # log window (default: 0, no) #set log_display_sender = 0