[geany/geany] 507005: Rename utils_strtod() to utils_parse_color()

Colomban Wendling git-noreply at xxxxx
Mon Dec 2 21:38:11 UTC 2013


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Mon, 02 Dec 2013 21:38:11 UTC
Commit:      507005ca549a4f6b7c45c1c27b4a219ca6b03f7e
             https://github.com/geany/geany/commit/507005ca549a4f6b7c45c1c27b4a219ca6b03f7e

Log Message:
-----------
Rename utils_strtod() to utils_parse_color()

Rename the function to a more sensible name, and remove unnecessary
arguments.  Now, format (# or 0x) is auto-detected.


Modified Paths:
--------------
    src/highlighting.c
    src/sciwrappers.c
    src/utils.c
    src/utils.h
    src/win32.c

Modified: src/highlighting.c
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -253,7 +253,7 @@ static void parse_color(GKeyFile *kf, const gchar *str, gint *clr)
 
 	g_free(named_color);
 
-	c = utils_strtod(hex_clr, NULL, FALSE);
+	c = utils_parse_color(hex_clr);
 
 	if (c > -1)
 	{


Modified: src/sciwrappers.c
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -69,7 +69,7 @@ void sci_set_line_numbers(ScintillaObject *sci, gboolean set, gint extra_width)
 
 void sci_set_mark_long_lines(ScintillaObject *sci, gint type, gint column, const gchar *colour)
 {
-	glong colour_val = utils_strtod(colour, NULL, TRUE); /* Scintilla uses a "long" value */
+	glong colour_val = utils_parse_color(colour); /* Scintilla uses a "long" value */
 
 	if (column == 0)
 		type = 2;


Modified: src/utils.c
33 files changed, 14 insertions(+), 19 deletions(-)
===================================================================
@@ -977,35 +977,30 @@ gchar *utils_make_human_readable_str(guint64 size, gulong block_size,
 }
 
 
-/* utils_strtod() converts a string containing a hex colour ("0x00ff00") into an integer.
- * Basically, it is the same as strtod() would do, but it does not understand hex colour values,
- * before ANSI-C99. With with_route set, it takes strings of the format "#00ff00".
- * Returns -1 on failure. */
-gint utils_strtod(const gchar *source, gchar **end, gboolean with_route)
+/* Converts a string containing a hex colour ("0x00ff00") into an integer.
+ * Returns an integer color in the format BBGGRR or -1 on failure. */
+gint utils_parse_color(const gchar *source)
 {
-	guint red, green, blue, offset = 0;
+	guint red, green, blue;
 
 	g_return_val_if_fail(source != NULL, -1);
 
-	if (with_route && (strlen(source) != 7 || source[0] != '#'))
-		return -1;
-	else if (! with_route && (strlen(source) != 8 || source[0] != '0' ||
-		(source[1] != 'x' && source[1] != 'X')))
-	{
+	if (source[0] == '#')
+		source++;
+	else if (source[0] == '0' && (source[1] == 'x' || source[1] == 'X'))
+		source += 2;
+	else
 		return -1;
-	}
 
-	/* offset is set to 1 when the string starts with 0x, otherwise it starts with #
-	 * and we don't need to increase the index */
-	if (! with_route)
-		offset = 1;
+	if (strlen(source) != 6)
+		return -1;
 
 	red = utils_get_value_of_hex(
-					source[1 + offset]) * 16 + utils_get_value_of_hex(source[2 + offset]);
+					source[0]) * 16 + utils_get_value_of_hex(source[1]);
 	green = utils_get_value_of_hex(
-					source[3 + offset]) * 16 + utils_get_value_of_hex(source[4 + offset]);
+					source[2]) * 16 + utils_get_value_of_hex(source[3]);
 	blue = utils_get_value_of_hex(
-					source[5 + offset]) * 16 + utils_get_value_of_hex(source[6 + offset]);
+					source[4]) * 16 + utils_get_value_of_hex(source[5]);
 
 	return (red | (green << 8) | (blue << 16));
 }


Modified: src/utils.h
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -220,7 +220,7 @@ guint utils_string_regex_replace_all(GString *haystack, GRegex *regex,
 gchar *utils_make_human_readable_str(guint64 size, gulong block_size,
 									 gulong display_unit);
 
-gint utils_strtod(const gchar *source, gchar **end, gboolean with_route);
+gint utils_parse_color(const gchar *source);
 
 gchar *utils_get_current_time_string(void);
 


Modified: src/win32.c
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -565,7 +565,7 @@ void win32_show_color_dialog(const gchar *colour)
 	cc.lStructSize = sizeof(cc);
 	cc.hwndOwner = GDK_WINDOW_HWND(gtk_widget_get_window(main_widgets.window));
 	cc.lpCustColors = (LPDWORD) acr_cust_clr;
-	cc.rgbResult = (colour != NULL) ? utils_strtod(colour, NULL, colour[0] == '#') : 0;
+	cc.rgbResult = (colour != NULL) ? utils_parse_color(colour) : 0;
 	cc.Flags = CC_FULLOPEN | CC_RGBINIT;
 
 	if (ChooseColor(&cc))



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list