]> git.lyx.org Git - features.git/commitdiff
Convert for loops to range-based iterators i Buffer.cpp.
authorRichard Heck <rgheck@lyx.org>
Sun, 5 Nov 2017 02:15:01 +0000 (22:15 -0400)
committerRichard Heck <rgheck@lyx.org>
Sun, 5 Nov 2017 02:15:01 +0000 (22:15 -0400)
No intended change of behavior. The ones that use DocIterators and
ParIterators cannot yet be changed, but they could be if we provided
the right sorts of methods, perhaps.

src/Buffer.cpp

index 05b9ad4dedffc09bbd3fcab026ca6eef755514ee..c6546508d2b7e0fabe67c2cb55ea0f6a4fdaf03c 100644 (file)
@@ -504,10 +504,8 @@ Buffer::~Buffer()
                // ourselves as a child.
                d->clone_list_->erase(this);
                // loop over children
-               Impl::BufferPositionMap::iterator it = d->children_positions.begin();
-               Impl::BufferPositionMap::iterator end = d->children_positions.end();
-               for (; it != end; ++it) {
-                       Buffer * child = const_cast<Buffer *>(it->first);
+               for (auto const & p : d->children_positions) {
+                       Buffer * child = const_cast<Buffer *>(p.first);
                                if (d->clone_list_->erase(child))
                                        delete child;
                }
@@ -533,10 +531,8 @@ Buffer::~Buffer()
                d->position_to_children.clear();
        } else {
                // loop over children
-               Impl::BufferPositionMap::iterator it = d->children_positions.begin();
-               Impl::BufferPositionMap::iterator end = d->children_positions.end();
-               for (; it != end; ++it) {
-                       Buffer * child = const_cast<Buffer *>(it->first);
+               for (auto const & p : d->children_positions) {
+                       Buffer * child = const_cast<Buffer *>(p.first);
                        if (theBufferList().isLoaded(child)) {
                                if (theBufferList().isOthersChild(this, child))
                                        child->setParent(0);
@@ -614,12 +610,10 @@ void Buffer::cloneWithChildren(BufferMap & bufmap, CloneList * clones) const
        // math macro caches need to be rethought and simplified.
        // I am not sure wether we should handle Buffer cloning here or in BufferList.
        // Right now BufferList knows nothing about buffer clones.
-       Impl::PositionScopeBufferMap::iterator it = d->position_to_children.begin();
-       Impl::PositionScopeBufferMap::iterator end = d->position_to_children.end();
-       for (; it != end; ++it) {
-               DocIterator dit = it->first.clone(buffer_clone);
+       for (auto const & p : d->position_to_children) {
+               DocIterator dit = p.first.clone(buffer_clone);
                dit.setBuffer(buffer_clone);
-               Buffer * child = const_cast<Buffer *>(it->second.buffer);
+               Buffer * child = const_cast<Buffer *>(p.second.buffer);
 
                child->cloneWithChildren(bufmap, clones);
                BufferMap::iterator const bit = bufmap.find(child);
@@ -712,10 +706,8 @@ BufferParams const & Buffer::masterParams() const
 
        BufferParams & mparams = const_cast<Buffer *>(masterBuffer())->params();
        // Copy child authors to the params. We need those pointers.
-       AuthorList const & child_authors = params().authors();
-       AuthorList::Authors::const_iterator it = child_authors.begin();
-       for (; it != child_authors.end(); ++it)
-               mparams.authors().record(*it);
+       for (Author const & a : params().authors())
+               mparams.authors().record(a);
        return mparams;
 }
 
@@ -1071,10 +1063,8 @@ bool Buffer::readDocument(Lexer & lex)
        // inform parent buffer about local macros
        if (parent()) {
                Buffer const * pbuf = parent();
-               UserMacroSet::const_iterator cit = usermacros.begin();
-               UserMacroSet::const_iterator end = usermacros.end();
-               for (; cit != end; ++cit)
-                       pbuf->usermacros.insert(*cit);
+               for (auto const & m : usermacros)
+                       pbuf->usermacros.insert(m);
        }
        usermacros.clear();
        updateMacros();
@@ -1631,10 +1621,8 @@ bool Buffer::write(ostream & ofs) const
 
        /// For each author, set 'used' to true if there is a change
        /// by this author in the document; otherwise set it to 'false'.
-       AuthorList::Authors::const_iterator a_it = params().authors().begin();
-       AuthorList::Authors::const_iterator a_end = params().authors().end();
-       for (; a_it != a_end; ++a_it)
-               a_it->setUsed(false);
+       for (Author const & a : params().authors())
+               a.setUsed(false);
 
        ParIterator const end = const_cast<Buffer *>(this)->par_iterator_end();
        ParIterator it = const_cast<Buffer *>(this)->par_iterator_begin();
@@ -1917,10 +1905,10 @@ void Buffer::writeLaTeXSource(otexstream & os,
                        vector<string> pll = features.getPolyglossiaExclusiveLanguages();
                        if (!bll.empty()) {
                                docstring langs;
-                               for (vector<string>::const_iterator it = bll.begin(); it != bll.end(); ++it) {
+                               for (string const & sit : bll) {
                                        if (!langs.empty())
                                                langs += ", ";
-                                       langs += _(*it);
+                                       langs += _(sit);
                                }
                                blangs = bll.size() > 1 ?
                                            bformat(_("The languages %1$s are only supported by Babel."), langs)
@@ -1928,10 +1916,10 @@ void Buffer::writeLaTeXSource(otexstream & os,
                        }
                        if (!pll.empty()) {
                                docstring langs;
-                               for (vector<string>::const_iterator it = pll.begin(); it != pll.end(); ++it) {
+                               for (string const & pit : pll) {
                                        if (!langs.empty())
                                                langs += ", ";
-                                       langs += _(*it);
+                                       langs += _(pit);
                                }
                                plangs = pll.size() > 1 ?
                                            bformat(_("The languages %1$s are only supported by Polyglossia."), langs)
@@ -1971,10 +1959,8 @@ void Buffer::writeLaTeXSource(otexstream & os,
                os.lastChar('\n');
 
                // output the parent macros
-               MacroSet::iterator it = parentMacros.begin();
-               MacroSet::iterator end = parentMacros.end();
-               for (; it != end; ++it) {
-                       int num_lines = (*it)->write(os.os(), true);
+               for (auto const & mac : parentMacros) {
+                       int num_lines = mac->write(os.os(), true);
                        os.texrow().newlines(num_lines);
                }
 
@@ -2313,11 +2299,9 @@ void Buffer::getLabelList(vector<docstring> & list) const
 
        list.clear();
        shared_ptr<Toc> toc = d->toc_backend.toc("label");
-       Toc::const_iterator toc_it = toc->begin();
-       Toc::const_iterator end = toc->end();
-       for (; toc_it != end; ++toc_it) {
-               if (toc_it->depth() == 0)
-                       list.push_back(toc_it->str());
+       for (auto const & tocit : *toc) {
+               if (tocit.depth() == 0)
+                       list.push_back(tocit.str());
        }
 }
 
@@ -2784,9 +2768,7 @@ void Buffer::dispatch(FuncRequest const & func, DispatchResult & dr)
                vector<docstring> const branches =
                        getVectorFromString(branch_name, branch_list.separator());
                docstring msg;
-               for (vector<docstring>::const_iterator it = branches.begin();
-                    it != branches.end(); ++it) {
-                       branch_name = *it;
+               for (docstring const & branch_name : branches) {
                        Branch * branch = branch_list.find(branch_name);
                        if (branch) {
                                LYXERR0("Branch " << branch_name << " already exists.");
@@ -2946,10 +2928,8 @@ void Buffer::getLanguages(std::set<Language const *> & languages) const
                it->getLanguages(languages);
        // also children
        ListOfBuffers clist = getDescendents();
-       ListOfBuffers::const_iterator cit = clist.begin();
-       ListOfBuffers::const_iterator const cen = clist.end();
-       for (; cit != cen; ++cit)
-               (*cit)->getLanguages(languages);
+       for (auto const & cit : clist)
+               cit->getLanguages(languages);
 }
 
 
@@ -3086,8 +3066,8 @@ void Buffer::markDirty()
        DepClean::iterator it = d->dep_clean.begin();
        DepClean::const_iterator const end = d->dep_clean.end();
 
-       for (; it != end; ++it)
-               it->second = false;
+       for (auto & depit : d->dep_clean)
+               depit.second = false;
 }
 
 
@@ -3169,10 +3149,8 @@ vector<docstring> const Buffer::prepareBibFilePaths(OutputParams const & runpara
        // check for spaces in paths
        bool found_space = false;
 
-       FileNamePairList::const_iterator it = bibfilelist.begin();
-       FileNamePairList::const_iterator en = bibfilelist.end();
-       for (; it != en; ++it) {
-               string utf8input = to_utf8(it->first);
+       for (auto const & bit : bibfilelist) {
+               string utf8input = to_utf8(bit.first);
                string database =
                        prepareFileNameForLaTeX(utf8input, ".bib", runparams.nice);
                FileName const try_in_file =
@@ -3334,10 +3312,8 @@ bool Buffer::hasChildren() const
 void Buffer::collectChildren(ListOfBuffers & clist, bool grand_children) const
 {
        // loop over children
-       Impl::BufferPositionMap::iterator it = d->children_positions.begin();
-       Impl::BufferPositionMap::iterator end = d->children_positions.end();
-       for (; it != end; ++it) {
-               Buffer * child = const_cast<Buffer *>(it->first);
+       for (auto const & p : d->children_positions) {
+               Buffer * child = const_cast<Buffer *>(p.first);
                // No duplicates
                ListOfBuffers::const_iterator bit = find(clist.begin(), clist.end(), child);
                if (bit != clist.end())
@@ -3534,17 +3510,15 @@ void Buffer::Impl::updateMacros(DocIterator & it, DocIterator & scope)
        while (it.pit() <= lastpit) {
                Paragraph & par = it.paragraph();
 
+               // FIXME Can this be done with the new-style iterators?
                // iterate over the insets of the current paragraph
-               InsetList const & insets = par.insetList();
-               InsetList::const_iterator iit = insets.begin();
-               InsetList::const_iterator end = insets.end();
-               for (; iit != end; ++iit) {
-                       it.pos() = iit->pos;
+               for (auto const & insit : par.insetList()) {
+                       it.pos() = insit.pos;
 
                        // is it a nested text inset?
-                       if (iit->inset->asInsetText()) {
+                       if (insit.inset->asInsetText()) {
                                // Inset needs its own scope?
-                               InsetText const * itext = iit->inset->asInsetText();
+                               InsetText const * itext = insit.inset->asInsetText();
                                bool newScope = itext->isMacroScope();
 
                                // scope which ends just behind the inset
@@ -3552,14 +3526,14 @@ void Buffer::Impl::updateMacros(DocIterator & it, DocIterator & scope)
                                ++insetScope.pos();
 
                                // collect macros in inset
-                               it.push_back(CursorSlice(*iit->inset));
+                               it.push_back(CursorSlice(*insit.inset));
                                updateMacros(it, newScope ? insetScope : scope);
                                it.pop_back();
                                continue;
                        }
 
-                       if (iit->inset->asInsetTabular()) {
-                               CursorSlice slice(*iit->inset);
+                       if (insit.inset->asInsetTabular()) {
+                               CursorSlice slice(*insit.inset);
                                size_t const numcells = slice.nargs();
                                for (; slice.idx() < numcells; slice.forwardIdx()) {
                                        it.push_back(slice);
@@ -3570,10 +3544,10 @@ void Buffer::Impl::updateMacros(DocIterator & it, DocIterator & scope)
                        }
 
                        // is it an external file?
-                       if (iit->inset->lyxCode() == INCLUDE_CODE) {
+                       if (insit.inset->lyxCode() == INCLUDE_CODE) {
                                // get buffer of external file
                                InsetInclude const & inset =
-                                       static_cast<InsetInclude const &>(*iit->inset);
+                                       static_cast<InsetInclude const &>(*insit.inset);
                                macro_lock = true;
                                Buffer * child = inset.getChildBuffer();
                                macro_lock = false;
@@ -3591,19 +3565,19 @@ void Buffer::Impl::updateMacros(DocIterator & it, DocIterator & scope)
                                continue;
                        }
 
-                       InsetMath * im = iit->inset->asInsetMath();
+                       InsetMath * im = insit.inset->asInsetMath();
                        if (doing_export && im)  {
                                InsetMathHull * hull = im->asHullInset();
                                if (hull)
                                        hull->recordLocation(it);
                        }
 
-                       if (iit->inset->lyxCode() != MATHMACRO_CODE)
+                       if (insit.inset->lyxCode() != MATHMACRO_CODE)
                                continue;
 
                        // get macro data
                        InsetMathMacroTemplate & macroTemplate =
-                               *iit->inset->asInsetMath()->asMacroTemplate();
+                               *insit.inset->asInsetMath()->asMacroTemplate();
                        MacroContext mc(owner_, it);
                        macroTemplate.updateToContext(mc);
 
@@ -3713,16 +3687,12 @@ void Buffer::listMacroNames(MacroNameSet & macros) const
        d->macro_lock = true;
 
        // loop over macro names
-       Impl::NamePositionScopeMacroMap::iterator nameIt = d->macros.begin();
-       Impl::NamePositionScopeMacroMap::iterator nameEnd = d->macros.end();
-       for (; nameIt != nameEnd; ++nameIt)
-               macros.insert(nameIt->first);
+       for (auto const & nameit : d->macros)
+               macros.insert(nameit.first);
 
        // loop over children
-       Impl::BufferPositionMap::iterator it = d->children_positions.begin();
-       Impl::BufferPositionMap::iterator end = d->children_positions.end();
-       for (; it != end; ++it) {
-               Buffer * child = const_cast<Buffer *>(it->first);
+       for (auto const & p : d->children_positions) {
+               Buffer * child = const_cast<Buffer *>(p.first);
                // The buffer might have been closed (see #10766).
                if (theBufferList().isLoaded(child))
                        child->listMacroNames(macros);
@@ -3747,12 +3717,9 @@ void Buffer::listParentMacros(MacroSet & macros, LaTeXFeatures & features) const
        pbuf->listMacroNames(names);
 
        // resolve macros
-       MacroNameSet::iterator it = names.begin();
-       MacroNameSet::iterator end = names.end();
-       for (; it != end; ++it) {
+       for (auto const & mit : names) {
                // defined?
-               MacroData const * data =
-               pbuf->getMacro(*it, *this, false);
+               MacroData const * data = pbuf->getMacro(mit, *this, false);
                if (data) {
                        macros.insert(data);
 
@@ -3821,20 +3788,16 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to)
        reloadBibInfoCache();
 
        // Check if the label 'from' appears more than once
-       BiblioInfo const & keys = masterBibInfo();
-       BiblioInfo::const_iterator bit  = keys.begin();
-       BiblioInfo::const_iterator bend = keys.end();
        vector<docstring> labels;
-
-       for (; bit != bend; ++bit)
-               // FIXME UNICODE
-               labels.push_back(bit->first);
+       for (auto const & bibit : masterBibInfo())
+               labels.push_back(bibit.first);
 
        if (count(labels.begin(), labels.end(), from) > 1)
                return;
 
        string const paramName = "key";
-       for (InsetIterator it = inset_iterator_begin(inset()); it; ++it) {
+       InsetIterator it = inset_iterator_begin(inset());
+       for (; it; ++it) {
                if (it->lyxCode() != CITE_CODE)
                        continue;
                InsetCommand * inset = it->asInsetCommand();
@@ -4185,10 +4148,8 @@ void Buffer::setExportStatus(bool e) const
 {
        d->doing_export = e;
        ListOfBuffers clist = getDescendents();
-       ListOfBuffers::const_iterator cit = clist.begin();
-       ListOfBuffers::const_iterator const cen = clist.end();
-       for (; cit != cen; ++cit)
-               (*cit)->d->doing_export = e;
+       for (auto const & bit : clist)
+               bit->d->doing_export = e;
 }
 
 
@@ -4272,11 +4233,10 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                // Get shortest path to format
                converters.buildGraph();
                Graph::EdgePath path;
-               for (vector<string>::const_iterator it = backs.begin();
-                    it != backs.end(); ++it) {
-                       Graph::EdgePath p = converters.getPath(*it, format);
+               for (string const & sit : backs) {
+                       Graph::EdgePath p = converters.getPath(sit, format);
                        if (!p.empty() && (path.empty() || p.size() < path.size())) {
-                               backend_format = *it;
+                               backend_format = sit;
                                path = p;
                        }
                }
@@ -4291,10 +4251,8 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                        return ExportNoPathToFormat;
                }
                runparams.flavor = converters.getFlavor(path, this);
-               Graph::EdgePath::const_iterator it = path.begin();
-               Graph::EdgePath::const_iterator en = path.end();
-               for (; it != en; ++it)
-                       if (theConverters().get(*it).nice()) {
+               for (auto const & edge : path)
+                       if (theConverters().get(edge).nice()) {
                                need_nice_file = true;
                                break;
                        }
@@ -4380,20 +4338,18 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                        errors(error_type);
                // also to the children, in case of master-buffer-view
                ListOfBuffers clist = getDescendents();
-               ListOfBuffers::const_iterator cit = clist.begin();
-               ListOfBuffers::const_iterator const cen = clist.end();
-               for (; cit != cen; ++cit) {
+               for (auto const & bit : clist) {
                        if (runparams.silent)
-                               (*cit)->d->errorLists[error_type].clear();
+                               bit->d->errorLists[error_type].clear();
                        else if (d->cloned_buffer_) {
                                // Enable reverse search by copying back the
                                // texrow object to the cloned buffer.
                                // FIXME: this is not thread safe.
-                               (*cit)->d->cloned_buffer_->d->texrow = (*cit)->d->texrow;
-                               (*cit)->d->cloned_buffer_->d->errorLists[error_type] =
-                                       (*cit)->d->errorLists[error_type];
+                               bit->d->cloned_buffer_->d->texrow = bit->d->texrow;
+                               bit->d->cloned_buffer_->d->errorLists[error_type] =
+                                       bit->d->errorLists[error_type];
                        } else
-                               (*cit)->errors(error_type, true);
+                               bit->errors(error_type, true);
                }
        }
 
@@ -4427,11 +4383,13 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                                 : force_overwrite == ALL_FILES;
        CopyStatus status = use_force ? FORCE : SUCCESS;
 
-       vector<ExportedFile>::const_iterator it = files.begin();
-       vector<ExportedFile>::const_iterator const en = files.end();
-       for (; it != en && status != CANCEL; ++it) {
-               string const fmt = theFormats().getFormatFromFile(it->sourceName);
-               string fixedName = it->exportName;
+       for (ExportedFile const & exp : files) {
+               if (status == CANCEL) {
+                       message(_("Document export cancelled."));
+                       return ExportCancel;
+               }
+               string const fmt = theFormats().getFormatFromFile(exp.sourceName);
+               string fixedName = exp.exportName;
                if (!runparams.export_folder.empty()) {
                        // Relative pathnames starting with ../ will be sanitized
                        // if exporting to a different folder
@@ -4440,16 +4398,12 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                }
                FileName fixedFileName = makeAbsPath(fixedName, dest);
                fixedFileName.onlyPath().createPath();
-               status = copyFile(fmt, it->sourceName,
+               status = copyFile(fmt, exp.sourceName,
                        fixedFileName,
-                       it->exportName, status == FORCE,
+                       exp.exportName, status == FORCE,
                        runparams.export_folder.empty());
        }
 
-       if (status == CANCEL) {
-               message(_("Document export cancelled."));
-               return ExportCancel;
-       }
 
        if (tmp_result_file.exists()) {
                // Finally copy the main file
@@ -5032,11 +4986,9 @@ void Buffer::updateBuffer(ParIterator & parit, UpdateType utype) const
                parit->addChangesToBuffer(*this);
 
                // now the insets
-               InsetList::const_iterator iit = parit->insetList().begin();
-               InsetList::const_iterator end = parit->insetList().end();
-               for (; iit != end; ++iit) {
-                       parit.pos() = iit->pos;
-                       iit->inset->updateBuffer(parit, utype);
+               for (auto const & insit : parit->insetList()) {
+                       parit.pos() = insit.pos;
+                       insit.inset->updateBuffer(parit, utype);
                }
        }
 }
@@ -5220,11 +5172,9 @@ bool Buffer::saveAs(FileName const & fn)
 
 void Buffer::checkChildBuffers()
 {
-       Impl::BufferPositionMap::iterator it = d->children_positions.begin();
-       Impl::BufferPositionMap::iterator const en = d->children_positions.end();
-       for (; it != en; ++it) {
-               DocIterator dit = it->second;
-               Buffer * cbuf = const_cast<Buffer *>(it->first);
+       for (auto const & bit : d->children_positions) {
+               DocIterator dit = bit.second;
+               Buffer * cbuf = const_cast<Buffer *>(bit.first);
                if (!cbuf || !theBufferList().isLoaded(cbuf))
                        continue;
                Inset * inset = dit.nextInset();