summaryrefslogtreecommitdiff
path: root/tools/quickbook/src/quickbook.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/quickbook/src/quickbook.cpp')
-rw-r--r--tools/quickbook/src/quickbook.cpp79
1 files changed, 41 insertions, 38 deletions
diff --git a/tools/quickbook/src/quickbook.cpp b/tools/quickbook/src/quickbook.cpp
index 128bb0b3d..f867f3583 100644
--- a/tools/quickbook/src/quickbook.cpp
+++ b/tools/quickbook/src/quickbook.cpp
@@ -14,8 +14,8 @@
#include "post_process.hpp"
#include "utils.hpp"
#include "files.hpp"
-#include "input_path.hpp"
-#include "id_manager.hpp"
+#include "native_text.hpp"
+#include "document_state.hpp"
#include <boost/program_options.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
@@ -40,7 +40,7 @@
#pragma warning(disable:4355)
#endif
-#define QUICKBOOK_VERSION "Quickbook Version 1.5.9"
+#define QUICKBOOK_VERSION "Quickbook Version 1.6.1"
namespace quickbook
{
@@ -99,7 +99,7 @@ namespace quickbook
parse_iterator pos = info.stop;
std::string doc_type = pre(state, pos, include_doc_id, nested_file);
- info = cl::parse(info.hit ? info.stop : first, last, state.grammar().block);
+ info = cl::parse(info.hit ? info.stop : first, last, state.grammar().block_start);
post(state, doc_type);
@@ -138,12 +138,12 @@ namespace quickbook
, parse_document_options const& options_)
{
string_stream buffer;
- id_manager ids;
+ document_state output;
int result = 0;
try {
- quickbook::state state(filein_, options_.xinclude_base, buffer, ids);
+ quickbook::state state(filein_, options_.xinclude_base, buffer, output);
set_macros(state);
if (state.error_count == 0) {
@@ -162,15 +162,14 @@ namespace quickbook
if (!options_.deps_out.empty())
{
- fs::ofstream out(options_.deps_out);
- state.dependencies.write_dependencies(out,
+ state.dependencies.write_dependencies(options_.deps_out,
options_.deps_out_flags);
}
if (!options_.locations_out.empty())
{
fs::ofstream out(options_.locations_out);
- state.dependencies.write_dependencies(out,
+ state.dependencies.write_dependencies(options_.locations_out,
dependency_tracker::checked);
}
}
@@ -178,10 +177,14 @@ namespace quickbook
detail::outerr(filein_) << e.what() << std::endl;
result = 1;
}
+ catch (std::runtime_error& e) {
+ detail::outerr() << e.what() << std::endl;
+ result = 1;
+ }
if (!fileout_.empty() && result == 0)
{
- std::string stage2 = ids.replace_placeholders(buffer.str());
+ std::string stage2 = output.replace_placeholders(buffer.str());
fs::ofstream fileout(fileout_);
@@ -252,7 +255,7 @@ main(int argc, char* argv[])
using boost::program_options::notify;
using boost::program_options::positional_options_description;
- using quickbook::detail::input_string;
+ using quickbook::detail::command_line_string;
// First thing, the filesystem should record the current working directory.
fs::initial_path<fs::path>();
@@ -280,27 +283,27 @@ main(int argc, char* argv[])
("no-self-linked-headers", "stop headers linking to themselves")
("indent", PO_VALUE<int>(), "indent spaces")
("linewidth", PO_VALUE<int>(), "line width")
- ("input-file", PO_VALUE<input_string>(), "input file")
- ("output-file", PO_VALUE<input_string>(), "output file")
- ("output-deps", PO_VALUE<input_string>(), "output dependency file")
+ ("input-file", PO_VALUE<command_line_string>(), "input file")
+ ("output-file", PO_VALUE<command_line_string>(), "output file")
+ ("output-deps", PO_VALUE<command_line_string>(), "output dependency file")
("debug", "debug mode (for developers)")
("ms-errors", "use Microsoft Visual Studio style error & warn message format")
- ("include-path,I", PO_VALUE< std::vector<input_string> >(), "include path")
- ("define,D", PO_VALUE< std::vector<input_string> >(), "define macro")
- ("image-location", PO_VALUE<input_string>(), "image location")
+ ("include-path,I", PO_VALUE< std::vector<command_line_string> >(), "include path")
+ ("define,D", PO_VALUE< std::vector<command_line_string> >(), "define macro")
+ ("image-location", PO_VALUE<command_line_string>(), "image location")
;
hidden.add_options()
("expect-errors",
"Succeed if the input file contains a correctly handled "
"error, fail otherwise.")
- ("xinclude-base", PO_VALUE<input_string>(),
+ ("xinclude-base", PO_VALUE<command_line_string>(),
"Generate xincludes as if generating for this target "
"directory.")
- ("output-deps-format", PO_VALUE<input_string>(),
+ ("output-deps-format", PO_VALUE<command_line_string>(),
"Comma separated list of formatting options for output-deps, "
"options are: escaped, checked")
- ("output-checked-locations", PO_VALUE<input_string>(),
+ ("output-checked-locations", PO_VALUE<command_line_string>(),
"Writes a file listing all the file locations that were "
"checked, starting with '+' if they were found, or '-' "
"if they weren't.\n"
@@ -418,24 +421,24 @@ main(int argc, char* argv[])
if (vm.count("include-path"))
{
boost::transform(
- vm["include-path"].as<std::vector<input_string> >(),
+ vm["include-path"].as<std::vector<command_line_string> >(),
std::back_inserter(quickbook::include_path),
- quickbook::detail::input_to_path);
+ quickbook::detail::command_line_to_path);
}
quickbook::preset_defines.clear();
if (vm.count("define"))
{
boost::transform(
- vm["define"].as<std::vector<input_string> >(),
+ vm["define"].as<std::vector<command_line_string> >(),
std::back_inserter(quickbook::preset_defines),
- quickbook::detail::input_to_utf8);
+ quickbook::detail::command_line_to_utf8);
}
if (vm.count("input-file"))
{
- fs::path filein = quickbook::detail::input_to_path(
- vm["input-file"].as<input_string>());
+ fs::path filein = quickbook::detail::command_line_to_path(
+ vm["input-file"].as<command_line_string>());
fs::path fileout;
bool default_output = true;
@@ -443,16 +446,16 @@ main(int argc, char* argv[])
if (vm.count("output-deps"))
{
parse_document_options.deps_out =
- quickbook::detail::input_to_path(
- vm["output-deps"].as<input_string>());
+ quickbook::detail::command_line_to_path(
+ vm["output-deps"].as<command_line_string>());
default_output = false;
}
if (vm.count("output-deps-format"))
{
std::string format_flags =
- quickbook::detail::input_to_utf8(
- vm["output-deps-format"].as<input_string>());
+ quickbook::detail::command_line_to_utf8(
+ vm["output-deps-format"].as<command_line_string>());
std::vector<std::string> flag_names;
boost::algorithm::split(flag_names, format_flags,
@@ -485,15 +488,15 @@ main(int argc, char* argv[])
if (vm.count("output-checked-locations"))
{
parse_document_options.locations_out =
- quickbook::detail::input_to_path(
- vm["output-checked-locations"].as<input_string>());
+ quickbook::detail::command_line_to_path(
+ vm["output-checked-locations"].as<command_line_string>());
default_output = false;
}
if (vm.count("output-file"))
{
- fileout = quickbook::detail::input_to_path(
- vm["output-file"].as<input_string>());
+ fileout = quickbook::detail::command_line_to_path(
+ vm["output-file"].as<command_line_string>());
}
else if (default_output)
{
@@ -504,8 +507,8 @@ main(int argc, char* argv[])
if (vm.count("xinclude-base"))
{
parse_document_options.xinclude_base =
- quickbook::detail::input_to_path(
- vm["xinclude-base"].as<input_string>());
+ quickbook::detail::command_line_to_path(
+ vm["xinclude-base"].as<command_line_string>());
}
else
{
@@ -525,8 +528,8 @@ main(int argc, char* argv[])
if (vm.count("image-location"))
{
- quickbook::image_location = quickbook::detail::input_to_path(
- vm["image-location"].as<input_string>());
+ quickbook::image_location = quickbook::detail::command_line_to_path(
+ vm["image-location"].as<command_line_string>());
}
else
{