Mercurial > hg > octave-lyh
diff liboctave/pathsearch.cc @ 8008:4d13a7a2f6ab
dir_path: use singleton class for static data members
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 05 Aug 2008 12:04:10 -0400 |
parents | a1dbe9d80eee |
children | 0ef13e15319b |
line wrap: on
line diff
--- a/liboctave/pathsearch.cc +++ b/liboctave/pathsearch.cc @@ -37,11 +37,29 @@ #include "kpse.cc" -char dir_path::path_sep_char = SEPCHAR; +dir_path::static_members *dir_path::static_members::instance = 0; + +dir_path::static_members::static_members (void) + : xpath_sep_char (SEPCHAR), xpath_sep_str (SEPCHAR_STR) { } + +bool +dir_path::static_members::instance_ok (void) +{ + bool retval = true; -std::string dir_path::path_sep_str (SEPCHAR_STR); + if (! instance) + instance = new static_members (); -static bool octave_kpathsea_initialized = false; + if (! instance) + { + (*current_liboctave_error_handler) + ("unable to create dir_path::static_members object!"); + + retval = false; + } + + return retval; +} string_vector dir_path::elements (void) @@ -123,6 +141,8 @@ void dir_path::init (void) { + static bool octave_kpathsea_initialized = false; + if (! octave_kpathsea_initialized) { std::string val = octave_env::getenv ("KPATHSEA_DEBUG");