mirror of
https://github.com/zulip/zulip.git
synced 2025-11-12 18:06:44 +00:00
compose: Fix buggy escaping of LaTeX in quote-and-reply.
Apparently, our use of JavaScript string `.replace()` here was buggy, because replace() has several special escape sequences starting with `$` if they appear in the replacement content string. We can work around this through something of a hack, which is to pass a function as the second argument to replace, which seems cleaner than replacing all $s with $$s. Thanks to Shreya for the report.
This commit is contained in:
@@ -65,7 +65,13 @@ exports.replace_syntax = function (old_syntax, new_syntax, textarea) {
|
||||
textarea = $('#compose-textarea');
|
||||
}
|
||||
|
||||
textarea.val(textarea.val().replace(old_syntax, new_syntax));
|
||||
textarea.val(textarea.val().replace(old_syntax, function () {
|
||||
// We need this anonymous function to avoid JavaScript's
|
||||
// replace() function treating `$`s in new_syntax as special syntax. See
|
||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Description
|
||||
// for details.
|
||||
return new_syntax;
|
||||
}));
|
||||
};
|
||||
|
||||
return exports;
|
||||
|
||||
Reference in New Issue
Block a user