diff options
author | Slávek Banko <[email protected]> | 2021-11-05 13:28:23 +0100 |
---|---|---|
committer | Slávek Banko <[email protected]> | 2021-11-05 13:28:23 +0100 |
commit | 8c787c3591c1c885b91a54128835b400858c5cca (patch) | |
tree | eca1b776912a305c4d45b3964038278a2fae1ead /debian/htdig/htdig-3.2.0b6/htsearch/TemplateList.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 <[email protected]>
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htsearch/TemplateList.cc')
-rw-r--r-- | debian/htdig/htdig-3.2.0b6/htsearch/TemplateList.cc | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/htsearch/TemplateList.cc b/debian/htdig/htdig-3.2.0b6/htsearch/TemplateList.cc new file mode 100644 index 00000000..869f3fb1 --- /dev/null +++ b/debian/htdig/htdig-3.2.0b6/htsearch/TemplateList.cc @@ -0,0 +1,106 @@ +// +// TemplateList.cc +// +// +// TemplateList: As it sounds--a list of search result templates. Reads the +// configuration and any template files from disk, then retrieves +// the relevant template for display. +// +// Part of the ht://Dig package <http://www.htdig.org/> +// Copyright (c) 1995-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: TemplateList.cc,v 1.11 2004/05/28 13:15:24 lha Exp $ +// + +#ifdef HAVE_CONFIG_H +#include "htconfig.h" +#endif /* HAVE_CONFIG_H */ + +#include "TemplateList.h" +#include "URL.h" +#include "QuotedStringList.h" + +//***************************************************************************** +TemplateList::TemplateList() +{ +} + + +//***************************************************************************** +TemplateList::~TemplateList() +{ +} + + +//***************************************************************************** +// Return the template that belongs to the given internal template +// name. If no template can be found, NULL is returned. +// +Template * +TemplateList::get(const String& internalName) +{ + for (int i = 0; i < internalNames.Count(); i++) + { + const String *s = (const String *) internalNames[i]; + if (mystrcasecmp(*s, internalName) == 0) + return (Template *) templates[i]; + } + return 0; +} + + +//***************************************************************************** +// Create a list of templates from a configuration string. The string +// will have triplets of: display name, internal name, and filename. +// There are two special cases for the internal name: builtin-long and +// builtin-short. These will cause a hardcoded template to be +// created. All other templates are read in from the specified +// filename. +// +int +TemplateList::createFromString(const String& str) +{ + QuotedStringList sl(str, "\t \r\n"); + String display, internal, file; + Template *t; + + if ( sl.Count() % 3) return 0; // Make sure we have a multiple of three + + for (int i = 0; i < sl.Count(); i += 3) + { + display = sl[i]; + decodeURL(display); + internal = sl[i + 1]; + file = sl[i + 2]; + displayNames.Add(new String(display)); + internalNames.Add(new String(internal)); + + t = new Template(); + + if (mystrcasecmp((char*)file, "builtin-long") == 0) + { + String s; + s << "<dl><dt><strong><a href=\"$&(URL)\">$&(TITLE)</a></strong>"; + s << "$(STARSLEFT)\n"; + s << "</dt><dd>$(EXCERPT)<br>\n"; + s << "<em><a href=\"$&(URL)\">$&(URL)</a></em>\n"; + s << " <font size=\"-1\">$(MODIFIED), $(SIZE) bytes</font>\n"; + s << "</dd></dl>\n"; + t->setMatchTemplate((char*)s); + } + else if (mystrcasecmp((char*)file, "builtin-short") == 0) + { + t->setMatchTemplate("$(STARSRIGHT) <strong><a href=\"$&(URL)\">$&(TITLE)</a></strong><br>\n"); + } + else + { + t->createFromFile((char*)file); + } + templates.Add(t); + } + + return 1; +} |