core/vul/vul_expand_path.h
Go to the documentation of this file.
00001 // This is core/vul/vul_expand_path.h
00002 #ifndef vul_expand_path_h_
00003 #define vul_expand_path_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief Contains two functions to compute expanded form of a given path.
00010 //
00011 // Given a path in the file system, compute an expanded form.
00012 // An expanded path is one which does not
00013 //  - involve any symbolic links
00014 //  - involve any . or ..
00015 //  - begin with a ~
00016 //  - contain any trailing or repeated /
00017 //
00018 // The result of each query is cached so that a subsequent
00019 // query on the same path will be much faster and will not
00020 // involve any system calls.
00021 //
00022 // \author fsm
00023 //
00024 // \verbatim
00025 // Modifications
00026 // PDA (Manchester) 21/03/2001: Tidied up the documentation
00027 // Peter Vanroose   27/05/2001: Corrected the documentation
00028 // \endverbatim
00029 
00030 #include <vcl_string.h>
00031 #include <vxl_config.h>
00032 
00033 //: Expand given path.
00034 vcl_string vul_expand_path/*cached*/(vcl_string path);
00035 
00036 //: Expand given path.
00037 vcl_string vul_expand_path_uncached (vcl_string path);
00038 
00039 #if defined(VCL_WIN32) && VXL_USE_WIN_WCHAR_T
00040 
00041 //: Expand given path.
00042 std::wstring vul_expand_path/*cached*/(std::wstring path);
00043 
00044 //: Expand given path.
00045 std::wstring vul_expand_path_uncached (std::wstring path);
00046 
00047 #endif 
00048 
00049 #endif // vul_expand_path_h_