summaryrefslogtreecommitdiff
path: root/server/src/formattools.cc
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/formattools.cc')
-rw-r--r--server/src/formattools.cc168
1 files changed, 0 insertions, 168 deletions
diff --git a/server/src/formattools.cc b/server/src/formattools.cc
deleted file mode 100644
index 6a58d74..0000000
--- a/server/src/formattools.cc
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/***************************************************************************
- * formattools.cc
- *
- * Mon Oct 27 09:34:46 CET 2008
- * Copyright 2008 Bent Bisballe Nyeng
- * deva@aasimon.org
- ****************************************************************************/
-
-/*
- * This file is part of Pracro.
- *
- * Pracro is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Pracro is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Pracro; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-#include "formattools.h"
-#include "mltokenizer.h"
-#include "luaformatmapper.h"
-
-/**
- * Replace all ocurrences of c with cc.
- */
-static std::string escape_string(std::string str, char c)
-{
- std::string out;
- for(size_t i = 0; i < str.length(); i++) {
- if(str[i] == c) out += str[i];
- out += str[i];
- }
- return out;
-}
-
-/**
- * Replace all ocurrences of cc with c.
- */
-static std::string deescape_string(std::string str, char c)
-{
- std::string out;
- for(size_t i = 0; i < str.length(); i++) {
- if(i < str.length() - 1 && str[i] == c && str[i + 1] == c) {
- out += str[i];
- i++; // Skip the next character
- } else {
- out += str[i];
- }
- }
- return out;
-}
-
-std::string escape_multilist_string(std::string str)
-{
- return escape_string(escape_string(str, '{'), '}');
-}
-
-std::string escape_resume_string(std::string str)
-{
- return escape_string(escape_string(str, '['), ']');
-}
-
-Fields get_multilist_values(std::string mlvalue)
-{
- std::map<std::string, std::string> values;
-
- std::vector< mltoken_t > tokens = mltokenize(mlvalue);
- std::vector< mltoken_t >::iterator i = tokens.begin();
- while(i != tokens.end()) {
- if(i->type == MLTT_VALUE) values[i->name] = i->value;
- i++;
- }
-
- return values;
-}
-
-std::string render_multilist_string(std::string mlvalue)
-{
- std::string output;
-
- std::vector< mltoken_t > tokens = mltokenize(mlvalue);
- std::vector< mltoken_t >::iterator i = tokens.begin();
- while(i != tokens.end()) {
- output += i->value;
- i++;
- }
-
- return output;
-}
-
-std::string render_resume_string(std::string str, Fields &fields)
-{
- std::string out;
-
- LUAFormatMapper mapper(fields);
-
- // Replace ${foo|bar} with bar
- for(size_t i = 0; i < str.length(); i++) {
- if(str[i] == '$') {
- if(i < str.length() - 2 &&
- str[i+1] == '[' && str[i+2] != '[') {
- // We are in a key/value
-
- // Look for end marker
- size_t j;
- for(j = i + 2; j < str.length(); j++) {
- if(str[j] == ']' && str[j + 1] != ']') {
- // We have an end marker
- break;
- }
- }
-
- std::string luaprogram = str.substr(i + 2, j - (i + 2));
- std::string value = mapper.map(luaprogram);
- out += escape_resume_string(value);
-
- i = j;
-
- } else out += str[i];
- } else {
- out += str[i];
- }
- }
-
- return deescape_string(deescape_string(out, '['), ']');
-}
-
-#ifdef TEST_FORMATTOOLS
-
-int main()
-{
- Fields fields;
- fields["dingo"] = "[[meget dyr]]";
- fields["fnuld"] = "Zimbabwe";
- fields["mlstring"] =
- "Ladidaa ${myname|bar} ${{dingo|dyt}} ${dims|{{dimmer}}}.\n"
- "Ladidaa ${myname|bole} ${{dingo|dyt}} ${dims|[[fillerhejs]]}.\n"
- "Ladidaa ${myname|daske} ${{dingo|dyt}} ${dims|buller}.\n";
-
- /*
- printf("%s\n", deescape_string(deescape_string("[[] []]", '['), ']').c_str());
-
- if(escape_multilist_string("${} {{}}") != "${{}} {{{{}}}}") return 1;
- if(escape_resume_string("$[] [[]]") != "$[[]] [[[[]]]]") return 1;
-
- std::string mlstring = "Ladidaa ${myname|bar} ${{dingo|dyt}} ${dims|dulle}.";
- printf("{%s}\n", render_multilist_string(mlstring).c_str());
- */
-
- std::string resumestring = "Ladidaa \n$["
- "printfmlval(mlstring, ' * ', true, '<p>', 'myname', '</p>', 'PRE', 'dims', 'POST')"
- "] dalidaadoo.";
- printf("{%s}\n", render_resume_string(resumestring, fields).c_str());
-
- // std::string resumestring2 = "Ladidaa \n$[printfmlval(mlstring, ' * ', false, '<p>', 'myname', '</p>', 'PRE', 'dims', 'POST')] dalidaadoo.";
- // printf("{%s}\n", render_resume_string(resumestring2, fields).c_str());
- return 0;
-}
-
-#endif/*TEST_FORMATTOOLS*/