* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author Alfredo Braunstein
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
-#include "LString.h"
+#ifndef BUFFER_FUNCS_H
+#define BUFFER_FUNCS_H
+
+#include "lyxlayout_ptr_fwd.h"
+
+#include <string>
+
class Buffer;
+class DocIterator;
+class ErrorList;
+class TeXErrors;
+class ParIterator;
/**
- * Loads a LyX file \c filename into \c Buffer
+ * Loads a LyX file \c filename into \c Buffer
* and \return success status.
*/
-bool loadLyXFile(Buffer *, string const & filename);
+bool loadLyXFile(Buffer *, std::string const & filename);
/* Make a new file (buffer) with name \c filename based on a template
* named \c templatename
*/
-Buffer * newFile(string const & filename, string const & templatename,
+Buffer * newFile(std::string const & filename, std::string const & templatename,
bool isNamed = false);
+
+///return the format of the buffer on a string
+std::string const bufferFormat(Buffer const & buffer);
+///
+void bufferErrors(Buffer const &, TeXErrors const &);
+///
+void bufferErrors(Buffer const &, ErrorList const &);
+
+/// Count the number of words in the text between these two iterators
+int countWords(DocIterator const & from, DocIterator const & to);
+
+/// Expand the counters for the labelstring of \c layout
+std::string expandLabel(Buffer const & buf, LyXLayout_ptr const & layout,
+ bool appendix);
+
+/// updates current counter and/or label if possible.
+/**
+\retval true if a full updateCounters is required.
+\retval false if a full updateCounters is not required.
+*/
+bool needsUpdateCounters(Buffer const & buf, ParIterator & it);
+
+/// updates all counters
+void updateCounters(Buffer const &);
+
+
+#endif // BUFFER_FUNCS_H