summaryrefslogtreecommitdiff
path: root/src/context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/context.h')
-rw-r--r--src/context.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/context.h b/src/context.h
index 09734b3e..e5457641 100644
--- a/src/context.h
+++ b/src/context.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2012, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2013, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -112,16 +112,16 @@ inline parse_context_t open_for_reading(const path& pathname,
const path& cwd)
{
path filename = resolve_path(pathname);
-
- if (! exists(filename))
- throw_(std::runtime_error,
- _f("Cannot read journal file %1%") % filename);
-
#if BOOST_VERSION >= 104600 && BOOST_FILESYSTEM_VERSION >= 3
- path parent(filesystem::absolute(pathname, cwd).parent_path());
+ filename = filesystem::absolute(filename, cwd);
#else
- path parent(filesystem::complete(pathname, cwd).parent_path());
+ filename = filesystem::complete(filename, cwd);
#endif
+ if (! exists(filename) || is_directory(filename))
+ throw_(std::runtime_error,
+ _f("Cannot read journal file %1%") % filename);
+
+ path parent(filename.parent_path());
shared_ptr<std::istream> stream(new ifstream(filename));
parse_context_t context(stream, parent);
context.pathname = filename;