{3BF0EC29-8B64-460F-AE0A-96794D38088D} = {3BF0EC29-8B64-460F-AE0A-96794D38088D}
{3BF0EC29-8B64-460F-AE0A-96794D38088D} = {3BF0EC29-8B64-460F-AE0A-96794D38088D}
{3BF0EC29-8B64-460F-AE0A-96794D38088D} = {3BF0EC29-8B64-460F-AE0A-96794D38088D}
+ {684579F5-D732-45CE-BBFB-9419BB98DADC} = {684579F5-D732-45CE-BBFB-9419BB98DADC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libboost_regex", "..\..\boost\libs\regex\regex.vcproj", "{FDBBC827-4BD2-4E7D-B050-0967A0B6C754}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libboost_filesystem", "..\..\boost\libs\filesystem\filesystem.vcproj", "{684579F5-D732-45CE-BBFB-9419BB98DADC}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
{3BF0EC29-8B64-460F-AE0A-96794D38088D}.Debug.Build.0 = Debug|Win32
{3BF0EC29-8B64-460F-AE0A-96794D38088D}.Release.ActiveCfg = Release|Win32
{3BF0EC29-8B64-460F-AE0A-96794D38088D}.Release.Build.0 = Release|Win32
+ {684579F5-D732-45CE-BBFB-9419BB98DADC}.Debug.ActiveCfg = Debug|Win32
+ {684579F5-D732-45CE-BBFB-9419BB98DADC}.Debug.Build.0 = Debug|Win32
+ {684579F5-D732-45CE-BBFB-9419BB98DADC}.Release.ActiveCfg = Release|Win32
+ {684579F5-D732-45CE-BBFB-9419BB98DADC}.Release.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
</File>
<File
RelativePath="..\..\src\frontends\qt2\moc\QGraphics_moc.C">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"/>
- </FileConfiguration>
</File>
<File
RelativePath="..\..\src\frontends\qt2\moc\QGraphicsDialog_moc.C">
CompileAs="2"/>
</FileConfiguration>
</File>
- <File
- RelativePath="..\..\src\support\atoi.C">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"/>
- </FileConfiguration>
- </File>
<File
RelativePath="..\..\src\support\chdir.C">
<FileConfiguration
<File
RelativePath="..\..\src\support\filefilterlist.h">
</File>
- <File
- RelativePath="..\..\src\support\FileInfo.C">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- CompileAs="2"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\..\src\support\FileInfo.h">
- </File>
<File
RelativePath="..\..\src\support\FileMonitor.C">
<FileConfiguration
<File
RelativePath="..\..\src\support\forkedcontr.h">
</File>
+ <File
+ RelativePath="..\..\src\support\fs_extras.C">
+ </File>
+ <File
+ RelativePath="..\..\src\support\fs_extras.h">
+ </File>
<File
RelativePath="..\..\src\support\getcwd.C">
<FileConfiguration
</File>
</Filter>
</Filter>
- <Filter
- Name="boost"
- Filter="">
- <File
- RelativePath="..\..\boost\libs\filesystem\src\convenience.cpp">
- </File>
- <File
- RelativePath="..\..\boost\libs\filesystem\src\exception.cpp">
- </File>
- <File
- RelativePath="..\..\boost\libs\filesystem\src\operations_posix_windows.cpp">
- </File>
- <File
- RelativePath="..\..\boost\libs\filesystem\src\path_posix_windows.cpp">
- </File>
- </Filter>
</Files>
<Globals>
</Globals>
#include "debug.h"
#include "gettext.h"
-#include "support/FileInfo.h"
#include "support/filetools.h"
#include "support/lstrings.h"
#include "support/os.h"
#include <boost/assert.hpp>
#include <boost/tuple/tuple.hpp>
+#include <boost/filesystem/operations.hpp>
#include <list>
#include <utility>
using std::string;
+namespace fs = boost::filesystem;
+
namespace lyx {
namespace support {
}
}
- // Check whether binary is a symbolic link.
- // If so, resolve it and repeat the exercise.
- FileInfo const file(binary, true);
- if (!file.isOK() || !file.isLink())
- break;
-
- string link;
- if (LyXReadLink(binary, link, true)) {
- binary = link;
- } else {
- // Unable to resolve the link.
- break;
- }
+ break;
}
lyxerr[Debug::INIT] << check_text << " no" << std::endl;
// be "../locale/".)
path = NormalizePath(AddPath(system_support_dir, relative_locale_dir()));
- FileInfo fi(path);
- if (fi.isOK() && fi.isDir())
+ if (fs::is_directory(path))
return path;
// 3. Fall back to the hard-coded LOCALEDIR.
path = hardcoded_localedir();
- FileInfo fi2(path);
- if (fi2.isOK() && fi2.isDir())
+ if (fs::is_directory(path))
return path;
return string();
// Two possibilities present themselves.
// 1. The binary is relative to the CWD.
string const abs_exe_path = MakeAbsPath(exe_path);
- if (FileInfo(abs_exe_path, true).isOK())
+ if (fs::exists(abs_exe_path))
return abs_exe_path;
// 2. exe must be the name of the binary only and it
string const exe_dir = MakeAbsPath(*it);
string const exe_path = AddName(exe_dir, exe_name);
- if (FileInfo(exe_path, true).isOK())
+ if (fs::exists(exe_path))
return exe_path;
}
return lyxdir;
}
- // Check whether binary is a symbolic link.
- // If so, resolve it and repeat the exercise.
- FileInfo const file(binary, true);
- if (!file.isOK() || !file.isLink())
- break;
-
- string link;
- if (LyXReadLink(binary, link, true)) {
- binary = link;
- } else {
- // Unable to resolve the link.
- break;
- }
- }
-
- // 4. Repeat the exercise on the directory itself.
- string binary_dir = OnlyPath(abs_binary);
- while (true) {
- // This time test whether the directory is a symbolic link
- // *before* looking for "chkconfig.ltx".
- // (We've looked relative to the original already.)
- FileInfo const file(binary_dir, true);
- if (!file.isOK() || !file.isLink())
- break;
-
- string link;
- if (LyXReadLink(binary_dir, link, true)) {
- binary_dir = link;
- } else {
- // Unable to resolve the link.
- break;
- }
-
- // Try and find "chkconfig.ltx".
- string const lyxdir =
- NormalizePath(AddPath(binary_dir, relative_lyxdir));
- searched_dirs.push_back(lyxdir);
-
- if (!FileSearch(lyxdir, chkconfig_ltx).empty()) {
- // Success! "chkconfig.ltx" has been found.
- return lyxdir;
- }
+ break;
}
// 5. In desparation, try the hard-coded system support dir.
bool check_env_var_dir(string const & dir,
string const & env_var)
{
- FileInfo fi(dir);
- bool const success = (fi.isOK() && fi.isDir());
+ bool const success = fs::is_directory(dir);
if (!success) {
// Put this string on a single line so that the gettext