* 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.
#ifndef BUFFER_FUNCS_H
#define BUFFER_FUNCS_H
-#include "lyxlayout_ptr_fwd.h"
-#include "support/docstring.h"
-
#include <string>
-
namespace lyx {
+namespace support { class FileName; }
class Buffer;
class DocIterator;
-class ErrorList;
-class TeXErrors;
class ParIterator;
/**
- * Loads a LyX file \c filename into \c Buffer
- * and \return success status.
+ * Checks and loads a LyX file \param filename.
+ * \retval the newly created \c Buffer pointer if successful or 0.
+ * \retval 0 if the \c Buffer could not be created.
*/
-bool loadLyXFile(Buffer *, std::string const & filename);
+Buffer * checkAndLoadLyXFile(support::FileName const & filename,
+ bool acceptDirty = false);
-/* Make a new file (buffer) with name \c filename based on a template
- * named \c templatename
+/** Make a new file (buffer) with name \c filename based on a template
+ * named \c 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);
+/** Make a new unnamed file (buffer) with prefix \c prefix
+ * based on a template named \c templatename
+ */
+Buffer * newUnnamedFile(support::FileName const & path,
+ std::string const & prefix, std::string const & templatename = "");
-/// Fill in the ErrorList with the TeXErrors
-void bufferErrors(Buffer const &, TeXErrors const &, ErrorList &);
+/// Load the file with name \c fname, and returns the buffer. If the
+/// file was already loaded it just returns the associated buffer.
+Buffer * loadIfNeeded(support::FileName const & fname);
/// 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
-lyx::docstring expandLabel(Buffer const & buf,
- LyXLayout_ptr const & layout,
- bool appendix);
-
-
-/// update labels at "iter".
-/**
-A full updateLabels(Buffer const &) will be called if not possible.
-*/
-void updateLabels(Buffer const & buf, ParIterator & it, bool childonly = false);
-
-/// update labels between "from" and "to" if possible.
-/**
-A full updateLabels(Buffer const &) will be called if not possible.
-*/
-void updateLabels(Buffer const & buf,
- ParIterator & from, ParIterator & to, bool childonly = false);
-
-/// updates all counters
-void updateLabels(Buffer const &, bool childonly = false);
-
+/// Count the number of chars in the text between these two iterators
+int countChars(DocIterator const & from, DocIterator const & to, bool with_blanks);
} // namespace lyx