Andrew Parsloe wrote:

> http://www.lyx.org/trac/ticket/10074. This is a regression since they
> display correctly as two hyphens in 2.1.4 in all cases (default,
> emphasis, bolding, colour).

Thank you very much for reporting this. I did indeed make a mistake when I 
removed the special meaning of double hyphens in standard text.

The attached patch fixes that. I overlooked that end_pos could also be -1, 
which means that text_ is to be considered until the end. With the fix, both 
cases are considered: if end_pos is not -1, then it is taken into account 
while checking for the next character, and if it is -1, then only 
text_.size() is taken into account.

Scott, I would like to put this into 2.2.0. The code that is changed is 
central, so I would appreciate any review I could get, but the regression is 
important, and I am also 100% sure that the fix is correct and cannot 
introduce another regression.


Georg
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 9fe4de8..a405b6a 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1192,7 +1192,9 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
 		break;
 	case '-':
 		os << '-';
-		if (i + 1 < end_pos && text_[i+1] == '-') {
+		if (i + 1 < static_cast<pos_type>(text_.size()) &&
+		    (end_pos == -1 || i + 1 < end_pos) &&
+		    text_[i+1] == '-') {
 			// Prevent "--" becoming an endash and "---" becoming
 			// an emdash.
 			// Within \ttfamily, "--" is merged to "-" (no endash)

Reply via email to