Cleaned up some wackiness that was left over from the conversion from

Java to abjectscript: substitution happens differently and the way I left
it last night was less than ideal.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4476 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2006-12-07 21:28:15 +00:00
parent ad4f36729b
commit f9b2ef2d40
@@ -81,22 +81,24 @@ public /*abstract*/ class CurseFilter implements ChatFilter
return null;
case COMIC: default:
replacement = String(_replacements[ii]).replace(
/\ /g, comicChars(int(_comicLength[ii])));
replacement = comicChars(int(_comicLength[ii]));
break;
case VERNACULAR:
var vern :String = String(_vernacular[ii]);
var firstChar :String = String(result[2]).charAt(0);
replacement = String(_vernacular[ii]);
// preserve the case of the first letter of the text
// we're replacing
if (StringUtil.isUpperCase(String(result[2]))) {
vern = vern.charAt(0).toUpperCase() + vern.substring(1);
replacement = replacement.charAt(0).toUpperCase() +
replacement.substring(1);
}
replacement = String(_replacements[ii]).replace(
/\ /g, vern);
break;
}
replacement = replacement.replace("$1", String(result[1]));
replacement = replacement.replace("$3", String(result[3]));
// sub in the replacement text, carrying over the pre/post
// matching groups
replacement = StringUtil.substitute(String(_replacements[ii]),
String(result[1]), replacement, String(result[3]));
// do the replacement. Note the jimmying of lastIndex:
// abjectscript does not make this smooth!
@@ -130,27 +132,25 @@ public /*abstract*/ class CurseFilter implements ChatFilter
}
var curse :String = String(bits[0]);
var s :String = "";
var p :String = "";
var sub :String = "";
var patPre :String = "()";
var patPost :String = "";
if (curse.charAt(0) == "*") {
curse = curse.substring(1);
p += "([a-zA-Z]*)";
s += "$1";
} else {
p += "()";
patPre = "([a-zA-Z]*)";
sub += "{0}";
}
s += " ";
p += " ";
sub += "{1}";
if (curse.charAt(curse.length - 1) == "*") {
curse = curse.substring(0, curse.length - 1);
p += "([a-zA-Z]*)";
s += "$3";
patPost = "([a-zA-Z]*)";
sub += "{2}";
}
var regexp :RegExp = new RegExp(
"\\b" + p.replace(" ", "(" + curse + ")") + "\\b", "gi");
"\\b" + patPre + "(" + curse + ")" + patPost + "\\b", "gi");
_curseExps.push(regexp);
_replacements.push(s);
_replacements.push(sub);
var slang :String = StringUtil.trim(String(bits[1]));
slang = slang.replace(/_/g, " ");