SF.net SVN: geany:[3824] trunk/src/highlighting.c

ntrel at users.sourceforge.net ntrel at xxxxx
Fri May 29 13:35:56 UTC 2009


Revision: 3824
          http://geany.svn.sourceforge.net/geany/?rev=3824&view=rev
Author:   ntrel
Date:     2009-05-29 13:35:55 +0000 (Fri, 29 May 2009)

Log Message:
-----------
Make get_keyfile_hex() call get_keyfile_style() to share code for future improvements. Adjust arguments to avoid parsing strings.

Modified Paths:
--------------
    trunk/src/highlighting.c

Modified: trunk/src/highlighting.c
===================================================================
--- trunk/src/highlighting.c	2009-05-29 12:54:56 UTC (rev 3823)
+++ trunk/src/highlighting.c	2009-05-29 13:35:55 UTC (rev 3824)
@@ -202,54 +202,26 @@
 
 	if (G_LIKELY(list != NULL) && G_LIKELY(list[2] != NULL))
 		style->bold = utils_atob(list[2]);
-	else style->bold = default_style->bold;
+	else
+		style->bold = default_style->bold;
 
 	if (G_LIKELY(list != NULL) && list[3] != NULL)
 		style->italic = utils_atob(list[3]);
-	else style->italic = default_style->italic;
+	else
+		style->italic = default_style->italic;
 
 	g_strfreev(list);
 }
 
 
 static void get_keyfile_hex(GKeyFile *config, GKeyFile *configh,
-				const gchar *section, const gchar *key,
-				const gchar *foreground, const gchar *background, const gchar *bold,
+				const gchar *key,
+				gint foreground, gint background, gboolean bold,
 				GeanyLexerStyle *style)
 {
-	gchar **list;
-	gsize len;
+	GeanyLexerStyle def = {foreground, background, bold, FALSE};
 
-	g_return_if_fail(config);
-	g_return_if_fail(configh);
-	g_return_if_fail(section);
-	g_return_if_fail(key);
-
-	list = g_key_file_get_string_list(configh, section, key, &len, NULL);
-	if (list == NULL)
-		list = g_key_file_get_string_list(config, section, key, &len, NULL);
-
-	if (G_LIKELY(list != NULL) && G_LIKELY(list[0] != NULL))
-		style->foreground = (gint) utils_strtod(list[0], NULL, FALSE);
-	else if (foreground)
-		style->foreground = (gint) utils_strtod(foreground, NULL, FALSE);
-
-	if (G_LIKELY(list != NULL) && G_LIKELY(list[1] != NULL))
-		style->background = (gint) utils_strtod(list[1], NULL, FALSE);
-	else if (background)
-		style->background = (gint) utils_strtod(background, NULL, FALSE);
-
-	if (G_LIKELY(list != NULL) && G_LIKELY(list[2] != NULL))
-		style->bold = utils_atob(list[2]);
-	else
-		style->bold = utils_atob(bold);
-
-	if (G_LIKELY(list != NULL) && list[3] != NULL)
-		style->italic = utils_atob(list[3]);
-	else
-		style->italic = FALSE;
-
-	g_strfreev(list);
+	get_keyfile_style(config, configh, key, &def, style);
 }
 
 
@@ -391,30 +363,18 @@
 		return;
 	common_style_set_valid = TRUE;	/* ensure filetypes.common is only loaded once */
 
-	get_keyfile_hex(config, config_home, "styling", "default",
-		"0x000000", "0xffffff", "false", &common_style_set.styling[GCS_DEFAULT]);
-	get_keyfile_hex(config, config_home, "styling", "selection",
-		"0xc0c0c0", "0x7f0000", "false", &common_style_set.styling[GCS_SELECTION]);
-	get_keyfile_hex(config, config_home, "styling", "brace_good",
-		"0x000000", "0xffffff", "false", &common_style_set.styling[GCS_BRACE_GOOD]);
-	get_keyfile_hex(config, config_home, "styling", "brace_bad",
-		"0xff0000", "0xffffff", "false", &common_style_set.styling[GCS_BRACE_BAD]);
-	get_keyfile_hex(config, config_home, "styling", "margin_linenumber",
-		"0x000000", "0xd0d0d0", "false", &common_style_set.styling[GCS_MARGIN_LINENUMBER]);
-	get_keyfile_hex(config, config_home, "styling", "margin_folding",
-		"0x000000", "0xdfdfdf", "false", &common_style_set.styling[GCS_MARGIN_FOLDING]);
-	get_keyfile_hex(config, config_home, "styling", "current_line",
-		"0x000000", "0xe5e5e5", "true", &common_style_set.styling[GCS_CURRENT_LINE]);
-	get_keyfile_hex(config, config_home, "styling", "caret",
-		"0x000000", "0x000000", "false", &common_style_set.styling[GCS_CARET]);
-	get_keyfile_hex(config, config_home, "styling", "indent_guide",
-		"0xc0c0c0", "0xffffff", "false", &common_style_set.styling[GCS_INDENT_GUIDE]);
-	get_keyfile_hex(config, config_home, "styling", "white_space",
-		"0xc0c0c0", "0xffffff", "true", &common_style_set.styling[GCS_WHITE_SPACE]);
-	get_keyfile_hex(config, config_home, "styling", "marker_line",
-		"0x000000", "0xffff00", "false", &common_style_set.styling[GCS_MARKER_LINE]);
-	get_keyfile_hex(config, config_home, "styling", "marker_search",
-		"0x000000", "0xB8F4B8", "false", &common_style_set.styling[GCS_MARKER_SEARCH]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &common_style_set.styling[GCS_DEFAULT]);
+	get_keyfile_hex(config, config_home, "selection", 0xc0c0c0, 0x7f0000, FALSE, &common_style_set.styling[GCS_SELECTION]);
+	get_keyfile_hex(config, config_home, "brace_good", 0x000000, 0xffffff, FALSE, &common_style_set.styling[GCS_BRACE_GOOD]);
+	get_keyfile_hex(config, config_home, "brace_bad", 0xff0000, 0xffffff, FALSE, &common_style_set.styling[GCS_BRACE_BAD]);
+	get_keyfile_hex(config, config_home, "margin_linenumber", 0x000000, 0xd0d0d0, FALSE, &common_style_set.styling[GCS_MARGIN_LINENUMBER]);
+	get_keyfile_hex(config, config_home, "margin_folding", 0x000000, 0xdfdfdf, FALSE, &common_style_set.styling[GCS_MARGIN_FOLDING]);
+	get_keyfile_hex(config, config_home, "current_line", 0x000000, 0xe5e5e5, TRUE, &common_style_set.styling[GCS_CURRENT_LINE]);
+	get_keyfile_hex(config, config_home, "caret", 0x000000, 0x000000, FALSE, &common_style_set.styling[GCS_CARET]);
+	get_keyfile_hex(config, config_home, "indent_guide", 0xc0c0c0, 0xffffff, FALSE, &common_style_set.styling[GCS_INDENT_GUIDE]);
+	get_keyfile_hex(config, config_home, "white_space", 0xc0c0c0, 0xffffff, TRUE, &common_style_set.styling[GCS_WHITE_SPACE]);
+	get_keyfile_hex(config, config_home, "marker_line", 0x000000, 0xffff00, FALSE, &common_style_set.styling[GCS_MARKER_LINE]);
+	get_keyfile_hex(config, config_home, "marker_search", 0x000000, 0xB8F4B8, FALSE, &common_style_set.styling[GCS_MARKER_SEARCH]);
 	{
 		/* hack because get_keyfile_int uses a Style struct */
 		GeanyLexerStyle tmp_style;
@@ -984,21 +944,21 @@
 static void styleset_pascal_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_PASCAL, 15);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0xd00000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "comment2", "0x3f5fbf", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "commentline", "0xd00000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "preprocessor", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "preprocessor2", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x007F00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "hexnumber", "0x007F00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "word", "0x111199", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PASCAL].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "string", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "stringeol", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "character", "0x404000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "asm", "0x804080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PASCAL].styling[14]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[0]);
+	get_keyfile_hex(config, config_home, "identifier", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[1]);
+	get_keyfile_hex(config, config_home, "comment", 0xd00000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[2]);
+	get_keyfile_hex(config, config_home, "comment2", 0x3f5fbf, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[3]);
+	get_keyfile_hex(config, config_home, "commentline", 0xd00000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[4]);
+	get_keyfile_hex(config, config_home, "preprocessor", 0x007f7f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[5]);
+	get_keyfile_hex(config, config_home, "preprocessor2", 0x007f7f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[6]);
+	get_keyfile_hex(config, config_home, "number", 0x007F00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[7]);
+	get_keyfile_hex(config, config_home, "hexnumber", 0x007F00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[8]);
+	get_keyfile_hex(config, config_home, "word", 0x111199, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PASCAL].styling[9]);
+	get_keyfile_hex(config, config_home, "string", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[10]);
+	get_keyfile_hex(config, config_home, "stringeol", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[11]);
+	get_keyfile_hex(config, config_home, "character", 0x404000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[12]);
+	get_keyfile_hex(config, config_home, "operator", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[13]);
+	get_keyfile_hex(config, config_home, "asm", 0x804080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PASCAL].styling[14]);
 
 	style_sets[GEANY_FILETYPES_PASCAL].keywords = g_new(gchar*, 2);
 	get_keyfile_keywords(config, config_home, "primary", GEANY_FILETYPES_PASCAL, 0,
@@ -1043,13 +1003,13 @@
 static void styleset_makefile_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_MAKE, 7);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x00002f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_MAKE].styling[0]);
+	get_keyfile_hex(config, config_home, "default", 0x00002f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_MAKE].styling[0]);
 	get_keyfile_style(config, config_home, "comment", &gsd_comment, &style_sets[GEANY_FILETYPES_MAKE].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "preprocessor", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_MAKE].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_MAKE].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_MAKE].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "target", "0x0000ff", "0xffffff", "false", &style_sets[GEANY_FILETYPES_MAKE].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "ideol", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_MAKE].styling[6]);
+	get_keyfile_hex(config, config_home, "preprocessor", 0x007f7f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_MAKE].styling[2]);
+	get_keyfile_hex(config, config_home, "identifier", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_MAKE].styling[3]);
+	get_keyfile_hex(config, config_home, "operator", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_MAKE].styling[4]);
+	get_keyfile_hex(config, config_home, "target", 0x0000ff, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_MAKE].styling[5]);
+	get_keyfile_hex(config, config_home, "ideol", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_MAKE].styling[6]);
 
 	style_sets[GEANY_FILETYPES_MAKE].keywords = NULL;
 
@@ -1078,14 +1038,14 @@
 static void styleset_diff_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_DIFF, 8);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DIFF].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DIFF].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "command", "0x7f7f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DIFF].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "header", "0x7f0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DIFF].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "position", "0x00007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DIFF].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "deleted", "0xff2727", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DIFF].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "added", "0x34b034", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DIFF].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "changed", "0x7f007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DIFF].styling[7]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DIFF].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DIFF].styling[1]);
+	get_keyfile_hex(config, config_home, "command", 0x7f7f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DIFF].styling[2]);
+	get_keyfile_hex(config, config_home, "header", 0x7f0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DIFF].styling[3]);
+	get_keyfile_hex(config, config_home, "position", 0x00007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DIFF].styling[4]);
+	get_keyfile_hex(config, config_home, "deleted", 0xff2727, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DIFF].styling[5]);
+	get_keyfile_hex(config, config_home, "added", 0x34b034, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DIFF].styling[6]);
+	get_keyfile_hex(config, config_home, "changed", 0x7f007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DIFF].styling[7]);
 
 	style_sets[GEANY_FILETYPES_DIFF].keywords = NULL;
 
@@ -1115,11 +1075,11 @@
 static void styleset_latex_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_LATEX, 5);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x00002f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_LATEX].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "command", "0xff0000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_LATEX].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "tag", "0x007f7f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_LATEX].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "math", "0x00007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_LATEX].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_LATEX].styling[4]);
+	get_keyfile_hex(config, config_home, "default", 0x00002f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_LATEX].styling[0]);
+	get_keyfile_hex(config, config_home, "command", 0xff0000, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_LATEX].styling[1]);
+	get_keyfile_hex(config, config_home, "tag", 0x007f7f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_LATEX].styling[2]);
+	get_keyfile_hex(config, config_home, "math", 0x00007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_LATEX].styling[3]);
+	get_keyfile_hex(config, config_home, "comment", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_LATEX].styling[4]);
 
 	style_sets[GEANY_FILETYPES_LATEX].keywords = g_new(gchar*, 2);
 	get_keyfile_keywords(config, config_home, "primary", GEANY_FILETYPES_LATEX, 0, "section subsection begin item");
@@ -1194,64 +1154,64 @@
 static void styleset_markup_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_XML, 55);
-	get_keyfile_hex(config, config_home, "styling", "html_default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "html_tag", "0x000099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "html_tagunknown", "0xff0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "html_attribute", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "html_attributeunknown", "0xff0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "html_number", "0x800080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "html_doublestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "html_singlestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "html_other", "0x800080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "html_comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "html_entity", "0x800080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "html_tagend", "0x000080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "html_xmlstart", "0x000099", "0xf0f0f0", "false", &style_sets[GEANY_FILETYPES_XML].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "html_xmlend", "0x000099", "0xf0f0f0", "false", &style_sets[GEANY_FILETYPES_XML].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "html_script", "0x000080", "0xf0f0f0", "false", &style_sets[GEANY_FILETYPES_XML].styling[14]);
-	get_keyfile_hex(config, config_home, "styling", "html_asp", "0x004f4f", "0xf0f0f0", "false", &style_sets[GEANY_FILETYPES_XML].styling[15]);
-	get_keyfile_hex(config, config_home, "styling", "html_aspat", "0x004f4f", "0xf0f0f0", "false", &style_sets[GEANY_FILETYPES_XML].styling[16]);
-	get_keyfile_hex(config, config_home, "styling", "html_cdata", "0x660099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[17]);
-	get_keyfile_hex(config, config_home, "styling", "html_question", "0x0000ff", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[18]);
-	get_keyfile_hex(config, config_home, "styling", "html_value", "0x660099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[19]);
-	get_keyfile_hex(config, config_home, "styling", "html_xccomment", "0x660099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[20]);
+	get_keyfile_hex(config, config_home, "html_default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[0]);
+	get_keyfile_hex(config, config_home, "html_tag", 0x000099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[1]);
+	get_keyfile_hex(config, config_home, "html_tagunknown", 0xff0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[2]);
+	get_keyfile_hex(config, config_home, "html_attribute", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[3]);
+	get_keyfile_hex(config, config_home, "html_attributeunknown", 0xff0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[4]);
+	get_keyfile_hex(config, config_home, "html_number", 0x800080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[5]);
+	get_keyfile_hex(config, config_home, "html_doublestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[6]);
+	get_keyfile_hex(config, config_home, "html_singlestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[7]);
+	get_keyfile_hex(config, config_home, "html_other", 0x800080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[8]);
+	get_keyfile_hex(config, config_home, "html_comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[9]);
+	get_keyfile_hex(config, config_home, "html_entity", 0x800080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[10]);
+	get_keyfile_hex(config, config_home, "html_tagend", 0x000080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[11]);
+	get_keyfile_hex(config, config_home, "html_xmlstart", 0x000099, 0xf0f0f0, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[12]);
+	get_keyfile_hex(config, config_home, "html_xmlend", 0x000099, 0xf0f0f0, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[13]);
+	get_keyfile_hex(config, config_home, "html_script", 0x000080, 0xf0f0f0, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[14]);
+	get_keyfile_hex(config, config_home, "html_asp", 0x004f4f, 0xf0f0f0, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[15]);
+	get_keyfile_hex(config, config_home, "html_aspat", 0x004f4f, 0xf0f0f0, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[16]);
+	get_keyfile_hex(config, config_home, "html_cdata", 0x660099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[17]);
+	get_keyfile_hex(config, config_home, "html_question", 0x0000ff, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[18]);
+	get_keyfile_hex(config, config_home, "html_value", 0x660099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[19]);
+	get_keyfile_hex(config, config_home, "html_xccomment", 0x660099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[20]);
 
-	get_keyfile_hex(config, config_home, "styling", "sgml_default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[21]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[22]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_special", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[23]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_command", "0x111199", "0xffffff", "true", &style_sets[GEANY_FILETYPES_XML].styling[24]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_doublestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[25]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_simplestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[26]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_1st_param", "0x404080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[27]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_entity", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[28]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_block_default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[29]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_1st_param_comment", "0x406090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[30]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_error", "0xff0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[31]);
+	get_keyfile_hex(config, config_home, "sgml_default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[21]);
+	get_keyfile_hex(config, config_home, "sgml_comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[22]);
+	get_keyfile_hex(config, config_home, "sgml_special", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[23]);
+	get_keyfile_hex(config, config_home, "sgml_command", 0x111199, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_XML].styling[24]);
+	get_keyfile_hex(config, config_home, "sgml_doublestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[25]);
+	get_keyfile_hex(config, config_home, "sgml_simplestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[26]);
+	get_keyfile_hex(config, config_home, "sgml_1st_param", 0x404080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[27]);
+	get_keyfile_hex(config, config_home, "sgml_entity", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[28]);
+	get_keyfile_hex(config, config_home, "sgml_block_default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[29]);
+	get_keyfile_hex(config, config_home, "sgml_1st_param_comment", 0x406090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[30]);
+	get_keyfile_hex(config, config_home, "sgml_error", 0xff0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[31]);
 
-	get_keyfile_hex(config, config_home, "styling", "php_default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[32]);
-	get_keyfile_hex(config, config_home, "styling", "php_simplestring", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[33]);
-	get_keyfile_hex(config, config_home, "styling", "php_hstring", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[34]);
-	get_keyfile_hex(config, config_home, "styling", "php_number", "0x606000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[35]);
-	get_keyfile_hex(config, config_home, "styling", "php_word", "0x000099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[36]);
-	get_keyfile_hex(config, config_home, "styling", "php_variable", "0x7f0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[37]);
-	get_keyfile_hex(config, config_home, "styling", "php_comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[38]);
-	get_keyfile_hex(config, config_home, "styling", "php_commentline", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[39]);
-	get_keyfile_hex(config, config_home, "styling", "php_operator", "0x102060", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[40]);
-	get_keyfile_hex(config, config_home, "styling", "php_hstring_variable", "0x101060", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[41]);
-	get_keyfile_hex(config, config_home, "styling", "php_complex_variable", "0x105010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[42]);
+	get_keyfile_hex(config, config_home, "php_default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[32]);
+	get_keyfile_hex(config, config_home, "php_simplestring", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[33]);
+	get_keyfile_hex(config, config_home, "php_hstring", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[34]);
+	get_keyfile_hex(config, config_home, "php_number", 0x606000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[35]);
+	get_keyfile_hex(config, config_home, "php_word", 0x000099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[36]);
+	get_keyfile_hex(config, config_home, "php_variable", 0x7f0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[37]);
+	get_keyfile_hex(config, config_home, "php_comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[38]);
+	get_keyfile_hex(config, config_home, "php_commentline", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[39]);
+	get_keyfile_hex(config, config_home, "php_operator", 0x102060, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[40]);
+	get_keyfile_hex(config, config_home, "php_hstring_variable", 0x101060, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[41]);
+	get_keyfile_hex(config, config_home, "php_complex_variable", 0x105010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[42]);
 
-	get_keyfile_hex(config, config_home, "styling", "jscript_start", "0x008080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[43]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[44]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_comment", "0xd00000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[45]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_commentline", "0xd00000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[46]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_commentdoc", "0x3f5fbf", "0xffffff", "true", &style_sets[GEANY_FILETYPES_XML].styling[47]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_number", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[48]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_word", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[49]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_keyword", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_XML].styling[50]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_doublestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[51]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_singlestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[52]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_symbols", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_XML].styling[53]);
-	get_keyfile_hex(config, config_home, "styling", "jscript_stringeol", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_XML].styling[54]);
+	get_keyfile_hex(config, config_home, "jscript_start", 0x008080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[43]);
+	get_keyfile_hex(config, config_home, "jscript_default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[44]);
+	get_keyfile_hex(config, config_home, "jscript_comment", 0xd00000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[45]);
+	get_keyfile_hex(config, config_home, "jscript_commentline", 0xd00000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[46]);
+	get_keyfile_hex(config, config_home, "jscript_commentdoc", 0x3f5fbf, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_XML].styling[47]);
+	get_keyfile_hex(config, config_home, "jscript_number", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[48]);
+	get_keyfile_hex(config, config_home, "jscript_word", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[49]);
+	get_keyfile_hex(config, config_home, "jscript_keyword", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_XML].styling[50]);
+	get_keyfile_hex(config, config_home, "jscript_doublestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[51]);
+	get_keyfile_hex(config, config_home, "jscript_singlestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[52]);
+	get_keyfile_hex(config, config_home, "jscript_symbols", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[53]);
+	get_keyfile_hex(config, config_home, "jscript_stringeol", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_XML].styling[54]);
 
 	style_sets[GEANY_FILETYPES_XML].keywords = g_new(gchar*, 7);
 	get_keyfile_keywords(config, config_home, "html", GEANY_FILETYPES_XML, 0, "a abbr acronym address applet area b base basefont bdo big blockquote body br button caption center cite code col colgroup dd del dfn dir div dl dt em embed fieldset font form frame frameset h1 h2 h3 h4 h5 h6 head hr html i iframe img input ins isindex kbd label legend li link map menu meta noframes noscript object ol optgroup option p param pre q quality s samp script select small span strike strong style sub sup table tbody td textarea tfoot th thead title tr tt u ul var xmlns leftmargin topmargin abbr accept-charset accept accesskey action align alink alt archive axis background bgcolor border cellpadding cellspacing char charoff charset checked cite class classid clear codebase codetype color cols colspan compact content coords data datafld dataformatas datapagesize datasrc datetime declare defer dir disabled enctype face for frame frameborder selected headers height href hreflang hspace http-equiv id ismap label lang language link longdesc marginwidth marginheight maxlength media framespacing method multiple name nohref noresize noshade nowrap object onblur onchange onclick ondblclick onfocus onkeydown onkeypress onkeyup onload onmousedown onmousemove onmouseover onmouseout onmouseup onreset onselect onsubmit onunload profile prompt pluginspage readonly rel rev rows rowspan rules scheme scope scrolling shape size span src standby start style summary tabindex target text title type usemap valign value valuetype version vlink vspace width text password checkbox radio submit reset file hidden image public doctype xml xml:lang");
@@ -1463,41 +1423,41 @@
 static void styleset_perl_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_PERL, 35);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "error", "0xff0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[1]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[0]);
+	get_keyfile_hex(config, config_home, "error", 0xff0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[1]);
 	get_keyfile_style(config, config_home, "commentline", &gsd_comment, &style_sets[GEANY_FILETYPES_PERL].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "word", "0x111199", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PERL].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "string", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "character", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "preprocessor", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "scalar", "0x7f0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "pod", "0x035650", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "regex", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "array", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "hash", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[14]);
-	get_keyfile_hex(config, config_home, "styling", "symboltable", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[15]);
-	get_keyfile_hex(config, config_home, "styling", "backticks", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_PERL].styling[16]);
-	get_keyfile_hex(config, config_home, "styling", "pod_verbatim", "0x004000", "0xc0ffc0", "false", &style_sets[GEANY_FILETYPES_PERL].styling[17]);
-	get_keyfile_hex(config, config_home, "styling", "reg_subst", "0x000000", "0xf0e080", "false", &style_sets[GEANY_FILETYPES_PERL].styling[18]);
-	get_keyfile_hex(config, config_home, "styling", "datasection", "0x600000", "0xfff0d8", "false", &style_sets[GEANY_FILETYPES_PERL].styling[19]);
-	get_keyfile_hex(config, config_home, "styling", "here_delim", "0x000000", "0xddd0dd", "false", &style_sets[GEANY_FILETYPES_PERL].styling[20]);
-	get_keyfile_hex(config, config_home, "styling", "here_q", "0x7f007f", "0xddd0dd", "false", &style_sets[GEANY_FILETYPES_PERL].styling[21]);
-	get_keyfile_hex(config, config_home, "styling", "here_qq", "0x7f007f", "0xddd0dd", "true", &style_sets[GEANY_FILETYPES_PERL].styling[22]);
-	get_keyfile_hex(config, config_home, "styling", "here_qx", "0x7f007f", "0xddd0dd", "true", &style_sets[GEANY_FILETYPES_PERL].styling[23]);
-	get_keyfile_hex(config, config_home, "styling", "string_q", "0x7f007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[24]);
-	get_keyfile_hex(config, config_home, "styling", "string_qq", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[25]);
-	get_keyfile_hex(config, config_home, "styling", "string_qx", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_PERL].styling[26]);
-	get_keyfile_hex(config, config_home, "styling", "string_qr", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[27]);
-	get_keyfile_hex(config, config_home, "styling", "string_qw", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[28]);
-	get_keyfile_hex(config, config_home, "styling", "variable_indexer", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[29]);
-	get_keyfile_hex(config, config_home, "styling", "punctuation", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[30]);
-	get_keyfile_hex(config, config_home, "styling", "longquote", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[31]);
-	get_keyfile_hex(config, config_home, "styling", "sub_prototype", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[32]);
-	get_keyfile_hex(config, config_home, "styling", "format_ident", "0xc000c0", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PERL].styling[33]);
-	get_keyfile_hex(config, config_home, "styling", "format", "0xc000c0", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PERL].styling[34]);
+	get_keyfile_hex(config, config_home, "number", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[3]);
+	get_keyfile_hex(config, config_home, "word", 0x111199, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PERL].styling[4]);
+	get_keyfile_hex(config, config_home, "string", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[5]);
+	get_keyfile_hex(config, config_home, "character", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[6]);
+	get_keyfile_hex(config, config_home, "preprocessor", 0x007f7f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[7]);
+	get_keyfile_hex(config, config_home, "operator", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[8]);
+	get_keyfile_hex(config, config_home, "identifier", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[9]);
+	get_keyfile_hex(config, config_home, "scalar", 0x7f0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[10]);
+	get_keyfile_hex(config, config_home, "pod", 0x035650, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[11]);
+	get_keyfile_hex(config, config_home, "regex", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[12]);
+	get_keyfile_hex(config, config_home, "array", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[13]);
+	get_keyfile_hex(config, config_home, "hash", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[14]);
+	get_keyfile_hex(config, config_home, "symboltable", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[15]);
+	get_keyfile_hex(config, config_home, "backticks", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[16]);
+	get_keyfile_hex(config, config_home, "pod_verbatim", 0x004000, 0xc0ffc0, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[17]);
+	get_keyfile_hex(config, config_home, "reg_subst", 0x000000, 0xf0e080, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[18]);
+	get_keyfile_hex(config, config_home, "datasection", 0x600000, 0xfff0d8, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[19]);
+	get_keyfile_hex(config, config_home, "here_delim", 0x000000, 0xddd0dd, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[20]);
+	get_keyfile_hex(config, config_home, "here_q", 0x7f007f, 0xddd0dd, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[21]);
+	get_keyfile_hex(config, config_home, "here_qq", 0x7f007f, 0xddd0dd, TRUE, &style_sets[GEANY_FILETYPES_PERL].styling[22]);
+	get_keyfile_hex(config, config_home, "here_qx", 0x7f007f, 0xddd0dd, TRUE, &style_sets[GEANY_FILETYPES_PERL].styling[23]);
+	get_keyfile_hex(config, config_home, "string_q", 0x7f007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[24]);
+	get_keyfile_hex(config, config_home, "string_qq", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[25]);
+	get_keyfile_hex(config, config_home, "string_qx", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[26]);
+	get_keyfile_hex(config, config_home, "string_qr", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[27]);
+	get_keyfile_hex(config, config_home, "string_qw", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[28]);
+	get_keyfile_hex(config, config_home, "variable_indexer", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[29]);
+	get_keyfile_hex(config, config_home, "punctuation", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[30]);
+	get_keyfile_hex(config, config_home, "longquote", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[31]);
+	get_keyfile_hex(config, config_home, "sub_prototype", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[32]);
+	get_keyfile_hex(config, config_home, "format_ident", 0xc000c0, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PERL].styling[33]);
+	get_keyfile_hex(config, config_home, "format", 0xc000c0, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PERL].styling[34]);
 
 
 	style_sets[GEANY_FILETYPES_PERL].keywords = g_new(gchar*, 2);
@@ -1588,22 +1548,22 @@
 static void styleset_python_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_PYTHON, 16);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "commentline", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x400080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "string", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "character", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "word", "0x600080", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PYTHON].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "triple", "0x008020", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "tripledouble", "0x404000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "classname", "0x003030", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "defname", "0x000080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x300080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "commentblock", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "stringeol", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "word2", "0xdd00a6", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PYTHON].styling[14]);
-	get_keyfile_hex(config, config_home, "styling", "decorator", "0x808000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PYTHON].styling[15]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[0]);
+	get_keyfile_hex(config, config_home, "commentline", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[1]);
+	get_keyfile_hex(config, config_home, "number", 0x400080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[2]);
+	get_keyfile_hex(config, config_home, "string", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[3]);
+	get_keyfile_hex(config, config_home, "character", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[4]);
+	get_keyfile_hex(config, config_home, "word", 0x600080, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PYTHON].styling[5]);
+	get_keyfile_hex(config, config_home, "triple", 0x008020, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[6]);
+	get_keyfile_hex(config, config_home, "tripledouble", 0x404000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[7]);
+	get_keyfile_hex(config, config_home, "classname", 0x003030, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[8]);
+	get_keyfile_hex(config, config_home, "defname", 0x000080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[9]);
+	get_keyfile_hex(config, config_home, "operator", 0x300080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[10]);
+	get_keyfile_hex(config, config_home, "identifier", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[11]);
+	get_keyfile_hex(config, config_home, "commentblock", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[12]);
+	get_keyfile_hex(config, config_home, "stringeol", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[13]);
+	get_keyfile_hex(config, config_home, "word2", 0xdd00a6, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PYTHON].styling[14]);
+	get_keyfile_hex(config, config_home, "decorator", 0x808000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PYTHON].styling[15]);
 
 	style_sets[GEANY_FILETYPES_PYTHON].keywords = g_new(gchar*, 3);
 	get_keyfile_keywords(config, config_home, "primary", GEANY_FILETYPES_PYTHON, 0, "and as assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while with yield False None True");
@@ -1650,21 +1610,21 @@
 static void styleset_cmake_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_CMAKE, 15);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "stringdq", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "stringlq", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "stringrq", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "command", "0x00007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "parameters", "0x991111", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "variable", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "userdefined", "0x0000d0", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CMAKE].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "whiledef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CMAKE].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "foreachdef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CMAKE].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "ifdefinedef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CMAKE].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "macrodef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CMAKE].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "stringvar", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CMAKE].styling[14]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[1]);
+	get_keyfile_hex(config, config_home, "stringdq", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[2]);
+	get_keyfile_hex(config, config_home, "stringlq", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[3]);
+	get_keyfile_hex(config, config_home, "stringrq", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[4]);
+	get_keyfile_hex(config, config_home, "command", 0x00007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[5]);
+	get_keyfile_hex(config, config_home, "parameters", 0x991111, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[6]);
+	get_keyfile_hex(config, config_home, "variable", 0x007f7f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[7]);
+	get_keyfile_hex(config, config_home, "userdefined", 0x0000d0, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CMAKE].styling[8]);
+	get_keyfile_hex(config, config_home, "whiledef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CMAKE].styling[9]);
+	get_keyfile_hex(config, config_home, "foreachdef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CMAKE].styling[10]);
+	get_keyfile_hex(config, config_home, "ifdefinedef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CMAKE].styling[11]);
+	get_keyfile_hex(config, config_home, "macrodef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CMAKE].styling[12]);
+	get_keyfile_hex(config, config_home, "stringvar", 0x007f7f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[13]);
+	get_keyfile_hex(config, config_home, "number", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CMAKE].styling[14]);
 
 	style_sets[GEANY_FILETYPES_CMAKE].keywords = g_new(gchar*, 4);
 	get_keyfile_keywords(config, config_home, "commands", GEANY_FILETYPES_CMAKE, 0, "");
@@ -1710,18 +1670,18 @@
 {
 	new_style_array(GEANY_FILETYPES_R, 12);
 
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "kword", "0x00007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "basekword", "0x991111", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "otherkword", "0x991111", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "string", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "string2", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "infix", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_R].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "infixeol", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_R].styling[11]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[1]);
+	get_keyfile_hex(config, config_home, "kword", 0x00007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[2]);
+	get_keyfile_hex(config, config_home, "operator", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[3]);
+	get_keyfile_hex(config, config_home, "basekword", 0x991111, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[4]);
+	get_keyfile_hex(config, config_home, "otherkword", 0x991111, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[5]);
+	get_keyfile_hex(config, config_home, "number", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[6]);
+	get_keyfile_hex(config, config_home, "string", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[7]);
+	get_keyfile_hex(config, config_home, "string2", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[8]);
+	get_keyfile_hex(config, config_home, "identifier", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[9]);
+	get_keyfile_hex(config, config_home, "infix", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_R].styling[10]);
+	get_keyfile_hex(config, config_home, "infixeol", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_R].styling[11]);
 
 	style_sets[GEANY_FILETYPES_R].keywords = g_new(gchar*, 4);
 	get_keyfile_keywords(config, config_home, "primary", GEANY_FILETYPES_R, 0, "abs array data.frame diag for function if matrix NCOL NROW print read.table require return solve source sqrt sum while");
@@ -1763,41 +1723,41 @@
 static void styleset_ruby_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_RUBY, 35);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[0]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[0]);
 	get_keyfile_style(config, config_home, "commentline", &gsd_comment, &style_sets[GEANY_FILETYPES_RUBY].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x400080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "string", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "character", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "word", "0x111199", "0xffffff", "true", &style_sets[GEANY_FILETYPES_RUBY].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "global", "0x111199", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "symbol", "0x008020", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "classname", "0x7f0000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_RUBY].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "defname", "0x7f0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "modulename", "0x111199", "0xffffff", "true", &style_sets[GEANY_FILETYPES_RUBY].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "backticks", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "instancevar", "0x000000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_RUBY].styling[14]);
-	get_keyfile_hex(config, config_home, "styling", "classvar", "0x000000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_RUBY].styling[15]);
-	get_keyfile_hex(config, config_home, "styling", "datasection", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[16]);
-	get_keyfile_hex(config, config_home, "styling", "heredelim", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[17]);
-	get_keyfile_hex(config, config_home, "styling", "worddemoted", "0x111199", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[18]);
-	get_keyfile_hex(config, config_home, "styling", "stdin", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[19]);
-	get_keyfile_hex(config, config_home, "styling", "stdout", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[20]);
-	get_keyfile_hex(config, config_home, "styling", "stderr", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[21]);
-	get_keyfile_hex(config, config_home, "styling", "datasection", "0x600000", "0xfff0d8", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[22]);
-	get_keyfile_hex(config, config_home, "styling", "regex", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[23]);
-	get_keyfile_hex(config, config_home, "styling", "here_q", "0x7f007f", "0xddd0dd", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[24]);
-	get_keyfile_hex(config, config_home, "styling", "here_qq", "0x7f007f", "0xddd0dd", "true", &style_sets[GEANY_FILETYPES_RUBY].styling[25]);
-	get_keyfile_hex(config, config_home, "styling", "here_qx", "0x7f007f", "0xddd0dd", "true", &style_sets[GEANY_FILETYPES_RUBY].styling[26]);
-	get_keyfile_hex(config, config_home, "styling", "string_q", "0x7f007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[27]);
-	get_keyfile_hex(config, config_home, "styling", "string_qq", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[28]);
-	get_keyfile_hex(config, config_home, "styling", "string_qx", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[29]);
-	get_keyfile_hex(config, config_home, "styling", "string_qr", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[30]);
-	get_keyfile_hex(config, config_home, "styling", "string_qw", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[31]);
-	get_keyfile_hex(config, config_home, "styling", "upper_bound", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[32]);
-	get_keyfile_hex(config, config_home, "styling", "error", "0xe500cc", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[33]);
-	get_keyfile_hex(config, config_home, "styling", "pod", "0x035650", "0xffffff", "false", &style_sets[GEANY_FILETYPES_RUBY].styling[34]);
+	get_keyfile_hex(config, config_home, "number", 0x400080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[2]);
+	get_keyfile_hex(config, config_home, "string", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[3]);
+	get_keyfile_hex(config, config_home, "character", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[4]);
+	get_keyfile_hex(config, config_home, "word", 0x111199, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_RUBY].styling[5]);
+	get_keyfile_hex(config, config_home, "global", 0x111199, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[6]);
+	get_keyfile_hex(config, config_home, "symbol", 0x008020, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[7]);
+	get_keyfile_hex(config, config_home, "classname", 0x7f0000, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_RUBY].styling[8]);
+	get_keyfile_hex(config, config_home, "defname", 0x7f0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[9]);
+	get_keyfile_hex(config, config_home, "operator", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[10]);
+	get_keyfile_hex(config, config_home, "identifier", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[11]);
+	get_keyfile_hex(config, config_home, "modulename", 0x111199, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_RUBY].styling[12]);
+	get_keyfile_hex(config, config_home, "backticks", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[13]);
+	get_keyfile_hex(config, config_home, "instancevar", 0x000000, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_RUBY].styling[14]);
+	get_keyfile_hex(config, config_home, "classvar", 0x000000, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_RUBY].styling[15]);
+	get_keyfile_hex(config, config_home, "datasection", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[16]);
+	get_keyfile_hex(config, config_home, "heredelim", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[17]);
+	get_keyfile_hex(config, config_home, "worddemoted", 0x111199, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[18]);
+	get_keyfile_hex(config, config_home, "stdin", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[19]);
+	get_keyfile_hex(config, config_home, "stdout", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[20]);
+	get_keyfile_hex(config, config_home, "stderr", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[21]);
+	get_keyfile_hex(config, config_home, "datasection", 0x600000, 0xfff0d8, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[22]);
+	get_keyfile_hex(config, config_home, "regex", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[23]);
+	get_keyfile_hex(config, config_home, "here_q", 0x7f007f, 0xddd0dd, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[24]);
+	get_keyfile_hex(config, config_home, "here_qq", 0x7f007f, 0xddd0dd, TRUE, &style_sets[GEANY_FILETYPES_RUBY].styling[25]);
+	get_keyfile_hex(config, config_home, "here_qx", 0x7f007f, 0xddd0dd, TRUE, &style_sets[GEANY_FILETYPES_RUBY].styling[26]);
+	get_keyfile_hex(config, config_home, "string_q", 0x7f007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[27]);
+	get_keyfile_hex(config, config_home, "string_qq", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[28]);
+	get_keyfile_hex(config, config_home, "string_qx", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[29]);
+	get_keyfile_hex(config, config_home, "string_qr", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[30]);
+	get_keyfile_hex(config, config_home, "string_qw", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[31]);
+	get_keyfile_hex(config, config_home, "upper_bound", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[32]);
+	get_keyfile_hex(config, config_home, "error", 0xe500cc, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[33]);
+	get_keyfile_hex(config, config_home, "pod", 0x035650, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_RUBY].styling[34]);
 
 	style_sets[GEANY_FILETYPES_RUBY].keywords = g_new(gchar*, 2);
 	get_keyfile_keywords(config, config_home, "primary", GEANY_FILETYPES_RUBY, 0, "load define_method attr_accessor attr_writer attr_reader include __FILE__ and def end in or self unless __LINE__ begin defined? ensure module redo super until BEGIN break do false next rescue then when END case else for nil require retry true while alias class elsif if not return undef yield");
@@ -1858,20 +1818,20 @@
 static void styleset_sh_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_SH, 14);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[0]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[0]);
 	get_keyfile_style(config, config_home, "commentline", &gsd_comment, &style_sets[GEANY_FILETYPES_SH].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "word", "0x119911", "0xffffff", "true", &style_sets[GEANY_FILETYPES_SH].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "string", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "character", "0x404000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "backticks", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_SH].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "param", "0x9f0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "scalar", "0x105090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "error", "0xff0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_SH].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "here_delim", "0x000000", "0xddd0dd", "false", &style_sets[GEANY_FILETYPES_SH].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "here_q", "0x7f007f", "0xddd0dd", "false", &style_sets[GEANY_FILETYPES_SH].styling[13]);
+	get_keyfile_hex(config, config_home, "number", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[2]);
+	get_keyfile_hex(config, config_home, "word", 0x119911, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_SH].styling[3]);
+	get_keyfile_hex(config, config_home, "string", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[4]);
+	get_keyfile_hex(config, config_home, "character", 0x404000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[5]);
+	get_keyfile_hex(config, config_home, "operator", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[6]);
+	get_keyfile_hex(config, config_home, "identifier", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[7]);
+	get_keyfile_hex(config, config_home, "backticks", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[8]);
+	get_keyfile_hex(config, config_home, "param", 0x9f0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[9]);
+	get_keyfile_hex(config, config_home, "scalar", 0x105090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[10]);
+	get_keyfile_hex(config, config_home, "error", 0xff0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[11]);
+	get_keyfile_hex(config, config_home, "here_delim", 0x000000, 0xddd0dd, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[12]);
+	get_keyfile_hex(config, config_home, "here_q", 0x7f007f, 0xddd0dd, FALSE, &style_sets[GEANY_FILETYPES_SH].styling[13]);
 
 	style_sets[GEANY_FILETYPES_SH].keywords = g_new(gchar*, 2);
 	get_keyfile_keywords(config, config_home, "primary", GEANY_FILETYPES_SH, 0, "break case continue do done elif else esac eval exit export fi for goto if in integer return set shift then until while");
@@ -1922,35 +1882,35 @@
 static void styleset_docbook_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_DOCBOOK, 29);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "tag", "0x000099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "tagunknown", "0xff0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "attribute", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "attributeunknown", "0xff0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x800080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "doublestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "singlestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "other", "0x800080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "entity", "0x800080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "tagend", "0x000099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "xmlstart", "0x000099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "xmlend", "0x000099", "0xf0f0f0", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "cdata", "0x660099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[14]);
-	get_keyfile_hex(config, config_home, "styling", "question", "0x0000ff", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[15]);
-	get_keyfile_hex(config, config_home, "styling", "value", "0x660099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[16]);
-	get_keyfile_hex(config, config_home, "styling", "xccomment", "0x660099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[17]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[18]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_comment", "0x303030", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[19]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_special", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[20]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_command", "0x111199", "0xffffff", "true", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[21]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_doublestring", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[22]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_simplestring", "0x404000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[23]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_1st_param", "0x404080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[24]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_entity", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[25]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_block_default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[26]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_1st_param_comment", "0x406090", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[27]);
-	get_keyfile_hex(config, config_home, "styling", "sgml_error", "0xff0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_DOCBOOK].styling[28]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[0]);
+	get_keyfile_hex(config, config_home, "tag", 0x000099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[1]);
+	get_keyfile_hex(config, config_home, "tagunknown", 0xff0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[2]);
+	get_keyfile_hex(config, config_home, "attribute", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[3]);
+	get_keyfile_hex(config, config_home, "attributeunknown", 0xff0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[4]);
+	get_keyfile_hex(config, config_home, "number", 0x800080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[5]);
+	get_keyfile_hex(config, config_home, "doublestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[6]);
+	get_keyfile_hex(config, config_home, "singlestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[7]);
+	get_keyfile_hex(config, config_home, "other", 0x800080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[8]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[9]);
+	get_keyfile_hex(config, config_home, "entity", 0x800080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[10]);
+	get_keyfile_hex(config, config_home, "tagend", 0x000099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[11]);
+	get_keyfile_hex(config, config_home, "xmlstart", 0x000099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[12]);
+	get_keyfile_hex(config, config_home, "xmlend", 0x000099, 0xf0f0f0, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[13]);
+	get_keyfile_hex(config, config_home, "cdata", 0x660099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[14]);
+	get_keyfile_hex(config, config_home, "question", 0x0000ff, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[15]);
+	get_keyfile_hex(config, config_home, "value", 0x660099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[16]);
+	get_keyfile_hex(config, config_home, "xccomment", 0x660099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[17]);
+	get_keyfile_hex(config, config_home, "sgml_default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[18]);
+	get_keyfile_hex(config, config_home, "sgml_comment", 0x303030, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[19]);
+	get_keyfile_hex(config, config_home, "sgml_special", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[20]);
+	get_keyfile_hex(config, config_home, "sgml_command", 0x111199, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[21]);
+	get_keyfile_hex(config, config_home, "sgml_doublestring", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[22]);
+	get_keyfile_hex(config, config_home, "sgml_simplestring", 0x404000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[23]);
+	get_keyfile_hex(config, config_home, "sgml_1st_param", 0x404080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[24]);
+	get_keyfile_hex(config, config_home, "sgml_entity", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[25]);
+	get_keyfile_hex(config, config_home, "sgml_block_default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[26]);
+	get_keyfile_hex(config, config_home, "sgml_1st_param_comment", 0x406090, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[27]);
+	get_keyfile_hex(config, config_home, "sgml_error", 0xff0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_DOCBOOK].styling[28]);
 
 	style_sets[GEANY_FILETYPES_DOCBOOK].keywords = g_new(gchar*, 3);
 	get_keyfile_keywords(config, config_home, "elements", GEANY_FILETYPES_DOCBOOK, 0,
@@ -2083,28 +2043,28 @@
 static void styleset_css_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_CSS, 22);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x003399", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "tag", "0x2166a4", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "class", "0x007f00", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "pseudoclass", "0x660010", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "unknown_pseudoclass", "0xff0099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "unknown_identifier", "0xff0099", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x000099", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "doublestring", "0x330066", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "singlestring", "0x330066", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "attribute", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "value", "0x303030", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "id", "0xff9000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "identifier2", "0x6b6bff", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[14]);
-	get_keyfile_hex(config, config_home, "styling", "important", "0x990000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[15]);
-	get_keyfile_hex(config, config_home, "styling", "directive", "0x006bff", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CSS].styling[16]);
-	get_keyfile_hex(config, config_home, "styling", "identifier3", "0x00c8ff", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[17]);
-	get_keyfile_hex(config, config_home, "styling", "pseudoelement", "0x666610", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[18]);
-	get_keyfile_hex(config, config_home, "styling", "extended_identifier", "0x9090a0", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[19]);
-	get_keyfile_hex(config, config_home, "styling", "extended_pseudoclass", "0x907080", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[20]);
-	get_keyfile_hex(config, config_home, "styling", "extended_pseudoelement", "0x909080", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CSS].styling[21]);
+	get_keyfile_hex(config, config_home, "default", 0x003399, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[1]);
+	get_keyfile_hex(config, config_home, "tag", 0x2166a4, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[2]);
+	get_keyfile_hex(config, config_home, "class", 0x007f00, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[3]);
+	get_keyfile_hex(config, config_home, "pseudoclass", 0x660010, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[4]);
+	get_keyfile_hex(config, config_home, "unknown_pseudoclass", 0xff0099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[5]);
+	get_keyfile_hex(config, config_home, "unknown_identifier", 0xff0099, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[6]);
+	get_keyfile_hex(config, config_home, "operator", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[7]);
+	get_keyfile_hex(config, config_home, "identifier", 0x000099, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[8]);
+	get_keyfile_hex(config, config_home, "doublestring", 0x330066, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[9]);
+	get_keyfile_hex(config, config_home, "singlestring", 0x330066, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[10]);
+	get_keyfile_hex(config, config_home, "attribute", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[11]);
+	get_keyfile_hex(config, config_home, "value", 0x303030, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[12]);
+	get_keyfile_hex(config, config_home, "id", 0xff9000, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[13]);
+	get_keyfile_hex(config, config_home, "identifier2", 0x6b6bff, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[14]);
+	get_keyfile_hex(config, config_home, "important", 0x990000, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[15]);
+	get_keyfile_hex(config, config_home, "directive", 0x006bff, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CSS].styling[16]);
+	get_keyfile_hex(config, config_home, "identifier3", 0x00c8ff, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[17]);
+	get_keyfile_hex(config, config_home, "pseudoelement", 0x666610, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[18]);
+	get_keyfile_hex(config, config_home, "extended_identifier", 0x9090a0, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[19]);
+	get_keyfile_hex(config, config_home, "extended_pseudoclass", 0x907080, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[20]);
+	get_keyfile_hex(config, config_home, "extended_pseudoelement", 0x909080, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CSS].styling[21]);
 
 	style_sets[GEANY_FILETYPES_CSS].keywords = g_new(gchar*, 9);
 	get_keyfile_keywords(config, config_home, "primary", GEANY_FILETYPES_CSS, 0, "");
@@ -2163,25 +2123,25 @@
 static void styleset_nsis_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_NSIS, 19);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "stringdq", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "stringlq", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "stringrq", "0x008000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "function", "0x00007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "variable", "0x991111", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "label", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "userdefined", "0x0000d0", "0xffffff", "true", &style_sets[GEANY_FILETYPES_NSIS].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "sectiondef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_NSIS].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "subsectiondef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_NSIS].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "ifdefinedef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_NSIS].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "macrodef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_NSIS].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "stringvar", "0x991111", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[14]);
-	get_keyfile_hex(config, config_home, "styling", "sectiongroup", "00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_NSIS].styling[15]);
-	get_keyfile_hex(config, config_home, "styling", "pageex", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_NSIS].styling[16]);
-	get_keyfile_hex(config, config_home, "styling", "functiondef", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_NSIS].styling[17]);
-	get_keyfile_hex(config, config_home, "styling", "commentbox", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_NSIS].styling[18]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[1]);
+	get_keyfile_hex(config, config_home, "stringdq", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[2]);
+	get_keyfile_hex(config, config_home, "stringlq", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[3]);
+	get_keyfile_hex(config, config_home, "stringrq", 0x008000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[4]);
+	get_keyfile_hex(config, config_home, "function", 0x00007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[5]);
+	get_keyfile_hex(config, config_home, "variable", 0x991111, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[6]);
+	get_keyfile_hex(config, config_home, "label", 0x007f7f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[7]);
+	get_keyfile_hex(config, config_home, "userdefined", 0x0000d0, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_NSIS].styling[8]);
+	get_keyfile_hex(config, config_home, "sectiondef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_NSIS].styling[9]);
+	get_keyfile_hex(config, config_home, "subsectiondef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_NSIS].styling[10]);
+	get_keyfile_hex(config, config_home, "ifdefinedef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_NSIS].styling[11]);
+	get_keyfile_hex(config, config_home, "macrodef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_NSIS].styling[12]);
+	get_keyfile_hex(config, config_home, "stringvar", 0x991111, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[13]);
+	get_keyfile_hex(config, config_home, "number", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[14]);
+	get_keyfile_hex(config, config_home, "sectiongroup", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_NSIS].styling[15]);
+	get_keyfile_hex(config, config_home, "pageex", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_NSIS].styling[16]);
+	get_keyfile_hex(config, config_home, "functiondef", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_NSIS].styling[17]);
+	get_keyfile_hex(config, config_home, "commentbox", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_NSIS].styling[18]);
 
 	style_sets[GEANY_FILETYPES_NSIS].keywords = g_new(gchar*, 5);
 	get_keyfile_keywords(config, config_home, "functions", GEANY_FILETYPES_NSIS, 0, "");
@@ -2235,15 +2195,15 @@
 static void styleset_po_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_PO, 9);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x7f0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PO].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PO].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "msgid", "0x00007f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PO].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "msgid_text", "0x00007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PO].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "msgstr", "0x7f0000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PO].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "msgstr_text", "0x7f0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PO].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "msgctxt", "0x007f00", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PO].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "msgctxt_text", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_PO].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "fuzzy", "0xffa500", "0xffffff", "true", &style_sets[GEANY_FILETYPES_PO].styling[8]);
+	get_keyfile_hex(config, config_home, "default", 0x7f0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PO].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PO].styling[1]);
+	get_keyfile_hex(config, config_home, "msgid", 0x00007f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PO].styling[2]);
+	get_keyfile_hex(config, config_home, "msgid_text", 0x00007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PO].styling[3]);
+	get_keyfile_hex(config, config_home, "msgstr", 0x7f0000, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PO].styling[4]);
+	get_keyfile_hex(config, config_home, "msgstr_text", 0x7f0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PO].styling[5]);
+	get_keyfile_hex(config, config_home, "msgctxt", 0x007f00, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PO].styling[6]);
+	get_keyfile_hex(config, config_home, "msgctxt_text", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_PO].styling[7]);
+	get_keyfile_hex(config, config_home, "fuzzy", 0xffa500, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_PO].styling[8]);
 
 	style_sets[GEANY_FILETYPES_PO].keywords = NULL;
 
@@ -2274,12 +2234,12 @@
 static void styleset_conf_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_CONF, 6);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x7f0000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CONF].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CONF].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "section", "0x000090", "0xffffff", "true", &style_sets[GEANY_FILETYPES_CONF].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "key", "0x00007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CONF].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "assignment", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CONF].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "defval", "0x00007f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_CONF].styling[5]);
+	get_keyfile_hex(config, config_home, "default", 0x7f0000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CONF].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CONF].styling[1]);
+	get_keyfile_hex(config, config_home, "section", 0x000090, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_CONF].styling[2]);
+	get_keyfile_hex(config, config_home, "key", 0x00007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CONF].styling[3]);
+	get_keyfile_hex(config, config_home, "assignment", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CONF].styling[4]);
+	get_keyfile_hex(config, config_home, "defval", 0x00007f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_CONF].styling[5]);
 
 	style_sets[GEANY_FILETYPES_CONF].keywords = NULL;
 
@@ -2309,21 +2269,21 @@
 static void styleset_asm_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_ASM, 15);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "string", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x880000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "cpuinstruction", "0x111199", "0xffffff", "true", &style_sets[GEANY_FILETYPES_ASM].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "mathinstruction", "0x7f0000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_ASM].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "register", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "directive", "0x3d670f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_ASM].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "directiveoperand", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "commentblock", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "character", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "stringeol", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_ASM].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "extinstruction", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_ASM].styling[14]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[1]);
+	get_keyfile_hex(config, config_home, "number", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[2]);
+	get_keyfile_hex(config, config_home, "string", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[3]);
+	get_keyfile_hex(config, config_home, "operator", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[4]);
+	get_keyfile_hex(config, config_home, "identifier", 0x880000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[5]);
+	get_keyfile_hex(config, config_home, "cpuinstruction", 0x111199, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_ASM].styling[6]);
+	get_keyfile_hex(config, config_home, "mathinstruction", 0x7f0000, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_ASM].styling[7]);
+	get_keyfile_hex(config, config_home, "register", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[8]);
+	get_keyfile_hex(config, config_home, "directive", 0x3d670f, 0xffffff, TRUE, &style_sets[GEANY_FILETYPES_ASM].styling[9]);
+	get_keyfile_hex(config, config_home, "directiveoperand", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[10]);
+	get_keyfile_hex(config, config_home, "commentblock", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[11]);
+	get_keyfile_hex(config, config_home, "character", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[12]);
+	get_keyfile_hex(config, config_home, "stringeol", 0x000000, 0xe0c0e0, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[13]);
+	get_keyfile_hex(config, config_home, "extinstruction", 0x007f7f, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_ASM].styling[14]);
 
 	style_sets[GEANY_FILETYPES_ASM].keywords = g_new(gchar*, 4);
 	get_keyfile_keywords(config, config_home, "instructions", GEANY_FILETYPES_ASM, 0, "HLT LAD SPI ADD SUB MUL DIV JMP JEZ JGZ JLZ SWAP JSR RET PUSHAC POPAC ADDST SUBST MULST DIVST LSA LDS PUSH POP CLI LDI INK LIA DEK LDX");
@@ -2370,21 +2330,21 @@
 static void styleset_f77_init(gint ft_id, GKeyFile *config, GKeyFile *config_home)
 {
 	new_style_array(GEANY_FILETYPES_F77, 15);
-	get_keyfile_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_F77].styling[0]);
-	get_keyfile_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", &style_sets[GEANY_FILETYPES_F77].styling[1]);
-	get_keyfile_hex(config, config_home, "styling", "number", "0x007f00", "0xffffff", "false", &style_sets[GEANY_FILETYPES_F77].styling[2]);
-	get_keyfile_hex(config, config_home, "styling", "string", "0xff901e", "0xffffff", "false", &style_sets[GEANY_FILETYPES_F77].styling[3]);
-	get_keyfile_hex(config, config_home, "styling", "operator", "0x301010", "0xffffff", "false", &style_sets[GEANY_FILETYPES_F77].styling[4]);
-	get_keyfile_hex(config, config_home, "styling", "identifier", "0x000000", "0xffffff", "false", &style_sets[GEANY_FILETYPES_F77].styling[5]);
-	get_keyfile_hex(config, config_home, "styling", "string2", "0x111199", "0xffffff", "true", &style_sets[GEANY_FILETYPES_F77].styling[6]);
-	get_keyfile_hex(config, config_home, "styling", "word", "0x7f0000", "0xffffff", "true", &style_sets[GEANY_FILETYPES_F77].styling[7]);
-	get_keyfile_hex(config, config_home, "styling", "word2", "0x000099", "0xffffff", "true", &style_sets[GEANY_FILETYPES_F77].styling[8]);
-	get_keyfile_hex(config, config_home, "styling", "word3", "0x3d670f", "0xffffff", "true", &style_sets[GEANY_FILETYPES_F77].styling[9]);
-	get_keyfile_hex(config, config_home, "styling", "preprocessor", "0x007f7f", "0xffffff", "false", &style_sets[GEANY_FILETYPES_F77].styling[10]);
-	get_keyfile_hex(config, config_home, "styling", "operator2", "0x301010", "0xffffff", "true", &style_sets[GEANY_FILETYPES_F77].styling[11]);
-	get_keyfile_hex(config, config_home, "styling", "continuation", "0x000000", "0xf0e080", "false", &style_sets[GEANY_FILETYPES_F77].styling[12]);
-	get_keyfile_hex(config, config_home, "styling", "stringeol", "0x000000", "0xe0c0e0", "false", &style_sets[GEANY_FILETYPES_F77].styling[13]);
-	get_keyfile_hex(config, config_home, "styling", "label", "0xa861a8", "0xffffff", "true", &style_sets[GEANY_FILETYPES_F77].styling[14]);
+	get_keyfile_hex(config, config_home, "default", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_F77].styling[0]);
+	get_keyfile_hex(config, config_home, "comment", 0x808080, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_F77].styling[1]);
+	get_keyfile_hex(config, config_home, "number", 0x007f00, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_F77].styling[2]);
+	get_keyfile_hex(config, config_home, "string", 0xff901e, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_F77].styling[3]);
+	get_keyfile_hex(config, config_home, "operator", 0x301010, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_F77].styling[4]);
+	get_keyfile_hex(config, config_home, "identifier", 0x000000, 0xffffff, FALSE, &style_sets[GEANY_FILETYPES_F77].styling[5]);

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list