fix for 127321. r=brade sr=smfr. Fix for word jumping getting stuck on punctuation.

This commit is contained in:
mjudge%netscape.com 2002-08-07 19:48:42 +00:00
parent ceb56bec79
commit 32db6e0260
2 changed files with 12 additions and 2 deletions

View File

@ -411,7 +411,12 @@ nsTextTransformer::ScanNormalAsciiText_F_ForWordBreak(PRInt32* aWordLen,
} else {
bp2 += mBufferPos;
}
PRBool readingAlphaNumeric = PR_TRUE; //only used in sWordSelectStopAtPunctuation
//we must know if we are starting in alpha numerics.
if (sWordSelectStopAtPunctuation && offset < fragLen)
readingAlphaNumeric = isalnum((unsigned char)*cp);
for (; offset < fragLen && !breakAfterThis; offset++) {
unsigned char ch = *cp++;
if (CH_NBSP == ch) {
@ -425,7 +430,7 @@ nsTextTransformer::ScanNormalAsciiText_F_ForWordBreak(PRInt32* aWordLen,
else if (XP_IS_SPACE(ch)) {
break;
}
else if (sWordSelectStopAtPunctuation && !isalnum(ch)) {
else if (sWordSelectStopAtPunctuation && ((readingAlphaNumeric && !isalnum(ch)) || (!readingAlphaNumeric && isalnum(ch)) )) {
// on some platforms, punctuation breaks words too.
break;
}

View File

@ -411,7 +411,12 @@ nsTextTransformer::ScanNormalAsciiText_F_ForWordBreak(PRInt32* aWordLen,
} else {
bp2 += mBufferPos;
}
PRBool readingAlphaNumeric = PR_TRUE; //only used in sWordSelectStopAtPunctuation
//we must know if we are starting in alpha numerics.
if (sWordSelectStopAtPunctuation && offset < fragLen)
readingAlphaNumeric = isalnum((unsigned char)*cp);
for (; offset < fragLen && !breakAfterThis; offset++) {
unsigned char ch = *cp++;
if (CH_NBSP == ch) {
@ -425,7 +430,7 @@ nsTextTransformer::ScanNormalAsciiText_F_ForWordBreak(PRInt32* aWordLen,
else if (XP_IS_SPACE(ch)) {
break;
}
else if (sWordSelectStopAtPunctuation && !isalnum(ch)) {
else if (sWordSelectStopAtPunctuation && ((readingAlphaNumeric && !isalnum(ch)) || (!readingAlphaNumeric && isalnum(ch)) )) {
// on some platforms, punctuation breaks words too.
break;
}