Mercurial > octave-nkf
diff libinterp/interpfcn/load-path.cc @ 16690:1c45e22fc444 classdef
Implement meta.package.getAllPackages() method.
* libinterp/interpfcn/load-path.h (load_path::get_all_package_names):
New static method.
(load_path::do_get_all_package_names): New method.
* libinterp/interpfcn/load-path.cc
(load_path::do_get_all_package_names): New method.
* libinterp/octave-value/ov-classdef/cc (package_getAllPackages): New
static function.
(install_classdef): Install it as "meta.package,getAllPackages" method.
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Mon, 20 May 2013 14:37:25 -0400 |
parents | edbb123cbe3a |
children |
line wrap: on
line diff
--- a/libinterp/interpfcn/load-path.cc Mon May 20 12:44:03 2013 -0400 +++ b/libinterp/interpfcn/load-path.cc Mon May 20 14:37:25 2013 -0400 @@ -2103,6 +2103,21 @@ return retval; } +std::list<std::string> +load_path::do_get_all_package_names (bool only_top_level) const +{ + std::list<std::string> retval; + + for (const_loader_map_iterator l = loader_map.begin (); + l != loader_map.end (); ++l) + { + if (! only_top_level || l->first.find ('.') == std::string::npos) + retval.push_back (l->first); + } + + return retval; +} + static void execute_pkg_add_or_del (const std::string& dir, const std::string& script_file)