I would change this for returning in case "g_ascii_isdigit(*address) != TRUE", or maybe doing "goto done" in that case. The code would have less indentation and would be more readable, as almost everything is done inside this if statement.