? htmlText.diff ? myconf ? gui/Info.plist ? libltdl/COPYING.LIB ? libltdl/Makefile.am ? libltdl/Makefile.in ? libltdl/README ? libltdl/acinclude.m4 ? libltdl/aclocal.m4 ? libltdl/config-h.in ? libltdl/config.guess ? libltdl/config.sub ? libltdl/configure ? libltdl/configure.ac ? libltdl/install-sh ? libltdl/ltdl.c ? libltdl/ltdl.h ? libltdl/ltmain.sh ? libltdl/missing ? testsuite/misc-mtasc.all/exception.as ? testsuite/misc-mtasc.all/exception.diff ? testsuite/misc-swfc.all/gnash-dbg.log ? testsuite/samples/subshapes-TestRunner ? testsuite/server/BitsReaderTest ? testsuite/server/StreamTest Index: server/edit_text_character.cpp =================================================================== RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v retrieving revision 1.107 diff -u -r1.107 edit_text_character.cpp --- server/edit_text_character.cpp 3 Sep 2007 09:40:20 -0000 1.107 +++ server/edit_text_character.cpp 4 Sep 2007 08:56:19 -0000 @@ -737,7 +737,29 @@ switch (std_member) { default: + break; case M_INVALID_MEMBER: + { + if (name == "htmlText") { + // Minimal parsing of HTML: Strip all tags + int version = get_parent()->get_movie_definition()->get_version(); + std::string html = val.to_string_versioned(version); + std::string textOnly = std::string(); + bool inTag = false; + for (int i = 0; i < html.length(); ++i) { + if (inTag) { + inTag = html[i] != '>'; + } else { + inTag = html[i] == '<'; + if (!inTag) { + textOnly += html[i]; + } + } + } + set_text_value(textOnly.c_str()); + return; + } + } break; case M_TEXT: //if (name == "text") @@ -883,7 +905,12 @@ switch (std_member) { default: + break; case M_INVALID_MEMBER: + if (name == "htmlText") { + val->set_string(get_text_value()); + return true; + } break; case M_TEXT: //if (name == "text")