mirror of
https://github.com/weechat/weechat.git
synced 2026-06-27 21:36:37 +02:00
core: change color format for options from ${xxx} to ${color:xxx}
Options affected: - weechat.look.buffer_time_format - weechat.look.prefix_action - weechat.look.prefix_error - weechat.look.prefix_join - weechat.look.prefix_network - weechat.look.prefix_quit
This commit is contained in:
+3
-2
@@ -32,6 +32,7 @@
|
||||
|
||||
#include "../core/weechat.h"
|
||||
#include "../core/wee-config.h"
|
||||
#include "../core/wee-eval.h"
|
||||
#include "../core/wee-hashtable.h"
|
||||
#include "../core/wee-hook.h"
|
||||
#include "../core/wee-string.h"
|
||||
@@ -119,7 +120,7 @@ gui_chat_prefix_build ()
|
||||
ptr_prefix);
|
||||
|
||||
if (pos_color)
|
||||
gui_chat_prefix[i] = gui_color_string_replace_colors (prefix);
|
||||
gui_chat_prefix[i] = eval_expression (prefix, NULL, NULL, NULL);
|
||||
else
|
||||
gui_chat_prefix[i] = strdup (prefix);
|
||||
}
|
||||
@@ -373,7 +374,7 @@ gui_chat_get_time_string (time_t date)
|
||||
|
||||
if (strstr (text_time, "${"))
|
||||
{
|
||||
text_with_color = gui_color_string_replace_colors (text_time);
|
||||
text_with_color = eval_expression (text_time, NULL, NULL, NULL);
|
||||
if (text_with_color)
|
||||
{
|
||||
if (strcmp (text_time, text_with_color) != 0)
|
||||
|
||||
@@ -582,85 +582,6 @@ gui_color_decode (const char *string, const char *replacement)
|
||||
return (char *)out;
|
||||
}
|
||||
|
||||
/*
|
||||
* Replaces colors in string with color codes.
|
||||
*
|
||||
* Colors are using format: ${name} where name is a color name.
|
||||
*/
|
||||
|
||||
char *
|
||||
gui_color_string_replace_colors (const char *string)
|
||||
{
|
||||
int length, length_color, index_string, index_result;
|
||||
char *result, *result2, *color_name;
|
||||
const char *pos_end_name, *ptr_color;
|
||||
|
||||
if (!string)
|
||||
return NULL;
|
||||
|
||||
length = strlen (string) + 1;
|
||||
result = malloc (length);
|
||||
if (result)
|
||||
{
|
||||
index_string = 0;
|
||||
index_result = 0;
|
||||
while (string[index_string])
|
||||
{
|
||||
if ((string[index_string] == '\\')
|
||||
&& (string[index_string + 1] == '$'))
|
||||
{
|
||||
index_string++;
|
||||
result[index_result++] = string[index_string++];
|
||||
}
|
||||
else if ((string[index_string] == '$')
|
||||
&& (string[index_string + 1] == '{'))
|
||||
{
|
||||
pos_end_name = strchr (string + index_string + 2, '}');
|
||||
if (pos_end_name)
|
||||
{
|
||||
color_name = string_strndup (string + index_string + 2,
|
||||
pos_end_name - (string + index_string + 2));
|
||||
if (color_name)
|
||||
{
|
||||
ptr_color = gui_color_get_custom (color_name);
|
||||
if (ptr_color)
|
||||
{
|
||||
length_color = strlen (ptr_color);
|
||||
length += length_color;
|
||||
result2 = realloc (result, length);
|
||||
if (!result2)
|
||||
{
|
||||
if (result)
|
||||
free (result);
|
||||
free (color_name);
|
||||
return NULL;
|
||||
}
|
||||
result = result2;
|
||||
strcpy (result + index_result, ptr_color);
|
||||
index_result += length_color;
|
||||
index_string += pos_end_name - string -
|
||||
index_string + 1;
|
||||
}
|
||||
else
|
||||
result[index_result++] = string[index_string++];
|
||||
|
||||
free (color_name);
|
||||
}
|
||||
else
|
||||
result[index_result++] = string[index_string++];
|
||||
}
|
||||
else
|
||||
result[index_result++] = string[index_string++];
|
||||
}
|
||||
else
|
||||
result[index_result++] = string[index_string++];
|
||||
}
|
||||
result[index_result] = '\0';
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Frees a color.
|
||||
*/
|
||||
|
||||
@@ -165,7 +165,6 @@ extern int gui_color_attr_get_flag (char c);
|
||||
extern void gui_color_attr_build_string (int color, char *str_attr);
|
||||
extern const char *gui_color_get_custom (const char *color_name);
|
||||
extern char *gui_color_decode (const char *string, const char *replacement);
|
||||
extern char *gui_color_string_replace_colors (const char *string);
|
||||
extern void gui_color_free (struct t_gui_color *color);
|
||||
extern void gui_color_palette_alloc_structs ();
|
||||
extern int gui_color_palette_get_alias (const char *alias);
|
||||
|
||||
Reference in New Issue
Block a user