Index: src/MenuCreator.cc =================================================================== RCS file: /cvsroot/fluxbox/fluxbox/src/MenuCreator.cc,v retrieving revision 1.14 diff -u -r1.14 MenuCreator.cc --- src/MenuCreator.cc 9 Sep 2004 14:32:56 -0000 1.14 +++ src/MenuCreator.cc 12 Sep 2004 00:14:03 -0000 @@ -221,9 +221,31 @@ } // end of config else if (str_key == "include") { // include string newfile = FbTk::StringUtil::expandFilename(str_label); - // inject this file into the current menu - MenuCreator::createFromFile(newfile, menu); - Fluxbox::instance()->saveMenuFilename(newfile.c_str()); + if (FbTk::Directory::isDirectory(newfile)) { + // inject every file in this directory into the current menu + FbTk::Directory dir(newfile.c_str()); + + std::vector filelist(dir.entries()); + for (size_t file_index = 0; file_index < dir.entries(); ++file_index) + filelist[file_index] = dir.readFilename(); + std::sort(filelist.begin(), filelist.end(), less()); + + for (size_t file_index = 0; file_index < dir.entries(); file_index++) { + std::string thisfile(newfile + '/' + filelist[file_index]); + + if (FbTk::Directory::isRegularFile(thisfile) && + (filelist[file_index][0] != '.') && + (thisfile[thisfile.length() - 1] != '~')) { + MenuCreator::createFromFile(thisfile, menu); + Fluxbox::instance()->saveMenuFilename(thisfile.c_str()); + } + } + + } else { + // inject this file into the current menu + MenuCreator::createFromFile(newfile, menu); + Fluxbox::instance()->saveMenuFilename(newfile.c_str()); + } } // end of include else if (str_key == "submenu") {