diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2021-11-05 13:28:23 +0100 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2021-11-05 13:28:23 +0100 |
commit | 8c787c3591c1c885b91a54128835b400858c5cca (patch) | |
tree | eca1b776912a305c4d45b3964038278a2fae1ead /debian/htdig/htdig-3.2.0b6/htword/WordContext.cc | |
parent | fe188b907cdf30dfdfe0eba9412e7f8749fec158 (diff) | |
download | extra-dependencies-8c787c3591c1c885b91a54128835b400858c5cca.tar.gz extra-dependencies-8c787c3591c1c885b91a54128835b400858c5cca.zip |
DEB htdig: Added to repository.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htword/WordContext.cc')
-rw-r--r-- | debian/htdig/htdig-3.2.0b6/htword/WordContext.cc | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/htword/WordContext.cc b/debian/htdig/htdig-3.2.0b6/htword/WordContext.cc new file mode 100644 index 00000000..490c9361 --- /dev/null +++ b/debian/htdig/htdig-3.2.0b6/htword/WordContext.cc @@ -0,0 +1,107 @@ +// +// WordContext.cc +// +// WordContext: call Initialize for all classes that need to. +// This will enable the Instance() static member +// of each to return a properly allocated and configured +// object. +// +// Part of the ht://Dig package <http://www.htdig.org/> +// Copyright (c) 1999-2004 The ht://Dig Group +// For copyright details, see the file COPYING in your distribution +// or the GNU Library General Public License (LGPL) version 2 or later +// <http://www.gnu.org/copyleft/lgpl.html> +// +// $Id: WordContext.cc,v 1.5 2004/05/28 13:15:26 lha Exp $ +// + +#ifdef HAVE_CONFIG_H +#include "htconfig.h" +#endif /* HAVE_CONFIG_H */ + +#include <stdlib.h> +#include <sys/stat.h> +#include <errno.h> + +#include "WordContext.h" +#include "WordType.h" +#include "WordKeyInfo.h" +#include "WordDBInfo.h" +#include "WordRecord.h" +#include "WordMonitor.h" + +void WordContext::Initialize(Configuration &config) +{ +#if !defined(HAVE_LIBZ) || !defined(HAVE_ZLIB_H) + config.Add("wordlist_compress", "false"); +#endif + + WordType::Initialize(config); + WordKeyInfo::Initialize(config); + WordRecordInfo::Initialize(config); + WordDBInfo::Initialize(config); + if(config.Boolean("wordlist_monitor")) + WordMonitor::Initialize(config); +} + +Configuration *WordContext::Initialize(const ConfigDefaults* config_defaults /* = 0 */) +{ + Configuration *config = new Configuration(); + + if(config_defaults) + config->Defaults(config_defaults); + + String filename; + // + // Check file pointed by MIFLUZ_CONFIG environment variable + // + if(getenv("MIFLUZ_CONFIG")) { + filename << getenv("MIFLUZ_CONFIG"); + struct stat statbuf; + if(stat((char*)filename, &statbuf) < 0) { + if(errno != ENOENT) { + fprintf(stderr, "WordContext::Initialize: MIFLUZ_CONFIG could not stat %s\n", (char*)filename); + perror(""); + } + filename.trunc(); + } + } + // + // Check for ~/.mifluz + // + if(filename.empty()) { + const char* home = getenv("HOME"); + if(home) { + filename << home << "/.mifluz"; + struct stat statbuf; + if(stat((char*)filename, &statbuf) < 0) { + if(errno != ENOENT) { + fprintf(stderr, "WordContext::Initialize: could not stat %s\n", (char*)filename); + perror(""); + } + filename.trunc(); + } + } + } + + if(!filename.empty()) + config->Read(filename); + + Initialize(*config); + + if(filename.empty() && !config_defaults) { + delete config; + config = 0; + } + + return config; +} + +void WordContext::Finish() +{ + delete WordType::Instance(); + delete WordKeyInfo::Instance(); + delete WordRecordInfo::Instance(); + delete WordDBInfo::Instance(); + if(WordMonitor::Instance()) delete WordMonitor::Instance(); +} |