bool EmacsBuffers::setSearchString(const MintString& str, bool fold_case) { regbase::flag_type flags = regbase::literal | (fold_case ? regbase::icase : 0); _regex_empty = str.empty(); if (!_regex_empty) { std::string s; std::copy(str.begin(), str.end(), std::back_inserter(s)); _regex.assign(s.c_str(), flags); } // if return true; } // setSearchString
bool EmacsBuffers::setSearchRegex(const MintString& exp, bool fold_case) { #if 1 regbase::flag_type flags = boost::regex::basic | boost::regex::bk_vbar; #else regbase::flag_type flags = boost::regex::normal | boost::regex::bk_braces | boost::regex::bk_parens | boost::regex::bk_vbar; #endif if (fold_case) flags |= regbase::icase; _regex_empty = exp.empty(); if (!_regex_empty) { std::string s; std::copy(exp.begin(), exp.end(), std::back_inserter(s)); _regex.assign(s.c_str(), flags); } // if return true; } // setSearchRegex
bool EmacsBuffer::insertString(const MintString& str) { if (!str.empty()) { _modified = true; #if defined(USE_BUFFER_ROPE) && !defined(USE_MINTSTRING_ROPE) _text.insert(_point, str.data(), str.size()); #else _text.insert(_point, str); #endif mintcount_t extra_chars = str.size(); mintcount_t extra_newlines = countNewlines(_point, _point + extra_chars); _countNewlines += extra_newlines; _pointLine += extra_newlines; if (_topline > _point) { // topline moves if it is after point _topline += extra_chars; _toplineLine += extra_newlines; } // if adjustMarksIns(extra_chars); _point += extra_chars; } // if return true; } // EmacsBuffer::insertString