diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-02-29 20:11:21 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-02-29 20:11:21 +0000 |
commit | 82fd8b10b5d975349ddb4088f205401687d75f7b (patch) | |
tree | ab44ea237731ac2a88648e98f2dcca93d1b8af47 /crawl-ref/source/format.cc | |
parent | 6b1ce5dda57255e4f6bc166a27b3b071739ac5d1 (diff) | |
download | crawl-ref-82fd8b10b5d975349ddb4088f205401687d75f7b.tar.gz crawl-ref-82fd8b10b5d975349ddb4088f205401687d75f7b.zip |
Fix trunk compile, and a bit of code clean-up.
Oh, and filter MSGCH_PROMPT from message history.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3488 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/format.cc')
-rw-r--r-- | crawl-ref/source/format.cc | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/crawl-ref/source/format.cc b/crawl-ref/source/format.cc index 38d175cda0..35c3d9d9ce 100644 --- a/crawl-ref/source/format.cc +++ b/crawl-ref/source/format.cc @@ -336,23 +336,33 @@ std::string formatted_string::to_colour_string() const const int size = ops.size(); for (int i = 0; i < size; ++i) { - if (ops[i] == FSOP_TEXT) { - // gotta double up those '<' chars ... - uint start = st.size(); + if (ops[i] == FSOP_TEXT) + { st += ops[i].text; - while (true) { - const uint left_angle = st.find('<', start); - if (left_angle == std::string::npos) break; + + // gotta double up those '<' chars ... + unsigned int start = st.size(); + unsigned int left_angle; + + while (true) + { + left_angle = st.find('<', start); + if (left_angle == std::string::npos) + break; + st.insert(left_angle, "<"); start = left_angle + 2; } - } else if (ops[i] == FSOP_COLOUR) { + } + else if (ops[i] == FSOP_COLOUR) + { st += "<"; st += colour_to_str(ops[i].x); st += ">"; } } - return st; + + return st; } void formatted_string::display(int s, int e) const |