]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfind.cpp
Account for old versions of Pygments
[lyx.git] / src / lyxfind.cpp
index 0ffb5b203c7b38893783f88b9bef897e0e90f1e5..0ec9fcb7a039208226b4b3d0858dbd4ab1d48666 100644 (file)
@@ -672,23 +672,13 @@ string escape_for_regex(string s, bool match_latex)
 bool regex_replace(string const & s, string & t, string const & searchstr,
                   string const & replacestr)
 {
-       LYXERR(Debug::FIND, "regex_replace() - s='" << s
-              << "', searchstr='" << searchstr
-              << "', replacestr='" << replacestr);
-#if LYX_USE_STD_REGEX
-       // this is the default anyway
        lyx::regex e(searchstr, regex_constants::ECMAScript);
-#else
-       // TBD: check
-       lyx::regex e(searchstr, regex_constants::ECMAScript);
-#endif
        ostringstream oss;
        ostream_iterator<char, char> it(oss);
        lyx::regex_replace(it, s.begin(), s.end(), e, replacestr);
        // tolerate t and s be references to the same variable
        bool rv = (s != oss.str());
        t = oss.str();
-       LYXERR(Debug::FIND, "regex_replace() - t='" << t << "', rv=" << rv);
        return rv;
 }
 
@@ -1435,7 +1425,9 @@ static void changeFirstCase(Buffer & buffer, TextCase first_case, TextCase other
 static void findAdvReplace(BufferView * bv, FindAndReplaceOptions const & opt, MatchStringAdv & matchAdv)
 {
        Cursor & cur = bv->cursor();
-       if (opt.repl_buf_name == docstring())
+       if (opt.repl_buf_name == docstring()
+           || theBufferList().getBuffer(FileName(to_utf8(opt.repl_buf_name)), true) == 0
+           || theBufferList().getBuffer(FileName(to_utf8(opt.find_buf_name)), true) == 0)
                return;
 
        DocIterator sel_beg = cur.selectionBegin();
@@ -1522,6 +1514,11 @@ bool findAdv(BufferView * bv, FindAndReplaceOptions const & opt)
        DocIterator cur;
        int match_len = 0;
 
+       // e.g., when invoking word-findadv from mini-buffer wither with
+       //       wrong options syntax or before ever opening advanced F&R pane
+       if (theBufferList().getBuffer(FileName(to_utf8(opt.find_buf_name)), true) == 0)
+               return false;
+
        try {
                MatchStringAdv matchAdv(bv->buffer(), opt);
                int length = bv->cursor().selectionEnd().pos() - bv->cursor().selectionBegin().pos();