Mercurial > hg > octave-nkf
diff src/load-path.h @ 8329:c91b59532f32
load-path.cc (load_path::dir_info::update): smarter handling of relative names
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 17 Nov 2008 22:30:39 -0500 |
parents | a14bdf90be55 |
children | 31ab3b83bc8a |
line wrap: on
line diff
--- a/src/load-path.h +++ b/src/load-path.h @@ -251,10 +251,16 @@ typedef method_file_map_type::const_iterator const_method_file_map_iterator; typedef method_file_map_type::iterator method_file_map_iterator; + // This default constructor is only provided so we can create a + // std::map of dir_info objects. You should not use this + // constructor for any other purpose. + dir_info (void) { } + dir_info (const std::string& d) : dir_name (d) { initialize (); } dir_info (const dir_info& di) - : dir_name (di.dir_name), is_relative (di.is_relative), + : dir_name (di.dir_name), abs_dir_name (di.abs_dir_name), + is_relative (di.is_relative), dir_mtime (di.dir_mtime), all_files (di.all_files), fcn_files (di.fcn_files), private_file_map (di.private_file_map), @@ -267,6 +273,7 @@ if (&di != this) { dir_name = di.dir_name; + abs_dir_name = di.abs_dir_name; is_relative = di.is_relative; dir_mtime = di.dir_mtime; all_files = di.all_files; @@ -281,6 +288,7 @@ void update (void); std::string dir_name; + std::string abs_dir_name; bool is_relative; octave_time dir_mtime; string_vector all_files; @@ -346,6 +354,11 @@ typedef dir_info_list_type::const_iterator const_dir_info_list_iterator; typedef dir_info_list_type::iterator dir_info_list_iterator; + typedef std::map<std::string, dir_info> abs_dir_cache_type; + + typedef abs_dir_cache_type::const_iterator const_abs_dir_cache_iterator; + typedef abs_dir_cache_type::iterator abs_dir_cache_iterator; + typedef std::list<file_info> file_info_list_type; typedef file_info_list_type::const_iterator const_file_info_list_iterator; @@ -387,6 +400,8 @@ static std::string sys_path; + static abs_dir_cache_type abs_dir_cache; + static bool instance_ok (void); const_dir_info_list_iterator find_dir_info (const std::string& dir) const;