#include "lyxfind.h"
#include "Buffer.h"
+#include "BufferList.h"
#include "buffer_funcs.h"
#include "BufferParams.h"
#include "BufferView.h"
}
+/** Switch p_buf to point to next open buffer.
+ **
+ ** Return true if restarted from first open buffer.
+ **/
+bool next_open_buffer(Buffer * & p_buf) {
+ p_buf = theBufferList().next(p_buf);
+ return p_buf == *theBufferList().begin();
+}
+
+
+/** Switch p_buf to point to previous open buffer.
+ **
+ ** Return true if restarted from last open buffer.
+ **/
+bool prev_open_buffer(Buffer * & p_buf) {
+ p_buf = theBufferList().previous(p_buf);
+ return p_buf == *(theBufferList().end() - 1);
+}
+
+
/// Finds forward
int findForwardAdv(DocIterator & cur, MatchStringAdv & match)
{
}
// No match has been found in current buffer
bool prompt = false;
- if (match.opt.scope == FindAndReplaceOptions::S_BUFFER) {
+ switch (match.opt.scope) {
+ case FindAndReplaceOptions::S_BUFFER:
prompt = true;
- } else if (match.opt.scope == FindAndReplaceOptions::S_DOCUMENT) {
+ break;
+ case FindAndReplaceOptions::S_DOCUMENT:
prompt = next_document_buffer(match.p_buf);
- } else {
- /* Unimplemented scope */
- LASSERT(false, /**/);
+ break;
+ case FindAndReplaceOptions::S_OPEN_BUFFERS:
+ prompt = next_open_buffer(match.p_buf);
+ break;
}
if (prompt) {
if (wrap_answer != -1)
return 0;
}
+
/// Find the most backward consecutive match within same paragraph while searching backwards.
void findMostBackwards(DocIterator & cur, MatchStringAdv const & match, int & len) {
DocIterator cur_begin = doc_iterator_begin(cur.buffer());
}
// No match has been found in current buffer
bool prompt = false;
- if (match.opt.scope == FindAndReplaceOptions::S_BUFFER) {
+ switch (match.opt.scope) {
+ case FindAndReplaceOptions::S_BUFFER:
prompt = true;
- } else if (match.opt.scope == FindAndReplaceOptions::S_DOCUMENT) {
+ break;
+ case FindAndReplaceOptions::S_DOCUMENT:
prompt = prev_document_buffer(match.p_buf);
- } else {
- /* Unimplemented scope */
- LASSERT(false, /**/);
+ break;
+ case FindAndReplaceOptions::S_OPEN_BUFFERS:
+ prompt = prev_open_buffer(match.p_buf);
+ break;
}
if (prompt) {
wrap_answer = frontend::Alert::prompt(