From: Florian Brosch Date: Sun, 8 Aug 2010 14:00:37 +0000 (+0200) Subject: Remove trailing whitespace from content in markup reader X-Git-Tag: 0.9.5~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba68965853126361e2a9c5932ff0b5ccee05db1d;p=thirdparty%2Fvala.git Remove trailing whitespace from content in markup reader --- diff --git a/vala/valamarkupreader.vala b/vala/valamarkupreader.vala index 7805e256e..843fba69b 100644 --- a/vala/valamarkupreader.vala +++ b/vala/valamarkupreader.vala @@ -154,7 +154,7 @@ public class Vala.MarkupReader : Object { } current++; - string attr_value = text ('"'); + string attr_value = text ('"', false); if (current >= end || current[0] != '"') { // error @@ -179,7 +179,7 @@ public class Vala.MarkupReader : Object { space (); if (current[0] != '<') { - content = text ('<'); + content = text ('<', true); } else { // no text // read next token @@ -196,7 +196,7 @@ public class Vala.MarkupReader : Object { return type; } - string text (char end_char) { + string text (char end_char, bool rm_trailing_whitespace) { StringBuilder content = new StringBuilder (); char* text_begin = current; char* last_linebreak = current; @@ -253,6 +253,13 @@ public class Vala.MarkupReader : Object { column += (int) (current - last_linebreak); + // Removes trailing whitespace + if (rm_trailing_whitespace) { + char* str_pos = ((char*)content.str) + content.len; + for (str_pos--; str_pos > ((char*)content.str) && str_pos[0].isspace(); str_pos--); + content.erase ((ssize_t) (str_pos-((char*) content.str) + 1), -1); + } + return content.str; }