diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 1211532..56676a9 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -3,7 +3,8 @@ { "name": "Linux", "includePath": [ - "${workspaceFolder}/**" + "${workspaceFolder}/**", + "${workspaceFolder}/../CoreUtils/**" ], "defines": [], "compilerPath": "/usr/bin/gcc", diff --git a/Operand.cpp b/Operand.cpp index b8bc42e..b250e23 100644 --- a/Operand.cpp +++ b/Operand.cpp @@ -2,7 +2,10 @@ #include "Exception.h" #include #include +#include #include +#include +#include namespace jet { @@ -11,7 +14,7 @@ namespace jet { doubleValue = 0; in.skipWhitespace(); - + if(in.startsWith("$[") || in.startsWith("#[")) { string = tag.getVariable(in); doubleValue = string.asDouble(); @@ -36,7 +39,7 @@ namespace jet { if(in.ifNext(")")) { string = parm1.string.substring(parm2.string.asInteger()); } else if(!in.ifNext(",")) - throw coreutils::Exception("Expecting , in SUBSTRING expression."); + throw coreutils::Exception("Expecting , in SUBSTRING expression."); Operand parm3(in, tag); if(in.ifNext(")")) { string = parm1.string.substring(parm2.string.asInteger(), parm3.string.asInteger()); @@ -115,13 +118,176 @@ namespace jet { } else throw coreutils::Exception("Expecting ) at end of INTEGER expression."); } else if(in.ifNextIgnoreCase("ROUND")) { - + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for ROUND parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = round(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of ROUND expression."); } else if(in.ifNextIgnoreCase("RANDOM")) { unsigned int seed = (unsigned int)clock(); doubleValue = (double) rand_r(&seed) / (RAND_MAX + 1.0); isNumber = true; string = std::format("{:.12f}", doubleValue); string.removeTrailingZeros(); + } else if(in.ifNextIgnoreCase("ABS")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for ABS parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = abs(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of ABS expression."); + } else if(in.ifNextIgnoreCase("MAX")) { + + } else if(in.ifNextIgnoreCase("MIN")) { + + } else if(in.ifNextIgnoreCase("POW")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for POW parameters."); + Operand parm1(in, tag); + if(!in.ifNext(",")) + throw coreutils::Exception("Expecting , in POW expression."); + Operand parm2(in, tag); + if(in.ifNext(")")) { + doubleValue = pow(parm1.doubleValue, parm2.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of substring expression."); + } else if(in.ifNextIgnoreCase("SIN")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for SIN parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = sin(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of SIN expression."); + } else if(in.ifNextIgnoreCase("ASIN")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for ASIN parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = asin(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of ASIN expression."); + } else if(in.ifNextIgnoreCase("COS")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for COS parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = cos(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of COS expression."); + } else if(in.ifNextIgnoreCase("ACOS")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for ACOS parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = acos(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of ACOS expression."); + } else if(in.ifNextIgnoreCase("ATAN")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for ATAN parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = atan(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of ATAN expression."); + } else if(in.ifNextIgnoreCase("SQRT")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for SQRT parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = sqrt(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of SQRT expression."); + } else if(in.ifNextIgnoreCase("DEG")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for DEG parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = parm1.doubleValue * 180 / 3.14159; + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of DEG expression."); + } else if(in.ifNextIgnoreCase("RAD")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for RAD parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = parm1.doubleValue * 3.14159 / 180; + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of RAD expression."); + } else if(in.ifNextIgnoreCase("TAN")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for TAN parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = tan(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of TAN expression."); + } else if(in.ifNextIgnoreCase("TRUNC")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for TRUNC parameters."); + Operand parm1(in, tag); + if(in.ifNext(")")) { + doubleValue = trunc(parm1.doubleValue); + isNumber = true; + string = std::format("{:.12f}", doubleValue); + string.removeTrailingZeros(); + } else + throw coreutils::Exception("Expecting ) at end of TRUNC expression."); + } else if(in.ifNextIgnoreCase("CEIL")) { + + } else if(in.ifNextIgnoreCase("FLOOR")) { + + } else if(in.ifNextIgnoreCase("UNIXTIME")) { + if(!in.ifNext("(")) + throw coreutils::Exception("Expecting ( for UNIXTIME."); + if(in.ifNext(")")) { + auto now = std::chrono::system_clock::now(); + auto duration_since_epoch = now.time_since_epoch(); + auto seconds_since_epoch = std::chrono::duration_cast(duration_since_epoch); + int unixtime = seconds_since_epoch.count(); + string << unixtime; + } else + throw coreutils::Exception("Expecting ) at end of UNIXTIME."); } else if(in.ifNextIgnoreCase("true")) { boolean = true; string = "true"; @@ -138,7 +304,7 @@ namespace jet { isNumber = false; } else throw coreutils::Exception("operand is not valid."); - + in.skipWhitespace(); if(in.ifNext("!=") || in.ifNext("<>")) { diff --git a/TODO.txt b/TODO.txt index 9ee06f2..5b423b0 100644 --- a/TODO.txt +++ b/TODO.txt @@ -11,6 +11,5 @@ $[data(length)] possibly. BUG LIST -1) Call tag is acting wierd. Look at testcall.jet. -2) Fix the variable retriever to perform all variable translation +1) Fix the variable retriever to perform all variable translation before fetching value processing. diff --git a/Tag.h b/Tag.h index ccab774..8db4916 100644 --- a/Tag.h +++ b/Tag.h @@ -6,15 +6,23 @@ #include "Global.h" #include +/// +/// +/// + namespace jet { +/// +/// +/// + class Tag : public coreutils::ZString { public: - Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent = NULL, Tag *local = NULL, coreutils::ZString splitTagName = ""); + Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent = NULL, Tag *local = NULL, coreutils::ZString splitTagName = ""); //!>Constructor virtual ~Tag(); - coreutils::MString getVariable(coreutils::ZString &variable, bool inContainer = false); + coreutils::MString getVariable(coreutils::ZString &variable, bool inContainer = false); //!>retrieve a vairable value from a text string cotontaining a variable name. coreutils::MString resolveKeyword(coreutils::ZString keyword); std::map variables; diff --git a/__call.cpp b/__call.cpp index a9ecdf1..7e4eff7 100644 --- a/__call.cpp +++ b/__call.cpp @@ -1,3 +1,4 @@ + #include "__call.h" #include "Exception.h" #include "MString.h" @@ -6,12 +7,13 @@ #include #include #include +#include namespace jet { __call::__call(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) : Tag(in, parentOut, global, parent, local) { - if(hasContainer) - throw coreutils::Exception("call tag cannot have a container."); + if(hasContainer && keywordDefined("input")) + throw coreutils::Exception("call tag cannot have both input keyword and have a container."); if(!keywordDefined("pgm")) throw coreutils::Exception("pgm keyword must be specified."); for(ix = 0; ix <= 50; ++ix) @@ -30,7 +32,17 @@ namespace jet { if(pid == 0) { close(fdo[0]); dup2(fdo[1], 1); - if(keywordDefined("input")) { + if(hasContainer) { + pipe(fdi); + if(fork() == 0) { + close(fdi[0]); + write(fdi[1], container.getData(), container.getLength()); + close(fdi[1]); + exit(0); + } + close(fdi[1]); + dup2(fdi[0], 0); + } else if(keywordDefined("input")) { coreutils::MString input(resolveKeyword("input")); pipe(fdi); if(fork() == 0) { diff --git a/docs/JetCore.aux b/docs/JetCore.aux index 3a60a28..60c260e 100644 --- a/docs/JetCore.aux +++ b/docs/JetCore.aux @@ -2,58 +2,85 @@ \@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{5}{}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {1.1}Use Cases}{5}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}World Wide Web Site}{5}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.2}API Handling}{5}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.3}Asterisk Dial Plan Generator Tool}{5}{}\protected@file@percent } \@writefile{toc}{\contentsline {chapter}{\numberline {2}Tags and Attributes}{7}{}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {2.1}User Defined Tags and Tag Liraries}{7}{}\protected@file@percent } -\@writefile{toc}{\contentsline {chapter}{\numberline {3}Variables and Variable Types}{9}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {3}User Defined Tags and Tag Libraries}{9}{}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {3.1}Global Variables}{9}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.2}Local Variables}{9}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.3}Keyword Variables}{10}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.4}Environment Variables}{10}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.5}CGI Variables}{10}{}\protected@file@percent } -\@writefile{toc}{\contentsline {chapter}{\numberline {4}Expressions}{11}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {4}Variables and Variable Types}{11}{}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}Operators}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}Arithmentic Operators}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Boolean Operators}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {4.2}Function Reference}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}concat}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}integer}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}left}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.4}random}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.5}round}{11}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.6}substring}{12}{}\protected@file@percent } -\@writefile{toc}{\contentsline {chapter}{\numberline {5}Common Gateway Interface Features}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.1}Global Variables}{11}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.2}Local Variables}{12}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.3}Keyword Variables}{12}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.4}Environment Variables}{12}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.5}CGI Variables}{12}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {5}Expressions}{13}{}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {chapter}{\numberline {6}Tag Reference}{15}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.1}Operators}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.1}Arithmetic Operators}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.2}Boolean Operators}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.2}Function Reference}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.3}Date Functions}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}unixtime}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.4}Math Functions}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}abs}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}acos}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}asin}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.4}atan}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.5}cos}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.6}max}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.7}min}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.8}pow}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.9}random}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.10}sin}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.5}String Functions}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.1}concat}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.2}integer}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.3}left}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.4}reverse}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.5}right}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.6}round}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.7}substring}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.8}tolower}{15}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.9}toupper}{15}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.10}trim}{15}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5.11}expr}{15}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {6}Common Gateway Interface Features}{17}{}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {6.1}call}{15}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.2}comment}{15}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.3}cookie}{15}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.4}dump}{16}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.5}expr}{16}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.6}for}{16}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.7}header}{16}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.8}if/else}{16}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.9}ifrow/else}{16}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.10}include}{17}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.11}jet}{17}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.12}mysql}{17}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.13}read}{17}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.14}set}{17}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.15}sql}{18}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.16}stream}{18}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.17}system}{18}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.18}tag}{18}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.19}until}{18}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.20}while}{19}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.21}whiledir}{19}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.22}whilerow}{19}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.23}write}{19}{}\protected@file@percent } -\gdef \@abspage@last{19} +\@writefile{toc}{\contentsline {section}{\numberline {6.1}Session Control}{17}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {7}Tag Reference}{19}{}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {7.1}call}{19}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.2}comment}{19}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.3}cookie}{20}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.4}dump}{20}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.5}exclude}{20}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.6}expr}{20}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.7}for}{20}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.8}header}{20}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.9}if/else}{20}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.10}ifrow/else}{21}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.11}include}{21}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.12}jet}{21}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.13}mysql}{21}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.14}read}{21}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.15}set}{22}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.16}sql}{22}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.17}stream}{22}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.18}system}{22}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.19}tag}{22}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.20}until}{23}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.21}while}{23}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.22}whiledir}{23}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.23}whilerow}{23}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.24}write}{23}{}\protected@file@percent } +\gdef \@abspage@last{23} diff --git a/docs/JetCore.dvi b/docs/JetCore.dvi index 1d25976..1288a5a 100644 Binary files a/docs/JetCore.dvi and b/docs/JetCore.dvi differ diff --git a/docs/JetCore.log b/docs/JetCore.log index 59cd379..e728f06 100644 --- a/docs/JetCore.log +++ b/docs/JetCore.log @@ -1,186 +1,126 @@ -This is e-pTeX, Version 3.141592653-p4.1.0-230214-2.6 (utf8.euc) (TeX Live 2023/Debian) (preloaded format=ptex 2025.1.13) 30 APR 2025 16:16 +This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex 2024.11.17) 11 NOV 2025 10:01 +entering extended mode restricted \write18 enabled. %&-line parsing enabled. -**JetCore.txt -(./JetCore.txt -! Undefined control sequence. -l.1 \documentclass - {book} -? -! Undefined control sequence. -l.3 \title - {JET Extension Tags} -? q -OK, entering \batchmode... -! Undefined control sequence. -l.4 \author - {Bradford Matthew Arant Sr.} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. +**JetCore.tex +(./JetCore.tex +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-01-22> +(/usr/share/texlive/texmf-dist/tex/latex/base/book.cls +Document Class: book 2023/05/17 v1.4n Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo +File: bk10.clo 2023/05/17 v1.4n Standard LaTeX file (size option) +) +\c@part=\count187 +\c@chapter=\count188 +\c@section=\count189 +\c@subsection=\count190 +\c@subsubsection=\count191 +\c@paragraph=\count192 +\c@subparagraph=\count193 +\c@figure=\count194 +\c@table=\count195 +\abovecaptionskip=\skip48 +\belowcaptionskip=\skip49 +\bibindent=\dimen140 +) +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2024-01-04 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count196 +\l__pdf_internal_box=\box51 +) +(./JetCore.aux) +\openout1 = `JetCore.aux'. -! Undefined control sequence. -l.5 \date - {\today} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.5 \date{\today - } -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.7 \begin - {document} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.9 \maketitle - -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.11 \tableofcontents - -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.13 \chapter - {Introduction} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.23 \chapter - {Tags and Attributes} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.32 ...e from mysql may be performed using the \< - mysql\> tag -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Missing $ inserted. - - $ - - \mskip -\>->\mskip - \medmuskip -l.32 ...mysql may be performed using the \ - tag -I've inserted a begin-math/end-math symbol since I think -you left one out. Proceed, with fingers crossed. - -! Undefined control sequence. -l.33 in combination with the \< - ifrow\>, \ and \ tags. -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.33 in combination with the \, \< - whilerow\> and \ tags. -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.33 ...on with the \, \ and \< - sql\> tags. -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Missing $ inserted. - - $ - - \par -l.34 - -I've inserted a begin-math/end-math symbol since I think -you left one out. Proceed, with fingers crossed. +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 9. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 9. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 9. + [1 -Overfull \hbox (81.87863pt too wide) in paragraph at lines 32--34 -[]\tenrm Outputting a database from mysql may be per-formed us-ing the mysql$ \ -teni tagincombinationwiththeifrow ; whilerow andsql tags:$ | +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2 -\hbox(6.94444+1.94444)x469.75499, glue set - 1.0 -.\hbox(0.0+0.0)x20.0 -.\displace 0.0 -.\tenrm O -.\tenrm u -.\tenrm t -.etc. +] +(./JetCore.toc +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 2. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 2. + [3]) +\tf@toc=\write3 +\openout3 = `JetCore.toc'. -! Undefined control sequence. -l.35 \section - {User Defined Tags and Tag Liraries} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. + [4] +Chapter 1. +[5 -! Undefined control sequence. -l.66 \chapter - {Variables and Variable Types} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. +] [6 -! Undefined control sequence. -l.78 \begin - {itemize} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. +] +Chapter 2. +[7] [8 + +] +Chapter 3. +[9] [10 + +] +Chapter 4. +[11{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc}] [12] +Chapter 5. +[13 + +] [14] [15] [16 + +] +Chapter 6. +[17] [18] +Chapter 7. +[19 + +] [20] [21] [22] [23] (./JetCore.aux) + *********** +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-01-22> + *********** + ) +Here is how much of TeX's memory you used: + 508 strings out of 474222 + 9280 string characters out of 5748732 + 1936975 words of memory out of 5000000 + 22826 multiletter control sequences out of 15000+600000 + 564392 words of font info for 57 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 35i,6n,50p,280b,189s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on JetCore.pdf (23 pages, 138298 bytes). +PDF statistics: + 119 PDF objects out of 1000 (max. 8388607) + 77 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) - [1] ) -Output written on JetCore.dvi (1 page, 3708 bytes). diff --git a/docs/JetCore.pdf b/docs/JetCore.pdf index 134e07c..9b776e3 100644 Binary files a/docs/JetCore.pdf and b/docs/JetCore.pdf differ diff --git a/docs/JetCore.synctex.gz b/docs/JetCore.synctex.gz new file mode 100644 index 0000000..b149c3a Binary files /dev/null and b/docs/JetCore.synctex.gz differ diff --git a/docs/JetCore.txt b/docs/JetCore.tex similarity index 87% rename from docs/JetCore.txt rename to docs/JetCore.tex index 2ba16e3..e6374de 100644 --- a/docs/JetCore.txt +++ b/docs/JetCore.tex @@ -20,6 +20,14 @@ itself is not passed to the output and will not appear in the output. Skip Blank Lines options on containers will skip passing any blank lines or line containing only whitespace to the output. +\section{Use Cases} + +\subsection{World Wide Web Site} + +\subsection{API Handling} + +\subsection{Asterisk Dial Plan Generator Tool} + \chapter{Tags and Attributes} XML style tagging is used to insert functions and other behaviors into @@ -29,10 +37,10 @@ to perform the desired function and affect the output. Tag attributes are used to pass parameters into the operations and functionality for each tag. -Outputting a database from mysql may be performed using the \ tag -in combination with the \, \ and \ tags. +Outputting a database from mysql may be performed using the tag +in combination with the , and tags. -\section{User Defined Tags and Tag Liraries} +\chapter{User Defined Tags and Tag Libraries} You can define your own tag definitions and use them within your JET scripts. @@ -77,7 +85,7 @@ variable types and a brief description of their source: \begin{itemize} -\item Global - values can be initiaized using the set tag and +\item Global - values can be initialized using the set tag and specifying the scope of global. \item Local - @@ -85,6 +93,10 @@ specifying the scope of global. \item Keyword - within a tag's container we may access the keyword values specified on the containing tag. +\item Environment - + +\item CGI Variables - + \end{itemize} \section{Global Variables} @@ -116,18 +128,22 @@ The variable retrieved is not processed for variable resolution. \section{Environment Variables} +Environment variables are values existing in the exported list of value/pairs as provided by the operating system process. Apache, NGINX as well as other HTML server platforms provide environment variables to describe the requests being handed in. + \section{CGI Variables} When operating Jet in CGI mode you have access to the form data submitted by the remote client (usually a browser or curl request) using the POST method. -\chapter{Expressions} +\sectionmark{Expressions} Expressions are used to perform complicated calculations (arithmetic), perform comparisons between values (boolean), manipulate strings (string) or perform operations on dates (date). +\chapter{Expressions} + \section{Operators} Operators are used to perform arithmetic or boolean operations on @@ -142,22 +158,59 @@ operators, as follows: \end{itemize} -\subsection{Arithmentic Operators} +\subsection{Arithmetic Operators} \subsection{Boolean Operators} - \section{Function Reference} +\section{Date Functions} + +\subsection{unixtime} + +\section{Math Functions} + +\subsection{abs} + +\subsection{acos} + +Returns to arc-cosine of the given parameter. + +\subsection{asin} + +\subsection{atan} + +\subsection{cos} + +\subsection{max} + +\subsection{min} + +\subsection{pow} + +\subsection{random} + +Use the random function to return a random number between 0 and 1. + +\subsection{sin} + +\section{String Functions} + +String functions are provided to accelerate the building and parsing of strings passed into the expression. Numbers can be treated as a string or a number depending on the function called and the data state of the values being manipulated. + \subsection{concat} +The concat tag is used to assemble a string by concatenating one or more values to formulate the resulting string. + + + \subsection{integer} \subsection{left} -\subsection{random} +\subsection{reverse} -Use the random function to return a random number between 0 and 1. +\subsection{right} \subsection{round} @@ -167,7 +220,17 @@ number of digits after the decimal point. \subsection{substring} Use the substring operation to extract a portion of a string and return -the value as a string. +the value as a string. + +\subsection{tolower} + +\subsection{toupper} + +\subsection{trim} + +\subsection{expr} + +Use the expr function to parse the string contents contained in the expr string. \chapter{Common Gateway Interface Features} diff --git a/docs/JetCore.toc b/docs/JetCore.toc index d450647..d8615a2 100644 --- a/docs/JetCore.toc +++ b/docs/JetCore.toc @@ -1,45 +1,70 @@ \contentsline {chapter}{\numberline {1}Introduction}{5}{}% +\contentsline {section}{\numberline {1.1}Use Cases}{5}{}% +\contentsline {subsection}{\numberline {1.1.1}World Wide Web Site}{5}{}% +\contentsline {subsection}{\numberline {1.1.2}API Handling}{5}{}% +\contentsline {subsection}{\numberline {1.1.3}Asterisk Dial Plan Generator Tool}{5}{}% \contentsline {chapter}{\numberline {2}Tags and Attributes}{7}{}% -\contentsline {section}{\numberline {2.1}User Defined Tags and Tag Liraries}{7}{}% -\contentsline {chapter}{\numberline {3}Variables and Variable Types}{9}{}% -\contentsline {section}{\numberline {3.1}Global Variables}{9}{}% -\contentsline {section}{\numberline {3.2}Local Variables}{9}{}% -\contentsline {section}{\numberline {3.3}Keyword Variables}{10}{}% -\contentsline {section}{\numberline {3.4}Environment Variables}{10}{}% -\contentsline {section}{\numberline {3.5}CGI Variables}{10}{}% -\contentsline {chapter}{\numberline {4}Expressions}{11}{}% -\contentsline {section}{\numberline {4.1}Operators}{11}{}% -\contentsline {subsection}{\numberline {4.1.1}Arithmentic Operators}{11}{}% -\contentsline {subsection}{\numberline {4.1.2}Boolean Operators}{11}{}% -\contentsline {section}{\numberline {4.2}Function Reference}{11}{}% -\contentsline {subsection}{\numberline {4.2.1}concat}{11}{}% -\contentsline {subsection}{\numberline {4.2.2}integer}{11}{}% -\contentsline {subsection}{\numberline {4.2.3}left}{11}{}% -\contentsline {subsection}{\numberline {4.2.4}random}{11}{}% -\contentsline {subsection}{\numberline {4.2.5}round}{11}{}% -\contentsline {subsection}{\numberline {4.2.6}substring}{12}{}% -\contentsline {chapter}{\numberline {5}Common Gateway Interface Features}{13}{}% -\contentsline {chapter}{\numberline {6}Tag Reference}{15}{}% -\contentsline {section}{\numberline {6.1}call}{15}{}% -\contentsline {section}{\numberline {6.2}comment}{15}{}% -\contentsline {section}{\numberline {6.3}cookie}{15}{}% -\contentsline {section}{\numberline {6.4}dump}{16}{}% -\contentsline {section}{\numberline {6.5}expr}{16}{}% -\contentsline {section}{\numberline {6.6}for}{16}{}% -\contentsline {section}{\numberline {6.7}header}{16}{}% -\contentsline {section}{\numberline {6.8}if/else}{16}{}% -\contentsline {section}{\numberline {6.9}ifrow/else}{16}{}% -\contentsline {section}{\numberline {6.10}include}{17}{}% -\contentsline {section}{\numberline {6.11}jet}{17}{}% -\contentsline {section}{\numberline {6.12}mysql}{17}{}% -\contentsline {section}{\numberline {6.13}read}{17}{}% -\contentsline {section}{\numberline {6.14}set}{17}{}% -\contentsline {section}{\numberline {6.15}sql}{18}{}% -\contentsline {section}{\numberline {6.16}stream}{18}{}% -\contentsline {section}{\numberline {6.17}system}{18}{}% -\contentsline {section}{\numberline {6.18}tag}{18}{}% -\contentsline {section}{\numberline {6.19}until}{18}{}% -\contentsline {section}{\numberline {6.20}while}{19}{}% -\contentsline {section}{\numberline {6.21}whiledir}{19}{}% -\contentsline {section}{\numberline {6.22}whilerow}{19}{}% -\contentsline {section}{\numberline {6.23}write}{19}{}% +\contentsline {chapter}{\numberline {3}User Defined Tags and Tag Libraries}{9}{}% +\contentsline {chapter}{\numberline {4}Variables and Variable Types}{11}{}% +\contentsline {section}{\numberline {4.1}Global Variables}{11}{}% +\contentsline {section}{\numberline {4.2}Local Variables}{12}{}% +\contentsline {section}{\numberline {4.3}Keyword Variables}{12}{}% +\contentsline {section}{\numberline {4.4}Environment Variables}{12}{}% +\contentsline {section}{\numberline {4.5}CGI Variables}{12}{}% +\contentsline {chapter}{\numberline {5}Expressions}{13}{}% +\contentsline {section}{\numberline {5.1}Operators}{13}{}% +\contentsline {subsection}{\numberline {5.1.1}Arithmetic Operators}{13}{}% +\contentsline {subsection}{\numberline {5.1.2}Boolean Operators}{13}{}% +\contentsline {section}{\numberline {5.2}Function Reference}{13}{}% +\contentsline {section}{\numberline {5.3}Date Functions}{13}{}% +\contentsline {subsection}{\numberline {5.3.1}unixtime}{13}{}% +\contentsline {section}{\numberline {5.4}Math Functions}{13}{}% +\contentsline {subsection}{\numberline {5.4.1}abs}{13}{}% +\contentsline {subsection}{\numberline {5.4.2}acos}{13}{}% +\contentsline {subsection}{\numberline {5.4.3}asin}{14}{}% +\contentsline {subsection}{\numberline {5.4.4}atan}{14}{}% +\contentsline {subsection}{\numberline {5.4.5}cos}{14}{}% +\contentsline {subsection}{\numberline {5.4.6}max}{14}{}% +\contentsline {subsection}{\numberline {5.4.7}min}{14}{}% +\contentsline {subsection}{\numberline {5.4.8}pow}{14}{}% +\contentsline {subsection}{\numberline {5.4.9}random}{14}{}% +\contentsline {subsection}{\numberline {5.4.10}sin}{14}{}% +\contentsline {section}{\numberline {5.5}String Functions}{14}{}% +\contentsline {subsection}{\numberline {5.5.1}concat}{14}{}% +\contentsline {subsection}{\numberline {5.5.2}integer}{14}{}% +\contentsline {subsection}{\numberline {5.5.3}left}{14}{}% +\contentsline {subsection}{\numberline {5.5.4}reverse}{14}{}% +\contentsline {subsection}{\numberline {5.5.5}right}{14}{}% +\contentsline {subsection}{\numberline {5.5.6}round}{14}{}% +\contentsline {subsection}{\numberline {5.5.7}substring}{14}{}% +\contentsline {subsection}{\numberline {5.5.8}tolower}{15}{}% +\contentsline {subsection}{\numberline {5.5.9}toupper}{15}{}% +\contentsline {subsection}{\numberline {5.5.10}trim}{15}{}% +\contentsline {subsection}{\numberline {5.5.11}expr}{15}{}% +\contentsline {chapter}{\numberline {6}Common Gateway Interface Features}{17}{}% +\contentsline {section}{\numberline {6.1}Session Control}{17}{}% +\contentsline {chapter}{\numberline {7}Tag Reference}{19}{}% +\contentsline {section}{\numberline {7.1}call}{19}{}% +\contentsline {section}{\numberline {7.2}comment}{19}{}% +\contentsline {section}{\numberline {7.3}cookie}{20}{}% +\contentsline {section}{\numberline {7.4}dump}{20}{}% +\contentsline {section}{\numberline {7.5}exclude}{20}{}% +\contentsline {section}{\numberline {7.6}expr}{20}{}% +\contentsline {section}{\numberline {7.7}for}{20}{}% +\contentsline {section}{\numberline {7.8}header}{20}{}% +\contentsline {section}{\numberline {7.9}if/else}{20}{}% +\contentsline {section}{\numberline {7.10}ifrow/else}{21}{}% +\contentsline {section}{\numberline {7.11}include}{21}{}% +\contentsline {section}{\numberline {7.12}jet}{21}{}% +\contentsline {section}{\numberline {7.13}mysql}{21}{}% +\contentsline {section}{\numberline {7.14}read}{21}{}% +\contentsline {section}{\numberline {7.15}set}{22}{}% +\contentsline {section}{\numberline {7.16}sql}{22}{}% +\contentsline {section}{\numberline {7.17}stream}{22}{}% +\contentsline {section}{\numberline {7.18}system}{22}{}% +\contentsline {section}{\numberline {7.19}tag}{22}{}% +\contentsline {section}{\numberline {7.20}until}{23}{}% +\contentsline {section}{\numberline {7.21}while}{23}{}% +\contentsline {section}{\numberline {7.22}whiledir}{23}{}% +\contentsline {section}{\numberline {7.23}whilerow}{23}{}% +\contentsline {section}{\numberline {7.24}write}{23}{}% diff --git a/docs/JetCore.txt.pdf b/docs/JetCore.txt.pdf deleted file mode 100644 index 062875b..0000000 Binary files a/docs/JetCore.txt.pdf and /dev/null differ diff --git a/docs/doxygen.sty b/docs/doxygen.sty new file mode 100644 index 0000000..78a5254 --- /dev/null +++ b/docs/doxygen.sty @@ -0,0 +1,576 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{calc} +\RequirePackage{float} +%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{verbatim} +\RequirePackage[table]{xcolor} +\RequirePackage{longtable_doxygen} +\RequirePackage{tabu_doxygen} +\RequirePackage{fancyvrb} +\RequirePackage{tabularx} +\RequirePackage{multirow} +\RequirePackage{hanging} +\RequirePackage{ifpdf} +\RequirePackage{adjustbox} +\RequirePackage{amssymb} +\RequirePackage{stackengine} +\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis + +%---------- Internal commands used in this style file ---------------- + +\newcommand{\ensurespace}[1]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip% hide the previous |\vskip| from |\addvspace| + \endgroup% +} + +\newcommand{\DoxyHorRuler}[1]{% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{#1=0}% + {% + \hrule% + }% + {% + \hrulefilll% + }% +} +\newcommand{\DoxyLabelFont}{} +\newcommand{\entrylabel}[1]{% + {% + \parbox[b]{\labelwidth-4pt}{% + \makebox[0pt][l]{\DoxyLabelFont#1}% + \vspace{1.5\baselineskip}% + }% + }% +} + +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + %\setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by
 ... 
+\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} +% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. +\newlength{\CodeWidthChar} +\newlength{\CodeHeightChar} +\settowidth{\CodeWidthChar}{?} +\settoheight{\CodeHeightChar}{?} +% Necessary for hanging indent +\newlength{\DoxyCodeWidth} + +\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par} + +\newcommand\NiceSpace{% + \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}[1]{% + \par% + \scriptsize% + \normalfont\ttfamily% + \rightskip0pt plus 1fil% + \settowidth{\DoxyCodeWidth}{000000}% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{\equal{#1}{0}} + { + {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% + } + { + {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% + } + +}{% + \normalfont% + \normalsize% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% +} + +% Redefining not defined characters, i.e. "Replacement Character" in tex output. +\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% + \textcolor{white}{\sffamily\bfseries\small ?}}{% + \rotatebox{45}{$\blacksquare$}}}} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}[1]{% + \DoxyCode{#1}% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or
    ...
) +\newenvironment{DoxyEnumerate}{% + \enumerate% +}{% + \endenumerate% +} + +% Used by bullet lists (using '-', @li, @arg, or
    ...
) +\newenvironment{DoxyItemize}{% + \itemize% +}{% + \enditemize% +} + +% Used by description lists (using
...
) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \begin{center}% +}{% + \end{center}% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% + \begin{center}% +}{% + \end{center}% +} + +% Used by @image +% (only if inline is specified) +\newenvironment{DoxyInlineImage}{% +}{% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return and @returns +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @internal +\newenvironment{DoxyInternal}[1]{% + \paragraph*{#1}% +}{% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \tabulinesep=1mm% + \par% + \ifthenelse{\equal{#1}{}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\ifthenelse{\equal{#1}{1}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + } + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields simple class style enums +\newenvironment{DoxyEnumFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% +}{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for member lists +\newenvironment{DoxyCompactItemize}{% + \begin{itemize}% + \setlength{\itemsep}{-3pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% +}{% + \end{itemize}% +} + +% Used for member descriptions +\newenvironment{DoxyCompactList}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \renewcommand{\makelabel}{\hfill}% + }% +}{% + \end{list}% +} + +% Used for reference lists (@bug, @deprecated, @todo, etc.) +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% +}{% + \end{list}% +} + +% Used by @bug, @deprecated, @todo, etc. +\newenvironment{DoxyRefDesc}[1]{% + \begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}}% + \settowidth\labelwidth{\makelabel{#1}}% + \setlength\leftmargin{\labelwidth+\labelsep}% + }% +}{% + \end{list}% +} + +% Used by parameter lists and simple sections +\newenvironment{Desc} +{\begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + } +}{% + \end{list}% +} + +% Used by tables +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% +\newenvironment{TabularC}[1]% +{\tabulinesep=1mm +\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% +{\end{longtabu*}\par}% + +\newenvironment{TabularNC}[1]% +{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% +{\end{tabu}\par}% + +% Used for member group headers +\newenvironment{Indent}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + }% + \item[]\ignorespaces% +}{% + \unskip% + \end{list}% +} + +% Used when hyperlinks are turned off +\newcommand{\doxyref}[3]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used to link to a table when hyperlinks are turned on +\newcommand{\doxytablelink}[2]{% + \ref{#1}% +} + +% Used to link to a table when hyperlinks are turned off +\newcommand{\doxytableref}[3]{% + \ref{#3}% +} + +% Used by @addindex +\newcommand{\lcurly}{\{} +\newcommand{\rcurly}{\}} + +% Colors used for syntax highlighting +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} + +% Color used for table heading +\newcommand{\tableheadbgcolor}{lightgray}% + +% Version of hypertarget with correct landing location +\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} + +% possibility to have sections etc. be within the margins +% unfortunately had to copy part of book.cls and add \raggedright +\makeatletter +\newcommand\doxysection{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedright\normalfont\Large\bfseries}} +\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\large\bfseries}} +\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\raggedright\normalfont\normalsize\bfseries}} +\makeatother +% Define caption that is also suitable in a table +\makeatletter +\def\doxyfigcaption{% +\refstepcounter{figure}% +\@dblarg{\@caption{figure}}} +\makeatother diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/docs/html/bc_s.png differ diff --git a/docs/html/bc_sd.png b/docs/html/bc_sd.png new file mode 100644 index 0000000..31ca888 Binary files /dev/null and b/docs/html/bc_sd.png differ diff --git a/docs/html/closed.png b/docs/html/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/docs/html/closed.png differ diff --git a/docs/html/doc.svg b/docs/html/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/docs/html/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/html/docd.svg b/docs/html/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/docs/html/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css new file mode 100644 index 0000000..009a9b5 --- /dev/null +++ b/docs/html/doxygen.css @@ -0,0 +1,2045 @@ +/* The standard CSS for doxygen 1.9.8*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/docs/html/doxygen.svg b/docs/html/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/docs/html/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js new file mode 100644 index 0000000..b73c828 --- /dev/null +++ b/docs/html/dynsections.js @@ -0,0 +1,192 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + var id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + var start = $(this).attr('data-start'); + var end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + var line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); +} + +/* @license-end */ diff --git a/docs/html/folderclosed.svg b/docs/html/folderclosed.svg new file mode 100644 index 0000000..b04bed2 --- /dev/null +++ b/docs/html/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/docs/html/folderclosedd.svg b/docs/html/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/docs/html/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/docs/html/folderopen.svg b/docs/html/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/docs/html/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/docs/html/folderopend.svg b/docs/html/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/docs/html/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/html/graph_legend.html b/docs/html/graph_legend.html new file mode 100644 index 0000000..ecc9d7b --- /dev/null +++ b/docs/html/graph_legend.html @@ -0,0 +1,141 @@ + + + + + + + +My Project: Graph Legend + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+ + + + diff --git a/docs/html/graph_legend.md5 b/docs/html/graph_legend.md5 new file mode 100644 index 0000000..da515da --- /dev/null +++ b/docs/html/graph_legend.md5 @@ -0,0 +1 @@ +f74606a252eb303675caf37987d0b7af \ No newline at end of file diff --git a/docs/html/graph_legend.png b/docs/html/graph_legend.png new file mode 100644 index 0000000..2d88046 Binary files /dev/null and b/docs/html/graph_legend.png differ diff --git a/docs/html/index.epub b/docs/html/index.epub new file mode 100644 index 0000000..499150b Binary files /dev/null and b/docs/html/index.epub differ diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 0000000..a6ec34d --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,81 @@ + + + + + + + +My Project: Main Page + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
My Project Documentation
+
+
+
+ + + + diff --git a/docs/html/jquery.js b/docs/html/jquery.js new file mode 100644 index 0000000..1dffb65 --- /dev/null +++ b/docs/html/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/menu.js b/docs/html/menu.js new file mode 100644 index 0000000..b0b2693 --- /dev/null +++ b/docs/html/menu.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+='
    '; + for (var i in data.children) { + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js new file mode 100644 index 0000000..d1ece13 --- /dev/null +++ b/docs/html/menudata.js @@ -0,0 +1,26 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}]} diff --git a/docs/html/minus.svg b/docs/html/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/docs/html/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/html/minusd.svg b/docs/html/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/docs/html/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/docs/html/nav_f.png differ diff --git a/docs/html/nav_fd.png b/docs/html/nav_fd.png new file mode 100644 index 0000000..032fbdd Binary files /dev/null and b/docs/html/nav_fd.png differ diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/docs/html/nav_g.png differ diff --git a/docs/html/nav_h.png b/docs/html/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/docs/html/nav_h.png differ diff --git a/docs/html/nav_hd.png b/docs/html/nav_hd.png new file mode 100644 index 0000000..de80f18 Binary files /dev/null and b/docs/html/nav_hd.png differ diff --git a/docs/html/open.png b/docs/html/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/docs/html/open.png differ diff --git a/docs/html/plus.svg b/docs/html/plus.svg new file mode 100644 index 0000000..0752016 --- /dev/null +++ b/docs/html/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/html/plusd.svg b/docs/html/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/docs/html/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/html/search/close.svg b/docs/html/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/docs/html/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/docs/html/search/mag.svg b/docs/html/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/docs/html/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/docs/html/search/mag_d.svg b/docs/html/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/docs/html/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/docs/html/search/mag_sel.svg b/docs/html/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/docs/html/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/docs/html/search/mag_seld.svg b/docs/html/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/docs/html/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/docs/html/search/search.css b/docs/html/search/search.css new file mode 100644 index 0000000..19f76f9 --- /dev/null +++ b/docs/html/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/html/search/search.js b/docs/html/search/search.js new file mode 100644 index 0000000..6fd40c6 --- /dev/null +++ b/docs/html/search/search.js @@ -0,0 +1,840 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; eli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all 0.25s;transition:all 0.25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}#main-menu-state:not(:checked)~#main-menu{display:none}#main-menu-state:checked~#main-menu{display:block}@media (min-width: 768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked)~#main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:none}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} diff --git a/docs/latex/Makefile b/docs/latex/Makefile new file mode 100644 index 0000000..7f82972 --- /dev/null +++ b/docs/latex/Makefile @@ -0,0 +1,27 @@ +LATEX_CMD?=pdflatex +MKIDX_CMD?=makeindex +BIBTEX_CMD?=bibtex +LATEX_COUNT?=8 +MANUAL_FILE?=refman + +all: $(MANUAL_FILE).pdf + +pdf: $(MANUAL_FILE).pdf + +$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex + $(LATEX_CMD) $(MANUAL_FILE) + $(MKIDX_CMD) $(MANUAL_FILE).idx + $(LATEX_CMD) $(MANUAL_FILE) + latex_count=$(LATEX_COUNT) ; \ + while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + $(LATEX_CMD) $(MANUAL_FILE) ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + $(MKIDX_CMD) $(MANUAL_FILE).idx + $(LATEX_CMD) $(MANUAL_FILE) + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf diff --git a/docs/latex/doxygen.sty b/docs/latex/doxygen.sty new file mode 100644 index 0000000..4bfc17f --- /dev/null +++ b/docs/latex/doxygen.sty @@ -0,0 +1,694 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{calc} +\RequirePackage{float} +%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{verbatim} +\RequirePackage[table]{xcolor} +\RequirePackage{longtable_doxygen} +\RequirePackage{tabu_doxygen} +\RequirePackage{fancyvrb} +\RequirePackage{tabularx} +\RequirePackage{multicol} +\RequirePackage{multirow} +\RequirePackage{hanging} +\RequirePackage{ifpdf} +\RequirePackage{adjustbox} +\RequirePackage{amssymb} +\RequirePackage{stackengine} +\RequirePackage{enumitem} +\RequirePackage{alphalph} +\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis + +%---------- Internal commands used in this style file ---------------- + +\newcommand{\ensurespace}[1]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip% hide the previous |\vskip| from |\addvspace| + \endgroup% +} + +\newcommand{\DoxyHorRuler}[1]{% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{#1=0}% + {% + \hrule% + }% + {% + \hrulefilll% + }% +} +\newcommand{\DoxyLabelFont}{} +\newcommand{\entrylabel}[1]{% + {% + \parbox[b]{\labelwidth-4pt}{% + \makebox[0pt][l]{\DoxyLabelFont#1}% + \vspace{1.5\baselineskip}% + }% + }% +} + +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + %\setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by
     ... 
    +\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} +% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. +\newlength{\CodeWidthChar} +\newlength{\CodeHeightChar} +\settowidth{\CodeWidthChar}{?} +\settoheight{\CodeHeightChar}{?} +% Necessary for hanging indent +\newlength{\DoxyCodeWidth} + +\newcommand\DoxyCodeLine[1]{ + \ifthenelse{\equal{\detokenize{#1}}{}} + { + \vspace*{\baselineskip} + } + { + \hangpara{\DoxyCodeWidth}{1}{#1}\par + } +} + +\newcommand\NiceSpace{% + \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}[1]{% + \par% + \scriptsize% + \normalfont\ttfamily% + \rightskip0pt plus 1fil% + \settowidth{\DoxyCodeWidth}{000000}% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{\equal{#1}{0}} + { + {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% + } + { + {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% + } + +}{% + \normalfont% + \normalsize% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% +} + +% Redefining not defined characters, i.e. "Replacement Character" in tex output. +\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% + \textcolor{white}{\sffamily\bfseries\small ?}}{% + \rotatebox{45}{$\blacksquare$}}}} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}[1]{% + \DoxyCode{#1}% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \par% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or
      ...
    ) +\setlistdepth{12} +\newlist{DoxyEnumerate}{enumerate}{12} +\setlist[DoxyEnumerate,1]{label=\arabic*.} +\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,3]{label=\roman*.} +\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.} +\setlist[DoxyEnumerate,5]{label=\arabic*.} +\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,7]{label=\roman*.} +\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.} +\setlist[DoxyEnumerate,9]{label=\arabic*.} +\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,11]{label=\roman*.} +\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.} + +% Used by bullet lists (using '-', @li, @arg, or
      ...
    ) +\setlistdepth{12} +\newlist{DoxyItemize}{itemize}{12} +\setlist[DoxyItemize]{label=\textperiodcentered} + +\setlist[DoxyItemize,1]{label=\textbullet} +\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash} +\setlist[DoxyItemize,3]{label=\textasteriskcentered} +\setlist[DoxyItemize,4]{label=\textperiodcentered} + +% Used by description lists (using
    ...
    ) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \centering% +}{% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% + \begin{center}% +}{% + \end{center}% +} + +% Used by @image +% (only if inline is specified) +\newenvironment{DoxyInlineImage}{% +}{% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return and @returns +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \tabulinesep=1mm% + \par% + \ifthenelse{\equal{#1}{}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\ifthenelse{\equal{#1}{1}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + } + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields simple class style enums +\newenvironment{DoxyEnumFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% +}{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for member lists +\newenvironment{DoxyCompactItemize}{% + \begin{itemize}% + \setlength{\itemsep}{-3pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% +}{% + \end{itemize}% +} + +% Used for member descriptions +\newenvironment{DoxyCompactList}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \renewcommand{\makelabel}{\hfill}% + }% +}{% + \end{list}% +} + +% Used for reference lists (@bug, @deprecated, @todo, etc.) +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% +}{% + \end{list}% +} + +% Used by @bug, @deprecated, @todo, etc. +\newenvironment{DoxyRefDesc}[1]{% + \begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}}% + \settowidth\labelwidth{\makelabel{#1}}% + \setlength\leftmargin{\labelwidth+\labelsep}% + }% +}{% + \end{list}% +} + +% Used by parameter lists and simple sections +\newenvironment{Desc} +{\begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + } +}{% + \end{list}% +} + +% Used by tables +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% +\newenvironment{TabularC}[1]% +{\tabulinesep=1mm +\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% +{\end{longtabu*}\par}% + +\newenvironment{TabularNC}[1]% +{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% +{\end{tabu}\par}% + +% Used for member group headers +\newenvironment{Indent}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + }% + \item[]\ignorespaces% +}{% + \unskip% + \end{list}% +} + +% Used when hyperlinks are turned on +\newcommand{\doxylink}[2]{% + \mbox{\hyperlink{#1}{#2}}% +} + +% Used when hyperlinks are turned on +% Third argument is the SectionType, see the doxygen internal +% documentation for the values (relevant: Page ... Subsubsection). +\newcommand{\doxysectlink}[3]{% + \mbox{\hyperlink{#1}{#2}}% +} +% Used when hyperlinks are turned off +\newcommand{\doxyref}[3]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used when hyperlinks are turned off +% Fourth argument is the SectionType, see the doxygen internal +% documentation for the values (relevant: Page ... Subsubsection). +\newcommand{\doxysectref}[4]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used to link to a table when hyperlinks are turned on +\newcommand{\doxytablelink}[2]{% + \ref{#1}% +} + +% Used to link to a table when hyperlinks are turned off +\newcommand{\doxytableref}[3]{% + \ref{#3}% +} + +% Used by @addindex +\newcommand{\lcurly}{\{} +\newcommand{\rcurly}{\}} + +% Colors used for syntax highlighting +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} + +% Color used for table heading +\newcommand{\tableheadbgcolor}{lightgray}% + +% Version of hypertarget with correct landing location +\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} + +% possibility to have sections etc. be within the margins +% unfortunately had to copy part of book.cls and add \raggedright +\makeatletter +\newcounter{subsubsubsection}[subsubsection] +\newcounter{subsubsubsubsection}[subsubsubsection] +\newcounter{subsubsubsubsubsection}[subsubsubsubsection] +\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection] +\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}} +\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}} +\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}} +\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}} +\newcommand{\subsubsubsectionmark}[1]{} +\newcommand{\subsubsubsubsectionmark}[1]{} +\newcommand{\subsubsubsubsubsectionmark}[1]{} +\newcommand{\subsubsubsubsubsubsectionmark}[1]{} +\def\toclevel@subsubsubsection{4} +\def\toclevel@subsubsubsubsection{5} +\def\toclevel@subsubsubsubsubsection{6} +\def\toclevel@subsubsubsubsubsubsection{7} +\def\toclevel@paragraph{8} +\def\toclevel@subparagraph{9} + +\newcommand\doxysection{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedright\normalfont\Large\bfseries}} +\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\large\bfseries}} +\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} + +\newcommand\l@subsubsubsection{\@dottedtocline{4}{6.1em}{7.8em}} +\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{6.1em}{9.4em}} +\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{6.1em}{11em}} +\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{6.1em}{12.6em}} +\renewcommand\l@paragraph{\@dottedtocline{8}{6.1em}{14.2em}} +\renewcommand\l@subparagraph{\@dottedtocline{9}{6.1em}{15.8em}} +\makeatother +% the sectsty doesn't look to be maintained but gives, in our case, some warning like: +% LaTeX Warning: Command \underline has changed. +% Check if current package is valid. +% unfortunately had to copy the relevant part +\newcommand*{\doxypartfont} [1] + {\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1} + \gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}} +\newcommand*{\doxychapterfont} [1] + {\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1} + \gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}} +\newcommand*{\doxysectionfont} [1] + {\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxysubsectionfont} [1] + {\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxysubsubsectionfont} [1] + {\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxyparagraphfont} [1] + {\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxysubparagraphfont} [1] + {\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxyminisecfont} [1] + {\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}} +\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}% + \doxychapterfont{#1}% + \doxysectionfont{#1}% + \doxysubsectionfont{#1}% + \doxysubsubsectionfont{#1}% + \doxyparagraphfont{#1}% + \doxysubparagraphfont{#1}% + \doxyminisecfont{#1}}% +% Define caption that is also suitable in a table +\makeatletter +\def\doxyfigcaption{% +\H@refstepcounter{figure}% +\@dblarg{\@caption{figure}}} +\makeatother + +% Define alpha enumarative names for counters > 26 +\makeatletter +\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname} +\def\@enumalphalphcnt#1{\alphalph{#1}} +\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname} +\def\@enumAlphAlphcnt#1{\AlphAlph{#1}} +\makeatother +\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa} +\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA} diff --git a/docs/latex/etoc_doxygen.sty b/docs/latex/etoc_doxygen.sty new file mode 100644 index 0000000..5f7e127 --- /dev/null +++ b/docs/latex/etoc_doxygen.sty @@ -0,0 +1,2178 @@ +%% +%% This is file etoc_doxygen.sty +%% +%% Apart from this header notice and the renaming from etoc to +%% etoc_doxygen (also in \ProvidesPackage) it is an identical +%% copy of +%% +%% etoc.sty +%% +%% at version 1.2b of 2023/07/01. +%% +%% This file has been provided to Doxygen team courtesy of the +%% author for benefit of users having a LaTeX installation not +%% yet providing version 1.2a or later of etoc, whose +%% deeplevels feature is required. +%% +%% The original source etoc.dtx (only of the latest version at +%% any given time) is available at +%% +%% https://ctan.org/pkg/etoc +%% +%% and contains the terms for copying and modification as well +%% as author contact information. +%% +%% In brief any modified versions of this file must be renamed +%% with new filenames distinct from etoc.sty. +%% +%% Package: etoc +%% Version: 1.2b +%% License: LPPL 1.3c +%% Copyright (C) 2012-2023 Jean-Francois B. +\NeedsTeXFormat{LaTeX2e}[2003/12/01] +\ProvidesPackage{etoc_doxygen}[2023/07/01 v1.2b Completely customisable TOCs (JFB)] +\newif\ifEtoc@oldLaTeX +\@ifl@t@r\fmtversion{2020/10/01} + {} + {\Etoc@oldLaTeXtrue + \PackageInfo{etoc}{Old LaTeX (\fmtversion) detected!\MessageBreak + Since 1.1a (2023/01/14), etoc prefers LaTeX at least\MessageBreak + as recent as 2020-10-01, for reasons of the .toc file,\MessageBreak + and used to require it (from 1.1a to 1.2).\MessageBreak + This etoc (1.2b) does not *require* it, but has not been\MessageBreak + tested thoroughly on old LaTeX (especially if document\MessageBreak + does not use hyperref) and retrofitting was done only\MessageBreak + on basis of author partial remembrances of old context.\MessageBreak + Reported}} +\RequirePackage{kvoptions} +\SetupKeyvalOptions{prefix=Etoc@} +\newif\ifEtoc@lof +\DeclareVoidOption{lof}{\Etoc@loftrue + \PackageInfo{etoc}{Experimental support for \string\locallistoffigures.\MessageBreak + Barely tested, use at own risk}% +} +\newif\ifEtoc@lot +\DeclareVoidOption{lot}{\Etoc@lottrue + \PackageInfo{etoc}{Experimental support for \string\locallistoftables.\MessageBreak + Barely tested, use at own risk}% +} +\@ifclassloaded{memoir}{ +\PackageInfo{etoc} + {As this is with memoir class, all `...totoc' options\MessageBreak + are set true by default. Reported} +\DeclareBoolOption[true]{maintoctotoc} +\DeclareBoolOption[true]{localtoctotoc} +\DeclareBoolOption[true]{localloftotoc} +\DeclareBoolOption[true]{locallottotoc} +}{ +\DeclareBoolOption[false]{maintoctotoc} +\DeclareBoolOption[false]{localtoctotoc} +\DeclareBoolOption[false]{localloftotoc} +\DeclareBoolOption[false]{locallottotoc} +} +\DeclareBoolOption[true]{ouroboros} +\DeclareBoolOption[false]{deeplevels} +\DeclareDefaultOption{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}} +\ProcessKeyvalOptions* +\DisableKeyvalOption[action=error,package=etoc]{etoc}{lof} +\DisableKeyvalOption[action=error,package=etoc]{etoc}{lot} +\DisableKeyvalOption[action=error,package=etoc]{etoc}{deeplevels} +\def\etocsetup#1{\setkeys{etoc}{#1}} +\def\etocifmaintoctotoc{\ifEtoc@maintoctotoc + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\def\etociflocaltoctotoc{\ifEtoc@localtoctotoc + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\def\etociflocalloftotoc{\ifEtoc@localloftotoc + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\def\etociflocallottotoc{\ifEtoc@locallottotoc + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\RequirePackage{multicol} +\def\etoc@{\etoc@} +\long\def\Etoc@gobtoetoc@ #1\etoc@{} +\newtoks\Etoc@toctoks +\def\Etoc@par{\par} +\def\etocinline{\def\Etoc@par{}} +\let\etocnopar\etocinline +\def\etocdisplay{\def\Etoc@par{\par}} +\let\Etoc@global\@empty +\def\etocglobaldefs{\let\Etoc@global\global\let\tof@global\global} +\def\etoclocaldefs {\let\Etoc@global\@empty\let\tof@global\@empty} +\newif\ifEtoc@numbered +\newif\ifEtoc@hyperref +\newif\ifEtoc@parskip +\newif\ifEtoc@tocwithid +\newif\ifEtoc@standardlines +\newif\ifEtoc@etocstyle +\newif\ifEtoc@classstyle +\newif\ifEtoc@keeporiginaltoc +\newif\ifEtoc@skipprefix +\newif\ifEtoc@isfirst +\newif\ifEtoc@localtoc +\newif\ifEtoc@skipthisone +\newif\ifEtoc@stoptoc +\newif\ifEtoc@notactive +\newif\ifEtoc@mustclosegroup +\newif\ifEtoc@isemptytoc +\newif\ifEtoc@checksemptiness +\def\etocchecksemptiness {\Etoc@checksemptinesstrue } +\def\etocdoesnotcheckemptiness {\Etoc@checksemptinessfalse } +\newif\ifEtoc@notocifnotoc +\def\etocnotocifnotoc {\Etoc@checksemptinesstrue\Etoc@notocifnotoctrue } +\newcounter{etoc@tocid} +\def\Etoc@tocext{toc} +\def\Etoc@lofext{lof} +\def\Etoc@lotext{lot} +\let\Etoc@currext\Etoc@tocext +\def\etocifislocal{\ifEtoc@localtoc\expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi + } +\def\etocifislocaltoc{\etocifislocal{\ifx\Etoc@currext\Etoc@tocext + \expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi}% + {\@secondoftwo}% + } +\def\etocifislocallof{\etocifislocal{\ifx\Etoc@currext\Etoc@lofext + \expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi}% + {\@secondoftwo}% + } +\def\etocifislocallot{\etocifislocal{\ifx\Etoc@currext\Etoc@lotext + \expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi}% + {\@secondoftwo}% + } +\expandafter\def\csname Etoc@-3@@\endcsname {-\thr@@} +\expandafter\def\csname Etoc@-2@@\endcsname {-\tw@} +\expandafter\let\csname Etoc@-1@@\endcsname \m@ne +\expandafter\let\csname Etoc@0@@\endcsname \z@ +\expandafter\let\csname Etoc@1@@\endcsname \@ne +\expandafter\let\csname Etoc@2@@\endcsname \tw@ +\expandafter\let\csname Etoc@3@@\endcsname \thr@@ +\expandafter\chardef\csname Etoc@4@@\endcsname 4 +\expandafter\chardef\csname Etoc@5@@\endcsname 5 +\expandafter\chardef\csname Etoc@6@@\endcsname 6 +\ifEtoc@deeplevels + \expandafter\chardef\csname Etoc@7@@\endcsname 7 + \expandafter\chardef\csname Etoc@8@@\endcsname 8 + \expandafter\chardef\csname Etoc@9@@\endcsname 9 + \expandafter\chardef\csname Etoc@10@@\endcsname 10 + \expandafter\chardef\csname Etoc@11@@\endcsname 11 + \expandafter\chardef\csname Etoc@12@@\endcsname 12 +\fi +\expandafter\let\expandafter\Etoc@maxlevel + \csname Etoc@\ifEtoc@deeplevels12\else6\fi @@\endcsname +\edef\etocthemaxlevel{\number\Etoc@maxlevel} +\@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}} +\let\Etoc@none@@ \Etoc@minf +\expandafter\let\expandafter\Etoc@all@@ + \csname Etoc@\ifEtoc@deeplevels11\else5\fi @@\endcsname +\let\Etoc@dolevels\@empty +\def\Etoc@newlevel #1{\expandafter\def\expandafter\Etoc@dolevels\expandafter + {\Etoc@dolevels\Etoc@do{#1}}} +\ifdefined\expanded + \def\etocsetlevel#1#2{\expanded{\noexpand\etoc@setlevel{#1}{#2}}}% +\else + \def\etocsetlevel#1#2{{\edef\Etoc@tmp{\noexpand\etoc@setlevel{#1}{#2}}\expandafter}\Etoc@tmp}% +\fi +\def\etoc@setlevel#1#2{% + \edef\Etoc@tmp{\the\numexpr#2}% + \if1\ifnum\Etoc@tmp>\Etoc@maxlevel0\fi\unless\ifnum\Etoc@minf<\Etoc@tmp;\fi1% + \ifEtoc@deeplevels + \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,% + .7,.8,.9,.10,.11,.12,}% + \else + \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,}% + \fi + \ifin@\else\if\@car#1\@nil @\in@true\fi\fi + \ifin@ + \PackageWarning{etoc} + {Sorry, but `#1' is forbidden as level name.\MessageBreak + \if\@car#1\@nil @% + (because of the @ as first character)\MessageBreak\fi + Reported}% + \else + \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}% + \expandafter\let\csname Etoc@#1@@\expandafter\endcsname + \csname Etoc@\Etoc@tmp @@\endcsname + \expandafter\edef\csname Etoc@@#1@@\endcsname + {\expandafter\noexpand\csname Etoc@#1@@\endcsname}% + \expandafter\edef\csname toclevel@@#1\endcsname + {\expandafter\noexpand\csname toclevel@#1\endcsname}% + \fi + \else + \PackageWarning{etoc} + {Argument `\detokenize{#2}' of \string\etocsetlevel\space should + represent one of\MessageBreak + \ifnum\Etoc@minf=-\thr@@-2, \fi-1, 0, 1, 2, \ifEtoc@deeplevels ...\else3, 4\fi, + \the\numexpr\Etoc@maxlevel-1, or \number\Etoc@maxlevel\space + but evaluates to \Etoc@tmp.\MessageBreak + The level of `#1' will be set to \number\Etoc@maxlevel.\MessageBreak + Tables of contents will ignore `#1' as long\MessageBreak + as its level is \number\Etoc@maxlevel\space (=\string\etocthemaxlevel).% + \MessageBreak + Reported}% + \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}% + \expandafter\let\csname Etoc@#1@@\endcsname\Etoc@maxlevel + \fi +} +\def\etoclevel#1{\csname Etoc@#1@@\endcsname} +\def\etocthelevel#1{\number\csname Etoc@#1@@\endcsname} +\def\etocifunknownlevelTF#1{\@ifundefined{Etoc@#1@@}} +\@ifclassloaded{memoir}{\etocsetlevel{book}{-2}}{} +\etocsetlevel{part}{-1} +\etocsetlevel{chapter}{0} +\etocsetlevel{section}{1} +\etocsetlevel{subsection}{2} +\etocsetlevel{subsubsection}{3} +\etocsetlevel{paragraph}{4} +\etocsetlevel{subparagraph}{5} +\ifdefined\c@chapter + \etocsetlevel{appendix}{0} +\else + \etocsetlevel{appendix}{1} +\fi +\def\Etoc@do#1{\@namedef{l@@#1}{\csname l@#1\endcsname}} +\Etoc@dolevels +\let\Etoc@figure@@\Etoc@maxlevel +\let\Etoc@table@@ \Etoc@maxlevel +\let\Etoc@gobblethreeorfour\@gobblefour +\ifdefined\@gobblethree + \let\Etoc@gobblethree\@gobblethree +\else + \long\def\Etoc@gobblethree#1#2#3{}% +\fi +\AtBeginDocument{% +\@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}% +\@ifpackageloaded{hyperref} + {\Etoc@hyperreftrue} + {\ifEtoc@oldLaTeX + \let\Etoc@gobblethreeorfour\Etoc@gobblethree + \let\Etoc@etoccontentsline@fourargs\Etoc@etoccontentsline@ + \long\def\Etoc@etoccontentsline@#1#2#3{% + \Etoc@etoccontentsline@fourargs{#1}{#2}{#3}{}% + }% + \fi + }% +} +\def\etocskipfirstprefix {\global\Etoc@skipprefixtrue } +\def\Etoc@updatestackofends#1\etoc@{\gdef\Etoc@stackofends{#1}} +\def\Etoc@stackofends{{-3}{}} +\def\Etoc@doendsandbegin{% + \expandafter\Etoc@traversestackofends\Etoc@stackofends\etoc@ +} +\def\Etoc@traversestackofends#1{% + \ifnum#1>\Etoc@level + \csname Etoc@end@#1\endcsname + \expandafter\Etoc@traversestackofends + \else + \Etoc@traversestackofends@done{#1}% + \fi +} +\def\Etoc@traversestackofends@done#1#2{#2% + \ifnum#1<\Etoc@level + \csname Etoc@begin@\the\numexpr\Etoc@level\endcsname + \Etoc@global\Etoc@isfirsttrue + \edef\Etoc@tmp{{\the\numexpr\Etoc@level}}% + \else + \Etoc@global\Etoc@isfirstfalse + \let\Etoc@tmp\@empty + \fi + \expandafter\Etoc@updatestackofends\Etoc@tmp{#1}% +} +\def\Etoc@etoccontentsline #1{% + \let\Etoc@next\Etoc@gobblethreeorfour + \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel + \else + \Etoc@skipthisonefalse + \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname + \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi + \ifEtoc@localtoc + \ifEtoc@stoptoc + \Etoc@skipthisonetrue + \else + \ifEtoc@notactive + \Etoc@skipthisonetrue + \else + \unless\ifnum\Etoc@level>\etoclocaltop + \Etoc@skipthisonetrue + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \fi + \ifEtoc@skipthisone + \else + \unless\ifnum\Etoc@level>\c@tocdepth + \ifEtoc@standardlines + \let\Etoc@next\Etoc@savedcontentsline + \else + \let\Etoc@next\Etoc@etoccontentsline@ + \fi + \fi + \fi + \fi + \Etoc@next{#1}% +} +\def\Etoc@etoccontentsline@ #1#2#3#4{% + \Etoc@doendsandbegin + \Etoc@global\edef\Etoc@prefix {\expandafter\noexpand + \csname Etoc@prefix@\the\numexpr\Etoc@level\endcsname }% + \Etoc@global\edef\Etoc@contents{\expandafter\noexpand + \csname Etoc@contents@\the\numexpr\Etoc@level\endcsname }% + \ifEtoc@skipprefix \Etoc@global\def\Etoc@prefix{\@empty}\fi + \global\Etoc@skipprefixfalse + \Etoc@lxyz{#2}{#3}{#4}% + \Etoc@prefix + \Etoc@contents +} +\def\Etoc@lxyz #1#2#3{% + \ifEtoc@hyperref + \Etoc@global\def\etocthelink##1{\hyperlink{#3}{##1}}% + \else + \Etoc@global\let\etocthelink\@firstofone + \fi + \Etoc@global\def\etocthepage {#2}% + \ifEtoc@hyperref + \ifx\etocthepage\@empty + \Etoc@global\let\etocthelinkedpage\@empty + \else + \Etoc@global\def\etocthelinkedpage{\hyperlink {#3}{#2}}% + \fi + \else + \Etoc@global\let\etocthelinkedpage\etocthepage + \fi + \Etoc@global\def\etocthename{#1}% + \futurelet\Etoc@getnb@token\Etoc@@getnb #1\hspace\etoc@ + \ifEtoc@hyperref + \def\Etoc@tmp##1##2{\Etoc@global\def##2{\hyperlink{#3}{##1}}}% + \expandafter\Etoc@tmp\expandafter{\etocthename}\etocthelinkedname + \ifEtoc@numbered + \expandafter\Etoc@tmp\expandafter{\etocthenumber}\etocthelinkednumber + \else + \Etoc@global\let\etocthelinkednumber\@empty + \fi + \else + \Etoc@global\let\etocthelinkedname \etocthename + \Etoc@global\let\etocthelinkednumber\etocthenumber + \fi + \Etoc@global\expandafter\let\csname etoclink \endcsname \etocthelink + \Etoc@global\expandafter\let\csname etocname \endcsname \etocthename + \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthenumber + \Etoc@global\expandafter\let\csname etocpage \endcsname \etocthepage + \ifEtoc@hyperref + \Etoc@lxyz@linktoc + \fi +} +\def\Etoc@lxyz@linktoc{% + \ifcase\Hy@linktoc + \or + \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname + \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber + \or % page + \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage + \else % all + \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname + \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber + \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage + \fi +} +\def\Etoc@@getnb {% + \let\Etoc@next\Etoc@getnb + \ifx\Etoc@getnb@token\@sptoken\let\Etoc@next\Etoc@getnb@nonbr\fi + \ifx\Etoc@getnb@token\bgroup \let\Etoc@next\Etoc@getnb@nonbr\fi + \Etoc@next +} +\def\Etoc@getnb #1{% + \in@{#1}{\numberline\chapternumberline\partnumberline\booknumberline}% + \ifin@ + \let\Etoc@next\Etoc@getnb@nmbrd + \else + \ifnum\Etoc@level=\m@ne + \let\Etoc@next\Etoc@@getit + \else + \let\Etoc@next\Etoc@getnb@nonbr + \fi + \in@{#1}{\nonumberline}% + \ifin@ + \let\Etoc@next\Etoc@getnb@nonumberline + \fi + \fi + \Etoc@next #1% +} +\def\Etoc@getnb@nmbrd #1#2{% + \Etoc@global\Etoc@numberedtrue + \Etoc@global\def\etocthenumber {#2}% + \Etoc@getnb@nmbrd@getname\@empty +}% +\def\Etoc@getnb@nmbrd@getname #1\hspace\etoc@ {% + \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}% +} +\def\Etoc@getnb@nonbr #1\etoc@ {% + \Etoc@global\Etoc@numberedfalse + \Etoc@global\let\etocthenumber \@empty +} +\def\Etoc@getnb@nonumberline #1\hspace\etoc@ {% + \Etoc@global\Etoc@numberedfalse + \Etoc@global\let\etocthenumber \@empty + \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{\@gobble#1}% +} +\def\Etoc@@getit #1\hspace#2{% + \ifx\etoc@#2% + \Etoc@global\Etoc@numberedfalse + \Etoc@global\let\etocthenumber \@empty + \else + \Etoc@global\Etoc@numberedtrue + \Etoc@global\def\etocthenumber {#1}% + \expandafter\Etoc@getit@getname \expandafter\@empty + \fi +} +\def\Etoc@getit@getname #1\hspace\etoc@ {% + \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}% +} +\let\etocthename \@empty +\let\etocthenumber \@empty +\let\etocthepage \@empty +\let\etocthelinkedname \@empty +\let\etocthelinkednumber \@empty +\let\etocthelinkedpage \@empty +\let\etocthelink \@firstofone +\DeclareRobustCommand*{\etocname} {} +\DeclareRobustCommand*{\etocnumber}{} +\DeclareRobustCommand*{\etocpage} {} +\DeclareRobustCommand*{\etoclink} {\@firstofone} +\DeclareRobustCommand*{\etocifnumbered} + {\ifEtoc@numbered\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} +\expandafter\let\expandafter\etocxifnumbered\csname etocifnumbered \endcsname +\DeclareRobustCommand*{\etociffirst} + {\ifEtoc@isfirst\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} +\expandafter\let\expandafter\etocxiffirst\csname etociffirst \endcsname +\def\Etoc@readtoc {% + \ifeof \Etoc@tf + \else + \read \Etoc@tf to \Etoc@buffer + \Etoc@toctoks=\expandafter\expandafter\expandafter + {\expandafter\the\expandafter\Etoc@toctoks\Etoc@buffer}% + \expandafter\Etoc@readtoc + \fi +} +\Etoc@toctoks {}% (superfluous, but for clarity) +\AtBeginDocument{\IfFileExists{\jobname.toc} + {{\endlinechar=\m@ne + \makeatletter + \newread\Etoc@tf + \openin\Etoc@tf\@filef@und + \Etoc@readtoc + \global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}% + \closein\Etoc@tf}} + {\typeout{No file \jobname.toc.}}} +\def\Etoc@openouttoc{% + \ifEtoc@hyperref + \ifx\hyper@last\@undefined + \IfFileExists{\jobname .toc} + {\Hy@WarningNoLine + {old toc file detected; run LaTeX again (cheers from `etoc')}% + \global\Etoc@toctoks={}% + } + {}% + \fi + \fi + \if@filesw + \newwrite \tf@toc + \immediate \openout \tf@toc \jobname .toc\relax + \fi + \global\let\Etoc@openouttoc\empty +} +\def\Etoc@toctoc{% + \gdef\Etoc@stackofends{{-3}{}}% + \global\let\Etoc@level\Etoc@minf + \global\let\Etoc@virtualtop\Etoc@minf + \the\Etoc@toctoks + \ifEtoc@notactive + \else + \gdef\Etoc@level{-\thr@@}% + \Etoc@doendsandbegin + \fi +} +\def\Etoc@@startlocaltoc#1#2{% + \ifEtoc@localtoc + \ifnum #1=#2\relax + \global\let\etoclocaltop\Etoc@virtualtop + \Etoc@@startlocaltochook + \etoclocaltableofcontentshook + \ifEtoc@etocstyle + \etocetoclocaltocmaketitle + \fi + \ifx\Etoc@aftertitlehook\@empty + \else + \ifEtoc@localtoctotoc + \ifEtoc@ouroboros + \else + \let\Etoc@tmp\contentsline + \def\contentsline{\let\contentsline\Etoc@tmp\Etoc@gobblethreeorfour}% + \fi + \fi + \fi + \global\Etoc@notactivefalse + \fi + \fi +} +\let\etoc@startlocaltoc\@gobble +\let\Etoc@@startlocaltoc@toc\Etoc@@startlocaltoc +\let\Etoc@@startlocaltochook\@empty +\unless\ifEtoc@deeplevels + \def\etocdivisionnameatlevel#1{% + \ifcase\numexpr#1\relax + \ifdefined\c@chapter chapter\else section\fi% + \or section% + \or subsection% + \or subsubsection% + \or paragraph% + \or subparagraph% + \or empty% + \else\ifnum\numexpr#1<\m@ne + book% + \else + part% + \fi + \fi + } +\else + \def\etocdivisionnameatlevel#1{% + \ifcase\numexpr#1\relax + \ifdefined\c@chapter chapter\else section\fi% + \or section% + \or subsection% + \or subsubsection% + \or subsubsubsection% + \or subsubsubsubsection% + \or subsubsubsubsubsection% + \or subsubsubsubsubsubsection% + \or paragraph% + \or subparagraph% + \else\ifnum\numexpr#1>\z@ + empty% + \else\ifnum\numexpr#1=\m@ne + part% + \else + book% + \fi\fi + \fi + } +\fi +\def\etoclocalheadtotoc#1#2{\addcontentsline{toc}{@#1}{#2}} +\def\etocglobalheadtotoc{\addcontentsline{toc}} +\providecommand*\UseName{\@nameuse} +\def\etocetoclocaltocmaketitle{% + \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\localcontentsname}% + \if@noskipsec\leavevmode\par\fi + \etociflocaltoctotoc + {\etocifisstarred + {}% star variant, do not add to toc + {\etoclocalheadtotoc + {\etocdivisionnameatlevel{\etoclocaltop+1}}% + {\localcontentsname}% + }% + }% + {}% +}% +\def\localcontentsname {\contentsname}% +\let\etoclocaltableofcontentshook\@empty +\if1\ifEtoc@lof0\fi\ifEtoc@lot0\fi1% +\else +\AtBeginDocument{% + \let\Etoc@originaladdcontentsline\addcontentsline + \def\addcontentsline{\Etoc@hackedaddcontentsline}% +}% +\fi +\ifEtoc@lof + \ifEtoc@lot + \def\Etoc@hackedaddcontentsline#1{% + \expanded{\noexpand\in@{.#1,}}{.lof,.lot,}% + \ifin@\expandafter\Etoc@hackedaddcontentsline@i + \else\expandafter\Etoc@originaladdcontentsline + \fi {#1}} + \else + \def\Etoc@hackedaddcontentsline#1{% + \expanded{\noexpand\in@{.#1,}}{.lof,}% + \ifin@\expandafter\Etoc@hackedaddcontentsline@i + \else\expandafter\Etoc@originaladdcontentsline + \fi {#1}} + \fi +\else + \def\Etoc@hackedaddcontentsline#1{% + \expanded{\noexpand\in@{.#1,}}{.lot,}% + \ifin@\expandafter\Etoc@hackedaddcontentsline@i + \else\expandafter\Etoc@originaladdcontentsline + \fi {#1}} +\fi +\def\Etoc@hackedaddcontentsline@i#1#2#3{% + \expanded{\noexpand\in@{.#1;#2,}}{.lof;figure,.lot;table,}% + \ifin@ + \addtocontents {toc}{% + \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% + \ifdefined\protected@file@percent\protected@file@percent\fi + }% + \fi + \Etoc@originaladdcontentsline{#1}{#2}{#3}% +} +\unless\ifdefined\expanded + \def\Etoc@hackedaddcontentsline#1{% + {\edef\Etoc@tmp{\noexpand\in@{.#1,}{\ifEtoc@lof.lof,\fi\ifEtoc@lot.lot,\fi}}\expandafter}% + \Etoc@tmp + \ifin@\expandafter\Etoc@hackedaddcontentsline@i + \else\expandafter\Etoc@originaladdcontentsline + \fi {#1}% + } + \def\Etoc@hackedaddcontentsline@i#1#2#3{% + {\edef\Etoc@tmp{\noexpand\in@{.#1;#2,}}\expandafter}% + \Etoc@tmp{.lof;figure,.lot;table,}% + \ifin@ + \addtocontents {toc}{% + \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% + \ifdefined\protected@file@percent\protected@file@percent\fi + }% + \fi + \Etoc@originaladdcontentsline{#1}{#2}{#3}% + } +\fi +\def\Etoc@@startlocallistof#1#2#3{% + \ifEtoc@localtoc + \ifnum #2=#3\relax + \global\let\etoclocaltop\Etoc@virtualtop + \global\Etoc@notactivefalse + \Etoc@@startlocaltochook + \csname etoclocallistof#1shook\endcsname + \ifEtoc@etocstyle + \csname etocetoclistof#1smaketitle\endcsname + \fi + \fi + \fi +} +\def\Etoc@@startlocallistof@setlevels#1{% + \ifnum\etoclocaltop<\z@ + \expandafter\let\csname Etoc@#1@@\endcsname\@ne + \else + \expandafter\let\csname Etoc@#1@@\expandafter\endcsname + \csname Etoc@\the\numexpr\etoclocaltop+\@ne @@\endcsname + \fi + \def\Etoc@do##1{% + \ifnum\etoclevel{##1}>\etoclocaltop + \expandafter\let\csname Etoc@##1@@\endcsname\Etoc@maxlevel + \fi}% + \Etoc@dolevels +} +\def\etoclocallistoffigureshook{\etocstandardlines} +\def\etoclocallistoftableshook {\etocstandardlines} +\def\locallistfigurename{\listfigurename} +\def\locallisttablename {\listtablename} +\def\etocetoclistoffiguresmaketitle{% + \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallistfigurename}% + \ifnum\etoclocaltop>\tw@\mbox{}\par\fi + \etociflocalloftotoc + {\etocifisstarred + {}% star variant, do not add to toc + {\etoclocalheadtotoc + {\etocdivisionnameatlevel{\etoclocaltop+1}}% + {\locallistfigurename}% + }% + }% + {}% +}% +\def\etocetoclistoftablesmaketitle{% + \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallisttablename}% + \ifnum\etoclocaltop>\tw@\mbox{}\par\fi + \etociflocallottotoc + {\etocifisstarred + {}% star variant, do not add to toc + {\etoclocalheadtotoc + {\etocdivisionnameatlevel{\etoclocaltop+1}}% + {\locallisttablename}% + }% + }% + {}% +}% +\let\Etoc@listofreset\@empty +\ifEtoc@lof + \def\locallistoffigures{% + \def\Etoc@listofreset{% + \let\Etoc@currext\Etoc@tocext + \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc + \let\Etoc@@startlocaltochook\@empty + \let\Etoc@listofreset\@empty + \let\Etoc@listofhook\@empty + }% + \let\Etoc@currext\Etoc@lofext + \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{figure}}% + \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{figure}}% + \def\Etoc@listofhook{% + \def\Etoc@do####1{% + \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel + }% + \Etoc@dolevels + }% + \localtableofcontents + } +\else + \def\locallistoffigures{% + \PackageError{etoc}{% + \string\locallistoffigures \on@line\space but\MessageBreak + package was loaded without `lof' option}% + {Try again with \string\usepackage[lof]{etoc}}% + } +\fi +\ifEtoc@lot + \def\locallistoftables{% + \def\Etoc@listofreset{% + \let\Etoc@currext\Etoc@tocext + \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc + \let\Etoc@@startlocaltochook\@empty + \let\Etoc@listofreset\@empty + \let\Etoc@listofhook\@empty + }% + \let\Etoc@currext\Etoc@lotext + \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{table}}% + \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{table}}% + \def\Etoc@listofhook{% + \def\Etoc@do####1{% + \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel + }% + \Etoc@dolevels + }% + \localtableofcontents + } +\else + \def\locallistoftables{% + \PackageError{etoc}{% + \string\locallistoftable \on@line\space but\MessageBreak + package was loaded without `lot' option}% + {Try again with \string\usepackage[lot]{etoc}}% + } +\fi +\def\Etoc@checkifempty {% + \global\Etoc@isemptytoctrue + \global\Etoc@stoptocfalse + \global\let\Etoc@level\Etoc@minf + \global\let\Etoc@virtualtop\Etoc@minf + \gdef\Etoc@stackofends{{-3}{}}% + \begingroup + \ifEtoc@localtoc + \def\etoc@startlocaltoc##1{% + \ifnum##1=\Etoc@tocid\relax + \global\let\etoclocaltop\Etoc@virtualtop + \Etoc@@startlocaltochook + \global\Etoc@notactivefalse + \fi + }% + \let\contentsline\Etoc@testingcontentslinelocal + \else + \let\contentsline\Etoc@testingcontentsline + \fi + \Etoc@storetocdepth + \let\Etoc@setlocaltop@doendsandbegin\@empty + \the\Etoc@toctoks + \Etoc@restoretocdepth + \endgroup +} +\DeclareRobustCommand*\etocifwasempty + {\ifEtoc@isemptytoc\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi } +\expandafter\let\expandafter\etocxifwasempty\csname etocifwasempty \endcsname +\def\Etoc@testingcontentslinelocal #1{% + \ifEtoc@stoptoc + \else + \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel + \else + \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname + \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi + \ifEtoc@notactive + \else + \ifnum\Etoc@level>\etoclocaltop + \unless\ifnum\Etoc@level>\c@tocdepth + \global\Etoc@isemptytocfalse + \global\Etoc@stoptoctrue + \fi + \else + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \fi + \Etoc@gobblethreeorfour{}% +} +\def\Etoc@testingcontentsline #1{% + \ifEtoc@stoptoc + \else + \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel + \else + \unless\ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth + \global\Etoc@isemptytocfalse + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \Etoc@gobblethreeorfour{}% +} +\def\Etoc@localtableofcontents#1{% + \gdef\etoclocaltop{-\@m}% + \Etoc@localtoctrue + \global\Etoc@isemptytocfalse + \edef\Etoc@tocid{#1}% + \ifnum\Etoc@tocid<\@ne + \setbox0\hbox{\ref{Unknown toc ref \@secondoftwo#1. \space Rerun LaTeX}}% + \global\Etoc@stoptoctrue + \gdef\etoclocaltop{-\thr@@}% + \Etoc@tableofcontents + \expandafter\Etoc@gobtoetoc@ + \fi + \global\Etoc@notactivetrue + \ifEtoc@checksemptiness + \Etoc@checkifempty + \fi + \ifEtoc@isemptytoc + \ifEtoc@notactive + \setbox0\hbox{\ref{Unknown toc ID \number\Etoc@tocid. \space Rerun LaTeX}}% + \global\Etoc@isemptytocfalse + \global\Etoc@stoptoctrue + \gdef\etoclocaltop{-\thr@@}% + \Etoc@tableofcontents + \expandafter\expandafter\expandafter\Etoc@gobtoetoc@ + \fi + \else + \global\Etoc@stoptocfalse + \global\Etoc@notactivetrue + \edef\etoc@startlocaltoc##1% + {\noexpand\Etoc@@startlocaltoc{##1}{\Etoc@tocid}}% + \Etoc@tableofcontents + \fi + \@gobble\etoc@ + \endgroup\ifEtoc@mustclosegroup\endgroup\fi + \Etoc@tocdepthreset + \Etoc@listofreset + \etocaftertochook +}% \Etoc@localtableofcontents +\def\Etoc@getref #1{% + \@ifundefined{r@#1} + {0} + {\expandafter\Etoc@getref@i\romannumeral-`0% + \expandafter\expandafter\expandafter + \@car\csname r@#1\endcsname0\@nil\@etoc + }% +} +\def\Etoc@getref@i#1#2\@etoc{\ifnum9<1\string#1 #1#2\else 0\fi} +\def\Etoc@ref#1{\Etoc@localtableofcontents{\Etoc@getref{#1}}} +\def\Etoc@label#1{\label{#1}\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} +\@firstofone{\def\Etoc@again} {\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} +\def\Etoc@dothis #1#2\etoc@ {\fi #1} +\def\Etoc@t@bleofcontents{% + \gdef\etoclocaltop{-\@M}% + \ifx\Etoc@nexttoken\label\Etoc@dothis{\expandafter\Etoc@label\@gobble}\fi + \ifx\Etoc@nexttoken\@sptoken\Etoc@dothis{\Etoc@again}\fi + \ifx\Etoc@nexttoken\ref\Etoc@dothis{\expandafter\Etoc@ref\@gobble}\fi + \ifEtoc@tocwithid\Etoc@dothis{\Etoc@localtableofcontents{\c@etoc@tocid}}\fi + \global\Etoc@isemptytocfalse + \ifEtoc@checksemptiness\Etoc@checkifempty\fi + \ifEtoc@isemptytoc + \ifEtoc@notocifnotoc + \expandafter\expandafter\expandafter\@gobble + \fi + \fi + \Etoc@tableofcontents + \endgroup + \ifEtoc@mustclosegroup\endgroup\fi + \Etoc@tocdepthreset + \Etoc@listofreset + \etocaftertochook + \@gobble\etoc@ + }% \Etoc@t@bleofcontents +\def\Etoc@table@fcontents{% + \refstepcounter{etoc@tocid}% + \Etoc@tocwithidfalse + \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents +} +\def\Etoc@localtable@fcontents{% + \refstepcounter{etoc@tocid}% + \addtocontents{toc}{\string\etoc@startlocaltoc{\the\c@etoc@tocid}}% + \Etoc@tocwithidtrue + \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents +} +\def\etoctableofcontents{% + \Etoc@openouttoc + \Etoc@tocdepthset + \begingroup + \@ifstar + {\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents} + {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}% +}% \etoctableofcontents +\def\etocifisstarred{\ifx\Etoc@aftertitlehook\@empty + \expandafter\@firstoftwo\else + \expandafter\@secondoftwo + \fi} +\let\etocoriginaltableofcontents\tableofcontents +\let\tableofcontents\etoctableofcontents +\let\Etoc@listofhook\@empty +\newcommand*\localtableofcontents{% + \Etoc@openouttoc + \Etoc@tocdepthset + \begingroup + \Etoc@listofhook + \@ifstar + {\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents} + {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}% +}% \localtableofcontents +\newcommand*\localtableofcontentswithrelativedepth[1]{% + \def\Etoc@@startlocaltochook{% + \global\c@tocdepth\numexpr\etoclocaltop+#1\relax + }% + \def\Etoc@listofreset{\let\Etoc@@startlocaltochook\@empty + \let\Etoc@listofreset\@empty}% + \localtableofcontents +}% \localtableofcontentswithrelativedepth +\newcommand\etocsettocstyle[2]{% + \Etoc@etocstylefalse + \Etoc@classstylefalse + \def\Etoc@tableofcontents@user@before{#1}% + \def\Etoc@tableofcontents@user@after {#2}% +}% +\def\etocstoretocstyleinto#1{% +%% \@ifdefinable#1{% + \edef#1{\noexpand\Etoc@etocstylefalse\noexpand\Etoc@classstylefalse + \def\noexpand\Etoc@tableofcontents@user@before{% + \unexpanded\expandafter{\Etoc@tableofcontents@user@before}% + }% + \def\noexpand\Etoc@tableofcontents@user@after{% + \unexpanded\expandafter{\Etoc@tableofcontents@user@after}% + }% + }% +%% }% +}% +\def\Etoc@tableofcontents {% + \Etoc@tableofcontents@etoc@before + \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi + \Etoc@tableofcontents@user@before + \Etoc@tableofcontents@contents + \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi + \Etoc@tableofcontents@user@after + \Etoc@tableofcontents@etoc@after + \@gobble\etoc@ +} +\def\Etoc@tableofcontents@etoc@before{% + \ifnum\c@tocdepth>\Etoc@minf + \else + \expandafter\Etoc@gobtoetoc@ + \fi + \Etoc@par + \Etoc@beforetitlehook + \etocbeforetitlehook + \Etoc@storetocdepth + \let\Etoc@savedcontentsline\contentsline + \let\contentsline\Etoc@etoccontentsline + \ifEtoc@standardlines + \else + \def\Etoc@do##1{% + \expandafter\def\csname etocsaved##1tocline\endcsname + {\PackageError{etoc}{% + \expandafter\string\csname etocsaved##1tocline\endcsname\space + has been deprecated\MessageBreak + at 1.1a and is removed at 1.2.\MessageBreak + Use \expandafter\string\csname l@##1\endcsname\space directly.\MessageBreak + Reported \on@line}% + {I will use \expandafter\string + \csname l@##1\endcsname\space myself for this time.% + }% + \csname l@##1\endcsname + }% + }% + \Etoc@dolevels + \fi +}% +\def\Etoc@tableofcontents@contents{% + \Etoc@tocdepthset + \ifEtoc@parskip\parskip\z@skip\fi + \Etoc@aftertitlehook + \gdef\etoclocaltop{-\thr@@}% + \Etoc@toctoc + \etocaftercontentshook +}% +\def\Etoc@tableofcontents@etoc@after{% + \@nobreakfalse + \Etoc@restoretocdepth + \ifx\Etoc@global\global + \@ifundefined{tof@finish} + {} + {\ifx\tof@finish\@empty + \else + \global\let\contentsline\Etoc@savedcontentsline + \fi + }% + \fi +} +\def\etocsetstyle#1{\ifcsname Etoc@#1@@\endcsname + \expandafter\Etoc@setstyle@a + \else + \expandafter\Etoc@setstyle@error + \fi {#1}% +} +\def\Etoc@setstyle@error #1{% + \PackageWarning{etoc}{`#1' is unknown to etoc. \space Did you\MessageBreak + forget some \string\etocsetlevel{#1}{}?\MessageBreak + Reported}% + \@gobblefour +} +\def\Etoc@setstyle@a #1{% + \edef\Etoc@tmp{\the\numexpr\csname Etoc@#1@@\endcsname}% + \if1\unless\ifnum\Etoc@tmp<\Etoc@maxlevel 0\fi + \unless\ifnum\Etoc@tmp>\Etoc@minf 0\fi1% + \Etoc@standardlinesfalse + \expandafter\Etoc@setstyle@b\expandafter\Etoc@tmp + \else + \ifnum\Etoc@tmp=\Etoc@maxlevel + \in@{.#1,}{.figure,.table,}% + \ifin@ + \PackageWarning{etoc} + {You can not use \string\etocsetstyle\space with `#1'.\MessageBreak + Check the package documentation (in particular about\MessageBreak + \string\etoclocallistoffigureshook/\string\etoclocallistoftableshook)% + \MessageBreak on how to customize + figure and table entries in local\MessageBreak lists. Reported}% + \else + \PackageInfo{etoc} + {Attempt to set the style of `#1',\MessageBreak + whose level is currently the maximal one \etocthemaxlevel,\MessageBreak + which is never displayed. \space This will be ignored\MessageBreak + but note that we do quit compatibility mode.\MessageBreak + Reported}% + \Etoc@standardlinesfalse + \fi + \else + \PackageWarning{etoc}{This should not happen. Reported}% + \fi + \expandafter\@gobblefour + \fi +} +\long\def\Etoc@setstyle@b#1#2#3#4#5{% + \expandafter\def\csname Etoc@begin@#1\endcsname {#2}% + \expandafter\def\csname Etoc@prefix@#1\endcsname {#3}% + \expandafter\def\csname Etoc@contents@#1\endcsname {#4}% + \expandafter\def\csname Etoc@end@#1\endcsname {#5}% +} +\def\Etoc@setstyle@e#1{% + \expandafter\let\csname Etoc@begin@#1\endcsname \@empty + \expandafter\let\csname Etoc@prefix@#1\endcsname \@empty + \expandafter\let\csname Etoc@contents@#1\endcsname \@empty + \expandafter\let\csname Etoc@end@#1\endcsname \@empty +} +\def\Etoc@storelines@a#1{% + \noexpand\Etoc@setstyle@b{#1}% + {\expandafter\Etoc@expandonce\csname Etoc@begin@#1\endcsname}% + {\expandafter\Etoc@expandonce\csname Etoc@prefix@#1\endcsname}% + {\expandafter\Etoc@expandonce\csname Etoc@contents@#1\endcsname}% + {\expandafter\Etoc@expandonce\csname Etoc@end@#1\endcsname}% +} +\def\Etoc@expandonce#1{\unexpanded\expandafter{#1}} +\def\etocstorelinestylesinto#1{% + \edef#1{\Etoc@storelines@a{-2}\Etoc@storelines@a{-1}\Etoc@storelines@a{0}% + \Etoc@storelines@a {1}\Etoc@storelines@a {2}\Etoc@storelines@a{3}% + \Etoc@storelines@a {4}\Etoc@storelines@a {5}% + \ifEtoc@deeplevels + \Etoc@storelines@a{6}\Etoc@storelines@a{7}\Etoc@storelines@a{8}% + \Etoc@storelines@a{9}\Etoc@storelines@a{10}\Etoc@storelines@a{11}% + \fi + }% +} +\def\etocstorethislinestyleinto#1#2{% + \edef#2{\expandafter\Etoc@storelines@a\expandafter{\number\etoclevel{#1}}}% +}% +\def\etocfontminustwo {\normalfont \LARGE \bfseries} +\def\etocfontminusone {\normalfont \large \bfseries} +\def\etocfontzero {\normalfont \large \bfseries} +\def\etocfontone {\normalfont \normalsize \bfseries} +\def\etocfonttwo {\normalfont \normalsize} +\def\etocfontthree {\normalfont \footnotesize} +\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex} +\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex} +\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex} +\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex} +\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex} +\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex} +\def\etocbaselinespreadminustwo {1} +\def\etocbaselinespreadminusone {1} +\def\etocbaselinespreadzero {1} +\def\etocbaselinespreadone {1} +\def\etocbaselinespreadtwo {1} +\def\etocbaselinespreadthree {.9} +\def\etocminustwoleftmargin {1.5em plus 0.5fil} +\def\etocminustworightmargin {1.5em plus -0.5fil} +\def\etocminusoneleftmargin {1em} +\def\etocminusonerightmargin {1em} +\def\etoctoclineleaders + {\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}} +\def\etocabbrevpagename {p.~} +\def\etocpartname {Part} +\def\etocbookname {Book} +\def\etocdefaultlines{% + \Etoc@standardlinesfalse + \etocdefaultlines@setbook + \etocdefaultlines@setpart + \etocdefaultlines@setchapter + \etocdefaultlines@setsection + \etocdefaultlines@setsubsection + \etocdefaultlines@setsubsubsection + \etocdefaultlines@setdeeperones +} +\def\etocnoprotrusion{\leavevmode\kern-\p@\kern\p@} +\@ifclassloaded{memoir}{% + \def\etocdefaultlines@setbook{% + \Etoc@setstyle@b + {-2}% + {\addpenalty\@M\etocskipfirstprefix} + {\addpenalty\@secpenalty} + {\begingroup + \etocfontminustwo + \addvspace{\etocsepminustwo}% + \parindent \z@ + \leftskip \etocminustwoleftmargin + \rightskip \etocminustworightmargin + \parfillskip \@flushglue + \vbox{\etocifnumbered{\etoclink{\etocbookname\enspace\etocthenumber:\quad}}{}% + \etocname + \baselineskip\etocbaselinespreadminustwo\baselineskip + \par}% + \addpenalty\@M\addvspace{\etocsepminusone}% + \endgroup} + {}% + } + }{\let\etocdefaultlines@setbook\@empty} +\def\etocdefaultlines@setpart{% +\Etoc@setstyle@b + {-1}% + {\addpenalty\@M\etocskipfirstprefix} + {\addpenalty\@secpenalty} + {\begingroup + \etocfontminusone + \addvspace{\etocsepminusone}% + \parindent \z@ + \leftskip \etocminusoneleftmargin + \rightskip \etocminusonerightmargin + \parfillskip \@flushglue + \vbox{\etocifnumbered{\etoclink{\etocpartname\enspace\etocthenumber.\quad}}{}% + \etocname + \baselineskip\etocbaselinespreadminusone\baselineskip + \par}% + \addpenalty\@M\addvspace{\etocsepzero}% + \endgroup} + {}% +} +\def\etocdefaultlines@setchapter{% +\Etoc@setstyle@b + {0}% + {\addpenalty\@M\etocskipfirstprefix} + {\addpenalty\@itempenalty} + {\begingroup + \etocfontzero + \addvspace{\etocsepzero}% + \parindent \z@ \parfillskip \@flushglue + \vbox{\etocifnumbered{\etocnumber.\enspace}{}\etocname + \baselineskip\etocbaselinespreadzero\baselineskip + \par}% + \endgroup} + {\addpenalty{-\@highpenalty}\addvspace{\etocsepminusone}}% +} +\def\etocdefaultlines@setsection{% +\Etoc@setstyle@b + {1}% + {\addpenalty\@M\etocskipfirstprefix} + {\addpenalty\@itempenalty} + {\begingroup + \etocfontone + \addvspace{\etocsepone}% + \parindent \z@ \parfillskip \z@ + \setbox\z@\vbox{\parfillskip\@flushglue + \etocname\par + \setbox\tw@\lastbox + \global\setbox\@ne\hbox{\unhbox\tw@\ }}% + \dimen\z@=\wd\@ne + \setbox\z@=\etoctoclineleaders + \advance\dimen\z@\wd\z@ + \etocifnumbered + {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}} + {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}% + \advance\dimen\z@\wd\tw@ + \ifdim\dimen\z@ < \linewidth + \vbox{\etocname~% + \leaders\box\z@\hfil\box\tw@ + \baselineskip\etocbaselinespreadone\baselineskip + \par}% + \else + \vbox{\etocname~% + \leaders\copy\z@\hfil\break + \hbox{}\leaders\box\z@\hfil\box\tw@ + \baselineskip\etocbaselinespreadone\baselineskip + \par}% + \fi + \endgroup} + {\addpenalty\@secpenalty\addvspace{\etocsepzero}}% +} +\def\etocdefaultlines@setsubsection{% +\Etoc@setstyle@b + {2}% + {\addpenalty\@medpenalty\etocskipfirstprefix} + {\addpenalty\@itempenalty} + {\begingroup + \etocfonttwo + \addvspace{\etocseptwo}% + \parindent \z@ \parfillskip \z@ + \setbox\z@\vbox{\parfillskip\@flushglue + \etocname\par\setbox\tw@\lastbox + \global\setbox\@ne\hbox{\unhbox\tw@}}% + \dimen\z@=\wd\@ne + \setbox\z@=\etoctoclineleaders + \advance\dimen\z@\wd\z@ + \etocifnumbered + {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}} + {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}% + \advance\dimen\z@\wd\tw@ + \ifdim\dimen\z@ < \linewidth + \vbox{\etocname~% + \leaders\box\z@\hfil\box\tw@ + \baselineskip\etocbaselinespreadtwo\baselineskip + \par}% + \else + \vbox{\etocname~% + \leaders\copy\z@\hfil\break + \hbox{}\leaders\box\z@\hfil\box\tw@ + \baselineskip\etocbaselinespreadtwo\baselineskip + \par}% + \fi + \endgroup} + {\addpenalty\@secpenalty\addvspace{\etocsepone}}% +} +\def\etocdefaultlines@setsubsubsection{% +\Etoc@setstyle@b + {3}% + {\addpenalty\@M + \etocfontthree + \vspace{\etocsepthree}% + \noindent + \etocskipfirstprefix} + {\allowbreak\,--\,} + {\etocname} + {.\hfil + \begingroup + \baselineskip\etocbaselinespreadthree\baselineskip + \par + \endgroup + \addpenalty{-\@highpenalty}} +} +\def\etocdefaultlines@setdeeperones{% +\Etoc@setstyle@e{4}% +\Etoc@setstyle@e{5}% +\ifEtoc@deeplevels + \Etoc@setstyle@e{6}% + \Etoc@setstyle@e{7}% + \Etoc@setstyle@e{8}% + \Etoc@setstyle@e{9}% + \Etoc@setstyle@e{10}% + \Etoc@setstyle@e{11}% +\fi +} +\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex} +\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex} +\def\etoccolumnsep{2em} +\def\etocmulticolsep{0ex} +\def\etocmulticolpretolerance{-1} +\def\etocmulticoltolerance{200} +\def\etocdefaultnbcol{2} +\def\etocinnertopsep{2ex} +\newcommand\etocmulticolstyle[2][\etocdefaultnbcol]{% +\etocsettocstyle + {\let\etocoldpar\par + \addvspace{\etocabovetocskip}% + \ifnum #1>\@ne + \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\multicolpretolerance\etocmulticolpretolerance + \multicoltolerance\etocmulticoltolerance + \setlength{\columnsep}{\etoccolumnsep}% + \setlength{\multicolsep}{\etocmulticolsep}% + \begin{multicols}{#1}[#2\etocoldpar\addvspace{\etocinnertopsep}]} + {#2\ifvmode\else\begingroup\interlinepenalty\@M\parskip\z@skip + \@@par\endgroup + \fi + \nobreak\addvspace{\etocinnertopsep}% + \pretolerance\etocmulticolpretolerance + \tolerance\etocmulticoltolerance}% + }% + {\ifnum #1>\@ne + \expandafter\@firstofone + \else \expandafter\@gobble + \fi + {\end{multicols}}% + \addvspace{\etocbelowtocskip}}% +} +\def\etocinnerbottomsep{3.5ex} +\def\etocinnerleftsep{2em} +\def\etocinnerrightsep{2em} +\def\etoctoprule{\hrule} +\def\etocleftrule{\vrule} +\def\etocrightrule{\vrule} +\def\etocbottomrule{\hrule} +\def\etoctoprulecolorcmd{\relax} +\def\etocbottomrulecolorcmd{\relax} +\def\etocleftrulecolorcmd{\relax} +\def\etocrightrulecolorcmd{\relax} +\def\etoc@ruledheading #1{% + \hb@xt@\linewidth{\color@begingroup + \hss #1\hss\hskip-\linewidth + \etoctoprulecolorcmd\leaders\etoctoprule\hss + \phantom{#1}% + \leaders\etoctoprule\hss\color@endgroup}% + \nointerlineskip\nobreak\vskip\etocinnertopsep} +\newcommand*\etocruledstyle[2][\etocdefaultnbcol]{% +\etocsettocstyle + {\addvspace{\etocabovetocskip}% + \ifnum #1>\@ne + \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\multicolpretolerance\etocmulticolpretolerance + \multicoltolerance\etocmulticoltolerance + \setlength{\columnsep}{\etoccolumnsep}% + \setlength{\multicolsep}{\etocmulticolsep}% + \begin{multicols}{#1}[\etoc@ruledheading{#2}]} + {\etoc@ruledheading{#2}% + \pretolerance\etocmulticolpretolerance + \tolerance\etocmulticoltolerance}} + {\ifnum #1>\@ne\expandafter\@firstofone + \else \expandafter\@gobble + \fi + {\end{multicols}}% + \addvspace{\etocbelowtocskip}}} +\def\etocframedmphook{\relax} +\long\def\etocbkgcolorcmd{\relax} +\long\def\Etoc@relax{\relax} +\newbox\etoc@framed@titlebox +\newbox\etoc@framed@contentsbox +\newcommand*\etocframedstyle[2][\etocdefaultnbcol]{% +\etocsettocstyle{% + \addvspace{\etocabovetocskip}% + \sbox\z@{#2}% + \dimen\z@\dp\z@ + \ifdim\wd\z@<\linewidth \dp\z@\z@ \else \dimen\z@\z@ \fi + \setbox\etoc@framed@titlebox=\hb@xt@\linewidth{\color@begingroup + \hss + \ifx\etocbkgcolorcmd\Etoc@relax + \else + \sbox\tw@{\color{white}% + \vrule\@width\wd\z@\@height\ht\z@\@depth\dimen\z@}% + \ifdim\wd\z@<\linewidth \dp\tw@\z@\fi + \box\tw@ + \hskip-\wd\z@ + \fi + \copy\z@ + \hss + \hskip-\linewidth + \etoctoprulecolorcmd\leaders\etoctoprule\hss + \hskip\wd\z@ + \etoctoprulecolorcmd\leaders\etoctoprule\hss\color@endgroup}% + \setbox\z@\hbox{\etocleftrule\etocrightrule}% + \dimen\tw@\linewidth\advance\dimen\tw@-\wd\z@ + \advance\dimen\tw@-\etocinnerleftsep + \advance\dimen\tw@-\etocinnerrightsep + \setbox\etoc@framed@contentsbox=\vbox\bgroup + \hsize\dimen\tw@ + \kern\dimen\z@ + \vskip\etocinnertopsep + \hbox\bgroup + \begin{minipage}{\hsize}% + \etocframedmphook + \ifnum #1>\@ne + \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\multicolpretolerance\etocmulticolpretolerance + \multicoltolerance\etocmulticoltolerance + \setlength{\columnsep}{\etoccolumnsep}% + \setlength{\multicolsep}{\etocmulticolsep}% + \begin{multicols}{#1}} + {\pretolerance\etocmulticolpretolerance + \tolerance\etocmulticoltolerance}} + {\ifnum #1>\@ne\expandafter\@firstofone + \else \expandafter\@gobble + \fi + {\end{multicols}\unskip }% + \end{minipage}% + \egroup + \vskip\etocinnerbottomsep + \egroup + \vbox{\hsize\linewidth + \ifx\etocbkgcolorcmd\Etoc@relax + \else + \kern\ht\etoc@framed@titlebox + \kern\dp\etoc@framed@titlebox + \hb@xt@\linewidth{\color@begingroup + \etocleftrulecolorcmd\etocleftrule + \etocbkgcolorcmd + \leaders\vrule + \@height\ht\etoc@framed@contentsbox + \@depth\dp\etoc@framed@contentsbox + \hss + \etocrightrulecolorcmd\etocrightrule + \color@endgroup}\nointerlineskip + \vskip-\dp\etoc@framed@contentsbox + \vskip-\ht\etoc@framed@contentsbox + \vskip-\dp\etoc@framed@titlebox + \vskip-\ht\etoc@framed@titlebox + \fi + \box\etoc@framed@titlebox\nointerlineskip + \hb@xt@\linewidth{\color@begingroup + {\etocleftrulecolorcmd\etocleftrule}% + \hss\box\etoc@framed@contentsbox\hss + \etocrightrulecolorcmd\etocrightrule\color@endgroup} + \nointerlineskip + \vskip\ht\etoc@framed@contentsbox + \vskip\dp\etoc@framed@contentsbox + \hb@xt@\linewidth{\color@begingroup\etocbottomrulecolorcmd + \leaders\etocbottomrule\hss\color@endgroup}} + \addvspace{\etocbelowtocskip}}} +\newcommand\etoc@multicoltoc[2][\etocdefaultnbcol]{% + \etocmulticolstyle[#1]{#2}% + \tableofcontents} +\newcommand\etoc@multicoltoci[2][\etocdefaultnbcol]{% + \etocmulticolstyle[#1]{#2}% + \tableofcontents*} +\newcommand\etoc@local@multicoltoc[2][\etocdefaultnbcol]{% + \etocmulticolstyle[#1]{#2}% + \localtableofcontents} +\newcommand\etoc@local@multicoltoci[2][\etocdefaultnbcol]{% + \etocmulticolstyle[#1]{#2}% + \localtableofcontents*} +\newcommand*\etoc@ruledtoc[2][\etocdefaultnbcol]{% + \etocruledstyle[#1]{#2}% + \tableofcontents} +\newcommand*\etoc@ruledtoci[2][\etocdefaultnbcol]{% + \etocruledstyle[#1]{#2}% + \tableofcontents*} +\newcommand*\etoc@local@ruledtoc[2][\etocdefaultnbcol]{% + \etocruledstyle[#1]{#2}% + \localtableofcontents} +\newcommand*\etoc@local@ruledtoci[2][\etocdefaultnbcol]{% + \etocruledstyle[#1]{#2}% + \localtableofcontents*} +\newcommand*\etoc@framedtoc[2][\etocdefaultnbcol]{% + \etocframedstyle[#1]{#2}% + \tableofcontents} +\newcommand*\etoc@framedtoci[2][\etocdefaultnbcol]{% + \etocframedstyle[#1]{#2}% + \tableofcontents*} +\newcommand*\etoc@local@framedtoc[2][\etocdefaultnbcol]{% + \etocframedstyle[#1]{#2}% + \localtableofcontents} +\newcommand*\etoc@local@framedtoci[2][\etocdefaultnbcol]{% + \etocframedstyle[#1]{#2}% + \localtableofcontents*} +\def\etocmulticol{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@multicoltoci} + {\etoc@multicoltoc}} +\def\etocruled{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@ruledtoci} + {\etoc@ruledtoc}} +\def\etocframed{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@framedtoci} + {\etoc@framedtoc}} +\def\etoclocalmulticol{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@local@multicoltoci} + {\etoc@local@multicoltoc}} +\def\etoclocalruled{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@local@ruledtoci} + {\etoc@local@ruledtoc}} +\def\etoclocalframed{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@local@framedtoci} + {\etoc@local@framedtoc}} +\def\etocmemoirtoctotocfmt #1#2{% + \PackageWarning{etoc} + {\string\etocmemoirtoctotocfmt\space is deprecated.\MessageBreak + Use in its place \string\etocsettoclineforclasstoc,\MessageBreak + and \string\etocsettoclineforclasslistof{toc} (or {lof}, {lot}). + I will do this now.\MessageBreak + Reported}% + \etocsettoclineforclasstoc{#1}{#2}% + \etocsettoclineforclasslistof{toc}{#1}{#2}% +} +\def\etocsettoclineforclasstoc #1#2{% + \def\etocclassmaintocaddtotoc{\etocglobalheadtotoc{#1}{#2}}% +} +\def\etocsettoclineforclasslistof #1#2#3{% + \@namedef{etocclasslocal#1addtotoc}{\etoclocalheadtotoc{#2}{#3}}% +} +\let\etocclasslocaltocaddtotoc\@empty +\let\etocclasslocallofaddtotoc\@empty +\let\etocclasslocallotaddtotoc\@empty +\ifdefined\c@chapter + \def\etocclasslocaltocmaketitle{\section*{\localcontentsname}} + \def\etocclasslocallofmaketitle{\section*{\locallistfigurename}} + \def\etocclasslocallotmaketitle{\section*{\locallisttablename}} + \etocsettoclineforclasstoc {chapter}{\contentsname} + \etocsettoclineforclasslistof{toc}{section}{\localcontentsname} + \etocsettoclineforclasslistof{lof}{section}{\locallistfigurename} + \etocsettoclineforclasslistof{lot}{section}{\locallisttablename} +\else + \def\etocclasslocaltocmaketitle{\subsection*{\localcontentsname}}% + \def\etocclasslocallofmaketitle{\subsection*{\locallistfigurename}}% + \def\etocclasslocallotmaketitle{\subsection*{\locallisttablename}}% + \etocsettoclineforclasstoc {section}{\contentsname} + \etocsettoclineforclasslistof{toc}{subsection}{\localcontentsname} + \etocsettoclineforclasslistof{lof}{subsection}{\locallistfigurename} + \etocsettoclineforclasslistof{lot}{subsection}{\locallisttablename} +\fi +\def\etocclasslocalperhapsaddtotoc #1{% + \etocifisstarred + {} + {\csname ifEtoc@local#1totoc\endcsname + \csname etocclasslocal#1addtotoc\endcsname + \fi + }% +} +\def\etocarticlestyle{% + \etocsettocstyle + {\ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \section *{\contentsname + \@mkboth {\MakeUppercase \contentsname} + {\MakeUppercase \contentsname}}% + \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% + \fi + } + {}% +} +\def\etocarticlestylenomarks{% + \etocsettocstyle + {\ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \section *{\contentsname}% + \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% + \fi + } + {}% +} +\def\etocbookstyle{% + \etocsettocstyle + {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi + \ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \chapter *{\contentsname + \@mkboth {\MakeUppercase \contentsname} + {\MakeUppercase \contentsname}}% + \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% + \fi + }% + {\if@restonecol \twocolumn \fi}% +} +\def\etocbookstylenomarks{% + \etocsettocstyle + {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi + \ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \chapter *{\contentsname}% + \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% + \fi + }% + {\if@restonecol \twocolumn \fi}% +} +\let\etocreportstyle\etocbookstyle +\let\etocreportstylenomarks\etocbookstylenomarks +\def\etocmemoirstyle{% + \etocsettocstyle + {\ensureonecol \par \begingroup \phantomsection + \ifx\Etoc@aftertitlehook\@empty + \else + \ifmem@em@starred@listof + \else + \ifEtoc@localtoc + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \ifEtoc@maintoctotoc + \etocclassmaintocaddtotoc + \fi + \fi + \fi + \fi + \ifEtoc@localtoc + \@namedef{@\Etoc@currext maketitle}{% + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + }% + \fi + \@nameuse {@\Etoc@currext maketitle} %<< space token here from memoir code + \ifx\Etoc@aftertitlehook\@empty + \else + \Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax + \fi + \parskip \cftparskip \@nameuse {cft\Etoc@currext beforelisthook}% + }% + {\@nameuse {cft\Etoc@currext afterlisthook}% + \endgroup\restorefromonecol + }% +} +\let\Etoc@beforetitlehook\@empty +\if1\@ifclassloaded{scrartcl}0{\@ifclassloaded{scrbook}0{\@ifclassloaded{scrreprt}01}}% +\expandafter\@gobble +\else + \ifdefined\setuptoc + \def\Etoc@beforetitlehook{% + \ifEtoc@localtoc + \etocclasslocalperhapsaddtotoc\Etoc@currext + \setuptoc{\Etoc@currext}{leveldown}% + \else + \etocifisstarred{}{\etocifmaintoctotoc{\setuptoc{toc}{totoc}}}% + \fi + }% + \fi +\expandafter\@firstofone +\fi +{\def\etocclasslocalperhapsaddtotoc #1{% + \etocifisstarred + {}% + {\csname ifEtoc@local#1totoc\endcsname + \setuptoc{\Etoc@currext}{totoc}% + \fi + }% + }% +} +\ifdefined\Iftocfeature + \def\etoc@Iftocfeature{\Iftocfeature}% +\else + \def\etoc@Iftocfeature{\iftocfeature}% +\fi +\def\etocscrartclstyle{% + \etocsettocstyle + {\ifx\Etoc@currext\Etoc@tocext + \expandafter\@firstofone + \else + \expandafter\@gobble + \fi + {\let\if@dynlist\if@tocleft}% + \edef\@currext{\Etoc@currext}% + \@ifundefined{listof\@currext name}% + {\def\list@fname{\listofname~\@currext}}% + {\expandafter\let\expandafter\list@fname + \csname listof\@currext name\endcsname}% + \etoc@Iftocfeature {\@currext}{onecolumn} + {\etoc@Iftocfeature {\@currext}{leveldown} + {} + {\if@twocolumn \aftergroup \twocolumn \onecolumn \fi }} + {}% + \etoc@Iftocfeature {\@currext}{numberline}% + {\def \nonumberline {\numberline {}}}{}% + \expandafter\tocbasic@listhead\expandafter {\list@fname}% + \begingroup \expandafter \expandafter \expandafter + \endgroup \expandafter + \ifx + \csname microtypesetup\endcsname \relax + \else + \etoc@Iftocfeature {\@currext}{noprotrusion}{} + {\microtypesetup {protrusion=false}% + \PackageInfo {tocbasic}% + {character protrusion at \@currext\space deactivated}}% + \fi + \etoc@Iftocfeature{\@currext}{noparskipfake}{}{% + \ifvmode \@tempskipa\lastskip \vskip-\lastskip + \addtolength{\@tempskipa}{\parskip}\vskip\@tempskipa\fi + }% + \setlength {\parskip }{\z@ }% + \setlength {\parindent }{\z@ }% + \setlength {\parfillskip }{\z@ \@plus 1fil}% + \csname tocbasic@@before@hook\endcsname + \csname tb@\@currext @before@hook\endcsname + }% end of before_toc + {% start of after_toc + \providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file + \edef\@currext{\Etoc@currext}% + \csname tb@\@currext @after@hook\endcsname + \csname tocbasic@@after@hook\endcsname + }% end of after_toc +} +\let\etocscrbookstyle\etocscrartclstyle +\let\etocscrreprtstyle\etocscrartclstyle +\def\etocclasstocstyle{\etocarticlestyle} +\newcommand*\etocmarkboth[1]{% + \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} +\newcommand*\etocmarkbothnouc[1]{\@mkboth{#1}{#1}} +\newcommand\etoctocstyle[3][section]{\etocmulticolstyle[#2]% + {\csname #1\endcsname *{#3}}} +\newcommand\etoctocstylewithmarks[4][section]{\etocmulticolstyle[#2]% + {\csname #1\endcsname *{#3\etocmarkboth{#4}}}} +\newcommand\etoctocstylewithmarksnouc[4][section]{\etocmulticolstyle[#2]% + {\csname #1\endcsname *{#3\etocmarkbothnouc{#4}}}} +\def\Etoc@redefetocstylesforchapters{% + \renewcommand\etoctocstylewithmarks[4][chapter]{% + \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkboth{##4}}}% + } + \renewcommand\etoctocstylewithmarksnouc[4][chapter]{% + \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkbothnouc{##4}}}% + } + \renewcommand\etoctocstyle[3][chapter]{% + \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3}} + } +} +\@ifclassloaded{scrartcl} + {\renewcommand*\etocclasstocstyle{\etocscrartclstyle}}{} +\@ifclassloaded{book} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocbookstyle} + \Etoc@redefetocstylesforchapters}{} +\@ifclassloaded{report} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocreportstyle} + \Etoc@redefetocstylesforchapters}{} +\@ifclassloaded{scrbook} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocscrbookstyle} + \Etoc@redefetocstylesforchapters}{} +\@ifclassloaded{scrreprt} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocscrreprtstyle} + \Etoc@redefetocstylesforchapters}{} +\@ifclassloaded{memoir} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocmemoirstyle} + \Etoc@redefetocstylesforchapters}{} +\def\etoctocloftstyle {% + \etocsettocstyle{% + \@cfttocstart + \par + \begingroup + \parindent\z@ \parskip\cftparskip + \@nameuse{@cftmake\Etoc@currext title}% + \ifEtoc@localtoc + \etoctocloftlocalperhapsaddtotoc\Etoc@currext + \else + \etocifisstarred {}{\ifEtoc@maintoctotoc\@cftdobibtoc\fi}% + \fi + }% + {% + \endgroup + \@cfttocfinish + }% +} +\def\etoctocloftlocalperhapsaddtotoc#1{% + \etocifisstarred + {}% + {\csname ifEtoc@local#1totoc\endcsname + \ifdefined\c@chapter\def\@tocextra{@section}\else\def\@tocextra{@subsection}\fi + \csname @cftdobib#1\endcsname + \fi + }% +} +\def\etoctocbibindstyle {% + \etocsettocstyle {% + \toc@start + \ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \etoc@tocbibind@dotoctitle + \fi + }% + {\toc@finish}% +} +\def\etoc@tocbibind@dotoctitle {% + \if@bibchapter + \etocifisstarred + {\chapter*{\contentsname}\prw@mkboth{\contentsname} % id. + }% + {\ifEtoc@maintoctotoc + \toc@chapter{\contentsname} %<-space from original + \else + \chapter*{\contentsname}\prw@mkboth{\contentsname} % id. + \fi + }% + \else + \etocifisstarred + {\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} %<-space + } + {\ifEtoc@maintoctotoc + \toc@section{\@tocextra}{\contentsname} %<-space from original + \else + \@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} % id. + \fi + }% + \fi +}% +\@ifclassloaded{memoir} +{} +{% memoir not loaded + \@ifpackageloaded{tocloft} + {\if@cftnctoc\else + \ifEtoc@keeporiginaltoc + \else + \AtBeginDocument{\let\tableofcontents\etoctableofcontents}% + \fi + \fi } + {\AtBeginDocument + {\@ifpackageloaded{tocloft} + {\if@cftnctoc\else + \PackageWarningNoLine {etoc} + {Package `tocloft' was loaded after `etoc'.\MessageBreak + To prevent it from overwriting \protect\tableofcontents, it will\MessageBreak + be tricked into believing to have been loaded with its\MessageBreak + option `titles'. \space But this will cause the `tocloft'\MessageBreak + customization of the titles of the main list of figures\MessageBreak + and list of tables to not apply either.\MessageBreak + You should load `tocloft' before `etoc'.}% + \AtEndDocument{\PackageWarning{etoc} + {Please load `tocloft' before `etoc'!\@gobbletwo}}% + \fi + \@cftnctoctrue }% + {}% + }% + }% +} +\@ifclassloaded{memoir} +{} +{% memoir not loaded + \AtBeginDocument{% + \@ifpackageloaded{tocloft} + {% + \def\etocclasstocstyle{% + \etoctocloftstyle + \Etoc@classstyletrue + }% + \ifEtoc@etocstyle + \ifEtoc@classstyle + \etocclasstocstyle + \Etoc@etocstyletrue + \fi + \else + \ifEtoc@classstyle + \etocclasstocstyle + \fi + \fi + }% + {% no tocloft + \@ifpackageloaded {tocbibind} + {\if@dotoctoc + \def\etocclasstocstyle{% + \etoctocbibindstyle + \Etoc@classstyletrue + }% + \ifEtoc@etocstyle + \ifEtoc@classstyle + \etocclasstocstyle + \Etoc@etocstyletrue + \fi + \else + \ifEtoc@classstyle + \etocclasstocstyle + \fi + \fi + \ifEtoc@keeporiginaltoc + \else + \let\tableofcontents\etoctableofcontents + \fi + }% + {}% + }% + \@ifpackageloaded{tocbibind} + {% tocbibind, perhaps with tocloft + \if@dotoctoc + \ifEtoc@keeporiginaltoc + \else + \let\tableofcontents\etoctableofcontents + \fi + \etocsetup{maintoctotoc,localtoctotoc}% + \PackageInfo{etoc}{% + Setting (or re-setting) the options `maintoctotoc' and\MessageBreak + `localtoctotoc' to true as tocbibind was detected and\MessageBreak + found to be configured for `TOC to toc'.\MessageBreak + Reported at begin document}% + \fi + \if@dotoclof + \ifEtoc@lof + \etocsetup{localloftotoc}% + \PackageInfo{etoc}{% + Setting (or re-setting) `localloftotoc=true' as the\MessageBreak + package tocbibind was detected and is configured for\MessageBreak + `LOF to toc'. Reported at begin document}% + \fi + \fi + \if@dotoclot + \ifEtoc@lot + \etocsetup{locallottotoc}% + \PackageInfo{etoc}{% + Setting (or re-setting) `locallottotoc=true' as the\MessageBreak + package tocbibind was detected and is configured for\MessageBreak + `LOT to toc'. Reported at begin document}% + \fi + \fi + }% end of tocbibind branch + {}% + }% end of at begin document +}% end of not with memoir branch +\def\Etoc@addtocontents #1#2{% + \addtocontents {toc}{% + \protect\contentsline{#1}{#2}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% + \ifdefined\protected@file@percent\protected@file@percent\fi + }% +} +\def\Etoc@addcontentsline@ #1#2#3{% + \@namedef{toclevel@#1}{#3}\addcontentsline {toc}{#1}{#2}% +} +\DeclareRobustCommand*{\etoctoccontentsline} + {\@ifstar{\Etoc@addcontentsline@}{\Etoc@addtocontents}} +\def\Etoc@addtocontents@immediately#1#2{% + \begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \Etoc@addtocontents{#1}{#2}% + \endgroup +} +\def\Etoc@addcontentsline@@immediately#1#2#3{% + \begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \Etoc@addcontentsline@{#1}{#2}{#3}% + \endgoroup +} +\DeclareRobustCommand*{\etocimmediatetoccontentsline} + {\@ifstar{\Etoc@addcontentsline@@immediately}{\Etoc@addtocontents@immediately}} +\def\Etoc@storetocdepth {\xdef\Etoc@savedtocdepth{\number\c@tocdepth}} +\def\Etoc@restoretocdepth {\global\c@tocdepth\Etoc@savedtocdepth\relax} +\def\etocobeytoctocdepth {\def\etoc@settocdepth + {\afterassignment\Etoc@@nottoodeep \global\c@tocdepth}} +\def\Etoc@@nottoodeep {\ifnum\Etoc@savedtocdepth<\c@tocdepth + \global\c@tocdepth\Etoc@savedtocdepth\relax\fi } +\def\etocignoretoctocdepth {\let\etoc@settocdepth\@gobble } +\def\etocsettocdepth {\futurelet\Etoc@nexttoken\Etoc@set@tocdepth } +\def\Etoc@set@tocdepth {\ifx\Etoc@nexttoken\bgroup + \expandafter\Etoc@set@tocdepth@ + \else\expandafter\Etoc@set@toctocdepth + \fi } +\def\Etoc@set@tocdepth@ #1{\@ifundefined {Etoc@#1@@} + {\PackageWarning{etoc} + {Unknown sectioning unit #1, \protect\etocsettocdepth\space ignored}} + {\global\c@tocdepth\csname Etoc@#1@@\endcsname}% +} +\def\Etoc@set@toctocdepth #1#{\Etoc@set@toctocdepth@ } +\def\Etoc@set@toctocdepth@ #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocsettocdepth.toc ignored}}% + {\addtocontents {toc} + {\protect\etoc@settocdepth\expandafter\protect\csname Etoc@#1@@\endcsname}}% +} +\def\etocimmediatesettocdepth #1#{\Etoc@set@toctocdepth@immediately} +\def\Etoc@set@toctocdepth@immediately #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocimmediatesettocdepth.toc ignored}}% + {\begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \addtocontents {toc} + {\protect\etoc@settocdepth\expandafter\protect + \csname Etoc@#1@@\endcsname}% + \endgroup + }% +} +\def\etocdepthtag #1#{\Etoc@depthtag } +\def\Etoc@depthtag #1{\addtocontents {toc}{\protect\etoc@depthtag {#1}}} +\def\etocimmediatedepthtag #1#{\Etoc@depthtag@immediately } +\def\Etoc@depthtag@immediately #1{% + \begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \addtocontents {toc}{\protect\etoc@depthtag {#1}}% + \endgroup +} +\def\etocignoredepthtags {\let\etoc@depthtag \@gobble } +\def\etocobeydepthtags {\let\etoc@depthtag \Etoc@depthtag@ } +\def\Etoc@depthtag@ #1{\@ifundefined{Etoc@depthof@#1}% + {}% ignore in silence if tag has no associated depth + {\afterassignment\Etoc@@nottoodeep + \global\c@tocdepth\csname Etoc@depthof@#1\endcsname}% +} +\def\etocsettagdepth #1#2{\@ifundefined{Etoc@#2@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #2, \protect\etocsettagdepth\space ignored}}% + {\@namedef{Etoc@depthof@#1}{\@nameuse{Etoc@#2@@}}}% +} +\def\Etoc@tocvsec@err #1{\PackageError {etoc} + {The command \protect#1\space is incompatible with `etoc'} + {Use \protect\etocsettocdepth.toc as replacement}% +}% +\AtBeginDocument {% + \@ifclassloaded{memoir} + {\PackageInfo {etoc} + {Regarding `memoir' class command \protect\settocdepth, consider\MessageBreak + \protect\etocsettocdepth.toc as a drop-in replacement with more\MessageBreak + capabilities (see `etoc' manual). \space + Also, \protect\etocsettocdepth\MessageBreak + and \protect\etocsetnexttocdepth\space should be used in place of\MessageBreak + `memoir' command \protect\maxtocdepth\@gobble}% + }% + {\@ifpackageloaded {tocvsec2}{% + \def\maxtocdepth #1{\Etoc@tocvsec@err \maxtocdepth }% + \def\settocdepth #1{\Etoc@tocvsec@err \settocdepth }% + \def\resettocdepth {\@ifstar {\Etoc@tocvsec@err \resettocdepth }% + {\Etoc@tocvsec@err \resettocdepth }% + }% + \def\save@tocdepth #1#2#3{}% + \let\reset@tocdepth\relax + \let\remax@tocdepth\relax + \let\tableofcontents\etoctableofcontents + \PackageWarningNoLine {etoc} + {Package `tocvsec2' detected and its modification of\MessageBreak + \protect\tableofcontents\space reverted. \space Use + \protect\etocsettocdepth.toc\MessageBreak as a replacement + for `tocvsec2' toc-related commands}% + }% tocvsec2 loaded + {}% tocvsec2 not loaded + }% +}% +\def\invisibletableofcontents {\etocsetnexttocdepth {-3}\tableofcontents }% +\def\invisiblelocaltableofcontents + {\etocsetnexttocdepth {-3}\localtableofcontents }% +\def\etocsetnexttocdepth #1{% + \@ifundefined{Etoc@#1@@} + {\PackageWarning{etoc} + {Unknown sectioning unit #1, \protect\etocsetnextocdepth\space ignored}} + {\Etoc@setnexttocdepth{\csname Etoc@#1@@\endcsname}}% +}% +\def\Etoc@setnexttocdepth#1{% + \def\Etoc@tocdepthset{% + \Etoc@tocdepthreset + \edef\Etoc@tocdepthreset {% + \global\c@tocdepth\the\c@tocdepth\space + \global\let\noexpand\Etoc@tocdepthreset\noexpand\@empty + }% + \global\c@tocdepth#1% + \global\let\Etoc@tocdepthset\@empty + }% +}% +\let\Etoc@tocdepthreset\@empty +\let\Etoc@tocdepthset \@empty +\def\etocsetlocaltop #1#{\Etoc@set@localtop}% +\def\Etoc@set@localtop #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocsetlocaltop.toc ignored}}% + {\addtocontents {toc} + {\protect\etoc@setlocaltop\expandafter\protect\csname Etoc@#1@@\endcsname}}% +}% +\def\etocimmediatesetlocaltop #1#{\Etoc@set@localtop@immediately}% +\def\Etoc@set@localtop@immediately #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocimmediatesetlocaltop.toc ignored}}% + {\begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \addtocontents {toc} + {\protect\etoc@setlocaltop\expandafter\protect + \csname Etoc@#1@@\endcsname}% + \endgroup + }% +}% +\def\etoc@setlocaltop #1{% + \ifnum#1=\Etoc@maxlevel + \Etoc@skipthisonetrue + \else + \Etoc@skipthisonefalse + \global\let\Etoc@level #1% + \global\let\Etoc@virtualtop #1% + \ifEtoc@localtoc + \ifEtoc@stoptoc + \Etoc@skipthisonetrue + \else + \ifEtoc@notactive + \Etoc@skipthisonetrue + \else + \unless\ifnum\Etoc@level>\etoclocaltop + \Etoc@skipthisonetrue + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \fi + \fi + \let\Etoc@next\@empty + \ifEtoc@skipthisone + \else + \ifnum\Etoc@level>\c@tocdepth + \else + \ifEtoc@standardlines + \else + \let\Etoc@next\Etoc@setlocaltop@doendsandbegin + \fi + \fi + \fi + \Etoc@next +}% +\def\Etoc@setlocaltop@doendsandbegin{% + \Etoc@doendsandbegin + \global\Etoc@skipprefixfalse +} +\addtocontents {toc}{\protect\@ifundefined{etoctocstyle}% + {\let\protect\etoc@startlocaltoc\protect\@gobble + \let\protect\etoc@settocdepth\protect\@gobble + \let\protect\etoc@depthtag\protect\@gobble + \let\protect\etoc@setlocaltop\protect\@gobble}{}}% +\def\etocstandardlines {\Etoc@standardlinestrue} +\def\etoctoclines {\Etoc@standardlinesfalse} +\etocdefaultlines +\etocstandardlines +\def\etocstandarddisplaystyle{% + \PackageWarningNoLine{etoc}{% + \string\etocstandarddisplaystyle \on@line\MessageBreak + is deprecated. \space Please use \string\etocclasstocstyle}% +} +\expandafter\def\expandafter\etocclasstocstyle\expandafter{% + \etocclasstocstyle + \Etoc@classstyletrue +} +\def\etocetoclocaltocstyle{\Etoc@etocstyletrue} +\def\etocusertocstyle{\Etoc@etocstylefalse} +\etocclasstocstyle +\etocetoclocaltocstyle +\etocobeytoctocdepth +\etocobeydepthtags +\let\etocbeforetitlehook \@empty +\let\etocaftertitlehook \@empty +\let\etocaftercontentshook \@empty +\let\etocaftertochook \@empty +\def\etockeeporiginaltableofcontents + {\Etoc@keeporiginaltoctrue\let\tableofcontents\etocoriginaltableofcontents}% +\endinput +%% +%% End of file `etoc.sty'. diff --git a/docs/latex/longtable_doxygen.sty b/docs/latex/longtable_doxygen.sty new file mode 100644 index 0000000..e94b78b --- /dev/null +++ b/docs/latex/longtable_doxygen.sty @@ -0,0 +1,456 @@ +%% +%% This is file `longtable.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% longtable.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% The source is maintained by the LaTeX Project team and bug +%% reports for it can be opened at http://latex-project.org/bugs.html +%% (but please observe conditions on bug reports sent to that address!) +%% +%% Copyright 1993-2016 +%% The LaTeX3 Project and any individual authors listed elsewhere +%% in this file. +%% +%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. +%% -------------------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This file may only be distributed together with a copy of the LaTeX +%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' +%% without such generated files. +%% +%% The list of all files belonging to the LaTeX `Tools Bundle' is +%% given in the file `manifest.txt'. +%% +%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{longtable_doxygen} + [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] +\def\LT@err{\PackageError{longtable}} +\def\LT@warn{\PackageWarning{longtable}} +\def\LT@final@warn{% + \AtEndDocument{% + \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% + \global\let\LT@final@warn\relax} +\DeclareOption{errorshow}{% + \def\LT@warn{\PackageInfo{longtable}}} +\DeclareOption{pausing}{% + \def\LT@warn#1{% + \LT@err{#1}{This is not really an error}}} +\DeclareOption{set}{} +\DeclareOption{final}{} +\ProcessOptions +\newskip\LTleft \LTleft=\fill +\newskip\LTright \LTright=\fill +\newskip\LTpre \LTpre=\bigskipamount +\newskip\LTpost \LTpost=\bigskipamount +\newcount\LTchunksize \LTchunksize=20 +\let\c@LTchunksize\LTchunksize +\newdimen\LTcapwidth \LTcapwidth=4in +\newbox\LT@head +\newbox\LT@firsthead +\newbox\LT@foot +\newbox\LT@lastfoot +\newcount\LT@cols +\newcount\LT@rows +\newcounter{LT@tables} +\newcounter{LT@chunks}[LT@tables] +\ifx\c@table\undefined + \newcounter{table} + \def\fnum@table{\tablename~\thetable} +\fi +\ifx\tablename\undefined + \def\tablename{Table} +\fi +\newtoks\LT@p@ftn +\mathchardef\LT@end@pen=30000 +\def\longtable{% + \par + \ifx\multicols\@undefined + \else + \ifnum\col@number>\@ne + \@twocolumntrue + \fi + \fi + \if@twocolumn + \LT@err{longtable not in 1-column mode}\@ehc + \fi + \begingroup + \@ifnextchar[\LT@array{\LT@array[x]}} +\def\LT@array[#1]#2{% + \refstepcounter{table}\stepcounter{LT@tables}% + \if l#1% + \LTleft\z@ \LTright\fill + \else\if r#1% + \LTleft\fill \LTright\z@ + \else\if c#1% + \LTleft\fill \LTright\fill + \fi\fi\fi + \let\LT@mcol\multicolumn + \let\LT@@tabarray\@tabarray + \let\LT@@hl\hline + \def\@tabarray{% + \let\hline\LT@@hl + \LT@@tabarray}% + \let\\\LT@tabularcr\let\tabularnewline\\% + \def\newpage{\noalign{\break}}% + \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% + \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% + \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption + \@tempdima\ht\strutbox + \let\@endpbox\LT@endpbox + \ifx\extrarowheight\@undefined + \let\@acol\@tabacol + \let\@classz\@tabclassz \let\@classiv\@tabclassiv + \def\@startpbox{\vtop\LT@startpbox}% + \let\@@startpbox\@startpbox + \let\@@endpbox\@endpbox + \let\LT@LL@FM@cr\@tabularcr + \else + \advance\@tempdima\extrarowheight + \col@sep\tabcolsep + \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr + \fi + \setbox\@arstrutbox\hbox{\vrule + \@height \arraystretch \@tempdima + \@depth \arraystretch \dp \strutbox + \@width \z@}% + \let\@sharp##\let\protect\relax + \begingroup + \@mkpream{#2}% + \xdef\LT@bchunk{% + \global\advance\c@LT@chunks\@ne + \global\LT@rows\z@\setbox\z@\vbox\bgroup + \LT@setprevdepth + \tabskip\LTleft \noexpand\halign to\hsize\bgroup + \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% + \endgroup + \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols + \LT@make@row + \m@th\let\par\@empty + \everycr{}\lineskip\z@\baselineskip\z@ + \LT@bchunk} +\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} +\def\LT@start{% + \let\LT@start\endgraf + \endgraf\penalty\z@\vskip\LTpre + \dimen@\pagetotal + \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \ht\LT@foot + \dimen@ii\vfuzz + \vfuzz\maxdimen + \setbox\tw@\copy\z@ + \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox + \setbox\tw@\vbox{\unvbox\tw@}% + \vfuzz\dimen@ii + \advance\dimen@ \ht + \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@\dp + \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@ -\pagegoal + \ifdim \dimen@>\z@\vfil\break\fi + \global\@colroom\@colht + \ifvoid\LT@foot\else + \advance\vsize-\ht\LT@foot + \global\advance\@colroom-\ht\LT@foot + \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ + \maxdepth\z@ + \fi + \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak + \output{\LT@output}} +\def\endlongtable{% + \crcr + \noalign{% + \let\LT@entry\LT@entry@chop + \xdef\LT@save@row{\LT@save@row}}% + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \if@filesw + {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% + \gdef\expandafter\noexpand + \csname LT@\romannumeral\c@LT@tables\endcsname + {\LT@save@row}}}% + \fi + \ifx\LT@save@row\LT@@save@row + \else + \LT@warn{Column \@width s have changed\MessageBreak + in table \thetable}% + \LT@final@warn + \fi + \endgraf\penalty -\LT@end@pen + \endgroup + \global\@mparbottom\z@ + \pagegoal\vsize + \endgraf\penalty\z@\addvspace\LTpost + \ifvoid\footins\else\insert\footins{}\fi} +\def\LT@nofcols#1&{% + \futurelet\@let@token\LT@n@fcols} +\def\LT@n@fcols{% + \advance\LT@cols\@ne + \ifx\@let@token\LT@nofcols + \expandafter\@gobble + \else + \expandafter\LT@nofcols + \fi} +\def\LT@tabularcr{% + \relax\iffalse{\fi\ifnum0=`}\fi + \@ifstar + {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr + \LT@t@bularcr}% + {\LT@t@bularcr}} +\let\LT@crcr\crcr +\let\LT@setprevdepth\relax +\def\LT@t@bularcr{% + \global\advance\LT@rows\@ne + \ifnum\LT@rows=\LTchunksize + \gdef\LT@setprevdepth{% + \prevdepth\z@\global + \global\let\LT@setprevdepth\relax}% + \expandafter\LT@xtabularcr + \else + \ifnum0=`{}\fi + \expandafter\LT@LL@FM@cr + \fi} +\def\LT@xtabularcr{% + \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} +\def\LT@ntabularcr{% + \ifnum0=`{}\fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@argtabularcr[#1]{% + \ifnum0=`{}\fi + \ifdim #1>\z@ + \unskip\@xargarraycr{#1}% + \else + \@yargarraycr{#1}% + \fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@echunk{% + \crcr\LT@save@row\cr\egroup + \global\setbox\@ne\lastbox + \unskip + \egroup} +\def\LT@entry#1#2{% + \ifhmode\@firstofone{&}\fi\omit + \ifnum#1=\c@LT@chunks + \else + \kern#2\relax + \fi} +\def\LT@entry@chop#1#2{% + \noexpand\LT@entry + {\ifnum#1>\c@LT@chunks + 1}{0pt% + \else + #1}{#2% + \fi}} +\def\LT@entry@write{% + \noexpand\LT@entry^^J% + \@spaces} +\def\LT@kill{% + \LT@echunk + \LT@get@widths + \expandafter\LT@rebox\LT@bchunk} +\def\LT@rebox#1\bgroup{% + #1\bgroup + \unvbox\z@ + \unskip + \setbox\z@\lastbox} +\def\LT@blank@row{% + \xdef\LT@save@row{\expandafter\LT@build@blank + \romannumeral\number\LT@cols 001 }} +\def\LT@build@blank#1{% + \if#1m% + \noexpand\LT@entry{1}{0pt}% + \expandafter\LT@build@blank + \fi} +\def\LT@make@row{% + \global\expandafter\let\expandafter\LT@save@row + \csname LT@\romannumeral\c@LT@tables\endcsname + \ifx\LT@save@row\relax + \LT@blank@row + \else + {\let\LT@entry\or + \if!% + \ifcase\expandafter\expandafter\expandafter\LT@cols + \expandafter\@gobble\LT@save@row + \or + \else + \relax + \fi + !% + \else + \aftergroup\LT@blank@row + \fi}% + \fi} +\let\setlongtables\relax +\def\LT@get@widths{% + \setbox\tw@\hbox{% + \unhbox\@ne + \let\LT@old@row\LT@save@row + \global\let\LT@save@row\@empty + \count@\LT@cols + \loop + \unskip + \setbox\tw@\lastbox + \ifhbox\tw@ + \LT@def@row + \advance\count@\m@ne + \repeat}% + \ifx\LT@@save@row\@undefined + \let\LT@@save@row\LT@save@row + \fi} +\def\LT@def@row{% + \let\LT@entry\or + \edef\@tempa{% + \ifcase\expandafter\count@\LT@old@row + \else + {1}{0pt}% + \fi}% + \let\LT@entry\relax + \xdef\LT@save@row{% + \LT@entry + \expandafter\LT@max@sel\@tempa + \LT@save@row}} +\def\LT@max@sel#1#2{% + {\ifdim#2=\wd\tw@ + #1% + \else + \number\c@LT@chunks + \fi}% + {\the\wd\tw@}} +\def\LT@hline{% + \noalign{\ifnum0=`}\fi + \penalty\@M + \futurelet\@let@token\LT@@hline} +\def\LT@@hline{% + \ifx\@let@token\hline + \global\let\@gtempa\@gobble + \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% + \else + \global\let\@gtempa\@empty + \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\LT@sep}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\penalty\@M}% + \@gtempa} +\def\LT@caption{% + \noalign\bgroup + \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} +\def\LT@c@ption#1[#2]#3{% + \LT@makecaption#1\fnum@table{#3}% + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\let\\\space + \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% + \fi} +\def\LT@capti@n{% + \@ifstar + {\egroup\LT@c@ption\@gobble[]}% + {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} +\def\LT@makecaption#1#2#3{% + \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% + \sbox\@tempboxa{#1{#2: }#3}% + \ifdim\wd\@tempboxa>\hsize + #1{#2: }#3% + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgraf\vskip\baselineskip}% + \hss}}} +\def\LT@output{% + \ifnum\outputpenalty <-\@Mi + \ifnum\outputpenalty > -\LT@end@pen + \LT@err{floats and marginpars not allowed in a longtable}\@ehc + \else + \setbox\z@\vbox{\unvbox\@cclv}% + \ifdim \ht\LT@lastfoot>\ht\LT@foot + \dimen@\pagegoal + \advance\dimen@-\ht\LT@lastfoot + \ifdim\dimen@<\ht\z@ + \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% + \@makecol + \@outputpage + \setbox\z@\vbox{\box\LT@head}% + \fi + \fi + \global\@colroom\@colht + \global\vsize\@colht + \vbox + {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% + \fi + \else + \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% + \@makecol + \@outputpage + \global\vsize\@colroom + \copy\LT@head\nobreak + \fi} +\def\LT@end@hd@ft#1{% + \LT@echunk + \ifx\LT@start\endgraf + \LT@err + {Longtable head or foot not at start of table}% + {Increase LTchunksize}% + \fi + \setbox#1\box\z@ + \LT@get@widths + \LT@bchunk} +\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} +\def\endhead{\LT@end@hd@ft\LT@head} +\def\endfoot{\LT@end@hd@ft\LT@foot} +\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} +\def\LT@startpbox#1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \vrule \@height \ht\@arstrutbox \@width \z@} +\def\LT@endpbox{% + \@finalstrut\@arstrutbox + \egroup + \the\LT@p@ftn + \global\LT@p@ftn{}% + \hfil} +%% added \long to prevent: +% LaTeX Warning: Command \LT@p@ftntext has changed. +% +% from the original repository (https://github.com/latex3/latex2e/blob/develop/required/tools/longtable.dtx): +% \changes{v4.15}{2021/03/28} +% {make long for gh/364} +% Inside the `p' column, just save up the footnote text in a token +% register. +\long\def\LT@p@ftntext#1{% + \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% + \global\LT@p@ftn\expandafter{\@tempa{#1}}}% + +\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} +\endinput +%% +%% End of file `longtable.sty'. diff --git a/docs/latex/refman.tex b/docs/latex/refman.tex new file mode 100644 index 0000000..8bda385 --- /dev/null +++ b/docs/latex/refman.tex @@ -0,0 +1,218 @@ + % Handle batch mode + % to overcome problems with too many open files + \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage} + \pdfminorversion=7 + % Set document class depending on configuration + \documentclass[twoside]{book} + %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package + \usepackage{ifthen} + \ifx\requestedLaTeXdate\undefined + \usepackage{array} + \else + \usepackage{array}[=2016-10-06] + \fi + %% + % Packages required by doxygen + \makeatletter + \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} + % suppress package identification of infwarerr as it contains the word "warning" + \let\@@protected@wlog\protected@wlog + \def\protected@wlog#1{\wlog{package info suppressed}} + \RequirePackage{infwarerr} + \let\protected@wlog\@@protected@wlog + \makeatother + \IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript + \IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{} + \usepackage{doxygen} + \usepackage{graphicx} + \usepackage[utf8]{inputenc} + \usepackage{makeidx} + \PassOptionsToPackage{warn}{textcomp} + \usepackage{textcomp} + \usepackage[nointegrals]{wasysym} + \usepackage{ifxetex} + % NLS support packages + % Define default fonts + % Font selection + \usepackage[T1]{fontenc} + % set main and monospaced font + \usepackage[scaled=.90]{helvet} +\usepackage{courier} +\renewcommand{\familydefault}{\sfdefault} + \doxyallsectionsfont{% + \fontseries{bc}\selectfont% + \color{darkgray}% + } + \renewcommand{\DoxyLabelFont}{% + \fontseries{bc}\selectfont% + \color{darkgray}% + } + \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + % Arguments of doxygenemoji: + % 1) '::' form of the emoji, already LaTeX-escaped + % 2) file with the name of the emoji without the .png extension + % in case image exist use this otherwise use the '::' form + \newcommand{\doxygenemoji}[2]{% + \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% + } + % Page & text layout + \usepackage{geometry} + \geometry{% + a4paper,% + top=2.5cm,% + bottom=2.5cm,% + left=2.5cm,% + right=2.5cm% + } + \usepackage{changepage} + % Allow a bit of overflow to go unnoticed by other means + \tolerance=750 + \hfuzz=15pt + \hbadness=750 + \setlength{\emergencystretch}{15pt} + \setlength{\parindent}{0cm} + \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} + \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} + \doxynormalparskip + % Redefine paragraph/subparagraph environments, using sectsty fonts + \makeatletter + \renewcommand{\paragraph}{% + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@parafont% + }% + } + \renewcommand{\subparagraph}{% + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@subparafont% + }% + } + \makeatother + \makeatletter + \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} + \makeatother + % Headers & footers + \usepackage{fancyhdr} + \pagestyle{fancyplain} + \renewcommand{\footrulewidth}{0.4pt} + \fancypagestyle{fancyplain}{ + \fancyhf{} + \fancyhead[LE, RO]{\bfseries\thepage} + \fancyhead[LO]{\bfseries\rightmark} + \fancyhead[RE]{\bfseries\leftmark} + \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } + } + \fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } + \renewcommand{\headrulewidth}{0pt} + } + \pagestyle{fancyplain} + \renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% + } + \renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% + } + % ToC, LoF, LoT, bibliography, and index + % Indices & bibliography + \usepackage{natbib} + \usepackage[titles]{tocloft} + \setcounter{tocdepth}{3} + \setcounter{secnumdepth}{5} + % creating indexes + \makeindex + \usepackage{newunicodechar} + \makeatletter + \def\doxynewunicodechar#1#2{% + \@tempswafalse + \edef\nuc@tempa{\detokenize{#1}}% + \if\relax\nuc@tempa\relax + \nuc@emptyargerr + \else + \edef\@tempb{\expandafter\@car\nuc@tempa\@nil}% + \nuc@check + \if@tempswa + \@namedef{u8:\nuc@tempa}{#2}% + \fi + \fi + } + \makeatother + \doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus + \doxynewunicodechar{²}{${}^{2}$}% Superscript two + \doxynewunicodechar{³}{${}^{3}$}% Superscript three + % Hyperlinks + % Hyperlinks (required, but should be loaded last) + \ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} + \else + \ifxetex + \usepackage[pagebackref=true]{hyperref} + \else + \usepackage[ps2pdf,pagebackref=true]{hyperref} + \fi + \fi + \hypersetup{% + colorlinks=true,% + linkcolor=blue,% + citecolor=blue,% + unicode,% + pdftitle={My Project},% + pdfsubject={}% + } + % Custom commands used by the header + % Custom commands + \newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% + } + % caption style definition + \usepackage{caption} + \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} + % in page table of contents + \IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}} + \etocsettocstyle{\doxytocparskip}{\doxynormalparskip} + \etocsetlevel{subsubsubsection}{4} + \etocsetlevel{subsubsubsubsection}{5} + \etocsetlevel{subsubsubsubsubsection}{6} + \etocsetlevel{subsubsubsubsubsubsection}{7} + \etocsetlevel{paragraph}{8} + \etocsetlevel{subparagraph}{9} + % prevent numbers overlap the titles in toc + \renewcommand{\numberline}[1]{#1~} +% End of preamble, now comes the document contents +%===== C O N T E N T S ===== +\begin{document} + \raggedbottom + % Titlepage & ToC + % To avoid duplicate page anchors due to reuse of same numbers for + % the index (be it as roman numbers) + \hypersetup{pageanchor=false, + bookmarksnumbered=true, + pdfencoding=unicode + } + \pagenumbering{alph} + \begin{titlepage} + \vspace*{7cm} + \begin{center}% + {\Large My Project}\\ + \vspace*{1cm} + {\large Generated by Doxygen 1.9.8}\\ + \end{center} + \end{titlepage} + \clearemptydoublepage + \pagenumbering{roman} + \tableofcontents + \clearemptydoublepage + \pagenumbering{arabic} + % re-enable anchors again + \hypersetup{pageanchor=true} +%--- Begin generated contents --- +%--- End generated contents --- +% Index + \backmatter + \newpage + \phantomsection + \clearemptydoublepage + \addcontentsline{toc}{chapter}{\indexname} + \printindex +% Required for some languages (in combination with latexdocumentpre from the header) +\end{document} diff --git a/docs/latex/tabu_doxygen.sty b/docs/latex/tabu_doxygen.sty new file mode 100644 index 0000000..3f17d1d --- /dev/null +++ b/docs/latex/tabu_doxygen.sty @@ -0,0 +1,2557 @@ +%% +%% This is file `tabu.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabu.dtx (with options: `package') +%% +%% This is a generated file. +%% Copyright (FC) 2010-2011 - lppl +%% +%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars +%% +%% ********************************************************************************************** +%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal +%% \begin{tabu} to { preamble } => target specified +%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' +%% +%% tabu works in text and in math modes. +%% +%% X columns: automatic width adjustment + horizontal and vertical alignment +%% \begin{tabu} { X[4c] X[1c] X[-2ml] } +%% +%% Horizontal lines and / or leaders: +%% \hline\hline => double horizontal line +%% \firsthline\hline => for nested tabulars +%% \lasthline\hline => for nested tabulars +%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) +%% Automatic lines / leaders : +%% \everyrow{\hline\hline} +%% +%% Vertical lines and / or leaders: +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } +%% +%% Fixed vertical spacing adjustment: +%% \extrarowheight= \extrarowdepth= +%% or: \extrarowsep= => may be prefixed by \global +%% +%% Dynamic vertical spacing adjustment: +%% \abovetabulinesep= \belowtabulinesep= +%% or: \tabulinesep= => may be prefixed by \global +%% +%% delarray.sty shortcuts: in math and text modes +%% \begin{tabu} .... \({ preamble }\) +%% +%% Algorithms reports: +%% \tracingtabu=1 \tracingtabu=2 +%% +%% ********************************************************************************************** +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% +%% This work consists of the main source file tabu.dtx +%% and the derived files +%% tabu.sty, tabu.pdf, tabu.ins +%% +%% tabu : Flexible LaTeX tabulars +%% lppl copyright 2010-2011 by FC +%% + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] +\RequirePackage{array}[2008/09/09] +\RequirePackage{varwidth}[2009/03/30] +\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} +\let\tabu@AtEnd\@empty +\def\TMP@EnsureCode#1={% + \edef\tabu@AtEnd{\tabu@AtEnd + \catcode#1 \the\catcode#1}% + \catcode#1=% +}% \TMP@EnsureCode +\TMP@EnsureCode 33 = 12 % ! +\TMP@EnsureCode 58 = 12 % : (for siunitx) +\TMP@EnsureCode124 = 12 % | +\TMP@EnsureCode 36 = 3 % $ = math shift +\TMP@EnsureCode 38 = 4 % & = tab alignment character +\TMP@EnsureCode 32 = 10 % space +\TMP@EnsureCode 94 = 7 % ^ +\TMP@EnsureCode 95 = 8 % _ +%% Constants -------------------------------------------------------- +\newcount \c@taburow \def\thetaburow {\number\c@taburow} +\newcount \tabu@nbcols +\newcount \tabu@cnt +\newcount \tabu@Xcol +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcount \tabu@alloc \tabu@alloc=\m@ne +\newcount \tabu@nested +\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} +\newdimen \tabu@target +\newdimen \tabu@spreadtarget +\newdimen \tabu@naturalX +\newdimen \tabucolX +\let\tabu@DELTA \@tempdimc +\let\tabu@thick \@tempdima +\let\tabu@on \@tempdimb +\let\tabu@off \@tempdimc +\newdimen \tabu@Xsum +\newdimen \extrarowdepth +\newdimen \abovetabulinesep +\newdimen \belowtabulinesep +\newdimen \tabustrutrule \tabustrutrule \z@ +\newtoks \tabu@thebody +\newtoks \tabu@footnotes +\newsavebox \tabu@box +\newsavebox \tabu@arstrutbox +\newsavebox \tabu@hleads +\newsavebox \tabu@vleads +\newif \iftabu@colortbl +\newif \iftabu@siunitx +\newif \iftabu@measuring +\newif \iftabu@spread +\newif \iftabu@negcoef +\newif \iftabu@everyrow +\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} +\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} +\newif \iftabu@long +\newif \iftabuscantokens +\def\tabu@rescan {\tabu@verbatim \scantokens } +%% Utilities (for internal usage) ----------------------------------- +\def\tabu@gobblespace #1 {#1} +\def\tabu@gobbletoken #1#2{#1} +\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} +\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble + \else\ifx \@sptoken\@let@token + \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX + \fi\fi +}% \tabu@gobblex +\def\tabu@X{^^J} +{\obeyspaces +\global\let\tabu@spxiii= % saves an active space (for \ifx) +\gdef\tabu@@spxiii{ }} +\def\tabu@ifenvir {% only for \multicolumn + \expandafter\tabu@if@nvir\csname\@currenvir\endcsname +}% \tabu@ifenvir +\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else + \ifx\longtabu#1first\else + second\fi\fi oftwo\endcsname +}% \tabu@ifenvir +\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} +{\catcode`\&=3 +\gdef\tabu@strtrim #1{% #1 = control sequence to trim + \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi + \let\tabu@c@l@r \@empty \let#1\@empty + \else \expandafter \tabu@trimspaces #1\@nnil + \fi +}% \tabu@strtrim +\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% +\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} +\gdef\tabu@lastspace #1{\def #3{#1}% + \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi + \tabu@trimspaces #1\@nnil} +}% \catcode +\def\tabu@sanitizearg #1#2{{% + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% + \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% +}% \tabu@sanitizearg +\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% + \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! +}% \tabu@textbar +\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} +\def\tabu@everyrow@egroup{% + \iftabu@everyrow \expandafter \endgroup \the\toks@ + \else \ifnum0=`{\fi}% + \fi +}% \tabu@everyrow@egroup +\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \z@}% +}% \tabu@arstrut +\def\tabu@rearstrut {% + \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax + \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax + \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima + \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi + \tabu@mkarstrut + \fi +}% \tabu@rearstrut +\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} +\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox + \hbox to\z@{\hbox to\z@{\hss + {\tabu@DBG{cyan}\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \z@ + width \tabustrutrule}\kern-\tabustrutrule + {\tabu@DBG{pink}\vrule + height \z@ + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \tabustrutrule}}}% +}% \tabu@DBG@arstrut +\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ + \@nextchar}}% +\def\tabu@savedecl{\ifcat$\d@llarend\else + \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode +}% \tabu@savedecl +\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} +\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } +\let\tabu@trialh@@k \@empty +\def\tabu@nowrite #1#{{\afterassignment}\toks@} +\let\tabu@write\write +\let\tabu@immediate\immediate +\def\tabu@WRITE{\begingroup + \def\immediate\write{\aftergroup\endgroup + \tabu@immediate\tabu@write}% +}% \tabu@WRITE +\expandafter\def\expandafter\tabu@GenericError\expandafter{% + \expandafter\tabu@WRITE\GenericError} +\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} +\def\tabu@noxfootnote [#1]{\@gobble} +\def\tabu@nocolor #1#{\@gobble} +\newcommand*\tabu@norowcolor[2][]{} +\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% + \futurelet\@let@token \tabu@m@ybesiunitx} +\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% + \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi + \tabu@temp}% \tabu@m@ybesiunitx +}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname +\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% +%% Fixed vertical spacing adjustment: \extrarowsep ------------------ +\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% + \iftabu@everyrow \aftergroup\tabu@Gextra + \else \aftergroup\tabu@n@Gextra + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra +}% \extrarowsep +\def\tabu@extra {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setextrasep \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extra +\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} +\def\tabu@extr@ #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extr@ +\def\tabu@setextrasep {\extrarowheight=\extrarowdepth + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth +}% \tabu@setextrasep +\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} +\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} +\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} +\let\tabu@C@extra \z@ +\let\tabu@G@extra \@empty +%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- +\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% + \iftabu@everyrow \aftergroup\tabu@Glinesep + \else \aftergroup\tabu@n@Glinesep + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep +}% \tabulinesep +\def\tabu@linesep {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setlinesep \abovetabulinesep + \fi \tabu@temp}% +}% \tabu@linesep +\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} +\def\tabu@sets@p #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep + \fi \tabu@temp}% +}% \tabu@sets@p +\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep +}% \tabu@setlinesep +\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} +\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} +\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} +\let\tabu@C@linesep \z@ +\let\tabu@G@linesep \@empty +%% \global\extrarowsep and \global\tabulinesep ------------------- +\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% + \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% +}% \tabu@Gsave +\def\tabu@Grestore#1#2{% + \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax + \ifcat$\the\toks\currentgrouplevel$\else + \global\let#1\@empty \global\let#2\z@ + \the\toks\currentgrouplevel + \fi +}% \tabu@Grestore +%% Setting code for every row --------------------------------------- +\newcommand*\everyrow{\tabu@everyrow@bgroup + \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop +}% \everyrow +\def\tabu@evrstartstop {\@ifnextchar^% + {\afterassignment \tabu@evrstartstop \tabu@stop=}% + {\ifx ^\@let@token + \afterassignment\tabu@evrstartstop \tabu@start=% + \else \afterassignment\tabu@everyr@w \toks@ + \fi}% +}% \tabu@evrstartstop +\def\tabu@everyr@w {% + \xdef\tabu@everyrow{% + \noexpand\tabu@everyrowfalse + \let\noalign \relax + \noexpand\tabu@rowfontreset + \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors + \let\noexpand\tabu@docline \noexpand\tabu@docline@evr + \the\toks@ + \noexpand\tabu@evrh@@k + \noexpand\tabu@rearstrut + \global\advance\c@taburow \@ne}% + \iftabu@everyrow \toks@\expandafter + {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% + \else \xdef\tabu@evr@G{\the\toks@}% + \fi + \tabu@everyrow@egroup +}% \tabu@everyr@w +\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only +\tabu@evr{} +%% line style and leaders ------------------------------------------- +\newcommand*\newtabulinestyle [1]{% + {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% +}% \newtabulinestyle +\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% + \tabu@sanitizearg {#1}\@tempa + \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi + \global\expandafter\let + \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi +}% \tabu@newlinestyle +\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% + \iftabu@everyrow + \toks@\expandafter{\expandafter \def \expandafter + \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% + \gdef\tabu@ls@{\tabu@ls@L}% + \else + \global\let\tabu@ls@G \tabu@thestyle + \gdef\tabu@ls@{\tabu@ls@G}% + \fi + \tabu@everyrow@egroup +}% \tabulinestyle +\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} +\def\tabu@rulecolor #1{\toks@{}% + \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% + \tabu@temp + \tabu@rulearc +}% \tabu@rulecolor +\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp + \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% + \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% + \fi + \tabu@temp +}% \tabu@ruledrsc@ +\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} +\def\tabu@rule@drsc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% + \else \toks@{\def\CT@drsc@{\color #1{#2}}}% + \fi + \else + \ifx \\#1#2\\\global\let\CT@drsc@ \relax + \else \gdef\CT@drsc@{\color #1{#2}}% + \fi + \fi + \tabu@rulearc +}% \tabu@rule@drsc@ +\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} +\def\tabu@rule@arc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% + \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% + \fi + \toks@\expandafter{\the\toks@ + \let\tabu@arc@L \CT@arc@ + \let\tabu@drsc@L \CT@drsc@ + \ignorespaces}% + \else + \ifx \\#1#2\\\gdef\CT@arc@{}% + \else \gdef\CT@arc@{\color #1{#2}}% + \fi + \global\let\tabu@arc@G \CT@arc@ + \global\let\tabu@drsc@G \CT@drsc@ + \fi + \tabu@everyrow@egroup +}% \tabu@rule@arc@ +\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} +\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} +\def\tabu@rowc@lors #1#2#3{% + \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil + \@defaultunits \tabu@start =\number0#1\relax \@nnil + \ifnum \count@<\tw@ \count@=\tw@ \fi + \advance\tabu@start \m@ne + \ifnum \tabu@start<\z@ \tabu@start \z@ \fi + \tabu@rowcolorseries #3\in@..\in@ \@nnil +}% \tabu@rowcolors +\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% + \ifx \in@#1\relax + \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% + \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ + \fi + \else + \ifx \\#2\\\tabu@rowcolorserieserror \fi + \tabu@sanitizearg{#1}\tabu@temp + \tabu@sanitizearg{#2}\@tempa + \advance\count@ \m@ne + \iftabu@everyrow + \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% + \ifnum ##2=\c@taburow + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi + \ifnum \c@taburow<##2 \else + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}\fi}% + }\edef\x{\noexpand\tabu@rc@ {\the\count@} + {\the\tabu@start} + {\tabu@temp} + {\@tempa}% + }\x + \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% + \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% + \else % inside \noalign + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% + \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% + \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}}% + }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x + \global\let\tabu@rc@G \tabu@rc@ + \fi + \fi + \tabu@everyrow@egroup +}% \tabu@rowcolorseries +\tabuDisableCommands {\let\tabu@rc@ \@empty } +\def\tabu@rowcolorserieserror {\PackageError{tabu} + {Invalid syntax for \string\taburowcolors + \MessageBreak Please look at the documentation!}\@ehd +}% \tabu@rowcolorserieserror +\newcommand*\tabureset {% + \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ + \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% +}% \tabureset +%% Parsing the line styles ------------------------------------------ +\def\tabu@getline #1{\begingroup + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa + \let\tabu@thestyle \relax + \ifcsname tabu@linestyle@\@tempa \endcsname + \edef\tabu@thestyle{\endgroup + \def\tabu@thestyle{\expandafter\noexpand + \csname tabu@linestyle@\@tempa\endcsname}% + }\tabu@thestyle + \else \expandafter\tabu@definestyle \tabu@temp \@nil + \fi +}% \tabu@getline +\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter + \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen + \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined + \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs + \def\tabu@temp{\tabu@getparam{thick}}% + \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% + \fi + {% + \let\tabu@ \relax + \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) + \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% + \expandafter}\expandafter + \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) + \def\;{\def\:}% + \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) + \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) + \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi + \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi + \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi + \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen + \tabu@on \tabulineon \fi\fi + \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen + \tabu@off \tabulineoff \fi\fi + \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi + \in@true % + \else \in@false % + \fi + \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% + \else \edef\tabu@thick{\the\tabu@thick}% + \fi + \edef \tabu@thestyle ##1##2{\endgroup + \def\tabu@thestyle{% + \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} + {\the\tabu@on}{##1} + {\the\tabu@off}{##2}% + \else \noexpand\tabu@rulesstyle + {##1\vrule width \tabu@thick}% + {##1\leaders \hrule height \tabu@thick \hfil}% + \fi}% + }\expandafter \expandafter + \expandafter \tabu@thestyle \expandafter + \expandafter \expandafter + {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% +}% \tabu@definestyle +{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active + \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} + \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} +}% \catcode +\def\tabu@oxiii #1{% + \ifcase \ifx n#1\z@ \else + \ifx f#1\@ne\else + \tw@ \fi\fi + \expandafter\tabu@onxiii + \or \expandafter\tabu@ofxiii + \else o% + \fi#1}% +\def\tabu@onxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx \tabu@spxiii#2\@ne\else + \tw@ \fi\fi\fi + \tabu@getparam{on}#2\expandafter\@gobble + \or \expandafter\tabu@onxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}}% +\def\tabu@ofxiii #1#2{% + \ifx #2f\expandafter\tabu@offxiii + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@offxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx\tabu@spxiii#2\@ne \else + \tw@ \fi\fi\fi + \tabu@getparam{off}#2\expandafter\@gobble + \or \expandafter\tabu@offxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} +\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef + \ifx \tabu@#1\else % no more spec + \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi +}% \tabu@getcolor +\def\tabu@getc@l@r #1\tabu@ {% + \def\tabu@temp{#1}\tabu@strtrim \tabu@temp + \ifx \tabu@temp\@empty + \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists + \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r + \else \let\tabu@c@lon \tabu@c@l@r + \fi + %\else \tabu@warncolour{\tabu@temp}% + \fi%\fi + \tabu@ % next spec +}% \tabu@getc@l@r +\def\tabu@warncolour #1{\PackageWarning{tabu} + {Color #1 is not defined. Default color used}% +}% \tabu@warncolour +\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% + \ifx \tabu@leaders\tabu@leaders@G \else + \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi +}% \tabu@leadersstyle +\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined + \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% +}% \tabu@rulesstyle +%% The leaders boxes ------------------------------------------------ +\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color + {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor + {% % but the leaders boxes should have colors ! + \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% + \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% + \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thehleaders \tabu@theleaders + }% + {% + \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% + \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% + \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thevleaders \tabu@theleaders + }% + \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% + }% +}% \tabu@LEADERS +\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} +\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color + \global\setbox \tabu@leads=\@box{% + {#3\tabu@therule{#1}{#2}}% + \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi + {#3\tabu@therule{#1}{#2}}}% + \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss + {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% + \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% + {##1\tabu@therule{#1}{#2}}% + \xleaders \copy\tabu@leads \@ss + \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% + }\tabu@theleaders{#3}% +}% \tabu@l@@d@rs +%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- +\newcommand*\tabu {\tabu@longfalse + \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% + \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endtabu*\endcsname{\endtabu}% + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {tabu} +\let\tabu@tabular \tabular % +\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} +\newcommand*\longtabu {\tabu@longtrue + \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi + \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% + \LTchunksize=\@M + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% + \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {longtabu} +\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} +\def\tabu@nolongtabu{\PackageError{tabu} + {longtabu requires the longtable package}\@ehd} +%% Read the target and then : \tabular or \@array ------------------ +\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } +\def\tabu@sett@rget {\tabu@target \z@ + \ifcase \ifx \bgroup\@let@token \z@ \else + \ifx \@sptoken\@let@token \@ne \else + \if t\@let@token \tw@ \else + \if s\@let@token \thr@@\else + \z@\fi\fi\fi\fi + \expandafter\tabu@begin + \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget + \or \expandafter\tabu@to + \or \expandafter\tabu@spread + \fi +}% \tabu@sett@rget +\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} +\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} +\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } +\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } +\def\tabu@linegoalt@rget {% + \ifx \tabu@temp\LNGL@setlinegoal + \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal + \tabu@begin +}% \tabu@linegoalt@rget +\def\tabu@begin #1#{% + \iftabu@measuring \expandafter\tabu@nestedmeasure \fi + \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty + \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% + \fi + \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil +}% \tabu@begin +\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup + \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% + \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% +}% \tabu@tabu@ +\def\tabu@nestedmeasure {% + \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax + \tabu@spreadtrue + \else \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}% + \expandafter\tabu@collectbody\expandafter\tabu@quickrule + \expandafter\endgroup + \fi +}% \tabu@nestedmeasure +\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} +%% \tabu@setup \tabu@init \tabu@indent +\def\tabu@setup{\tabu@alloc@ + \ifcase \tabu@nested + \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ + \let\tabu@afterendpar \par + \fi\fi\fi + \def\tabu@aligndefault{c}\tabu@init \tabu@indent + \else % + \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth + \fi + \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined + \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% + \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... + \let\@endpbox \tabu@endpbox % idem " " " " " " + \let\@tabarray \tabu@tabarray % idem " " " " " " + \tabu@setcleanup \tabu@setreset +}% \tabu@setup +\def\tabu@init{\tabu@starttimer \tabu@measuringfalse + \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% + \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline + \let\firstline \tabu@firstline \let\lastline \tabu@lastline + \let\hline \tabu@hline \let\@xhline \tabu@xhline + \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox + \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi + \tabu@trivlist % + \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext + \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering + \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft + \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering + \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft + \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont + \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x + \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar + \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok + \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn + \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! + \let\tabu@endpbox \@endpbox % idem " " " " " " " + \let\tabu@tabarray \@tabarray % idem " " " " " " " + \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) + \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi +}% \tabu@init +\def\tabu@indent{% correction for indentation + \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget + \everypar\expandafter{% + \the\everypar\everypar\expandafter{\the\everypar}% + \setbox\z@=\lastbox + \ifdim\wd\z@>\z@ \edef\tabu@thetarget + {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi + \box\z@}% + \fi\fi +}% \tabu@indent +\def\tabu@setcleanup {% saves last global assignments + \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax + \def\tabu@aftergroupcleanup{% + \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% + \else + \def\tabu@aftergroupcleanup{% + \aftergroup\aftergroup\aftergroup\tabu@cleanup + \let\tabu@aftergroupcleanup \relax}% + \fi + \let\tabu@arc@Gsave \tabu@arc@G + \let\tabu@arc@G \tabu@arc@L % + \let\tabu@drsc@Gsave \tabu@drsc@G + \let\tabu@drsc@G \tabu@drsc@L % + \let\tabu@ls@Gsave \tabu@ls@G + \let\tabu@ls@G \tabu@ls@L % + \let\tabu@rc@Gsave \tabu@rc@G + \let\tabu@rc@G \tabu@rc@L % + \let\tabu@evr@Gsave \tabu@evr@G + \let\tabu@evr@G \tabu@evr@L % + \let\tabu@celllalign@save \tabu@celllalign + \let\tabu@cellralign@save \tabu@cellralign + \let\tabu@cellleft@save \tabu@cellleft + \let\tabu@cellright@save \tabu@cellright + \let\tabu@@celllalign@save \tabu@@celllalign + \let\tabu@@cellralign@save \tabu@@cellralign + \let\tabu@@cellleft@save \tabu@@cellleft + \let\tabu@@cellright@save \tabu@@cellright + \let\tabu@rowfontreset@save \tabu@rowfontreset + \let\tabu@@rowfontreset@save\tabu@@rowfontreset + \let\tabu@rowfontreset \@empty + \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset + \edef\c@taburow@save {\the\c@taburow}% + \edef\tabu@naturalX@save {\the\tabu@naturalX}% + \let\tabu@naturalXmin@save \tabu@naturalXmin + \let\tabu@naturalXmax@save \tabu@naturalXmax + \let\tabu@mkarstrut@save \tabu@mkarstrut + \edef\tabu@clarstrut{% + \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax + \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax + \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% +}% \tabu@setcleanup +\def\tabu@cleanup {\begingroup + \globaldefs\@ne \tabu@everyrowtrue + \let\tabu@arc@G \tabu@arc@Gsave + \let\CT@arc@ \tabu@arc@G + \let\tabu@drsc@G \tabu@drsc@Gsave + \let\CT@drsc@ \tabu@drsc@G + \let\tabu@ls@G \tabu@ls@Gsave + \let\tabu@ls@ \tabu@ls@G + \let\tabu@rc@G \tabu@rc@Gsave + \let\tabu@rc@ \tabu@rc@G + \let\CT@do@color \relax + \let\tabu@evr@G \tabu@evr@Gsave + \let\tabu@celllalign \tabu@celllalign@save + \let\tabu@cellralign \tabu@cellralign@save + \let\tabu@cellleft \tabu@cellleft@save + \let\tabu@cellright \tabu@cellright@save + \let\tabu@@celllalign \tabu@@celllalign@save + \let\tabu@@cellralign \tabu@@cellralign@save + \let\tabu@@cellleft \tabu@@cellleft@save + \let\tabu@@cellright \tabu@@cellright@save + \let\tabu@rowfontreset \tabu@rowfontreset@save + \let\tabu@@rowfontreset \tabu@@rowfontreset@save + \tabu@naturalX =\tabu@naturalX@save + \let\tabu@naturalXmax \tabu@naturalXmax@save + \let\tabu@naturalXmin \tabu@naturalXmin@save + \let\tabu@mkarstrut \tabu@mkarstrut@save + \c@taburow =\c@taburow@save + \ifcase \tabu@nested \tabu@alloc \m@ne\fi + \endgroup % + \ifcase \tabu@nested + \the\tabu@footnotes \global\tabu@footnotes{}% + \tabu@afterendpar \tabu@elapsedtime + \fi + \tabu@clarstrut + \everyrow\expandafter {\tabu@evr@G}% +}% \tabu@cleanup +\let\tabu@afterendpar \relax +\def\tabu@setreset {% + \edef\tabu@savedparams {% \relax for \tabu@message@save + \ifmmode \col@sep \the\arraycolsep + \else \col@sep \the\tabcolsep \fi \relax + \arrayrulewidth \the\arrayrulewidth \relax + \doublerulesep \the\doublerulesep \relax + \extratabsurround \the\extratabsurround \relax + \extrarowheight \the\extrarowheight \relax + \extrarowdepth \the\extrarowdepth \relax + \abovetabulinesep \the\abovetabulinesep \relax + \belowtabulinesep \the\belowtabulinesep \relax + \def\noexpand\arraystretch{\arraystretch}% + \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% + \begingroup + \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu + \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi + \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi + \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L + \expandafter \endgroup \expandafter + \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena + \let\tabu@arc@G \tabu@arc@L + \let\tabu@drsc@G \tabu@drsc@L + \let\tabu@ls@G \tabu@ls@L + \let\tabu@rc@G \tabu@rc@L + \let\tabu@evr@G \tabu@evr@L}% + \def\tabu@reset{\tabu@savedparams + \tabu@everyrowtrue \c@taburow \z@ + \let\CT@arc@ \tabu@arc@L + \let\CT@drsc@ \tabu@drsc@L + \let\tabu@ls@ \tabu@ls@L + \let\tabu@rc@ \tabu@rc@L + \global\tabu@alloc \tabu@alloc@save + \everyrow\expandafter{\tabu@evr@L}}% +}% \tabu@reset +\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} +\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} +%% The Rewriting Process ------------------------------------------- +\def\tabu@newcolumntype #1{% + \expandafter\tabu@new@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@newcolumntype +\def\tabu@new@columntype #1#2#3{% + \def#1##1#3{\NC@{##1}}% + \let#2\relax \newcommand*#2% +}% \tabu@new@columntype +\def\tabu@privatecolumntype #1{% + \expandafter\tabu@private@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\expandafter\endcsname + \csname tabu@NC@find@\string#1\expandafter\endcsname + \csname tabu@NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@privatecolumntype +\def\tabu@private@columntype#1#2#3#4{% + \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% + \tabu@new@columntype#3#4% +}% \tabu@private@columntype +\let\tabu@privatecolumns \@empty +\newcommand*\tabucolumn [1]{\expandafter \def \expandafter + \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns + \NC@do #1}}% +\let\tabu@highprioritycolumns \@empty +%% The | ``column'' : rewriting process -------------------------- +\tabu@privatecolumntype |{\tabu@rewritevline} +\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% + \expandafter \NC@find \tabu@rewritten} +\def\tabu@lines #1{% + \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi + \NC@list\expandafter{\the\NC@list \NC@do #1}% +}% \tabu@lines@ +\def\tabu@vlinearg #1{% + \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% + \else\tabu@getline {#1}% + \fi + \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% + }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% + \expandafter \tabu@keepls \tabu@thestyle \@nil +}% \tabu@vlinearg +\def\tabu@keepls #1\@nil{% + \ifcat $\@cdr #1\@nil $% + \ifx \relax#1\else + \ifx \tabu@ls@#1\else + \let#1\relax + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@savels\noexpand#1}\fi\fi\fi +}% \tabu@keepls +\def\tabu@thevline {\begingroup + \ifdefined\tabu@leaders + \setbox\@tempboxa=\vtop to\dimexpr + \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% + \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox + \box\@tempboxa + \else + \tabu@thevrule + \fi \endgroup +}% \tabu@thevline +\def\tabu@savels #1{% + \expandafter\let\csname\string#1\endcsname #1% + \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset + \tabu@resetls#1}}% +\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% +%% \multicolumn inside tabu environment ----------------------------- +\tabu@newcolumntype \tabu@rewritemulticolumn{% + \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \tabu@savedecl + \tabu@privatecolumns + \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% + \let\tabu@savels \relax + \NC@find +}% \tabu@rewritemulticolumn +\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} +\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} +\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup + \tabu@everyrowtrue + \NC@list{\NC@do \tabu@rewritemulticolumn}% + \expandafter\@gobbletwo % gobbles \multispan{#1} + \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% + {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi + {#3}}% +}% \tabu@multic@lumn +%% The X column(s): rewriting process ----------------------------- +\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} +\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } +\def\tabu@siunitx #1{\@ifnextchar \bgroup + {\tabu@rewriteX@Ss{#1}} + {\tabu@nosiunitx{#1}}} +\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% + \@defaultunits \let\tabu@temp =#2\relax\@nnil + \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi + \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% + }\expandafter\NC@find \the\@temptokena \relax + }\expandafter\NC@rewrite@S \@gobble #2\relax + \else \tabu@siunitxerror + \fi + \expandafter \NC@find \tabu@rewritten +}% \tabu@rewriteX@Ss +\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! + \MessageBreak X column can only embed siunitx S or s columns}\@ehd +}% \tabu@siunitxerror +\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% + \iftabu@measuring + \else \tabu@measuringtrue % first X column found in the preamble + \let\@halignto \relax \let\tabu@halignto \relax + \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ + \else \tabu@spreadtarget \z@ \fi + \ifdim \tabu@target=\z@ + \setlength\tabu@target \tabu@thetarget + \tabu@message{\tabu@message@defaulttarget}% + \else \tabu@message{\tabu@message@target}\fi + \fi +}% \tabu@rewriteX +\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax + \def\tabu@rewritten{l}} +\def\tabu@Xarg #1#2#3{% + \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty + \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty + \ifx\\#1\\% + \def\tabu@rewritten{p}\tabucolX \p@ % + \else + \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ + \tabu@Xparse {}#1\relax + \fi + \tabu@Xrewritten{#2}{#3}% +}% \tabu@Xarg +\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} +\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} +\def\tabu@Xtest{% + \ifcase \ifx \relax\@let@token \z@ \else + \if ,\@let@token \m@ne\else + \if p\@let@token 1\else + \if m\@let@token 2\else + \if b\@let@token 3\else + \if l\@let@token 4\else + \if c\@let@token 5\else + \if r\@let@token 6\else + \if j\@let@token 7\else + \if L\@let@token 8\else + \if C\@let@token 9\else + \if R\@let@token 10\else + \if J\@let@token 11\else + \ifx \@sptoken\@let@token 12\else + \if .\@let@token 13\else + \if -\@let@token 13\else + \ifcat $\@let@token 14\else + 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \or \tabu@Xtype {p}% + \or \tabu@Xtype {m}% + \or \tabu@Xtype {b}% + \or \tabu@Xalign \raggedright\relax + \or \tabu@Xalign \centering\relax + \or \tabu@Xalign \raggedleft\relax + \or \tabu@Xalign \tabu@justify\relax + \or \tabu@Xalign \RaggedRight\raggedright + \or \tabu@Xalign \Centering\centering + \or \tabu@Xalign \RaggedLeft\raggedleft + \or \tabu@Xalign \justifying\tabu@justify + \or \expandafter \tabu@Xparsespace + \or \expandafter \tabu@Xcoef + \or \expandafter \tabu@Xm@th + \or \tabu@Xcoef{}% + \else\expandafter \tabu@Xparse + \fi +}% \tabu@Xtest +\def\tabu@Xalign #1#2{% + \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} + {Duplicate horizontal alignment specification}\fi + \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax + \else \def\tabu@Xlcr{#2}\let#2\relax\fi + \expandafter\tabu@Xparse +}% \tabu@Xalign +\def\tabu@Xtype #1{% + \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} + {Duplicate vertical alignment specification}\fi + \def\tabu@rewritten{#1}\expandafter\tabu@Xparse +}% \tabu@Xtype +\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% + \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi +}% \tabu@Xcoef +\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ + \tabu@Xparse{}% +}% \tabu@Xc@ef +\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} +\def\tabu@Xd@sp{\let\tabu@Xmath=$% + \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% + \expandafter\tabu@Xparse + \else \expandafter\tabu@Xparse\expandafter{\expandafter}% + \fi +}% \tabu@Xd@sp +\def\tabu@Xrewritten {% + \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi + \ifdim \tabucolX<\z@ \tabu@negcoeftrue + \else\ifdim \tabucolX=\z@ \tabucolX \p@ + \fi\fi + \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% + \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% + \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% + >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% + \tabu@rewritten {\tabu@hsize \tabu@temp}% + <{##2\ifx$\tabu@Xmath$\fi}}% + }\tabu@rewritten +}% \tabu@Xrewritten +\def\tabu@hsize #1#2{% + \ifdim #2\p@<\z@ + \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else + \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi + \fi + \else #2\tabucolX + \fi +}% \tabu@hsize +%% \usetabu and \preamble: rewriting process --------------------- +\tabu@privatecolumntype \usetabu [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\let\tabu@rewriteX \tabu@rewriteXrestore + \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% + \fi +}% \NC@rewrite@\usetabu +\tabu@privatecolumntype \preamble [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% + \fi +}% \NC@rewrite@\preamble +%% Controlling the rewriting process ------------------------------- +\tabu@newcolumntype \tabu@rewritefirst{% + \iftabu@long \aftergroup \tabu@longpream % + \else \aftergroup \tabu@pream + \fi + \let\tabu@ \relax \let\tabu@hsize \relax + \let\tabu@Xcoefs \@empty \let\tabu@savels \relax + \tabu@Xcol \z@ \tabu@cnt \tw@ + \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse + \global\setbox\@arstrutbox \box\@arstrutbox + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \NC@list\expandafter{\the\NC@list \NC@do X}% + \iftabu@siunitx % + \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi + \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% + \expandafter\def\expandafter\tabu@NC@list\expandafter{% + \the\expandafter\NC@list \tabu@NC@list}% % * | X S + \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu + \expandafter \NC@do \expandafter\preamble + \the\NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \tabu@savedecl + \tabu@privatecolumns + \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle +}% NC@rewrite@\tabu@rewritefirst +\tabu@newcolumntype \tabu@rewritemiddle{% + \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast +}% \NC@rewrite@\tabu@rewritemiddle +\tabu@newcolumntype \tabu@rewritelast{% + \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne + \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \else \let\tabu@prev\tabu@temp + \fi + \ifcase \tabu@cnt \expandafter\tabu@endrewrite + \else \expandafter\NC@find \expandafter\tabu@rewritemiddle + \fi +}% \NC@rewrite@\tabu@rewritelast +%% Choosing the strategy -------------------------------------------- +\def\tabu@endrewrite {% + \let\tabu@temp \NC@find + \ifx \@arrayright\relax \let\@arrayright \@empty \fi + \count@=% + \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print + \iftabu@measuring + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@target \csname tabu@\the\tabu@nested.T\endcsname + \tabucolX \csname tabu@\the\tabu@nested.X\endcsname + \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% + \fi + \else\iftabu@measuring 4 % X columns + \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer + \tabu@target \the\tabu@target + \tabu@spreadtarget \the\tabu@spreadtarget}% + \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% + \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% + \let\tabu@Xcoefs \relax + \else\ifcase\tabu@nested \thr@@ % outer, no X + \global\let\tabu@afterendpar \relax + \else \@ne % inner, no X, outer in mode 1 or 2 + \fi + \ifdefined\tabu@usetabu + \else \ifdim\tabu@target=\z@ + \else \let\tabu@temp \tabu@extracolsep + \fi\fi + \fi + \fi + \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% + \tabu@temp +}% \tabu@endrewrite +\def\tabu@extracolsep{\@defaultunits \expandafter\let + \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil + \ifx \tabu@temp\@sptoken + \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep + \else + \edef\tabu@temp{\noexpand\NC@find + \if |\noexpand\tabu@temp @% + \else\if !\noexpand\tabu@temp @% + \else !% + \fi\fi + {\noexpand\extracolsep\noexpand\@flushglue}}% + \fi + \tabu@temp +}% \tabu@extrac@lsep +%% Implementing the strategy ---------------------------------------- +\long\def\tabu@pream #1\@preamble {% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\tabu@aftergroupcleanup}% + \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody + \@preamble}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@pream +\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@longpream +\def\tabu@select {% + \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi + \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi + \ifcase \count@ + \global\let\tabu@elapsedtime \relax + \tabu@seteverycr + \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) + \or % exit in vertical measure + struts per cell because no X and outer in mode 3 + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \tabu@seteverycr + \expandafter \tabuthepreamble + \or % exit without measure because no X and outer in mode 4 + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@seteverycr + \expandafter \tabuthepreamble + \else % needs trials + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@savecounters + \expandafter \tabu@setstrategy + \fi +}% \tabu@select +\def\tabu@@ {\gdef\tabu@mkpreambuffer} +%% Protections to set up before trials ------------------------------ +\def\tabu@setstrategy {\begingroup % + \tabu@trialh@@k \tabu@cnt \z@ % number of trials + \hbadness \@M \let\hbadness \@tempcnta + \hfuzz \maxdimen \let\hfuzz \@tempdima + \let\write \tabu@nowrite\let\GenericError \tabu@GenericError + \let\savetabu \@gobble \let\tabudefaulttarget \linewidth + \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote + \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor + \let\tabu@aftergroupcleanup \relax % only after the last trial + \tabu@mkpreambuffer + \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init + \def\tabu@lasttry{\m@ne\p@}\fi + \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % + \tabu@collectbody \tabu@strategy % +}% \tabu@setstrategy +\def\tabu@savecounters{% + \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% + \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax +}% \tabu@savecounters +\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) + \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs + \ifdim \dimen@>\z@ + \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \fi +}% \tabucolX@init +\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum + \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ + \else -#2\p@ \tabu@negcoeftrue + \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \tabu@wddef{#1}{0pt}% + \fi +}% \tabu@Xinit +%% Collecting the environment body ---------------------------------- +\long\def\tabu@collectbody #1#2\end #3{% + \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% + \ifx \tabu@stack\@empty + \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% + \def\tabu@end@envir{\end{#3}}% + \iftabuscantokens + \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% + \else \def\tabu@endenvir {\let\endarray \@empty + \end{#3}\tabu@gobbleX}% + \fi + \else \def\tabu@endenvir {\end{#3}}\fi}% + \let\tabu@collectbody \tabu@endofcollect + \else\def\tabu@temp{#3}% + \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% + \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% + \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% + \else \toks@\expandafter{\the\toks@ #2\end{#3}}% + \fi\fi\fi + \fi + \tabu@collectbody{#1}% +}% \tabu@collectbody +\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% +\def\tabu@endofcollect #1{\ifnum0=`{}\fi + \expandafter\endgroup \the\toks@ #1% +}% \tabu@endofcollect +%% The trials: switching between strategies ------------------------- +\def\tabu@strategy {\relax % stops \count@ assignment ! + \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) + \expandafter \tabu@endoftrials + \or % case 1 = exit in vertical measure (outer in mode 3) + \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% + \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% + \expandafter \tabu@endoftrials + \or % case 2 = exit with a rule replacing the table (outer in mode 4) + \expandafter \tabu@quickend + \or % case 3 = outer is in mode 3 because of no X + \begingroup + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \expandafter \tabu@measuring + \else % case 4 = horizontal measure + \begingroup + \global\let\tabu@elapsedtime \tabu@message@etime + \long\def\multicolumn##1##2##3{\multispan{##1}}% + \let\tabu@startpboxORI \@startpbox + \iftabu@spread + \def\tabu@naturalXmax {\z@}% + \let\tabu@naturalXmin \tabu@naturalXmax + \tabu@evr{\global\tabu@naturalX \z@}% + \let\@startpbox \tabu@startpboxmeasure + \else\iftabu@negcoef + \let\@startpbox \tabu@startpboxmeasure + \else \let\@startpbox \tabu@startpboxquick + \fi\fi + \expandafter \tabu@measuring + \fi +}% \tabu@strategy +\def\tabu@measuring{\expandafter \tabu@trial \expandafter + \count@ \the\count@ \tabu@endtrial +}% \tabu@measuring +\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} +\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \csname tabu@adl@endtrial\endcsname + \endarray}$\egroup % got \tabu@box +}% \tabu@shorttrial +\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \tabuendlongtrial}\egroup % got \tabu@box +}% \tabu@longtrial +\def\tabuendlongtrial{% no @ allowed for \scantokens + \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne + \LT@get@widths +}% \tabuendlongtrial +\def\tabu@adl@endtrial{% + \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! +\def\tabu@seteverycr {\tabu@reset + \everycr \expandafter{\the\everycr \tabu@everycr}% + \let\everycr \tabu@noeverycr % +}% \tabu@seteverycr +\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} +\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} +\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} +\def\tabu@endoftrials {% + \iftabuscantokens \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\expandafter \tabu@closetrialsgroup \expandafter + \tabu@rescan \expandafter{% + \expandafter\tabuthepreamble + \the\expandafter\tabu@thebody + \iftabu@long \else \endarray \fi}} + {\expandafter\tabu@closetrialsgroup \expandafter + \tabuthepreamble + \the\tabu@thebody}% + \tabu@endenvir % Finish ! +}% \tabu@endoftrials +\def\tabu@closetrialsgroup {% + \toks@\expandafter{\tabu@endenvir}% + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target + \tabu@cnt \the\tabu@cnt + \def\noexpand\tabu@endenvir{\the\toks@}% + %Quid de \@halignto = \tabu@halignto ?? + }% \tabu@bufferX + \tabu@bufferX + \ifcase\tabu@nested % print out (outer in mode 0) + \global\tabu@cnt \tabu@cnt + \tabu@evr{\tabu@verticaldynamicadjustment}% + \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty + \let\@finalstrut \tabu@finalstrut + \else % vertical measure of nested tabu + \tabu@evr{\tabu@verticalinit}% + \tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \fi + \tabu@clckpt \let\@halignto \tabu@halignto + \let\@halignto \@empty + \tabu@seteverycr + \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ + \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) + \fi\fi +}% \tabu@closetrialsgroup +\def\tabu@quickend {\expandafter \endgroup \expandafter + \tabu@target \the\tabu@target \tabu@quickrule + \let\endarray \relax \tabu@endenvir +}% \tabu@quickend +\def\tabu@endtrial {\relax % stops \count@ assignment ! + \ifcase \count@ \tabu@err % case 0 = impossible here + \or \tabu@err % case 1 = impossible here + \or \tabu@err % case 2 = impossible here + \or % case 3 = outer goes into mode 0 + \def\tabu@bufferX{\endgroup}\count@ \z@ + \else % case 4 = outer goes into mode 3 + \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) + \else \tabu@arith % or 2 (outer in mode 4) + \fi + \count@=% + \ifcase\tabu@nested \thr@@ % outer goes into mode 3 + \else\iftabu@measuring \tw@ % outer is in mode 4 + \else \@ne % outer is in mode 3 + \fi\fi + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% + \fi + \expandafter \tabu@bufferX \expandafter + \count@ \the\count@ \tabu@strategy +}% \tabu@endtrial +\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} +%% The algorithms: compute the widths / stop or go on --------------- +\def\tabu@arithnegcoef {% + \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs +}% \tabu@arithnegcoef +\def\tabu@arith@negcoef #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition + \advance\@tempdima #2\tabucolX + \else + \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated + \advance\dimen@ -#2\p@ + \advance\@tempdima -#2\tabucolX + \else + \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised + \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised + \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) + \fi + \fi + \fi +}% \tabu@arith@negcoef +\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ + \ifdim \@tempdima=\z@ + \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% + \else + \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} + *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% + \fi +}% \tabu@givespace +\def\tabu@arith {\advance\tabu@cnt \@ne + \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi + \tabu@arithnegcoef + \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % + \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax + \tabu@message{\tabu@message@arith}% + \ifdim \tabu@DELTA <\tabu@hfuzz + \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? + \let\tabu@ \tabu@givespace \tabu@Xcoefs + \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message + \else % already converged: nothing to do but nearly impossible... + \fi + \tabucolX \maxdimen + \tabu@measuringfalse + \else % need for narrower X columns + \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax + \tabu@measuringtrue + \@whilesw \iftabu@measuring\fi {% + \advance\tabu@cnt \@ne + \tabu@arithnegcoef + \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here + \tabu@message{\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else + \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ + \fi}% + \ifdim -\tabu@DELTA<\tabu@hfuzz + \advance\@tempdima \@tempdimb % for message + \tabu@measuringfalse + \else + \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax + \fi + }% + \fi + \tabu@message{\tabu@message@reached}% + \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% +}% \tabu@arith +\def\tabu@spreadarith {% + \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs + \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% + \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax + \iftabu@measuring + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% + \else + \tabu@message{\tabu@message@spreadarith}% + \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target + \tabu@message{(tabu) spread + \ifdim \@tempdimc>\tabu@target useless here: default target used% + \else too large: reduced to fit default target\fi.}% + \else + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% + \fi + \begingroup \let\tabu@wddef \@gobbletwo + \@tempdimb \@tempdima + \tabucolX@init + \tabu@arithnegcoef + \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax + \expandafter\endgroup \expandafter\tabucolX \the\tabucolX + \tabu@arith + \fi +}% \tabu@spreadarith +\def\tabu@spread@arith #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ + \else \advance\@tempdima \tabu@wd{#1}\relax + \fi +}% \tabu@spread@arith +%% Reporting in the .log file --------------------------------------- +\def\tabu@message@defaulttarget{% + \ifnum\tabu@nested=\z@^^J(tabu) Default target: + \ifx\tabudefaulttarget\linewidth \string\linewidth + \ifdim \tabu@thetarget=\linewidth \else + -\the\dimexpr\linewidth-\tabu@thetarget\fi = + \else\ifx\tabudefaulttarget\linegoal\string\linegoal= + \fi\fi + \else (tabu) Default target (nested): \fi + \the\tabu@target \on@line + \ifnum\tabu@nested=\z@ , page \the\c@page\fi} +\def\tabu@message@target {^^J(tabu) Target specified: + \the\tabu@target \on@line, page \the\c@page} +\def\tabu@message@arith {\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else + \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ + \fi +}% \tabu@message@arith +\def\tabu@message@spreadarith {\tabu@spreadheader + \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ + \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ + \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ + \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target + \else \@tempdimc+\tabu@spreadtarget \fi + {}{}{}{}{}\@@} +\def\tabu@message@negcoef #1#2{ + \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: + \space width = \tabu@wd {#1} + \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname + \ifdim -\tabu@pt#2\tabucolX<\tabu@target + < \number-\rem@pt#2 X + = \the\dimexpr -\tabu@pt#2\tabucolX \relax + \else + <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} +\def\tabu@message@reached{\tabu@header + ******* Reached Target: + hfuzz = \tabu@hfuzz\on@line\space *******} +\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% + \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: + \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec + \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) + -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax + *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space + cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} +\def\tabu@message@verticalsp {% + \ifdim \@tempdima>\tabu@ht + \ifdim \@tempdimb>\tabu@dp + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% + \else + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% + \fi + \else\ifdim \@tempdimb>\tabu@dp + \tabu@spaces\tabu@spaces\tabu@spaces + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi + \fi +}% \tabu@message@verticalsp +\edef\tabu@spaces{\@spaces} +\def\tabu@strippt{\expandafter\tabu@pt\the} +{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} +\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} +\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} +\def\do #1{% + \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% + \ifnum##1<10 #1 #1\else + \ifnum##1<100 #1 \else + \ifnum##1<\@m #1\fi\fi\fi + ##1.##2##3##4##5##6##7##8#1}% + \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% + \def\tabu@titles{\ifnum \tabu@nested=\z@ + (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target + #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% + \def\tabu@spreadheader{% + (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. + #1 New Target^^J% + (tabu) sprd} + \def\tabu@message@save {\begingroup + \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} + \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt + \dimexpr####1\p@{ }{ }}}% + \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% + \let\CT@arc@ \relax \let\@preamble \@gobble + \let\tabu@savedpream \@firstofone + \let\tabu@savedparams \@firstofone + \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% + \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% + \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% + \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% + \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% + \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% + \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% + \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% + \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% + \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% + \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% + \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% + \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% + \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% + \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% + \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% + \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% + \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% + \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% + \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% + \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo + \tabu@message{% + (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% + \tabu@usetabu \@nil^^J}% + \endgroup} +}\do{ } +%% Measuring the natural width (varwidth) - store the results ------- +\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop + \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% + \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? + \iftabu@spread \else % if spread -> measure + \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure + \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) + \tabu@measuringtrue % for the quick option... + \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi + \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target + \tabu@target=\tabu@temp\tabucolX \fi\fi + \setbox\tabu@box \hbox \bgroup + \begin{varwidth}\tabu@target + \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... + \narrowragged \arraybackslash \parfillskip \@flushglue + \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi + \bgroup \aftergroup\tabu@endpboxmeasure + \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi + \else \expandafter\@gobble + \tabu@startpboxquick{#1}% \@gobble \bgroup + \fi +}% \tabu@startpboxmeasure +\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty + \bgroup\color@begingroup} +\def\tabu@endpboxmeasure {% + \@finalstrut \@arstrutbox + \end{varwidth}\egroup % + \ifdim \tabu@temp\p@ <\z@ % neg coef + \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box + \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% + \tabu@debug{\tabu@message@endpboxmeasure}% + \fi + \else % spread coef>0 + \global\advance \tabu@naturalX \wd\tabu@box + \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax + \ifdim \tabu@naturalXmax <\tabu@naturalX + \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi + \ifdim \tabu@naturalXmin <\@tempdima + \xdef\tabu@naturalXmin {\the\@tempdima}\fi + \fi + \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target +}% \tabu@endpboxmeasure +\def\tabu@wddef #1{\expandafter\xdef + \csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd + \the\tabu@Xcol. X[\tabu@temp]: + target = \the\tabucolX \space + \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol + =\tabu@wd\tabu@Xcol +}% \tabu@message@endpboxmeasure +\def\tabu@startpboxquick {\bgroup + \let\@startpbox \tabu@startpboxORI % restore immediately + \let\tabu \tabu@quick % \begin is expanded before... + \expandafter\@gobble \@startpbox % gobbles \bgroup +}% \tabu@startpboxquick +\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick +}% \tabu@quick +\def\tabu@endquick {% + \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else + \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax + \endgroup + \else \let\endtabu \relax + \tabu@end@envir + \fi +}% \tabu@quick +\def\tabu@endtabu {\end{tabu}} +\def\tabu@endtabus {\end{tabu*}} +%% Measuring the heights and depths - store the results ------------- +\def\tabu@verticalmeasure{\everypar{}% + \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group + \setbox\tabu@box =\hbox\bgroup + \let\tabu@verticalspacing \tabu@verticalsp@lcr + \d@llarbegin % after \hbox ... + \else + \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop + \else\ifnum\currentgrouptype=12\vcenter + \else\vbox\fi\fi}% + \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup + \let\tabu@verticalspacing \tabu@verticalsp@pmb + \fi +}% \tabu@verticalmeasure +\def\tabu@verticalsp@lcr{% + \d@llarend \egroup % + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \noindent\vrule height\@tempdima depth\@tempdimb +}% \tabu@verticalsp@lcr +\def\tabu@verticalsp@pmb{% inserts struts as needed + \par \expandafter\egroup + \expandafter$\expandafter + \egroup \expandafter + \@tempdimc \the\prevdepth + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \let\@finalstrut \@gobble + \hrule height\@tempdima depth\@tempdimb width\hsize +%% \box\tabu@box +}% \tabu@verticalsp@pmb + +\def\tabu@verticalinit{% + \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! + \advance\c@taburow \@ne + \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% + \advance\c@taburow \m@ne +}% \tabu@verticalinit +\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@verticaldynamicadjustment {% + \advance\c@taburow \@ne + \extrarowheight \dimexpr\tabu@ht - \ht\strutbox + \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox + \let\arraystretch \@empty + \advance\c@taburow \m@ne +}% \tabu@verticaldynamicadjustment +\def\tabuphantomline{\crcr \noalign{% + {\globaldefs \@ne + \setbox\@arstrutbox \box\voidb@x + \let\tabu@@celllalign \tabu@celllalign + \let\tabu@@cellralign \tabu@cellralign + \let\tabu@@cellleft \tabu@cellleft + \let\tabu@@cellright \tabu@cellright + \let\tabu@@thevline \tabu@thevline + \let\tabu@celllalign \@empty + \let\tabu@cellralign \@empty + \let\tabu@cellright \@empty + \let\tabu@cellleft \@empty + \let\tabu@thevline \relax}% + \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% + \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr + \noalign{\tabu@rearstrut + {\globaldefs\@ne + \let\tabu@celllalign \tabu@@celllalign + \let\tabu@cellralign \tabu@@cellralign + \let\tabu@cellleft \tabu@@cellleft + \let\tabu@cellright \tabu@@cellright + \let\tabu@thevline \tabu@@thevline}}}% + \expandafter}\the\toks@ +}% \tabuphantomline +%% \firsthline and \lasthline corrections --------------------------- +\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} +\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} +\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} +\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} +\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) + \noalign{\ifnum0=`}\fi + {\CT@arc@\hrule height\arrayrulewidth}% + \futurelet \tabu@temp \tabu@xhline +}% \tabu@hline +\def\tabu@xhline{% + \ifx \tabu@temp \hline + {\ifx \CT@drsc@\relax \vskip + \else\ifx \CT@drsc@\@empty \vskip + \else \CT@drsc@\hrule height + \fi\fi + \doublerulesep}% + \fi + \ifnum0=`{\fi}% +}% \tabu@xhline +\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ + \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% + \tabu@hlineAZsurround +}% \tabu@hlineAZ +\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% + \extratabsurround #1\let\tabucline \tabucline@scan + \let\hline \tabu@hlinescan \let\firsthline \hline + \let\cline \tabu@clinescan \let\lasthline \hline + \expandafter \futurelet \expandafter \tabu@temp + \expandafter \tabu@nexthlineAZ \tabu@temp +}% \tabu@hlineAZsurround +\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} +\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} +\def\tabucline@scan{\@testopt \tabucline@sc@n {}} +\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} +\def\tabu@nexthlineAZ{% + \ifx \tabu@temp\hline \else + \ifx \tabu@temp\cline \else + \ifx \tabu@temp\tabucline \else + \tabu@hlinecorrection + \fi\fi\fi +}% \tabu@nexthlineAZ +\def\tabu@xhlineAZ #1{% + \toks@\expandafter{\the\toks@ #1}% + \@tempdimc \tabu@thick % The last line width + \ifcase\count@ \@tempdimb \tabu@thick % The first line width + \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax + \fi + \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ +}% \tabu@xhlineAZ +\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 + \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ + \edef\firsthline{% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + height \the\dimexpr\@tempdima+\extratabsurround + depth \dp\@arstrutbox + width \tabustrutrule}\hss}\cr + \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb + +\dp\@arstrutbox \relax}% + \the\toks@ + }\ifnum0=`{\fi + \expandafter}\firsthline % we are then ! +}% \tabu@firsthlinecorrection +\def\tabu@lasthlinecorrection{% + \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc + \edef\lasthline{% + \the\toks@ + \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ + +\extratabsurround-\@tempdimc + height \z@ + width \tabustrutrule}\hss}\cr + }\ifnum0=`{\fi + \expandafter}\lasthline % we are then ! +}% \tabu@lasthlinecorrection +\def\tabu@LT@@hline{% + \ifx\LT@next\hline + \global\let\LT@next \@gobble + \ifx \CT@drsc@\relax + \gdef\CT@LT@sep{% + \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% + \else + \gdef\CT@LT@sep{% + \multispan\LT@cols{% + \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% + \fi + \else + \global\let\LT@next\empty + \gdef\CT@LT@sep{% + \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \CT@LT@sep + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \noalign{\penalty\@M}% + \LT@next +}% \tabu@LT@@hline +%% Horizontal lines : \tabucline ------------------------------------ +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} +\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% + \ifnum \tabu@stop<\z@ \toks@{}% + \else \tabu@clinearg{#1}\tabu@thestyle + \edef\tabucline{\toks@{% + \ifnum \tabu@start>\z@ \omit + \tabu@multispan\tabu@start {\span\omit}&\fi + \omit \tabu@multispan\tabu@stop {\span\omit}% + \tabu@thehline\cr + }}\tabucline + \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% + \fi + \futurelet \tabu@temp \tabu@xcline +}% \tabu@cline +\def\tabu@clinearg #1{% + \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ + \else \@defaultunits \expandafter\let\expandafter\@tempa + \romannumeral-`\0#1\relax \@nnil + \ifx \hbox\@tempa \tabu@clinebox{#1}% + \else\ifx \box\@tempa \tabu@clinebox{#1}% + \else\ifx \vbox\@tempa \tabu@clinebox{#1}% + \else\ifx \vtop\@tempa \tabu@clinebox{#1}% + \else\ifx \copy\@tempa \tabu@clinebox{#1}% + \else\ifx \leaders\@tempa \tabu@clineleads{#1}% + \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% + \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% + \else\tabu@getline {#1}% + \fi\fi\fi\fi\fi\fi\fi\fi + \fi +}% \tabu@clinearg +\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} +\def\tabu@clineleads #1{% + \let\tabu@thestyle \relax \let\tabu@leaders \@undefined + \gdef\tabu@thehrule{#1}} +\def\tabu@thehline{\begingroup + \ifdefined\tabu@leaders + \noexpand\tabu@thehleaders + \else \noexpand\tabu@thehrule + \fi \endgroup +}% \tabu@thehline +\def\tabu@xcline{% + \ifx \tabu@temp\tabucline + \toks@\expandafter{\the\toks@ \noalign + {\ifx\CT@drsc@\relax \vskip + \else \CT@drsc@\hrule height + \fi + \doublerulesep}}% + \fi + \tabu@docline +}% \tabu@xcline +\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} +\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% + \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} +\def\tabu@multispan #1#2{% + \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan + \else \expandafter\@gobbletwo + \fi {#1-1}{#2}% +}% \tabu@multispan +\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} +\def\tabu@start@stop #1-#2\@nnil{% + \@defaultunits \tabu@start\number 0#1\relax \@nnil + \@defaultunits \tabu@stop \number 0#2\relax \@nnil + \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne + \else\ifnum \tabu@stop=\z@ \tabu@nbcols + \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols + \else \tabu@stop + \fi\fi\fi + \advance\tabu@start \m@ne + \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi +}% \tabu@start@stop +%% Numbers: siunitx S columns (and \tabudecimal) ------------------- +\def\tabu@tabudecimal #1{% + \def\tabu@decimal{#1}\@temptokena{}% + \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces + \tabu@scandecimal +}% \tabu@tabudecimal +\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} +\def\tabu@skipdecimal#1{#1\tabu@scandecimal} +\def\tabu@getdecimal@ignorespaces{% + \ifcase 0\ifx\tabu@temp\ignorespaces\else + \ifx\tabu@temp\@sptoken1\else + 2\fi\fi\relax + \let\tabu@getdecimal@ \tabu@getdecimal + \expandafter\tabu@skipdecimal + \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal + \else \expandafter\tabu@skipdecimal + \fi +}% \tabu@getdecimal@ignorespaces +\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% + \tabu@scandecimal} +\def\do#1{% + \def\tabu@get@decimalspace#1{% + \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% +}\do{ } +\let\tabu@@tabudecimal \tabu@tabudecimal +\def\tabu@getdecimal{% + \ifcase 0\ifx 0\tabu@temp\else + \ifx 1\tabu@temp\else + \ifx 2\tabu@temp\else + \ifx 3\tabu@temp\else + \ifx 4\tabu@temp\else + \ifx 5\tabu@temp\else + \ifx 6\tabu@temp\else + \ifx 7\tabu@temp\else + \ifx 8\tabu@temp\else + \ifx 9\tabu@temp\else + \ifx .\tabu@temp\else + \ifx ,\tabu@temp\else + \ifx -\tabu@temp\else + \ifx +\tabu@temp\else + \ifx e\tabu@temp\else + \ifx E\tabu@temp\else + \ifx\tabu@cellleft\tabu@temp1\else + \ifx\ignorespaces\tabu@temp1\else + \ifx\@sptoken\tabu@temp2\else + 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \expandafter\tabu@get@decimal + \or \expandafter\tabu@skipdecimal + \or \expandafter\tabu@get@decimalspace + \else\expandafter\tabu@printdecimal + \fi +}% \tabu@getdecimal +\def\tabu@printdecimal{% + \edef\tabu@temp{\the\@temptokena}% + \ifx\tabu@temp\@empty\else + \ifx\tabu@temp\space\else + \expandafter\tabu@decimal\expandafter{\the\@temptokena}% + \fi\fi +}% \tabu@printdecimal +%% Verbatim inside X columns ---------------------------------------- +\def\tabu@verbatim{% + \let\verb \tabu@verb + \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd +}% \tabu@verbatim +\let\tabu@ltx@verb \verb +\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} +\def\tabu@fancyvrb {% + \def\tabu@FV@DefineCheckEnd ##1{% + \def\tabu@FV@DefineCheckEnd{% + ##1% + \let\FV@CheckEnd \tabu@FV@CheckEnd + \let\FV@@CheckEnd \tabu@FV@@CheckEnd + \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd + \edef\FV@EndScanning{% + \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% + \global\let\noexpand\FV@EnvironName\relax + \noexpand\next}% + \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% + }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} +}% \tabu@fancyvrb +\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} +\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} +\begingroup +\catcode`\[1 \catcode`\]2 +\@makeother\{ \@makeother\} + \edef\x[\endgroup + \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% + ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} +\def\tabu@FV@ListProcessLine #1{% + \hbox {%to \hsize{% + \kern\leftmargin + \hbox {%to \linewidth{% + \FV@LeftListNumber + \FV@LeftListFrame + \FancyVerbFormatLine{#1}\hss +%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) +%% \FV@RightListFrame}% + \FV@RightListFrame + \FV@RightListNumber}% +%% DG/SR modification end + \hss}} +%% \savetabu -------------------------------------------------------- +\newcommand*\savetabu[1]{\noalign{% + \tabu@sanitizearg{#1}\tabu@temp + \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else + \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% + \ifdefined\tabu@restored \expandafter\let + \csname tabu@saved@\tabu@temp \endcsname \tabu@restored + \else {\tabu@save}% + \fi + \fi}% +}% \savetabu +\def\tabu@save {% + \toks0\expandafter{\tabu@saved@}% + \iftabu@negcoef + \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% + \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi + \toks1\expandafter{\tabu@savedpream}% + \toks2\expandafter{\tabu@savedpreamble}% + \let\@preamble \relax + \let\tabu@savedpream \relax \let\tabu@savedparams \relax + \edef\tabu@preamble{% + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \edef\tabu@usetabu{% + \def\@preamble {\noexpand\the\toks2}% + \tabu@target \the\tabu@target \relax + \tabucolX \the\tabucolX \relax + \tabu@nbcols \the\tabu@nbcols \relax + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \let\tabu@aligndefault \relax \let\@sharp \relax + \edef\@tempa{\noexpand\tabu@s@ved + {\tabu@usetabu} + {\tabu@preamble} + {\the\toks1}}\@tempa + \tabu@message@save +}% \tabu@save +\long\def\tabu@s@ved #1#2#3{% + \def\tabu@usetabu{#1}% + \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% + \ifodd ##1% \usetabu + \tabu@measuringfalse \tabu@spreadfalse % Just in case... + \gdef\tabu@usetabu {% + \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi + \global\let\tabu@usetabu \@undefined + \def\@halignto {to\tabu@target}% + #1% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \else % \preamble + \gdef\tabu@preamble {% + \global\let\tabu@preamble \@undefined + #2% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \fi + #3}% +}% \tabu@s@ved +\def\tabu@aligndefault@text {\tabu@aligndefault}% +\def\tabu@warn@usetabu {\PackageWarning{tabu} + {Specifying a target with \string\usetabu\space is useless + \MessageBreak The target cannot be changed!}} +\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} +\def\tabu@savewarn#1#2{\PackageInfo{tabu} + {User-name `#1' already used for \string\savetabu + \MessageBreak #2}}% +\def\tabu@saveerr#1{\PackageError{tabu} + {User-name `#1' is unknown for \string\usetabu + \MessageBreak I cannot restore an unknown preamble!}\@ehd} +%% \rowfont --------------------------------------------------------- +\newskip \tabu@cellskip +\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi + {\ifnum0=`}\fi \tabu@row@font} +\newcommand*\tabu@row@font[2][]{% + \ifnum7=\currentgrouptype + \global\let\tabu@@cellleft \tabu@cellleft + \global\let\tabu@@cellright \tabu@cellright + \global\let\tabu@@celllalign \tabu@celllalign + \global\let\tabu@@cellralign \tabu@cellralign + \global\let\tabu@@rowfontreset\tabu@rowfontreset + \fi + \global\let\tabu@rowfontreset \tabu@rowfont@reset + \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% + \ifcsname tabu@cell@#1\endcsname % row alignment + \csname tabu@cell@#1\endcsname \fi + \ifnum0=`{\fi}% end of group / noalign group +}% \rowfont +\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% +\def\tabu@rowfont@reset{% + \global\let\tabu@rowfontreset \tabu@@rowfontreset + \global\let\tabu@cellleft \tabu@@cellleft + \global\let\tabu@cellright \tabu@@cellright + \global\let\tabu@cellfont \@empty + \global\let\tabu@celllalign \tabu@@celllalign + \global\let\tabu@cellralign \tabu@@cellralign +}% \tabu@@rowfontreset +\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl +%% \tabu@prepnext@tok ----------------------------------------------- +\newif \iftabu@cellright +\def\tabu@prepnext@tok{% + \ifnum \count@<\z@ % + \@tempcnta \@M % + \tabu@nbcols\z@ + \let\tabu@fornoopORI \@fornoop + \tabu@cellrightfalse + \else + \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left + \advance \tabu@nbcols \@ne + \iftabu@cellright % before-previous token is right and is finished + \tabu@cellrightfalse % + \tabu@righttok + \fi + \tabu@lefttok + \or % (case 1) previous token is right + \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop + \else % special column: do not change the token + \iftabu@cellright % before-previous token is right + \tabu@cellrightfalse + \tabu@righttok + \fi + \fi % \ifcase + \fi + \tabu@prepnext@tokORI +}% \tabu@prepnext@tok +\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} +\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% + \ifx \in@#2\else + \let\@fornoop \tabu@fornoopORI + \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% + \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% + \expandafter\prepnext@tok + \fi +}% \tabu@lastnoop +\def\tabu@righttok{% + \advance \count@ \m@ne + \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% + \advance \count@ \@ne +}% \tabu@righttok +\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign + \the\toks\count@ \tabu@cellleft}% after because of $ +}% \tabu@lefttok +%% Neutralisation of glues ------------------------------------------ +\let\tabu@cellleft \@empty +\let\tabu@cellright \@empty +\tabu@celllalign@def{\tabu@cellleft}% +\let\tabu@cellralign \@empty +\def\tabu@cell@align #1#2#3{% + \let\tabu@maybesiunitx \toks@ \tabu@celllalign + \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% + \toks@\expandafter{\tabu@cellralign #2}% + \xdef\tabu@cellralign{\the\toks@}% + \toks@\expandafter{\tabu@cellleft #3}% + \xdef\tabu@cellleft{\the\toks@}% +}% \tabu@cell@align +\def\tabu@cell@l{% force alignment to left + \tabu@cell@align + {\tabu@removehfil \raggedright \tabu@cellleft}% left + {\tabu@flush1\tabu@ignorehfil}% right + \raggedright +}% \tabu@cell@l +\def\tabu@cell@c{% force alignment to center + \tabu@cell@align + {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \centering +}% \tabu@cell@c +\def\tabu@cell@r{% force alignment to right + \tabu@cell@align + {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} + \tabu@ignorehfil + \raggedleft +}% \tabu@cell@r +\def\tabu@cell@j{% force justification (for p, m, b columns) + \tabu@cell@align + {\tabu@justify\tabu@cellleft} + {} + \tabu@justify +}% \tabu@cell@j +\def\tabu@justify{% + \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip + \parfillskip\@flushglue +}% \tabu@justify +%% ragged2e settings +\def\tabu@cell@L{% force alignment to left (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedRight \tabu@cellleft} + {\tabu@flush 1\tabu@ignorehfil} + \RaggedRight +}% \tabu@cell@L +\def\tabu@cell@C{% force alignment to center (ragged2e) + \tabu@cell@align + {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \Centering +}% \tabu@cell@C +\def\tabu@cell@R{% force alignment to right (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} + \tabu@ignorehfil + \RaggedLeft +}% \tabu@cell@R +\def\tabu@cell@J{% force justification (ragged2e) + \tabu@cell@align + {\justifying \tabu@cellleft} + {} + \justifying +}% \tabu@cell@J +\def\tabu@flush#1{% + \iftabu@colortbl % colortbl uses \hfill rather than \hfil + \hskip \ifnum13<\currentgrouptype \stretch{#1}% + \else \ifdim#1pt<\p@ \tabu@cellskip + \else \stretch{#1} + \fi\fi \relax + \else % array.sty + \ifnum 13<\currentgrouptype + \hfil \hskip1sp \relax \fi + \fi +}% \tabu@flush +\let\tabu@hfil \hfil +\let\tabu@hfill \hfill +\let\tabu@hskip \hskip +\def\tabu@removehfil{% + \iftabu@colortbl + \unkern \tabu@cellskip =\lastskip + \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip + \else \tabu@cellskip \z@skip + \fi + \else + \ifdim\lastskip=1sp\unskip\fi + \ifnum\gluestretchorder\lastskip =\@ne + \hfilneg % \hfilneg for array.sty but not for colortbl... + \fi + \fi +}% \tabu@removehfil +\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} +\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil + \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group +}% \tabu@nohfil +\def\tabu@colortblalignments {% if colortbl + \def\tabu@nohfil{% + \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group + \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... + \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local +}% \tabu@colortblalignments +%% Taking care of footnotes and hyperfootnotes ---------------------- +\long\def\tabu@footnotetext #1{% + \edef\@tempa{\the\tabu@footnotes + \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% + \global\tabu@footnotes\expandafter{\@tempa {#1}}}% +\long\def\tabu@xfootnotetext [#1]#2{% + \global\tabu@footnotes\expandafter{\the\tabu@footnotes + \footnotetext [{#1}]{#2}}} +\let\tabu@xfootnote \@xfootnote +\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} +\long\def\tabu@Hy@xfootnote [#1]{% + \begingroup + \value\@mpfn #1\relax + \protected@xdef \@thefnmark {\thempfn}% + \endgroup + \@footnotemark \tabu@Hy@ftntxt {#1}% +}% \tabu@Hy@xfootnote +\long\def\tabu@Hy@ftntxt #1#2{% + \edef\@tempa{% + \the\tabu@footnotes + \begingroup + \value\@mpfn #1\relax + \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% + \expandafter \noexpand \expandafter + \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% + }% + \global\tabu@footnotes\expandafter{\@tempa {#2}% + \endgroup}% +}% \tabu@Hy@ftntxt +\long\def\tabu@Hy@footnotetext #1#2{% + \H@@footnotetext{% + \ifHy@nesting + \hyper@@anchor {#1}{#2}% + \else + \Hy@raisedlink{% + \hyper@@anchor {#1}{\relax}% + }% + \def\@currentHref {#1}% + \let\@currentlabelname \@empty + #2% + \fi + }% +}% \tabu@Hy@footnotetext +%% No need for \arraybackslash ! ------------------------------------ +\def\tabu@latextwoe {% +\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@centering \centering \arraybackslash +\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash +\tabu@temp \tabu@raggedright \raggedright \arraybackslash +}% \tabu@latextwoe +\def\tabu@raggedtwoe {% +\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@Centering \Centering \arraybackslash +\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash +\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash +\tabu@temp \tabu@justifying \justifying \arraybackslash +}% \tabu@raggedtwoe +\def\tabu@normalcrbackslash{\let\\\@normalcr} +\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% + \expandafter\tabu@normalcrbackslash \@trivlist}} +%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- +\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} +\def\tabu@beginfbox {\bgroup \kern\fboxsep + \bgroup\aftergroup\tabu@endfbox} +\def\tabu@endfbox {\kern\fboxsep\egroup\egroup + \@frameb@x\relax} +\def\tabu@color@b@x #1#2{\leavevmode \bgroup + \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% + \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox +}% \tabu@color@b@x +\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup + \aftergroup\tabu@endcolor@b@x \set@color} +\def\tabu@endcolor@b@x {\kern\fboxsep \egroup + \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ + \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ + \tabu@docolor@b@x \egroup +}% \tabu@endcolor@b@x +%% Corrections (arydshln, delarray, colortbl) ----------------------- +\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray + \iftabu@colortbl + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \def\tabu@endarray{% + \crcr \egroup \egroup % + \@arrayright % + \gdef\@preamble{}\CT@end}% + \fi + \else + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \PackageWarning{tabu} + {\string\@arrayright\space is missing from the + \MessageBreak definition of \string\endarray. + \MessageBreak Compatibility with delarray.sty is broken.}% + \fi\fi +}% \tabu@fix@arrayright +\def\tabu@adl@xarraydashrule #1#2#3{% + \ifnum\@lastchclass=\adl@class@start\else + \ifnum\@lastchclass=\@ne\else + \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) + \adl@leftrulefalse \fi\fi % must be treated the same + \fi + \ifadl@zwvrule\else \ifadl@inactive\else + \@addtopreamble{\vrule\@width\arrayrulewidth + \@height\z@ \@depth\z@}\fi \fi + \ifadl@leftrule + \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% + {\number#1}#3}% + \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% + {\number#2}#3} + \fi +}% \tabu@adl@xarraydashrule +\def\tabu@adl@act@endpbox {% + \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox + \egroup \egroup + \adl@colhtdp \box\adl@box \hfil +}% \tabu@adl@act@endpbox +\def\tabu@adl@fix {% + \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln + \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln + \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln + \let\@preamerror \@preamerr % arydshln +}% \tabu@adl@fix +%% Correction for longtable' \@startbox definition ------------------ +%% => \everypar is ``missing'' : TeX should be in vertical mode +\def\tabu@LT@startpbox #1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \everypar{% + \vrule \@height \ht\@arstrutbox \@width \z@ + \everypar{}}% +}% \tabu@LT@startpbox +%% \tracingtabu and the package options ------------------ +\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} +\DeclareOption{linegoal}{% + \AtEndOfPackage{% + \RequirePackage{linegoal}[2010/12/07]% + \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX +}} +\DeclareOption{scantokens}{\tabuscantokenstrue} +\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} +\def\tracingtabu {\begingroup\@ifnextchar=% + {\afterassignment\tabu@tracing\count@} + {\afterassignment\tabu@tracing\count@1\relax}} +\def\tabu@tracing{\expandafter\endgroup + \expandafter\tabu@tr@cing \the\count@ \relax +}% \tabu@tracing +\def\tabu@tr@cing #1\relax {% + \ifnum#1>\thr@@ \let\tabu@tracinglines\message + \else \let\tabu@tracinglines\@gobble + \fi + \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG + \def\tabu@mkarstrut {\tabu@DBG@arstrut}% + \tabustrutrule 1.5\p@ + \else \let\tabu@DBG \@gobble + \def\tabu@mkarstrut {\tabu@arstrut}% + \tabustrutrule \z@ + \fi + \ifnum#1>\@ne \let\tabu@debug \message + \else \let\tabu@debug \@gobble + \fi + \ifnum#1>\z@ + \let\tabu@message \message + \let\tabu@tracing@save \tabu@message@save + \let\tabu@starttimer \tabu@pdftimer + \else + \let\tabu@message \@gobble + \let\tabu@tracing@save \@gobble + \let\tabu@starttimer \relax + \fi +}% \tabu@tr@cing +%% Setup \AtBeginDocument +\AtBeginDocument{\tabu@AtBeginDocument} +\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined + \ifdefined\arrayrulecolor \tabu@colortbltrue % + \tabu@colortblalignments % different glues are used + \else \tabu@colortblfalse \fi + \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi + \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi + \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ + \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % + \expandafter\ifx + \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax + \tabu@siunitxtrue + \else \let\tabu@maybesiunitx \@firstofone % + \let\tabu@siunitx \tabu@nosiunitx + \tabu@siunitxfalse + \fi + \ifdefined\adl@array % + \else \let\tabu@adl@fix \relax + \let\tabu@adl@endtrial \@empty \fi + \ifdefined\longtable % + \else \let\longtabu \tabu@nolongtabu \fi + \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi + \csname\ifcsname ifHy@hyperfootnotes\endcsname % + ifHy@hyperfootnotes\else iffalse\fi\endcsname + \let\tabu@footnotetext \tabu@Hy@ftntext + \let\tabu@xfootnote \tabu@Hy@xfootnote \fi + \ifdefined\FV@DefineCheckEnd% + \tabu@fancyvrb \fi + \ifdefined\color % + \let\tabu@color \color + \def\tabu@leavevmodecolor ##1{% + \def\tabu@leavevmodecolor {\leavevmode ##1}% + }\expandafter\tabu@leavevmodecolor\expandafter{\color}% + \else + \let\tabu@color \tabu@nocolor + \let\tabu@leavevmodecolor \@firstofone \fi + \tabu@latextwoe + \ifdefined\@raggedtwoe@everyselectfont % + \tabu@raggedtwoe + \else + \let\tabu@cell@L \tabu@cell@l + \let\tabu@cell@R \tabu@cell@r + \let\tabu@cell@C \tabu@cell@c + \let\tabu@cell@J \tabu@cell@j \fi + \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% + \ifin@ \let\tabu@endarray \endarray + \else \tabu@fix@arrayright \fi% + \everyrow{}% +}% \tabu@AtBeginDocument +\def\tabu@warn@cellspace{% + \PackageWarning{tabu}{% + Package cellspace has some limitations + \MessageBreak And redefines some macros of array.sty. + \MessageBreak Please use \string\tabulinesep\space to control + \MessageBreak vertical spacing of lines inside tabu environment}% +}% \tabu@warn@cellspace +%% tabu Package initialisation +\tabuscantokensfalse +\let\tabu@arc@G \relax +\let\tabu@drsc@G \relax +\let\tabu@evr@G \@empty +\let\tabu@rc@G \@empty +\def\tabu@ls@G {\tabu@linestyle@}% +\let\tabu@@rowfontreset \@empty % +\let\tabu@@celllalign \@empty +\let\tabu@@cellralign \@empty +\let\tabu@@cellleft \@empty +\let\tabu@@cellright \@empty +\def\tabu@naturalXmin {\z@} +\def\tabu@naturalXmax {\z@} +\let\tabu@rowfontreset \@empty +\def\tabulineon {4pt}\let\tabulineoff \tabulineon +\tabu@everyrowtrue +\ifdefined\pdfelapsedtime % + \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% +\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax +\fi +\tracingtabu=\z@ +\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ +\tabulinestyle{} +\taburowcolors{} +\let\tabudefaulttarget \linewidth +\ProcessOptions* % \ProcessOptions* is quicker ! +\endinput +%% +%% End of file `tabu.sty'. diff --git a/docs/missfont.log b/docs/missfont.log new file mode 100644 index 0000000..8d2bbc6 --- /dev/null +++ b/docs/missfont.log @@ -0,0 +1,26 @@ +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman/BI +mktextfm Bookman +mktextfm Bookman/B +mktextfm Bookman +mktextfm Bookman/I +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman +mktextfm Bookman diff --git a/docs/q.log b/docs/q.log new file mode 100644 index 0000000..310ccfa --- /dev/null +++ b/docs/q.log @@ -0,0 +1,25 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=latex 2024.11.17) 23 OCT 2025 11:59 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**q +(/usr/share/texlive/texmf-dist/tex/latex/tools/q.tex +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-01-22> +File ignored +) +! Emergency stop. +<*> q + +*** (job aborted, no legal \end found) + + +Here is how much of TeX's memory you used: + 17 strings out of 474223 + 502 string characters out of 5748758 + 1922972 words of memory out of 5000000 + 22370 multiletter control sequences out of 15000+600000 + 558069 words of font info for 36 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 12i,0n,13p,81b,8s stack positions out of 10000i,1000n,20000p,200000b,200000s +No pages of output. diff --git a/filestoprint b/filestoprint index f4db83a..28c9fd9 100644 --- a/filestoprint +++ b/filestoprint @@ -7,7 +7,7 @@ __dotag.h __dump.cpp __dump.h __for.cpp -__for.cpp~ +__for.cpp __for.h Global.cpp Global.h diff --git a/html/Global_8h_source.html b/html/Global_8h_source.html new file mode 100644 index 0000000..328276a --- /dev/null +++ b/html/Global_8h_source.html @@ -0,0 +1,134 @@ + + + + + + + +My Project: Global.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Global.h
    +
    +
    +
    1#ifndef __Global_h__
    +
    2# define __Global_h__
    +
    3
    +
    4# include "MString.h"
    +
    5# include "CGIFormattedData.h"
    +
    6# include <map>
    +
    7
    +
    8namespace jet {
    +
    9
    +
    10 class __mysql;
    +
    11
    +
    +
    12 class Global {
    +
    13
    +
    14 public:
    +
    15 Global(char **envp);
    +
    16 virtual ~Global();
    +
    17
    +
    18 void dump();
    +
    19 bool sessionExists(coreutils::MString sessionId);
    +
    20 void addSession(coreutils::MString sessionId, __mysql *mysql);
    +
    21 void removeSession(coreutils::MString sessionId);
    +
    22 __mysql * getSession(coreutils::MString sessionId);
    +
    23 coreutils::ZString getSessionVariable(coreutils::MString &splitName);
    +
    24 void outputHeaders();
    +
    25 void setupFormData(coreutils::ZString &formdata);
    +
    26 void setupFormURLEncoded(coreutils::ZString &formdata);
    +
    27 char *errorCursor = NULL;
    +
    28
    +
    29 coreutils::CGIFormattedData cookies;
    +
    30 std::map<coreutils::MString, coreutils::MString> variables;
    +
    31 std::map<coreutils::MString, coreutils::MString> cgiVariables;
    +
    32 std::map<coreutils::MString, __mysql *> sessions;
    +
    33 std::map<coreutils::MString, coreutils::MString> headers;
    +
    34 std::map<coreutils::MString, coreutils::MString> tags;
    +
    35 char **envp;
    +
    36 bool cgi = false;
    +
    37 bool session = false;
    +
    38 coreutils::MString sessionId;
    +
    39
    +
    40 };
    +
    +
    41
    +
    42}
    +
    43
    +
    44#endif
    +
    Definition Global.h:12
    +
    Definition __mysql.h:12
    +
    + + + + diff --git a/html/Operand_8h_source.html b/html/Operand_8h_source.html new file mode 100644 index 0000000..d1e16ac --- /dev/null +++ b/html/Operand_8h_source.html @@ -0,0 +1,118 @@ + + + + + + + +My Project: Operand.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Operand.h
    +
    +
    +
    1#ifndef __Operand_h__
    +
    2#define __Operand_h__
    +
    3
    +
    4#include "MString.h"
    +
    5#include "Tag.h"
    +
    6#include "Global.h"
    +
    7
    +
    8namespace jet {
    +
    9
    +
    +
    10 class Operand {
    +
    11
    +
    12 public:
    +
    13 Operand(coreutils::ZString &in, Tag &tag);
    +
    14
    +
    15 bool isNumber;
    +
    16
    +
    21
    +
    22 bool boolean;
    +
    23 coreutils::MString string = "";
    +
    24
    +
    25 double doubleValue;
    +
    26
    +
    27
    +
    28 };
    +
    +
    29}
    +
    30
    +
    31#endif
    +
    Definition Operand.h:10
    +
    bool boolean
    Definition Operand.h:22
    +
    Definition Tag.h:19
    +
    + + + + diff --git a/html/SessionId_8h_source.html b/html/SessionId_8h_source.html new file mode 100644 index 0000000..dace10a --- /dev/null +++ b/html/SessionId_8h_source.html @@ -0,0 +1,105 @@ + + + + + + + +My Project: SessionId.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    SessionId.h
    +
    +
    +
    1#ifndef __SessionId_h__
    +
    2#define __SessionId_h__
    +
    3
    +
    4#include "MString.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class SessionId : public coreutils::MString {
    +
    9
    +
    10 public:
    +
    11 SessionId();
    +
    12
    +
    13 };
    +
    +
    14}
    +
    15
    +
    16#endif
    +
    Definition SessionId.h:8
    +
    + + + + diff --git a/html/Tag_8h_source.html b/html/Tag_8h_source.html new file mode 100644 index 0000000..d64fc95 --- /dev/null +++ b/html/Tag_8h_source.html @@ -0,0 +1,163 @@ + + + + + + + +My Project: Tag.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Tag.h
    +
    +
    +
    1#ifndef __Tag_h__
    +
    2#define __Tag_h__
    +
    3
    +
    4#include "ZString.h"
    +
    5#include "MString.h"
    +
    6#include "Global.h"
    +
    7#include <map>
    +
    8
    +
    12
    +
    13namespace jet {
    +
    14
    +
    18
    +
    +
    19 class Tag : public coreutils::ZString {
    +
    20
    +
    21 public:
    +
    22 Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent = NULL, Tag *local = NULL, coreutils::ZString splitTagName = "");
    +
    23 virtual ~Tag();
    +
    24
    +
    25 coreutils::MString getVariable(coreutils::ZString &variable, bool inContainer = false);
    +
    26
    +
    27 coreutils::MString resolveKeyword(coreutils::ZString keyword);
    +
    28 std::map<coreutils::MString, coreutils::MString> variables;
    +
    29 std::map<coreutils::MString, coreutils::MString> keywords;
    +
    30 coreutils::ZString name;
    +
    31 coreutils::ZString container;
    +
    32 coreutils::ZString container2;
    +
    33 Global &global;
    +
    34 Tag *parent;
    +
    35 Tag *local;
    +
    36
    +
    37 protected:
    +
    38 bool hasContainer = false;
    +
    39 bool hasContainer2 = false;
    +
    40 bool keywordDefined(coreutils::ZString variable);
    +
    41 void parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2 = NULL, bool topLevel = false);
    +
    42 void processContainer(coreutils::ZString &container, coreutils::ZString container2 = NULL, bool topLevel = false);
    +
    43 void copyContainer(coreutils::ZString &in, coreutils::MString &out);
    +
    44
    +
    45 coreutils::MString &parentOut;
    +
    46 coreutils::MString out;
    +
    47
    +
    48 bool output = true;
    +
    49 bool evaluate = true;
    +
    50 bool filterBlankLines = false;
    +
    51 bool trimLines = false;
    +
    52 bool cleanWhitespace = false;
    +
    53
    +
    54 void renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier);
    +
    55 void storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope);
    +
    56 void storeVariable(coreutils::ZString variable);
    +
    57
    +
    58 private:
    +
    59 bool containerOnly = false;
    +
    60 coreutils::ZString splitTagName;
    +
    61
    +
    62 int skipBlankLine(coreutils::ZString in);
    +
    63
    +
    64 void scanContainer(coreutils::ZString &in);
    +
    65 bool ifNested(coreutils::ZString &in);
    +
    66 bool ifTagName(coreutils::ZString &in, const char *tag);
    +
    67 bool ifTagName(coreutils::ZString &in);
    +
    68 bool ifTagDefined(coreutils::ZString &in, coreutils::ZString &tag);
    +
    69 bool ifEndTagName(coreutils::ZString &in);
    +
    70 bool ifSplitTagName(coreutils::ZString &in);
    +
    71
    +
    72 coreutils::MString processModifier(coreutils::MString &value, coreutils::MString &modifier);
    +
    73 };
    +
    +
    74
    +
    75}
    +
    76
    +
    77#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    coreutils::MString resolveKeyword(coreutils::ZString keyword)
    >retrieve a vairable value from a text string cotontaining a variable name.
    Definition Tag.cpp:114
    +
    virtual ~Tag()
    >Constructor
    Definition Tag.cpp:106
    +
    + + + + diff --git a/html/____call_8h_source.html b/html/____call_8h_source.html new file mode 100644 index 0000000..231d044 --- /dev/null +++ b/html/____call_8h_source.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: __call.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __call.h
    +
    +
    +
    1#ifndef ____call_h__
    +
    2#define ____call_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class __call : public Tag {
    +
    9
    +
    10 public:
    +
    11 __call(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    12
    +
    13 private:
    +
    14 int pid;
    +
    15 int status;
    +
    16 int ix;
    +
    17 int fdi[2];
    +
    18 int fdo[2];
    +
    19 int rc;
    +
    20 char *argv[50];
    +
    21
    +
    22 };
    +
    +
    23
    +
    24}
    +
    25
    +
    26#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __call.h:8
    +
    + + + + diff --git a/html/____comment_8h_source.html b/html/____comment_8h_source.html new file mode 100644 index 0000000..131c735 --- /dev/null +++ b/html/____comment_8h_source.html @@ -0,0 +1,108 @@ + + + + + + + +My Project: __comment.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __comment.h
    +
    +
    +
    1#ifndef ____comment_h__
    +
    2#define ____comment_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class __comment : public Tag {
    +
    9
    +
    10 public:
    +
    11 __comment(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    12
    +
    13 };
    +
    +
    14
    +
    15}
    +
    16
    +
    17#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __comment.h:8
    +
    + + + + diff --git a/html/____cookie_8h_source.html b/html/____cookie_8h_source.html new file mode 100644 index 0000000..2c7be66 --- /dev/null +++ b/html/____cookie_8h_source.html @@ -0,0 +1,110 @@ + + + + + + + +My Project: __cookie.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __cookie.h
    +
    +
    +
    1#ifndef ____cookie_h__
    +
    2#define ____cookie_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7
    +
    8namespace jet {
    +
    9
    +
    +
    10 class __cookie : public Tag {
    +
    11
    +
    12 public:
    +
    13 __cookie(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    14
    +
    15 };
    +
    +
    16
    +
    17}
    +
    18
    +
    19#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    + +
    + + + + diff --git a/html/____dotag_8h_source.html b/html/____dotag_8h_source.html new file mode 100644 index 0000000..cb631d7 --- /dev/null +++ b/html/____dotag_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +My Project: __dotag.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __dotag.h
    +
    +
    +
    1#ifndef ____dotag_h__
    +
    2#define ____dotag_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6
    +
    7namespace jet {
    +
    8
    +
    +
    9 class __dotag : public Tag {
    +
    10
    +
    11 public:
    +
    12 __dotag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    13
    +
    14 };
    +
    +
    15
    +
    16}
    +
    17
    +
    18#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __dotag.h:9
    +
    + + + + diff --git a/html/____dump_8h_source.html b/html/____dump_8h_source.html new file mode 100644 index 0000000..4827690 --- /dev/null +++ b/html/____dump_8h_source.html @@ -0,0 +1,110 @@ + + + + + + + +My Project: __dump.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __dump.h
    +
    +
    +
    1#ifndef ____dump_h__
    +
    2#define ____dump_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "MString.h"
    +
    6#include "Global.h"
    +
    7
    +
    8namespace jet {
    +
    9
    +
    +
    10 class __dump : public Tag {
    +
    11
    +
    12 public:
    +
    13 __dump(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    14
    +
    15 };
    +
    +
    16
    +
    17}
    +
    18
    +
    19#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __dump.h:10
    +
    + + + + diff --git a/html/____exclude_8h_source.html b/html/____exclude_8h_source.html new file mode 100644 index 0000000..fbe7968 --- /dev/null +++ b/html/____exclude_8h_source.html @@ -0,0 +1,108 @@ + + + + + + + +My Project: __exclude.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __exclude.h
    +
    +
    +
    1#ifndef ____exclude_h__
    +
    2#define ____exclude_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class __exclude : public Tag {
    +
    9
    +
    10 public:
    +
    11 __exclude(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    12
    +
    13 };
    +
    +
    14
    +
    15}
    +
    16
    +
    17#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __exclude.h:8
    +
    + + + + diff --git a/html/____for_8h_source.html b/html/____for_8h_source.html new file mode 100644 index 0000000..3c60651 --- /dev/null +++ b/html/____for_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +My Project: __for.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __for.h
    +
    +
    +
    1#ifndef ____for_h__
    +
    2#define ____for_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include <sstream>
    +
    6
    +
    7namespace jet {
    +
    8
    +
    +
    9 class __for : public Tag {
    +
    10
    +
    11 public:
    +
    12 __for(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    13
    +
    14 };
    +
    +
    15
    +
    16}
    +
    17
    +
    18#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __for.h:9
    +
    + + + + diff --git a/html/____header_8h_source.html b/html/____header_8h_source.html new file mode 100644 index 0000000..3743001 --- /dev/null +++ b/html/____header_8h_source.html @@ -0,0 +1,113 @@ + + + + + + + +My Project: __header.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __header.h
    +
    +
    +
    1#ifndef ____header_h__
    +
    2#define ____header_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7#include <sstream>
    +
    8
    +
    9namespace jet {
    +
    10
    +
    +
    11 class __header : public Tag {
    +
    12
    +
    13 public:
    +
    14 __header(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    15
    +
    16 protected:
    +
    17
    +
    18 };
    +
    +
    19
    +
    20}
    +
    21
    +
    22#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __header.h:11
    +
    + + + + diff --git a/html/____if_8h_source.html b/html/____if_8h_source.html new file mode 100644 index 0000000..4df2053 --- /dev/null +++ b/html/____if_8h_source.html @@ -0,0 +1,111 @@ + + + + + + + +My Project: __if.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __if.h
    +
    +
    +
    1#ifndef ____if_h__
    +
    2#define ____if_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7#include <sstream>
    +
    8
    +
    9namespace jet {
    +
    10
    +
    +
    11 class __if : public Tag {
    +
    12
    +
    13 public:
    +
    14 __if(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    15
    +
    16 };
    +
    +
    17
    +
    18}
    +
    19
    +
    20#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __if.h:11
    +
    + + + + diff --git a/html/____ifrow_8h_source.html b/html/____ifrow_8h_source.html new file mode 100644 index 0000000..5e56a64 --- /dev/null +++ b/html/____ifrow_8h_source.html @@ -0,0 +1,108 @@ + + + + + + + +My Project: __ifrow.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __ifrow.h
    +
    +
    +
    1#ifndef ____ifrow_h__
    +
    2#define ____ifrow_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class __ifrow : public Tag {
    +
    9
    +
    10 public:
    +
    11 __ifrow(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    12
    +
    13 };
    +
    +
    14
    +
    15}
    +
    16
    +
    17#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __ifrow.h:8
    +
    + + + + diff --git a/html/____include_8h_source.html b/html/____include_8h_source.html new file mode 100644 index 0000000..3f7d9a7 --- /dev/null +++ b/html/____include_8h_source.html @@ -0,0 +1,108 @@ + + + + + + + +My Project: __include.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __include.h
    +
    +
    +
    1#ifndef ____include_h__
    +
    2#define ____include_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class __include : public Tag {
    +
    9
    +
    10 public:
    +
    11 __include(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    12
    +
    13 };
    +
    +
    14
    +
    15}
    +
    16
    +
    17#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __include.h:8
    +
    + + + + diff --git a/html/____jet_8h_source.html b/html/____jet_8h_source.html new file mode 100644 index 0000000..4e16983 --- /dev/null +++ b/html/____jet_8h_source.html @@ -0,0 +1,112 @@ + + + + + + + +My Project: __jet.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __jet.h
    +
    +
    +
    1#ifndef ____jet_h__
    +
    2#define ____jet_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "IMFRequest.h"
    +
    7#include "IMFMessage.h"
    +
    8#include <sstream>
    +
    9
    +
    10namespace jet {
    +
    11
    +
    +
    12 class __jet : public Tag {
    +
    13
    +
    14 public:
    +
    15 __jet(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    16
    +
    17 };
    +
    +
    18
    +
    19}
    +
    20
    +
    21#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __jet.h:12
    +
    + + + + diff --git a/html/____mysql_8h_source.html b/html/____mysql_8h_source.html new file mode 100644 index 0000000..8b8428d --- /dev/null +++ b/html/____mysql_8h_source.html @@ -0,0 +1,129 @@ + + + + + + + +My Project: __mysql.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __mysql.h
    +
    +
    +
    1#ifndef ____mysql_h__
    +
    2#define ____mysql_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7#include <sstream>
    +
    8#include <mysql/mysql.h>
    +
    9
    +
    10namespace jet {
    +
    11
    +
    +
    12 class __mysql : public Tag {
    +
    13
    +
    14 public:
    +
    15 __mysql(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    16 ~__mysql();
    +
    17
    +
    18 void query(coreutils::MString query);
    +
    19 void nextRow();
    +
    20 bool hasRow();
    +
    21 coreutils::ZString getColumnValue(coreutils::ZString column);
    +
    22
    +
    23 private:
    +
    24 MYSQL *mysql;
    +
    25 MYSQL_RES *result;
    +
    26 MYSQL_ROW row;
    +
    27 unsigned long *fieldLength;
    +
    28 unsigned int qFields;
    +
    29 coreutils::MString sessionId;
    +
    30
    +
    31 coreutils::MString nbrOfRows = "0";
    +
    32 coreutils::MString nbrOfColumns = "0";
    +
    33
    +
    34 };
    +
    +
    35
    +
    36}
    +
    37
    +
    38#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __mysql.h:12
    +
    + + + + diff --git a/html/____read_8h_source.html b/html/____read_8h_source.html new file mode 100644 index 0000000..94ea0b3 --- /dev/null +++ b/html/____read_8h_source.html @@ -0,0 +1,113 @@ + + + + + + + +My Project: __read.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __read.h
    +
    +
    +
    1#ifndef ____read_h__
    +
    2#define ____read_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class __read : public Tag {
    +
    9
    +
    10 public:
    +
    11 __read(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    12
    +
    13 private:
    +
    14 int fd;
    +
    15 int len;
    +
    16 char buffer[4096];
    +
    17
    +
    18 };
    +
    +
    19
    +
    20}
    +
    21
    +
    22#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __read.h:8
    +
    + + + + diff --git a/html/____set_8h_source.html b/html/____set_8h_source.html new file mode 100644 index 0000000..a11fabf --- /dev/null +++ b/html/____set_8h_source.html @@ -0,0 +1,113 @@ + + + + + + + +My Project: __set.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __set.h
    +
    +
    +
    1#ifndef ____set_h__
    +
    2#define ____set_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7#include <sstream>
    +
    8
    +
    9namespace jet {
    +
    10
    +
    +
    11 class __set : public Tag {
    +
    12
    +
    13 public:
    +
    14 __set(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    15
    +
    16 protected:
    +
    17
    +
    18 };
    +
    +
    19
    +
    20}
    +
    21
    +
    22#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __set.h:11
    +
    + + + + diff --git a/html/____sql_8h_source.html b/html/____sql_8h_source.html new file mode 100644 index 0000000..3089cd5 --- /dev/null +++ b/html/____sql_8h_source.html @@ -0,0 +1,108 @@ + + + + + + + +My Project: __sql.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __sql.h
    +
    +
    +
    1#ifndef ____sql_h__
    +
    2#define ____sql_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class __sql : public Tag {
    +
    9
    +
    10 public:
    +
    11 __sql(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    12
    +
    13 };
    +
    +
    14
    +
    15}
    +
    16
    +
    17#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __sql.h:8
    +
    + + + + diff --git a/html/____stream_8h_source.html b/html/____stream_8h_source.html new file mode 100644 index 0000000..cf05ded --- /dev/null +++ b/html/____stream_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +My Project: __stream.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __stream.h
    +
    +
    +
    1#ifndef ____stream_h__
    +
    2#define ____stream_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6
    +
    7namespace jet {
    +
    8
    +
    +
    9 class __stream : public Tag {
    +
    10
    +
    11 public:
    +
    12 __stream(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    13
    +
    14 };
    +
    +
    15
    +
    16}
    +
    17
    +
    18#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __stream.h:9
    +
    + + + + diff --git a/html/____system_8h_source.html b/html/____system_8h_source.html new file mode 100644 index 0000000..1cb4c90 --- /dev/null +++ b/html/____system_8h_source.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: __system.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __system.h
    +
    +
    +
    1#ifndef ____system_h__
    +
    2#define ____system_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5
    +
    6namespace jet {
    +
    7
    +
    +
    8 class __system : public Tag {
    +
    9
    +
    10 public:
    +
    11 __system(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    12
    +
    13 private:
    +
    14 int pid;
    +
    15 int status;
    +
    16 int ix;
    +
    17 int fdi[2];
    +
    18 int fdo[2];
    +
    19 int rc;
    +
    20 char *argv[50];
    +
    21
    +
    22 };
    +
    +
    23
    +
    24}
    +
    25
    +
    26#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __system.h:8
    +
    + + + + diff --git a/html/____tag_8h_source.html b/html/____tag_8h_source.html new file mode 100644 index 0000000..5871bc1 --- /dev/null +++ b/html/____tag_8h_source.html @@ -0,0 +1,113 @@ + + + + + + + +My Project: __tag.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __tag.h
    +
    +
    +
    1#ifndef ____tag_h__
    +
    2#define ____tag_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7#include <map>
    +
    8
    +
    9namespace jet {
    +
    10
    +
    +
    11 class __tag : public Tag {
    +
    12
    +
    13 public:
    +
    14 __tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    15
    +
    16 std::map<coreutils::MString, coreutils::MString> tags;
    +
    17
    +
    18 };
    +
    +
    19
    +
    20}
    +
    21
    +
    22#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __tag.h:11
    +
    + + + + diff --git a/html/____until_8h_source.html b/html/____until_8h_source.html new file mode 100644 index 0000000..684baf1 --- /dev/null +++ b/html/____until_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +My Project: __until.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __until.h
    +
    +
    +
    1#ifndef ____until_h__
    +
    2#define ____until_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include <sstream>
    +
    6
    +
    7namespace jet {
    +
    8
    +
    +
    9 class __until : public Tag {
    +
    10
    +
    11 public:
    +
    12 __until(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    13
    +
    14 };
    +
    +
    15
    +
    16}
    +
    17
    +
    18#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __until.h:9
    +
    + + + + diff --git a/html/____while_8h_source.html b/html/____while_8h_source.html new file mode 100644 index 0000000..8b19e05 --- /dev/null +++ b/html/____while_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +My Project: __while.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __while.h
    +
    +
    +
    1#ifndef ____while_h__
    +
    2#define ____while_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include <sstream>
    +
    6
    +
    7namespace jet {
    +
    8
    +
    +
    9 class __while : public Tag {
    +
    10
    +
    11 public:
    +
    12 __while(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    13
    +
    14 };
    +
    +
    15
    +
    16}
    +
    17
    +
    18#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __while.h:9
    +
    + + + + diff --git a/html/____whiledir_8h_source.html b/html/____whiledir_8h_source.html new file mode 100644 index 0000000..06ede2d --- /dev/null +++ b/html/____whiledir_8h_source.html @@ -0,0 +1,110 @@ + + + + + + + +My Project: __whiledir.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __whiledir.h
    +
    +
    +
    1#ifndef ____whiledir_h__
    +
    2#define ____whiledir_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7
    +
    8namespace jet {
    +
    9
    +
    +
    10 class __whiledir : public Tag {
    +
    11
    +
    12 public:
    +
    13 __whiledir(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    14
    +
    15 };
    +
    +
    16
    +
    17}
    +
    18
    +
    19#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __whiledir.h:10
    +
    + + + + diff --git a/html/____whilerow_8h_source.html b/html/____whilerow_8h_source.html new file mode 100644 index 0000000..7808c8c --- /dev/null +++ b/html/____whilerow_8h_source.html @@ -0,0 +1,110 @@ + + + + + + + +My Project: __whilerow.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __whilerow.h
    +
    +
    +
    1#ifndef ____whilerow_h__
    +
    2#define ____whilerow_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7
    +
    8namespace jet {
    +
    9
    +
    +
    10 class __whilerow : public Tag {
    +
    11
    +
    12 public:
    +
    13 __whilerow(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    14
    +
    15 };
    +
    +
    16
    +
    17}
    +
    18
    +
    19#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __whilerow.h:10
    +
    + + + + diff --git a/html/____write_8h_source.html b/html/____write_8h_source.html new file mode 100644 index 0000000..79bb1d4 --- /dev/null +++ b/html/____write_8h_source.html @@ -0,0 +1,113 @@ + + + + + + + +My Project: __write.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    __write.h
    +
    +
    +
    1#ifndef __write_h__
    +
    2#define __write_h__
    +
    3
    +
    4#include "Tag.h"
    +
    5#include "ZString.h"
    +
    6#include "MString.h"
    +
    7#include <sstream>
    +
    8
    +
    9namespace jet {
    +
    10
    +
    +
    11 class __write : public Tag {
    +
    12
    +
    13 public:
    +
    14 __write(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local);
    +
    15
    +
    16 protected:
    +
    17
    +
    18 };
    +
    +
    19
    +
    20}
    +
    21
    +
    22#endif
    +
    Definition Global.h:12
    +
    Definition Tag.h:19
    +
    Definition __write.h:11
    +
    + + + + diff --git a/html/annotated.html b/html/annotated.html new file mode 100644 index 0000000..bd74a88 --- /dev/null +++ b/html/annotated.html @@ -0,0 +1,114 @@ + + + + + + + +My Project: Class List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Class List
    +
    +
    +
    Here are the classes, structs, unions and interfaces with brief descriptions:
    +
    [detail level 12]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Njet
     C__call
     C__comment
     C__cookie
     C__dotag
     C__dump
     C__exclude
     C__for
     C__header
     C__if
     C__ifrow
     C__include
     C__jet
     C__mysql
     C__read
     C__set
     C__sql
     C__stream
     C__system
     C__tag
     C__until
     C__while
     C__whiledir
     C__whilerow
     C__write
     CGlobal
     COperand
     CSessionId
     CTag
    +
    +
    + + + + diff --git a/html/bc_s.png b/html/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/html/bc_s.png differ diff --git a/html/bc_sd.png b/html/bc_sd.png new file mode 100644 index 0000000..31ca888 Binary files /dev/null and b/html/bc_sd.png differ diff --git a/html/classes.html b/html/classes.html new file mode 100644 index 0000000..56c65b5 --- /dev/null +++ b/html/classes.html @@ -0,0 +1,99 @@ + + + + + + + +My Project: Class Index + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Class Index
    +
    +
    +
    G | O | S | T | _
    +
    +
    +
    G
    +
    Global (jet)
    +
    +
    O
    +
    Operand (jet)
    +
    +
    S
    +
    SessionId (jet)
    +
    +
    T
    +
    Tag (jet)
    +
    +
    _
    +
    __call (jet)
    __comment (jet)
    __cookie (jet)
    __dotag (jet)
    __dump (jet)
    __exclude (jet)
    __for (jet)
    __header (jet)
    __if (jet)
    __ifrow (jet)
    __include (jet)
    __jet (jet)
    __mysql (jet)
    __read (jet)
    __set (jet)
    __sql (jet)
    __stream (jet)
    __system (jet)
    __tag (jet)
    __until (jet)
    __while (jet)
    __whiledir (jet)
    __whilerow (jet)
    __write (jet)
    +
    +
    + + + + diff --git a/html/classjet_1_1Global-members.html b/html/classjet_1_1Global-members.html new file mode 100644 index 0000000..d446d35 --- /dev/null +++ b/html/classjet_1_1Global-members.html @@ -0,0 +1,110 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::Global Member List
    +
    +
    + +

    This is the complete list of members for jet::Global, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + +
    addSession(coreutils::MString sessionId, __mysql *mysql) (defined in jet::Global)jet::Global
    cgi (defined in jet::Global)jet::Global
    cgiVariables (defined in jet::Global)jet::Global
    cookies (defined in jet::Global)jet::Global
    dump() (defined in jet::Global)jet::Global
    envp (defined in jet::Global)jet::Global
    errorCursor (defined in jet::Global)jet::Global
    getSession(coreutils::MString sessionId) (defined in jet::Global)jet::Global
    getSessionVariable(coreutils::MString &splitName) (defined in jet::Global)jet::Global
    Global(char **envp) (defined in jet::Global)jet::Global
    headers (defined in jet::Global)jet::Global
    outputHeaders() (defined in jet::Global)jet::Global
    removeSession(coreutils::MString sessionId) (defined in jet::Global)jet::Global
    session (defined in jet::Global)jet::Global
    sessionExists(coreutils::MString sessionId) (defined in jet::Global)jet::Global
    sessionId (defined in jet::Global)jet::Global
    sessions (defined in jet::Global)jet::Global
    setupFormData(coreutils::ZString &formdata) (defined in jet::Global)jet::Global
    setupFormURLEncoded(coreutils::ZString &formdata) (defined in jet::Global)jet::Global
    tags (defined in jet::Global)jet::Global
    variables (defined in jet::Global)jet::Global
    ~Global() (defined in jet::Global)jet::Globalvirtual
    + + + + diff --git a/html/classjet_1_1Global.html b/html/classjet_1_1Global.html new file mode 100644 index 0000000..7961e87 --- /dev/null +++ b/html/classjet_1_1Global.html @@ -0,0 +1,163 @@ + + + + + + + +My Project: jet::Global Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::Global Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    Global (char **envp)
     
    +void dump ()
     
    +bool sessionExists (coreutils::MString sessionId)
     
    +void addSession (coreutils::MString sessionId, __mysql *mysql)
     
    +void removeSession (coreutils::MString sessionId)
     
    +__mysqlgetSession (coreutils::MString sessionId)
     
    +coreutils::ZString getSessionVariable (coreutils::MString &splitName)
     
    +void outputHeaders ()
     
    +void setupFormData (coreutils::ZString &formdata)
     
    +void setupFormURLEncoded (coreutils::ZString &formdata)
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +char * errorCursor = NULL
     
    +coreutils::CGIFormattedData cookies
     
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > cgiVariables
     
    +std::map< coreutils::MString, __mysql * > sessions
     
    +std::map< coreutils::MString, coreutils::MString > headers
     
    +std::map< coreutils::MString, coreutils::MString > tags
     
    +char ** envp
     
    +bool cgi = false
     
    +bool session = false
     
    +coreutils::MString sessionId
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1Operand-members.html b/html/classjet_1_1Operand-members.html new file mode 100644 index 0000000..202aa3d --- /dev/null +++ b/html/classjet_1_1Operand-members.html @@ -0,0 +1,93 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::Operand Member List
    +
    +
    + +

    This is the complete list of members for jet::Operand, including all inherited members.

    + + + + + + +
    booleanjet::Operand
    doubleValue (defined in jet::Operand)jet::Operand
    isNumber (defined in jet::Operand)jet::Operand
    Operand(coreutils::ZString &in, Tag &tag) (defined in jet::Operand)jet::Operand
    string (defined in jet::Operand)jet::Operand
    + + + + diff --git a/html/classjet_1_1Operand.html b/html/classjet_1_1Operand.html new file mode 100644 index 0000000..d13fc10 --- /dev/null +++ b/html/classjet_1_1Operand.html @@ -0,0 +1,130 @@ + + + + + + + +My Project: jet::Operand Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::Operand Class Reference
    +
    +
    + + + + +

    +Public Member Functions

    Operand (coreutils::ZString &in, Tag &tag)
     
    + + + + + + + + + +

    +Public Attributes

    +bool isNumber
     
    bool boolean
     
    +coreutils::MString string = ""
     
    +double doubleValue
     
    +

    Member Data Documentation

    + +

    ◆ boolean

    + +
    +
    + + + + +
    bool jet::Operand::boolean
    +
    +

    boolean is set by internal processes to return the boolean equivilent value.

    + +
    +
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1SessionId-members.html b/html/classjet_1_1SessionId-members.html new file mode 100644 index 0000000..35840b2 --- /dev/null +++ b/html/classjet_1_1SessionId-members.html @@ -0,0 +1,89 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::SessionId Member List
    +
    +
    + +

    This is the complete list of members for jet::SessionId, including all inherited members.

    + + +
    SessionId() (defined in jet::SessionId)jet::SessionId
    + + + + diff --git a/html/classjet_1_1SessionId.html b/html/classjet_1_1SessionId.html new file mode 100644 index 0000000..09c86d9 --- /dev/null +++ b/html/classjet_1_1SessionId.html @@ -0,0 +1,111 @@ + + + + + + + +My Project: jet::SessionId Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::SessionId Class Reference
    +
    +
    +
    +Inheritance diagram for jet::SessionId:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::SessionId:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1SessionId__coll__graph.map b/html/classjet_1_1SessionId__coll__graph.map new file mode 100644 index 0000000..3f16a10 --- /dev/null +++ b/html/classjet_1_1SessionId__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/html/classjet_1_1SessionId__coll__graph.md5 b/html/classjet_1_1SessionId__coll__graph.md5 new file mode 100644 index 0000000..fdae69c --- /dev/null +++ b/html/classjet_1_1SessionId__coll__graph.md5 @@ -0,0 +1 @@ +b623d91570cf127009ea4725c62d55b9 \ No newline at end of file diff --git a/html/classjet_1_1SessionId__coll__graph.png b/html/classjet_1_1SessionId__coll__graph.png new file mode 100644 index 0000000..3262162 Binary files /dev/null and b/html/classjet_1_1SessionId__coll__graph.png differ diff --git a/html/classjet_1_1SessionId__inherit__graph.map b/html/classjet_1_1SessionId__inherit__graph.map new file mode 100644 index 0000000..3f16a10 --- /dev/null +++ b/html/classjet_1_1SessionId__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/html/classjet_1_1SessionId__inherit__graph.md5 b/html/classjet_1_1SessionId__inherit__graph.md5 new file mode 100644 index 0000000..fdae69c --- /dev/null +++ b/html/classjet_1_1SessionId__inherit__graph.md5 @@ -0,0 +1 @@ +b623d91570cf127009ea4725c62d55b9 \ No newline at end of file diff --git a/html/classjet_1_1SessionId__inherit__graph.png b/html/classjet_1_1SessionId__inherit__graph.png new file mode 100644 index 0000000..3262162 Binary files /dev/null and b/html/classjet_1_1SessionId__inherit__graph.png differ diff --git a/html/classjet_1_1Tag-members.html b/html/classjet_1_1Tag-members.html new file mode 100644 index 0000000..5085171 --- /dev/null +++ b/html/classjet_1_1Tag-members.html @@ -0,0 +1,116 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::Tag Member List
    +
    +
    + +

    This is the complete list of members for jet::Tag, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1Tag.html b/html/classjet_1_1Tag.html new file mode 100644 index 0000000..1085c67 --- /dev/null +++ b/html/classjet_1_1Tag.html @@ -0,0 +1,265 @@ + + + + + + + +My Project: jet::Tag Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    +
    +Inheritance diagram for jet::Tag:
    +
    +
    Inheritance graph
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::Tag:
    +
    +
    Collaboration graph
    + + + + + + + + +
    [legend]
    + + + + + + + + + + + + +

    +Public Member Functions

    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    + + + + + + + + + + + + + + + +

    +Protected Member Functions

    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    + + + + + + + + + + + + + + + + + + + +

    +Protected Attributes

    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1Tag__coll__graph.map b/html/classjet_1_1Tag__coll__graph.map new file mode 100644 index 0000000..c4b7b12 --- /dev/null +++ b/html/classjet_1_1Tag__coll__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/html/classjet_1_1Tag__coll__graph.md5 b/html/classjet_1_1Tag__coll__graph.md5 new file mode 100644 index 0000000..7d01ea5 --- /dev/null +++ b/html/classjet_1_1Tag__coll__graph.md5 @@ -0,0 +1 @@ +0f028a2b28c65c67a27440a0bc2d5e22 \ No newline at end of file diff --git a/html/classjet_1_1Tag__coll__graph.png b/html/classjet_1_1Tag__coll__graph.png new file mode 100644 index 0000000..eb55827 Binary files /dev/null and b/html/classjet_1_1Tag__coll__graph.png differ diff --git a/html/classjet_1_1Tag__inherit__graph.map b/html/classjet_1_1Tag__inherit__graph.map new file mode 100644 index 0000000..052ed88 --- /dev/null +++ b/html/classjet_1_1Tag__inherit__graph.map @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/html/classjet_1_1Tag__inherit__graph.md5 b/html/classjet_1_1Tag__inherit__graph.md5 new file mode 100644 index 0000000..36f9864 --- /dev/null +++ b/html/classjet_1_1Tag__inherit__graph.md5 @@ -0,0 +1 @@ +13ca375e343eb204d566f198ed989974 \ No newline at end of file diff --git a/html/classjet_1_1Tag__inherit__graph.png b/html/classjet_1_1Tag__inherit__graph.png new file mode 100644 index 0000000..ebc22a5 Binary files /dev/null and b/html/classjet_1_1Tag__inherit__graph.png differ diff --git a/html/classjet_1_1____call-members.html b/html/classjet_1_1____call-members.html new file mode 100644 index 0000000..9936fa0 --- /dev/null +++ b/html/classjet_1_1____call-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__call Member List
    +
    +
    + +

    This is the complete list of members for jet::__call, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __call(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__call)jet::__call
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____call.html b/html/classjet_1_1____call.html new file mode 100644 index 0000000..aab3dc1 --- /dev/null +++ b/html/classjet_1_1____call.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__call Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__call Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__call:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__call:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __call (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____call__coll__graph.map b/html/classjet_1_1____call__coll__graph.map new file mode 100644 index 0000000..70b6150 --- /dev/null +++ b/html/classjet_1_1____call__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____call__coll__graph.md5 b/html/classjet_1_1____call__coll__graph.md5 new file mode 100644 index 0000000..16341c6 --- /dev/null +++ b/html/classjet_1_1____call__coll__graph.md5 @@ -0,0 +1 @@ +3065bfbf676275678e9099c25e9d2148 \ No newline at end of file diff --git a/html/classjet_1_1____call__coll__graph.png b/html/classjet_1_1____call__coll__graph.png new file mode 100644 index 0000000..74381f2 Binary files /dev/null and b/html/classjet_1_1____call__coll__graph.png differ diff --git a/html/classjet_1_1____call__inherit__graph.map b/html/classjet_1_1____call__inherit__graph.map new file mode 100644 index 0000000..bd370d3 --- /dev/null +++ b/html/classjet_1_1____call__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____call__inherit__graph.md5 b/html/classjet_1_1____call__inherit__graph.md5 new file mode 100644 index 0000000..54a7af1 --- /dev/null +++ b/html/classjet_1_1____call__inherit__graph.md5 @@ -0,0 +1 @@ +51dafba043433414ac0e9a6714fbe920 \ No newline at end of file diff --git a/html/classjet_1_1____call__inherit__graph.png b/html/classjet_1_1____call__inherit__graph.png new file mode 100644 index 0000000..e3d234b Binary files /dev/null and b/html/classjet_1_1____call__inherit__graph.png differ diff --git a/html/classjet_1_1____comment-members.html b/html/classjet_1_1____comment-members.html new file mode 100644 index 0000000..2beb016 --- /dev/null +++ b/html/classjet_1_1____comment-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__comment Member List
    +
    +
    + +

    This is the complete list of members for jet::__comment, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __comment(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__comment)jet::__comment
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____comment.html b/html/classjet_1_1____comment.html new file mode 100644 index 0000000..b6c8d08 --- /dev/null +++ b/html/classjet_1_1____comment.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__comment Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__comment Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__comment:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__comment:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __comment (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____comment__coll__graph.map b/html/classjet_1_1____comment__coll__graph.map new file mode 100644 index 0000000..1363aba --- /dev/null +++ b/html/classjet_1_1____comment__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____comment__coll__graph.md5 b/html/classjet_1_1____comment__coll__graph.md5 new file mode 100644 index 0000000..43b8264 --- /dev/null +++ b/html/classjet_1_1____comment__coll__graph.md5 @@ -0,0 +1 @@ +de5d6d5acccd073be6690167342851ee \ No newline at end of file diff --git a/html/classjet_1_1____comment__coll__graph.png b/html/classjet_1_1____comment__coll__graph.png new file mode 100644 index 0000000..a27a67e Binary files /dev/null and b/html/classjet_1_1____comment__coll__graph.png differ diff --git a/html/classjet_1_1____comment__inherit__graph.map b/html/classjet_1_1____comment__inherit__graph.map new file mode 100644 index 0000000..73122a1 --- /dev/null +++ b/html/classjet_1_1____comment__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____comment__inherit__graph.md5 b/html/classjet_1_1____comment__inherit__graph.md5 new file mode 100644 index 0000000..8b2ab87 --- /dev/null +++ b/html/classjet_1_1____comment__inherit__graph.md5 @@ -0,0 +1 @@ +4c12c7ed7974ec0952544c1803145cc0 \ No newline at end of file diff --git a/html/classjet_1_1____comment__inherit__graph.png b/html/classjet_1_1____comment__inherit__graph.png new file mode 100644 index 0000000..dd2dfba Binary files /dev/null and b/html/classjet_1_1____comment__inherit__graph.png differ diff --git a/html/classjet_1_1____cookie-members.html b/html/classjet_1_1____cookie-members.html new file mode 100644 index 0000000..ce6de17 --- /dev/null +++ b/html/classjet_1_1____cookie-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__cookie Member List
    +
    +
    + +

    This is the complete list of members for jet::__cookie, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __cookie(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__cookie)jet::__cookie
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____cookie.html b/html/classjet_1_1____cookie.html new file mode 100644 index 0000000..f4d70a8 --- /dev/null +++ b/html/classjet_1_1____cookie.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__cookie Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__cookie Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__cookie:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__cookie:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __cookie (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____cookie__coll__graph.map b/html/classjet_1_1____cookie__coll__graph.map new file mode 100644 index 0000000..877de20 --- /dev/null +++ b/html/classjet_1_1____cookie__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____cookie__coll__graph.md5 b/html/classjet_1_1____cookie__coll__graph.md5 new file mode 100644 index 0000000..c40d889 --- /dev/null +++ b/html/classjet_1_1____cookie__coll__graph.md5 @@ -0,0 +1 @@ +4634b3e5cc10747d89e55b859495e396 \ No newline at end of file diff --git a/html/classjet_1_1____cookie__coll__graph.png b/html/classjet_1_1____cookie__coll__graph.png new file mode 100644 index 0000000..fcf9b42 Binary files /dev/null and b/html/classjet_1_1____cookie__coll__graph.png differ diff --git a/html/classjet_1_1____cookie__inherit__graph.map b/html/classjet_1_1____cookie__inherit__graph.map new file mode 100644 index 0000000..3f4d25e --- /dev/null +++ b/html/classjet_1_1____cookie__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____cookie__inherit__graph.md5 b/html/classjet_1_1____cookie__inherit__graph.md5 new file mode 100644 index 0000000..f2b3d03 --- /dev/null +++ b/html/classjet_1_1____cookie__inherit__graph.md5 @@ -0,0 +1 @@ +744a27df268d7e5236a2d3b3c51b9da0 \ No newline at end of file diff --git a/html/classjet_1_1____cookie__inherit__graph.png b/html/classjet_1_1____cookie__inherit__graph.png new file mode 100644 index 0000000..eb99c46 Binary files /dev/null and b/html/classjet_1_1____cookie__inherit__graph.png differ diff --git a/html/classjet_1_1____dotag-members.html b/html/classjet_1_1____dotag-members.html new file mode 100644 index 0000000..d12b74d --- /dev/null +++ b/html/classjet_1_1____dotag-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__dotag Member List
    +
    +
    + +

    This is the complete list of members for jet::__dotag, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __dotag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__dotag)jet::__dotag
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____dotag.html b/html/classjet_1_1____dotag.html new file mode 100644 index 0000000..29dacdd --- /dev/null +++ b/html/classjet_1_1____dotag.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__dotag Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__dotag Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__dotag:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__dotag:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __dotag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____dotag__coll__graph.map b/html/classjet_1_1____dotag__coll__graph.map new file mode 100644 index 0000000..81e4f99 --- /dev/null +++ b/html/classjet_1_1____dotag__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____dotag__coll__graph.md5 b/html/classjet_1_1____dotag__coll__graph.md5 new file mode 100644 index 0000000..0789a5c --- /dev/null +++ b/html/classjet_1_1____dotag__coll__graph.md5 @@ -0,0 +1 @@ +f4c78148eaaa70aaf80f7aca58767393 \ No newline at end of file diff --git a/html/classjet_1_1____dotag__coll__graph.png b/html/classjet_1_1____dotag__coll__graph.png new file mode 100644 index 0000000..173c986 Binary files /dev/null and b/html/classjet_1_1____dotag__coll__graph.png differ diff --git a/html/classjet_1_1____dotag__inherit__graph.map b/html/classjet_1_1____dotag__inherit__graph.map new file mode 100644 index 0000000..0dedcab --- /dev/null +++ b/html/classjet_1_1____dotag__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____dotag__inherit__graph.md5 b/html/classjet_1_1____dotag__inherit__graph.md5 new file mode 100644 index 0000000..32313e4 --- /dev/null +++ b/html/classjet_1_1____dotag__inherit__graph.md5 @@ -0,0 +1 @@ +8c3b499140a9ed774350e845d375e793 \ No newline at end of file diff --git a/html/classjet_1_1____dotag__inherit__graph.png b/html/classjet_1_1____dotag__inherit__graph.png new file mode 100644 index 0000000..65e6fc5 Binary files /dev/null and b/html/classjet_1_1____dotag__inherit__graph.png differ diff --git a/html/classjet_1_1____dump-members.html b/html/classjet_1_1____dump-members.html new file mode 100644 index 0000000..92868f8 --- /dev/null +++ b/html/classjet_1_1____dump-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__dump Member List
    +
    +
    + +

    This is the complete list of members for jet::__dump, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __dump(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__dump)jet::__dump
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____dump.html b/html/classjet_1_1____dump.html new file mode 100644 index 0000000..8cd1042 --- /dev/null +++ b/html/classjet_1_1____dump.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__dump Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__dump Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__dump:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__dump:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __dump (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____dump__coll__graph.map b/html/classjet_1_1____dump__coll__graph.map new file mode 100644 index 0000000..a153226 --- /dev/null +++ b/html/classjet_1_1____dump__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____dump__coll__graph.md5 b/html/classjet_1_1____dump__coll__graph.md5 new file mode 100644 index 0000000..7cb067e --- /dev/null +++ b/html/classjet_1_1____dump__coll__graph.md5 @@ -0,0 +1 @@ +8c55dfbf2727127b764a45da20904601 \ No newline at end of file diff --git a/html/classjet_1_1____dump__coll__graph.png b/html/classjet_1_1____dump__coll__graph.png new file mode 100644 index 0000000..10b3bbd Binary files /dev/null and b/html/classjet_1_1____dump__coll__graph.png differ diff --git a/html/classjet_1_1____dump__inherit__graph.map b/html/classjet_1_1____dump__inherit__graph.map new file mode 100644 index 0000000..18f0a10 --- /dev/null +++ b/html/classjet_1_1____dump__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____dump__inherit__graph.md5 b/html/classjet_1_1____dump__inherit__graph.md5 new file mode 100644 index 0000000..742dcdd --- /dev/null +++ b/html/classjet_1_1____dump__inherit__graph.md5 @@ -0,0 +1 @@ +dfda176ef0f9e66ddfb7e7df23c30a5a \ No newline at end of file diff --git a/html/classjet_1_1____dump__inherit__graph.png b/html/classjet_1_1____dump__inherit__graph.png new file mode 100644 index 0000000..083fb7c Binary files /dev/null and b/html/classjet_1_1____dump__inherit__graph.png differ diff --git a/html/classjet_1_1____exclude-members.html b/html/classjet_1_1____exclude-members.html new file mode 100644 index 0000000..e25514f --- /dev/null +++ b/html/classjet_1_1____exclude-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__exclude Member List
    +
    +
    + +

    This is the complete list of members for jet::__exclude, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __exclude(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__exclude)jet::__exclude
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____exclude.html b/html/classjet_1_1____exclude.html new file mode 100644 index 0000000..77bd222 --- /dev/null +++ b/html/classjet_1_1____exclude.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__exclude Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__exclude Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__exclude:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__exclude:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __exclude (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____exclude__coll__graph.map b/html/classjet_1_1____exclude__coll__graph.map new file mode 100644 index 0000000..15cb6d2 --- /dev/null +++ b/html/classjet_1_1____exclude__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____exclude__coll__graph.md5 b/html/classjet_1_1____exclude__coll__graph.md5 new file mode 100644 index 0000000..1070af6 --- /dev/null +++ b/html/classjet_1_1____exclude__coll__graph.md5 @@ -0,0 +1 @@ +16aac5bfa2d168bb2867e3ff811e7a68 \ No newline at end of file diff --git a/html/classjet_1_1____exclude__coll__graph.png b/html/classjet_1_1____exclude__coll__graph.png new file mode 100644 index 0000000..ee16d23 Binary files /dev/null and b/html/classjet_1_1____exclude__coll__graph.png differ diff --git a/html/classjet_1_1____exclude__inherit__graph.map b/html/classjet_1_1____exclude__inherit__graph.map new file mode 100644 index 0000000..0ba9aa5 --- /dev/null +++ b/html/classjet_1_1____exclude__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____exclude__inherit__graph.md5 b/html/classjet_1_1____exclude__inherit__graph.md5 new file mode 100644 index 0000000..2cfd05e --- /dev/null +++ b/html/classjet_1_1____exclude__inherit__graph.md5 @@ -0,0 +1 @@ +4be1c28d45b3862f9d4552f5e9afa985 \ No newline at end of file diff --git a/html/classjet_1_1____exclude__inherit__graph.png b/html/classjet_1_1____exclude__inherit__graph.png new file mode 100644 index 0000000..a0e2340 Binary files /dev/null and b/html/classjet_1_1____exclude__inherit__graph.png differ diff --git a/html/classjet_1_1____for-members.html b/html/classjet_1_1____for-members.html new file mode 100644 index 0000000..a6f717d --- /dev/null +++ b/html/classjet_1_1____for-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__for Member List
    +
    +
    + +

    This is the complete list of members for jet::__for, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __for(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__for)jet::__for
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____for.html b/html/classjet_1_1____for.html new file mode 100644 index 0000000..c1762c4 --- /dev/null +++ b/html/classjet_1_1____for.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__for Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__for Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__for:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__for:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __for (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____for__coll__graph.map b/html/classjet_1_1____for__coll__graph.map new file mode 100644 index 0000000..9c4e65d --- /dev/null +++ b/html/classjet_1_1____for__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____for__coll__graph.md5 b/html/classjet_1_1____for__coll__graph.md5 new file mode 100644 index 0000000..ecb625c --- /dev/null +++ b/html/classjet_1_1____for__coll__graph.md5 @@ -0,0 +1 @@ +32cb90567de1789ffc51aa9640faf7e5 \ No newline at end of file diff --git a/html/classjet_1_1____for__coll__graph.png b/html/classjet_1_1____for__coll__graph.png new file mode 100644 index 0000000..7e9bcba Binary files /dev/null and b/html/classjet_1_1____for__coll__graph.png differ diff --git a/html/classjet_1_1____for__inherit__graph.map b/html/classjet_1_1____for__inherit__graph.map new file mode 100644 index 0000000..9b95b23 --- /dev/null +++ b/html/classjet_1_1____for__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____for__inherit__graph.md5 b/html/classjet_1_1____for__inherit__graph.md5 new file mode 100644 index 0000000..df9ebc3 --- /dev/null +++ b/html/classjet_1_1____for__inherit__graph.md5 @@ -0,0 +1 @@ +8477b64419474747ef1208df39eeee21 \ No newline at end of file diff --git a/html/classjet_1_1____for__inherit__graph.png b/html/classjet_1_1____for__inherit__graph.png new file mode 100644 index 0000000..9ceb11b Binary files /dev/null and b/html/classjet_1_1____for__inherit__graph.png differ diff --git a/html/classjet_1_1____header-members.html b/html/classjet_1_1____header-members.html new file mode 100644 index 0000000..15c1c12 --- /dev/null +++ b/html/classjet_1_1____header-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__header Member List
    +
    +
    + +

    This is the complete list of members for jet::__header, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __header(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__header)jet::__header
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____header.html b/html/classjet_1_1____header.html new file mode 100644 index 0000000..87733f4 --- /dev/null +++ b/html/classjet_1_1____header.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__header Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__header Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__header:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__header:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __header (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____header__coll__graph.map b/html/classjet_1_1____header__coll__graph.map new file mode 100644 index 0000000..9ae43dc --- /dev/null +++ b/html/classjet_1_1____header__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____header__coll__graph.md5 b/html/classjet_1_1____header__coll__graph.md5 new file mode 100644 index 0000000..63b893f --- /dev/null +++ b/html/classjet_1_1____header__coll__graph.md5 @@ -0,0 +1 @@ +85d1862691b557e1768b5b0148979aad \ No newline at end of file diff --git a/html/classjet_1_1____header__coll__graph.png b/html/classjet_1_1____header__coll__graph.png new file mode 100644 index 0000000..3f1d609 Binary files /dev/null and b/html/classjet_1_1____header__coll__graph.png differ diff --git a/html/classjet_1_1____header__inherit__graph.map b/html/classjet_1_1____header__inherit__graph.map new file mode 100644 index 0000000..6eb0a7f --- /dev/null +++ b/html/classjet_1_1____header__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____header__inherit__graph.md5 b/html/classjet_1_1____header__inherit__graph.md5 new file mode 100644 index 0000000..90974f9 --- /dev/null +++ b/html/classjet_1_1____header__inherit__graph.md5 @@ -0,0 +1 @@ +4010740e5b4a672ab8a5c5953e656bae \ No newline at end of file diff --git a/html/classjet_1_1____header__inherit__graph.png b/html/classjet_1_1____header__inherit__graph.png new file mode 100644 index 0000000..9e839e8 Binary files /dev/null and b/html/classjet_1_1____header__inherit__graph.png differ diff --git a/html/classjet_1_1____if-members.html b/html/classjet_1_1____if-members.html new file mode 100644 index 0000000..1621e64 --- /dev/null +++ b/html/classjet_1_1____if-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__if Member List
    +
    +
    + +

    This is the complete list of members for jet::__if, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __if(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__if)jet::__if
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____if.html b/html/classjet_1_1____if.html new file mode 100644 index 0000000..2ed55bb --- /dev/null +++ b/html/classjet_1_1____if.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__if Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__if Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__if:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__if:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __if (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____if__coll__graph.map b/html/classjet_1_1____if__coll__graph.map new file mode 100644 index 0000000..4ff8e2c --- /dev/null +++ b/html/classjet_1_1____if__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____if__coll__graph.md5 b/html/classjet_1_1____if__coll__graph.md5 new file mode 100644 index 0000000..041e217 --- /dev/null +++ b/html/classjet_1_1____if__coll__graph.md5 @@ -0,0 +1 @@ +8e1d6789ddd4d83b5ce10269dc8ede62 \ No newline at end of file diff --git a/html/classjet_1_1____if__coll__graph.png b/html/classjet_1_1____if__coll__graph.png new file mode 100644 index 0000000..49f513a Binary files /dev/null and b/html/classjet_1_1____if__coll__graph.png differ diff --git a/html/classjet_1_1____if__inherit__graph.map b/html/classjet_1_1____if__inherit__graph.map new file mode 100644 index 0000000..ab0aa76 --- /dev/null +++ b/html/classjet_1_1____if__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____if__inherit__graph.md5 b/html/classjet_1_1____if__inherit__graph.md5 new file mode 100644 index 0000000..eb076a1 --- /dev/null +++ b/html/classjet_1_1____if__inherit__graph.md5 @@ -0,0 +1 @@ +16b83febad31c1ce5fd9f9f855b066c5 \ No newline at end of file diff --git a/html/classjet_1_1____if__inherit__graph.png b/html/classjet_1_1____if__inherit__graph.png new file mode 100644 index 0000000..2cba06e Binary files /dev/null and b/html/classjet_1_1____if__inherit__graph.png differ diff --git a/html/classjet_1_1____ifrow-members.html b/html/classjet_1_1____ifrow-members.html new file mode 100644 index 0000000..99fbde7 --- /dev/null +++ b/html/classjet_1_1____ifrow-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__ifrow Member List
    +
    +
    + +

    This is the complete list of members for jet::__ifrow, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __ifrow(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__ifrow)jet::__ifrow
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____ifrow.html b/html/classjet_1_1____ifrow.html new file mode 100644 index 0000000..c033dd7 --- /dev/null +++ b/html/classjet_1_1____ifrow.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__ifrow Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__ifrow Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__ifrow:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__ifrow:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __ifrow (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____ifrow__coll__graph.map b/html/classjet_1_1____ifrow__coll__graph.map new file mode 100644 index 0000000..0405a49 --- /dev/null +++ b/html/classjet_1_1____ifrow__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____ifrow__coll__graph.md5 b/html/classjet_1_1____ifrow__coll__graph.md5 new file mode 100644 index 0000000..bc926db --- /dev/null +++ b/html/classjet_1_1____ifrow__coll__graph.md5 @@ -0,0 +1 @@ +89c7596dacfee1ef8e3f3bee4b7003bc \ No newline at end of file diff --git a/html/classjet_1_1____ifrow__coll__graph.png b/html/classjet_1_1____ifrow__coll__graph.png new file mode 100644 index 0000000..d2d34de Binary files /dev/null and b/html/classjet_1_1____ifrow__coll__graph.png differ diff --git a/html/classjet_1_1____ifrow__inherit__graph.map b/html/classjet_1_1____ifrow__inherit__graph.map new file mode 100644 index 0000000..9563448 --- /dev/null +++ b/html/classjet_1_1____ifrow__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____ifrow__inherit__graph.md5 b/html/classjet_1_1____ifrow__inherit__graph.md5 new file mode 100644 index 0000000..94d041c --- /dev/null +++ b/html/classjet_1_1____ifrow__inherit__graph.md5 @@ -0,0 +1 @@ +6057783050929e4522cb2126b001cd34 \ No newline at end of file diff --git a/html/classjet_1_1____ifrow__inherit__graph.png b/html/classjet_1_1____ifrow__inherit__graph.png new file mode 100644 index 0000000..b1a8e03 Binary files /dev/null and b/html/classjet_1_1____ifrow__inherit__graph.png differ diff --git a/html/classjet_1_1____include-members.html b/html/classjet_1_1____include-members.html new file mode 100644 index 0000000..e9d65d4 --- /dev/null +++ b/html/classjet_1_1____include-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__include Member List
    +
    +
    + +

    This is the complete list of members for jet::__include, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __include(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__include)jet::__include
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____include.html b/html/classjet_1_1____include.html new file mode 100644 index 0000000..6fe8fc1 --- /dev/null +++ b/html/classjet_1_1____include.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__include Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__include Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__include:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__include:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __include (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____include__coll__graph.map b/html/classjet_1_1____include__coll__graph.map new file mode 100644 index 0000000..0e5e793 --- /dev/null +++ b/html/classjet_1_1____include__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____include__coll__graph.md5 b/html/classjet_1_1____include__coll__graph.md5 new file mode 100644 index 0000000..ed79072 --- /dev/null +++ b/html/classjet_1_1____include__coll__graph.md5 @@ -0,0 +1 @@ +6fab3d5916ba402fca455d8688ad6e24 \ No newline at end of file diff --git a/html/classjet_1_1____include__coll__graph.png b/html/classjet_1_1____include__coll__graph.png new file mode 100644 index 0000000..4e57808 Binary files /dev/null and b/html/classjet_1_1____include__coll__graph.png differ diff --git a/html/classjet_1_1____include__inherit__graph.map b/html/classjet_1_1____include__inherit__graph.map new file mode 100644 index 0000000..8bc4872 --- /dev/null +++ b/html/classjet_1_1____include__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____include__inherit__graph.md5 b/html/classjet_1_1____include__inherit__graph.md5 new file mode 100644 index 0000000..35270f7 --- /dev/null +++ b/html/classjet_1_1____include__inherit__graph.md5 @@ -0,0 +1 @@ +dd93ad639a0457336213d896370527e9 \ No newline at end of file diff --git a/html/classjet_1_1____include__inherit__graph.png b/html/classjet_1_1____include__inherit__graph.png new file mode 100644 index 0000000..c34fff8 Binary files /dev/null and b/html/classjet_1_1____include__inherit__graph.png differ diff --git a/html/classjet_1_1____jet-members.html b/html/classjet_1_1____jet-members.html new file mode 100644 index 0000000..eeaf597 --- /dev/null +++ b/html/classjet_1_1____jet-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__jet Member List
    +
    +
    + +

    This is the complete list of members for jet::__jet, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __jet(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__jet)jet::__jet
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____jet.html b/html/classjet_1_1____jet.html new file mode 100644 index 0000000..44ae9d4 --- /dev/null +++ b/html/classjet_1_1____jet.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__jet Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__jet Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__jet:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__jet:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __jet (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____jet__coll__graph.map b/html/classjet_1_1____jet__coll__graph.map new file mode 100644 index 0000000..ac5ac5f --- /dev/null +++ b/html/classjet_1_1____jet__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____jet__coll__graph.md5 b/html/classjet_1_1____jet__coll__graph.md5 new file mode 100644 index 0000000..1f238e1 --- /dev/null +++ b/html/classjet_1_1____jet__coll__graph.md5 @@ -0,0 +1 @@ +782e5690f0aa4d558e1293e3334d1b70 \ No newline at end of file diff --git a/html/classjet_1_1____jet__coll__graph.png b/html/classjet_1_1____jet__coll__graph.png new file mode 100644 index 0000000..96a745a Binary files /dev/null and b/html/classjet_1_1____jet__coll__graph.png differ diff --git a/html/classjet_1_1____jet__inherit__graph.map b/html/classjet_1_1____jet__inherit__graph.map new file mode 100644 index 0000000..8b68dee --- /dev/null +++ b/html/classjet_1_1____jet__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____jet__inherit__graph.md5 b/html/classjet_1_1____jet__inherit__graph.md5 new file mode 100644 index 0000000..cb01f32 --- /dev/null +++ b/html/classjet_1_1____jet__inherit__graph.md5 @@ -0,0 +1 @@ +c53a650ad641398f3a4060a04183e9a6 \ No newline at end of file diff --git a/html/classjet_1_1____jet__inherit__graph.png b/html/classjet_1_1____jet__inherit__graph.png new file mode 100644 index 0000000..bc54a03 Binary files /dev/null and b/html/classjet_1_1____jet__inherit__graph.png differ diff --git a/html/classjet_1_1____mysql-members.html b/html/classjet_1_1____mysql-members.html new file mode 100644 index 0000000..0e07cc2 --- /dev/null +++ b/html/classjet_1_1____mysql-members.html @@ -0,0 +1,122 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__mysql Member List
    +
    +
    + +

    This is the complete list of members for jet::__mysql, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __mysql(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__mysql)jet::__mysql
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getColumnValue(coreutils::ZString column) (defined in jet::__mysql)jet::__mysql
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    hasRow() (defined in jet::__mysql)jet::__mysql
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    nextRow() (defined in jet::__mysql)jet::__mysql
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    query(coreutils::MString query) (defined in jet::__mysql)jet::__mysql
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~__mysql() (defined in jet::__mysql)jet::__mysql
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____mysql.html b/html/classjet_1_1____mysql.html new file mode 100644 index 0000000..c92f369 --- /dev/null +++ b/html/classjet_1_1____mysql.html @@ -0,0 +1,231 @@ + + + + + + + +My Project: jet::__mysql Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__mysql Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__mysql:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__mysql:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    __mysql (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    +void query (coreutils::MString query)
     
    +void nextRow ()
     
    +bool hasRow ()
     
    +coreutils::ZString getColumnValue (coreutils::ZString column)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____mysql__coll__graph.map b/html/classjet_1_1____mysql__coll__graph.map new file mode 100644 index 0000000..4a435c6 --- /dev/null +++ b/html/classjet_1_1____mysql__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____mysql__coll__graph.md5 b/html/classjet_1_1____mysql__coll__graph.md5 new file mode 100644 index 0000000..64bfdc3 --- /dev/null +++ b/html/classjet_1_1____mysql__coll__graph.md5 @@ -0,0 +1 @@ +2eb8a6b13c6d9332be80cdfb3cfb63c9 \ No newline at end of file diff --git a/html/classjet_1_1____mysql__coll__graph.png b/html/classjet_1_1____mysql__coll__graph.png new file mode 100644 index 0000000..22f2e71 Binary files /dev/null and b/html/classjet_1_1____mysql__coll__graph.png differ diff --git a/html/classjet_1_1____mysql__inherit__graph.map b/html/classjet_1_1____mysql__inherit__graph.map new file mode 100644 index 0000000..32beb29 --- /dev/null +++ b/html/classjet_1_1____mysql__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____mysql__inherit__graph.md5 b/html/classjet_1_1____mysql__inherit__graph.md5 new file mode 100644 index 0000000..cdc258a --- /dev/null +++ b/html/classjet_1_1____mysql__inherit__graph.md5 @@ -0,0 +1 @@ +cd2566a7a5baf4a58d193abbbc4b45c0 \ No newline at end of file diff --git a/html/classjet_1_1____mysql__inherit__graph.png b/html/classjet_1_1____mysql__inherit__graph.png new file mode 100644 index 0000000..5e15ac1 Binary files /dev/null and b/html/classjet_1_1____mysql__inherit__graph.png differ diff --git a/html/classjet_1_1____read-members.html b/html/classjet_1_1____read-members.html new file mode 100644 index 0000000..2a5246f --- /dev/null +++ b/html/classjet_1_1____read-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__read Member List
    +
    +
    + +

    This is the complete list of members for jet::__read, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __read(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__read)jet::__read
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____read.html b/html/classjet_1_1____read.html new file mode 100644 index 0000000..d384521 --- /dev/null +++ b/html/classjet_1_1____read.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__read Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__read Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__read:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__read:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __read (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____read__coll__graph.map b/html/classjet_1_1____read__coll__graph.map new file mode 100644 index 0000000..3ba5fcd --- /dev/null +++ b/html/classjet_1_1____read__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____read__coll__graph.md5 b/html/classjet_1_1____read__coll__graph.md5 new file mode 100644 index 0000000..a0d661a --- /dev/null +++ b/html/classjet_1_1____read__coll__graph.md5 @@ -0,0 +1 @@ +c1e597488159e633a9f1fe26da2884b3 \ No newline at end of file diff --git a/html/classjet_1_1____read__coll__graph.png b/html/classjet_1_1____read__coll__graph.png new file mode 100644 index 0000000..5d6465c Binary files /dev/null and b/html/classjet_1_1____read__coll__graph.png differ diff --git a/html/classjet_1_1____read__inherit__graph.map b/html/classjet_1_1____read__inherit__graph.map new file mode 100644 index 0000000..9942483 --- /dev/null +++ b/html/classjet_1_1____read__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____read__inherit__graph.md5 b/html/classjet_1_1____read__inherit__graph.md5 new file mode 100644 index 0000000..a644b4d --- /dev/null +++ b/html/classjet_1_1____read__inherit__graph.md5 @@ -0,0 +1 @@ +ba39cfdfa5d72d13195a57e239e2aeb5 \ No newline at end of file diff --git a/html/classjet_1_1____read__inherit__graph.png b/html/classjet_1_1____read__inherit__graph.png new file mode 100644 index 0000000..be8587d Binary files /dev/null and b/html/classjet_1_1____read__inherit__graph.png differ diff --git a/html/classjet_1_1____set-members.html b/html/classjet_1_1____set-members.html new file mode 100644 index 0000000..14d4f20 --- /dev/null +++ b/html/classjet_1_1____set-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__set Member List
    +
    +
    + +

    This is the complete list of members for jet::__set, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __set(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__set)jet::__set
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____set.html b/html/classjet_1_1____set.html new file mode 100644 index 0000000..8240896 --- /dev/null +++ b/html/classjet_1_1____set.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__set Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__set Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__set:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__set:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __set (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____set__coll__graph.map b/html/classjet_1_1____set__coll__graph.map new file mode 100644 index 0000000..4bb039c --- /dev/null +++ b/html/classjet_1_1____set__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____set__coll__graph.md5 b/html/classjet_1_1____set__coll__graph.md5 new file mode 100644 index 0000000..d6bf222 --- /dev/null +++ b/html/classjet_1_1____set__coll__graph.md5 @@ -0,0 +1 @@ +c05d569265860ac3e7aec50bbd8fdaf6 \ No newline at end of file diff --git a/html/classjet_1_1____set__coll__graph.png b/html/classjet_1_1____set__coll__graph.png new file mode 100644 index 0000000..3093c40 Binary files /dev/null and b/html/classjet_1_1____set__coll__graph.png differ diff --git a/html/classjet_1_1____set__inherit__graph.map b/html/classjet_1_1____set__inherit__graph.map new file mode 100644 index 0000000..0c2f27e --- /dev/null +++ b/html/classjet_1_1____set__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____set__inherit__graph.md5 b/html/classjet_1_1____set__inherit__graph.md5 new file mode 100644 index 0000000..3ab341e --- /dev/null +++ b/html/classjet_1_1____set__inherit__graph.md5 @@ -0,0 +1 @@ +a3cb8fc7309caad3f04645bf59a0d26b \ No newline at end of file diff --git a/html/classjet_1_1____set__inherit__graph.png b/html/classjet_1_1____set__inherit__graph.png new file mode 100644 index 0000000..05eb4ed Binary files /dev/null and b/html/classjet_1_1____set__inherit__graph.png differ diff --git a/html/classjet_1_1____sql-members.html b/html/classjet_1_1____sql-members.html new file mode 100644 index 0000000..3b50470 --- /dev/null +++ b/html/classjet_1_1____sql-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__sql Member List
    +
    +
    + +

    This is the complete list of members for jet::__sql, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __sql(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__sql)jet::__sql
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____sql.html b/html/classjet_1_1____sql.html new file mode 100644 index 0000000..6696057 --- /dev/null +++ b/html/classjet_1_1____sql.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__sql Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__sql Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__sql:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__sql:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __sql (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____sql__coll__graph.map b/html/classjet_1_1____sql__coll__graph.map new file mode 100644 index 0000000..4301b68 --- /dev/null +++ b/html/classjet_1_1____sql__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____sql__coll__graph.md5 b/html/classjet_1_1____sql__coll__graph.md5 new file mode 100644 index 0000000..e1b1310 --- /dev/null +++ b/html/classjet_1_1____sql__coll__graph.md5 @@ -0,0 +1 @@ +5488ed3f737ebb6d5df3714b6fe51a43 \ No newline at end of file diff --git a/html/classjet_1_1____sql__coll__graph.png b/html/classjet_1_1____sql__coll__graph.png new file mode 100644 index 0000000..b9e0439 Binary files /dev/null and b/html/classjet_1_1____sql__coll__graph.png differ diff --git a/html/classjet_1_1____sql__inherit__graph.map b/html/classjet_1_1____sql__inherit__graph.map new file mode 100644 index 0000000..41a7dd0 --- /dev/null +++ b/html/classjet_1_1____sql__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____sql__inherit__graph.md5 b/html/classjet_1_1____sql__inherit__graph.md5 new file mode 100644 index 0000000..28b5e27 --- /dev/null +++ b/html/classjet_1_1____sql__inherit__graph.md5 @@ -0,0 +1 @@ +320e2ce31a245d1eab1e47c6a0939ab5 \ No newline at end of file diff --git a/html/classjet_1_1____sql__inherit__graph.png b/html/classjet_1_1____sql__inherit__graph.png new file mode 100644 index 0000000..8ad67d5 Binary files /dev/null and b/html/classjet_1_1____sql__inherit__graph.png differ diff --git a/html/classjet_1_1____stream-members.html b/html/classjet_1_1____stream-members.html new file mode 100644 index 0000000..00c463e --- /dev/null +++ b/html/classjet_1_1____stream-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__stream Member List
    +
    +
    + +

    This is the complete list of members for jet::__stream, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __stream(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__stream)jet::__stream
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____stream.html b/html/classjet_1_1____stream.html new file mode 100644 index 0000000..a539a2d --- /dev/null +++ b/html/classjet_1_1____stream.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__stream Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__stream Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__stream:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__stream:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __stream (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____stream__coll__graph.map b/html/classjet_1_1____stream__coll__graph.map new file mode 100644 index 0000000..ff548a2 --- /dev/null +++ b/html/classjet_1_1____stream__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____stream__coll__graph.md5 b/html/classjet_1_1____stream__coll__graph.md5 new file mode 100644 index 0000000..b5f26ac --- /dev/null +++ b/html/classjet_1_1____stream__coll__graph.md5 @@ -0,0 +1 @@ +2dd91a8a81a844190a15db21fe095195 \ No newline at end of file diff --git a/html/classjet_1_1____stream__coll__graph.png b/html/classjet_1_1____stream__coll__graph.png new file mode 100644 index 0000000..09cc350 Binary files /dev/null and b/html/classjet_1_1____stream__coll__graph.png differ diff --git a/html/classjet_1_1____stream__inherit__graph.map b/html/classjet_1_1____stream__inherit__graph.map new file mode 100644 index 0000000..043a601 --- /dev/null +++ b/html/classjet_1_1____stream__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____stream__inherit__graph.md5 b/html/classjet_1_1____stream__inherit__graph.md5 new file mode 100644 index 0000000..61aca2e --- /dev/null +++ b/html/classjet_1_1____stream__inherit__graph.md5 @@ -0,0 +1 @@ +86da6ac7808b1abee7ae58bce5fb7098 \ No newline at end of file diff --git a/html/classjet_1_1____stream__inherit__graph.png b/html/classjet_1_1____stream__inherit__graph.png new file mode 100644 index 0000000..847bf30 Binary files /dev/null and b/html/classjet_1_1____stream__inherit__graph.png differ diff --git a/html/classjet_1_1____system-members.html b/html/classjet_1_1____system-members.html new file mode 100644 index 0000000..3843337 --- /dev/null +++ b/html/classjet_1_1____system-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__system Member List
    +
    +
    + +

    This is the complete list of members for jet::__system, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __system(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__system)jet::__system
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____system.html b/html/classjet_1_1____system.html new file mode 100644 index 0000000..a721721 --- /dev/null +++ b/html/classjet_1_1____system.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__system Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__system Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__system:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__system:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __system (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____system__coll__graph.map b/html/classjet_1_1____system__coll__graph.map new file mode 100644 index 0000000..817f276 --- /dev/null +++ b/html/classjet_1_1____system__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____system__coll__graph.md5 b/html/classjet_1_1____system__coll__graph.md5 new file mode 100644 index 0000000..99a489a --- /dev/null +++ b/html/classjet_1_1____system__coll__graph.md5 @@ -0,0 +1 @@ +74bd0dd39d609bdeb5377db31a10a807 \ No newline at end of file diff --git a/html/classjet_1_1____system__coll__graph.png b/html/classjet_1_1____system__coll__graph.png new file mode 100644 index 0000000..3683dd9 Binary files /dev/null and b/html/classjet_1_1____system__coll__graph.png differ diff --git a/html/classjet_1_1____system__inherit__graph.map b/html/classjet_1_1____system__inherit__graph.map new file mode 100644 index 0000000..c8d6be3 --- /dev/null +++ b/html/classjet_1_1____system__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____system__inherit__graph.md5 b/html/classjet_1_1____system__inherit__graph.md5 new file mode 100644 index 0000000..e298248 --- /dev/null +++ b/html/classjet_1_1____system__inherit__graph.md5 @@ -0,0 +1 @@ +a70cee362976765dce1292556306515c \ No newline at end of file diff --git a/html/classjet_1_1____system__inherit__graph.png b/html/classjet_1_1____system__inherit__graph.png new file mode 100644 index 0000000..2220756 Binary files /dev/null and b/html/classjet_1_1____system__inherit__graph.png differ diff --git a/html/classjet_1_1____tag-members.html b/html/classjet_1_1____tag-members.html new file mode 100644 index 0000000..935992a --- /dev/null +++ b/html/classjet_1_1____tag-members.html @@ -0,0 +1,118 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__tag Member List
    +
    +
    + +

    This is the complete list of members for jet::__tag, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__tag)jet::__tag
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    tags (defined in jet::__tag)jet::__tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____tag.html b/html/classjet_1_1____tag.html new file mode 100644 index 0000000..474dd02 --- /dev/null +++ b/html/classjet_1_1____tag.html @@ -0,0 +1,226 @@ + + + + + + + +My Project: jet::__tag Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__tag Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__tag:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__tag:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +std::map< coreutils::MString, coreutils::MString > tags
     
    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____tag__coll__graph.map b/html/classjet_1_1____tag__coll__graph.map new file mode 100644 index 0000000..c788cdd --- /dev/null +++ b/html/classjet_1_1____tag__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____tag__coll__graph.md5 b/html/classjet_1_1____tag__coll__graph.md5 new file mode 100644 index 0000000..de4dbd0 --- /dev/null +++ b/html/classjet_1_1____tag__coll__graph.md5 @@ -0,0 +1 @@ +33fe441ddeec210aa47844e2840a4446 \ No newline at end of file diff --git a/html/classjet_1_1____tag__coll__graph.png b/html/classjet_1_1____tag__coll__graph.png new file mode 100644 index 0000000..5229fd3 Binary files /dev/null and b/html/classjet_1_1____tag__coll__graph.png differ diff --git a/html/classjet_1_1____tag__inherit__graph.map b/html/classjet_1_1____tag__inherit__graph.map new file mode 100644 index 0000000..aa77871 --- /dev/null +++ b/html/classjet_1_1____tag__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____tag__inherit__graph.md5 b/html/classjet_1_1____tag__inherit__graph.md5 new file mode 100644 index 0000000..cfcb36c --- /dev/null +++ b/html/classjet_1_1____tag__inherit__graph.md5 @@ -0,0 +1 @@ +ae4e87b324783acd3e634f5ea144bde6 \ No newline at end of file diff --git a/html/classjet_1_1____tag__inherit__graph.png b/html/classjet_1_1____tag__inherit__graph.png new file mode 100644 index 0000000..f9f4b96 Binary files /dev/null and b/html/classjet_1_1____tag__inherit__graph.png differ diff --git a/html/classjet_1_1____until-members.html b/html/classjet_1_1____until-members.html new file mode 100644 index 0000000..8b094a6 --- /dev/null +++ b/html/classjet_1_1____until-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__until Member List
    +
    +
    + +

    This is the complete list of members for jet::__until, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __until(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__until)jet::__until
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____until.html b/html/classjet_1_1____until.html new file mode 100644 index 0000000..d83b44e --- /dev/null +++ b/html/classjet_1_1____until.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__until Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__until Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__until:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__until:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __until (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____until__coll__graph.map b/html/classjet_1_1____until__coll__graph.map new file mode 100644 index 0000000..0c40142 --- /dev/null +++ b/html/classjet_1_1____until__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____until__coll__graph.md5 b/html/classjet_1_1____until__coll__graph.md5 new file mode 100644 index 0000000..489b658 --- /dev/null +++ b/html/classjet_1_1____until__coll__graph.md5 @@ -0,0 +1 @@ +0a12f2c8083ebcd0b1137ea45767aff1 \ No newline at end of file diff --git a/html/classjet_1_1____until__coll__graph.png b/html/classjet_1_1____until__coll__graph.png new file mode 100644 index 0000000..7ba3dd4 Binary files /dev/null and b/html/classjet_1_1____until__coll__graph.png differ diff --git a/html/classjet_1_1____until__inherit__graph.map b/html/classjet_1_1____until__inherit__graph.map new file mode 100644 index 0000000..b02ab19 --- /dev/null +++ b/html/classjet_1_1____until__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____until__inherit__graph.md5 b/html/classjet_1_1____until__inherit__graph.md5 new file mode 100644 index 0000000..ff003d2 --- /dev/null +++ b/html/classjet_1_1____until__inherit__graph.md5 @@ -0,0 +1 @@ +9db77d2e2fb74ed5e66dbcb8f7fe70e4 \ No newline at end of file diff --git a/html/classjet_1_1____until__inherit__graph.png b/html/classjet_1_1____until__inherit__graph.png new file mode 100644 index 0000000..f644894 Binary files /dev/null and b/html/classjet_1_1____until__inherit__graph.png differ diff --git a/html/classjet_1_1____while-members.html b/html/classjet_1_1____while-members.html new file mode 100644 index 0000000..f45920e --- /dev/null +++ b/html/classjet_1_1____while-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__while Member List
    +
    +
    + +

    This is the complete list of members for jet::__while, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __while(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__while)jet::__while
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____while.html b/html/classjet_1_1____while.html new file mode 100644 index 0000000..04d2239 --- /dev/null +++ b/html/classjet_1_1____while.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__while Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__while Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__while:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__while:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __while (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____while__coll__graph.map b/html/classjet_1_1____while__coll__graph.map new file mode 100644 index 0000000..801ce34 --- /dev/null +++ b/html/classjet_1_1____while__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____while__coll__graph.md5 b/html/classjet_1_1____while__coll__graph.md5 new file mode 100644 index 0000000..9b549dc --- /dev/null +++ b/html/classjet_1_1____while__coll__graph.md5 @@ -0,0 +1 @@ +202246f31aa86a020bceb86668cd498c \ No newline at end of file diff --git a/html/classjet_1_1____while__coll__graph.png b/html/classjet_1_1____while__coll__graph.png new file mode 100644 index 0000000..816eb2a Binary files /dev/null and b/html/classjet_1_1____while__coll__graph.png differ diff --git a/html/classjet_1_1____while__inherit__graph.map b/html/classjet_1_1____while__inherit__graph.map new file mode 100644 index 0000000..7d860eb --- /dev/null +++ b/html/classjet_1_1____while__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____while__inherit__graph.md5 b/html/classjet_1_1____while__inherit__graph.md5 new file mode 100644 index 0000000..a56ba8f --- /dev/null +++ b/html/classjet_1_1____while__inherit__graph.md5 @@ -0,0 +1 @@ +1a57d9f0337344a807fbb6038768aa78 \ No newline at end of file diff --git a/html/classjet_1_1____while__inherit__graph.png b/html/classjet_1_1____while__inherit__graph.png new file mode 100644 index 0000000..14ef331 Binary files /dev/null and b/html/classjet_1_1____while__inherit__graph.png differ diff --git a/html/classjet_1_1____whiledir-members.html b/html/classjet_1_1____whiledir-members.html new file mode 100644 index 0000000..ad5410a --- /dev/null +++ b/html/classjet_1_1____whiledir-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__whiledir Member List
    +
    +
    + +

    This is the complete list of members for jet::__whiledir, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __whiledir(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__whiledir)jet::__whiledir
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____whiledir.html b/html/classjet_1_1____whiledir.html new file mode 100644 index 0000000..6290fc4 --- /dev/null +++ b/html/classjet_1_1____whiledir.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__whiledir Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__whiledir Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__whiledir:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__whiledir:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __whiledir (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____whiledir__coll__graph.map b/html/classjet_1_1____whiledir__coll__graph.map new file mode 100644 index 0000000..ee322ed --- /dev/null +++ b/html/classjet_1_1____whiledir__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____whiledir__coll__graph.md5 b/html/classjet_1_1____whiledir__coll__graph.md5 new file mode 100644 index 0000000..9180244 --- /dev/null +++ b/html/classjet_1_1____whiledir__coll__graph.md5 @@ -0,0 +1 @@ +8c547294a376ac04f92a099ba278c6c4 \ No newline at end of file diff --git a/html/classjet_1_1____whiledir__coll__graph.png b/html/classjet_1_1____whiledir__coll__graph.png new file mode 100644 index 0000000..f93b050 Binary files /dev/null and b/html/classjet_1_1____whiledir__coll__graph.png differ diff --git a/html/classjet_1_1____whiledir__inherit__graph.map b/html/classjet_1_1____whiledir__inherit__graph.map new file mode 100644 index 0000000..2b56d7b --- /dev/null +++ b/html/classjet_1_1____whiledir__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____whiledir__inherit__graph.md5 b/html/classjet_1_1____whiledir__inherit__graph.md5 new file mode 100644 index 0000000..48ed2ac --- /dev/null +++ b/html/classjet_1_1____whiledir__inherit__graph.md5 @@ -0,0 +1 @@ +7d4800edc31befaf3537daba52e5772b \ No newline at end of file diff --git a/html/classjet_1_1____whiledir__inherit__graph.png b/html/classjet_1_1____whiledir__inherit__graph.png new file mode 100644 index 0000000..9d8d88b Binary files /dev/null and b/html/classjet_1_1____whiledir__inherit__graph.png differ diff --git a/html/classjet_1_1____whilerow-members.html b/html/classjet_1_1____whilerow-members.html new file mode 100644 index 0000000..4794328 --- /dev/null +++ b/html/classjet_1_1____whilerow-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__whilerow Member List
    +
    +
    + +

    This is the complete list of members for jet::__whilerow, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __whilerow(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__whilerow)jet::__whilerow
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____whilerow.html b/html/classjet_1_1____whilerow.html new file mode 100644 index 0000000..6d1db7d --- /dev/null +++ b/html/classjet_1_1____whilerow.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__whilerow Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__whilerow Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__whilerow:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__whilerow:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __whilerow (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____whilerow__coll__graph.map b/html/classjet_1_1____whilerow__coll__graph.map new file mode 100644 index 0000000..eddb52d --- /dev/null +++ b/html/classjet_1_1____whilerow__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____whilerow__coll__graph.md5 b/html/classjet_1_1____whilerow__coll__graph.md5 new file mode 100644 index 0000000..32cca3c --- /dev/null +++ b/html/classjet_1_1____whilerow__coll__graph.md5 @@ -0,0 +1 @@ +e247341134f9c1ed5324b3a6146058a1 \ No newline at end of file diff --git a/html/classjet_1_1____whilerow__coll__graph.png b/html/classjet_1_1____whilerow__coll__graph.png new file mode 100644 index 0000000..de4e2a8 Binary files /dev/null and b/html/classjet_1_1____whilerow__coll__graph.png differ diff --git a/html/classjet_1_1____whilerow__inherit__graph.map b/html/classjet_1_1____whilerow__inherit__graph.map new file mode 100644 index 0000000..4d8b87a --- /dev/null +++ b/html/classjet_1_1____whilerow__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____whilerow__inherit__graph.md5 b/html/classjet_1_1____whilerow__inherit__graph.md5 new file mode 100644 index 0000000..cea2fee --- /dev/null +++ b/html/classjet_1_1____whilerow__inherit__graph.md5 @@ -0,0 +1 @@ +513e44e612a95dcee7292d3fb2bd1d69 \ No newline at end of file diff --git a/html/classjet_1_1____whilerow__inherit__graph.png b/html/classjet_1_1____whilerow__inherit__graph.png new file mode 100644 index 0000000..3ab6631 Binary files /dev/null and b/html/classjet_1_1____whilerow__inherit__graph.png differ diff --git a/html/classjet_1_1____write-members.html b/html/classjet_1_1____write-members.html new file mode 100644 index 0000000..b8236eb --- /dev/null +++ b/html/classjet_1_1____write-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    jet::__write Member List
    +
    +
    + +

    This is the complete list of members for jet::__write, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __write(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) (defined in jet::__write)jet::__write
    cleanWhitespace (defined in jet::Tag)jet::Tagprotected
    container (defined in jet::Tag)jet::Tag
    container2 (defined in jet::Tag)jet::Tag
    copyContainer(coreutils::ZString &in, coreutils::MString &out) (defined in jet::Tag)jet::Tagprotected
    evaluate (defined in jet::Tag)jet::Tagprotected
    filterBlankLines (defined in jet::Tag)jet::Tagprotected
    getVariable(coreutils::ZString &variable, bool inContainer=false) (defined in jet::Tag)jet::Tag
    global (defined in jet::Tag)jet::Tag
    hasContainer (defined in jet::Tag)jet::Tagprotected
    hasContainer2 (defined in jet::Tag)jet::Tagprotected
    keywordDefined(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    keywords (defined in jet::Tag)jet::Tag
    local (defined in jet::Tag)jet::Tag
    name (defined in jet::Tag)jet::Tag
    out (defined in jet::Tag)jet::Tagprotected
    output (defined in jet::Tag)jet::Tagprotected
    parent (defined in jet::Tag)jet::Tag
    parentOut (defined in jet::Tag)jet::Tagprotected
    parseContainer(coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    processContainer(coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false) (defined in jet::Tag)jet::Tagprotected
    renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier) (defined in jet::Tag)jet::Tagprotected
    resolveKeyword(coreutils::ZString keyword)jet::Tag
    storeVariable(coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope) (defined in jet::Tag)jet::Tagprotected
    storeVariable(coreutils::ZString variable) (defined in jet::Tag)jet::Tagprotected
    Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="") (defined in jet::Tag)jet::Tag
    trimLines (defined in jet::Tag)jet::Tagprotected
    variables (defined in jet::Tag)jet::Tag
    ~Tag()jet::Tagvirtual
    + + + + diff --git a/html/classjet_1_1____write.html b/html/classjet_1_1____write.html new file mode 100644 index 0000000..07e5c7a --- /dev/null +++ b/html/classjet_1_1____write.html @@ -0,0 +1,219 @@ + + + + + + + +My Project: jet::__write Class Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    jet::__write Class Reference
    +
    +
    +
    +Inheritance diagram for jet::__write:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    +
    +Collaboration diagram for jet::__write:
    +
    +
    Collaboration graph
    + + + + + + + + + + +
    [legend]
    + + + + + + + + + + + + + + + +

    +Public Member Functions

    __write (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local)
     
    - Public Member Functions inherited from jet::Tag
    Tag (coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent=NULL, Tag *local=NULL, coreutils::ZString splitTagName="")
     
    +virtual ~Tag ()
     >Constructor
     
    +coreutils::MString getVariable (coreutils::ZString &variable, bool inContainer=false)
     
    +coreutils::MString resolveKeyword (coreutils::ZString keyword)
     >retrieve a vairable value from a text string cotontaining a variable name.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from jet::Tag
    +std::map< coreutils::MString, coreutils::MString > variables
     
    +std::map< coreutils::MString, coreutils::MString > keywords
     
    +coreutils::ZString name
     
    +coreutils::ZString container
     
    +coreutils::ZString container2
     
    +Globalglobal
     
    +Tagparent
     
    +Taglocal
     
    - Protected Member Functions inherited from jet::Tag
    +bool keywordDefined (coreutils::ZString variable)
     
    +void parseContainer (coreutils::ZString &in, coreutils::MString &out, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void processContainer (coreutils::ZString &container, coreutils::ZString container2=NULL, bool topLevel=false)
     
    +void copyContainer (coreutils::ZString &in, coreutils::MString &out)
     
    +void renderVariableName (coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier)
     
    +void storeVariable (coreutils::ZString variable, coreutils::MString value, coreutils::ZString scope)
     
    +void storeVariable (coreutils::ZString variable)
     
    - Protected Attributes inherited from jet::Tag
    +bool hasContainer = false
     
    +bool hasContainer2 = false
     
    +coreutils::MString & parentOut
     
    +coreutils::MString out
     
    +bool output = true
     
    +bool evaluate = true
     
    +bool filterBlankLines = false
     
    +bool trimLines = false
     
    +bool cleanWhitespace = false
     
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/html/classjet_1_1____write__coll__graph.map b/html/classjet_1_1____write__coll__graph.map new file mode 100644 index 0000000..d3ecada --- /dev/null +++ b/html/classjet_1_1____write__coll__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/html/classjet_1_1____write__coll__graph.md5 b/html/classjet_1_1____write__coll__graph.md5 new file mode 100644 index 0000000..753e63a --- /dev/null +++ b/html/classjet_1_1____write__coll__graph.md5 @@ -0,0 +1 @@ +047d77a5f280de5f3dcfd6af41410e4b \ No newline at end of file diff --git a/html/classjet_1_1____write__coll__graph.png b/html/classjet_1_1____write__coll__graph.png new file mode 100644 index 0000000..af798b9 Binary files /dev/null and b/html/classjet_1_1____write__coll__graph.png differ diff --git a/html/classjet_1_1____write__inherit__graph.map b/html/classjet_1_1____write__inherit__graph.map new file mode 100644 index 0000000..2e2f66e --- /dev/null +++ b/html/classjet_1_1____write__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/classjet_1_1____write__inherit__graph.md5 b/html/classjet_1_1____write__inherit__graph.md5 new file mode 100644 index 0000000..1e9f642 --- /dev/null +++ b/html/classjet_1_1____write__inherit__graph.md5 @@ -0,0 +1 @@ +d7e4ac96778bc1ab09038f72526bd41b \ No newline at end of file diff --git a/html/classjet_1_1____write__inherit__graph.png b/html/classjet_1_1____write__inherit__graph.png new file mode 100644 index 0000000..3fa1345 Binary files /dev/null and b/html/classjet_1_1____write__inherit__graph.png differ diff --git a/html/closed.png b/html/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/html/closed.png differ diff --git a/html/doc.svg b/html/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/html/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/html/docd.svg b/html/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/html/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/html/doxygen.css b/html/doxygen.css new file mode 100644 index 0000000..009a9b5 --- /dev/null +++ b/html/doxygen.css @@ -0,0 +1,2045 @@ +/* The standard CSS for doxygen 1.9.8*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/html/doxygen.svg b/html/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/html/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/html/dynsections.js b/html/dynsections.js new file mode 100644 index 0000000..b73c828 --- /dev/null +++ b/html/dynsections.js @@ -0,0 +1,192 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + var id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + var start = $(this).attr('data-start'); + var end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + var line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); +} + +/* @license-end */ diff --git a/html/files.html b/html/files.html new file mode 100644 index 0000000..d47fa6a --- /dev/null +++ b/html/files.html @@ -0,0 +1,113 @@ + + + + + + + +My Project: File List + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    File List
    +
    +
    +
    Here is a list of all documented files with brief descriptions:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     __call.h
     __comment.h
     __cookie.h
     __dotag.h
     __dump.h
     __exclude.h
     __for.h
     __header.h
     __if.h
     __ifrow.h
     __include.h
     __jet.h
     __mysql.h
     __read.h
     __set.h
     __sql.h
     __stream.h
     __system.h
     __tag.h
     __until.h
     __while.h
     __whiledir.h
     __whilerow.h
     __write.h
     Global.h
     Operand.h
     SessionId.h
     Tag.h
    +
    +
    + + + + diff --git a/html/folderclosed.svg b/html/folderclosed.svg new file mode 100644 index 0000000..b04bed2 --- /dev/null +++ b/html/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/html/folderclosedd.svg b/html/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/html/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/html/folderopen.svg b/html/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/html/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/html/folderopend.svg b/html/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/html/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/html/functions.html b/html/functions.html new file mode 100644 index 0000000..7f007e3 --- /dev/null +++ b/html/functions.html @@ -0,0 +1,83 @@ + + + + + + + +My Project: Class Members + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    +
    + + + + diff --git a/html/functions_func.html b/html/functions_func.html new file mode 100644 index 0000000..d0b64a0 --- /dev/null +++ b/html/functions_func.html @@ -0,0 +1,82 @@ + + + + + + + +My Project: Class Members - Functions + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    +
    + + + + diff --git a/html/functions_vars.html b/html/functions_vars.html new file mode 100644 index 0000000..a380132 --- /dev/null +++ b/html/functions_vars.html @@ -0,0 +1,81 @@ + + + + + + + +My Project: Class Members - Variables + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented variables with links to the class documentation for each member:
    +
    + + + + diff --git a/html/graph_legend.html b/html/graph_legend.html new file mode 100644 index 0000000..ecc9d7b --- /dev/null +++ b/html/graph_legend.html @@ -0,0 +1,141 @@ + + + + + + + +My Project: Graph Legend + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Graph Legend
    +
    +
    +

    This page explains how to interpret the graphs that are generated by doxygen.

    +

    Consider the following example:

    /*! Invisible class because of truncation */
    +
    class Invisible { };
    +
    +
    /*! Truncated class, inheritance relation is hidden */
    +
    class Truncated : public Invisible { };
    +
    +
    /* Class not documented with doxygen comments */
    +
    class Undocumented { };
    +
    +
    /*! Class that is inherited using public inheritance */
    +
    class PublicBase : public Truncated { };
    +
    +
    /*! A template class */
    +
    template<class T> class Templ { };
    +
    +
    /*! Class that is inherited using protected inheritance */
    +
    class ProtectedBase { };
    +
    +
    /*! Class that is inherited using private inheritance */
    +
    class PrivateBase { };
    +
    +
    /*! Class that is used by the Inherited class */
    +
    class Used { };
    +
    +
    /*! Super class that inherits a number of other classes */
    +
    class Inherited : public PublicBase,
    +
    protected ProtectedBase,
    +
    private PrivateBase,
    +
    public Undocumented,
    +
    public Templ<int>
    +
    {
    +
    private:
    +
    Used *m_usedClass;
    +
    };
    +

    This will result in the following graph:

    +

    The boxes in the above graph have the following meaning:

    +
      +
    • +A filled gray box represents the struct or class for which the graph is generated.
    • +
    • +A box with a black border denotes a documented struct or class.
    • +
    • +A box with a gray border denotes an undocumented struct or class.
    • +
    • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
    • +
    +

    The arrows have the following meaning:

    +
      +
    • +A blue arrow is used to visualize a public inheritance relation between two classes.
    • +
    • +A dark green arrow is used for protected inheritance.
    • +
    • +A dark red arrow is used for private inheritance.
    • +
    • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
    • +
    • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
    • +
    +
    + + + + diff --git a/html/graph_legend.md5 b/html/graph_legend.md5 new file mode 100644 index 0000000..da515da --- /dev/null +++ b/html/graph_legend.md5 @@ -0,0 +1 @@ +f74606a252eb303675caf37987d0b7af \ No newline at end of file diff --git a/html/graph_legend.png b/html/graph_legend.png new file mode 100644 index 0000000..2d88046 Binary files /dev/null and b/html/graph_legend.png differ diff --git a/html/hierarchy.html b/html/hierarchy.html new file mode 100644 index 0000000..0acf9c7 --- /dev/null +++ b/html/hierarchy.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Class Hierarchy + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Class Hierarchy
    +
    +
    +
    +

    Go to the graphical class hierarchy

    +This inheritance list is sorted roughly, but not completely, alphabetically:
    +
    + + + + diff --git a/html/index.html b/html/index.html new file mode 100644 index 0000000..a6ec34d --- /dev/null +++ b/html/index.html @@ -0,0 +1,81 @@ + + + + + + + +My Project: Main Page + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    My Project Documentation
    +
    +
    +
    + + + + diff --git a/html/inherit_graph_0.map b/html/inherit_graph_0.map new file mode 100644 index 0000000..483a53b --- /dev/null +++ b/html/inherit_graph_0.map @@ -0,0 +1,5 @@ + + + + + diff --git a/html/inherit_graph_0.md5 b/html/inherit_graph_0.md5 new file mode 100644 index 0000000..369ed6d --- /dev/null +++ b/html/inherit_graph_0.md5 @@ -0,0 +1 @@ +045cf145660a837eb82bf9261bdf73e1 \ No newline at end of file diff --git a/html/inherit_graph_0.png b/html/inherit_graph_0.png new file mode 100644 index 0000000..ddc56b2 Binary files /dev/null and b/html/inherit_graph_0.png differ diff --git a/html/inherit_graph_1.map b/html/inherit_graph_1.map new file mode 100644 index 0000000..181b16f --- /dev/null +++ b/html/inherit_graph_1.map @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/html/inherit_graph_1.md5 b/html/inherit_graph_1.md5 new file mode 100644 index 0000000..b7afa8f --- /dev/null +++ b/html/inherit_graph_1.md5 @@ -0,0 +1 @@ +be75327a4169e79776d73e0cfb8e0ece \ No newline at end of file diff --git a/html/inherit_graph_1.png b/html/inherit_graph_1.png new file mode 100644 index 0000000..69f74a5 Binary files /dev/null and b/html/inherit_graph_1.png differ diff --git a/html/inherit_graph_2.map b/html/inherit_graph_2.map new file mode 100644 index 0000000..fba2768 --- /dev/null +++ b/html/inherit_graph_2.map @@ -0,0 +1,3 @@ + + + diff --git a/html/inherit_graph_2.md5 b/html/inherit_graph_2.md5 new file mode 100644 index 0000000..c720c57 --- /dev/null +++ b/html/inherit_graph_2.md5 @@ -0,0 +1 @@ +3c3240361f5bf46eef1ebcf35c506193 \ No newline at end of file diff --git a/html/inherit_graph_2.png b/html/inherit_graph_2.png new file mode 100644 index 0000000..f5a20d2 Binary files /dev/null and b/html/inherit_graph_2.png differ diff --git a/html/inherit_graph_3.map b/html/inherit_graph_3.map new file mode 100644 index 0000000..872a03a --- /dev/null +++ b/html/inherit_graph_3.map @@ -0,0 +1,3 @@ + + + diff --git a/html/inherit_graph_3.md5 b/html/inherit_graph_3.md5 new file mode 100644 index 0000000..cf8170c --- /dev/null +++ b/html/inherit_graph_3.md5 @@ -0,0 +1 @@ +0bd8b4dfc5bbdd563402fd67255a11ff \ No newline at end of file diff --git a/html/inherit_graph_3.png b/html/inherit_graph_3.png new file mode 100644 index 0000000..d97e960 Binary files /dev/null and b/html/inherit_graph_3.png differ diff --git a/html/inherits.html b/html/inherits.html new file mode 100644 index 0000000..29a53aa --- /dev/null +++ b/html/inherits.html @@ -0,0 +1,157 @@ + + + + + + + +My Project: Class Hierarchy + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Class Hierarchy
    +
    +
    + + + + + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    +
    + + + + diff --git a/html/jquery.js b/html/jquery.js new file mode 100644 index 0000000..1dffb65 --- /dev/null +++ b/html/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
  • "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/html/menu.js b/html/menu.js new file mode 100644 index 0000000..b0b2693 --- /dev/null +++ b/html/menu.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+='
      '; + for (var i in data.children) { + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
    • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
    • '; + } + result+='
    '; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
    '+ + '
    '+ + '
     '+ + ''+ + '
    '+ + '
    '+ + '
    '+ + '
    '; + } else { + searchBoxHtml='
    '+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
    '; + } + } + + $('#main-nav').before('
    '+ + ''+ + ''+ + '
    '); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/html/menudata.js b/html/menudata.js new file mode 100644 index 0000000..e6aa5c8 --- /dev/null +++ b/html/menudata.js @@ -0,0 +1,36 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html"}, +{text:"Functions",url:"functions_func.html"}, +{text:"Variables",url:"functions_vars.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/html/minus.svg b/html/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/html/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/html/minusd.svg b/html/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/html/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/html/nav_f.png b/html/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/html/nav_f.png differ diff --git a/html/nav_fd.png b/html/nav_fd.png new file mode 100644 index 0000000..032fbdd Binary files /dev/null and b/html/nav_fd.png differ diff --git a/html/nav_g.png b/html/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/html/nav_g.png differ diff --git a/html/nav_h.png b/html/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/html/nav_h.png differ diff --git a/html/nav_hd.png b/html/nav_hd.png new file mode 100644 index 0000000..de80f18 Binary files /dev/null and b/html/nav_hd.png differ diff --git a/html/open.png b/html/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/html/open.png differ diff --git a/html/plus.svg b/html/plus.svg new file mode 100644 index 0000000..0752016 --- /dev/null +++ b/html/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/html/plusd.svg b/html/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/html/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/html/search/all_0.js b/html/search/all_0.js new file mode 100644 index 0000000..ed34116 --- /dev/null +++ b/html/search/all_0.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['_5f_5fcall_0',['__call',['../classjet_1_1____call.html',1,'jet']]], + ['_5f_5fcomment_1',['__comment',['../classjet_1_1____comment.html',1,'jet']]], + ['_5f_5fcookie_2',['__cookie',['../classjet_1_1____cookie.html',1,'jet']]], + ['_5f_5fdotag_3',['__dotag',['../classjet_1_1____dotag.html',1,'jet']]], + ['_5f_5fdump_4',['__dump',['../classjet_1_1____dump.html',1,'jet']]], + ['_5f_5fexclude_5',['__exclude',['../classjet_1_1____exclude.html',1,'jet']]], + ['_5f_5ffor_6',['__for',['../classjet_1_1____for.html',1,'jet']]], + ['_5f_5fheader_7',['__header',['../classjet_1_1____header.html',1,'jet']]], + ['_5f_5fif_8',['__if',['../classjet_1_1____if.html',1,'jet']]], + ['_5f_5fifrow_9',['__ifrow',['../classjet_1_1____ifrow.html',1,'jet']]], + ['_5f_5finclude_10',['__include',['../classjet_1_1____include.html',1,'jet']]], + ['_5f_5fjet_11',['__jet',['../classjet_1_1____jet.html',1,'jet']]], + ['_5f_5fmysql_12',['__mysql',['../classjet_1_1____mysql.html',1,'jet']]], + ['_5f_5fread_13',['__read',['../classjet_1_1____read.html',1,'jet']]], + ['_5f_5fset_14',['__set',['../classjet_1_1____set.html',1,'jet']]], + ['_5f_5fsql_15',['__sql',['../classjet_1_1____sql.html',1,'jet']]], + ['_5f_5fstream_16',['__stream',['../classjet_1_1____stream.html',1,'jet']]], + ['_5f_5fsystem_17',['__system',['../classjet_1_1____system.html',1,'jet']]], + ['_5f_5ftag_18',['__tag',['../classjet_1_1____tag.html',1,'jet']]], + ['_5f_5funtil_19',['__until',['../classjet_1_1____until.html',1,'jet']]], + ['_5f_5fwhile_20',['__while',['../classjet_1_1____while.html',1,'jet']]], + ['_5f_5fwhiledir_21',['__whiledir',['../classjet_1_1____whiledir.html',1,'jet']]], + ['_5f_5fwhilerow_22',['__whilerow',['../classjet_1_1____whilerow.html',1,'jet']]], + ['_5f_5fwrite_23',['__write',['../classjet_1_1____write.html',1,'jet']]] +]; diff --git a/html/search/all_1.js b/html/search/all_1.js new file mode 100644 index 0000000..de72de9 --- /dev/null +++ b/html/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['boolean_0',['boolean',['../classjet_1_1Operand.html#aff226980c53d083ab2b6babdb595bf5b',1,'jet::Operand']]] +]; diff --git a/html/search/all_2.js b/html/search/all_2.js new file mode 100644 index 0000000..34e3531 --- /dev/null +++ b/html/search/all_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['global_0',['Global',['../classjet_1_1Global.html',1,'jet']]] +]; diff --git a/html/search/all_3.js b/html/search/all_3.js new file mode 100644 index 0000000..6296428 --- /dev/null +++ b/html/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['operand_0',['Operand',['../classjet_1_1Operand.html',1,'jet']]] +]; diff --git a/html/search/all_4.js b/html/search/all_4.js new file mode 100644 index 0000000..1d648e4 --- /dev/null +++ b/html/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resolvekeyword_0',['resolveKeyword',['../classjet_1_1Tag.html#a8dfb107f3c2bbe7bcc9e8d566153c0e3',1,'jet::Tag']]] +]; diff --git a/html/search/all_5.js b/html/search/all_5.js new file mode 100644 index 0000000..d2a3b5b --- /dev/null +++ b/html/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sessionid_0',['SessionId',['../classjet_1_1SessionId.html',1,'jet']]] +]; diff --git a/html/search/all_6.js b/html/search/all_6.js new file mode 100644 index 0000000..84c13be --- /dev/null +++ b/html/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tag_0',['Tag',['../classjet_1_1Tag.html',1,'jet']]] +]; diff --git a/html/search/all_7.js b/html/search/all_7.js new file mode 100644 index 0000000..39f17a2 --- /dev/null +++ b/html/search/all_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7etag_0',['~Tag',['../classjet_1_1Tag.html#ae38b29ca4dc8b0cbd09a2b2b377f2704',1,'jet::Tag']]] +]; diff --git a/html/search/classes_0.js b/html/search/classes_0.js new file mode 100644 index 0000000..ed34116 --- /dev/null +++ b/html/search/classes_0.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['_5f_5fcall_0',['__call',['../classjet_1_1____call.html',1,'jet']]], + ['_5f_5fcomment_1',['__comment',['../classjet_1_1____comment.html',1,'jet']]], + ['_5f_5fcookie_2',['__cookie',['../classjet_1_1____cookie.html',1,'jet']]], + ['_5f_5fdotag_3',['__dotag',['../classjet_1_1____dotag.html',1,'jet']]], + ['_5f_5fdump_4',['__dump',['../classjet_1_1____dump.html',1,'jet']]], + ['_5f_5fexclude_5',['__exclude',['../classjet_1_1____exclude.html',1,'jet']]], + ['_5f_5ffor_6',['__for',['../classjet_1_1____for.html',1,'jet']]], + ['_5f_5fheader_7',['__header',['../classjet_1_1____header.html',1,'jet']]], + ['_5f_5fif_8',['__if',['../classjet_1_1____if.html',1,'jet']]], + ['_5f_5fifrow_9',['__ifrow',['../classjet_1_1____ifrow.html',1,'jet']]], + ['_5f_5finclude_10',['__include',['../classjet_1_1____include.html',1,'jet']]], + ['_5f_5fjet_11',['__jet',['../classjet_1_1____jet.html',1,'jet']]], + ['_5f_5fmysql_12',['__mysql',['../classjet_1_1____mysql.html',1,'jet']]], + ['_5f_5fread_13',['__read',['../classjet_1_1____read.html',1,'jet']]], + ['_5f_5fset_14',['__set',['../classjet_1_1____set.html',1,'jet']]], + ['_5f_5fsql_15',['__sql',['../classjet_1_1____sql.html',1,'jet']]], + ['_5f_5fstream_16',['__stream',['../classjet_1_1____stream.html',1,'jet']]], + ['_5f_5fsystem_17',['__system',['../classjet_1_1____system.html',1,'jet']]], + ['_5f_5ftag_18',['__tag',['../classjet_1_1____tag.html',1,'jet']]], + ['_5f_5funtil_19',['__until',['../classjet_1_1____until.html',1,'jet']]], + ['_5f_5fwhile_20',['__while',['../classjet_1_1____while.html',1,'jet']]], + ['_5f_5fwhiledir_21',['__whiledir',['../classjet_1_1____whiledir.html',1,'jet']]], + ['_5f_5fwhilerow_22',['__whilerow',['../classjet_1_1____whilerow.html',1,'jet']]], + ['_5f_5fwrite_23',['__write',['../classjet_1_1____write.html',1,'jet']]] +]; diff --git a/html/search/classes_1.js b/html/search/classes_1.js new file mode 100644 index 0000000..34e3531 --- /dev/null +++ b/html/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['global_0',['Global',['../classjet_1_1Global.html',1,'jet']]] +]; diff --git a/html/search/classes_2.js b/html/search/classes_2.js new file mode 100644 index 0000000..6296428 --- /dev/null +++ b/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['operand_0',['Operand',['../classjet_1_1Operand.html',1,'jet']]] +]; diff --git a/html/search/classes_3.js b/html/search/classes_3.js new file mode 100644 index 0000000..d2a3b5b --- /dev/null +++ b/html/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sessionid_0',['SessionId',['../classjet_1_1SessionId.html',1,'jet']]] +]; diff --git a/html/search/classes_4.js b/html/search/classes_4.js new file mode 100644 index 0000000..84c13be --- /dev/null +++ b/html/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tag_0',['Tag',['../classjet_1_1Tag.html',1,'jet']]] +]; diff --git a/html/search/close.svg b/html/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/html/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/html/search/functions_0.js b/html/search/functions_0.js new file mode 100644 index 0000000..1d648e4 --- /dev/null +++ b/html/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resolvekeyword_0',['resolveKeyword',['../classjet_1_1Tag.html#a8dfb107f3c2bbe7bcc9e8d566153c0e3',1,'jet::Tag']]] +]; diff --git a/html/search/functions_1.js b/html/search/functions_1.js new file mode 100644 index 0000000..39f17a2 --- /dev/null +++ b/html/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7etag_0',['~Tag',['../classjet_1_1Tag.html#ae38b29ca4dc8b0cbd09a2b2b377f2704',1,'jet::Tag']]] +]; diff --git a/html/search/mag.svg b/html/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/html/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/html/search/mag_d.svg b/html/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/html/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/html/search/mag_sel.svg b/html/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/html/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/html/search/mag_seld.svg b/html/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/html/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/html/search/search.css b/html/search/search.css new file mode 100644 index 0000000..19f76f9 --- /dev/null +++ b/html/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/html/search/search.js b/html/search/search.js new file mode 100644 index 0000000..6fd40c6 --- /dev/null +++ b/html/search/search.js @@ -0,0 +1,840 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; eli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all 0.25s;transition:all 0.25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}#main-menu-state:not(:checked)~#main-menu{display:none}#main-menu-state:checked~#main-menu{display:block}@media (min-width: 768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked)~#main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:none}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} diff --git a/latex/Global_8h_source.tex b/latex/Global_8h_source.tex new file mode 100644 index 0000000..15491e6 --- /dev/null +++ b/latex/Global_8h_source.tex @@ -0,0 +1,49 @@ +\doxysection{Global.\+h} +\hypertarget{Global_8h_source}{}\label{Global_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_Global\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#\ define\ \_\_Global\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#\ include\ "{}MString.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#\ include\ "{}CGIFormattedData.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#\ include\ }} +\DoxyCodeLine{00007\ } +\DoxyCodeLine{00008\ \textcolor{keyword}{namespace\ \ }jet\ \{} +\DoxyCodeLine{00009\ } +\DoxyCodeLine{00010\ \ \ \ \textcolor{keyword}{class\ }\_\_mysql;} +\DoxyCodeLine{00011\ \ \ \ } +\DoxyCodeLine{00012\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1Global}{Global}}\ \{} +\DoxyCodeLine{00013\ } +\DoxyCodeLine{00014\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00015\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1Global}{Global}}(\textcolor{keywordtype}{char}\ **envp);} +\DoxyCodeLine{00016\ \ \ \ \ \ \ \textcolor{keyword}{virtual}\ \mbox{\hyperlink{classjet_1_1Global}{\string~Global}}();} +\DoxyCodeLine{00017\ } +\DoxyCodeLine{00018\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ dump();} +\DoxyCodeLine{00019\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ sessionExists(coreutils::MString\ sessionId);} +\DoxyCodeLine{00020\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ addSession(coreutils::MString\ sessionId,\ \mbox{\hyperlink{classjet_1_1____mysql}{\_\_mysql}}\ *mysql);} +\DoxyCodeLine{00021\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ removeSession(coreutils::MString\ sessionId);} +\DoxyCodeLine{00022\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____mysql}{\_\_mysql}}\ *\ getSession(coreutils::MString\ sessionId);} +\DoxyCodeLine{00023\ \ \ \ \ \ \ coreutils::ZString\ getSessionVariable(coreutils::MString\ \&splitName);} +\DoxyCodeLine{00024\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ outputHeaders();} +\DoxyCodeLine{00025\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ setupFormData(coreutils::ZString\ \&formdata);} +\DoxyCodeLine{00026\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ setupFormURLEncoded(coreutils::ZString\ \&formdata);} +\DoxyCodeLine{00027\ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ *errorCursor\ =\ NULL;} +\DoxyCodeLine{00028\ \ \ \ \ } +\DoxyCodeLine{00029\ \ \ \ \ \ \ coreutils::CGIFormattedData\ cookies;} +\DoxyCodeLine{00030\ \ \ \ \ \ \ std::map\ variables;} +\DoxyCodeLine{00031\ \ \ \ \ \ \ std::map\ cgiVariables;} +\DoxyCodeLine{00032\ \ \ \ \ \ \ std::map\ sessions;} +\DoxyCodeLine{00033\ \ \ \ \ \ \ std::map\ headers;} +\DoxyCodeLine{00034\ \ \ \ \ \ \ std::map\ tags;} +\DoxyCodeLine{00035\ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ **envp;} +\DoxyCodeLine{00036\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ cgi\ =\ \textcolor{keyword}{false};} +\DoxyCodeLine{00037\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ session\ =\ \textcolor{keyword}{false};} +\DoxyCodeLine{00038\ \ \ \ \ \ \ coreutils::MString\ sessionId;} +\DoxyCodeLine{00039\ \ \ \ \ \ \ } +\DoxyCodeLine{00040\ \ \ \ \};} +\DoxyCodeLine{00041\ } +\DoxyCodeLine{00042\ \}} +\DoxyCodeLine{00043\ } +\DoxyCodeLine{00044\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/Makefile b/latex/Makefile new file mode 100644 index 0000000..7f82972 --- /dev/null +++ b/latex/Makefile @@ -0,0 +1,27 @@ +LATEX_CMD?=pdflatex +MKIDX_CMD?=makeindex +BIBTEX_CMD?=bibtex +LATEX_COUNT?=8 +MANUAL_FILE?=refman + +all: $(MANUAL_FILE).pdf + +pdf: $(MANUAL_FILE).pdf + +$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex + $(LATEX_CMD) $(MANUAL_FILE) + $(MKIDX_CMD) $(MANUAL_FILE).idx + $(LATEX_CMD) $(MANUAL_FILE) + latex_count=$(LATEX_COUNT) ; \ + while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + $(LATEX_CMD) $(MANUAL_FILE) ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + $(MKIDX_CMD) $(MANUAL_FILE).idx + $(LATEX_CMD) $(MANUAL_FILE) + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf diff --git a/latex/Operand_8h_source.tex b/latex/Operand_8h_source.tex new file mode 100644 index 0000000..6cd5a0a --- /dev/null +++ b/latex/Operand_8h_source.tex @@ -0,0 +1,32 @@ +\doxysection{Operand.\+h} +\hypertarget{Operand_8h_source}{}\label{Operand_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_Operand\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_Operand\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}Global.h"{}}} +\DoxyCodeLine{00007\ } +\DoxyCodeLine{00008\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00009\ } +\DoxyCodeLine{00010\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1Operand}{Operand}}\ \{} +\DoxyCodeLine{00011\ } +\DoxyCodeLine{00012\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00013\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1Operand}{Operand}}(coreutils::ZString\ \&in,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \&tag);} +\DoxyCodeLine{00014\ } +\DoxyCodeLine{00015\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ isNumber;} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00021\ \ \ \ \ \ \ } +\DoxyCodeLine{00022\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classjet_1_1Operand_aff226980c53d083ab2b6babdb595bf5b}{boolean}};} +\DoxyCodeLine{00023\ \ \ \ \ \ \ coreutils::MString\ \textcolor{keywordtype}{string}\ =\ \textcolor{stringliteral}{"{}"{}};} +\DoxyCodeLine{00024\ \ \ \ \ \ \ } +\DoxyCodeLine{00025\ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ doubleValue;} +\DoxyCodeLine{00026\ \ \ \ \ \ \ } +\DoxyCodeLine{00027\ } +\DoxyCodeLine{00028\ \ \ \ \};} +\DoxyCodeLine{00029\ \}} +\DoxyCodeLine{00030\ } +\DoxyCodeLine{00031\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/SessionId_8h_source.tex b/latex/SessionId_8h_source.tex new file mode 100644 index 0000000..4a5f0e6 --- /dev/null +++ b/latex/SessionId_8h_source.tex @@ -0,0 +1,21 @@ +\doxysection{Session\+Id.\+h} +\hypertarget{SessionId_8h_source}{}\label{SessionId_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_SessionId\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_SessionId\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1SessionId}{SessionId}}\ :\ \textcolor{keyword}{public}\ coreutils::MString\ \{} +\DoxyCodeLine{00009\ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1SessionId}{SessionId}}();\ \ \ \ \ \ } +\DoxyCodeLine{00012\ } +\DoxyCodeLine{00013\ \ \ \ \};} +\DoxyCodeLine{00014\ \}} +\DoxyCodeLine{00015\ } +\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/Tag_8h_source.tex b/latex/Tag_8h_source.tex new file mode 100644 index 0000000..7fe720a --- /dev/null +++ b/latex/Tag_8h_source.tex @@ -0,0 +1,76 @@ +\doxysection{Tag.\+h} +\hypertarget{Tag_8h_source}{}\label{Tag_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_Tag\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_Tag\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}Global.h"{}}} +\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00008\ } +\DoxyCodeLine{00012\ } +\DoxyCodeLine{00013\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00014\ } +\DoxyCodeLine{00018\ \ \ \ } +\DoxyCodeLine{00019\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ :\ \textcolor{keyword}{public}\ coreutils::ZString\ \{} +\DoxyCodeLine{00020\ } +\DoxyCodeLine{00021\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00022\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent\ =\ NULL,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local\ =\ NULL,\ coreutils::ZString\ splitTagName\ =\ \textcolor{stringliteral}{"{}"{}});\ } +\DoxyCodeLine{00023\ \ \ \ \ \ \ \textcolor{keyword}{virtual}\ \mbox{\hyperlink{classjet_1_1Tag_ae38b29ca4dc8b0cbd09a2b2b377f2704}{\string~Tag}}();} +\DoxyCodeLine{00024\ } +\DoxyCodeLine{00025\ \ \ \ \ \ \ coreutils::MString\ getVariable(coreutils::ZString\ \&variable,\ \textcolor{keywordtype}{bool}\ inContainer\ =\ \textcolor{keyword}{false});\ } +\DoxyCodeLine{00026\ } +\DoxyCodeLine{00027\ \ \ \ \ \ \ coreutils::MString\ \mbox{\hyperlink{classjet_1_1Tag_a8dfb107f3c2bbe7bcc9e8d566153c0e3}{resolveKeyword}}(coreutils::ZString\ keyword);} +\DoxyCodeLine{00028\ \ \ \ \ \ \ std::map\ variables;} +\DoxyCodeLine{00029\ \ \ \ \ \ \ std::map\ keywords;} +\DoxyCodeLine{00030\ \ \ \ \ \ \ coreutils::ZString\ name;} +\DoxyCodeLine{00031\ \ \ \ \ \ \ coreutils::ZString\ container;} +\DoxyCodeLine{00032\ \ \ \ \ \ \ coreutils::ZString\ container2;} +\DoxyCodeLine{00033\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global;} +\DoxyCodeLine{00034\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent;} +\DoxyCodeLine{00035\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local;} +\DoxyCodeLine{00036\ } +\DoxyCodeLine{00037\ \ \ \ \ \textcolor{keyword}{protected}:} +\DoxyCodeLine{00038\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ hasContainer\ =\ \textcolor{keyword}{false};} +\DoxyCodeLine{00039\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ hasContainer2\ =\ \textcolor{keyword}{false};} +\DoxyCodeLine{00040\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ keywordDefined(coreutils::ZString\ variable);} +\DoxyCodeLine{00041\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ parseContainer(coreutils::ZString\ \&in,\ coreutils::MString\ \&out,\ coreutils::ZString\ container2\ =\ NULL,\ \textcolor{keywordtype}{bool}\ topLevel\ =\ \ \textcolor{keyword}{false});} +\DoxyCodeLine{00042\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ processContainer(coreutils::ZString\ \&container,\ coreutils::ZString\ container2\ =\ NULL,\ \textcolor{keywordtype}{bool}\ topLevel\ =\ \textcolor{keyword}{false});} +\DoxyCodeLine{00043\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ copyContainer(coreutils::ZString\ \&in,\ coreutils::MString\ \&out);} +\DoxyCodeLine{00044\ } +\DoxyCodeLine{00045\ \ \ \ \ \ \ coreutils::MString\ \&parentOut;} +\DoxyCodeLine{00046\ \ \ \ \ \ \ coreutils::MString\ out;} +\DoxyCodeLine{00047\ } +\DoxyCodeLine{00048\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ output\ =\ \textcolor{keyword}{true};} +\DoxyCodeLine{00049\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ evaluate\ =\ \textcolor{keyword}{true};} +\DoxyCodeLine{00050\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ filterBlankLines\ =\ \textcolor{keyword}{false};} +\DoxyCodeLine{00051\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ trimLines\ =\ \textcolor{keyword}{false};} +\DoxyCodeLine{00052\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ cleanWhitespace\ =\ \textcolor{keyword}{false};} +\DoxyCodeLine{00053\ } +\DoxyCodeLine{00054\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ renderVariableName(coreutils::ZString\ \&variable,\ coreutils::MString\ \&name,\ coreutils::MString\ \&modifier);} +\DoxyCodeLine{00055\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ storeVariable(coreutils::ZString\ variable,\ coreutils::MString\ value,\ coreutils::ZString\ scope);} +\DoxyCodeLine{00056\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ storeVariable(coreutils::ZString\ variable);} +\DoxyCodeLine{00057\ \ \ \ \ \ \ } +\DoxyCodeLine{00058\ \ \ \ \ \textcolor{keyword}{private}:} +\DoxyCodeLine{00059\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ containerOnly\ =\ \textcolor{keyword}{false};} +\DoxyCodeLine{00060\ \ \ \ \ \ \ coreutils::ZString\ splitTagName;} +\DoxyCodeLine{00061\ } +\DoxyCodeLine{00062\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ skipBlankLine(coreutils::ZString\ in);} +\DoxyCodeLine{00063\ } +\DoxyCodeLine{00064\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ scanContainer(coreutils::ZString\ \&in);} +\DoxyCodeLine{00065\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ ifNested(coreutils::ZString\ \&in);} +\DoxyCodeLine{00066\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ ifTagName(coreutils::ZString\ \&in,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *tag);} +\DoxyCodeLine{00067\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ ifTagName(coreutils::ZString\ \&in);} +\DoxyCodeLine{00068\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ ifTagDefined(coreutils::ZString\ \&in,\ coreutils::ZString\ \&tag);} +\DoxyCodeLine{00069\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ ifEndTagName(coreutils::ZString\ \&in);} +\DoxyCodeLine{00070\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ ifSplitTagName(coreutils::ZString\ \&in);} +\DoxyCodeLine{00071\ \ \ \ \ \ \ } +\DoxyCodeLine{00072\ \ \ \ \ \ \ coreutils::MString\ processModifier(coreutils::MString\ \&value,\ coreutils::MString\ \&modifier);} +\DoxyCodeLine{00073\ \ \ \ \};} +\DoxyCodeLine{00074\ } +\DoxyCodeLine{00075\ \}} +\DoxyCodeLine{00076\ } +\DoxyCodeLine{00077\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____call_8h_source.tex b/latex/____call_8h_source.tex new file mode 100644 index 0000000..f3b192d --- /dev/null +++ b/latex/____call_8h_source.tex @@ -0,0 +1,31 @@ +\doxysection{\+\_\+\+\_\+call.\+h} +\hypertarget{____call_8h_source}{}\label{____call_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_call\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_call\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ \ \ \ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____call}{\_\_call}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____call}{\_\_call}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00012\ } +\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keyword}{private}:} +\DoxyCodeLine{00014\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ pid;} +\DoxyCodeLine{00015\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ status;} +\DoxyCodeLine{00016\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ ix;} +\DoxyCodeLine{00017\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ fdi[2];} +\DoxyCodeLine{00018\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ fdo[2];} +\DoxyCodeLine{00019\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ rc;} +\DoxyCodeLine{00020\ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ *argv[50];} +\DoxyCodeLine{00021\ \ \ \ \ \ \ } +\DoxyCodeLine{00022\ \ \ \ \};} +\DoxyCodeLine{00023\ \ \ \ \ \ \ } +\DoxyCodeLine{00024\ \}} +\DoxyCodeLine{00025\ } +\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____comment_8h_source.tex b/latex/____comment_8h_source.tex new file mode 100644 index 0000000..5036941 --- /dev/null +++ b/latex/____comment_8h_source.tex @@ -0,0 +1,22 @@ +\doxysection{\+\_\+\+\_\+comment.\+h} +\hypertarget{____comment_8h_source}{}\label{____comment_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_comment\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_comment\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ \ \ \ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____comment}{\_\_comment}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____comment}{\_\_comment}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00012\ \ \ \ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \};} +\DoxyCodeLine{00014\ \ \ \ \ \ \ } +\DoxyCodeLine{00015\ \}} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____cookie_8h_source.tex b/latex/____cookie_8h_source.tex new file mode 100644 index 0000000..ca11253 --- /dev/null +++ b/latex/____cookie_8h_source.tex @@ -0,0 +1,24 @@ +\doxysection{\+\_\+\+\_\+cookie.\+h} +\hypertarget{____cookie_8h_source}{}\label{____cookie_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_cookie\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_cookie\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ } +\DoxyCodeLine{00008\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____cookie}{\_\_cookie}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00011\ \ \ \ } +\DoxyCodeLine{00012\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00013\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____cookie}{\_\_cookie}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);\ \ \ } +\DoxyCodeLine{00014\ \ \ \ \ \ \ } +\DoxyCodeLine{00015\ \ \ \ \};} +\DoxyCodeLine{00016\ \ \ \ } +\DoxyCodeLine{00017\ \}} +\DoxyCodeLine{00018\ } +\DoxyCodeLine{00019\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____dotag_8h_source.tex b/latex/____dotag_8h_source.tex new file mode 100644 index 0000000..facce8d --- /dev/null +++ b/latex/____dotag_8h_source.tex @@ -0,0 +1,23 @@ +\doxysection{\+\_\+\+\_\+dotag.\+h} +\hypertarget{____dotag_8h_source}{}\label{____dotag_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_dotag\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_dotag\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ } +\DoxyCodeLine{00007\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00008\ \ \ \ } +\DoxyCodeLine{00009\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____dotag}{\_\_dotag}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00012\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____dotag}{\_\_dotag}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00013\ \ \ \ \ \ \ } +\DoxyCodeLine{00014\ \ \ \ \};} +\DoxyCodeLine{00015\ \ \ \ \ \ \ } +\DoxyCodeLine{00016\ \}} +\DoxyCodeLine{00017\ } +\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____dump_8h_source.tex b/latex/____dump_8h_source.tex new file mode 100644 index 0000000..7094a46 --- /dev/null +++ b/latex/____dump_8h_source.tex @@ -0,0 +1,24 @@ +\doxysection{\+\_\+\+\_\+dump.\+h} +\hypertarget{____dump_8h_source}{}\label{____dump_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_dump\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_dump\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}Global.h"{}}} +\DoxyCodeLine{00007\ } +\DoxyCodeLine{00008\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____dump}{\_\_dump}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00011\ \ \ \ } +\DoxyCodeLine{00012\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00013\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____dump}{\_\_dump}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00014\ \ \ \ } +\DoxyCodeLine{00015\ \ \ \ \};} +\DoxyCodeLine{00016\ \ \ \ \ \ \ } +\DoxyCodeLine{00017\ \}} +\DoxyCodeLine{00018\ } +\DoxyCodeLine{00019\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____exclude_8h_source.tex b/latex/____exclude_8h_source.tex new file mode 100644 index 0000000..496dcfc --- /dev/null +++ b/latex/____exclude_8h_source.tex @@ -0,0 +1,22 @@ +\doxysection{\+\_\+\+\_\+exclude.\+h} +\hypertarget{____exclude_8h_source}{}\label{____exclude_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_exclude\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_exclude\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ \ \ \ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____exclude}{\_\_exclude}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____exclude}{\_\_exclude}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00012\ \ \ \ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \};} +\DoxyCodeLine{00014\ \ \ \ \ \ \ } +\DoxyCodeLine{00015\ \}} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____for_8h_source.tex b/latex/____for_8h_source.tex new file mode 100644 index 0000000..f921e09 --- /dev/null +++ b/latex/____for_8h_source.tex @@ -0,0 +1,23 @@ +\doxysection{\+\_\+\+\_\+for.\+h} +\hypertarget{____for_8h_source}{}\label{____for_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_for\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_for\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00006\ } +\DoxyCodeLine{00007\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00008\ \ \ \ } +\DoxyCodeLine{00009\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____for}{\_\_for}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00012\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____for}{\_\_for}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00013\ \ \ \ } +\DoxyCodeLine{00014\ \ \ \ \};} +\DoxyCodeLine{00015\ \ \ \ \ \ \ } +\DoxyCodeLine{00016\ \}} +\DoxyCodeLine{00017\ } +\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____header_8h_source.tex b/latex/____header_8h_source.tex new file mode 100644 index 0000000..c2fe689 --- /dev/null +++ b/latex/____header_8h_source.tex @@ -0,0 +1,27 @@ +\doxysection{\+\_\+\+\_\+header.\+h} +\hypertarget{____header_8h_source}{}\label{____header_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_header\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_header\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00008\ } +\DoxyCodeLine{00009\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____header}{\_\_header}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00012\ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00014\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____header}{\_\_header}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);\ \ \ } +\DoxyCodeLine{00015\ } +\DoxyCodeLine{00016\ \ \ \ \ \textcolor{keyword}{protected}:} +\DoxyCodeLine{00017\ \ \ \ \ \ \ } +\DoxyCodeLine{00018\ \ \ \ \};} +\DoxyCodeLine{00019\ \ \ \ \ \ \ } +\DoxyCodeLine{00020\ \}} +\DoxyCodeLine{00021\ } +\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____if_8h_source.tex b/latex/____if_8h_source.tex new file mode 100644 index 0000000..3a6cb85 --- /dev/null +++ b/latex/____if_8h_source.tex @@ -0,0 +1,25 @@ +\doxysection{\+\_\+\+\_\+if.\+h} +\hypertarget{____if_8h_source}{}\label{____if_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_if\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_if\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00008\ } +\DoxyCodeLine{00009\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00010\ } +\DoxyCodeLine{00011\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____if}{\_\_if}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00012\ } +\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00014\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____if}{\_\_if}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00015\ } +\DoxyCodeLine{00016\ \ \ \ \};} +\DoxyCodeLine{00017\ } +\DoxyCodeLine{00018\ \}} +\DoxyCodeLine{00019\ } +\DoxyCodeLine{00020\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____ifrow_8h_source.tex b/latex/____ifrow_8h_source.tex new file mode 100644 index 0000000..d57b80e --- /dev/null +++ b/latex/____ifrow_8h_source.tex @@ -0,0 +1,22 @@ +\doxysection{\+\_\+\+\_\+ifrow.\+h} +\hypertarget{____ifrow_8h_source}{}\label{____ifrow_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_ifrow\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_ifrow\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ \ \ \ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____ifrow}{\_\_ifrow}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____ifrow}{\_\_ifrow}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00012\ \ \ \ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \};} +\DoxyCodeLine{00014\ \ \ \ \ \ \ } +\DoxyCodeLine{00015\ \}} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____include_8h_source.tex b/latex/____include_8h_source.tex new file mode 100644 index 0000000..e270ab3 --- /dev/null +++ b/latex/____include_8h_source.tex @@ -0,0 +1,22 @@ +\doxysection{\+\_\+\+\_\+include.\+h} +\hypertarget{____include_8h_source}{}\label{____include_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_include\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_include\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ \ \ \ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____include}{\_\_include}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____include}{\_\_include}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00012\ \ \ \ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \};} +\DoxyCodeLine{00014\ \ \ \ \ \ \ } +\DoxyCodeLine{00015\ \}} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____jet_8h_source.tex b/latex/____jet_8h_source.tex new file mode 100644 index 0000000..d9ec0a9 --- /dev/null +++ b/latex/____jet_8h_source.tex @@ -0,0 +1,26 @@ +\doxysection{\+\_\+\+\_\+jet.\+h} +\hypertarget{____jet_8h_source}{}\label{____jet_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_jet\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_jet\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}IMFRequest.h"{}}} +\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ "{}IMFMessage.h"{}}} +\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00009\ } +\DoxyCodeLine{00010\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00011\ \ \ \ } +\DoxyCodeLine{00012\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____jet}{\_\_jet}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00013\ \ \ \ } +\DoxyCodeLine{00014\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00015\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____jet}{\_\_jet}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00016\ \ \ \ \ \ \ } +\DoxyCodeLine{00017\ \ \ \ \};} +\DoxyCodeLine{00018\ \ \ \ \ \ \ } +\DoxyCodeLine{00019\ \}} +\DoxyCodeLine{00020\ } +\DoxyCodeLine{00021\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____mysql_8h_source.tex b/latex/____mysql_8h_source.tex new file mode 100644 index 0000000..19fff5b --- /dev/null +++ b/latex/____mysql_8h_source.tex @@ -0,0 +1,43 @@ +\doxysection{\+\_\+\+\_\+mysql.\+h} +\hypertarget{____mysql_8h_source}{}\label{____mysql_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_mysql\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_mysql\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00009\ } +\DoxyCodeLine{00010\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00011\ } +\DoxyCodeLine{00012\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____mysql}{\_\_mysql}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00013\ } +\DoxyCodeLine{00014\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00015\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____mysql}{\_\_mysql}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00016\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____mysql}{\string~\_\_mysql}}();} +\DoxyCodeLine{00017\ } +\DoxyCodeLine{00018\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ query(coreutils::MString\ query);} +\DoxyCodeLine{00019\ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ nextRow();} +\DoxyCodeLine{00020\ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ hasRow();} +\DoxyCodeLine{00021\ \ \ \ \ \ \ coreutils::ZString\ getColumnValue(coreutils::ZString\ column);} +\DoxyCodeLine{00022\ \ \ \ \ \ \ } +\DoxyCodeLine{00023\ \ \ \ \ \textcolor{keyword}{private}:} +\DoxyCodeLine{00024\ \ \ \ \ \ \ MYSQL\ *mysql;} +\DoxyCodeLine{00025\ \ \ \ \ \ \ MYSQL\_RES\ *result;} +\DoxyCodeLine{00026\ \ \ \ \ \ \ MYSQL\_ROW\ row;} +\DoxyCodeLine{00027\ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{long}\ *fieldLength;} +\DoxyCodeLine{00028\ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ qFields;} +\DoxyCodeLine{00029\ \ \ \ \ \ \ coreutils::MString\ sessionId;} +\DoxyCodeLine{00030\ } +\DoxyCodeLine{00031\ \ \ \ \ \ \ coreutils::MString\ nbrOfRows\ =\ \textcolor{stringliteral}{"{}0"{}};} +\DoxyCodeLine{00032\ \ \ \ \ \ \ coreutils::MString\ nbrOfColumns\ =\ \textcolor{stringliteral}{"{}0"{}};} +\DoxyCodeLine{00033\ \ \ \ \ \ \ } +\DoxyCodeLine{00034\ \ \ \ \};} +\DoxyCodeLine{00035\ } +\DoxyCodeLine{00036\ \}} +\DoxyCodeLine{00037\ } +\DoxyCodeLine{00038\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____read_8h_source.tex b/latex/____read_8h_source.tex new file mode 100644 index 0000000..654e09f --- /dev/null +++ b/latex/____read_8h_source.tex @@ -0,0 +1,27 @@ +\doxysection{\+\_\+\+\_\+read.\+h} +\hypertarget{____read_8h_source}{}\label{____read_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_read\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_read\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ \ \ \ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____read}{\_\_read}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____read}{\_\_read}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00012\ } +\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keyword}{private}:} +\DoxyCodeLine{00014\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ fd;} +\DoxyCodeLine{00015\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ len;} +\DoxyCodeLine{00016\ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ buffer[4096];} +\DoxyCodeLine{00017\ \ \ \ \ \ \ } +\DoxyCodeLine{00018\ \ \ \ \};} +\DoxyCodeLine{00019\ \ \ \ \ \ \ } +\DoxyCodeLine{00020\ \}} +\DoxyCodeLine{00021\ } +\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____set_8h_source.tex b/latex/____set_8h_source.tex new file mode 100644 index 0000000..e29d79f --- /dev/null +++ b/latex/____set_8h_source.tex @@ -0,0 +1,27 @@ +\doxysection{\+\_\+\+\_\+set.\+h} +\hypertarget{____set_8h_source}{}\label{____set_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_set\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_set\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00008\ } +\DoxyCodeLine{00009\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____set}{\_\_set}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00012\ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00014\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____set}{\_\_set}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);\ \ \ } +\DoxyCodeLine{00015\ } +\DoxyCodeLine{00016\ \ \ \ \ \textcolor{keyword}{protected}:} +\DoxyCodeLine{00017\ \ \ \ \ \ \ } +\DoxyCodeLine{00018\ \ \ \ \};} +\DoxyCodeLine{00019\ \ \ \ \ \ \ } +\DoxyCodeLine{00020\ \}} +\DoxyCodeLine{00021\ } +\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____sql_8h_source.tex b/latex/____sql_8h_source.tex new file mode 100644 index 0000000..c265b58 --- /dev/null +++ b/latex/____sql_8h_source.tex @@ -0,0 +1,22 @@ +\doxysection{\+\_\+\+\_\+sql.\+h} +\hypertarget{____sql_8h_source}{}\label{____sql_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_sql\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_sql\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ \ \ \ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____sql}{\_\_sql}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____sql}{\_\_sql}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00012\ \ \ \ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \};} +\DoxyCodeLine{00014\ \ \ \ \ \ \ } +\DoxyCodeLine{00015\ \}} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____stream_8h_source.tex b/latex/____stream_8h_source.tex new file mode 100644 index 0000000..d626c85 --- /dev/null +++ b/latex/____stream_8h_source.tex @@ -0,0 +1,23 @@ +\doxysection{\+\_\+\+\_\+stream.\+h} +\hypertarget{____stream_8h_source}{}\label{____stream_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_stream\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_stream\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ } +\DoxyCodeLine{00007\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00008\ \ \ \ } +\DoxyCodeLine{00009\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____stream}{\_\_stream}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00012\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____stream}{\_\_stream}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00013\ \ \ \ \ \ \ } +\DoxyCodeLine{00014\ \ \ \ \};} +\DoxyCodeLine{00015\ \ \ \ \ \ \ } +\DoxyCodeLine{00016\ \}} +\DoxyCodeLine{00017\ } +\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____system_8h_source.tex b/latex/____system_8h_source.tex new file mode 100644 index 0000000..d62ca20 --- /dev/null +++ b/latex/____system_8h_source.tex @@ -0,0 +1,31 @@ +\doxysection{\+\_\+\+\_\+system.\+h} +\hypertarget{____system_8h_source}{}\label{____system_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_system\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_system\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ } +\DoxyCodeLine{00006\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00007\ \ \ \ } +\DoxyCodeLine{00008\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____system}{\_\_system}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00009\ \ \ \ } +\DoxyCodeLine{00010\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00011\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____system}{\_\_system}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00012\ } +\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keyword}{private}:} +\DoxyCodeLine{00014\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ pid;} +\DoxyCodeLine{00015\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ status;} +\DoxyCodeLine{00016\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ ix;} +\DoxyCodeLine{00017\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ fdi[2];} +\DoxyCodeLine{00018\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ fdo[2];} +\DoxyCodeLine{00019\ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ rc;} +\DoxyCodeLine{00020\ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ *argv[50];} +\DoxyCodeLine{00021\ \ \ \ \ \ \ } +\DoxyCodeLine{00022\ \ \ \ \};} +\DoxyCodeLine{00023\ \ \ \ \ \ \ } +\DoxyCodeLine{00024\ \}} +\DoxyCodeLine{00025\ } +\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____tag_8h_source.tex b/latex/____tag_8h_source.tex new file mode 100644 index 0000000..130bf84 --- /dev/null +++ b/latex/____tag_8h_source.tex @@ -0,0 +1,27 @@ +\doxysection{\+\_\+\+\_\+tag.\+h} +\hypertarget{____tag_8h_source}{}\label{____tag_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_tag\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_tag\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00008\ } +\DoxyCodeLine{00009\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____tag}{\_\_tag}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00012\ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00014\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____tag}{\_\_tag}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00015\ } +\DoxyCodeLine{00016\ \ \ \ \ \ \ std::map\ tags;\ } +\DoxyCodeLine{00017\ \ \ \ \ \ \ } +\DoxyCodeLine{00018\ \ \ \ \};} +\DoxyCodeLine{00019\ \ \ \ \ \ \ } +\DoxyCodeLine{00020\ \}} +\DoxyCodeLine{00021\ } +\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____until_8h_source.tex b/latex/____until_8h_source.tex new file mode 100644 index 0000000..3cb0988 --- /dev/null +++ b/latex/____until_8h_source.tex @@ -0,0 +1,23 @@ +\doxysection{\+\_\+\+\_\+until.\+h} +\hypertarget{____until_8h_source}{}\label{____until_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_until\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_until\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00006\ } +\DoxyCodeLine{00007\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00008\ \ \ \ } +\DoxyCodeLine{00009\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____until}{\_\_until}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00012\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____until}{\_\_until}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00013\ \ \ \ } +\DoxyCodeLine{00014\ \ \ \ \};} +\DoxyCodeLine{00015\ \ \ \ \ \ \ } +\DoxyCodeLine{00016\ \}} +\DoxyCodeLine{00017\ } +\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____while_8h_source.tex b/latex/____while_8h_source.tex new file mode 100644 index 0000000..ef198be --- /dev/null +++ b/latex/____while_8h_source.tex @@ -0,0 +1,23 @@ +\doxysection{\+\_\+\+\_\+while.\+h} +\hypertarget{____while_8h_source}{}\label{____while_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_while\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_while\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00006\ } +\DoxyCodeLine{00007\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00008\ \ \ \ } +\DoxyCodeLine{00009\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____while}{\_\_while}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00012\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____while}{\_\_while}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00013\ \ \ \ } +\DoxyCodeLine{00014\ \ \ \ \};} +\DoxyCodeLine{00015\ \ \ \ \ \ \ } +\DoxyCodeLine{00016\ \}} +\DoxyCodeLine{00017\ } +\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____whiledir_8h_source.tex b/latex/____whiledir_8h_source.tex new file mode 100644 index 0000000..043a1c0 --- /dev/null +++ b/latex/____whiledir_8h_source.tex @@ -0,0 +1,24 @@ +\doxysection{\+\_\+\+\_\+whiledir.\+h} +\hypertarget{____whiledir_8h_source}{}\label{____whiledir_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_whiledir\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_whiledir\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ } +\DoxyCodeLine{00008\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00009\ } +\DoxyCodeLine{00010\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____whiledir}{\_\_whiledir}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00011\ } +\DoxyCodeLine{00012\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00013\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____whiledir}{\_\_whiledir}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00014\ \ \ \ \ \ \ } +\DoxyCodeLine{00015\ \ \ \ \};} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \}} +\DoxyCodeLine{00018\ } +\DoxyCodeLine{00019\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____whilerow_8h_source.tex b/latex/____whilerow_8h_source.tex new file mode 100644 index 0000000..678ac06 --- /dev/null +++ b/latex/____whilerow_8h_source.tex @@ -0,0 +1,24 @@ +\doxysection{\+\_\+\+\_\+whilerow.\+h} +\hypertarget{____whilerow_8h_source}{}\label{____whilerow_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_\_\_whilerow\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_\_\_whilerow\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ } +\DoxyCodeLine{00008\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00009\ } +\DoxyCodeLine{00010\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____whilerow}{\_\_whilerow}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00011\ } +\DoxyCodeLine{00012\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00013\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____whilerow}{\_\_whilerow}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);} +\DoxyCodeLine{00014\ \ \ \ \ \ \ } +\DoxyCodeLine{00015\ \ \ \ \};} +\DoxyCodeLine{00016\ } +\DoxyCodeLine{00017\ \}} +\DoxyCodeLine{00018\ } +\DoxyCodeLine{00019\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/____write_8h_source.tex b/latex/____write_8h_source.tex new file mode 100644 index 0000000..a8e33d0 --- /dev/null +++ b/latex/____write_8h_source.tex @@ -0,0 +1,27 @@ +\doxysection{\+\_\+\+\_\+write.\+h} +\hypertarget{____write_8h_source}{}\label{____write_8h_source} +\begin{DoxyCode}{0} +\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ \_\_write\_h\_\_}} +\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ \_\_write\_h\_\_}} +\DoxyCodeLine{00003\ } +\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Tag.h"{}}} +\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}ZString.h"{}}} +\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}MString.h"{}}} +\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{00008\ } +\DoxyCodeLine{00009\ \textcolor{keyword}{namespace\ }jet\ \{} +\DoxyCodeLine{00010\ \ \ \ } +\DoxyCodeLine{00011\ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classjet_1_1____write}{\_\_write}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ \{} +\DoxyCodeLine{00012\ \ \ \ } +\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keyword}{public}:} +\DoxyCodeLine{00014\ \ \ \ \ \ \ \mbox{\hyperlink{classjet_1_1____write}{\_\_write}}(coreutils::ZString\ \&in,\ coreutils::MString\ \&parentOut,\ \mbox{\hyperlink{classjet_1_1Global}{Global}}\ \&global,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *parent,\ \mbox{\hyperlink{classjet_1_1Tag}{Tag}}\ *local);\ \ \ } +\DoxyCodeLine{00015\ } +\DoxyCodeLine{00016\ \ \ \ \ \textcolor{keyword}{protected}:} +\DoxyCodeLine{00017\ \ \ \ \ \ \ } +\DoxyCodeLine{00018\ \ \ \ \};} +\DoxyCodeLine{00019\ \ \ \ \ \ \ } +\DoxyCodeLine{00020\ \}} +\DoxyCodeLine{00021\ } +\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#endif}} + +\end{DoxyCode} diff --git a/latex/annotated.tex b/latex/annotated.tex new file mode 100644 index 0000000..38e5909 --- /dev/null +++ b/latex/annotated.tex @@ -0,0 +1,31 @@ +\doxysection{Class List} +Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____call}{jet\+::\+\_\+\+\_\+call}} }{\pageref{classjet_1_1____call}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____comment}{jet\+::\+\_\+\+\_\+comment}} }{\pageref{classjet_1_1____comment}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____cookie}{jet\+::\+\_\+\+\_\+cookie}} }{\pageref{classjet_1_1____cookie}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____dotag}{jet\+::\+\_\+\+\_\+dotag}} }{\pageref{classjet_1_1____dotag}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____dump}{jet\+::\+\_\+\+\_\+dump}} }{\pageref{classjet_1_1____dump}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____exclude}{jet\+::\+\_\+\+\_\+exclude}} }{\pageref{classjet_1_1____exclude}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____for}{jet\+::\+\_\+\+\_\+for}} }{\pageref{classjet_1_1____for}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____header}{jet\+::\+\_\+\+\_\+header}} }{\pageref{classjet_1_1____header}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____if}{jet\+::\+\_\+\+\_\+if}} }{\pageref{classjet_1_1____if}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____ifrow}{jet\+::\+\_\+\+\_\+ifrow}} }{\pageref{classjet_1_1____ifrow}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____include}{jet\+::\+\_\+\+\_\+include}} }{\pageref{classjet_1_1____include}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____jet}{jet\+::\+\_\+\+\_\+jet}} }{\pageref{classjet_1_1____jet}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____mysql}{jet\+::\+\_\+\+\_\+mysql}} }{\pageref{classjet_1_1____mysql}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____read}{jet\+::\+\_\+\+\_\+read}} }{\pageref{classjet_1_1____read}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____set}{jet\+::\+\_\+\+\_\+set}} }{\pageref{classjet_1_1____set}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____sql}{jet\+::\+\_\+\+\_\+sql}} }{\pageref{classjet_1_1____sql}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____stream}{jet\+::\+\_\+\+\_\+stream}} }{\pageref{classjet_1_1____stream}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____system}{jet\+::\+\_\+\+\_\+system}} }{\pageref{classjet_1_1____system}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____tag}{jet\+::\+\_\+\+\_\+tag}} }{\pageref{classjet_1_1____tag}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____until}{jet\+::\+\_\+\+\_\+until}} }{\pageref{classjet_1_1____until}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____while}{jet\+::\+\_\+\+\_\+while}} }{\pageref{classjet_1_1____while}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____whiledir}{jet\+::\+\_\+\+\_\+whiledir}} }{\pageref{classjet_1_1____whiledir}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____whilerow}{jet\+::\+\_\+\+\_\+whilerow}} }{\pageref{classjet_1_1____whilerow}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1____write}{jet\+::\+\_\+\+\_\+write}} }{\pageref{classjet_1_1____write}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1Global}{jet\+::\+Global}} }{\pageref{classjet_1_1Global}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1Operand}{jet\+::\+Operand}} }{\pageref{classjet_1_1Operand}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1SessionId}{jet\+::\+Session\+Id}} }{\pageref{classjet_1_1SessionId}}{} +\item\contentsline{section}{\mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}} }{\pageref{classjet_1_1Tag}}{} +\end{DoxyCompactList} diff --git a/latex/classjet_1_1Global.tex b/latex/classjet_1_1Global.tex new file mode 100644 index 0000000..8972e67 --- /dev/null +++ b/latex/classjet_1_1Global.tex @@ -0,0 +1,77 @@ +\doxysection{jet\+::Global Class Reference} +\hypertarget{classjet_1_1Global}{}\label{classjet_1_1Global}\index{jet::Global@{jet::Global}} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1Global_ae3f0b7008b554fdaed575165ab8616f9}\label{classjet_1_1Global_ae3f0b7008b554fdaed575165ab8616f9} +{\bfseries Global} (char \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}envp) +\item +\Hypertarget{classjet_1_1Global_a63062bc596ddcbaaa58723cb8ab8ba53}\label{classjet_1_1Global_a63062bc596ddcbaaa58723cb8ab8ba53} +void {\bfseries dump} () +\item +\Hypertarget{classjet_1_1Global_ac249eccf6116e6d8a7b8a51b580d818a}\label{classjet_1_1Global_ac249eccf6116e6d8a7b8a51b580d818a} +bool {\bfseries session\+Exists} (coreutils\+::\+MString session\+Id) +\item +\Hypertarget{classjet_1_1Global_a20b0c4863fce50ca2cc1e4b84a2d3c5c}\label{classjet_1_1Global_a20b0c4863fce50ca2cc1e4b84a2d3c5c} +void {\bfseries add\+Session} (coreutils\+::\+MString session\+Id, \mbox{\hyperlink{classjet_1_1____mysql}{\+\_\+\+\_\+mysql}} \texorpdfstring{$\ast$}{*}mysql) +\item +\Hypertarget{classjet_1_1Global_aaf2adcb3f1947e2eedb9218b5c1e4e64}\label{classjet_1_1Global_aaf2adcb3f1947e2eedb9218b5c1e4e64} +void {\bfseries remove\+Session} (coreutils\+::\+MString session\+Id) +\item +\Hypertarget{classjet_1_1Global_a069e96dc72610f7c844906b24b3ef76d}\label{classjet_1_1Global_a069e96dc72610f7c844906b24b3ef76d} +\mbox{\hyperlink{classjet_1_1____mysql}{\+\_\+\+\_\+mysql}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Session} (coreutils\+::\+MString session\+Id) +\item +\Hypertarget{classjet_1_1Global_a1aa8c7785068f75f43fba59bfa898cc1}\label{classjet_1_1Global_a1aa8c7785068f75f43fba59bfa898cc1} +coreutils\+::\+ZString {\bfseries get\+Session\+Variable} (coreutils\+::\+MString \&split\+Name) +\item +\Hypertarget{classjet_1_1Global_a1664c56f5bbe8e35c92d97e23ab09952}\label{classjet_1_1Global_a1664c56f5bbe8e35c92d97e23ab09952} +void {\bfseries output\+Headers} () +\item +\Hypertarget{classjet_1_1Global_a9657245abce5e7be7d97f34ecf73fe11}\label{classjet_1_1Global_a9657245abce5e7be7d97f34ecf73fe11} +void {\bfseries setup\+Form\+Data} (coreutils\+::\+ZString \&formdata) +\item +\Hypertarget{classjet_1_1Global_ad19d55fd98ebd0af9427db575577ea5d}\label{classjet_1_1Global_ad19d55fd98ebd0af9427db575577ea5d} +void {\bfseries setup\+Form\+URLEncoded} (coreutils\+::\+ZString \&formdata) +\end{DoxyCompactItemize} +\doxysubsubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1Global_a75c21aadb201680763cf9128101b68b1}\label{classjet_1_1Global_a75c21aadb201680763cf9128101b68b1} +char \texorpdfstring{$\ast$}{*} {\bfseries error\+Cursor} = NULL +\item +\Hypertarget{classjet_1_1Global_aa500a1cd4d95b7912e9e6f293f846c9d}\label{classjet_1_1Global_aa500a1cd4d95b7912e9e6f293f846c9d} +coreutils\+::\+CGIFormatted\+Data {\bfseries cookies} +\item +\Hypertarget{classjet_1_1Global_a3dc5f5fd2744108d6534ea20b8286eb1}\label{classjet_1_1Global_a3dc5f5fd2744108d6534ea20b8286eb1} +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +\Hypertarget{classjet_1_1Global_a8b633659327c3a958760878681d04803}\label{classjet_1_1Global_a8b633659327c3a958760878681d04803} +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries cgi\+Variables} +\item +\Hypertarget{classjet_1_1Global_a1918025ed50e31ffc66d4ab6be5a5c80}\label{classjet_1_1Global_a1918025ed50e31ffc66d4ab6be5a5c80} +std\+::map$<$ coreutils\+::\+MString, \mbox{\hyperlink{classjet_1_1____mysql}{\+\_\+\+\_\+mysql}} \texorpdfstring{$\ast$}{*} $>$ {\bfseries sessions} +\item +\Hypertarget{classjet_1_1Global_afaf6eb3b1ed248cf1807cfc28fee04e9}\label{classjet_1_1Global_afaf6eb3b1ed248cf1807cfc28fee04e9} +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries headers} +\item +\Hypertarget{classjet_1_1Global_a2662691ae80801a119065826e6f2dbc6}\label{classjet_1_1Global_a2662691ae80801a119065826e6f2dbc6} +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries tags} +\item +\Hypertarget{classjet_1_1Global_ab77dd36bc00e6b6b1580a6b31ac43ae1}\label{classjet_1_1Global_ab77dd36bc00e6b6b1580a6b31ac43ae1} +char \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} {\bfseries envp} +\item +\Hypertarget{classjet_1_1Global_a9aa4ea7109e36c38b7bbb61d94021bdb}\label{classjet_1_1Global_a9aa4ea7109e36c38b7bbb61d94021bdb} +bool {\bfseries cgi} = false +\item +\Hypertarget{classjet_1_1Global_a51b2b2bd2c4418df09b31f676a1bc651}\label{classjet_1_1Global_a51b2b2bd2c4418df09b31f676a1bc651} +bool {\bfseries session} = false +\item +\Hypertarget{classjet_1_1Global_aaa3a03bec3a2943af2ae2e47ed1c249a}\label{classjet_1_1Global_aaa3a03bec3a2943af2ae2e47ed1c249a} +coreutils\+::\+MString {\bfseries session\+Id} +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +Global.\+h\item +Global.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1Operand.tex b/latex/classjet_1_1Operand.tex new file mode 100644 index 0000000..00cf62f --- /dev/null +++ b/latex/classjet_1_1Operand.tex @@ -0,0 +1,37 @@ +\doxysection{jet\+::Operand Class Reference} +\hypertarget{classjet_1_1Operand}{}\label{classjet_1_1Operand}\index{jet::Operand@{jet::Operand}} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1Operand_a7412da82f4d25180d2d776b097e38ada}\label{classjet_1_1Operand_a7412da82f4d25180d2d776b097e38ada} +{\bfseries Operand} (coreutils\+::\+ZString \&in, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \&tag) +\end{DoxyCompactItemize} +\doxysubsubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1Operand_a899a3ab0b77545ec4e7faf82668d8900}\label{classjet_1_1Operand_a899a3ab0b77545ec4e7faf82668d8900} +bool {\bfseries is\+Number} +\item +bool \mbox{\hyperlink{classjet_1_1Operand_aff226980c53d083ab2b6babdb595bf5b}{boolean}} +\item +\Hypertarget{classjet_1_1Operand_a13a274ebe1ddaee1070896b9fadd1015}\label{classjet_1_1Operand_a13a274ebe1ddaee1070896b9fadd1015} +coreutils\+::\+MString {\bfseries string} = "{}"{} +\item +\Hypertarget{classjet_1_1Operand_af0abf8d5831ea631a0b483fd91183568}\label{classjet_1_1Operand_af0abf8d5831ea631a0b483fd91183568} +double {\bfseries double\+Value} +\end{DoxyCompactItemize} + + +\doxysubsection{Member Data Documentation} +\Hypertarget{classjet_1_1Operand_aff226980c53d083ab2b6babdb595bf5b}\label{classjet_1_1Operand_aff226980c53d083ab2b6babdb595bf5b} +\index{jet::Operand@{jet::Operand}!boolean@{boolean}} +\index{boolean@{boolean}!jet::Operand@{jet::Operand}} +\doxysubsubsection{\texorpdfstring{boolean}{boolean}} +{\footnotesize\ttfamily bool jet\+::\+Operand\+::boolean} + +boolean is set by internal processes to return the boolean equivilent value. + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +Operand.\+h\item +Operand.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1SessionId.tex b/latex/classjet_1_1SessionId.tex new file mode 100644 index 0000000..0cebe86 --- /dev/null +++ b/latex/classjet_1_1SessionId.tex @@ -0,0 +1,26 @@ +\doxysection{jet\+::Session\+Id Class Reference} +\hypertarget{classjet_1_1SessionId}{}\label{classjet_1_1SessionId}\index{jet::SessionId@{jet::SessionId}} + + +Inheritance diagram for jet\+::Session\+Id\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=182pt]{classjet_1_1SessionId__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::Session\+Id\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=182pt]{classjet_1_1SessionId__coll__graph} +\end{center} +\end{figure} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +Session\+Id.\+h\item +Session\+Id.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1SessionId__coll__graph.md5 b/latex/classjet_1_1SessionId__coll__graph.md5 new file mode 100644 index 0000000..c14e81c --- /dev/null +++ b/latex/classjet_1_1SessionId__coll__graph.md5 @@ -0,0 +1 @@ +45988055701f15d6bf5d5e7aa26efdce \ No newline at end of file diff --git a/latex/classjet_1_1SessionId__coll__graph.pdf b/latex/classjet_1_1SessionId__coll__graph.pdf new file mode 100644 index 0000000..b0b45be Binary files /dev/null and b/latex/classjet_1_1SessionId__coll__graph.pdf differ diff --git a/latex/classjet_1_1SessionId__inherit__graph.md5 b/latex/classjet_1_1SessionId__inherit__graph.md5 new file mode 100644 index 0000000..c14e81c --- /dev/null +++ b/latex/classjet_1_1SessionId__inherit__graph.md5 @@ -0,0 +1 @@ +45988055701f15d6bf5d5e7aa26efdce \ No newline at end of file diff --git a/latex/classjet_1_1SessionId__inherit__graph.pdf b/latex/classjet_1_1SessionId__inherit__graph.pdf new file mode 100644 index 0000000..b0b45be Binary files /dev/null and b/latex/classjet_1_1SessionId__inherit__graph.pdf differ diff --git a/latex/classjet_1_1Tag.tex b/latex/classjet_1_1Tag.tex new file mode 100644 index 0000000..23fc08e --- /dev/null +++ b/latex/classjet_1_1Tag.tex @@ -0,0 +1,122 @@ +\doxysection{jet\+::Tag Class Reference} +\hypertarget{classjet_1_1Tag}{}\label{classjet_1_1Tag}\index{jet::Tag@{jet::Tag}} + + +Inheritance diagram for jet\+::Tag\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=550pt]{classjet_1_1Tag__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::Tag\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1Tag__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1Tag_a417c38b3cb5c05e26f93b8ce645fabba}\label{classjet_1_1Tag_a417c38b3cb5c05e26f93b8ce645fabba} +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +\Hypertarget{classjet_1_1Tag_ae38b29ca4dc8b0cbd09a2b2b377f2704}\label{classjet_1_1Tag_ae38b29ca4dc8b0cbd09a2b2b377f2704} +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +\Hypertarget{classjet_1_1Tag_a9c567032121a1bae30397806aaaabaab}\label{classjet_1_1Tag_a9c567032121a1bae30397806aaaabaab} +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +\Hypertarget{classjet_1_1Tag_a8dfb107f3c2bbe7bcc9e8d566153c0e3}\label{classjet_1_1Tag_a8dfb107f3c2bbe7bcc9e8d566153c0e3} +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1Tag_a3c057378538892a0f7260019c676cb68}\label{classjet_1_1Tag_a3c057378538892a0f7260019c676cb68} +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +\Hypertarget{classjet_1_1Tag_a2280a593ccef2d5541cade4d29b7c0c1}\label{classjet_1_1Tag_a2280a593ccef2d5541cade4d29b7c0c1} +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +\Hypertarget{classjet_1_1Tag_ae9324b21245e426f537e0e612ac9a5f1}\label{classjet_1_1Tag_ae9324b21245e426f537e0e612ac9a5f1} +coreutils\+::\+ZString {\bfseries name} +\item +\Hypertarget{classjet_1_1Tag_a0b52b9608a9331eb07e8aeb0385c8183}\label{classjet_1_1Tag_a0b52b9608a9331eb07e8aeb0385c8183} +coreutils\+::\+ZString {\bfseries container} +\item +\Hypertarget{classjet_1_1Tag_a4dc132f162b2c25b40aef4c4d32a3903}\label{classjet_1_1Tag_a4dc132f162b2c25b40aef4c4d32a3903} +coreutils\+::\+ZString {\bfseries container2} +\item +\Hypertarget{classjet_1_1Tag_a8fb5bb9b45033e78b09bd58d3283f4ee}\label{classjet_1_1Tag_a8fb5bb9b45033e78b09bd58d3283f4ee} +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\Hypertarget{classjet_1_1Tag_a52ee83c2eb6c48b636ea70a797ef0d2d}\label{classjet_1_1Tag_a52ee83c2eb6c48b636ea70a797ef0d2d} +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\Hypertarget{classjet_1_1Tag_a62add99e468b69a116aeae6118f8caac}\label{classjet_1_1Tag_a62add99e468b69a116aeae6118f8caac} +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsubsection*{Protected Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1Tag_ab8cf6c5f921d97f8c07412126618f576}\label{classjet_1_1Tag_ab8cf6c5f921d97f8c07412126618f576} +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +\Hypertarget{classjet_1_1Tag_a6cc82bd361146ca20733309b975f2793}\label{classjet_1_1Tag_a6cc82bd361146ca20733309b975f2793} +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +\Hypertarget{classjet_1_1Tag_adc04c13a86b4afbd165d38ae5ccd7ef5}\label{classjet_1_1Tag_adc04c13a86b4afbd165d38ae5ccd7ef5} +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +\Hypertarget{classjet_1_1Tag_a749676712f3e643ebec038aef634fe0f}\label{classjet_1_1Tag_a749676712f3e643ebec038aef634fe0f} +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +\Hypertarget{classjet_1_1Tag_a08d0be64ad59774114772fc464ef2de4}\label{classjet_1_1Tag_a08d0be64ad59774114772fc464ef2de4} +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +\Hypertarget{classjet_1_1Tag_a1f6ac65bacecef029b43f1dee489ee2a}\label{classjet_1_1Tag_a1f6ac65bacecef029b43f1dee489ee2a} +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +\Hypertarget{classjet_1_1Tag_ac5f82d019afb84db4da84923aba50fe4}\label{classjet_1_1Tag_ac5f82d019afb84db4da84923aba50fe4} +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsubsection*{Protected Attributes} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1Tag_ab8882327a45c67ae761aece350076edf}\label{classjet_1_1Tag_ab8882327a45c67ae761aece350076edf} +bool {\bfseries has\+Container} = false +\item +\Hypertarget{classjet_1_1Tag_a2fa84d8243f3fc3ea86e38e1e0f9d5fb}\label{classjet_1_1Tag_a2fa84d8243f3fc3ea86e38e1e0f9d5fb} +bool {\bfseries has\+Container2} = false +\item +\Hypertarget{classjet_1_1Tag_a53976d7d4abf3cae402f2595ff86aded}\label{classjet_1_1Tag_a53976d7d4abf3cae402f2595ff86aded} +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +\Hypertarget{classjet_1_1Tag_a9f3df630bdb7aeabfe1b4e530f5c2639}\label{classjet_1_1Tag_a9f3df630bdb7aeabfe1b4e530f5c2639} +coreutils\+::\+MString {\bfseries out} +\item +\Hypertarget{classjet_1_1Tag_a9cec7aaab63b521c1bd9dc9e26dfa32e}\label{classjet_1_1Tag_a9cec7aaab63b521c1bd9dc9e26dfa32e} +bool {\bfseries output} = true +\item +\Hypertarget{classjet_1_1Tag_a97755f154b2668dfd25fa88b07a02384}\label{classjet_1_1Tag_a97755f154b2668dfd25fa88b07a02384} +bool {\bfseries evaluate} = true +\item +\Hypertarget{classjet_1_1Tag_aaa31e5e7301d045ccf1cc37d9ee60467}\label{classjet_1_1Tag_aaa31e5e7301d045ccf1cc37d9ee60467} +bool {\bfseries filter\+Blank\+Lines} = false +\item +\Hypertarget{classjet_1_1Tag_a656ca574db1bb5d0e79a64f9b6794a6d}\label{classjet_1_1Tag_a656ca574db1bb5d0e79a64f9b6794a6d} +bool {\bfseries trim\+Lines} = false +\item +\Hypertarget{classjet_1_1Tag_a0a559f7e95dabeb7f1b0f3dc5488e657}\label{classjet_1_1Tag_a0a559f7e95dabeb7f1b0f3dc5488e657} +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +Tag.\+h\item +Tag.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1Tag__coll__graph.md5 b/latex/classjet_1_1Tag__coll__graph.md5 new file mode 100644 index 0000000..32c0676 --- /dev/null +++ b/latex/classjet_1_1Tag__coll__graph.md5 @@ -0,0 +1 @@ +c3ccbcae960fb6b1717f81033b06af7c \ No newline at end of file diff --git a/latex/classjet_1_1Tag__coll__graph.pdf b/latex/classjet_1_1Tag__coll__graph.pdf new file mode 100644 index 0000000..9d9ff7e Binary files /dev/null and b/latex/classjet_1_1Tag__coll__graph.pdf differ diff --git a/latex/classjet_1_1Tag__inherit__graph.md5 b/latex/classjet_1_1Tag__inherit__graph.md5 new file mode 100644 index 0000000..d41e9e1 --- /dev/null +++ b/latex/classjet_1_1Tag__inherit__graph.md5 @@ -0,0 +1 @@ +ddf66f3d4fd63d2108a73248961edaaa \ No newline at end of file diff --git a/latex/classjet_1_1Tag__inherit__graph.pdf b/latex/classjet_1_1Tag__inherit__graph.pdf new file mode 100644 index 0000000..adc36aa Binary files /dev/null and b/latex/classjet_1_1Tag__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____call.tex b/latex/classjet_1_1____call.tex new file mode 100644 index 0000000..a14303e --- /dev/null +++ b/latex/classjet_1_1____call.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+call Class Reference} +\hypertarget{classjet_1_1____call}{}\label{classjet_1_1____call}\index{jet::\_\_call@{jet::\_\_call}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+call\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____call__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+call\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____call__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____call_acd0f5f4249cdd3bc0df14f8fa7d78ccb}\label{classjet_1_1____call_acd0f5f4249cdd3bc0df14f8fa7d78ccb} +{\bfseries \+\_\+\+\_\+call} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+call.\+h\item +\+\_\+\+\_\+call.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____call__coll__graph.md5 b/latex/classjet_1_1____call__coll__graph.md5 new file mode 100644 index 0000000..4ad09b0 --- /dev/null +++ b/latex/classjet_1_1____call__coll__graph.md5 @@ -0,0 +1 @@ +1fb0e2d7e41a025dd909bc79909103e3 \ No newline at end of file diff --git a/latex/classjet_1_1____call__coll__graph.pdf b/latex/classjet_1_1____call__coll__graph.pdf new file mode 100644 index 0000000..6aaa4c6 Binary files /dev/null and b/latex/classjet_1_1____call__coll__graph.pdf differ diff --git a/latex/classjet_1_1____call__inherit__graph.md5 b/latex/classjet_1_1____call__inherit__graph.md5 new file mode 100644 index 0000000..0f95f9d --- /dev/null +++ b/latex/classjet_1_1____call__inherit__graph.md5 @@ -0,0 +1 @@ +b310829628609e73cc5387f9fb28ba85 \ No newline at end of file diff --git a/latex/classjet_1_1____call__inherit__graph.pdf b/latex/classjet_1_1____call__inherit__graph.pdf new file mode 100644 index 0000000..0769009 Binary files /dev/null and b/latex/classjet_1_1____call__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____comment.tex b/latex/classjet_1_1____comment.tex new file mode 100644 index 0000000..d0ceffd --- /dev/null +++ b/latex/classjet_1_1____comment.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+comment Class Reference} +\hypertarget{classjet_1_1____comment}{}\label{classjet_1_1____comment}\index{jet::\_\_comment@{jet::\_\_comment}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+comment\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____comment__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+comment\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____comment__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____comment_a80319f1685423f8241e466b569a9ac4e}\label{classjet_1_1____comment_a80319f1685423f8241e466b569a9ac4e} +{\bfseries \+\_\+\+\_\+comment} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+comment.\+h\item +\+\_\+\+\_\+comment.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____comment__coll__graph.md5 b/latex/classjet_1_1____comment__coll__graph.md5 new file mode 100644 index 0000000..cc5835f --- /dev/null +++ b/latex/classjet_1_1____comment__coll__graph.md5 @@ -0,0 +1 @@ +44532844c078b21abd556a46e07dcde2 \ No newline at end of file diff --git a/latex/classjet_1_1____comment__coll__graph.pdf b/latex/classjet_1_1____comment__coll__graph.pdf new file mode 100644 index 0000000..190323b Binary files /dev/null and b/latex/classjet_1_1____comment__coll__graph.pdf differ diff --git a/latex/classjet_1_1____comment__inherit__graph.md5 b/latex/classjet_1_1____comment__inherit__graph.md5 new file mode 100644 index 0000000..5766c99 --- /dev/null +++ b/latex/classjet_1_1____comment__inherit__graph.md5 @@ -0,0 +1 @@ +6e10c31236e62905f7b2afa771693230 \ No newline at end of file diff --git a/latex/classjet_1_1____comment__inherit__graph.pdf b/latex/classjet_1_1____comment__inherit__graph.pdf new file mode 100644 index 0000000..7271562 Binary files /dev/null and b/latex/classjet_1_1____comment__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____cookie.tex b/latex/classjet_1_1____cookie.tex new file mode 100644 index 0000000..f536d88 --- /dev/null +++ b/latex/classjet_1_1____cookie.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+cookie Class Reference} +\hypertarget{classjet_1_1____cookie}{}\label{classjet_1_1____cookie}\index{jet::\_\_cookie@{jet::\_\_cookie}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+cookie\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____cookie__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+cookie\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____cookie__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____cookie_a86f2354cac1d41a24a9605d7777844c9}\label{classjet_1_1____cookie_a86f2354cac1d41a24a9605d7777844c9} +{\bfseries \+\_\+\+\_\+cookie} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+cookie.\+h\item +\+\_\+\+\_\+cookie.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____cookie__coll__graph.md5 b/latex/classjet_1_1____cookie__coll__graph.md5 new file mode 100644 index 0000000..306908f --- /dev/null +++ b/latex/classjet_1_1____cookie__coll__graph.md5 @@ -0,0 +1 @@ +9153569213f9f4d65ed2a6b94354c345 \ No newline at end of file diff --git a/latex/classjet_1_1____cookie__coll__graph.pdf b/latex/classjet_1_1____cookie__coll__graph.pdf new file mode 100644 index 0000000..2b85fa6 Binary files /dev/null and b/latex/classjet_1_1____cookie__coll__graph.pdf differ diff --git a/latex/classjet_1_1____cookie__inherit__graph.md5 b/latex/classjet_1_1____cookie__inherit__graph.md5 new file mode 100644 index 0000000..517f496 --- /dev/null +++ b/latex/classjet_1_1____cookie__inherit__graph.md5 @@ -0,0 +1 @@ +6ead6fbf40a58af2578a362afd31da71 \ No newline at end of file diff --git a/latex/classjet_1_1____cookie__inherit__graph.pdf b/latex/classjet_1_1____cookie__inherit__graph.pdf new file mode 100644 index 0000000..48f7f6d Binary files /dev/null and b/latex/classjet_1_1____cookie__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____dotag.tex b/latex/classjet_1_1____dotag.tex new file mode 100644 index 0000000..4bb3103 --- /dev/null +++ b/latex/classjet_1_1____dotag.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+dotag Class Reference} +\hypertarget{classjet_1_1____dotag}{}\label{classjet_1_1____dotag}\index{jet::\_\_dotag@{jet::\_\_dotag}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+dotag\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____dotag__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+dotag\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____dotag__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____dotag_a04b69fb6c83d88a9fc97bf29840a77ab}\label{classjet_1_1____dotag_a04b69fb6c83d88a9fc97bf29840a77ab} +{\bfseries \+\_\+\+\_\+dotag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+dotag.\+h\item +\+\_\+\+\_\+dotag.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____dotag__coll__graph.md5 b/latex/classjet_1_1____dotag__coll__graph.md5 new file mode 100644 index 0000000..6ba40cc --- /dev/null +++ b/latex/classjet_1_1____dotag__coll__graph.md5 @@ -0,0 +1 @@ +0fddee7e57b277dde597143d0e170030 \ No newline at end of file diff --git a/latex/classjet_1_1____dotag__coll__graph.pdf b/latex/classjet_1_1____dotag__coll__graph.pdf new file mode 100644 index 0000000..786185c Binary files /dev/null and b/latex/classjet_1_1____dotag__coll__graph.pdf differ diff --git a/latex/classjet_1_1____dotag__inherit__graph.md5 b/latex/classjet_1_1____dotag__inherit__graph.md5 new file mode 100644 index 0000000..999171d --- /dev/null +++ b/latex/classjet_1_1____dotag__inherit__graph.md5 @@ -0,0 +1 @@ +f0d055840f240a08fef1d810746b0e67 \ No newline at end of file diff --git a/latex/classjet_1_1____dotag__inherit__graph.pdf b/latex/classjet_1_1____dotag__inherit__graph.pdf new file mode 100644 index 0000000..d37dc14 Binary files /dev/null and b/latex/classjet_1_1____dotag__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____dump.tex b/latex/classjet_1_1____dump.tex new file mode 100644 index 0000000..d20d705 --- /dev/null +++ b/latex/classjet_1_1____dump.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+dump Class Reference} +\hypertarget{classjet_1_1____dump}{}\label{classjet_1_1____dump}\index{jet::\_\_dump@{jet::\_\_dump}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+dump\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____dump__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+dump\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____dump__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____dump_a1fff8de4840e8a6bbd386b01a7f9e3f5}\label{classjet_1_1____dump_a1fff8de4840e8a6bbd386b01a7f9e3f5} +{\bfseries \+\_\+\+\_\+dump} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+dump.\+h\item +\+\_\+\+\_\+dump.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____dump__coll__graph.md5 b/latex/classjet_1_1____dump__coll__graph.md5 new file mode 100644 index 0000000..284d998 --- /dev/null +++ b/latex/classjet_1_1____dump__coll__graph.md5 @@ -0,0 +1 @@ +cf92f74906a84bbbb6d80203ff91e545 \ No newline at end of file diff --git a/latex/classjet_1_1____dump__coll__graph.pdf b/latex/classjet_1_1____dump__coll__graph.pdf new file mode 100644 index 0000000..029d2bd Binary files /dev/null and b/latex/classjet_1_1____dump__coll__graph.pdf differ diff --git a/latex/classjet_1_1____dump__inherit__graph.md5 b/latex/classjet_1_1____dump__inherit__graph.md5 new file mode 100644 index 0000000..c9642c2 --- /dev/null +++ b/latex/classjet_1_1____dump__inherit__graph.md5 @@ -0,0 +1 @@ +4b591d4107cbad9672809c44fc2d54c5 \ No newline at end of file diff --git a/latex/classjet_1_1____dump__inherit__graph.pdf b/latex/classjet_1_1____dump__inherit__graph.pdf new file mode 100644 index 0000000..efbb0f8 Binary files /dev/null and b/latex/classjet_1_1____dump__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____exclude.tex b/latex/classjet_1_1____exclude.tex new file mode 100644 index 0000000..448de9d --- /dev/null +++ b/latex/classjet_1_1____exclude.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+exclude Class Reference} +\hypertarget{classjet_1_1____exclude}{}\label{classjet_1_1____exclude}\index{jet::\_\_exclude@{jet::\_\_exclude}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+exclude\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____exclude__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+exclude\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____exclude__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____exclude_a8de924e50395873e7f1c402699c73a0b}\label{classjet_1_1____exclude_a8de924e50395873e7f1c402699c73a0b} +{\bfseries \+\_\+\+\_\+exclude} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+exclude.\+h\item +\+\_\+\+\_\+exclude.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____exclude__coll__graph.md5 b/latex/classjet_1_1____exclude__coll__graph.md5 new file mode 100644 index 0000000..bb75881 --- /dev/null +++ b/latex/classjet_1_1____exclude__coll__graph.md5 @@ -0,0 +1 @@ +d096d1589eccf6e25f900009c4bdd5e3 \ No newline at end of file diff --git a/latex/classjet_1_1____exclude__coll__graph.pdf b/latex/classjet_1_1____exclude__coll__graph.pdf new file mode 100644 index 0000000..dbb03be Binary files /dev/null and b/latex/classjet_1_1____exclude__coll__graph.pdf differ diff --git a/latex/classjet_1_1____exclude__inherit__graph.md5 b/latex/classjet_1_1____exclude__inherit__graph.md5 new file mode 100644 index 0000000..fad19e5 --- /dev/null +++ b/latex/classjet_1_1____exclude__inherit__graph.md5 @@ -0,0 +1 @@ +a74b29096442bff6afcc80ecb4c27bf3 \ No newline at end of file diff --git a/latex/classjet_1_1____exclude__inherit__graph.pdf b/latex/classjet_1_1____exclude__inherit__graph.pdf new file mode 100644 index 0000000..103de47 Binary files /dev/null and b/latex/classjet_1_1____exclude__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____for.tex b/latex/classjet_1_1____for.tex new file mode 100644 index 0000000..450e72c --- /dev/null +++ b/latex/classjet_1_1____for.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+for Class Reference} +\hypertarget{classjet_1_1____for}{}\label{classjet_1_1____for}\index{jet::\_\_for@{jet::\_\_for}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+for\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____for__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+for\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____for__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____for_a9057299a9dee9ab2c96d6e0efa3849a4}\label{classjet_1_1____for_a9057299a9dee9ab2c96d6e0efa3849a4} +{\bfseries \+\_\+\+\_\+for} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+for.\+h\item +\+\_\+\+\_\+for.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____for__coll__graph.md5 b/latex/classjet_1_1____for__coll__graph.md5 new file mode 100644 index 0000000..2b2ac81 --- /dev/null +++ b/latex/classjet_1_1____for__coll__graph.md5 @@ -0,0 +1 @@ +cabe8dc23d8f794fd7e33739d6870481 \ No newline at end of file diff --git a/latex/classjet_1_1____for__coll__graph.pdf b/latex/classjet_1_1____for__coll__graph.pdf new file mode 100644 index 0000000..b6dccd6 Binary files /dev/null and b/latex/classjet_1_1____for__coll__graph.pdf differ diff --git a/latex/classjet_1_1____for__inherit__graph.md5 b/latex/classjet_1_1____for__inherit__graph.md5 new file mode 100644 index 0000000..7d589a1 --- /dev/null +++ b/latex/classjet_1_1____for__inherit__graph.md5 @@ -0,0 +1 @@ +6af1311aa3feaff1d7c6206a7d5e34ea \ No newline at end of file diff --git a/latex/classjet_1_1____for__inherit__graph.pdf b/latex/classjet_1_1____for__inherit__graph.pdf new file mode 100644 index 0000000..565af99 Binary files /dev/null and b/latex/classjet_1_1____for__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____header.tex b/latex/classjet_1_1____header.tex new file mode 100644 index 0000000..8325c68 --- /dev/null +++ b/latex/classjet_1_1____header.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+header Class Reference} +\hypertarget{classjet_1_1____header}{}\label{classjet_1_1____header}\index{jet::\_\_header@{jet::\_\_header}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+header\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____header__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+header\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____header__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____header_a4efa38978c9893d0121b0a77dfe26f63}\label{classjet_1_1____header_a4efa38978c9893d0121b0a77dfe26f63} +{\bfseries \+\_\+\+\_\+header} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+header.\+h\item +\+\_\+\+\_\+header.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____header__coll__graph.md5 b/latex/classjet_1_1____header__coll__graph.md5 new file mode 100644 index 0000000..f8aa04c --- /dev/null +++ b/latex/classjet_1_1____header__coll__graph.md5 @@ -0,0 +1 @@ +c114fc045257e2b7bb0a5f1c52d8efd0 \ No newline at end of file diff --git a/latex/classjet_1_1____header__coll__graph.pdf b/latex/classjet_1_1____header__coll__graph.pdf new file mode 100644 index 0000000..b7678b8 Binary files /dev/null and b/latex/classjet_1_1____header__coll__graph.pdf differ diff --git a/latex/classjet_1_1____header__inherit__graph.md5 b/latex/classjet_1_1____header__inherit__graph.md5 new file mode 100644 index 0000000..40d3796 --- /dev/null +++ b/latex/classjet_1_1____header__inherit__graph.md5 @@ -0,0 +1 @@ +ad3e58fae732c9b222a4323d726ec5e2 \ No newline at end of file diff --git a/latex/classjet_1_1____header__inherit__graph.pdf b/latex/classjet_1_1____header__inherit__graph.pdf new file mode 100644 index 0000000..826a822 Binary files /dev/null and b/latex/classjet_1_1____header__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____if.tex b/latex/classjet_1_1____if.tex new file mode 100644 index 0000000..3e99ef3 --- /dev/null +++ b/latex/classjet_1_1____if.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+if Class Reference} +\hypertarget{classjet_1_1____if}{}\label{classjet_1_1____if}\index{jet::\_\_if@{jet::\_\_if}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+if\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____if__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+if\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____if__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____if_a067e7e6af04dd533ccc9a5bb9f856022}\label{classjet_1_1____if_a067e7e6af04dd533ccc9a5bb9f856022} +{\bfseries \+\_\+\+\_\+if} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+if.\+h\item +\+\_\+\+\_\+if.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____if__coll__graph.md5 b/latex/classjet_1_1____if__coll__graph.md5 new file mode 100644 index 0000000..26bf0d0 --- /dev/null +++ b/latex/classjet_1_1____if__coll__graph.md5 @@ -0,0 +1 @@ +74768cf9b9d5a69f51fa9119adc12184 \ No newline at end of file diff --git a/latex/classjet_1_1____if__coll__graph.pdf b/latex/classjet_1_1____if__coll__graph.pdf new file mode 100644 index 0000000..be0f742 Binary files /dev/null and b/latex/classjet_1_1____if__coll__graph.pdf differ diff --git a/latex/classjet_1_1____if__inherit__graph.md5 b/latex/classjet_1_1____if__inherit__graph.md5 new file mode 100644 index 0000000..d3c1048 --- /dev/null +++ b/latex/classjet_1_1____if__inherit__graph.md5 @@ -0,0 +1 @@ +b1ee35b4a31cca1d1ed77dee7c4f4442 \ No newline at end of file diff --git a/latex/classjet_1_1____if__inherit__graph.pdf b/latex/classjet_1_1____if__inherit__graph.pdf new file mode 100644 index 0000000..77b9eea Binary files /dev/null and b/latex/classjet_1_1____if__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____ifrow.tex b/latex/classjet_1_1____ifrow.tex new file mode 100644 index 0000000..55d8496 --- /dev/null +++ b/latex/classjet_1_1____ifrow.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+ifrow Class Reference} +\hypertarget{classjet_1_1____ifrow}{}\label{classjet_1_1____ifrow}\index{jet::\_\_ifrow@{jet::\_\_ifrow}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+ifrow\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____ifrow__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+ifrow\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____ifrow__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____ifrow_a7208e0c5f540ca09f9c619bb6d5a2128}\label{classjet_1_1____ifrow_a7208e0c5f540ca09f9c619bb6d5a2128} +{\bfseries \+\_\+\+\_\+ifrow} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+ifrow.\+h\item +\+\_\+\+\_\+ifrow.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____ifrow__coll__graph.md5 b/latex/classjet_1_1____ifrow__coll__graph.md5 new file mode 100644 index 0000000..b4f79b8 --- /dev/null +++ b/latex/classjet_1_1____ifrow__coll__graph.md5 @@ -0,0 +1 @@ +47fee1acb85ffce1c3d011926fb0ecc6 \ No newline at end of file diff --git a/latex/classjet_1_1____ifrow__coll__graph.pdf b/latex/classjet_1_1____ifrow__coll__graph.pdf new file mode 100644 index 0000000..ad29d69 Binary files /dev/null and b/latex/classjet_1_1____ifrow__coll__graph.pdf differ diff --git a/latex/classjet_1_1____ifrow__inherit__graph.md5 b/latex/classjet_1_1____ifrow__inherit__graph.md5 new file mode 100644 index 0000000..dfc4a7e --- /dev/null +++ b/latex/classjet_1_1____ifrow__inherit__graph.md5 @@ -0,0 +1 @@ +9a7612fff3703bee80fc5b9a640f0f0b \ No newline at end of file diff --git a/latex/classjet_1_1____ifrow__inherit__graph.pdf b/latex/classjet_1_1____ifrow__inherit__graph.pdf new file mode 100644 index 0000000..a6e5934 Binary files /dev/null and b/latex/classjet_1_1____ifrow__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____include.tex b/latex/classjet_1_1____include.tex new file mode 100644 index 0000000..08a795c --- /dev/null +++ b/latex/classjet_1_1____include.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+include Class Reference} +\hypertarget{classjet_1_1____include}{}\label{classjet_1_1____include}\index{jet::\_\_include@{jet::\_\_include}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+include\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____include__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+include\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____include__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____include_a921e17ab9c1a8aa1afb697b2857104e9}\label{classjet_1_1____include_a921e17ab9c1a8aa1afb697b2857104e9} +{\bfseries \+\_\+\+\_\+include} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+include.\+h\item +\+\_\+\+\_\+include.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____include__coll__graph.md5 b/latex/classjet_1_1____include__coll__graph.md5 new file mode 100644 index 0000000..09fc644 --- /dev/null +++ b/latex/classjet_1_1____include__coll__graph.md5 @@ -0,0 +1 @@ +7688835302354af485c21f295e90f120 \ No newline at end of file diff --git a/latex/classjet_1_1____include__coll__graph.pdf b/latex/classjet_1_1____include__coll__graph.pdf new file mode 100644 index 0000000..6cdef42 Binary files /dev/null and b/latex/classjet_1_1____include__coll__graph.pdf differ diff --git a/latex/classjet_1_1____include__inherit__graph.md5 b/latex/classjet_1_1____include__inherit__graph.md5 new file mode 100644 index 0000000..dc02e7c --- /dev/null +++ b/latex/classjet_1_1____include__inherit__graph.md5 @@ -0,0 +1 @@ +3a4e43badb334377c6986f15b5f48abf \ No newline at end of file diff --git a/latex/classjet_1_1____include__inherit__graph.pdf b/latex/classjet_1_1____include__inherit__graph.pdf new file mode 100644 index 0000000..4bd5906 Binary files /dev/null and b/latex/classjet_1_1____include__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____jet.tex b/latex/classjet_1_1____jet.tex new file mode 100644 index 0000000..d7c926a --- /dev/null +++ b/latex/classjet_1_1____jet.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+jet Class Reference} +\hypertarget{classjet_1_1____jet}{}\label{classjet_1_1____jet}\index{jet::\_\_jet@{jet::\_\_jet}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+jet\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____jet__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+jet\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____jet__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____jet_a484164916887e012d18e0a0dbef99e8e}\label{classjet_1_1____jet_a484164916887e012d18e0a0dbef99e8e} +{\bfseries \+\_\+\+\_\+jet} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+jet.\+h\item +\+\_\+\+\_\+jet.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____jet__coll__graph.md5 b/latex/classjet_1_1____jet__coll__graph.md5 new file mode 100644 index 0000000..d919de3 --- /dev/null +++ b/latex/classjet_1_1____jet__coll__graph.md5 @@ -0,0 +1 @@ +4cb53cf89e7c068ed50f3aa438276425 \ No newline at end of file diff --git a/latex/classjet_1_1____jet__coll__graph.pdf b/latex/classjet_1_1____jet__coll__graph.pdf new file mode 100644 index 0000000..c74e0d6 Binary files /dev/null and b/latex/classjet_1_1____jet__coll__graph.pdf differ diff --git a/latex/classjet_1_1____jet__inherit__graph.md5 b/latex/classjet_1_1____jet__inherit__graph.md5 new file mode 100644 index 0000000..4b51bf6 --- /dev/null +++ b/latex/classjet_1_1____jet__inherit__graph.md5 @@ -0,0 +1 @@ +7a3e23e052c8b21b0af076bc1d689202 \ No newline at end of file diff --git a/latex/classjet_1_1____jet__inherit__graph.pdf b/latex/classjet_1_1____jet__inherit__graph.pdf new file mode 100644 index 0000000..d23b879 Binary files /dev/null and b/latex/classjet_1_1____jet__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____mysql.tex b/latex/classjet_1_1____mysql.tex new file mode 100644 index 0000000..13a48fe --- /dev/null +++ b/latex/classjet_1_1____mysql.tex @@ -0,0 +1,113 @@ +\doxysection{jet\+::\+\_\+\+\_\+mysql Class Reference} +\hypertarget{classjet_1_1____mysql}{}\label{classjet_1_1____mysql}\index{jet::\_\_mysql@{jet::\_\_mysql}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+mysql\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____mysql__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+mysql\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____mysql__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____mysql_a84fcc73ee4937fb9556a0eb421a47645}\label{classjet_1_1____mysql_a84fcc73ee4937fb9556a0eb421a47645} +{\bfseries \+\_\+\+\_\+mysql} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\item +\Hypertarget{classjet_1_1____mysql_aecb92cd8d63a9c5ca1f7fa56134d472c}\label{classjet_1_1____mysql_aecb92cd8d63a9c5ca1f7fa56134d472c} +void {\bfseries query} (coreutils\+::\+MString query) +\item +\Hypertarget{classjet_1_1____mysql_acab439040d88aae15d55d00cc27ea4e5}\label{classjet_1_1____mysql_acab439040d88aae15d55d00cc27ea4e5} +void {\bfseries next\+Row} () +\item +\Hypertarget{classjet_1_1____mysql_a24d82ee95451eddee5bdb6c4654d297d}\label{classjet_1_1____mysql_a24d82ee95451eddee5bdb6c4654d297d} +bool {\bfseries has\+Row} () +\item +\Hypertarget{classjet_1_1____mysql_aff64f54428be70217df65fb28ba2bc34}\label{classjet_1_1____mysql_aff64f54428be70217df65fb28ba2bc34} +coreutils\+::\+ZString {\bfseries get\+Column\+Value} (coreutils\+::\+ZString column) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+mysql.\+h\item +\+\_\+\+\_\+mysql.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____mysql__coll__graph.md5 b/latex/classjet_1_1____mysql__coll__graph.md5 new file mode 100644 index 0000000..0d3bff5 --- /dev/null +++ b/latex/classjet_1_1____mysql__coll__graph.md5 @@ -0,0 +1 @@ +f18f4a2307c0ce5bf3247fca2efde91f \ No newline at end of file diff --git a/latex/classjet_1_1____mysql__coll__graph.pdf b/latex/classjet_1_1____mysql__coll__graph.pdf new file mode 100644 index 0000000..ad28dd3 Binary files /dev/null and b/latex/classjet_1_1____mysql__coll__graph.pdf differ diff --git a/latex/classjet_1_1____mysql__inherit__graph.md5 b/latex/classjet_1_1____mysql__inherit__graph.md5 new file mode 100644 index 0000000..9776dd2 --- /dev/null +++ b/latex/classjet_1_1____mysql__inherit__graph.md5 @@ -0,0 +1 @@ +2502c1388455f9c2b3eadf320c0284d5 \ No newline at end of file diff --git a/latex/classjet_1_1____mysql__inherit__graph.pdf b/latex/classjet_1_1____mysql__inherit__graph.pdf new file mode 100644 index 0000000..25b69c6 Binary files /dev/null and b/latex/classjet_1_1____mysql__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____read.tex b/latex/classjet_1_1____read.tex new file mode 100644 index 0000000..a443094 --- /dev/null +++ b/latex/classjet_1_1____read.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+read Class Reference} +\hypertarget{classjet_1_1____read}{}\label{classjet_1_1____read}\index{jet::\_\_read@{jet::\_\_read}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+read\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____read__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+read\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____read__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____read_a0121c39058eeb5b4f23c0751866dba65}\label{classjet_1_1____read_a0121c39058eeb5b4f23c0751866dba65} +{\bfseries \+\_\+\+\_\+read} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+read.\+h\item +\+\_\+\+\_\+read.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____read__coll__graph.md5 b/latex/classjet_1_1____read__coll__graph.md5 new file mode 100644 index 0000000..539a195 --- /dev/null +++ b/latex/classjet_1_1____read__coll__graph.md5 @@ -0,0 +1 @@ +4ccb15448ef66220e9dda6e2328e92f0 \ No newline at end of file diff --git a/latex/classjet_1_1____read__coll__graph.pdf b/latex/classjet_1_1____read__coll__graph.pdf new file mode 100644 index 0000000..07222d8 Binary files /dev/null and b/latex/classjet_1_1____read__coll__graph.pdf differ diff --git a/latex/classjet_1_1____read__inherit__graph.md5 b/latex/classjet_1_1____read__inherit__graph.md5 new file mode 100644 index 0000000..5cbe708 --- /dev/null +++ b/latex/classjet_1_1____read__inherit__graph.md5 @@ -0,0 +1 @@ +0750444055149d9897ec58cea4266728 \ No newline at end of file diff --git a/latex/classjet_1_1____read__inherit__graph.pdf b/latex/classjet_1_1____read__inherit__graph.pdf new file mode 100644 index 0000000..e37a402 Binary files /dev/null and b/latex/classjet_1_1____read__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____set.tex b/latex/classjet_1_1____set.tex new file mode 100644 index 0000000..dc02d75 --- /dev/null +++ b/latex/classjet_1_1____set.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+set Class Reference} +\hypertarget{classjet_1_1____set}{}\label{classjet_1_1____set}\index{jet::\_\_set@{jet::\_\_set}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+set\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____set__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+set\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____set__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____set_ace480b341316fbb600c026505bda3e3d}\label{classjet_1_1____set_ace480b341316fbb600c026505bda3e3d} +{\bfseries \+\_\+\+\_\+set} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+set.\+h\item +\+\_\+\+\_\+set.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____set__coll__graph.md5 b/latex/classjet_1_1____set__coll__graph.md5 new file mode 100644 index 0000000..0549824 --- /dev/null +++ b/latex/classjet_1_1____set__coll__graph.md5 @@ -0,0 +1 @@ +1a9fbd3730e59e15ab946b2bb2e10adf \ No newline at end of file diff --git a/latex/classjet_1_1____set__coll__graph.pdf b/latex/classjet_1_1____set__coll__graph.pdf new file mode 100644 index 0000000..d4edc23 Binary files /dev/null and b/latex/classjet_1_1____set__coll__graph.pdf differ diff --git a/latex/classjet_1_1____set__inherit__graph.md5 b/latex/classjet_1_1____set__inherit__graph.md5 new file mode 100644 index 0000000..e9feb04 --- /dev/null +++ b/latex/classjet_1_1____set__inherit__graph.md5 @@ -0,0 +1 @@ +406bc594b8d6f0263c2dbe21a8fa92bd \ No newline at end of file diff --git a/latex/classjet_1_1____set__inherit__graph.pdf b/latex/classjet_1_1____set__inherit__graph.pdf new file mode 100644 index 0000000..c71979b Binary files /dev/null and b/latex/classjet_1_1____set__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____sql.tex b/latex/classjet_1_1____sql.tex new file mode 100644 index 0000000..a1dab05 --- /dev/null +++ b/latex/classjet_1_1____sql.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+sql Class Reference} +\hypertarget{classjet_1_1____sql}{}\label{classjet_1_1____sql}\index{jet::\_\_sql@{jet::\_\_sql}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+sql\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____sql__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+sql\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____sql__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____sql_a6df5a38d244161d98dcc00368778a4f8}\label{classjet_1_1____sql_a6df5a38d244161d98dcc00368778a4f8} +{\bfseries \+\_\+\+\_\+sql} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+sql.\+h\item +\+\_\+\+\_\+sql.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____sql__coll__graph.md5 b/latex/classjet_1_1____sql__coll__graph.md5 new file mode 100644 index 0000000..631db1a --- /dev/null +++ b/latex/classjet_1_1____sql__coll__graph.md5 @@ -0,0 +1 @@ +cd5deaf26cba3cb87ae1298a8bb2f09e \ No newline at end of file diff --git a/latex/classjet_1_1____sql__coll__graph.pdf b/latex/classjet_1_1____sql__coll__graph.pdf new file mode 100644 index 0000000..dcea43c Binary files /dev/null and b/latex/classjet_1_1____sql__coll__graph.pdf differ diff --git a/latex/classjet_1_1____sql__inherit__graph.md5 b/latex/classjet_1_1____sql__inherit__graph.md5 new file mode 100644 index 0000000..142bbbd --- /dev/null +++ b/latex/classjet_1_1____sql__inherit__graph.md5 @@ -0,0 +1 @@ +778d310a76552d61fb1e52c3738f11dd \ No newline at end of file diff --git a/latex/classjet_1_1____sql__inherit__graph.pdf b/latex/classjet_1_1____sql__inherit__graph.pdf new file mode 100644 index 0000000..dfc8505 Binary files /dev/null and b/latex/classjet_1_1____sql__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____stream.tex b/latex/classjet_1_1____stream.tex new file mode 100644 index 0000000..4ddce5c --- /dev/null +++ b/latex/classjet_1_1____stream.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+stream Class Reference} +\hypertarget{classjet_1_1____stream}{}\label{classjet_1_1____stream}\index{jet::\_\_stream@{jet::\_\_stream}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+stream\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____stream__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+stream\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____stream__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____stream_aa0d06f4e8806223c22e5114b1196859d}\label{classjet_1_1____stream_aa0d06f4e8806223c22e5114b1196859d} +{\bfseries \+\_\+\+\_\+stream} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+stream.\+h\item +\+\_\+\+\_\+stream.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____stream__coll__graph.md5 b/latex/classjet_1_1____stream__coll__graph.md5 new file mode 100644 index 0000000..f1821b7 --- /dev/null +++ b/latex/classjet_1_1____stream__coll__graph.md5 @@ -0,0 +1 @@ +f04c8112cebb77cbaa296d20ce562c44 \ No newline at end of file diff --git a/latex/classjet_1_1____stream__coll__graph.pdf b/latex/classjet_1_1____stream__coll__graph.pdf new file mode 100644 index 0000000..606e9c1 Binary files /dev/null and b/latex/classjet_1_1____stream__coll__graph.pdf differ diff --git a/latex/classjet_1_1____stream__inherit__graph.md5 b/latex/classjet_1_1____stream__inherit__graph.md5 new file mode 100644 index 0000000..4b32b71 --- /dev/null +++ b/latex/classjet_1_1____stream__inherit__graph.md5 @@ -0,0 +1 @@ +796348915330531eacf442feded11285 \ No newline at end of file diff --git a/latex/classjet_1_1____stream__inherit__graph.pdf b/latex/classjet_1_1____stream__inherit__graph.pdf new file mode 100644 index 0000000..ae9235e Binary files /dev/null and b/latex/classjet_1_1____stream__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____system.tex b/latex/classjet_1_1____system.tex new file mode 100644 index 0000000..06dab9b --- /dev/null +++ b/latex/classjet_1_1____system.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+system Class Reference} +\hypertarget{classjet_1_1____system}{}\label{classjet_1_1____system}\index{jet::\_\_system@{jet::\_\_system}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+system\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____system__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+system\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____system__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____system_ab6d5bbab4a45cb49e1ccb871213c1ffb}\label{classjet_1_1____system_ab6d5bbab4a45cb49e1ccb871213c1ffb} +{\bfseries \+\_\+\+\_\+system} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+system.\+h\item +\+\_\+\+\_\+system.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____system__coll__graph.md5 b/latex/classjet_1_1____system__coll__graph.md5 new file mode 100644 index 0000000..785d007 --- /dev/null +++ b/latex/classjet_1_1____system__coll__graph.md5 @@ -0,0 +1 @@ +4f665cf9371b15fb534da2b867cefc16 \ No newline at end of file diff --git a/latex/classjet_1_1____system__coll__graph.pdf b/latex/classjet_1_1____system__coll__graph.pdf new file mode 100644 index 0000000..47af9a7 Binary files /dev/null and b/latex/classjet_1_1____system__coll__graph.pdf differ diff --git a/latex/classjet_1_1____system__inherit__graph.md5 b/latex/classjet_1_1____system__inherit__graph.md5 new file mode 100644 index 0000000..8ce4f6e --- /dev/null +++ b/latex/classjet_1_1____system__inherit__graph.md5 @@ -0,0 +1 @@ +a6908ab53d5d63c53f6a3a8c960d6235 \ No newline at end of file diff --git a/latex/classjet_1_1____system__inherit__graph.pdf b/latex/classjet_1_1____system__inherit__graph.pdf new file mode 100644 index 0000000..34e6266 Binary files /dev/null and b/latex/classjet_1_1____system__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____tag.tex b/latex/classjet_1_1____tag.tex new file mode 100644 index 0000000..4648fa8 --- /dev/null +++ b/latex/classjet_1_1____tag.tex @@ -0,0 +1,107 @@ +\doxysection{jet\+::\+\_\+\+\_\+tag Class Reference} +\hypertarget{classjet_1_1____tag}{}\label{classjet_1_1____tag}\index{jet::\_\_tag@{jet::\_\_tag}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+tag\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____tag__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+tag\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____tag__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____tag_ab44fa98e913c9099652ed2a65c1980b1}\label{classjet_1_1____tag_ab44fa98e913c9099652ed2a65c1980b1} +{\bfseries \+\_\+\+\_\+tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____tag_a7f73a0d37b9eafd2a2764e79a5f10e23}\label{classjet_1_1____tag_a7f73a0d37b9eafd2a2764e79a5f10e23} +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries tags} +\end{DoxyCompactItemize} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+tag.\+h\item +\+\_\+\+\_\+tag.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____tag__coll__graph.md5 b/latex/classjet_1_1____tag__coll__graph.md5 new file mode 100644 index 0000000..8750feb --- /dev/null +++ b/latex/classjet_1_1____tag__coll__graph.md5 @@ -0,0 +1 @@ +13bf0981ea31faccf94046d5e82b667d \ No newline at end of file diff --git a/latex/classjet_1_1____tag__coll__graph.pdf b/latex/classjet_1_1____tag__coll__graph.pdf new file mode 100644 index 0000000..84650c8 Binary files /dev/null and b/latex/classjet_1_1____tag__coll__graph.pdf differ diff --git a/latex/classjet_1_1____tag__inherit__graph.md5 b/latex/classjet_1_1____tag__inherit__graph.md5 new file mode 100644 index 0000000..568e189 --- /dev/null +++ b/latex/classjet_1_1____tag__inherit__graph.md5 @@ -0,0 +1 @@ +9437fb5af7b2f0151f25bf842cd6cb5c \ No newline at end of file diff --git a/latex/classjet_1_1____tag__inherit__graph.pdf b/latex/classjet_1_1____tag__inherit__graph.pdf new file mode 100644 index 0000000..9a9189d Binary files /dev/null and b/latex/classjet_1_1____tag__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____until.tex b/latex/classjet_1_1____until.tex new file mode 100644 index 0000000..9e32594 --- /dev/null +++ b/latex/classjet_1_1____until.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+until Class Reference} +\hypertarget{classjet_1_1____until}{}\label{classjet_1_1____until}\index{jet::\_\_until@{jet::\_\_until}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+until\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____until__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+until\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____until__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____until_a1e95b49aa130d52f26ca84a018b76e63}\label{classjet_1_1____until_a1e95b49aa130d52f26ca84a018b76e63} +{\bfseries \+\_\+\+\_\+until} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+until.\+h\item +\+\_\+\+\_\+until.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____until__coll__graph.md5 b/latex/classjet_1_1____until__coll__graph.md5 new file mode 100644 index 0000000..9bbb14d --- /dev/null +++ b/latex/classjet_1_1____until__coll__graph.md5 @@ -0,0 +1 @@ +7501aa6088d9ee769459d360fc141a5c \ No newline at end of file diff --git a/latex/classjet_1_1____until__coll__graph.pdf b/latex/classjet_1_1____until__coll__graph.pdf new file mode 100644 index 0000000..cc2c78b Binary files /dev/null and b/latex/classjet_1_1____until__coll__graph.pdf differ diff --git a/latex/classjet_1_1____until__inherit__graph.md5 b/latex/classjet_1_1____until__inherit__graph.md5 new file mode 100644 index 0000000..89d39f8 --- /dev/null +++ b/latex/classjet_1_1____until__inherit__graph.md5 @@ -0,0 +1 @@ +b3d352ebc205ca4e29bd96d0a333b76d \ No newline at end of file diff --git a/latex/classjet_1_1____until__inherit__graph.pdf b/latex/classjet_1_1____until__inherit__graph.pdf new file mode 100644 index 0000000..6bde6fb Binary files /dev/null and b/latex/classjet_1_1____until__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____while.tex b/latex/classjet_1_1____while.tex new file mode 100644 index 0000000..8ce6959 --- /dev/null +++ b/latex/classjet_1_1____while.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+while Class Reference} +\hypertarget{classjet_1_1____while}{}\label{classjet_1_1____while}\index{jet::\_\_while@{jet::\_\_while}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+while\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____while__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+while\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____while__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____while_ae35841d6f820aeedce4c14bfe6b8f81d}\label{classjet_1_1____while_ae35841d6f820aeedce4c14bfe6b8f81d} +{\bfseries \+\_\+\+\_\+while} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+while.\+h\item +\+\_\+\+\_\+while.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____while__coll__graph.md5 b/latex/classjet_1_1____while__coll__graph.md5 new file mode 100644 index 0000000..faba56b --- /dev/null +++ b/latex/classjet_1_1____while__coll__graph.md5 @@ -0,0 +1 @@ +0d8cc33a264d2a75c89152222668852b \ No newline at end of file diff --git a/latex/classjet_1_1____while__coll__graph.pdf b/latex/classjet_1_1____while__coll__graph.pdf new file mode 100644 index 0000000..1178592 Binary files /dev/null and b/latex/classjet_1_1____while__coll__graph.pdf differ diff --git a/latex/classjet_1_1____while__inherit__graph.md5 b/latex/classjet_1_1____while__inherit__graph.md5 new file mode 100644 index 0000000..20e7585 --- /dev/null +++ b/latex/classjet_1_1____while__inherit__graph.md5 @@ -0,0 +1 @@ +05d9da3d20a10efac3fc4d48e8943817 \ No newline at end of file diff --git a/latex/classjet_1_1____while__inherit__graph.pdf b/latex/classjet_1_1____while__inherit__graph.pdf new file mode 100644 index 0000000..308ea7c Binary files /dev/null and b/latex/classjet_1_1____while__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____whiledir.tex b/latex/classjet_1_1____whiledir.tex new file mode 100644 index 0000000..058789d --- /dev/null +++ b/latex/classjet_1_1____whiledir.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+whiledir Class Reference} +\hypertarget{classjet_1_1____whiledir}{}\label{classjet_1_1____whiledir}\index{jet::\_\_whiledir@{jet::\_\_whiledir}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+whiledir\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____whiledir__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+whiledir\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____whiledir__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____whiledir_ad0dd7799de8bc9e20edbd0ad24dec5ae}\label{classjet_1_1____whiledir_ad0dd7799de8bc9e20edbd0ad24dec5ae} +{\bfseries \+\_\+\+\_\+whiledir} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+whiledir.\+h\item +\+\_\+\+\_\+whiledir.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____whiledir__coll__graph.md5 b/latex/classjet_1_1____whiledir__coll__graph.md5 new file mode 100644 index 0000000..cc0f5bf --- /dev/null +++ b/latex/classjet_1_1____whiledir__coll__graph.md5 @@ -0,0 +1 @@ +132b961e1f679746e118ba6d9bed7772 \ No newline at end of file diff --git a/latex/classjet_1_1____whiledir__coll__graph.pdf b/latex/classjet_1_1____whiledir__coll__graph.pdf new file mode 100644 index 0000000..d7f1326 Binary files /dev/null and b/latex/classjet_1_1____whiledir__coll__graph.pdf differ diff --git a/latex/classjet_1_1____whiledir__inherit__graph.md5 b/latex/classjet_1_1____whiledir__inherit__graph.md5 new file mode 100644 index 0000000..c30bebe --- /dev/null +++ b/latex/classjet_1_1____whiledir__inherit__graph.md5 @@ -0,0 +1 @@ +81638ab2c5d1c2bc37003458f9d955e9 \ No newline at end of file diff --git a/latex/classjet_1_1____whiledir__inherit__graph.pdf b/latex/classjet_1_1____whiledir__inherit__graph.pdf new file mode 100644 index 0000000..6918bdb Binary files /dev/null and b/latex/classjet_1_1____whiledir__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____whilerow.tex b/latex/classjet_1_1____whilerow.tex new file mode 100644 index 0000000..0bc1a5f --- /dev/null +++ b/latex/classjet_1_1____whilerow.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+whilerow Class Reference} +\hypertarget{classjet_1_1____whilerow}{}\label{classjet_1_1____whilerow}\index{jet::\_\_whilerow@{jet::\_\_whilerow}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+whilerow\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____whilerow__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+whilerow\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____whilerow__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____whilerow_a0df15f19c1ef0b3b36da408fe3217038}\label{classjet_1_1____whilerow_a0df15f19c1ef0b3b36da408fe3217038} +{\bfseries \+\_\+\+\_\+whilerow} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+whilerow.\+h\item +\+\_\+\+\_\+whilerow.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____whilerow__coll__graph.md5 b/latex/classjet_1_1____whilerow__coll__graph.md5 new file mode 100644 index 0000000..4fe48e3 --- /dev/null +++ b/latex/classjet_1_1____whilerow__coll__graph.md5 @@ -0,0 +1 @@ +d45927b6c7d253e32f11657d134e3b3d \ No newline at end of file diff --git a/latex/classjet_1_1____whilerow__coll__graph.pdf b/latex/classjet_1_1____whilerow__coll__graph.pdf new file mode 100644 index 0000000..d0bd697 Binary files /dev/null and b/latex/classjet_1_1____whilerow__coll__graph.pdf differ diff --git a/latex/classjet_1_1____whilerow__inherit__graph.md5 b/latex/classjet_1_1____whilerow__inherit__graph.md5 new file mode 100644 index 0000000..5e04db8 --- /dev/null +++ b/latex/classjet_1_1____whilerow__inherit__graph.md5 @@ -0,0 +1 @@ +dd44d9f425af658159ca28dc8a60c258 \ No newline at end of file diff --git a/latex/classjet_1_1____whilerow__inherit__graph.pdf b/latex/classjet_1_1____whilerow__inherit__graph.pdf new file mode 100644 index 0000000..9aae99d Binary files /dev/null and b/latex/classjet_1_1____whilerow__inherit__graph.pdf differ diff --git a/latex/classjet_1_1____write.tex b/latex/classjet_1_1____write.tex new file mode 100644 index 0000000..ee3e69c --- /dev/null +++ b/latex/classjet_1_1____write.tex @@ -0,0 +1,101 @@ +\doxysection{jet\+::\+\_\+\+\_\+write Class Reference} +\hypertarget{classjet_1_1____write}{}\label{classjet_1_1____write}\index{jet::\_\_write@{jet::\_\_write}} + + +Inheritance diagram for jet\+::\+\_\+\+\_\+write\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=180pt]{classjet_1_1____write__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for jet\+::\+\_\+\+\_\+write\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=266pt]{classjet_1_1____write__coll__graph} +\end{center} +\end{figure} +\doxysubsubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\Hypertarget{classjet_1_1____write_addc77d829c5b341cdbf8bdf4d8f37598}\label{classjet_1_1____write_addc77d829c5b341cdbf8bdf4d8f37598} +{\bfseries \+\_\+\+\_\+write} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local) +\end{DoxyCompactItemize} +\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +{\bfseries Tag} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&parent\+Out, \mbox{\hyperlink{classjet_1_1Global}{Global}} \&global, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}parent=NULL, \mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*}local=NULL, coreutils\+::\+ZString split\+Tag\+Name="{}"{}) +\item +virtual {\bfseries \texorpdfstring{$\sim$}{\string~}\+Tag} () +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}Constructor \end{DoxyCompactList}\item +coreutils\+::\+MString {\bfseries get\+Variable} (coreutils\+::\+ZString \&variable, bool in\+Container=false) +\item +coreutils\+::\+MString {\bfseries resolve\+Keyword} (coreutils\+::\+ZString keyword) +\begin{DoxyCompactList}\small\item\em \texorpdfstring{$>$}{>}retrieve a vairable value from a text string cotontaining a variable name. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Additional Inherited Members} +\doxysubsection*{Public Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries variables} +\item +std\+::map$<$ coreutils\+::\+MString, coreutils\+::\+MString $>$ {\bfseries keywords} +\item +coreutils\+::\+ZString {\bfseries name} +\item +coreutils\+::\+ZString {\bfseries container} +\item +coreutils\+::\+ZString {\bfseries container2} +\item +\mbox{\hyperlink{classjet_1_1Global}{Global}} \& {\bfseries global} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries parent} +\item +\mbox{\hyperlink{classjet_1_1Tag}{Tag}} \texorpdfstring{$\ast$}{*} {\bfseries local} +\end{DoxyCompactItemize} +\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries keyword\+Defined} (coreutils\+::\+ZString variable) +\item +void {\bfseries parse\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries process\+Container} (coreutils\+::\+ZString \&container, coreutils\+::\+ZString container2=NULL, bool top\+Level=false) +\item +void {\bfseries copy\+Container} (coreutils\+::\+ZString \&in, coreutils\+::\+MString \&out) +\item +void {\bfseries render\+Variable\+Name} (coreutils\+::\+ZString \&variable, coreutils\+::\+MString \&name, coreutils\+::\+MString \&modifier) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable, coreutils\+::\+MString value, coreutils\+::\+ZString scope) +\item +void {\bfseries store\+Variable} (coreutils\+::\+ZString variable) +\end{DoxyCompactItemize} +\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classjet_1_1Tag}{jet\+::\+Tag}}} +\begin{DoxyCompactItemize} +\item +bool {\bfseries has\+Container} = false +\item +bool {\bfseries has\+Container2} = false +\item +coreutils\+::\+MString \& {\bfseries parent\+Out} +\item +coreutils\+::\+MString {\bfseries out} +\item +bool {\bfseries output} = true +\item +bool {\bfseries evaluate} = true +\item +bool {\bfseries filter\+Blank\+Lines} = false +\item +bool {\bfseries trim\+Lines} = false +\item +bool {\bfseries clean\+Whitespace} = false +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+write.\+h\item +\+\_\+\+\_\+write.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classjet_1_1____write__coll__graph.md5 b/latex/classjet_1_1____write__coll__graph.md5 new file mode 100644 index 0000000..59e7c63 --- /dev/null +++ b/latex/classjet_1_1____write__coll__graph.md5 @@ -0,0 +1 @@ +4be1611c73de4b1588cd87fe0f4a4eb7 \ No newline at end of file diff --git a/latex/classjet_1_1____write__coll__graph.pdf b/latex/classjet_1_1____write__coll__graph.pdf new file mode 100644 index 0000000..1ff9ad3 Binary files /dev/null and b/latex/classjet_1_1____write__coll__graph.pdf differ diff --git a/latex/classjet_1_1____write__inherit__graph.md5 b/latex/classjet_1_1____write__inherit__graph.md5 new file mode 100644 index 0000000..e8daeac --- /dev/null +++ b/latex/classjet_1_1____write__inherit__graph.md5 @@ -0,0 +1 @@ +775cd80e85b53fae3fd0d67d78ac600f \ No newline at end of file diff --git a/latex/classjet_1_1____write__inherit__graph.pdf b/latex/classjet_1_1____write__inherit__graph.pdf new file mode 100644 index 0000000..78020d1 Binary files /dev/null and b/latex/classjet_1_1____write__inherit__graph.pdf differ diff --git a/latex/doxygen.sty b/latex/doxygen.sty new file mode 100644 index 0000000..4bfc17f --- /dev/null +++ b/latex/doxygen.sty @@ -0,0 +1,694 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{calc} +\RequirePackage{float} +%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{verbatim} +\RequirePackage[table]{xcolor} +\RequirePackage{longtable_doxygen} +\RequirePackage{tabu_doxygen} +\RequirePackage{fancyvrb} +\RequirePackage{tabularx} +\RequirePackage{multicol} +\RequirePackage{multirow} +\RequirePackage{hanging} +\RequirePackage{ifpdf} +\RequirePackage{adjustbox} +\RequirePackage{amssymb} +\RequirePackage{stackengine} +\RequirePackage{enumitem} +\RequirePackage{alphalph} +\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis + +%---------- Internal commands used in this style file ---------------- + +\newcommand{\ensurespace}[1]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip% hide the previous |\vskip| from |\addvspace| + \endgroup% +} + +\newcommand{\DoxyHorRuler}[1]{% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{#1=0}% + {% + \hrule% + }% + {% + \hrulefilll% + }% +} +\newcommand{\DoxyLabelFont}{} +\newcommand{\entrylabel}[1]{% + {% + \parbox[b]{\labelwidth-4pt}{% + \makebox[0pt][l]{\DoxyLabelFont#1}% + \vspace{1.5\baselineskip}% + }% + }% +} + +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + %\setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by
     ... 
    +\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} +% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. +\newlength{\CodeWidthChar} +\newlength{\CodeHeightChar} +\settowidth{\CodeWidthChar}{?} +\settoheight{\CodeHeightChar}{?} +% Necessary for hanging indent +\newlength{\DoxyCodeWidth} + +\newcommand\DoxyCodeLine[1]{ + \ifthenelse{\equal{\detokenize{#1}}{}} + { + \vspace*{\baselineskip} + } + { + \hangpara{\DoxyCodeWidth}{1}{#1}\par + } +} + +\newcommand\NiceSpace{% + \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}[1]{% + \par% + \scriptsize% + \normalfont\ttfamily% + \rightskip0pt plus 1fil% + \settowidth{\DoxyCodeWidth}{000000}% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{\equal{#1}{0}} + { + {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% + } + { + {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% + } + +}{% + \normalfont% + \normalsize% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% +} + +% Redefining not defined characters, i.e. "Replacement Character" in tex output. +\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% + \textcolor{white}{\sffamily\bfseries\small ?}}{% + \rotatebox{45}{$\blacksquare$}}}} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}[1]{% + \DoxyCode{#1}% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \par% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or
      ...
    ) +\setlistdepth{12} +\newlist{DoxyEnumerate}{enumerate}{12} +\setlist[DoxyEnumerate,1]{label=\arabic*.} +\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,3]{label=\roman*.} +\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.} +\setlist[DoxyEnumerate,5]{label=\arabic*.} +\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,7]{label=\roman*.} +\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.} +\setlist[DoxyEnumerate,9]{label=\arabic*.} +\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)} +\setlist[DoxyEnumerate,11]{label=\roman*.} +\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.} + +% Used by bullet lists (using '-', @li, @arg, or
      ...
    ) +\setlistdepth{12} +\newlist{DoxyItemize}{itemize}{12} +\setlist[DoxyItemize]{label=\textperiodcentered} + +\setlist[DoxyItemize,1]{label=\textbullet} +\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash} +\setlist[DoxyItemize,3]{label=\textasteriskcentered} +\setlist[DoxyItemize,4]{label=\textperiodcentered} + +% Used by description lists (using
    ...
    ) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \centering% +}{% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% + \begin{center}% +}{% + \end{center}% +} + +% Used by @image +% (only if inline is specified) +\newenvironment{DoxyInlineImage}{% +}{% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return and @returns +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \tabulinesep=1mm% + \par% + \ifthenelse{\equal{#1}{}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\ifthenelse{\equal{#1}{1}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + } + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields simple class style enums +\newenvironment{DoxyEnumFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% +}{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for member lists +\newenvironment{DoxyCompactItemize}{% + \begin{itemize}% + \setlength{\itemsep}{-3pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% +}{% + \end{itemize}% +} + +% Used for member descriptions +\newenvironment{DoxyCompactList}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \renewcommand{\makelabel}{\hfill}% + }% +}{% + \end{list}% +} + +% Used for reference lists (@bug, @deprecated, @todo, etc.) +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% +}{% + \end{list}% +} + +% Used by @bug, @deprecated, @todo, etc. +\newenvironment{DoxyRefDesc}[1]{% + \begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}}% + \settowidth\labelwidth{\makelabel{#1}}% + \setlength\leftmargin{\labelwidth+\labelsep}% + }% +}{% + \end{list}% +} + +% Used by parameter lists and simple sections +\newenvironment{Desc} +{\begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + } +}{% + \end{list}% +} + +% Used by tables +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% +\newenvironment{TabularC}[1]% +{\tabulinesep=1mm +\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% +{\end{longtabu*}\par}% + +\newenvironment{TabularNC}[1]% +{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% +{\end{tabu}\par}% + +% Used for member group headers +\newenvironment{Indent}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + }% + \item[]\ignorespaces% +}{% + \unskip% + \end{list}% +} + +% Used when hyperlinks are turned on +\newcommand{\doxylink}[2]{% + \mbox{\hyperlink{#1}{#2}}% +} + +% Used when hyperlinks are turned on +% Third argument is the SectionType, see the doxygen internal +% documentation for the values (relevant: Page ... Subsubsection). +\newcommand{\doxysectlink}[3]{% + \mbox{\hyperlink{#1}{#2}}% +} +% Used when hyperlinks are turned off +\newcommand{\doxyref}[3]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used when hyperlinks are turned off +% Fourth argument is the SectionType, see the doxygen internal +% documentation for the values (relevant: Page ... Subsubsection). +\newcommand{\doxysectref}[4]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used to link to a table when hyperlinks are turned on +\newcommand{\doxytablelink}[2]{% + \ref{#1}% +} + +% Used to link to a table when hyperlinks are turned off +\newcommand{\doxytableref}[3]{% + \ref{#3}% +} + +% Used by @addindex +\newcommand{\lcurly}{\{} +\newcommand{\rcurly}{\}} + +% Colors used for syntax highlighting +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} + +% Color used for table heading +\newcommand{\tableheadbgcolor}{lightgray}% + +% Version of hypertarget with correct landing location +\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} + +% possibility to have sections etc. be within the margins +% unfortunately had to copy part of book.cls and add \raggedright +\makeatletter +\newcounter{subsubsubsection}[subsubsection] +\newcounter{subsubsubsubsection}[subsubsubsection] +\newcounter{subsubsubsubsubsection}[subsubsubsubsection] +\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection] +\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}} +\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}} +\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}} +\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}} +\newcommand{\subsubsubsectionmark}[1]{} +\newcommand{\subsubsubsubsectionmark}[1]{} +\newcommand{\subsubsubsubsubsectionmark}[1]{} +\newcommand{\subsubsubsubsubsubsectionmark}[1]{} +\def\toclevel@subsubsubsection{4} +\def\toclevel@subsubsubsubsection{5} +\def\toclevel@subsubsubsubsubsection{6} +\def\toclevel@subsubsubsubsubsubsection{7} +\def\toclevel@paragraph{8} +\def\toclevel@subparagraph{9} + +\newcommand\doxysection{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedright\normalfont\Large\bfseries}} +\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\large\bfseries}} +\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} + +\newcommand\l@subsubsubsection{\@dottedtocline{4}{6.1em}{7.8em}} +\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{6.1em}{9.4em}} +\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{6.1em}{11em}} +\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{6.1em}{12.6em}} +\renewcommand\l@paragraph{\@dottedtocline{8}{6.1em}{14.2em}} +\renewcommand\l@subparagraph{\@dottedtocline{9}{6.1em}{15.8em}} +\makeatother +% the sectsty doesn't look to be maintained but gives, in our case, some warning like: +% LaTeX Warning: Command \underline has changed. +% Check if current package is valid. +% unfortunately had to copy the relevant part +\newcommand*{\doxypartfont} [1] + {\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1} + \gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}} +\newcommand*{\doxychapterfont} [1] + {\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1} + \gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}} +\newcommand*{\doxysectionfont} [1] + {\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxysubsectionfont} [1] + {\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxysubsubsectionfont} [1] + {\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxyparagraphfont} [1] + {\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxysubparagraphfont} [1] + {\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}} +\newcommand*{\doxyminisecfont} [1] + {\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}} +\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}% + \doxychapterfont{#1}% + \doxysectionfont{#1}% + \doxysubsectionfont{#1}% + \doxysubsubsectionfont{#1}% + \doxyparagraphfont{#1}% + \doxysubparagraphfont{#1}% + \doxyminisecfont{#1}}% +% Define caption that is also suitable in a table +\makeatletter +\def\doxyfigcaption{% +\H@refstepcounter{figure}% +\@dblarg{\@caption{figure}}} +\makeatother + +% Define alpha enumarative names for counters > 26 +\makeatletter +\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname} +\def\@enumalphalphcnt#1{\alphalph{#1}} +\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname} +\def\@enumAlphAlphcnt#1{\AlphAlph{#1}} +\makeatother +\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa} +\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA} diff --git a/latex/etoc_doxygen.sty b/latex/etoc_doxygen.sty new file mode 100644 index 0000000..5f7e127 --- /dev/null +++ b/latex/etoc_doxygen.sty @@ -0,0 +1,2178 @@ +%% +%% This is file etoc_doxygen.sty +%% +%% Apart from this header notice and the renaming from etoc to +%% etoc_doxygen (also in \ProvidesPackage) it is an identical +%% copy of +%% +%% etoc.sty +%% +%% at version 1.2b of 2023/07/01. +%% +%% This file has been provided to Doxygen team courtesy of the +%% author for benefit of users having a LaTeX installation not +%% yet providing version 1.2a or later of etoc, whose +%% deeplevels feature is required. +%% +%% The original source etoc.dtx (only of the latest version at +%% any given time) is available at +%% +%% https://ctan.org/pkg/etoc +%% +%% and contains the terms for copying and modification as well +%% as author contact information. +%% +%% In brief any modified versions of this file must be renamed +%% with new filenames distinct from etoc.sty. +%% +%% Package: etoc +%% Version: 1.2b +%% License: LPPL 1.3c +%% Copyright (C) 2012-2023 Jean-Francois B. +\NeedsTeXFormat{LaTeX2e}[2003/12/01] +\ProvidesPackage{etoc_doxygen}[2023/07/01 v1.2b Completely customisable TOCs (JFB)] +\newif\ifEtoc@oldLaTeX +\@ifl@t@r\fmtversion{2020/10/01} + {} + {\Etoc@oldLaTeXtrue + \PackageInfo{etoc}{Old LaTeX (\fmtversion) detected!\MessageBreak + Since 1.1a (2023/01/14), etoc prefers LaTeX at least\MessageBreak + as recent as 2020-10-01, for reasons of the .toc file,\MessageBreak + and used to require it (from 1.1a to 1.2).\MessageBreak + This etoc (1.2b) does not *require* it, but has not been\MessageBreak + tested thoroughly on old LaTeX (especially if document\MessageBreak + does not use hyperref) and retrofitting was done only\MessageBreak + on basis of author partial remembrances of old context.\MessageBreak + Reported}} +\RequirePackage{kvoptions} +\SetupKeyvalOptions{prefix=Etoc@} +\newif\ifEtoc@lof +\DeclareVoidOption{lof}{\Etoc@loftrue + \PackageInfo{etoc}{Experimental support for \string\locallistoffigures.\MessageBreak + Barely tested, use at own risk}% +} +\newif\ifEtoc@lot +\DeclareVoidOption{lot}{\Etoc@lottrue + \PackageInfo{etoc}{Experimental support for \string\locallistoftables.\MessageBreak + Barely tested, use at own risk}% +} +\@ifclassloaded{memoir}{ +\PackageInfo{etoc} + {As this is with memoir class, all `...totoc' options\MessageBreak + are set true by default. Reported} +\DeclareBoolOption[true]{maintoctotoc} +\DeclareBoolOption[true]{localtoctotoc} +\DeclareBoolOption[true]{localloftotoc} +\DeclareBoolOption[true]{locallottotoc} +}{ +\DeclareBoolOption[false]{maintoctotoc} +\DeclareBoolOption[false]{localtoctotoc} +\DeclareBoolOption[false]{localloftotoc} +\DeclareBoolOption[false]{locallottotoc} +} +\DeclareBoolOption[true]{ouroboros} +\DeclareBoolOption[false]{deeplevels} +\DeclareDefaultOption{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}} +\ProcessKeyvalOptions* +\DisableKeyvalOption[action=error,package=etoc]{etoc}{lof} +\DisableKeyvalOption[action=error,package=etoc]{etoc}{lot} +\DisableKeyvalOption[action=error,package=etoc]{etoc}{deeplevels} +\def\etocsetup#1{\setkeys{etoc}{#1}} +\def\etocifmaintoctotoc{\ifEtoc@maintoctotoc + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\def\etociflocaltoctotoc{\ifEtoc@localtoctotoc + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\def\etociflocalloftotoc{\ifEtoc@localloftotoc + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\def\etociflocallottotoc{\ifEtoc@locallottotoc + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\RequirePackage{multicol} +\def\etoc@{\etoc@} +\long\def\Etoc@gobtoetoc@ #1\etoc@{} +\newtoks\Etoc@toctoks +\def\Etoc@par{\par} +\def\etocinline{\def\Etoc@par{}} +\let\etocnopar\etocinline +\def\etocdisplay{\def\Etoc@par{\par}} +\let\Etoc@global\@empty +\def\etocglobaldefs{\let\Etoc@global\global\let\tof@global\global} +\def\etoclocaldefs {\let\Etoc@global\@empty\let\tof@global\@empty} +\newif\ifEtoc@numbered +\newif\ifEtoc@hyperref +\newif\ifEtoc@parskip +\newif\ifEtoc@tocwithid +\newif\ifEtoc@standardlines +\newif\ifEtoc@etocstyle +\newif\ifEtoc@classstyle +\newif\ifEtoc@keeporiginaltoc +\newif\ifEtoc@skipprefix +\newif\ifEtoc@isfirst +\newif\ifEtoc@localtoc +\newif\ifEtoc@skipthisone +\newif\ifEtoc@stoptoc +\newif\ifEtoc@notactive +\newif\ifEtoc@mustclosegroup +\newif\ifEtoc@isemptytoc +\newif\ifEtoc@checksemptiness +\def\etocchecksemptiness {\Etoc@checksemptinesstrue } +\def\etocdoesnotcheckemptiness {\Etoc@checksemptinessfalse } +\newif\ifEtoc@notocifnotoc +\def\etocnotocifnotoc {\Etoc@checksemptinesstrue\Etoc@notocifnotoctrue } +\newcounter{etoc@tocid} +\def\Etoc@tocext{toc} +\def\Etoc@lofext{lof} +\def\Etoc@lotext{lot} +\let\Etoc@currext\Etoc@tocext +\def\etocifislocal{\ifEtoc@localtoc\expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi + } +\def\etocifislocaltoc{\etocifislocal{\ifx\Etoc@currext\Etoc@tocext + \expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi}% + {\@secondoftwo}% + } +\def\etocifislocallof{\etocifislocal{\ifx\Etoc@currext\Etoc@lofext + \expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi}% + {\@secondoftwo}% + } +\def\etocifislocallot{\etocifislocal{\ifx\Etoc@currext\Etoc@lotext + \expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi}% + {\@secondoftwo}% + } +\expandafter\def\csname Etoc@-3@@\endcsname {-\thr@@} +\expandafter\def\csname Etoc@-2@@\endcsname {-\tw@} +\expandafter\let\csname Etoc@-1@@\endcsname \m@ne +\expandafter\let\csname Etoc@0@@\endcsname \z@ +\expandafter\let\csname Etoc@1@@\endcsname \@ne +\expandafter\let\csname Etoc@2@@\endcsname \tw@ +\expandafter\let\csname Etoc@3@@\endcsname \thr@@ +\expandafter\chardef\csname Etoc@4@@\endcsname 4 +\expandafter\chardef\csname Etoc@5@@\endcsname 5 +\expandafter\chardef\csname Etoc@6@@\endcsname 6 +\ifEtoc@deeplevels + \expandafter\chardef\csname Etoc@7@@\endcsname 7 + \expandafter\chardef\csname Etoc@8@@\endcsname 8 + \expandafter\chardef\csname Etoc@9@@\endcsname 9 + \expandafter\chardef\csname Etoc@10@@\endcsname 10 + \expandafter\chardef\csname Etoc@11@@\endcsname 11 + \expandafter\chardef\csname Etoc@12@@\endcsname 12 +\fi +\expandafter\let\expandafter\Etoc@maxlevel + \csname Etoc@\ifEtoc@deeplevels12\else6\fi @@\endcsname +\edef\etocthemaxlevel{\number\Etoc@maxlevel} +\@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}} +\let\Etoc@none@@ \Etoc@minf +\expandafter\let\expandafter\Etoc@all@@ + \csname Etoc@\ifEtoc@deeplevels11\else5\fi @@\endcsname +\let\Etoc@dolevels\@empty +\def\Etoc@newlevel #1{\expandafter\def\expandafter\Etoc@dolevels\expandafter + {\Etoc@dolevels\Etoc@do{#1}}} +\ifdefined\expanded + \def\etocsetlevel#1#2{\expanded{\noexpand\etoc@setlevel{#1}{#2}}}% +\else + \def\etocsetlevel#1#2{{\edef\Etoc@tmp{\noexpand\etoc@setlevel{#1}{#2}}\expandafter}\Etoc@tmp}% +\fi +\def\etoc@setlevel#1#2{% + \edef\Etoc@tmp{\the\numexpr#2}% + \if1\ifnum\Etoc@tmp>\Etoc@maxlevel0\fi\unless\ifnum\Etoc@minf<\Etoc@tmp;\fi1% + \ifEtoc@deeplevels + \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,% + .7,.8,.9,.10,.11,.12,}% + \else + \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,}% + \fi + \ifin@\else\if\@car#1\@nil @\in@true\fi\fi + \ifin@ + \PackageWarning{etoc} + {Sorry, but `#1' is forbidden as level name.\MessageBreak + \if\@car#1\@nil @% + (because of the @ as first character)\MessageBreak\fi + Reported}% + \else + \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}% + \expandafter\let\csname Etoc@#1@@\expandafter\endcsname + \csname Etoc@\Etoc@tmp @@\endcsname + \expandafter\edef\csname Etoc@@#1@@\endcsname + {\expandafter\noexpand\csname Etoc@#1@@\endcsname}% + \expandafter\edef\csname toclevel@@#1\endcsname + {\expandafter\noexpand\csname toclevel@#1\endcsname}% + \fi + \else + \PackageWarning{etoc} + {Argument `\detokenize{#2}' of \string\etocsetlevel\space should + represent one of\MessageBreak + \ifnum\Etoc@minf=-\thr@@-2, \fi-1, 0, 1, 2, \ifEtoc@deeplevels ...\else3, 4\fi, + \the\numexpr\Etoc@maxlevel-1, or \number\Etoc@maxlevel\space + but evaluates to \Etoc@tmp.\MessageBreak + The level of `#1' will be set to \number\Etoc@maxlevel.\MessageBreak + Tables of contents will ignore `#1' as long\MessageBreak + as its level is \number\Etoc@maxlevel\space (=\string\etocthemaxlevel).% + \MessageBreak + Reported}% + \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}% + \expandafter\let\csname Etoc@#1@@\endcsname\Etoc@maxlevel + \fi +} +\def\etoclevel#1{\csname Etoc@#1@@\endcsname} +\def\etocthelevel#1{\number\csname Etoc@#1@@\endcsname} +\def\etocifunknownlevelTF#1{\@ifundefined{Etoc@#1@@}} +\@ifclassloaded{memoir}{\etocsetlevel{book}{-2}}{} +\etocsetlevel{part}{-1} +\etocsetlevel{chapter}{0} +\etocsetlevel{section}{1} +\etocsetlevel{subsection}{2} +\etocsetlevel{subsubsection}{3} +\etocsetlevel{paragraph}{4} +\etocsetlevel{subparagraph}{5} +\ifdefined\c@chapter + \etocsetlevel{appendix}{0} +\else + \etocsetlevel{appendix}{1} +\fi +\def\Etoc@do#1{\@namedef{l@@#1}{\csname l@#1\endcsname}} +\Etoc@dolevels +\let\Etoc@figure@@\Etoc@maxlevel +\let\Etoc@table@@ \Etoc@maxlevel +\let\Etoc@gobblethreeorfour\@gobblefour +\ifdefined\@gobblethree + \let\Etoc@gobblethree\@gobblethree +\else + \long\def\Etoc@gobblethree#1#2#3{}% +\fi +\AtBeginDocument{% +\@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}% +\@ifpackageloaded{hyperref} + {\Etoc@hyperreftrue} + {\ifEtoc@oldLaTeX + \let\Etoc@gobblethreeorfour\Etoc@gobblethree + \let\Etoc@etoccontentsline@fourargs\Etoc@etoccontentsline@ + \long\def\Etoc@etoccontentsline@#1#2#3{% + \Etoc@etoccontentsline@fourargs{#1}{#2}{#3}{}% + }% + \fi + }% +} +\def\etocskipfirstprefix {\global\Etoc@skipprefixtrue } +\def\Etoc@updatestackofends#1\etoc@{\gdef\Etoc@stackofends{#1}} +\def\Etoc@stackofends{{-3}{}} +\def\Etoc@doendsandbegin{% + \expandafter\Etoc@traversestackofends\Etoc@stackofends\etoc@ +} +\def\Etoc@traversestackofends#1{% + \ifnum#1>\Etoc@level + \csname Etoc@end@#1\endcsname + \expandafter\Etoc@traversestackofends + \else + \Etoc@traversestackofends@done{#1}% + \fi +} +\def\Etoc@traversestackofends@done#1#2{#2% + \ifnum#1<\Etoc@level + \csname Etoc@begin@\the\numexpr\Etoc@level\endcsname + \Etoc@global\Etoc@isfirsttrue + \edef\Etoc@tmp{{\the\numexpr\Etoc@level}}% + \else + \Etoc@global\Etoc@isfirstfalse + \let\Etoc@tmp\@empty + \fi + \expandafter\Etoc@updatestackofends\Etoc@tmp{#1}% +} +\def\Etoc@etoccontentsline #1{% + \let\Etoc@next\Etoc@gobblethreeorfour + \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel + \else + \Etoc@skipthisonefalse + \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname + \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi + \ifEtoc@localtoc + \ifEtoc@stoptoc + \Etoc@skipthisonetrue + \else + \ifEtoc@notactive + \Etoc@skipthisonetrue + \else + \unless\ifnum\Etoc@level>\etoclocaltop + \Etoc@skipthisonetrue + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \fi + \ifEtoc@skipthisone + \else + \unless\ifnum\Etoc@level>\c@tocdepth + \ifEtoc@standardlines + \let\Etoc@next\Etoc@savedcontentsline + \else + \let\Etoc@next\Etoc@etoccontentsline@ + \fi + \fi + \fi + \fi + \Etoc@next{#1}% +} +\def\Etoc@etoccontentsline@ #1#2#3#4{% + \Etoc@doendsandbegin + \Etoc@global\edef\Etoc@prefix {\expandafter\noexpand + \csname Etoc@prefix@\the\numexpr\Etoc@level\endcsname }% + \Etoc@global\edef\Etoc@contents{\expandafter\noexpand + \csname Etoc@contents@\the\numexpr\Etoc@level\endcsname }% + \ifEtoc@skipprefix \Etoc@global\def\Etoc@prefix{\@empty}\fi + \global\Etoc@skipprefixfalse + \Etoc@lxyz{#2}{#3}{#4}% + \Etoc@prefix + \Etoc@contents +} +\def\Etoc@lxyz #1#2#3{% + \ifEtoc@hyperref + \Etoc@global\def\etocthelink##1{\hyperlink{#3}{##1}}% + \else + \Etoc@global\let\etocthelink\@firstofone + \fi + \Etoc@global\def\etocthepage {#2}% + \ifEtoc@hyperref + \ifx\etocthepage\@empty + \Etoc@global\let\etocthelinkedpage\@empty + \else + \Etoc@global\def\etocthelinkedpage{\hyperlink {#3}{#2}}% + \fi + \else + \Etoc@global\let\etocthelinkedpage\etocthepage + \fi + \Etoc@global\def\etocthename{#1}% + \futurelet\Etoc@getnb@token\Etoc@@getnb #1\hspace\etoc@ + \ifEtoc@hyperref + \def\Etoc@tmp##1##2{\Etoc@global\def##2{\hyperlink{#3}{##1}}}% + \expandafter\Etoc@tmp\expandafter{\etocthename}\etocthelinkedname + \ifEtoc@numbered + \expandafter\Etoc@tmp\expandafter{\etocthenumber}\etocthelinkednumber + \else + \Etoc@global\let\etocthelinkednumber\@empty + \fi + \else + \Etoc@global\let\etocthelinkedname \etocthename + \Etoc@global\let\etocthelinkednumber\etocthenumber + \fi + \Etoc@global\expandafter\let\csname etoclink \endcsname \etocthelink + \Etoc@global\expandafter\let\csname etocname \endcsname \etocthename + \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthenumber + \Etoc@global\expandafter\let\csname etocpage \endcsname \etocthepage + \ifEtoc@hyperref + \Etoc@lxyz@linktoc + \fi +} +\def\Etoc@lxyz@linktoc{% + \ifcase\Hy@linktoc + \or + \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname + \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber + \or % page + \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage + \else % all + \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname + \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber + \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage + \fi +} +\def\Etoc@@getnb {% + \let\Etoc@next\Etoc@getnb + \ifx\Etoc@getnb@token\@sptoken\let\Etoc@next\Etoc@getnb@nonbr\fi + \ifx\Etoc@getnb@token\bgroup \let\Etoc@next\Etoc@getnb@nonbr\fi + \Etoc@next +} +\def\Etoc@getnb #1{% + \in@{#1}{\numberline\chapternumberline\partnumberline\booknumberline}% + \ifin@ + \let\Etoc@next\Etoc@getnb@nmbrd + \else + \ifnum\Etoc@level=\m@ne + \let\Etoc@next\Etoc@@getit + \else + \let\Etoc@next\Etoc@getnb@nonbr + \fi + \in@{#1}{\nonumberline}% + \ifin@ + \let\Etoc@next\Etoc@getnb@nonumberline + \fi + \fi + \Etoc@next #1% +} +\def\Etoc@getnb@nmbrd #1#2{% + \Etoc@global\Etoc@numberedtrue + \Etoc@global\def\etocthenumber {#2}% + \Etoc@getnb@nmbrd@getname\@empty +}% +\def\Etoc@getnb@nmbrd@getname #1\hspace\etoc@ {% + \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}% +} +\def\Etoc@getnb@nonbr #1\etoc@ {% + \Etoc@global\Etoc@numberedfalse + \Etoc@global\let\etocthenumber \@empty +} +\def\Etoc@getnb@nonumberline #1\hspace\etoc@ {% + \Etoc@global\Etoc@numberedfalse + \Etoc@global\let\etocthenumber \@empty + \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{\@gobble#1}% +} +\def\Etoc@@getit #1\hspace#2{% + \ifx\etoc@#2% + \Etoc@global\Etoc@numberedfalse + \Etoc@global\let\etocthenumber \@empty + \else + \Etoc@global\Etoc@numberedtrue + \Etoc@global\def\etocthenumber {#1}% + \expandafter\Etoc@getit@getname \expandafter\@empty + \fi +} +\def\Etoc@getit@getname #1\hspace\etoc@ {% + \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}% +} +\let\etocthename \@empty +\let\etocthenumber \@empty +\let\etocthepage \@empty +\let\etocthelinkedname \@empty +\let\etocthelinkednumber \@empty +\let\etocthelinkedpage \@empty +\let\etocthelink \@firstofone +\DeclareRobustCommand*{\etocname} {} +\DeclareRobustCommand*{\etocnumber}{} +\DeclareRobustCommand*{\etocpage} {} +\DeclareRobustCommand*{\etoclink} {\@firstofone} +\DeclareRobustCommand*{\etocifnumbered} + {\ifEtoc@numbered\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} +\expandafter\let\expandafter\etocxifnumbered\csname etocifnumbered \endcsname +\DeclareRobustCommand*{\etociffirst} + {\ifEtoc@isfirst\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} +\expandafter\let\expandafter\etocxiffirst\csname etociffirst \endcsname +\def\Etoc@readtoc {% + \ifeof \Etoc@tf + \else + \read \Etoc@tf to \Etoc@buffer + \Etoc@toctoks=\expandafter\expandafter\expandafter + {\expandafter\the\expandafter\Etoc@toctoks\Etoc@buffer}% + \expandafter\Etoc@readtoc + \fi +} +\Etoc@toctoks {}% (superfluous, but for clarity) +\AtBeginDocument{\IfFileExists{\jobname.toc} + {{\endlinechar=\m@ne + \makeatletter + \newread\Etoc@tf + \openin\Etoc@tf\@filef@und + \Etoc@readtoc + \global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}% + \closein\Etoc@tf}} + {\typeout{No file \jobname.toc.}}} +\def\Etoc@openouttoc{% + \ifEtoc@hyperref + \ifx\hyper@last\@undefined + \IfFileExists{\jobname .toc} + {\Hy@WarningNoLine + {old toc file detected; run LaTeX again (cheers from `etoc')}% + \global\Etoc@toctoks={}% + } + {}% + \fi + \fi + \if@filesw + \newwrite \tf@toc + \immediate \openout \tf@toc \jobname .toc\relax + \fi + \global\let\Etoc@openouttoc\empty +} +\def\Etoc@toctoc{% + \gdef\Etoc@stackofends{{-3}{}}% + \global\let\Etoc@level\Etoc@minf + \global\let\Etoc@virtualtop\Etoc@minf + \the\Etoc@toctoks + \ifEtoc@notactive + \else + \gdef\Etoc@level{-\thr@@}% + \Etoc@doendsandbegin + \fi +} +\def\Etoc@@startlocaltoc#1#2{% + \ifEtoc@localtoc + \ifnum #1=#2\relax + \global\let\etoclocaltop\Etoc@virtualtop + \Etoc@@startlocaltochook + \etoclocaltableofcontentshook + \ifEtoc@etocstyle + \etocetoclocaltocmaketitle + \fi + \ifx\Etoc@aftertitlehook\@empty + \else + \ifEtoc@localtoctotoc + \ifEtoc@ouroboros + \else + \let\Etoc@tmp\contentsline + \def\contentsline{\let\contentsline\Etoc@tmp\Etoc@gobblethreeorfour}% + \fi + \fi + \fi + \global\Etoc@notactivefalse + \fi + \fi +} +\let\etoc@startlocaltoc\@gobble +\let\Etoc@@startlocaltoc@toc\Etoc@@startlocaltoc +\let\Etoc@@startlocaltochook\@empty +\unless\ifEtoc@deeplevels + \def\etocdivisionnameatlevel#1{% + \ifcase\numexpr#1\relax + \ifdefined\c@chapter chapter\else section\fi% + \or section% + \or subsection% + \or subsubsection% + \or paragraph% + \or subparagraph% + \or empty% + \else\ifnum\numexpr#1<\m@ne + book% + \else + part% + \fi + \fi + } +\else + \def\etocdivisionnameatlevel#1{% + \ifcase\numexpr#1\relax + \ifdefined\c@chapter chapter\else section\fi% + \or section% + \or subsection% + \or subsubsection% + \or subsubsubsection% + \or subsubsubsubsection% + \or subsubsubsubsubsection% + \or subsubsubsubsubsubsection% + \or paragraph% + \or subparagraph% + \else\ifnum\numexpr#1>\z@ + empty% + \else\ifnum\numexpr#1=\m@ne + part% + \else + book% + \fi\fi + \fi + } +\fi +\def\etoclocalheadtotoc#1#2{\addcontentsline{toc}{@#1}{#2}} +\def\etocglobalheadtotoc{\addcontentsline{toc}} +\providecommand*\UseName{\@nameuse} +\def\etocetoclocaltocmaketitle{% + \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\localcontentsname}% + \if@noskipsec\leavevmode\par\fi + \etociflocaltoctotoc + {\etocifisstarred + {}% star variant, do not add to toc + {\etoclocalheadtotoc + {\etocdivisionnameatlevel{\etoclocaltop+1}}% + {\localcontentsname}% + }% + }% + {}% +}% +\def\localcontentsname {\contentsname}% +\let\etoclocaltableofcontentshook\@empty +\if1\ifEtoc@lof0\fi\ifEtoc@lot0\fi1% +\else +\AtBeginDocument{% + \let\Etoc@originaladdcontentsline\addcontentsline + \def\addcontentsline{\Etoc@hackedaddcontentsline}% +}% +\fi +\ifEtoc@lof + \ifEtoc@lot + \def\Etoc@hackedaddcontentsline#1{% + \expanded{\noexpand\in@{.#1,}}{.lof,.lot,}% + \ifin@\expandafter\Etoc@hackedaddcontentsline@i + \else\expandafter\Etoc@originaladdcontentsline + \fi {#1}} + \else + \def\Etoc@hackedaddcontentsline#1{% + \expanded{\noexpand\in@{.#1,}}{.lof,}% + \ifin@\expandafter\Etoc@hackedaddcontentsline@i + \else\expandafter\Etoc@originaladdcontentsline + \fi {#1}} + \fi +\else + \def\Etoc@hackedaddcontentsline#1{% + \expanded{\noexpand\in@{.#1,}}{.lot,}% + \ifin@\expandafter\Etoc@hackedaddcontentsline@i + \else\expandafter\Etoc@originaladdcontentsline + \fi {#1}} +\fi +\def\Etoc@hackedaddcontentsline@i#1#2#3{% + \expanded{\noexpand\in@{.#1;#2,}}{.lof;figure,.lot;table,}% + \ifin@ + \addtocontents {toc}{% + \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% + \ifdefined\protected@file@percent\protected@file@percent\fi + }% + \fi + \Etoc@originaladdcontentsline{#1}{#2}{#3}% +} +\unless\ifdefined\expanded + \def\Etoc@hackedaddcontentsline#1{% + {\edef\Etoc@tmp{\noexpand\in@{.#1,}{\ifEtoc@lof.lof,\fi\ifEtoc@lot.lot,\fi}}\expandafter}% + \Etoc@tmp + \ifin@\expandafter\Etoc@hackedaddcontentsline@i + \else\expandafter\Etoc@originaladdcontentsline + \fi {#1}% + } + \def\Etoc@hackedaddcontentsline@i#1#2#3{% + {\edef\Etoc@tmp{\noexpand\in@{.#1;#2,}}\expandafter}% + \Etoc@tmp{.lof;figure,.lot;table,}% + \ifin@ + \addtocontents {toc}{% + \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% + \ifdefined\protected@file@percent\protected@file@percent\fi + }% + \fi + \Etoc@originaladdcontentsline{#1}{#2}{#3}% + } +\fi +\def\Etoc@@startlocallistof#1#2#3{% + \ifEtoc@localtoc + \ifnum #2=#3\relax + \global\let\etoclocaltop\Etoc@virtualtop + \global\Etoc@notactivefalse + \Etoc@@startlocaltochook + \csname etoclocallistof#1shook\endcsname + \ifEtoc@etocstyle + \csname etocetoclistof#1smaketitle\endcsname + \fi + \fi + \fi +} +\def\Etoc@@startlocallistof@setlevels#1{% + \ifnum\etoclocaltop<\z@ + \expandafter\let\csname Etoc@#1@@\endcsname\@ne + \else + \expandafter\let\csname Etoc@#1@@\expandafter\endcsname + \csname Etoc@\the\numexpr\etoclocaltop+\@ne @@\endcsname + \fi + \def\Etoc@do##1{% + \ifnum\etoclevel{##1}>\etoclocaltop + \expandafter\let\csname Etoc@##1@@\endcsname\Etoc@maxlevel + \fi}% + \Etoc@dolevels +} +\def\etoclocallistoffigureshook{\etocstandardlines} +\def\etoclocallistoftableshook {\etocstandardlines} +\def\locallistfigurename{\listfigurename} +\def\locallisttablename {\listtablename} +\def\etocetoclistoffiguresmaketitle{% + \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallistfigurename}% + \ifnum\etoclocaltop>\tw@\mbox{}\par\fi + \etociflocalloftotoc + {\etocifisstarred + {}% star variant, do not add to toc + {\etoclocalheadtotoc + {\etocdivisionnameatlevel{\etoclocaltop+1}}% + {\locallistfigurename}% + }% + }% + {}% +}% +\def\etocetoclistoftablesmaketitle{% + \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallisttablename}% + \ifnum\etoclocaltop>\tw@\mbox{}\par\fi + \etociflocallottotoc + {\etocifisstarred + {}% star variant, do not add to toc + {\etoclocalheadtotoc + {\etocdivisionnameatlevel{\etoclocaltop+1}}% + {\locallisttablename}% + }% + }% + {}% +}% +\let\Etoc@listofreset\@empty +\ifEtoc@lof + \def\locallistoffigures{% + \def\Etoc@listofreset{% + \let\Etoc@currext\Etoc@tocext + \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc + \let\Etoc@@startlocaltochook\@empty + \let\Etoc@listofreset\@empty + \let\Etoc@listofhook\@empty + }% + \let\Etoc@currext\Etoc@lofext + \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{figure}}% + \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{figure}}% + \def\Etoc@listofhook{% + \def\Etoc@do####1{% + \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel + }% + \Etoc@dolevels + }% + \localtableofcontents + } +\else + \def\locallistoffigures{% + \PackageError{etoc}{% + \string\locallistoffigures \on@line\space but\MessageBreak + package was loaded without `lof' option}% + {Try again with \string\usepackage[lof]{etoc}}% + } +\fi +\ifEtoc@lot + \def\locallistoftables{% + \def\Etoc@listofreset{% + \let\Etoc@currext\Etoc@tocext + \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc + \let\Etoc@@startlocaltochook\@empty + \let\Etoc@listofreset\@empty + \let\Etoc@listofhook\@empty + }% + \let\Etoc@currext\Etoc@lotext + \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{table}}% + \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{table}}% + \def\Etoc@listofhook{% + \def\Etoc@do####1{% + \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel + }% + \Etoc@dolevels + }% + \localtableofcontents + } +\else + \def\locallistoftables{% + \PackageError{etoc}{% + \string\locallistoftable \on@line\space but\MessageBreak + package was loaded without `lot' option}% + {Try again with \string\usepackage[lot]{etoc}}% + } +\fi +\def\Etoc@checkifempty {% + \global\Etoc@isemptytoctrue + \global\Etoc@stoptocfalse + \global\let\Etoc@level\Etoc@minf + \global\let\Etoc@virtualtop\Etoc@minf + \gdef\Etoc@stackofends{{-3}{}}% + \begingroup + \ifEtoc@localtoc + \def\etoc@startlocaltoc##1{% + \ifnum##1=\Etoc@tocid\relax + \global\let\etoclocaltop\Etoc@virtualtop + \Etoc@@startlocaltochook + \global\Etoc@notactivefalse + \fi + }% + \let\contentsline\Etoc@testingcontentslinelocal + \else + \let\contentsline\Etoc@testingcontentsline + \fi + \Etoc@storetocdepth + \let\Etoc@setlocaltop@doendsandbegin\@empty + \the\Etoc@toctoks + \Etoc@restoretocdepth + \endgroup +} +\DeclareRobustCommand*\etocifwasempty + {\ifEtoc@isemptytoc\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi } +\expandafter\let\expandafter\etocxifwasempty\csname etocifwasempty \endcsname +\def\Etoc@testingcontentslinelocal #1{% + \ifEtoc@stoptoc + \else + \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel + \else + \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname + \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi + \ifEtoc@notactive + \else + \ifnum\Etoc@level>\etoclocaltop + \unless\ifnum\Etoc@level>\c@tocdepth + \global\Etoc@isemptytocfalse + \global\Etoc@stoptoctrue + \fi + \else + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \fi + \Etoc@gobblethreeorfour{}% +} +\def\Etoc@testingcontentsline #1{% + \ifEtoc@stoptoc + \else + \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel + \else + \unless\ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth + \global\Etoc@isemptytocfalse + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \Etoc@gobblethreeorfour{}% +} +\def\Etoc@localtableofcontents#1{% + \gdef\etoclocaltop{-\@m}% + \Etoc@localtoctrue + \global\Etoc@isemptytocfalse + \edef\Etoc@tocid{#1}% + \ifnum\Etoc@tocid<\@ne + \setbox0\hbox{\ref{Unknown toc ref \@secondoftwo#1. \space Rerun LaTeX}}% + \global\Etoc@stoptoctrue + \gdef\etoclocaltop{-\thr@@}% + \Etoc@tableofcontents + \expandafter\Etoc@gobtoetoc@ + \fi + \global\Etoc@notactivetrue + \ifEtoc@checksemptiness + \Etoc@checkifempty + \fi + \ifEtoc@isemptytoc + \ifEtoc@notactive + \setbox0\hbox{\ref{Unknown toc ID \number\Etoc@tocid. \space Rerun LaTeX}}% + \global\Etoc@isemptytocfalse + \global\Etoc@stoptoctrue + \gdef\etoclocaltop{-\thr@@}% + \Etoc@tableofcontents + \expandafter\expandafter\expandafter\Etoc@gobtoetoc@ + \fi + \else + \global\Etoc@stoptocfalse + \global\Etoc@notactivetrue + \edef\etoc@startlocaltoc##1% + {\noexpand\Etoc@@startlocaltoc{##1}{\Etoc@tocid}}% + \Etoc@tableofcontents + \fi + \@gobble\etoc@ + \endgroup\ifEtoc@mustclosegroup\endgroup\fi + \Etoc@tocdepthreset + \Etoc@listofreset + \etocaftertochook +}% \Etoc@localtableofcontents +\def\Etoc@getref #1{% + \@ifundefined{r@#1} + {0} + {\expandafter\Etoc@getref@i\romannumeral-`0% + \expandafter\expandafter\expandafter + \@car\csname r@#1\endcsname0\@nil\@etoc + }% +} +\def\Etoc@getref@i#1#2\@etoc{\ifnum9<1\string#1 #1#2\else 0\fi} +\def\Etoc@ref#1{\Etoc@localtableofcontents{\Etoc@getref{#1}}} +\def\Etoc@label#1{\label{#1}\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} +\@firstofone{\def\Etoc@again} {\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} +\def\Etoc@dothis #1#2\etoc@ {\fi #1} +\def\Etoc@t@bleofcontents{% + \gdef\etoclocaltop{-\@M}% + \ifx\Etoc@nexttoken\label\Etoc@dothis{\expandafter\Etoc@label\@gobble}\fi + \ifx\Etoc@nexttoken\@sptoken\Etoc@dothis{\Etoc@again}\fi + \ifx\Etoc@nexttoken\ref\Etoc@dothis{\expandafter\Etoc@ref\@gobble}\fi + \ifEtoc@tocwithid\Etoc@dothis{\Etoc@localtableofcontents{\c@etoc@tocid}}\fi + \global\Etoc@isemptytocfalse + \ifEtoc@checksemptiness\Etoc@checkifempty\fi + \ifEtoc@isemptytoc + \ifEtoc@notocifnotoc + \expandafter\expandafter\expandafter\@gobble + \fi + \fi + \Etoc@tableofcontents + \endgroup + \ifEtoc@mustclosegroup\endgroup\fi + \Etoc@tocdepthreset + \Etoc@listofreset + \etocaftertochook + \@gobble\etoc@ + }% \Etoc@t@bleofcontents +\def\Etoc@table@fcontents{% + \refstepcounter{etoc@tocid}% + \Etoc@tocwithidfalse + \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents +} +\def\Etoc@localtable@fcontents{% + \refstepcounter{etoc@tocid}% + \addtocontents{toc}{\string\etoc@startlocaltoc{\the\c@etoc@tocid}}% + \Etoc@tocwithidtrue + \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents +} +\def\etoctableofcontents{% + \Etoc@openouttoc + \Etoc@tocdepthset + \begingroup + \@ifstar + {\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents} + {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}% +}% \etoctableofcontents +\def\etocifisstarred{\ifx\Etoc@aftertitlehook\@empty + \expandafter\@firstoftwo\else + \expandafter\@secondoftwo + \fi} +\let\etocoriginaltableofcontents\tableofcontents +\let\tableofcontents\etoctableofcontents +\let\Etoc@listofhook\@empty +\newcommand*\localtableofcontents{% + \Etoc@openouttoc + \Etoc@tocdepthset + \begingroup + \Etoc@listofhook + \@ifstar + {\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents} + {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}% +}% \localtableofcontents +\newcommand*\localtableofcontentswithrelativedepth[1]{% + \def\Etoc@@startlocaltochook{% + \global\c@tocdepth\numexpr\etoclocaltop+#1\relax + }% + \def\Etoc@listofreset{\let\Etoc@@startlocaltochook\@empty + \let\Etoc@listofreset\@empty}% + \localtableofcontents +}% \localtableofcontentswithrelativedepth +\newcommand\etocsettocstyle[2]{% + \Etoc@etocstylefalse + \Etoc@classstylefalse + \def\Etoc@tableofcontents@user@before{#1}% + \def\Etoc@tableofcontents@user@after {#2}% +}% +\def\etocstoretocstyleinto#1{% +%% \@ifdefinable#1{% + \edef#1{\noexpand\Etoc@etocstylefalse\noexpand\Etoc@classstylefalse + \def\noexpand\Etoc@tableofcontents@user@before{% + \unexpanded\expandafter{\Etoc@tableofcontents@user@before}% + }% + \def\noexpand\Etoc@tableofcontents@user@after{% + \unexpanded\expandafter{\Etoc@tableofcontents@user@after}% + }% + }% +%% }% +}% +\def\Etoc@tableofcontents {% + \Etoc@tableofcontents@etoc@before + \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi + \Etoc@tableofcontents@user@before + \Etoc@tableofcontents@contents + \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi + \Etoc@tableofcontents@user@after + \Etoc@tableofcontents@etoc@after + \@gobble\etoc@ +} +\def\Etoc@tableofcontents@etoc@before{% + \ifnum\c@tocdepth>\Etoc@minf + \else + \expandafter\Etoc@gobtoetoc@ + \fi + \Etoc@par + \Etoc@beforetitlehook + \etocbeforetitlehook + \Etoc@storetocdepth + \let\Etoc@savedcontentsline\contentsline + \let\contentsline\Etoc@etoccontentsline + \ifEtoc@standardlines + \else + \def\Etoc@do##1{% + \expandafter\def\csname etocsaved##1tocline\endcsname + {\PackageError{etoc}{% + \expandafter\string\csname etocsaved##1tocline\endcsname\space + has been deprecated\MessageBreak + at 1.1a and is removed at 1.2.\MessageBreak + Use \expandafter\string\csname l@##1\endcsname\space directly.\MessageBreak + Reported \on@line}% + {I will use \expandafter\string + \csname l@##1\endcsname\space myself for this time.% + }% + \csname l@##1\endcsname + }% + }% + \Etoc@dolevels + \fi +}% +\def\Etoc@tableofcontents@contents{% + \Etoc@tocdepthset + \ifEtoc@parskip\parskip\z@skip\fi + \Etoc@aftertitlehook + \gdef\etoclocaltop{-\thr@@}% + \Etoc@toctoc + \etocaftercontentshook +}% +\def\Etoc@tableofcontents@etoc@after{% + \@nobreakfalse + \Etoc@restoretocdepth + \ifx\Etoc@global\global + \@ifundefined{tof@finish} + {} + {\ifx\tof@finish\@empty + \else + \global\let\contentsline\Etoc@savedcontentsline + \fi + }% + \fi +} +\def\etocsetstyle#1{\ifcsname Etoc@#1@@\endcsname + \expandafter\Etoc@setstyle@a + \else + \expandafter\Etoc@setstyle@error + \fi {#1}% +} +\def\Etoc@setstyle@error #1{% + \PackageWarning{etoc}{`#1' is unknown to etoc. \space Did you\MessageBreak + forget some \string\etocsetlevel{#1}{}?\MessageBreak + Reported}% + \@gobblefour +} +\def\Etoc@setstyle@a #1{% + \edef\Etoc@tmp{\the\numexpr\csname Etoc@#1@@\endcsname}% + \if1\unless\ifnum\Etoc@tmp<\Etoc@maxlevel 0\fi + \unless\ifnum\Etoc@tmp>\Etoc@minf 0\fi1% + \Etoc@standardlinesfalse + \expandafter\Etoc@setstyle@b\expandafter\Etoc@tmp + \else + \ifnum\Etoc@tmp=\Etoc@maxlevel + \in@{.#1,}{.figure,.table,}% + \ifin@ + \PackageWarning{etoc} + {You can not use \string\etocsetstyle\space with `#1'.\MessageBreak + Check the package documentation (in particular about\MessageBreak + \string\etoclocallistoffigureshook/\string\etoclocallistoftableshook)% + \MessageBreak on how to customize + figure and table entries in local\MessageBreak lists. Reported}% + \else + \PackageInfo{etoc} + {Attempt to set the style of `#1',\MessageBreak + whose level is currently the maximal one \etocthemaxlevel,\MessageBreak + which is never displayed. \space This will be ignored\MessageBreak + but note that we do quit compatibility mode.\MessageBreak + Reported}% + \Etoc@standardlinesfalse + \fi + \else + \PackageWarning{etoc}{This should not happen. Reported}% + \fi + \expandafter\@gobblefour + \fi +} +\long\def\Etoc@setstyle@b#1#2#3#4#5{% + \expandafter\def\csname Etoc@begin@#1\endcsname {#2}% + \expandafter\def\csname Etoc@prefix@#1\endcsname {#3}% + \expandafter\def\csname Etoc@contents@#1\endcsname {#4}% + \expandafter\def\csname Etoc@end@#1\endcsname {#5}% +} +\def\Etoc@setstyle@e#1{% + \expandafter\let\csname Etoc@begin@#1\endcsname \@empty + \expandafter\let\csname Etoc@prefix@#1\endcsname \@empty + \expandafter\let\csname Etoc@contents@#1\endcsname \@empty + \expandafter\let\csname Etoc@end@#1\endcsname \@empty +} +\def\Etoc@storelines@a#1{% + \noexpand\Etoc@setstyle@b{#1}% + {\expandafter\Etoc@expandonce\csname Etoc@begin@#1\endcsname}% + {\expandafter\Etoc@expandonce\csname Etoc@prefix@#1\endcsname}% + {\expandafter\Etoc@expandonce\csname Etoc@contents@#1\endcsname}% + {\expandafter\Etoc@expandonce\csname Etoc@end@#1\endcsname}% +} +\def\Etoc@expandonce#1{\unexpanded\expandafter{#1}} +\def\etocstorelinestylesinto#1{% + \edef#1{\Etoc@storelines@a{-2}\Etoc@storelines@a{-1}\Etoc@storelines@a{0}% + \Etoc@storelines@a {1}\Etoc@storelines@a {2}\Etoc@storelines@a{3}% + \Etoc@storelines@a {4}\Etoc@storelines@a {5}% + \ifEtoc@deeplevels + \Etoc@storelines@a{6}\Etoc@storelines@a{7}\Etoc@storelines@a{8}% + \Etoc@storelines@a{9}\Etoc@storelines@a{10}\Etoc@storelines@a{11}% + \fi + }% +} +\def\etocstorethislinestyleinto#1#2{% + \edef#2{\expandafter\Etoc@storelines@a\expandafter{\number\etoclevel{#1}}}% +}% +\def\etocfontminustwo {\normalfont \LARGE \bfseries} +\def\etocfontminusone {\normalfont \large \bfseries} +\def\etocfontzero {\normalfont \large \bfseries} +\def\etocfontone {\normalfont \normalsize \bfseries} +\def\etocfonttwo {\normalfont \normalsize} +\def\etocfontthree {\normalfont \footnotesize} +\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex} +\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex} +\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex} +\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex} +\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex} +\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex} +\def\etocbaselinespreadminustwo {1} +\def\etocbaselinespreadminusone {1} +\def\etocbaselinespreadzero {1} +\def\etocbaselinespreadone {1} +\def\etocbaselinespreadtwo {1} +\def\etocbaselinespreadthree {.9} +\def\etocminustwoleftmargin {1.5em plus 0.5fil} +\def\etocminustworightmargin {1.5em plus -0.5fil} +\def\etocminusoneleftmargin {1em} +\def\etocminusonerightmargin {1em} +\def\etoctoclineleaders + {\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}} +\def\etocabbrevpagename {p.~} +\def\etocpartname {Part} +\def\etocbookname {Book} +\def\etocdefaultlines{% + \Etoc@standardlinesfalse + \etocdefaultlines@setbook + \etocdefaultlines@setpart + \etocdefaultlines@setchapter + \etocdefaultlines@setsection + \etocdefaultlines@setsubsection + \etocdefaultlines@setsubsubsection + \etocdefaultlines@setdeeperones +} +\def\etocnoprotrusion{\leavevmode\kern-\p@\kern\p@} +\@ifclassloaded{memoir}{% + \def\etocdefaultlines@setbook{% + \Etoc@setstyle@b + {-2}% + {\addpenalty\@M\etocskipfirstprefix} + {\addpenalty\@secpenalty} + {\begingroup + \etocfontminustwo + \addvspace{\etocsepminustwo}% + \parindent \z@ + \leftskip \etocminustwoleftmargin + \rightskip \etocminustworightmargin + \parfillskip \@flushglue + \vbox{\etocifnumbered{\etoclink{\etocbookname\enspace\etocthenumber:\quad}}{}% + \etocname + \baselineskip\etocbaselinespreadminustwo\baselineskip + \par}% + \addpenalty\@M\addvspace{\etocsepminusone}% + \endgroup} + {}% + } + }{\let\etocdefaultlines@setbook\@empty} +\def\etocdefaultlines@setpart{% +\Etoc@setstyle@b + {-1}% + {\addpenalty\@M\etocskipfirstprefix} + {\addpenalty\@secpenalty} + {\begingroup + \etocfontminusone + \addvspace{\etocsepminusone}% + \parindent \z@ + \leftskip \etocminusoneleftmargin + \rightskip \etocminusonerightmargin + \parfillskip \@flushglue + \vbox{\etocifnumbered{\etoclink{\etocpartname\enspace\etocthenumber.\quad}}{}% + \etocname + \baselineskip\etocbaselinespreadminusone\baselineskip + \par}% + \addpenalty\@M\addvspace{\etocsepzero}% + \endgroup} + {}% +} +\def\etocdefaultlines@setchapter{% +\Etoc@setstyle@b + {0}% + {\addpenalty\@M\etocskipfirstprefix} + {\addpenalty\@itempenalty} + {\begingroup + \etocfontzero + \addvspace{\etocsepzero}% + \parindent \z@ \parfillskip \@flushglue + \vbox{\etocifnumbered{\etocnumber.\enspace}{}\etocname + \baselineskip\etocbaselinespreadzero\baselineskip + \par}% + \endgroup} + {\addpenalty{-\@highpenalty}\addvspace{\etocsepminusone}}% +} +\def\etocdefaultlines@setsection{% +\Etoc@setstyle@b + {1}% + {\addpenalty\@M\etocskipfirstprefix} + {\addpenalty\@itempenalty} + {\begingroup + \etocfontone + \addvspace{\etocsepone}% + \parindent \z@ \parfillskip \z@ + \setbox\z@\vbox{\parfillskip\@flushglue + \etocname\par + \setbox\tw@\lastbox + \global\setbox\@ne\hbox{\unhbox\tw@\ }}% + \dimen\z@=\wd\@ne + \setbox\z@=\etoctoclineleaders + \advance\dimen\z@\wd\z@ + \etocifnumbered + {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}} + {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}% + \advance\dimen\z@\wd\tw@ + \ifdim\dimen\z@ < \linewidth + \vbox{\etocname~% + \leaders\box\z@\hfil\box\tw@ + \baselineskip\etocbaselinespreadone\baselineskip + \par}% + \else + \vbox{\etocname~% + \leaders\copy\z@\hfil\break + \hbox{}\leaders\box\z@\hfil\box\tw@ + \baselineskip\etocbaselinespreadone\baselineskip + \par}% + \fi + \endgroup} + {\addpenalty\@secpenalty\addvspace{\etocsepzero}}% +} +\def\etocdefaultlines@setsubsection{% +\Etoc@setstyle@b + {2}% + {\addpenalty\@medpenalty\etocskipfirstprefix} + {\addpenalty\@itempenalty} + {\begingroup + \etocfonttwo + \addvspace{\etocseptwo}% + \parindent \z@ \parfillskip \z@ + \setbox\z@\vbox{\parfillskip\@flushglue + \etocname\par\setbox\tw@\lastbox + \global\setbox\@ne\hbox{\unhbox\tw@}}% + \dimen\z@=\wd\@ne + \setbox\z@=\etoctoclineleaders + \advance\dimen\z@\wd\z@ + \etocifnumbered + {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}} + {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}% + \advance\dimen\z@\wd\tw@ + \ifdim\dimen\z@ < \linewidth + \vbox{\etocname~% + \leaders\box\z@\hfil\box\tw@ + \baselineskip\etocbaselinespreadtwo\baselineskip + \par}% + \else + \vbox{\etocname~% + \leaders\copy\z@\hfil\break + \hbox{}\leaders\box\z@\hfil\box\tw@ + \baselineskip\etocbaselinespreadtwo\baselineskip + \par}% + \fi + \endgroup} + {\addpenalty\@secpenalty\addvspace{\etocsepone}}% +} +\def\etocdefaultlines@setsubsubsection{% +\Etoc@setstyle@b + {3}% + {\addpenalty\@M + \etocfontthree + \vspace{\etocsepthree}% + \noindent + \etocskipfirstprefix} + {\allowbreak\,--\,} + {\etocname} + {.\hfil + \begingroup + \baselineskip\etocbaselinespreadthree\baselineskip + \par + \endgroup + \addpenalty{-\@highpenalty}} +} +\def\etocdefaultlines@setdeeperones{% +\Etoc@setstyle@e{4}% +\Etoc@setstyle@e{5}% +\ifEtoc@deeplevels + \Etoc@setstyle@e{6}% + \Etoc@setstyle@e{7}% + \Etoc@setstyle@e{8}% + \Etoc@setstyle@e{9}% + \Etoc@setstyle@e{10}% + \Etoc@setstyle@e{11}% +\fi +} +\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex} +\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex} +\def\etoccolumnsep{2em} +\def\etocmulticolsep{0ex} +\def\etocmulticolpretolerance{-1} +\def\etocmulticoltolerance{200} +\def\etocdefaultnbcol{2} +\def\etocinnertopsep{2ex} +\newcommand\etocmulticolstyle[2][\etocdefaultnbcol]{% +\etocsettocstyle + {\let\etocoldpar\par + \addvspace{\etocabovetocskip}% + \ifnum #1>\@ne + \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\multicolpretolerance\etocmulticolpretolerance + \multicoltolerance\etocmulticoltolerance + \setlength{\columnsep}{\etoccolumnsep}% + \setlength{\multicolsep}{\etocmulticolsep}% + \begin{multicols}{#1}[#2\etocoldpar\addvspace{\etocinnertopsep}]} + {#2\ifvmode\else\begingroup\interlinepenalty\@M\parskip\z@skip + \@@par\endgroup + \fi + \nobreak\addvspace{\etocinnertopsep}% + \pretolerance\etocmulticolpretolerance + \tolerance\etocmulticoltolerance}% + }% + {\ifnum #1>\@ne + \expandafter\@firstofone + \else \expandafter\@gobble + \fi + {\end{multicols}}% + \addvspace{\etocbelowtocskip}}% +} +\def\etocinnerbottomsep{3.5ex} +\def\etocinnerleftsep{2em} +\def\etocinnerrightsep{2em} +\def\etoctoprule{\hrule} +\def\etocleftrule{\vrule} +\def\etocrightrule{\vrule} +\def\etocbottomrule{\hrule} +\def\etoctoprulecolorcmd{\relax} +\def\etocbottomrulecolorcmd{\relax} +\def\etocleftrulecolorcmd{\relax} +\def\etocrightrulecolorcmd{\relax} +\def\etoc@ruledheading #1{% + \hb@xt@\linewidth{\color@begingroup + \hss #1\hss\hskip-\linewidth + \etoctoprulecolorcmd\leaders\etoctoprule\hss + \phantom{#1}% + \leaders\etoctoprule\hss\color@endgroup}% + \nointerlineskip\nobreak\vskip\etocinnertopsep} +\newcommand*\etocruledstyle[2][\etocdefaultnbcol]{% +\etocsettocstyle + {\addvspace{\etocabovetocskip}% + \ifnum #1>\@ne + \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\multicolpretolerance\etocmulticolpretolerance + \multicoltolerance\etocmulticoltolerance + \setlength{\columnsep}{\etoccolumnsep}% + \setlength{\multicolsep}{\etocmulticolsep}% + \begin{multicols}{#1}[\etoc@ruledheading{#2}]} + {\etoc@ruledheading{#2}% + \pretolerance\etocmulticolpretolerance + \tolerance\etocmulticoltolerance}} + {\ifnum #1>\@ne\expandafter\@firstofone + \else \expandafter\@gobble + \fi + {\end{multicols}}% + \addvspace{\etocbelowtocskip}}} +\def\etocframedmphook{\relax} +\long\def\etocbkgcolorcmd{\relax} +\long\def\Etoc@relax{\relax} +\newbox\etoc@framed@titlebox +\newbox\etoc@framed@contentsbox +\newcommand*\etocframedstyle[2][\etocdefaultnbcol]{% +\etocsettocstyle{% + \addvspace{\etocabovetocskip}% + \sbox\z@{#2}% + \dimen\z@\dp\z@ + \ifdim\wd\z@<\linewidth \dp\z@\z@ \else \dimen\z@\z@ \fi + \setbox\etoc@framed@titlebox=\hb@xt@\linewidth{\color@begingroup + \hss + \ifx\etocbkgcolorcmd\Etoc@relax + \else + \sbox\tw@{\color{white}% + \vrule\@width\wd\z@\@height\ht\z@\@depth\dimen\z@}% + \ifdim\wd\z@<\linewidth \dp\tw@\z@\fi + \box\tw@ + \hskip-\wd\z@ + \fi + \copy\z@ + \hss + \hskip-\linewidth + \etoctoprulecolorcmd\leaders\etoctoprule\hss + \hskip\wd\z@ + \etoctoprulecolorcmd\leaders\etoctoprule\hss\color@endgroup}% + \setbox\z@\hbox{\etocleftrule\etocrightrule}% + \dimen\tw@\linewidth\advance\dimen\tw@-\wd\z@ + \advance\dimen\tw@-\etocinnerleftsep + \advance\dimen\tw@-\etocinnerrightsep + \setbox\etoc@framed@contentsbox=\vbox\bgroup + \hsize\dimen\tw@ + \kern\dimen\z@ + \vskip\etocinnertopsep + \hbox\bgroup + \begin{minipage}{\hsize}% + \etocframedmphook + \ifnum #1>\@ne + \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\multicolpretolerance\etocmulticolpretolerance + \multicoltolerance\etocmulticoltolerance + \setlength{\columnsep}{\etoccolumnsep}% + \setlength{\multicolsep}{\etocmulticolsep}% + \begin{multicols}{#1}} + {\pretolerance\etocmulticolpretolerance + \tolerance\etocmulticoltolerance}} + {\ifnum #1>\@ne\expandafter\@firstofone + \else \expandafter\@gobble + \fi + {\end{multicols}\unskip }% + \end{minipage}% + \egroup + \vskip\etocinnerbottomsep + \egroup + \vbox{\hsize\linewidth + \ifx\etocbkgcolorcmd\Etoc@relax + \else + \kern\ht\etoc@framed@titlebox + \kern\dp\etoc@framed@titlebox + \hb@xt@\linewidth{\color@begingroup + \etocleftrulecolorcmd\etocleftrule + \etocbkgcolorcmd + \leaders\vrule + \@height\ht\etoc@framed@contentsbox + \@depth\dp\etoc@framed@contentsbox + \hss + \etocrightrulecolorcmd\etocrightrule + \color@endgroup}\nointerlineskip + \vskip-\dp\etoc@framed@contentsbox + \vskip-\ht\etoc@framed@contentsbox + \vskip-\dp\etoc@framed@titlebox + \vskip-\ht\etoc@framed@titlebox + \fi + \box\etoc@framed@titlebox\nointerlineskip + \hb@xt@\linewidth{\color@begingroup + {\etocleftrulecolorcmd\etocleftrule}% + \hss\box\etoc@framed@contentsbox\hss + \etocrightrulecolorcmd\etocrightrule\color@endgroup} + \nointerlineskip + \vskip\ht\etoc@framed@contentsbox + \vskip\dp\etoc@framed@contentsbox + \hb@xt@\linewidth{\color@begingroup\etocbottomrulecolorcmd + \leaders\etocbottomrule\hss\color@endgroup}} + \addvspace{\etocbelowtocskip}}} +\newcommand\etoc@multicoltoc[2][\etocdefaultnbcol]{% + \etocmulticolstyle[#1]{#2}% + \tableofcontents} +\newcommand\etoc@multicoltoci[2][\etocdefaultnbcol]{% + \etocmulticolstyle[#1]{#2}% + \tableofcontents*} +\newcommand\etoc@local@multicoltoc[2][\etocdefaultnbcol]{% + \etocmulticolstyle[#1]{#2}% + \localtableofcontents} +\newcommand\etoc@local@multicoltoci[2][\etocdefaultnbcol]{% + \etocmulticolstyle[#1]{#2}% + \localtableofcontents*} +\newcommand*\etoc@ruledtoc[2][\etocdefaultnbcol]{% + \etocruledstyle[#1]{#2}% + \tableofcontents} +\newcommand*\etoc@ruledtoci[2][\etocdefaultnbcol]{% + \etocruledstyle[#1]{#2}% + \tableofcontents*} +\newcommand*\etoc@local@ruledtoc[2][\etocdefaultnbcol]{% + \etocruledstyle[#1]{#2}% + \localtableofcontents} +\newcommand*\etoc@local@ruledtoci[2][\etocdefaultnbcol]{% + \etocruledstyle[#1]{#2}% + \localtableofcontents*} +\newcommand*\etoc@framedtoc[2][\etocdefaultnbcol]{% + \etocframedstyle[#1]{#2}% + \tableofcontents} +\newcommand*\etoc@framedtoci[2][\etocdefaultnbcol]{% + \etocframedstyle[#1]{#2}% + \tableofcontents*} +\newcommand*\etoc@local@framedtoc[2][\etocdefaultnbcol]{% + \etocframedstyle[#1]{#2}% + \localtableofcontents} +\newcommand*\etoc@local@framedtoci[2][\etocdefaultnbcol]{% + \etocframedstyle[#1]{#2}% + \localtableofcontents*} +\def\etocmulticol{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@multicoltoci} + {\etoc@multicoltoc}} +\def\etocruled{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@ruledtoci} + {\etoc@ruledtoc}} +\def\etocframed{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@framedtoci} + {\etoc@framedtoc}} +\def\etoclocalmulticol{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@local@multicoltoci} + {\etoc@local@multicoltoc}} +\def\etoclocalruled{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@local@ruledtoci} + {\etoc@local@ruledtoc}} +\def\etoclocalframed{\begingroup + \Etoc@mustclosegrouptrue + \@ifstar + {\etoc@local@framedtoci} + {\etoc@local@framedtoc}} +\def\etocmemoirtoctotocfmt #1#2{% + \PackageWarning{etoc} + {\string\etocmemoirtoctotocfmt\space is deprecated.\MessageBreak + Use in its place \string\etocsettoclineforclasstoc,\MessageBreak + and \string\etocsettoclineforclasslistof{toc} (or {lof}, {lot}). + I will do this now.\MessageBreak + Reported}% + \etocsettoclineforclasstoc{#1}{#2}% + \etocsettoclineforclasslistof{toc}{#1}{#2}% +} +\def\etocsettoclineforclasstoc #1#2{% + \def\etocclassmaintocaddtotoc{\etocglobalheadtotoc{#1}{#2}}% +} +\def\etocsettoclineforclasslistof #1#2#3{% + \@namedef{etocclasslocal#1addtotoc}{\etoclocalheadtotoc{#2}{#3}}% +} +\let\etocclasslocaltocaddtotoc\@empty +\let\etocclasslocallofaddtotoc\@empty +\let\etocclasslocallotaddtotoc\@empty +\ifdefined\c@chapter + \def\etocclasslocaltocmaketitle{\section*{\localcontentsname}} + \def\etocclasslocallofmaketitle{\section*{\locallistfigurename}} + \def\etocclasslocallotmaketitle{\section*{\locallisttablename}} + \etocsettoclineforclasstoc {chapter}{\contentsname} + \etocsettoclineforclasslistof{toc}{section}{\localcontentsname} + \etocsettoclineforclasslistof{lof}{section}{\locallistfigurename} + \etocsettoclineforclasslistof{lot}{section}{\locallisttablename} +\else + \def\etocclasslocaltocmaketitle{\subsection*{\localcontentsname}}% + \def\etocclasslocallofmaketitle{\subsection*{\locallistfigurename}}% + \def\etocclasslocallotmaketitle{\subsection*{\locallisttablename}}% + \etocsettoclineforclasstoc {section}{\contentsname} + \etocsettoclineforclasslistof{toc}{subsection}{\localcontentsname} + \etocsettoclineforclasslistof{lof}{subsection}{\locallistfigurename} + \etocsettoclineforclasslistof{lot}{subsection}{\locallisttablename} +\fi +\def\etocclasslocalperhapsaddtotoc #1{% + \etocifisstarred + {} + {\csname ifEtoc@local#1totoc\endcsname + \csname etocclasslocal#1addtotoc\endcsname + \fi + }% +} +\def\etocarticlestyle{% + \etocsettocstyle + {\ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \section *{\contentsname + \@mkboth {\MakeUppercase \contentsname} + {\MakeUppercase \contentsname}}% + \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% + \fi + } + {}% +} +\def\etocarticlestylenomarks{% + \etocsettocstyle + {\ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \section *{\contentsname}% + \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% + \fi + } + {}% +} +\def\etocbookstyle{% + \etocsettocstyle + {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi + \ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \chapter *{\contentsname + \@mkboth {\MakeUppercase \contentsname} + {\MakeUppercase \contentsname}}% + \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% + \fi + }% + {\if@restonecol \twocolumn \fi}% +} +\def\etocbookstylenomarks{% + \etocsettocstyle + {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi + \ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \chapter *{\contentsname}% + \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% + \fi + }% + {\if@restonecol \twocolumn \fi}% +} +\let\etocreportstyle\etocbookstyle +\let\etocreportstylenomarks\etocbookstylenomarks +\def\etocmemoirstyle{% + \etocsettocstyle + {\ensureonecol \par \begingroup \phantomsection + \ifx\Etoc@aftertitlehook\@empty + \else + \ifmem@em@starred@listof + \else + \ifEtoc@localtoc + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \ifEtoc@maintoctotoc + \etocclassmaintocaddtotoc + \fi + \fi + \fi + \fi + \ifEtoc@localtoc + \@namedef{@\Etoc@currext maketitle}{% + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + }% + \fi + \@nameuse {@\Etoc@currext maketitle} %<< space token here from memoir code + \ifx\Etoc@aftertitlehook\@empty + \else + \Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax + \fi + \parskip \cftparskip \@nameuse {cft\Etoc@currext beforelisthook}% + }% + {\@nameuse {cft\Etoc@currext afterlisthook}% + \endgroup\restorefromonecol + }% +} +\let\Etoc@beforetitlehook\@empty +\if1\@ifclassloaded{scrartcl}0{\@ifclassloaded{scrbook}0{\@ifclassloaded{scrreprt}01}}% +\expandafter\@gobble +\else + \ifdefined\setuptoc + \def\Etoc@beforetitlehook{% + \ifEtoc@localtoc + \etocclasslocalperhapsaddtotoc\Etoc@currext + \setuptoc{\Etoc@currext}{leveldown}% + \else + \etocifisstarred{}{\etocifmaintoctotoc{\setuptoc{toc}{totoc}}}% + \fi + }% + \fi +\expandafter\@firstofone +\fi +{\def\etocclasslocalperhapsaddtotoc #1{% + \etocifisstarred + {}% + {\csname ifEtoc@local#1totoc\endcsname + \setuptoc{\Etoc@currext}{totoc}% + \fi + }% + }% +} +\ifdefined\Iftocfeature + \def\etoc@Iftocfeature{\Iftocfeature}% +\else + \def\etoc@Iftocfeature{\iftocfeature}% +\fi +\def\etocscrartclstyle{% + \etocsettocstyle + {\ifx\Etoc@currext\Etoc@tocext + \expandafter\@firstofone + \else + \expandafter\@gobble + \fi + {\let\if@dynlist\if@tocleft}% + \edef\@currext{\Etoc@currext}% + \@ifundefined{listof\@currext name}% + {\def\list@fname{\listofname~\@currext}}% + {\expandafter\let\expandafter\list@fname + \csname listof\@currext name\endcsname}% + \etoc@Iftocfeature {\@currext}{onecolumn} + {\etoc@Iftocfeature {\@currext}{leveldown} + {} + {\if@twocolumn \aftergroup \twocolumn \onecolumn \fi }} + {}% + \etoc@Iftocfeature {\@currext}{numberline}% + {\def \nonumberline {\numberline {}}}{}% + \expandafter\tocbasic@listhead\expandafter {\list@fname}% + \begingroup \expandafter \expandafter \expandafter + \endgroup \expandafter + \ifx + \csname microtypesetup\endcsname \relax + \else + \etoc@Iftocfeature {\@currext}{noprotrusion}{} + {\microtypesetup {protrusion=false}% + \PackageInfo {tocbasic}% + {character protrusion at \@currext\space deactivated}}% + \fi + \etoc@Iftocfeature{\@currext}{noparskipfake}{}{% + \ifvmode \@tempskipa\lastskip \vskip-\lastskip + \addtolength{\@tempskipa}{\parskip}\vskip\@tempskipa\fi + }% + \setlength {\parskip }{\z@ }% + \setlength {\parindent }{\z@ }% + \setlength {\parfillskip }{\z@ \@plus 1fil}% + \csname tocbasic@@before@hook\endcsname + \csname tb@\@currext @before@hook\endcsname + }% end of before_toc + {% start of after_toc + \providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file + \edef\@currext{\Etoc@currext}% + \csname tb@\@currext @after@hook\endcsname + \csname tocbasic@@after@hook\endcsname + }% end of after_toc +} +\let\etocscrbookstyle\etocscrartclstyle +\let\etocscrreprtstyle\etocscrartclstyle +\def\etocclasstocstyle{\etocarticlestyle} +\newcommand*\etocmarkboth[1]{% + \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} +\newcommand*\etocmarkbothnouc[1]{\@mkboth{#1}{#1}} +\newcommand\etoctocstyle[3][section]{\etocmulticolstyle[#2]% + {\csname #1\endcsname *{#3}}} +\newcommand\etoctocstylewithmarks[4][section]{\etocmulticolstyle[#2]% + {\csname #1\endcsname *{#3\etocmarkboth{#4}}}} +\newcommand\etoctocstylewithmarksnouc[4][section]{\etocmulticolstyle[#2]% + {\csname #1\endcsname *{#3\etocmarkbothnouc{#4}}}} +\def\Etoc@redefetocstylesforchapters{% + \renewcommand\etoctocstylewithmarks[4][chapter]{% + \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkboth{##4}}}% + } + \renewcommand\etoctocstylewithmarksnouc[4][chapter]{% + \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkbothnouc{##4}}}% + } + \renewcommand\etoctocstyle[3][chapter]{% + \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3}} + } +} +\@ifclassloaded{scrartcl} + {\renewcommand*\etocclasstocstyle{\etocscrartclstyle}}{} +\@ifclassloaded{book} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocbookstyle} + \Etoc@redefetocstylesforchapters}{} +\@ifclassloaded{report} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocreportstyle} + \Etoc@redefetocstylesforchapters}{} +\@ifclassloaded{scrbook} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocscrbookstyle} + \Etoc@redefetocstylesforchapters}{} +\@ifclassloaded{scrreprt} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocscrreprtstyle} + \Etoc@redefetocstylesforchapters}{} +\@ifclassloaded{memoir} + {\renewcommand*\etocfontone{\normalfont\normalsize} + \renewcommand*\etocclasstocstyle{\etocmemoirstyle} + \Etoc@redefetocstylesforchapters}{} +\def\etoctocloftstyle {% + \etocsettocstyle{% + \@cfttocstart + \par + \begingroup + \parindent\z@ \parskip\cftparskip + \@nameuse{@cftmake\Etoc@currext title}% + \ifEtoc@localtoc + \etoctocloftlocalperhapsaddtotoc\Etoc@currext + \else + \etocifisstarred {}{\ifEtoc@maintoctotoc\@cftdobibtoc\fi}% + \fi + }% + {% + \endgroup + \@cfttocfinish + }% +} +\def\etoctocloftlocalperhapsaddtotoc#1{% + \etocifisstarred + {}% + {\csname ifEtoc@local#1totoc\endcsname + \ifdefined\c@chapter\def\@tocextra{@section}\else\def\@tocextra{@subsection}\fi + \csname @cftdobib#1\endcsname + \fi + }% +} +\def\etoctocbibindstyle {% + \etocsettocstyle {% + \toc@start + \ifEtoc@localtoc + \@nameuse{etocclasslocal\Etoc@currext maketitle}% + \etocclasslocalperhapsaddtotoc\Etoc@currext + \else + \etoc@tocbibind@dotoctitle + \fi + }% + {\toc@finish}% +} +\def\etoc@tocbibind@dotoctitle {% + \if@bibchapter + \etocifisstarred + {\chapter*{\contentsname}\prw@mkboth{\contentsname} % id. + }% + {\ifEtoc@maintoctotoc + \toc@chapter{\contentsname} %<-space from original + \else + \chapter*{\contentsname}\prw@mkboth{\contentsname} % id. + \fi + }% + \else + \etocifisstarred + {\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} %<-space + } + {\ifEtoc@maintoctotoc + \toc@section{\@tocextra}{\contentsname} %<-space from original + \else + \@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} % id. + \fi + }% + \fi +}% +\@ifclassloaded{memoir} +{} +{% memoir not loaded + \@ifpackageloaded{tocloft} + {\if@cftnctoc\else + \ifEtoc@keeporiginaltoc + \else + \AtBeginDocument{\let\tableofcontents\etoctableofcontents}% + \fi + \fi } + {\AtBeginDocument + {\@ifpackageloaded{tocloft} + {\if@cftnctoc\else + \PackageWarningNoLine {etoc} + {Package `tocloft' was loaded after `etoc'.\MessageBreak + To prevent it from overwriting \protect\tableofcontents, it will\MessageBreak + be tricked into believing to have been loaded with its\MessageBreak + option `titles'. \space But this will cause the `tocloft'\MessageBreak + customization of the titles of the main list of figures\MessageBreak + and list of tables to not apply either.\MessageBreak + You should load `tocloft' before `etoc'.}% + \AtEndDocument{\PackageWarning{etoc} + {Please load `tocloft' before `etoc'!\@gobbletwo}}% + \fi + \@cftnctoctrue }% + {}% + }% + }% +} +\@ifclassloaded{memoir} +{} +{% memoir not loaded + \AtBeginDocument{% + \@ifpackageloaded{tocloft} + {% + \def\etocclasstocstyle{% + \etoctocloftstyle + \Etoc@classstyletrue + }% + \ifEtoc@etocstyle + \ifEtoc@classstyle + \etocclasstocstyle + \Etoc@etocstyletrue + \fi + \else + \ifEtoc@classstyle + \etocclasstocstyle + \fi + \fi + }% + {% no tocloft + \@ifpackageloaded {tocbibind} + {\if@dotoctoc + \def\etocclasstocstyle{% + \etoctocbibindstyle + \Etoc@classstyletrue + }% + \ifEtoc@etocstyle + \ifEtoc@classstyle + \etocclasstocstyle + \Etoc@etocstyletrue + \fi + \else + \ifEtoc@classstyle + \etocclasstocstyle + \fi + \fi + \ifEtoc@keeporiginaltoc + \else + \let\tableofcontents\etoctableofcontents + \fi + }% + {}% + }% + \@ifpackageloaded{tocbibind} + {% tocbibind, perhaps with tocloft + \if@dotoctoc + \ifEtoc@keeporiginaltoc + \else + \let\tableofcontents\etoctableofcontents + \fi + \etocsetup{maintoctotoc,localtoctotoc}% + \PackageInfo{etoc}{% + Setting (or re-setting) the options `maintoctotoc' and\MessageBreak + `localtoctotoc' to true as tocbibind was detected and\MessageBreak + found to be configured for `TOC to toc'.\MessageBreak + Reported at begin document}% + \fi + \if@dotoclof + \ifEtoc@lof + \etocsetup{localloftotoc}% + \PackageInfo{etoc}{% + Setting (or re-setting) `localloftotoc=true' as the\MessageBreak + package tocbibind was detected and is configured for\MessageBreak + `LOF to toc'. Reported at begin document}% + \fi + \fi + \if@dotoclot + \ifEtoc@lot + \etocsetup{locallottotoc}% + \PackageInfo{etoc}{% + Setting (or re-setting) `locallottotoc=true' as the\MessageBreak + package tocbibind was detected and is configured for\MessageBreak + `LOT to toc'. Reported at begin document}% + \fi + \fi + }% end of tocbibind branch + {}% + }% end of at begin document +}% end of not with memoir branch +\def\Etoc@addtocontents #1#2{% + \addtocontents {toc}{% + \protect\contentsline{#1}{#2}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% + \ifdefined\protected@file@percent\protected@file@percent\fi + }% +} +\def\Etoc@addcontentsline@ #1#2#3{% + \@namedef{toclevel@#1}{#3}\addcontentsline {toc}{#1}{#2}% +} +\DeclareRobustCommand*{\etoctoccontentsline} + {\@ifstar{\Etoc@addcontentsline@}{\Etoc@addtocontents}} +\def\Etoc@addtocontents@immediately#1#2{% + \begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \Etoc@addtocontents{#1}{#2}% + \endgroup +} +\def\Etoc@addcontentsline@@immediately#1#2#3{% + \begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \Etoc@addcontentsline@{#1}{#2}{#3}% + \endgoroup +} +\DeclareRobustCommand*{\etocimmediatetoccontentsline} + {\@ifstar{\Etoc@addcontentsline@@immediately}{\Etoc@addtocontents@immediately}} +\def\Etoc@storetocdepth {\xdef\Etoc@savedtocdepth{\number\c@tocdepth}} +\def\Etoc@restoretocdepth {\global\c@tocdepth\Etoc@savedtocdepth\relax} +\def\etocobeytoctocdepth {\def\etoc@settocdepth + {\afterassignment\Etoc@@nottoodeep \global\c@tocdepth}} +\def\Etoc@@nottoodeep {\ifnum\Etoc@savedtocdepth<\c@tocdepth + \global\c@tocdepth\Etoc@savedtocdepth\relax\fi } +\def\etocignoretoctocdepth {\let\etoc@settocdepth\@gobble } +\def\etocsettocdepth {\futurelet\Etoc@nexttoken\Etoc@set@tocdepth } +\def\Etoc@set@tocdepth {\ifx\Etoc@nexttoken\bgroup + \expandafter\Etoc@set@tocdepth@ + \else\expandafter\Etoc@set@toctocdepth + \fi } +\def\Etoc@set@tocdepth@ #1{\@ifundefined {Etoc@#1@@} + {\PackageWarning{etoc} + {Unknown sectioning unit #1, \protect\etocsettocdepth\space ignored}} + {\global\c@tocdepth\csname Etoc@#1@@\endcsname}% +} +\def\Etoc@set@toctocdepth #1#{\Etoc@set@toctocdepth@ } +\def\Etoc@set@toctocdepth@ #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocsettocdepth.toc ignored}}% + {\addtocontents {toc} + {\protect\etoc@settocdepth\expandafter\protect\csname Etoc@#1@@\endcsname}}% +} +\def\etocimmediatesettocdepth #1#{\Etoc@set@toctocdepth@immediately} +\def\Etoc@set@toctocdepth@immediately #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocimmediatesettocdepth.toc ignored}}% + {\begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \addtocontents {toc} + {\protect\etoc@settocdepth\expandafter\protect + \csname Etoc@#1@@\endcsname}% + \endgroup + }% +} +\def\etocdepthtag #1#{\Etoc@depthtag } +\def\Etoc@depthtag #1{\addtocontents {toc}{\protect\etoc@depthtag {#1}}} +\def\etocimmediatedepthtag #1#{\Etoc@depthtag@immediately } +\def\Etoc@depthtag@immediately #1{% + \begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \addtocontents {toc}{\protect\etoc@depthtag {#1}}% + \endgroup +} +\def\etocignoredepthtags {\let\etoc@depthtag \@gobble } +\def\etocobeydepthtags {\let\etoc@depthtag \Etoc@depthtag@ } +\def\Etoc@depthtag@ #1{\@ifundefined{Etoc@depthof@#1}% + {}% ignore in silence if tag has no associated depth + {\afterassignment\Etoc@@nottoodeep + \global\c@tocdepth\csname Etoc@depthof@#1\endcsname}% +} +\def\etocsettagdepth #1#2{\@ifundefined{Etoc@#2@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #2, \protect\etocsettagdepth\space ignored}}% + {\@namedef{Etoc@depthof@#1}{\@nameuse{Etoc@#2@@}}}% +} +\def\Etoc@tocvsec@err #1{\PackageError {etoc} + {The command \protect#1\space is incompatible with `etoc'} + {Use \protect\etocsettocdepth.toc as replacement}% +}% +\AtBeginDocument {% + \@ifclassloaded{memoir} + {\PackageInfo {etoc} + {Regarding `memoir' class command \protect\settocdepth, consider\MessageBreak + \protect\etocsettocdepth.toc as a drop-in replacement with more\MessageBreak + capabilities (see `etoc' manual). \space + Also, \protect\etocsettocdepth\MessageBreak + and \protect\etocsetnexttocdepth\space should be used in place of\MessageBreak + `memoir' command \protect\maxtocdepth\@gobble}% + }% + {\@ifpackageloaded {tocvsec2}{% + \def\maxtocdepth #1{\Etoc@tocvsec@err \maxtocdepth }% + \def\settocdepth #1{\Etoc@tocvsec@err \settocdepth }% + \def\resettocdepth {\@ifstar {\Etoc@tocvsec@err \resettocdepth }% + {\Etoc@tocvsec@err \resettocdepth }% + }% + \def\save@tocdepth #1#2#3{}% + \let\reset@tocdepth\relax + \let\remax@tocdepth\relax + \let\tableofcontents\etoctableofcontents + \PackageWarningNoLine {etoc} + {Package `tocvsec2' detected and its modification of\MessageBreak + \protect\tableofcontents\space reverted. \space Use + \protect\etocsettocdepth.toc\MessageBreak as a replacement + for `tocvsec2' toc-related commands}% + }% tocvsec2 loaded + {}% tocvsec2 not loaded + }% +}% +\def\invisibletableofcontents {\etocsetnexttocdepth {-3}\tableofcontents }% +\def\invisiblelocaltableofcontents + {\etocsetnexttocdepth {-3}\localtableofcontents }% +\def\etocsetnexttocdepth #1{% + \@ifundefined{Etoc@#1@@} + {\PackageWarning{etoc} + {Unknown sectioning unit #1, \protect\etocsetnextocdepth\space ignored}} + {\Etoc@setnexttocdepth{\csname Etoc@#1@@\endcsname}}% +}% +\def\Etoc@setnexttocdepth#1{% + \def\Etoc@tocdepthset{% + \Etoc@tocdepthreset + \edef\Etoc@tocdepthreset {% + \global\c@tocdepth\the\c@tocdepth\space + \global\let\noexpand\Etoc@tocdepthreset\noexpand\@empty + }% + \global\c@tocdepth#1% + \global\let\Etoc@tocdepthset\@empty + }% +}% +\let\Etoc@tocdepthreset\@empty +\let\Etoc@tocdepthset \@empty +\def\etocsetlocaltop #1#{\Etoc@set@localtop}% +\def\Etoc@set@localtop #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocsetlocaltop.toc ignored}}% + {\addtocontents {toc} + {\protect\etoc@setlocaltop\expandafter\protect\csname Etoc@#1@@\endcsname}}% +}% +\def\etocimmediatesetlocaltop #1#{\Etoc@set@localtop@immediately}% +\def\Etoc@set@localtop@immediately #1{% + \@ifundefined{Etoc@#1@@}% + {\PackageWarning{etoc} + {Unknown sectioning depth #1, \protect\etocimmediatesetlocaltop.toc ignored}}% + {\begingroup + \let\Etoc@originalwrite\write + \def\write{\immediate\Etoc@originalwrite}% + \addtocontents {toc} + {\protect\etoc@setlocaltop\expandafter\protect + \csname Etoc@#1@@\endcsname}% + \endgroup + }% +}% +\def\etoc@setlocaltop #1{% + \ifnum#1=\Etoc@maxlevel + \Etoc@skipthisonetrue + \else + \Etoc@skipthisonefalse + \global\let\Etoc@level #1% + \global\let\Etoc@virtualtop #1% + \ifEtoc@localtoc + \ifEtoc@stoptoc + \Etoc@skipthisonetrue + \else + \ifEtoc@notactive + \Etoc@skipthisonetrue + \else + \unless\ifnum\Etoc@level>\etoclocaltop + \Etoc@skipthisonetrue + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \fi + \fi + \let\Etoc@next\@empty + \ifEtoc@skipthisone + \else + \ifnum\Etoc@level>\c@tocdepth + \else + \ifEtoc@standardlines + \else + \let\Etoc@next\Etoc@setlocaltop@doendsandbegin + \fi + \fi + \fi + \Etoc@next +}% +\def\Etoc@setlocaltop@doendsandbegin{% + \Etoc@doendsandbegin + \global\Etoc@skipprefixfalse +} +\addtocontents {toc}{\protect\@ifundefined{etoctocstyle}% + {\let\protect\etoc@startlocaltoc\protect\@gobble + \let\protect\etoc@settocdepth\protect\@gobble + \let\protect\etoc@depthtag\protect\@gobble + \let\protect\etoc@setlocaltop\protect\@gobble}{}}% +\def\etocstandardlines {\Etoc@standardlinestrue} +\def\etoctoclines {\Etoc@standardlinesfalse} +\etocdefaultlines +\etocstandardlines +\def\etocstandarddisplaystyle{% + \PackageWarningNoLine{etoc}{% + \string\etocstandarddisplaystyle \on@line\MessageBreak + is deprecated. \space Please use \string\etocclasstocstyle}% +} +\expandafter\def\expandafter\etocclasstocstyle\expandafter{% + \etocclasstocstyle + \Etoc@classstyletrue +} +\def\etocetoclocaltocstyle{\Etoc@etocstyletrue} +\def\etocusertocstyle{\Etoc@etocstylefalse} +\etocclasstocstyle +\etocetoclocaltocstyle +\etocobeytoctocdepth +\etocobeydepthtags +\let\etocbeforetitlehook \@empty +\let\etocaftertitlehook \@empty +\let\etocaftercontentshook \@empty +\let\etocaftertochook \@empty +\def\etockeeporiginaltableofcontents + {\Etoc@keeporiginaltoctrue\let\tableofcontents\etocoriginaltableofcontents}% +\endinput +%% +%% End of file `etoc.sty'. diff --git a/latex/files.tex b/latex/files.tex new file mode 100644 index 0000000..040f76f --- /dev/null +++ b/latex/files.tex @@ -0,0 +1,31 @@ +\doxysection{File List} +Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{\mbox{\hyperlink{____call_8h_source}{\+\_\+\+\_\+call.\+h}} }{\pageref{____call_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____comment_8h_source}{\+\_\+\+\_\+comment.\+h}} }{\pageref{____comment_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____cookie_8h_source}{\+\_\+\+\_\+cookie.\+h}} }{\pageref{____cookie_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____dotag_8h_source}{\+\_\+\+\_\+dotag.\+h}} }{\pageref{____dotag_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____dump_8h_source}{\+\_\+\+\_\+dump.\+h}} }{\pageref{____dump_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____exclude_8h_source}{\+\_\+\+\_\+exclude.\+h}} }{\pageref{____exclude_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____for_8h_source}{\+\_\+\+\_\+for.\+h}} }{\pageref{____for_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____header_8h_source}{\+\_\+\+\_\+header.\+h}} }{\pageref{____header_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____if_8h_source}{\+\_\+\+\_\+if.\+h}} }{\pageref{____if_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____ifrow_8h_source}{\+\_\+\+\_\+ifrow.\+h}} }{\pageref{____ifrow_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____include_8h_source}{\+\_\+\+\_\+include.\+h}} }{\pageref{____include_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____jet_8h_source}{\+\_\+\+\_\+jet.\+h}} }{\pageref{____jet_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____mysql_8h_source}{\+\_\+\+\_\+mysql.\+h}} }{\pageref{____mysql_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____read_8h_source}{\+\_\+\+\_\+read.\+h}} }{\pageref{____read_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____set_8h_source}{\+\_\+\+\_\+set.\+h}} }{\pageref{____set_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____sql_8h_source}{\+\_\+\+\_\+sql.\+h}} }{\pageref{____sql_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____stream_8h_source}{\+\_\+\+\_\+stream.\+h}} }{\pageref{____stream_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____system_8h_source}{\+\_\+\+\_\+system.\+h}} }{\pageref{____system_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____tag_8h_source}{\+\_\+\+\_\+tag.\+h}} }{\pageref{____tag_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____until_8h_source}{\+\_\+\+\_\+until.\+h}} }{\pageref{____until_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____while_8h_source}{\+\_\+\+\_\+while.\+h}} }{\pageref{____while_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____whiledir_8h_source}{\+\_\+\+\_\+whiledir.\+h}} }{\pageref{____whiledir_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____whilerow_8h_source}{\+\_\+\+\_\+whilerow.\+h}} }{\pageref{____whilerow_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{____write_8h_source}{\+\_\+\+\_\+write.\+h}} }{\pageref{____write_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{Global_8h_source}{Global.\+h}} }{\pageref{Global_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{Operand_8h_source}{Operand.\+h}} }{\pageref{Operand_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{SessionId_8h_source}{Session\+Id.\+h}} }{\pageref{SessionId_8h_source}}{} +\item\contentsline{section}{\mbox{\hyperlink{Tag_8h_source}{Tag.\+h}} }{\pageref{Tag_8h_source}}{} +\end{DoxyCompactList} diff --git a/latex/hierarchy.tex b/latex/hierarchy.tex new file mode 100644 index 0000000..e8b7ee5 --- /dev/null +++ b/latex/hierarchy.tex @@ -0,0 +1,37 @@ +\doxysection{Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList} +\item \contentsline{section}{jet\+::Global}{\pageref{classjet_1_1Global}}{} +\item coreutils\+::MString\begin{DoxyCompactList} +\item \contentsline{section}{jet\+::Session\+Id}{\pageref{classjet_1_1SessionId}}{} +\end{DoxyCompactList} +\item \contentsline{section}{jet\+::Operand}{\pageref{classjet_1_1Operand}}{} +\item coreutils\+::ZString\begin{DoxyCompactList} +\item \contentsline{section}{jet\+::Tag}{\pageref{classjet_1_1Tag}}{} +\begin{DoxyCompactList} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+call}{\pageref{classjet_1_1____call}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+comment}{\pageref{classjet_1_1____comment}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+cookie}{\pageref{classjet_1_1____cookie}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+dotag}{\pageref{classjet_1_1____dotag}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+dump}{\pageref{classjet_1_1____dump}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+exclude}{\pageref{classjet_1_1____exclude}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+for}{\pageref{classjet_1_1____for}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+header}{\pageref{classjet_1_1____header}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+if}{\pageref{classjet_1_1____if}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+ifrow}{\pageref{classjet_1_1____ifrow}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+include}{\pageref{classjet_1_1____include}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+jet}{\pageref{classjet_1_1____jet}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+mysql}{\pageref{classjet_1_1____mysql}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+read}{\pageref{classjet_1_1____read}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+set}{\pageref{classjet_1_1____set}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+sql}{\pageref{classjet_1_1____sql}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+stream}{\pageref{classjet_1_1____stream}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+system}{\pageref{classjet_1_1____system}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+tag}{\pageref{classjet_1_1____tag}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+until}{\pageref{classjet_1_1____until}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+while}{\pageref{classjet_1_1____while}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+whiledir}{\pageref{classjet_1_1____whiledir}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+whilerow}{\pageref{classjet_1_1____whilerow}}{} +\item \contentsline{section}{jet\+::\+\_\+\+\_\+write}{\pageref{classjet_1_1____write}}{} +\end{DoxyCompactList} +\end{DoxyCompactList} +\end{DoxyCompactList} diff --git a/latex/longtable_doxygen.sty b/latex/longtable_doxygen.sty new file mode 100644 index 0000000..e94b78b --- /dev/null +++ b/latex/longtable_doxygen.sty @@ -0,0 +1,456 @@ +%% +%% This is file `longtable.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% longtable.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% The source is maintained by the LaTeX Project team and bug +%% reports for it can be opened at http://latex-project.org/bugs.html +%% (but please observe conditions on bug reports sent to that address!) +%% +%% Copyright 1993-2016 +%% The LaTeX3 Project and any individual authors listed elsewhere +%% in this file. +%% +%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. +%% -------------------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This file may only be distributed together with a copy of the LaTeX +%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' +%% without such generated files. +%% +%% The list of all files belonging to the LaTeX `Tools Bundle' is +%% given in the file `manifest.txt'. +%% +%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{longtable_doxygen} + [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] +\def\LT@err{\PackageError{longtable}} +\def\LT@warn{\PackageWarning{longtable}} +\def\LT@final@warn{% + \AtEndDocument{% + \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% + \global\let\LT@final@warn\relax} +\DeclareOption{errorshow}{% + \def\LT@warn{\PackageInfo{longtable}}} +\DeclareOption{pausing}{% + \def\LT@warn#1{% + \LT@err{#1}{This is not really an error}}} +\DeclareOption{set}{} +\DeclareOption{final}{} +\ProcessOptions +\newskip\LTleft \LTleft=\fill +\newskip\LTright \LTright=\fill +\newskip\LTpre \LTpre=\bigskipamount +\newskip\LTpost \LTpost=\bigskipamount +\newcount\LTchunksize \LTchunksize=20 +\let\c@LTchunksize\LTchunksize +\newdimen\LTcapwidth \LTcapwidth=4in +\newbox\LT@head +\newbox\LT@firsthead +\newbox\LT@foot +\newbox\LT@lastfoot +\newcount\LT@cols +\newcount\LT@rows +\newcounter{LT@tables} +\newcounter{LT@chunks}[LT@tables] +\ifx\c@table\undefined + \newcounter{table} + \def\fnum@table{\tablename~\thetable} +\fi +\ifx\tablename\undefined + \def\tablename{Table} +\fi +\newtoks\LT@p@ftn +\mathchardef\LT@end@pen=30000 +\def\longtable{% + \par + \ifx\multicols\@undefined + \else + \ifnum\col@number>\@ne + \@twocolumntrue + \fi + \fi + \if@twocolumn + \LT@err{longtable not in 1-column mode}\@ehc + \fi + \begingroup + \@ifnextchar[\LT@array{\LT@array[x]}} +\def\LT@array[#1]#2{% + \refstepcounter{table}\stepcounter{LT@tables}% + \if l#1% + \LTleft\z@ \LTright\fill + \else\if r#1% + \LTleft\fill \LTright\z@ + \else\if c#1% + \LTleft\fill \LTright\fill + \fi\fi\fi + \let\LT@mcol\multicolumn + \let\LT@@tabarray\@tabarray + \let\LT@@hl\hline + \def\@tabarray{% + \let\hline\LT@@hl + \LT@@tabarray}% + \let\\\LT@tabularcr\let\tabularnewline\\% + \def\newpage{\noalign{\break}}% + \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% + \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% + \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption + \@tempdima\ht\strutbox + \let\@endpbox\LT@endpbox + \ifx\extrarowheight\@undefined + \let\@acol\@tabacol + \let\@classz\@tabclassz \let\@classiv\@tabclassiv + \def\@startpbox{\vtop\LT@startpbox}% + \let\@@startpbox\@startpbox + \let\@@endpbox\@endpbox + \let\LT@LL@FM@cr\@tabularcr + \else + \advance\@tempdima\extrarowheight + \col@sep\tabcolsep + \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr + \fi + \setbox\@arstrutbox\hbox{\vrule + \@height \arraystretch \@tempdima + \@depth \arraystretch \dp \strutbox + \@width \z@}% + \let\@sharp##\let\protect\relax + \begingroup + \@mkpream{#2}% + \xdef\LT@bchunk{% + \global\advance\c@LT@chunks\@ne + \global\LT@rows\z@\setbox\z@\vbox\bgroup + \LT@setprevdepth + \tabskip\LTleft \noexpand\halign to\hsize\bgroup + \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% + \endgroup + \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols + \LT@make@row + \m@th\let\par\@empty + \everycr{}\lineskip\z@\baselineskip\z@ + \LT@bchunk} +\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} +\def\LT@start{% + \let\LT@start\endgraf + \endgraf\penalty\z@\vskip\LTpre + \dimen@\pagetotal + \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \ht\LT@foot + \dimen@ii\vfuzz + \vfuzz\maxdimen + \setbox\tw@\copy\z@ + \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox + \setbox\tw@\vbox{\unvbox\tw@}% + \vfuzz\dimen@ii + \advance\dimen@ \ht + \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@\dp + \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@ -\pagegoal + \ifdim \dimen@>\z@\vfil\break\fi + \global\@colroom\@colht + \ifvoid\LT@foot\else + \advance\vsize-\ht\LT@foot + \global\advance\@colroom-\ht\LT@foot + \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ + \maxdepth\z@ + \fi + \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak + \output{\LT@output}} +\def\endlongtable{% + \crcr + \noalign{% + \let\LT@entry\LT@entry@chop + \xdef\LT@save@row{\LT@save@row}}% + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \if@filesw + {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% + \gdef\expandafter\noexpand + \csname LT@\romannumeral\c@LT@tables\endcsname + {\LT@save@row}}}% + \fi + \ifx\LT@save@row\LT@@save@row + \else + \LT@warn{Column \@width s have changed\MessageBreak + in table \thetable}% + \LT@final@warn + \fi + \endgraf\penalty -\LT@end@pen + \endgroup + \global\@mparbottom\z@ + \pagegoal\vsize + \endgraf\penalty\z@\addvspace\LTpost + \ifvoid\footins\else\insert\footins{}\fi} +\def\LT@nofcols#1&{% + \futurelet\@let@token\LT@n@fcols} +\def\LT@n@fcols{% + \advance\LT@cols\@ne + \ifx\@let@token\LT@nofcols + \expandafter\@gobble + \else + \expandafter\LT@nofcols + \fi} +\def\LT@tabularcr{% + \relax\iffalse{\fi\ifnum0=`}\fi + \@ifstar + {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr + \LT@t@bularcr}% + {\LT@t@bularcr}} +\let\LT@crcr\crcr +\let\LT@setprevdepth\relax +\def\LT@t@bularcr{% + \global\advance\LT@rows\@ne + \ifnum\LT@rows=\LTchunksize + \gdef\LT@setprevdepth{% + \prevdepth\z@\global + \global\let\LT@setprevdepth\relax}% + \expandafter\LT@xtabularcr + \else + \ifnum0=`{}\fi + \expandafter\LT@LL@FM@cr + \fi} +\def\LT@xtabularcr{% + \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} +\def\LT@ntabularcr{% + \ifnum0=`{}\fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@argtabularcr[#1]{% + \ifnum0=`{}\fi + \ifdim #1>\z@ + \unskip\@xargarraycr{#1}% + \else + \@yargarraycr{#1}% + \fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@echunk{% + \crcr\LT@save@row\cr\egroup + \global\setbox\@ne\lastbox + \unskip + \egroup} +\def\LT@entry#1#2{% + \ifhmode\@firstofone{&}\fi\omit + \ifnum#1=\c@LT@chunks + \else + \kern#2\relax + \fi} +\def\LT@entry@chop#1#2{% + \noexpand\LT@entry + {\ifnum#1>\c@LT@chunks + 1}{0pt% + \else + #1}{#2% + \fi}} +\def\LT@entry@write{% + \noexpand\LT@entry^^J% + \@spaces} +\def\LT@kill{% + \LT@echunk + \LT@get@widths + \expandafter\LT@rebox\LT@bchunk} +\def\LT@rebox#1\bgroup{% + #1\bgroup + \unvbox\z@ + \unskip + \setbox\z@\lastbox} +\def\LT@blank@row{% + \xdef\LT@save@row{\expandafter\LT@build@blank + \romannumeral\number\LT@cols 001 }} +\def\LT@build@blank#1{% + \if#1m% + \noexpand\LT@entry{1}{0pt}% + \expandafter\LT@build@blank + \fi} +\def\LT@make@row{% + \global\expandafter\let\expandafter\LT@save@row + \csname LT@\romannumeral\c@LT@tables\endcsname + \ifx\LT@save@row\relax + \LT@blank@row + \else + {\let\LT@entry\or + \if!% + \ifcase\expandafter\expandafter\expandafter\LT@cols + \expandafter\@gobble\LT@save@row + \or + \else + \relax + \fi + !% + \else + \aftergroup\LT@blank@row + \fi}% + \fi} +\let\setlongtables\relax +\def\LT@get@widths{% + \setbox\tw@\hbox{% + \unhbox\@ne + \let\LT@old@row\LT@save@row + \global\let\LT@save@row\@empty + \count@\LT@cols + \loop + \unskip + \setbox\tw@\lastbox + \ifhbox\tw@ + \LT@def@row + \advance\count@\m@ne + \repeat}% + \ifx\LT@@save@row\@undefined + \let\LT@@save@row\LT@save@row + \fi} +\def\LT@def@row{% + \let\LT@entry\or + \edef\@tempa{% + \ifcase\expandafter\count@\LT@old@row + \else + {1}{0pt}% + \fi}% + \let\LT@entry\relax + \xdef\LT@save@row{% + \LT@entry + \expandafter\LT@max@sel\@tempa + \LT@save@row}} +\def\LT@max@sel#1#2{% + {\ifdim#2=\wd\tw@ + #1% + \else + \number\c@LT@chunks + \fi}% + {\the\wd\tw@}} +\def\LT@hline{% + \noalign{\ifnum0=`}\fi + \penalty\@M + \futurelet\@let@token\LT@@hline} +\def\LT@@hline{% + \ifx\@let@token\hline + \global\let\@gtempa\@gobble + \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% + \else + \global\let\@gtempa\@empty + \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\LT@sep}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\penalty\@M}% + \@gtempa} +\def\LT@caption{% + \noalign\bgroup + \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} +\def\LT@c@ption#1[#2]#3{% + \LT@makecaption#1\fnum@table{#3}% + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\let\\\space + \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% + \fi} +\def\LT@capti@n{% + \@ifstar + {\egroup\LT@c@ption\@gobble[]}% + {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} +\def\LT@makecaption#1#2#3{% + \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% + \sbox\@tempboxa{#1{#2: }#3}% + \ifdim\wd\@tempboxa>\hsize + #1{#2: }#3% + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgraf\vskip\baselineskip}% + \hss}}} +\def\LT@output{% + \ifnum\outputpenalty <-\@Mi + \ifnum\outputpenalty > -\LT@end@pen + \LT@err{floats and marginpars not allowed in a longtable}\@ehc + \else + \setbox\z@\vbox{\unvbox\@cclv}% + \ifdim \ht\LT@lastfoot>\ht\LT@foot + \dimen@\pagegoal + \advance\dimen@-\ht\LT@lastfoot + \ifdim\dimen@<\ht\z@ + \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% + \@makecol + \@outputpage + \setbox\z@\vbox{\box\LT@head}% + \fi + \fi + \global\@colroom\@colht + \global\vsize\@colht + \vbox + {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% + \fi + \else + \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% + \@makecol + \@outputpage + \global\vsize\@colroom + \copy\LT@head\nobreak + \fi} +\def\LT@end@hd@ft#1{% + \LT@echunk + \ifx\LT@start\endgraf + \LT@err + {Longtable head or foot not at start of table}% + {Increase LTchunksize}% + \fi + \setbox#1\box\z@ + \LT@get@widths + \LT@bchunk} +\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} +\def\endhead{\LT@end@hd@ft\LT@head} +\def\endfoot{\LT@end@hd@ft\LT@foot} +\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} +\def\LT@startpbox#1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \vrule \@height \ht\@arstrutbox \@width \z@} +\def\LT@endpbox{% + \@finalstrut\@arstrutbox + \egroup + \the\LT@p@ftn + \global\LT@p@ftn{}% + \hfil} +%% added \long to prevent: +% LaTeX Warning: Command \LT@p@ftntext has changed. +% +% from the original repository (https://github.com/latex3/latex2e/blob/develop/required/tools/longtable.dtx): +% \changes{v4.15}{2021/03/28} +% {make long for gh/364} +% Inside the `p' column, just save up the footnote text in a token +% register. +\long\def\LT@p@ftntext#1{% + \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% + \global\LT@p@ftn\expandafter{\@tempa{#1}}}% + +\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} +\endinput +%% +%% End of file `longtable.sty'. diff --git a/latex/refman.tex b/latex/refman.tex new file mode 100644 index 0000000..c0918dc --- /dev/null +++ b/latex/refman.tex @@ -0,0 +1,282 @@ + % Handle batch mode + % to overcome problems with too many open files + \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage} + \pdfminorversion=7 + % Set document class depending on configuration + \documentclass[twoside]{book} + %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package + \usepackage{ifthen} + \ifx\requestedLaTeXdate\undefined + \usepackage{array} + \else + \usepackage{array}[=2016-10-06] + \fi + %% + % Packages required by doxygen + \makeatletter + \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} + % suppress package identification of infwarerr as it contains the word "warning" + \let\@@protected@wlog\protected@wlog + \def\protected@wlog#1{\wlog{package info suppressed}} + \RequirePackage{infwarerr} + \let\protected@wlog\@@protected@wlog + \makeatother + \IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript + \IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{} + \usepackage{doxygen} + \usepackage{graphicx} + \usepackage[utf8]{inputenc} + \usepackage{makeidx} + \PassOptionsToPackage{warn}{textcomp} + \usepackage{textcomp} + \usepackage[nointegrals]{wasysym} + \usepackage{ifxetex} + % NLS support packages + % Define default fonts + % Font selection + \usepackage[T1]{fontenc} + % set main and monospaced font + \usepackage[scaled=.90]{helvet} +\usepackage{courier} +\renewcommand{\familydefault}{\sfdefault} + \doxyallsectionsfont{% + \fontseries{bc}\selectfont% + \color{darkgray}% + } + \renewcommand{\DoxyLabelFont}{% + \fontseries{bc}\selectfont% + \color{darkgray}% + } + \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + % Arguments of doxygenemoji: + % 1) '::' form of the emoji, already LaTeX-escaped + % 2) file with the name of the emoji without the .png extension + % in case image exist use this otherwise use the '::' form + \newcommand{\doxygenemoji}[2]{% + \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% + } + % Page & text layout + \usepackage{geometry} + \geometry{% + a4paper,% + top=2.5cm,% + bottom=2.5cm,% + left=2.5cm,% + right=2.5cm% + } + \usepackage{changepage} + % Allow a bit of overflow to go unnoticed by other means + \tolerance=750 + \hfuzz=15pt + \hbadness=750 + \setlength{\emergencystretch}{15pt} + \setlength{\parindent}{0cm} + \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} + \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} + \doxynormalparskip + % Redefine paragraph/subparagraph environments, using sectsty fonts + \makeatletter + \renewcommand{\paragraph}{% + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@parafont% + }% + } + \renewcommand{\subparagraph}{% + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@subparafont% + }% + } + \makeatother + \makeatletter + \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} + \makeatother + % Headers & footers + \usepackage{fancyhdr} + \pagestyle{fancyplain} + \renewcommand{\footrulewidth}{0.4pt} + \fancypagestyle{fancyplain}{ + \fancyhf{} + \fancyhead[LE, RO]{\bfseries\thepage} + \fancyhead[LO]{\bfseries\rightmark} + \fancyhead[RE]{\bfseries\leftmark} + \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } + } + \fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } + \renewcommand{\headrulewidth}{0pt} + } + \pagestyle{fancyplain} + \renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% + } + \renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% + } + % ToC, LoF, LoT, bibliography, and index + % Indices & bibliography + \usepackage{natbib} + \usepackage[titles]{tocloft} + \setcounter{tocdepth}{3} + \setcounter{secnumdepth}{5} + % creating indexes + \makeindex + \usepackage{newunicodechar} + \makeatletter + \def\doxynewunicodechar#1#2{% + \@tempswafalse + \edef\nuc@tempa{\detokenize{#1}}% + \if\relax\nuc@tempa\relax + \nuc@emptyargerr + \else + \edef\@tempb{\expandafter\@car\nuc@tempa\@nil}% + \nuc@check + \if@tempswa + \@namedef{u8:\nuc@tempa}{#2}% + \fi + \fi + } + \makeatother + \doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus + \doxynewunicodechar{²}{${}^{2}$}% Superscript two + \doxynewunicodechar{³}{${}^{3}$}% Superscript three + % Hyperlinks + % Hyperlinks (required, but should be loaded last) + \ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} + \else + \ifxetex + \usepackage[pagebackref=true]{hyperref} + \else + \usepackage[ps2pdf,pagebackref=true]{hyperref} + \fi + \fi + \hypersetup{% + colorlinks=true,% + linkcolor=blue,% + citecolor=blue,% + unicode,% + pdftitle={My Project},% + pdfsubject={}% + } + % Custom commands used by the header + % Custom commands + \newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% + } + % caption style definition + \usepackage{caption} + \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} + % in page table of contents + \IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}} + \etocsettocstyle{\doxytocparskip}{\doxynormalparskip} + \etocsetlevel{subsubsubsection}{4} + \etocsetlevel{subsubsubsubsection}{5} + \etocsetlevel{subsubsubsubsubsection}{6} + \etocsetlevel{subsubsubsubsubsubsection}{7} + \etocsetlevel{paragraph}{8} + \etocsetlevel{subparagraph}{9} + % prevent numbers overlap the titles in toc + \renewcommand{\numberline}[1]{#1~} +% End of preamble, now comes the document contents +%===== C O N T E N T S ===== +\begin{document} + \raggedbottom + % Titlepage & ToC + % To avoid duplicate page anchors due to reuse of same numbers for + % the index (be it as roman numbers) + \hypersetup{pageanchor=false, + bookmarksnumbered=true, + pdfencoding=unicode + } + \pagenumbering{alph} + \begin{titlepage} + \vspace*{7cm} + \begin{center}% + {\Large My Project}\\ + \vspace*{1cm} + {\large Generated by Doxygen 1.9.8}\\ + \end{center} + \end{titlepage} + \clearemptydoublepage + \pagenumbering{roman} + \tableofcontents + \clearemptydoublepage + \pagenumbering{arabic} + % re-enable anchors again + \hypersetup{pageanchor=true} +%--- Begin generated contents --- +\chapter{Hierarchical Index} +\input{hierarchy} +\chapter{Class Index} +\input{annotated} +\chapter{File Index} +\input{files} +\chapter{Class Documentation} +\input{classjet_1_1____call} +\input{classjet_1_1____comment} +\input{classjet_1_1____cookie} +\input{classjet_1_1____dotag} +\input{classjet_1_1____dump} +\input{classjet_1_1____exclude} +\input{classjet_1_1____for} +\input{classjet_1_1____header} +\input{classjet_1_1____if} +\input{classjet_1_1____ifrow} +\input{classjet_1_1____include} +\input{classjet_1_1____jet} +\input{classjet_1_1____mysql} +\input{classjet_1_1____read} +\input{classjet_1_1____set} +\input{classjet_1_1____sql} +\input{classjet_1_1____stream} +\input{classjet_1_1____system} +\input{classjet_1_1____tag} +\input{classjet_1_1____until} +\input{classjet_1_1____while} +\input{classjet_1_1____whiledir} +\input{classjet_1_1____whilerow} +\input{classjet_1_1____write} +\input{classjet_1_1Global} +\input{classjet_1_1Operand} +\input{classjet_1_1SessionId} +\input{classjet_1_1Tag} +\chapter{File Documentation} +\input{____call_8h_source} +\input{____comment_8h_source} +\input{____cookie_8h_source} +\input{____dotag_8h_source} +\input{____dump_8h_source} +\input{____exclude_8h_source} +\input{____for_8h_source} +\input{____header_8h_source} +\input{____if_8h_source} +\input{____ifrow_8h_source} +\input{____include_8h_source} +\input{____jet_8h_source} +\input{____mysql_8h_source} +\input{____read_8h_source} +\input{____set_8h_source} +\input{____sql_8h_source} +\input{____stream_8h_source} +\input{____system_8h_source} +\input{____tag_8h_source} +\input{____until_8h_source} +\input{____while_8h_source} +\input{____whiledir_8h_source} +\input{____whilerow_8h_source} +\input{____write_8h_source} +\input{Global_8h_source} +\input{Operand_8h_source} +\input{SessionId_8h_source} +\input{Tag_8h_source} +%--- End generated contents --- +% Index + \backmatter + \newpage + \phantomsection + \clearemptydoublepage + \addcontentsline{toc}{chapter}{\indexname} + \printindex +% Required for some languages (in combination with latexdocumentpre from the header) +\end{document} diff --git a/latex/tabu_doxygen.sty b/latex/tabu_doxygen.sty new file mode 100644 index 0000000..3f17d1d --- /dev/null +++ b/latex/tabu_doxygen.sty @@ -0,0 +1,2557 @@ +%% +%% This is file `tabu.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabu.dtx (with options: `package') +%% +%% This is a generated file. +%% Copyright (FC) 2010-2011 - lppl +%% +%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars +%% +%% ********************************************************************************************** +%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal +%% \begin{tabu} to { preamble } => target specified +%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' +%% +%% tabu works in text and in math modes. +%% +%% X columns: automatic width adjustment + horizontal and vertical alignment +%% \begin{tabu} { X[4c] X[1c] X[-2ml] } +%% +%% Horizontal lines and / or leaders: +%% \hline\hline => double horizontal line +%% \firsthline\hline => for nested tabulars +%% \lasthline\hline => for nested tabulars +%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) +%% Automatic lines / leaders : +%% \everyrow{\hline\hline} +%% +%% Vertical lines and / or leaders: +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } +%% +%% Fixed vertical spacing adjustment: +%% \extrarowheight= \extrarowdepth= +%% or: \extrarowsep= => may be prefixed by \global +%% +%% Dynamic vertical spacing adjustment: +%% \abovetabulinesep= \belowtabulinesep= +%% or: \tabulinesep= => may be prefixed by \global +%% +%% delarray.sty shortcuts: in math and text modes +%% \begin{tabu} .... \({ preamble }\) +%% +%% Algorithms reports: +%% \tracingtabu=1 \tracingtabu=2 +%% +%% ********************************************************************************************** +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% +%% This work consists of the main source file tabu.dtx +%% and the derived files +%% tabu.sty, tabu.pdf, tabu.ins +%% +%% tabu : Flexible LaTeX tabulars +%% lppl copyright 2010-2011 by FC +%% + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] +\RequirePackage{array}[2008/09/09] +\RequirePackage{varwidth}[2009/03/30] +\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} +\let\tabu@AtEnd\@empty +\def\TMP@EnsureCode#1={% + \edef\tabu@AtEnd{\tabu@AtEnd + \catcode#1 \the\catcode#1}% + \catcode#1=% +}% \TMP@EnsureCode +\TMP@EnsureCode 33 = 12 % ! +\TMP@EnsureCode 58 = 12 % : (for siunitx) +\TMP@EnsureCode124 = 12 % | +\TMP@EnsureCode 36 = 3 % $ = math shift +\TMP@EnsureCode 38 = 4 % & = tab alignment character +\TMP@EnsureCode 32 = 10 % space +\TMP@EnsureCode 94 = 7 % ^ +\TMP@EnsureCode 95 = 8 % _ +%% Constants -------------------------------------------------------- +\newcount \c@taburow \def\thetaburow {\number\c@taburow} +\newcount \tabu@nbcols +\newcount \tabu@cnt +\newcount \tabu@Xcol +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcount \tabu@alloc \tabu@alloc=\m@ne +\newcount \tabu@nested +\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} +\newdimen \tabu@target +\newdimen \tabu@spreadtarget +\newdimen \tabu@naturalX +\newdimen \tabucolX +\let\tabu@DELTA \@tempdimc +\let\tabu@thick \@tempdima +\let\tabu@on \@tempdimb +\let\tabu@off \@tempdimc +\newdimen \tabu@Xsum +\newdimen \extrarowdepth +\newdimen \abovetabulinesep +\newdimen \belowtabulinesep +\newdimen \tabustrutrule \tabustrutrule \z@ +\newtoks \tabu@thebody +\newtoks \tabu@footnotes +\newsavebox \tabu@box +\newsavebox \tabu@arstrutbox +\newsavebox \tabu@hleads +\newsavebox \tabu@vleads +\newif \iftabu@colortbl +\newif \iftabu@siunitx +\newif \iftabu@measuring +\newif \iftabu@spread +\newif \iftabu@negcoef +\newif \iftabu@everyrow +\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} +\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} +\newif \iftabu@long +\newif \iftabuscantokens +\def\tabu@rescan {\tabu@verbatim \scantokens } +%% Utilities (for internal usage) ----------------------------------- +\def\tabu@gobblespace #1 {#1} +\def\tabu@gobbletoken #1#2{#1} +\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} +\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble + \else\ifx \@sptoken\@let@token + \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX + \fi\fi +}% \tabu@gobblex +\def\tabu@X{^^J} +{\obeyspaces +\global\let\tabu@spxiii= % saves an active space (for \ifx) +\gdef\tabu@@spxiii{ }} +\def\tabu@ifenvir {% only for \multicolumn + \expandafter\tabu@if@nvir\csname\@currenvir\endcsname +}% \tabu@ifenvir +\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else + \ifx\longtabu#1first\else + second\fi\fi oftwo\endcsname +}% \tabu@ifenvir +\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} +{\catcode`\&=3 +\gdef\tabu@strtrim #1{% #1 = control sequence to trim + \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi + \let\tabu@c@l@r \@empty \let#1\@empty + \else \expandafter \tabu@trimspaces #1\@nnil + \fi +}% \tabu@strtrim +\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% +\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} +\gdef\tabu@lastspace #1{\def #3{#1}% + \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi + \tabu@trimspaces #1\@nnil} +}% \catcode +\def\tabu@sanitizearg #1#2{{% + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% + \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% +}% \tabu@sanitizearg +\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% + \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! +}% \tabu@textbar +\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} +\def\tabu@everyrow@egroup{% + \iftabu@everyrow \expandafter \endgroup \the\toks@ + \else \ifnum0=`{\fi}% + \fi +}% \tabu@everyrow@egroup +\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \z@}% +}% \tabu@arstrut +\def\tabu@rearstrut {% + \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax + \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax + \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima + \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi + \tabu@mkarstrut + \fi +}% \tabu@rearstrut +\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} +\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox + \hbox to\z@{\hbox to\z@{\hss + {\tabu@DBG{cyan}\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \z@ + width \tabustrutrule}\kern-\tabustrutrule + {\tabu@DBG{pink}\vrule + height \z@ + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \tabustrutrule}}}% +}% \tabu@DBG@arstrut +\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ + \@nextchar}}% +\def\tabu@savedecl{\ifcat$\d@llarend\else + \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode +}% \tabu@savedecl +\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} +\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } +\let\tabu@trialh@@k \@empty +\def\tabu@nowrite #1#{{\afterassignment}\toks@} +\let\tabu@write\write +\let\tabu@immediate\immediate +\def\tabu@WRITE{\begingroup + \def\immediate\write{\aftergroup\endgroup + \tabu@immediate\tabu@write}% +}% \tabu@WRITE +\expandafter\def\expandafter\tabu@GenericError\expandafter{% + \expandafter\tabu@WRITE\GenericError} +\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} +\def\tabu@noxfootnote [#1]{\@gobble} +\def\tabu@nocolor #1#{\@gobble} +\newcommand*\tabu@norowcolor[2][]{} +\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% + \futurelet\@let@token \tabu@m@ybesiunitx} +\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% + \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi + \tabu@temp}% \tabu@m@ybesiunitx +}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname +\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% +%% Fixed vertical spacing adjustment: \extrarowsep ------------------ +\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% + \iftabu@everyrow \aftergroup\tabu@Gextra + \else \aftergroup\tabu@n@Gextra + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra +}% \extrarowsep +\def\tabu@extra {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setextrasep \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extra +\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} +\def\tabu@extr@ #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extr@ +\def\tabu@setextrasep {\extrarowheight=\extrarowdepth + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth +}% \tabu@setextrasep +\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} +\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} +\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} +\let\tabu@C@extra \z@ +\let\tabu@G@extra \@empty +%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- +\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% + \iftabu@everyrow \aftergroup\tabu@Glinesep + \else \aftergroup\tabu@n@Glinesep + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep +}% \tabulinesep +\def\tabu@linesep {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setlinesep \abovetabulinesep + \fi \tabu@temp}% +}% \tabu@linesep +\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} +\def\tabu@sets@p #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep + \fi \tabu@temp}% +}% \tabu@sets@p +\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep +}% \tabu@setlinesep +\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} +\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} +\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} +\let\tabu@C@linesep \z@ +\let\tabu@G@linesep \@empty +%% \global\extrarowsep and \global\tabulinesep ------------------- +\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% + \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% +}% \tabu@Gsave +\def\tabu@Grestore#1#2{% + \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax + \ifcat$\the\toks\currentgrouplevel$\else + \global\let#1\@empty \global\let#2\z@ + \the\toks\currentgrouplevel + \fi +}% \tabu@Grestore +%% Setting code for every row --------------------------------------- +\newcommand*\everyrow{\tabu@everyrow@bgroup + \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop +}% \everyrow +\def\tabu@evrstartstop {\@ifnextchar^% + {\afterassignment \tabu@evrstartstop \tabu@stop=}% + {\ifx ^\@let@token + \afterassignment\tabu@evrstartstop \tabu@start=% + \else \afterassignment\tabu@everyr@w \toks@ + \fi}% +}% \tabu@evrstartstop +\def\tabu@everyr@w {% + \xdef\tabu@everyrow{% + \noexpand\tabu@everyrowfalse + \let\noalign \relax + \noexpand\tabu@rowfontreset + \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors + \let\noexpand\tabu@docline \noexpand\tabu@docline@evr + \the\toks@ + \noexpand\tabu@evrh@@k + \noexpand\tabu@rearstrut + \global\advance\c@taburow \@ne}% + \iftabu@everyrow \toks@\expandafter + {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% + \else \xdef\tabu@evr@G{\the\toks@}% + \fi + \tabu@everyrow@egroup +}% \tabu@everyr@w +\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only +\tabu@evr{} +%% line style and leaders ------------------------------------------- +\newcommand*\newtabulinestyle [1]{% + {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% +}% \newtabulinestyle +\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% + \tabu@sanitizearg {#1}\@tempa + \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi + \global\expandafter\let + \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi +}% \tabu@newlinestyle +\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% + \iftabu@everyrow + \toks@\expandafter{\expandafter \def \expandafter + \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% + \gdef\tabu@ls@{\tabu@ls@L}% + \else + \global\let\tabu@ls@G \tabu@thestyle + \gdef\tabu@ls@{\tabu@ls@G}% + \fi + \tabu@everyrow@egroup +}% \tabulinestyle +\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} +\def\tabu@rulecolor #1{\toks@{}% + \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% + \tabu@temp + \tabu@rulearc +}% \tabu@rulecolor +\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp + \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% + \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% + \fi + \tabu@temp +}% \tabu@ruledrsc@ +\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} +\def\tabu@rule@drsc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% + \else \toks@{\def\CT@drsc@{\color #1{#2}}}% + \fi + \else + \ifx \\#1#2\\\global\let\CT@drsc@ \relax + \else \gdef\CT@drsc@{\color #1{#2}}% + \fi + \fi + \tabu@rulearc +}% \tabu@rule@drsc@ +\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} +\def\tabu@rule@arc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% + \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% + \fi + \toks@\expandafter{\the\toks@ + \let\tabu@arc@L \CT@arc@ + \let\tabu@drsc@L \CT@drsc@ + \ignorespaces}% + \else + \ifx \\#1#2\\\gdef\CT@arc@{}% + \else \gdef\CT@arc@{\color #1{#2}}% + \fi + \global\let\tabu@arc@G \CT@arc@ + \global\let\tabu@drsc@G \CT@drsc@ + \fi + \tabu@everyrow@egroup +}% \tabu@rule@arc@ +\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} +\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} +\def\tabu@rowc@lors #1#2#3{% + \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil + \@defaultunits \tabu@start =\number0#1\relax \@nnil + \ifnum \count@<\tw@ \count@=\tw@ \fi + \advance\tabu@start \m@ne + \ifnum \tabu@start<\z@ \tabu@start \z@ \fi + \tabu@rowcolorseries #3\in@..\in@ \@nnil +}% \tabu@rowcolors +\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% + \ifx \in@#1\relax + \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% + \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ + \fi + \else + \ifx \\#2\\\tabu@rowcolorserieserror \fi + \tabu@sanitizearg{#1}\tabu@temp + \tabu@sanitizearg{#2}\@tempa + \advance\count@ \m@ne + \iftabu@everyrow + \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% + \ifnum ##2=\c@taburow + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi + \ifnum \c@taburow<##2 \else + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}\fi}% + }\edef\x{\noexpand\tabu@rc@ {\the\count@} + {\the\tabu@start} + {\tabu@temp} + {\@tempa}% + }\x + \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% + \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% + \else % inside \noalign + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% + \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% + \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}}% + }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x + \global\let\tabu@rc@G \tabu@rc@ + \fi + \fi + \tabu@everyrow@egroup +}% \tabu@rowcolorseries +\tabuDisableCommands {\let\tabu@rc@ \@empty } +\def\tabu@rowcolorserieserror {\PackageError{tabu} + {Invalid syntax for \string\taburowcolors + \MessageBreak Please look at the documentation!}\@ehd +}% \tabu@rowcolorserieserror +\newcommand*\tabureset {% + \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ + \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% +}% \tabureset +%% Parsing the line styles ------------------------------------------ +\def\tabu@getline #1{\begingroup + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa + \let\tabu@thestyle \relax + \ifcsname tabu@linestyle@\@tempa \endcsname + \edef\tabu@thestyle{\endgroup + \def\tabu@thestyle{\expandafter\noexpand + \csname tabu@linestyle@\@tempa\endcsname}% + }\tabu@thestyle + \else \expandafter\tabu@definestyle \tabu@temp \@nil + \fi +}% \tabu@getline +\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter + \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen + \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined + \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs + \def\tabu@temp{\tabu@getparam{thick}}% + \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% + \fi + {% + \let\tabu@ \relax + \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) + \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% + \expandafter}\expandafter + \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) + \def\;{\def\:}% + \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) + \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) + \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi + \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi + \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi + \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen + \tabu@on \tabulineon \fi\fi + \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen + \tabu@off \tabulineoff \fi\fi + \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi + \in@true % + \else \in@false % + \fi + \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% + \else \edef\tabu@thick{\the\tabu@thick}% + \fi + \edef \tabu@thestyle ##1##2{\endgroup + \def\tabu@thestyle{% + \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} + {\the\tabu@on}{##1} + {\the\tabu@off}{##2}% + \else \noexpand\tabu@rulesstyle + {##1\vrule width \tabu@thick}% + {##1\leaders \hrule height \tabu@thick \hfil}% + \fi}% + }\expandafter \expandafter + \expandafter \tabu@thestyle \expandafter + \expandafter \expandafter + {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% +}% \tabu@definestyle +{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active + \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} + \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} +}% \catcode +\def\tabu@oxiii #1{% + \ifcase \ifx n#1\z@ \else + \ifx f#1\@ne\else + \tw@ \fi\fi + \expandafter\tabu@onxiii + \or \expandafter\tabu@ofxiii + \else o% + \fi#1}% +\def\tabu@onxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx \tabu@spxiii#2\@ne\else + \tw@ \fi\fi\fi + \tabu@getparam{on}#2\expandafter\@gobble + \or \expandafter\tabu@onxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}}% +\def\tabu@ofxiii #1#2{% + \ifx #2f\expandafter\tabu@offxiii + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@offxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx\tabu@spxiii#2\@ne \else + \tw@ \fi\fi\fi + \tabu@getparam{off}#2\expandafter\@gobble + \or \expandafter\tabu@offxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} +\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef + \ifx \tabu@#1\else % no more spec + \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi +}% \tabu@getcolor +\def\tabu@getc@l@r #1\tabu@ {% + \def\tabu@temp{#1}\tabu@strtrim \tabu@temp + \ifx \tabu@temp\@empty + \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists + \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r + \else \let\tabu@c@lon \tabu@c@l@r + \fi + %\else \tabu@warncolour{\tabu@temp}% + \fi%\fi + \tabu@ % next spec +}% \tabu@getc@l@r +\def\tabu@warncolour #1{\PackageWarning{tabu} + {Color #1 is not defined. Default color used}% +}% \tabu@warncolour +\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% + \ifx \tabu@leaders\tabu@leaders@G \else + \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi +}% \tabu@leadersstyle +\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined + \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% +}% \tabu@rulesstyle +%% The leaders boxes ------------------------------------------------ +\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color + {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor + {% % but the leaders boxes should have colors ! + \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% + \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% + \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thehleaders \tabu@theleaders + }% + {% + \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% + \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% + \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thevleaders \tabu@theleaders + }% + \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% + }% +}% \tabu@LEADERS +\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} +\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color + \global\setbox \tabu@leads=\@box{% + {#3\tabu@therule{#1}{#2}}% + \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi + {#3\tabu@therule{#1}{#2}}}% + \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss + {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% + \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% + {##1\tabu@therule{#1}{#2}}% + \xleaders \copy\tabu@leads \@ss + \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% + }\tabu@theleaders{#3}% +}% \tabu@l@@d@rs +%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- +\newcommand*\tabu {\tabu@longfalse + \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% + \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endtabu*\endcsname{\endtabu}% + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {tabu} +\let\tabu@tabular \tabular % +\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} +\newcommand*\longtabu {\tabu@longtrue + \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi + \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% + \LTchunksize=\@M + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% + \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {longtabu} +\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} +\def\tabu@nolongtabu{\PackageError{tabu} + {longtabu requires the longtable package}\@ehd} +%% Read the target and then : \tabular or \@array ------------------ +\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } +\def\tabu@sett@rget {\tabu@target \z@ + \ifcase \ifx \bgroup\@let@token \z@ \else + \ifx \@sptoken\@let@token \@ne \else + \if t\@let@token \tw@ \else + \if s\@let@token \thr@@\else + \z@\fi\fi\fi\fi + \expandafter\tabu@begin + \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget + \or \expandafter\tabu@to + \or \expandafter\tabu@spread + \fi +}% \tabu@sett@rget +\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} +\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} +\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } +\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } +\def\tabu@linegoalt@rget {% + \ifx \tabu@temp\LNGL@setlinegoal + \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal + \tabu@begin +}% \tabu@linegoalt@rget +\def\tabu@begin #1#{% + \iftabu@measuring \expandafter\tabu@nestedmeasure \fi + \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty + \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% + \fi + \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil +}% \tabu@begin +\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup + \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% + \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% +}% \tabu@tabu@ +\def\tabu@nestedmeasure {% + \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax + \tabu@spreadtrue + \else \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}% + \expandafter\tabu@collectbody\expandafter\tabu@quickrule + \expandafter\endgroup + \fi +}% \tabu@nestedmeasure +\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} +%% \tabu@setup \tabu@init \tabu@indent +\def\tabu@setup{\tabu@alloc@ + \ifcase \tabu@nested + \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ + \let\tabu@afterendpar \par + \fi\fi\fi + \def\tabu@aligndefault{c}\tabu@init \tabu@indent + \else % + \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth + \fi + \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined + \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% + \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... + \let\@endpbox \tabu@endpbox % idem " " " " " " + \let\@tabarray \tabu@tabarray % idem " " " " " " + \tabu@setcleanup \tabu@setreset +}% \tabu@setup +\def\tabu@init{\tabu@starttimer \tabu@measuringfalse + \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% + \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline + \let\firstline \tabu@firstline \let\lastline \tabu@lastline + \let\hline \tabu@hline \let\@xhline \tabu@xhline + \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox + \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi + \tabu@trivlist % + \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext + \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering + \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft + \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering + \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft + \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont + \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x + \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar + \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok + \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn + \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! + \let\tabu@endpbox \@endpbox % idem " " " " " " " + \let\tabu@tabarray \@tabarray % idem " " " " " " " + \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) + \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi +}% \tabu@init +\def\tabu@indent{% correction for indentation + \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget + \everypar\expandafter{% + \the\everypar\everypar\expandafter{\the\everypar}% + \setbox\z@=\lastbox + \ifdim\wd\z@>\z@ \edef\tabu@thetarget + {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi + \box\z@}% + \fi\fi +}% \tabu@indent +\def\tabu@setcleanup {% saves last global assignments + \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax + \def\tabu@aftergroupcleanup{% + \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% + \else + \def\tabu@aftergroupcleanup{% + \aftergroup\aftergroup\aftergroup\tabu@cleanup + \let\tabu@aftergroupcleanup \relax}% + \fi + \let\tabu@arc@Gsave \tabu@arc@G + \let\tabu@arc@G \tabu@arc@L % + \let\tabu@drsc@Gsave \tabu@drsc@G + \let\tabu@drsc@G \tabu@drsc@L % + \let\tabu@ls@Gsave \tabu@ls@G + \let\tabu@ls@G \tabu@ls@L % + \let\tabu@rc@Gsave \tabu@rc@G + \let\tabu@rc@G \tabu@rc@L % + \let\tabu@evr@Gsave \tabu@evr@G + \let\tabu@evr@G \tabu@evr@L % + \let\tabu@celllalign@save \tabu@celllalign + \let\tabu@cellralign@save \tabu@cellralign + \let\tabu@cellleft@save \tabu@cellleft + \let\tabu@cellright@save \tabu@cellright + \let\tabu@@celllalign@save \tabu@@celllalign + \let\tabu@@cellralign@save \tabu@@cellralign + \let\tabu@@cellleft@save \tabu@@cellleft + \let\tabu@@cellright@save \tabu@@cellright + \let\tabu@rowfontreset@save \tabu@rowfontreset + \let\tabu@@rowfontreset@save\tabu@@rowfontreset + \let\tabu@rowfontreset \@empty + \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset + \edef\c@taburow@save {\the\c@taburow}% + \edef\tabu@naturalX@save {\the\tabu@naturalX}% + \let\tabu@naturalXmin@save \tabu@naturalXmin + \let\tabu@naturalXmax@save \tabu@naturalXmax + \let\tabu@mkarstrut@save \tabu@mkarstrut + \edef\tabu@clarstrut{% + \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax + \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax + \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% +}% \tabu@setcleanup +\def\tabu@cleanup {\begingroup + \globaldefs\@ne \tabu@everyrowtrue + \let\tabu@arc@G \tabu@arc@Gsave + \let\CT@arc@ \tabu@arc@G + \let\tabu@drsc@G \tabu@drsc@Gsave + \let\CT@drsc@ \tabu@drsc@G + \let\tabu@ls@G \tabu@ls@Gsave + \let\tabu@ls@ \tabu@ls@G + \let\tabu@rc@G \tabu@rc@Gsave + \let\tabu@rc@ \tabu@rc@G + \let\CT@do@color \relax + \let\tabu@evr@G \tabu@evr@Gsave + \let\tabu@celllalign \tabu@celllalign@save + \let\tabu@cellralign \tabu@cellralign@save + \let\tabu@cellleft \tabu@cellleft@save + \let\tabu@cellright \tabu@cellright@save + \let\tabu@@celllalign \tabu@@celllalign@save + \let\tabu@@cellralign \tabu@@cellralign@save + \let\tabu@@cellleft \tabu@@cellleft@save + \let\tabu@@cellright \tabu@@cellright@save + \let\tabu@rowfontreset \tabu@rowfontreset@save + \let\tabu@@rowfontreset \tabu@@rowfontreset@save + \tabu@naturalX =\tabu@naturalX@save + \let\tabu@naturalXmax \tabu@naturalXmax@save + \let\tabu@naturalXmin \tabu@naturalXmin@save + \let\tabu@mkarstrut \tabu@mkarstrut@save + \c@taburow =\c@taburow@save + \ifcase \tabu@nested \tabu@alloc \m@ne\fi + \endgroup % + \ifcase \tabu@nested + \the\tabu@footnotes \global\tabu@footnotes{}% + \tabu@afterendpar \tabu@elapsedtime + \fi + \tabu@clarstrut + \everyrow\expandafter {\tabu@evr@G}% +}% \tabu@cleanup +\let\tabu@afterendpar \relax +\def\tabu@setreset {% + \edef\tabu@savedparams {% \relax for \tabu@message@save + \ifmmode \col@sep \the\arraycolsep + \else \col@sep \the\tabcolsep \fi \relax + \arrayrulewidth \the\arrayrulewidth \relax + \doublerulesep \the\doublerulesep \relax + \extratabsurround \the\extratabsurround \relax + \extrarowheight \the\extrarowheight \relax + \extrarowdepth \the\extrarowdepth \relax + \abovetabulinesep \the\abovetabulinesep \relax + \belowtabulinesep \the\belowtabulinesep \relax + \def\noexpand\arraystretch{\arraystretch}% + \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% + \begingroup + \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu + \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi + \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi + \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L + \expandafter \endgroup \expandafter + \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena + \let\tabu@arc@G \tabu@arc@L + \let\tabu@drsc@G \tabu@drsc@L + \let\tabu@ls@G \tabu@ls@L + \let\tabu@rc@G \tabu@rc@L + \let\tabu@evr@G \tabu@evr@L}% + \def\tabu@reset{\tabu@savedparams + \tabu@everyrowtrue \c@taburow \z@ + \let\CT@arc@ \tabu@arc@L + \let\CT@drsc@ \tabu@drsc@L + \let\tabu@ls@ \tabu@ls@L + \let\tabu@rc@ \tabu@rc@L + \global\tabu@alloc \tabu@alloc@save + \everyrow\expandafter{\tabu@evr@L}}% +}% \tabu@reset +\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} +\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} +%% The Rewriting Process ------------------------------------------- +\def\tabu@newcolumntype #1{% + \expandafter\tabu@new@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@newcolumntype +\def\tabu@new@columntype #1#2#3{% + \def#1##1#3{\NC@{##1}}% + \let#2\relax \newcommand*#2% +}% \tabu@new@columntype +\def\tabu@privatecolumntype #1{% + \expandafter\tabu@private@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\expandafter\endcsname + \csname tabu@NC@find@\string#1\expandafter\endcsname + \csname tabu@NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@privatecolumntype +\def\tabu@private@columntype#1#2#3#4{% + \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% + \tabu@new@columntype#3#4% +}% \tabu@private@columntype +\let\tabu@privatecolumns \@empty +\newcommand*\tabucolumn [1]{\expandafter \def \expandafter + \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns + \NC@do #1}}% +\let\tabu@highprioritycolumns \@empty +%% The | ``column'' : rewriting process -------------------------- +\tabu@privatecolumntype |{\tabu@rewritevline} +\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% + \expandafter \NC@find \tabu@rewritten} +\def\tabu@lines #1{% + \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi + \NC@list\expandafter{\the\NC@list \NC@do #1}% +}% \tabu@lines@ +\def\tabu@vlinearg #1{% + \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% + \else\tabu@getline {#1}% + \fi + \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% + }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% + \expandafter \tabu@keepls \tabu@thestyle \@nil +}% \tabu@vlinearg +\def\tabu@keepls #1\@nil{% + \ifcat $\@cdr #1\@nil $% + \ifx \relax#1\else + \ifx \tabu@ls@#1\else + \let#1\relax + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@savels\noexpand#1}\fi\fi\fi +}% \tabu@keepls +\def\tabu@thevline {\begingroup + \ifdefined\tabu@leaders + \setbox\@tempboxa=\vtop to\dimexpr + \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% + \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox + \box\@tempboxa + \else + \tabu@thevrule + \fi \endgroup +}% \tabu@thevline +\def\tabu@savels #1{% + \expandafter\let\csname\string#1\endcsname #1% + \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset + \tabu@resetls#1}}% +\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% +%% \multicolumn inside tabu environment ----------------------------- +\tabu@newcolumntype \tabu@rewritemulticolumn{% + \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \tabu@savedecl + \tabu@privatecolumns + \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% + \let\tabu@savels \relax + \NC@find +}% \tabu@rewritemulticolumn +\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} +\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} +\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup + \tabu@everyrowtrue + \NC@list{\NC@do \tabu@rewritemulticolumn}% + \expandafter\@gobbletwo % gobbles \multispan{#1} + \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% + {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi + {#3}}% +}% \tabu@multic@lumn +%% The X column(s): rewriting process ----------------------------- +\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} +\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } +\def\tabu@siunitx #1{\@ifnextchar \bgroup + {\tabu@rewriteX@Ss{#1}} + {\tabu@nosiunitx{#1}}} +\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% + \@defaultunits \let\tabu@temp =#2\relax\@nnil + \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi + \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% + }\expandafter\NC@find \the\@temptokena \relax + }\expandafter\NC@rewrite@S \@gobble #2\relax + \else \tabu@siunitxerror + \fi + \expandafter \NC@find \tabu@rewritten +}% \tabu@rewriteX@Ss +\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! + \MessageBreak X column can only embed siunitx S or s columns}\@ehd +}% \tabu@siunitxerror +\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% + \iftabu@measuring + \else \tabu@measuringtrue % first X column found in the preamble + \let\@halignto \relax \let\tabu@halignto \relax + \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ + \else \tabu@spreadtarget \z@ \fi + \ifdim \tabu@target=\z@ + \setlength\tabu@target \tabu@thetarget + \tabu@message{\tabu@message@defaulttarget}% + \else \tabu@message{\tabu@message@target}\fi + \fi +}% \tabu@rewriteX +\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax + \def\tabu@rewritten{l}} +\def\tabu@Xarg #1#2#3{% + \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty + \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty + \ifx\\#1\\% + \def\tabu@rewritten{p}\tabucolX \p@ % + \else + \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ + \tabu@Xparse {}#1\relax + \fi + \tabu@Xrewritten{#2}{#3}% +}% \tabu@Xarg +\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} +\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} +\def\tabu@Xtest{% + \ifcase \ifx \relax\@let@token \z@ \else + \if ,\@let@token \m@ne\else + \if p\@let@token 1\else + \if m\@let@token 2\else + \if b\@let@token 3\else + \if l\@let@token 4\else + \if c\@let@token 5\else + \if r\@let@token 6\else + \if j\@let@token 7\else + \if L\@let@token 8\else + \if C\@let@token 9\else + \if R\@let@token 10\else + \if J\@let@token 11\else + \ifx \@sptoken\@let@token 12\else + \if .\@let@token 13\else + \if -\@let@token 13\else + \ifcat $\@let@token 14\else + 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \or \tabu@Xtype {p}% + \or \tabu@Xtype {m}% + \or \tabu@Xtype {b}% + \or \tabu@Xalign \raggedright\relax + \or \tabu@Xalign \centering\relax + \or \tabu@Xalign \raggedleft\relax + \or \tabu@Xalign \tabu@justify\relax + \or \tabu@Xalign \RaggedRight\raggedright + \or \tabu@Xalign \Centering\centering + \or \tabu@Xalign \RaggedLeft\raggedleft + \or \tabu@Xalign \justifying\tabu@justify + \or \expandafter \tabu@Xparsespace + \or \expandafter \tabu@Xcoef + \or \expandafter \tabu@Xm@th + \or \tabu@Xcoef{}% + \else\expandafter \tabu@Xparse + \fi +}% \tabu@Xtest +\def\tabu@Xalign #1#2{% + \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} + {Duplicate horizontal alignment specification}\fi + \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax + \else \def\tabu@Xlcr{#2}\let#2\relax\fi + \expandafter\tabu@Xparse +}% \tabu@Xalign +\def\tabu@Xtype #1{% + \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} + {Duplicate vertical alignment specification}\fi + \def\tabu@rewritten{#1}\expandafter\tabu@Xparse +}% \tabu@Xtype +\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% + \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi +}% \tabu@Xcoef +\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ + \tabu@Xparse{}% +}% \tabu@Xc@ef +\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} +\def\tabu@Xd@sp{\let\tabu@Xmath=$% + \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% + \expandafter\tabu@Xparse + \else \expandafter\tabu@Xparse\expandafter{\expandafter}% + \fi +}% \tabu@Xd@sp +\def\tabu@Xrewritten {% + \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi + \ifdim \tabucolX<\z@ \tabu@negcoeftrue + \else\ifdim \tabucolX=\z@ \tabucolX \p@ + \fi\fi + \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% + \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% + \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% + >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% + \tabu@rewritten {\tabu@hsize \tabu@temp}% + <{##2\ifx$\tabu@Xmath$\fi}}% + }\tabu@rewritten +}% \tabu@Xrewritten +\def\tabu@hsize #1#2{% + \ifdim #2\p@<\z@ + \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else + \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi + \fi + \else #2\tabucolX + \fi +}% \tabu@hsize +%% \usetabu and \preamble: rewriting process --------------------- +\tabu@privatecolumntype \usetabu [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\let\tabu@rewriteX \tabu@rewriteXrestore + \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% + \fi +}% \NC@rewrite@\usetabu +\tabu@privatecolumntype \preamble [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% + \fi +}% \NC@rewrite@\preamble +%% Controlling the rewriting process ------------------------------- +\tabu@newcolumntype \tabu@rewritefirst{% + \iftabu@long \aftergroup \tabu@longpream % + \else \aftergroup \tabu@pream + \fi + \let\tabu@ \relax \let\tabu@hsize \relax + \let\tabu@Xcoefs \@empty \let\tabu@savels \relax + \tabu@Xcol \z@ \tabu@cnt \tw@ + \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse + \global\setbox\@arstrutbox \box\@arstrutbox + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \NC@list\expandafter{\the\NC@list \NC@do X}% + \iftabu@siunitx % + \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi + \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% + \expandafter\def\expandafter\tabu@NC@list\expandafter{% + \the\expandafter\NC@list \tabu@NC@list}% % * | X S + \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu + \expandafter \NC@do \expandafter\preamble + \the\NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \tabu@savedecl + \tabu@privatecolumns + \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle +}% NC@rewrite@\tabu@rewritefirst +\tabu@newcolumntype \tabu@rewritemiddle{% + \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast +}% \NC@rewrite@\tabu@rewritemiddle +\tabu@newcolumntype \tabu@rewritelast{% + \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne + \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \else \let\tabu@prev\tabu@temp + \fi + \ifcase \tabu@cnt \expandafter\tabu@endrewrite + \else \expandafter\NC@find \expandafter\tabu@rewritemiddle + \fi +}% \NC@rewrite@\tabu@rewritelast +%% Choosing the strategy -------------------------------------------- +\def\tabu@endrewrite {% + \let\tabu@temp \NC@find + \ifx \@arrayright\relax \let\@arrayright \@empty \fi + \count@=% + \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print + \iftabu@measuring + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@target \csname tabu@\the\tabu@nested.T\endcsname + \tabucolX \csname tabu@\the\tabu@nested.X\endcsname + \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% + \fi + \else\iftabu@measuring 4 % X columns + \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer + \tabu@target \the\tabu@target + \tabu@spreadtarget \the\tabu@spreadtarget}% + \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% + \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% + \let\tabu@Xcoefs \relax + \else\ifcase\tabu@nested \thr@@ % outer, no X + \global\let\tabu@afterendpar \relax + \else \@ne % inner, no X, outer in mode 1 or 2 + \fi + \ifdefined\tabu@usetabu + \else \ifdim\tabu@target=\z@ + \else \let\tabu@temp \tabu@extracolsep + \fi\fi + \fi + \fi + \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% + \tabu@temp +}% \tabu@endrewrite +\def\tabu@extracolsep{\@defaultunits \expandafter\let + \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil + \ifx \tabu@temp\@sptoken + \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep + \else + \edef\tabu@temp{\noexpand\NC@find + \if |\noexpand\tabu@temp @% + \else\if !\noexpand\tabu@temp @% + \else !% + \fi\fi + {\noexpand\extracolsep\noexpand\@flushglue}}% + \fi + \tabu@temp +}% \tabu@extrac@lsep +%% Implementing the strategy ---------------------------------------- +\long\def\tabu@pream #1\@preamble {% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\tabu@aftergroupcleanup}% + \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody + \@preamble}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@pream +\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@longpream +\def\tabu@select {% + \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi + \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi + \ifcase \count@ + \global\let\tabu@elapsedtime \relax + \tabu@seteverycr + \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) + \or % exit in vertical measure + struts per cell because no X and outer in mode 3 + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \tabu@seteverycr + \expandafter \tabuthepreamble + \or % exit without measure because no X and outer in mode 4 + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@seteverycr + \expandafter \tabuthepreamble + \else % needs trials + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@savecounters + \expandafter \tabu@setstrategy + \fi +}% \tabu@select +\def\tabu@@ {\gdef\tabu@mkpreambuffer} +%% Protections to set up before trials ------------------------------ +\def\tabu@setstrategy {\begingroup % + \tabu@trialh@@k \tabu@cnt \z@ % number of trials + \hbadness \@M \let\hbadness \@tempcnta + \hfuzz \maxdimen \let\hfuzz \@tempdima + \let\write \tabu@nowrite\let\GenericError \tabu@GenericError + \let\savetabu \@gobble \let\tabudefaulttarget \linewidth + \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote + \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor + \let\tabu@aftergroupcleanup \relax % only after the last trial + \tabu@mkpreambuffer + \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init + \def\tabu@lasttry{\m@ne\p@}\fi + \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % + \tabu@collectbody \tabu@strategy % +}% \tabu@setstrategy +\def\tabu@savecounters{% + \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% + \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax +}% \tabu@savecounters +\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) + \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs + \ifdim \dimen@>\z@ + \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \fi +}% \tabucolX@init +\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum + \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ + \else -#2\p@ \tabu@negcoeftrue + \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \tabu@wddef{#1}{0pt}% + \fi +}% \tabu@Xinit +%% Collecting the environment body ---------------------------------- +\long\def\tabu@collectbody #1#2\end #3{% + \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% + \ifx \tabu@stack\@empty + \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% + \def\tabu@end@envir{\end{#3}}% + \iftabuscantokens + \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% + \else \def\tabu@endenvir {\let\endarray \@empty + \end{#3}\tabu@gobbleX}% + \fi + \else \def\tabu@endenvir {\end{#3}}\fi}% + \let\tabu@collectbody \tabu@endofcollect + \else\def\tabu@temp{#3}% + \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% + \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% + \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% + \else \toks@\expandafter{\the\toks@ #2\end{#3}}% + \fi\fi\fi + \fi + \tabu@collectbody{#1}% +}% \tabu@collectbody +\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% +\def\tabu@endofcollect #1{\ifnum0=`{}\fi + \expandafter\endgroup \the\toks@ #1% +}% \tabu@endofcollect +%% The trials: switching between strategies ------------------------- +\def\tabu@strategy {\relax % stops \count@ assignment ! + \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) + \expandafter \tabu@endoftrials + \or % case 1 = exit in vertical measure (outer in mode 3) + \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% + \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% + \expandafter \tabu@endoftrials + \or % case 2 = exit with a rule replacing the table (outer in mode 4) + \expandafter \tabu@quickend + \or % case 3 = outer is in mode 3 because of no X + \begingroup + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \expandafter \tabu@measuring + \else % case 4 = horizontal measure + \begingroup + \global\let\tabu@elapsedtime \tabu@message@etime + \long\def\multicolumn##1##2##3{\multispan{##1}}% + \let\tabu@startpboxORI \@startpbox + \iftabu@spread + \def\tabu@naturalXmax {\z@}% + \let\tabu@naturalXmin \tabu@naturalXmax + \tabu@evr{\global\tabu@naturalX \z@}% + \let\@startpbox \tabu@startpboxmeasure + \else\iftabu@negcoef + \let\@startpbox \tabu@startpboxmeasure + \else \let\@startpbox \tabu@startpboxquick + \fi\fi + \expandafter \tabu@measuring + \fi +}% \tabu@strategy +\def\tabu@measuring{\expandafter \tabu@trial \expandafter + \count@ \the\count@ \tabu@endtrial +}% \tabu@measuring +\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} +\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \csname tabu@adl@endtrial\endcsname + \endarray}$\egroup % got \tabu@box +}% \tabu@shorttrial +\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \tabuendlongtrial}\egroup % got \tabu@box +}% \tabu@longtrial +\def\tabuendlongtrial{% no @ allowed for \scantokens + \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne + \LT@get@widths +}% \tabuendlongtrial +\def\tabu@adl@endtrial{% + \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! +\def\tabu@seteverycr {\tabu@reset + \everycr \expandafter{\the\everycr \tabu@everycr}% + \let\everycr \tabu@noeverycr % +}% \tabu@seteverycr +\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} +\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} +\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} +\def\tabu@endoftrials {% + \iftabuscantokens \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\expandafter \tabu@closetrialsgroup \expandafter + \tabu@rescan \expandafter{% + \expandafter\tabuthepreamble + \the\expandafter\tabu@thebody + \iftabu@long \else \endarray \fi}} + {\expandafter\tabu@closetrialsgroup \expandafter + \tabuthepreamble + \the\tabu@thebody}% + \tabu@endenvir % Finish ! +}% \tabu@endoftrials +\def\tabu@closetrialsgroup {% + \toks@\expandafter{\tabu@endenvir}% + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target + \tabu@cnt \the\tabu@cnt + \def\noexpand\tabu@endenvir{\the\toks@}% + %Quid de \@halignto = \tabu@halignto ?? + }% \tabu@bufferX + \tabu@bufferX + \ifcase\tabu@nested % print out (outer in mode 0) + \global\tabu@cnt \tabu@cnt + \tabu@evr{\tabu@verticaldynamicadjustment}% + \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty + \let\@finalstrut \tabu@finalstrut + \else % vertical measure of nested tabu + \tabu@evr{\tabu@verticalinit}% + \tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \fi + \tabu@clckpt \let\@halignto \tabu@halignto + \let\@halignto \@empty + \tabu@seteverycr + \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ + \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) + \fi\fi +}% \tabu@closetrialsgroup +\def\tabu@quickend {\expandafter \endgroup \expandafter + \tabu@target \the\tabu@target \tabu@quickrule + \let\endarray \relax \tabu@endenvir +}% \tabu@quickend +\def\tabu@endtrial {\relax % stops \count@ assignment ! + \ifcase \count@ \tabu@err % case 0 = impossible here + \or \tabu@err % case 1 = impossible here + \or \tabu@err % case 2 = impossible here + \or % case 3 = outer goes into mode 0 + \def\tabu@bufferX{\endgroup}\count@ \z@ + \else % case 4 = outer goes into mode 3 + \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) + \else \tabu@arith % or 2 (outer in mode 4) + \fi + \count@=% + \ifcase\tabu@nested \thr@@ % outer goes into mode 3 + \else\iftabu@measuring \tw@ % outer is in mode 4 + \else \@ne % outer is in mode 3 + \fi\fi + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% + \fi + \expandafter \tabu@bufferX \expandafter + \count@ \the\count@ \tabu@strategy +}% \tabu@endtrial +\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} +%% The algorithms: compute the widths / stop or go on --------------- +\def\tabu@arithnegcoef {% + \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs +}% \tabu@arithnegcoef +\def\tabu@arith@negcoef #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition + \advance\@tempdima #2\tabucolX + \else + \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated + \advance\dimen@ -#2\p@ + \advance\@tempdima -#2\tabucolX + \else + \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised + \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised + \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) + \fi + \fi + \fi +}% \tabu@arith@negcoef +\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ + \ifdim \@tempdima=\z@ + \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% + \else + \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} + *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% + \fi +}% \tabu@givespace +\def\tabu@arith {\advance\tabu@cnt \@ne + \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi + \tabu@arithnegcoef + \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % + \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax + \tabu@message{\tabu@message@arith}% + \ifdim \tabu@DELTA <\tabu@hfuzz + \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? + \let\tabu@ \tabu@givespace \tabu@Xcoefs + \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message + \else % already converged: nothing to do but nearly impossible... + \fi + \tabucolX \maxdimen + \tabu@measuringfalse + \else % need for narrower X columns + \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax + \tabu@measuringtrue + \@whilesw \iftabu@measuring\fi {% + \advance\tabu@cnt \@ne + \tabu@arithnegcoef + \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here + \tabu@message{\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else + \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ + \fi}% + \ifdim -\tabu@DELTA<\tabu@hfuzz + \advance\@tempdima \@tempdimb % for message + \tabu@measuringfalse + \else + \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax + \fi + }% + \fi + \tabu@message{\tabu@message@reached}% + \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% +}% \tabu@arith +\def\tabu@spreadarith {% + \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs + \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% + \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax + \iftabu@measuring + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% + \else + \tabu@message{\tabu@message@spreadarith}% + \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target + \tabu@message{(tabu) spread + \ifdim \@tempdimc>\tabu@target useless here: default target used% + \else too large: reduced to fit default target\fi.}% + \else + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% + \fi + \begingroup \let\tabu@wddef \@gobbletwo + \@tempdimb \@tempdima + \tabucolX@init + \tabu@arithnegcoef + \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax + \expandafter\endgroup \expandafter\tabucolX \the\tabucolX + \tabu@arith + \fi +}% \tabu@spreadarith +\def\tabu@spread@arith #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ + \else \advance\@tempdima \tabu@wd{#1}\relax + \fi +}% \tabu@spread@arith +%% Reporting in the .log file --------------------------------------- +\def\tabu@message@defaulttarget{% + \ifnum\tabu@nested=\z@^^J(tabu) Default target: + \ifx\tabudefaulttarget\linewidth \string\linewidth + \ifdim \tabu@thetarget=\linewidth \else + -\the\dimexpr\linewidth-\tabu@thetarget\fi = + \else\ifx\tabudefaulttarget\linegoal\string\linegoal= + \fi\fi + \else (tabu) Default target (nested): \fi + \the\tabu@target \on@line + \ifnum\tabu@nested=\z@ , page \the\c@page\fi} +\def\tabu@message@target {^^J(tabu) Target specified: + \the\tabu@target \on@line, page \the\c@page} +\def\tabu@message@arith {\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else + \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ + \fi +}% \tabu@message@arith +\def\tabu@message@spreadarith {\tabu@spreadheader + \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ + \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ + \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ + \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target + \else \@tempdimc+\tabu@spreadtarget \fi + {}{}{}{}{}\@@} +\def\tabu@message@negcoef #1#2{ + \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: + \space width = \tabu@wd {#1} + \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname + \ifdim -\tabu@pt#2\tabucolX<\tabu@target + < \number-\rem@pt#2 X + = \the\dimexpr -\tabu@pt#2\tabucolX \relax + \else + <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} +\def\tabu@message@reached{\tabu@header + ******* Reached Target: + hfuzz = \tabu@hfuzz\on@line\space *******} +\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% + \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: + \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec + \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) + -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax + *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space + cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} +\def\tabu@message@verticalsp {% + \ifdim \@tempdima>\tabu@ht + \ifdim \@tempdimb>\tabu@dp + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% + \else + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% + \fi + \else\ifdim \@tempdimb>\tabu@dp + \tabu@spaces\tabu@spaces\tabu@spaces + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi + \fi +}% \tabu@message@verticalsp +\edef\tabu@spaces{\@spaces} +\def\tabu@strippt{\expandafter\tabu@pt\the} +{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} +\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} +\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} +\def\do #1{% + \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% + \ifnum##1<10 #1 #1\else + \ifnum##1<100 #1 \else + \ifnum##1<\@m #1\fi\fi\fi + ##1.##2##3##4##5##6##7##8#1}% + \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% + \def\tabu@titles{\ifnum \tabu@nested=\z@ + (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target + #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% + \def\tabu@spreadheader{% + (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. + #1 New Target^^J% + (tabu) sprd} + \def\tabu@message@save {\begingroup + \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} + \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt + \dimexpr####1\p@{ }{ }}}% + \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% + \let\CT@arc@ \relax \let\@preamble \@gobble + \let\tabu@savedpream \@firstofone + \let\tabu@savedparams \@firstofone + \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% + \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% + \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% + \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% + \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% + \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% + \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% + \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% + \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% + \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% + \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% + \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% + \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% + \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% + \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% + \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% + \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% + \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% + \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% + \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% + \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo + \tabu@message{% + (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% + \tabu@usetabu \@nil^^J}% + \endgroup} +}\do{ } +%% Measuring the natural width (varwidth) - store the results ------- +\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop + \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% + \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? + \iftabu@spread \else % if spread -> measure + \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure + \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) + \tabu@measuringtrue % for the quick option... + \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi + \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target + \tabu@target=\tabu@temp\tabucolX \fi\fi + \setbox\tabu@box \hbox \bgroup + \begin{varwidth}\tabu@target + \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... + \narrowragged \arraybackslash \parfillskip \@flushglue + \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi + \bgroup \aftergroup\tabu@endpboxmeasure + \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi + \else \expandafter\@gobble + \tabu@startpboxquick{#1}% \@gobble \bgroup + \fi +}% \tabu@startpboxmeasure +\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty + \bgroup\color@begingroup} +\def\tabu@endpboxmeasure {% + \@finalstrut \@arstrutbox + \end{varwidth}\egroup % + \ifdim \tabu@temp\p@ <\z@ % neg coef + \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box + \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% + \tabu@debug{\tabu@message@endpboxmeasure}% + \fi + \else % spread coef>0 + \global\advance \tabu@naturalX \wd\tabu@box + \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax + \ifdim \tabu@naturalXmax <\tabu@naturalX + \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi + \ifdim \tabu@naturalXmin <\@tempdima + \xdef\tabu@naturalXmin {\the\@tempdima}\fi + \fi + \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target +}% \tabu@endpboxmeasure +\def\tabu@wddef #1{\expandafter\xdef + \csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd + \the\tabu@Xcol. X[\tabu@temp]: + target = \the\tabucolX \space + \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol + =\tabu@wd\tabu@Xcol +}% \tabu@message@endpboxmeasure +\def\tabu@startpboxquick {\bgroup + \let\@startpbox \tabu@startpboxORI % restore immediately + \let\tabu \tabu@quick % \begin is expanded before... + \expandafter\@gobble \@startpbox % gobbles \bgroup +}% \tabu@startpboxquick +\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick +}% \tabu@quick +\def\tabu@endquick {% + \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else + \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax + \endgroup + \else \let\endtabu \relax + \tabu@end@envir + \fi +}% \tabu@quick +\def\tabu@endtabu {\end{tabu}} +\def\tabu@endtabus {\end{tabu*}} +%% Measuring the heights and depths - store the results ------------- +\def\tabu@verticalmeasure{\everypar{}% + \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group + \setbox\tabu@box =\hbox\bgroup + \let\tabu@verticalspacing \tabu@verticalsp@lcr + \d@llarbegin % after \hbox ... + \else + \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop + \else\ifnum\currentgrouptype=12\vcenter + \else\vbox\fi\fi}% + \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup + \let\tabu@verticalspacing \tabu@verticalsp@pmb + \fi +}% \tabu@verticalmeasure +\def\tabu@verticalsp@lcr{% + \d@llarend \egroup % + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \noindent\vrule height\@tempdima depth\@tempdimb +}% \tabu@verticalsp@lcr +\def\tabu@verticalsp@pmb{% inserts struts as needed + \par \expandafter\egroup + \expandafter$\expandafter + \egroup \expandafter + \@tempdimc \the\prevdepth + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \let\@finalstrut \@gobble + \hrule height\@tempdima depth\@tempdimb width\hsize +%% \box\tabu@box +}% \tabu@verticalsp@pmb + +\def\tabu@verticalinit{% + \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! + \advance\c@taburow \@ne + \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% + \advance\c@taburow \m@ne +}% \tabu@verticalinit +\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@verticaldynamicadjustment {% + \advance\c@taburow \@ne + \extrarowheight \dimexpr\tabu@ht - \ht\strutbox + \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox + \let\arraystretch \@empty + \advance\c@taburow \m@ne +}% \tabu@verticaldynamicadjustment +\def\tabuphantomline{\crcr \noalign{% + {\globaldefs \@ne + \setbox\@arstrutbox \box\voidb@x + \let\tabu@@celllalign \tabu@celllalign + \let\tabu@@cellralign \tabu@cellralign + \let\tabu@@cellleft \tabu@cellleft + \let\tabu@@cellright \tabu@cellright + \let\tabu@@thevline \tabu@thevline + \let\tabu@celllalign \@empty + \let\tabu@cellralign \@empty + \let\tabu@cellright \@empty + \let\tabu@cellleft \@empty + \let\tabu@thevline \relax}% + \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% + \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr + \noalign{\tabu@rearstrut + {\globaldefs\@ne + \let\tabu@celllalign \tabu@@celllalign + \let\tabu@cellralign \tabu@@cellralign + \let\tabu@cellleft \tabu@@cellleft + \let\tabu@cellright \tabu@@cellright + \let\tabu@thevline \tabu@@thevline}}}% + \expandafter}\the\toks@ +}% \tabuphantomline +%% \firsthline and \lasthline corrections --------------------------- +\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} +\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} +\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} +\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} +\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) + \noalign{\ifnum0=`}\fi + {\CT@arc@\hrule height\arrayrulewidth}% + \futurelet \tabu@temp \tabu@xhline +}% \tabu@hline +\def\tabu@xhline{% + \ifx \tabu@temp \hline + {\ifx \CT@drsc@\relax \vskip + \else\ifx \CT@drsc@\@empty \vskip + \else \CT@drsc@\hrule height + \fi\fi + \doublerulesep}% + \fi + \ifnum0=`{\fi}% +}% \tabu@xhline +\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ + \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% + \tabu@hlineAZsurround +}% \tabu@hlineAZ +\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% + \extratabsurround #1\let\tabucline \tabucline@scan + \let\hline \tabu@hlinescan \let\firsthline \hline + \let\cline \tabu@clinescan \let\lasthline \hline + \expandafter \futurelet \expandafter \tabu@temp + \expandafter \tabu@nexthlineAZ \tabu@temp +}% \tabu@hlineAZsurround +\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} +\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} +\def\tabucline@scan{\@testopt \tabucline@sc@n {}} +\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} +\def\tabu@nexthlineAZ{% + \ifx \tabu@temp\hline \else + \ifx \tabu@temp\cline \else + \ifx \tabu@temp\tabucline \else + \tabu@hlinecorrection + \fi\fi\fi +}% \tabu@nexthlineAZ +\def\tabu@xhlineAZ #1{% + \toks@\expandafter{\the\toks@ #1}% + \@tempdimc \tabu@thick % The last line width + \ifcase\count@ \@tempdimb \tabu@thick % The first line width + \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax + \fi + \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ +}% \tabu@xhlineAZ +\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 + \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ + \edef\firsthline{% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + height \the\dimexpr\@tempdima+\extratabsurround + depth \dp\@arstrutbox + width \tabustrutrule}\hss}\cr + \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb + +\dp\@arstrutbox \relax}% + \the\toks@ + }\ifnum0=`{\fi + \expandafter}\firsthline % we are then ! +}% \tabu@firsthlinecorrection +\def\tabu@lasthlinecorrection{% + \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc + \edef\lasthline{% + \the\toks@ + \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ + +\extratabsurround-\@tempdimc + height \z@ + width \tabustrutrule}\hss}\cr + }\ifnum0=`{\fi + \expandafter}\lasthline % we are then ! +}% \tabu@lasthlinecorrection +\def\tabu@LT@@hline{% + \ifx\LT@next\hline + \global\let\LT@next \@gobble + \ifx \CT@drsc@\relax + \gdef\CT@LT@sep{% + \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% + \else + \gdef\CT@LT@sep{% + \multispan\LT@cols{% + \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% + \fi + \else + \global\let\LT@next\empty + \gdef\CT@LT@sep{% + \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \CT@LT@sep + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \noalign{\penalty\@M}% + \LT@next +}% \tabu@LT@@hline +%% Horizontal lines : \tabucline ------------------------------------ +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} +\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% + \ifnum \tabu@stop<\z@ \toks@{}% + \else \tabu@clinearg{#1}\tabu@thestyle + \edef\tabucline{\toks@{% + \ifnum \tabu@start>\z@ \omit + \tabu@multispan\tabu@start {\span\omit}&\fi + \omit \tabu@multispan\tabu@stop {\span\omit}% + \tabu@thehline\cr + }}\tabucline + \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% + \fi + \futurelet \tabu@temp \tabu@xcline +}% \tabu@cline +\def\tabu@clinearg #1{% + \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ + \else \@defaultunits \expandafter\let\expandafter\@tempa + \romannumeral-`\0#1\relax \@nnil + \ifx \hbox\@tempa \tabu@clinebox{#1}% + \else\ifx \box\@tempa \tabu@clinebox{#1}% + \else\ifx \vbox\@tempa \tabu@clinebox{#1}% + \else\ifx \vtop\@tempa \tabu@clinebox{#1}% + \else\ifx \copy\@tempa \tabu@clinebox{#1}% + \else\ifx \leaders\@tempa \tabu@clineleads{#1}% + \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% + \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% + \else\tabu@getline {#1}% + \fi\fi\fi\fi\fi\fi\fi\fi + \fi +}% \tabu@clinearg +\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} +\def\tabu@clineleads #1{% + \let\tabu@thestyle \relax \let\tabu@leaders \@undefined + \gdef\tabu@thehrule{#1}} +\def\tabu@thehline{\begingroup + \ifdefined\tabu@leaders + \noexpand\tabu@thehleaders + \else \noexpand\tabu@thehrule + \fi \endgroup +}% \tabu@thehline +\def\tabu@xcline{% + \ifx \tabu@temp\tabucline + \toks@\expandafter{\the\toks@ \noalign + {\ifx\CT@drsc@\relax \vskip + \else \CT@drsc@\hrule height + \fi + \doublerulesep}}% + \fi + \tabu@docline +}% \tabu@xcline +\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} +\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% + \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} +\def\tabu@multispan #1#2{% + \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan + \else \expandafter\@gobbletwo + \fi {#1-1}{#2}% +}% \tabu@multispan +\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} +\def\tabu@start@stop #1-#2\@nnil{% + \@defaultunits \tabu@start\number 0#1\relax \@nnil + \@defaultunits \tabu@stop \number 0#2\relax \@nnil + \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne + \else\ifnum \tabu@stop=\z@ \tabu@nbcols + \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols + \else \tabu@stop + \fi\fi\fi + \advance\tabu@start \m@ne + \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi +}% \tabu@start@stop +%% Numbers: siunitx S columns (and \tabudecimal) ------------------- +\def\tabu@tabudecimal #1{% + \def\tabu@decimal{#1}\@temptokena{}% + \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces + \tabu@scandecimal +}% \tabu@tabudecimal +\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} +\def\tabu@skipdecimal#1{#1\tabu@scandecimal} +\def\tabu@getdecimal@ignorespaces{% + \ifcase 0\ifx\tabu@temp\ignorespaces\else + \ifx\tabu@temp\@sptoken1\else + 2\fi\fi\relax + \let\tabu@getdecimal@ \tabu@getdecimal + \expandafter\tabu@skipdecimal + \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal + \else \expandafter\tabu@skipdecimal + \fi +}% \tabu@getdecimal@ignorespaces +\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% + \tabu@scandecimal} +\def\do#1{% + \def\tabu@get@decimalspace#1{% + \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% +}\do{ } +\let\tabu@@tabudecimal \tabu@tabudecimal +\def\tabu@getdecimal{% + \ifcase 0\ifx 0\tabu@temp\else + \ifx 1\tabu@temp\else + \ifx 2\tabu@temp\else + \ifx 3\tabu@temp\else + \ifx 4\tabu@temp\else + \ifx 5\tabu@temp\else + \ifx 6\tabu@temp\else + \ifx 7\tabu@temp\else + \ifx 8\tabu@temp\else + \ifx 9\tabu@temp\else + \ifx .\tabu@temp\else + \ifx ,\tabu@temp\else + \ifx -\tabu@temp\else + \ifx +\tabu@temp\else + \ifx e\tabu@temp\else + \ifx E\tabu@temp\else + \ifx\tabu@cellleft\tabu@temp1\else + \ifx\ignorespaces\tabu@temp1\else + \ifx\@sptoken\tabu@temp2\else + 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \expandafter\tabu@get@decimal + \or \expandafter\tabu@skipdecimal + \or \expandafter\tabu@get@decimalspace + \else\expandafter\tabu@printdecimal + \fi +}% \tabu@getdecimal +\def\tabu@printdecimal{% + \edef\tabu@temp{\the\@temptokena}% + \ifx\tabu@temp\@empty\else + \ifx\tabu@temp\space\else + \expandafter\tabu@decimal\expandafter{\the\@temptokena}% + \fi\fi +}% \tabu@printdecimal +%% Verbatim inside X columns ---------------------------------------- +\def\tabu@verbatim{% + \let\verb \tabu@verb + \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd +}% \tabu@verbatim +\let\tabu@ltx@verb \verb +\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} +\def\tabu@fancyvrb {% + \def\tabu@FV@DefineCheckEnd ##1{% + \def\tabu@FV@DefineCheckEnd{% + ##1% + \let\FV@CheckEnd \tabu@FV@CheckEnd + \let\FV@@CheckEnd \tabu@FV@@CheckEnd + \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd + \edef\FV@EndScanning{% + \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% + \global\let\noexpand\FV@EnvironName\relax + \noexpand\next}% + \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% + }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} +}% \tabu@fancyvrb +\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} +\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} +\begingroup +\catcode`\[1 \catcode`\]2 +\@makeother\{ \@makeother\} + \edef\x[\endgroup + \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% + ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} +\def\tabu@FV@ListProcessLine #1{% + \hbox {%to \hsize{% + \kern\leftmargin + \hbox {%to \linewidth{% + \FV@LeftListNumber + \FV@LeftListFrame + \FancyVerbFormatLine{#1}\hss +%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) +%% \FV@RightListFrame}% + \FV@RightListFrame + \FV@RightListNumber}% +%% DG/SR modification end + \hss}} +%% \savetabu -------------------------------------------------------- +\newcommand*\savetabu[1]{\noalign{% + \tabu@sanitizearg{#1}\tabu@temp + \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else + \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% + \ifdefined\tabu@restored \expandafter\let + \csname tabu@saved@\tabu@temp \endcsname \tabu@restored + \else {\tabu@save}% + \fi + \fi}% +}% \savetabu +\def\tabu@save {% + \toks0\expandafter{\tabu@saved@}% + \iftabu@negcoef + \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% + \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi + \toks1\expandafter{\tabu@savedpream}% + \toks2\expandafter{\tabu@savedpreamble}% + \let\@preamble \relax + \let\tabu@savedpream \relax \let\tabu@savedparams \relax + \edef\tabu@preamble{% + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \edef\tabu@usetabu{% + \def\@preamble {\noexpand\the\toks2}% + \tabu@target \the\tabu@target \relax + \tabucolX \the\tabucolX \relax + \tabu@nbcols \the\tabu@nbcols \relax + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \let\tabu@aligndefault \relax \let\@sharp \relax + \edef\@tempa{\noexpand\tabu@s@ved + {\tabu@usetabu} + {\tabu@preamble} + {\the\toks1}}\@tempa + \tabu@message@save +}% \tabu@save +\long\def\tabu@s@ved #1#2#3{% + \def\tabu@usetabu{#1}% + \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% + \ifodd ##1% \usetabu + \tabu@measuringfalse \tabu@spreadfalse % Just in case... + \gdef\tabu@usetabu {% + \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi + \global\let\tabu@usetabu \@undefined + \def\@halignto {to\tabu@target}% + #1% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \else % \preamble + \gdef\tabu@preamble {% + \global\let\tabu@preamble \@undefined + #2% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \fi + #3}% +}% \tabu@s@ved +\def\tabu@aligndefault@text {\tabu@aligndefault}% +\def\tabu@warn@usetabu {\PackageWarning{tabu} + {Specifying a target with \string\usetabu\space is useless + \MessageBreak The target cannot be changed!}} +\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} +\def\tabu@savewarn#1#2{\PackageInfo{tabu} + {User-name `#1' already used for \string\savetabu + \MessageBreak #2}}% +\def\tabu@saveerr#1{\PackageError{tabu} + {User-name `#1' is unknown for \string\usetabu + \MessageBreak I cannot restore an unknown preamble!}\@ehd} +%% \rowfont --------------------------------------------------------- +\newskip \tabu@cellskip +\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi + {\ifnum0=`}\fi \tabu@row@font} +\newcommand*\tabu@row@font[2][]{% + \ifnum7=\currentgrouptype + \global\let\tabu@@cellleft \tabu@cellleft + \global\let\tabu@@cellright \tabu@cellright + \global\let\tabu@@celllalign \tabu@celllalign + \global\let\tabu@@cellralign \tabu@cellralign + \global\let\tabu@@rowfontreset\tabu@rowfontreset + \fi + \global\let\tabu@rowfontreset \tabu@rowfont@reset + \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% + \ifcsname tabu@cell@#1\endcsname % row alignment + \csname tabu@cell@#1\endcsname \fi + \ifnum0=`{\fi}% end of group / noalign group +}% \rowfont +\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% +\def\tabu@rowfont@reset{% + \global\let\tabu@rowfontreset \tabu@@rowfontreset + \global\let\tabu@cellleft \tabu@@cellleft + \global\let\tabu@cellright \tabu@@cellright + \global\let\tabu@cellfont \@empty + \global\let\tabu@celllalign \tabu@@celllalign + \global\let\tabu@cellralign \tabu@@cellralign +}% \tabu@@rowfontreset +\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl +%% \tabu@prepnext@tok ----------------------------------------------- +\newif \iftabu@cellright +\def\tabu@prepnext@tok{% + \ifnum \count@<\z@ % + \@tempcnta \@M % + \tabu@nbcols\z@ + \let\tabu@fornoopORI \@fornoop + \tabu@cellrightfalse + \else + \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left + \advance \tabu@nbcols \@ne + \iftabu@cellright % before-previous token is right and is finished + \tabu@cellrightfalse % + \tabu@righttok + \fi + \tabu@lefttok + \or % (case 1) previous token is right + \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop + \else % special column: do not change the token + \iftabu@cellright % before-previous token is right + \tabu@cellrightfalse + \tabu@righttok + \fi + \fi % \ifcase + \fi + \tabu@prepnext@tokORI +}% \tabu@prepnext@tok +\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} +\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% + \ifx \in@#2\else + \let\@fornoop \tabu@fornoopORI + \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% + \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% + \expandafter\prepnext@tok + \fi +}% \tabu@lastnoop +\def\tabu@righttok{% + \advance \count@ \m@ne + \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% + \advance \count@ \@ne +}% \tabu@righttok +\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign + \the\toks\count@ \tabu@cellleft}% after because of $ +}% \tabu@lefttok +%% Neutralisation of glues ------------------------------------------ +\let\tabu@cellleft \@empty +\let\tabu@cellright \@empty +\tabu@celllalign@def{\tabu@cellleft}% +\let\tabu@cellralign \@empty +\def\tabu@cell@align #1#2#3{% + \let\tabu@maybesiunitx \toks@ \tabu@celllalign + \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% + \toks@\expandafter{\tabu@cellralign #2}% + \xdef\tabu@cellralign{\the\toks@}% + \toks@\expandafter{\tabu@cellleft #3}% + \xdef\tabu@cellleft{\the\toks@}% +}% \tabu@cell@align +\def\tabu@cell@l{% force alignment to left + \tabu@cell@align + {\tabu@removehfil \raggedright \tabu@cellleft}% left + {\tabu@flush1\tabu@ignorehfil}% right + \raggedright +}% \tabu@cell@l +\def\tabu@cell@c{% force alignment to center + \tabu@cell@align + {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \centering +}% \tabu@cell@c +\def\tabu@cell@r{% force alignment to right + \tabu@cell@align + {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} + \tabu@ignorehfil + \raggedleft +}% \tabu@cell@r +\def\tabu@cell@j{% force justification (for p, m, b columns) + \tabu@cell@align + {\tabu@justify\tabu@cellleft} + {} + \tabu@justify +}% \tabu@cell@j +\def\tabu@justify{% + \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip + \parfillskip\@flushglue +}% \tabu@justify +%% ragged2e settings +\def\tabu@cell@L{% force alignment to left (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedRight \tabu@cellleft} + {\tabu@flush 1\tabu@ignorehfil} + \RaggedRight +}% \tabu@cell@L +\def\tabu@cell@C{% force alignment to center (ragged2e) + \tabu@cell@align + {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \Centering +}% \tabu@cell@C +\def\tabu@cell@R{% force alignment to right (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} + \tabu@ignorehfil + \RaggedLeft +}% \tabu@cell@R +\def\tabu@cell@J{% force justification (ragged2e) + \tabu@cell@align + {\justifying \tabu@cellleft} + {} + \justifying +}% \tabu@cell@J +\def\tabu@flush#1{% + \iftabu@colortbl % colortbl uses \hfill rather than \hfil + \hskip \ifnum13<\currentgrouptype \stretch{#1}% + \else \ifdim#1pt<\p@ \tabu@cellskip + \else \stretch{#1} + \fi\fi \relax + \else % array.sty + \ifnum 13<\currentgrouptype + \hfil \hskip1sp \relax \fi + \fi +}% \tabu@flush +\let\tabu@hfil \hfil +\let\tabu@hfill \hfill +\let\tabu@hskip \hskip +\def\tabu@removehfil{% + \iftabu@colortbl + \unkern \tabu@cellskip =\lastskip + \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip + \else \tabu@cellskip \z@skip + \fi + \else + \ifdim\lastskip=1sp\unskip\fi + \ifnum\gluestretchorder\lastskip =\@ne + \hfilneg % \hfilneg for array.sty but not for colortbl... + \fi + \fi +}% \tabu@removehfil +\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} +\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil + \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group +}% \tabu@nohfil +\def\tabu@colortblalignments {% if colortbl + \def\tabu@nohfil{% + \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group + \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... + \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local +}% \tabu@colortblalignments +%% Taking care of footnotes and hyperfootnotes ---------------------- +\long\def\tabu@footnotetext #1{% + \edef\@tempa{\the\tabu@footnotes + \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% + \global\tabu@footnotes\expandafter{\@tempa {#1}}}% +\long\def\tabu@xfootnotetext [#1]#2{% + \global\tabu@footnotes\expandafter{\the\tabu@footnotes + \footnotetext [{#1}]{#2}}} +\let\tabu@xfootnote \@xfootnote +\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} +\long\def\tabu@Hy@xfootnote [#1]{% + \begingroup + \value\@mpfn #1\relax + \protected@xdef \@thefnmark {\thempfn}% + \endgroup + \@footnotemark \tabu@Hy@ftntxt {#1}% +}% \tabu@Hy@xfootnote +\long\def\tabu@Hy@ftntxt #1#2{% + \edef\@tempa{% + \the\tabu@footnotes + \begingroup + \value\@mpfn #1\relax + \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% + \expandafter \noexpand \expandafter + \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% + }% + \global\tabu@footnotes\expandafter{\@tempa {#2}% + \endgroup}% +}% \tabu@Hy@ftntxt +\long\def\tabu@Hy@footnotetext #1#2{% + \H@@footnotetext{% + \ifHy@nesting + \hyper@@anchor {#1}{#2}% + \else + \Hy@raisedlink{% + \hyper@@anchor {#1}{\relax}% + }% + \def\@currentHref {#1}% + \let\@currentlabelname \@empty + #2% + \fi + }% +}% \tabu@Hy@footnotetext +%% No need for \arraybackslash ! ------------------------------------ +\def\tabu@latextwoe {% +\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@centering \centering \arraybackslash +\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash +\tabu@temp \tabu@raggedright \raggedright \arraybackslash +}% \tabu@latextwoe +\def\tabu@raggedtwoe {% +\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@Centering \Centering \arraybackslash +\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash +\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash +\tabu@temp \tabu@justifying \justifying \arraybackslash +}% \tabu@raggedtwoe +\def\tabu@normalcrbackslash{\let\\\@normalcr} +\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% + \expandafter\tabu@normalcrbackslash \@trivlist}} +%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- +\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} +\def\tabu@beginfbox {\bgroup \kern\fboxsep + \bgroup\aftergroup\tabu@endfbox} +\def\tabu@endfbox {\kern\fboxsep\egroup\egroup + \@frameb@x\relax} +\def\tabu@color@b@x #1#2{\leavevmode \bgroup + \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% + \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox +}% \tabu@color@b@x +\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup + \aftergroup\tabu@endcolor@b@x \set@color} +\def\tabu@endcolor@b@x {\kern\fboxsep \egroup + \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ + \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ + \tabu@docolor@b@x \egroup +}% \tabu@endcolor@b@x +%% Corrections (arydshln, delarray, colortbl) ----------------------- +\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray + \iftabu@colortbl + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \def\tabu@endarray{% + \crcr \egroup \egroup % + \@arrayright % + \gdef\@preamble{}\CT@end}% + \fi + \else + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \PackageWarning{tabu} + {\string\@arrayright\space is missing from the + \MessageBreak definition of \string\endarray. + \MessageBreak Compatibility with delarray.sty is broken.}% + \fi\fi +}% \tabu@fix@arrayright +\def\tabu@adl@xarraydashrule #1#2#3{% + \ifnum\@lastchclass=\adl@class@start\else + \ifnum\@lastchclass=\@ne\else + \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) + \adl@leftrulefalse \fi\fi % must be treated the same + \fi + \ifadl@zwvrule\else \ifadl@inactive\else + \@addtopreamble{\vrule\@width\arrayrulewidth + \@height\z@ \@depth\z@}\fi \fi + \ifadl@leftrule + \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% + {\number#1}#3}% + \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% + {\number#2}#3} + \fi +}% \tabu@adl@xarraydashrule +\def\tabu@adl@act@endpbox {% + \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox + \egroup \egroup + \adl@colhtdp \box\adl@box \hfil +}% \tabu@adl@act@endpbox +\def\tabu@adl@fix {% + \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln + \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln + \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln + \let\@preamerror \@preamerr % arydshln +}% \tabu@adl@fix +%% Correction for longtable' \@startbox definition ------------------ +%% => \everypar is ``missing'' : TeX should be in vertical mode +\def\tabu@LT@startpbox #1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \everypar{% + \vrule \@height \ht\@arstrutbox \@width \z@ + \everypar{}}% +}% \tabu@LT@startpbox +%% \tracingtabu and the package options ------------------ +\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} +\DeclareOption{linegoal}{% + \AtEndOfPackage{% + \RequirePackage{linegoal}[2010/12/07]% + \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX +}} +\DeclareOption{scantokens}{\tabuscantokenstrue} +\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} +\def\tracingtabu {\begingroup\@ifnextchar=% + {\afterassignment\tabu@tracing\count@} + {\afterassignment\tabu@tracing\count@1\relax}} +\def\tabu@tracing{\expandafter\endgroup + \expandafter\tabu@tr@cing \the\count@ \relax +}% \tabu@tracing +\def\tabu@tr@cing #1\relax {% + \ifnum#1>\thr@@ \let\tabu@tracinglines\message + \else \let\tabu@tracinglines\@gobble + \fi + \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG + \def\tabu@mkarstrut {\tabu@DBG@arstrut}% + \tabustrutrule 1.5\p@ + \else \let\tabu@DBG \@gobble + \def\tabu@mkarstrut {\tabu@arstrut}% + \tabustrutrule \z@ + \fi + \ifnum#1>\@ne \let\tabu@debug \message + \else \let\tabu@debug \@gobble + \fi + \ifnum#1>\z@ + \let\tabu@message \message + \let\tabu@tracing@save \tabu@message@save + \let\tabu@starttimer \tabu@pdftimer + \else + \let\tabu@message \@gobble + \let\tabu@tracing@save \@gobble + \let\tabu@starttimer \relax + \fi +}% \tabu@tr@cing +%% Setup \AtBeginDocument +\AtBeginDocument{\tabu@AtBeginDocument} +\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined + \ifdefined\arrayrulecolor \tabu@colortbltrue % + \tabu@colortblalignments % different glues are used + \else \tabu@colortblfalse \fi + \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi + \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi + \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ + \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % + \expandafter\ifx + \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax + \tabu@siunitxtrue + \else \let\tabu@maybesiunitx \@firstofone % + \let\tabu@siunitx \tabu@nosiunitx + \tabu@siunitxfalse + \fi + \ifdefined\adl@array % + \else \let\tabu@adl@fix \relax + \let\tabu@adl@endtrial \@empty \fi + \ifdefined\longtable % + \else \let\longtabu \tabu@nolongtabu \fi + \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi + \csname\ifcsname ifHy@hyperfootnotes\endcsname % + ifHy@hyperfootnotes\else iffalse\fi\endcsname + \let\tabu@footnotetext \tabu@Hy@ftntext + \let\tabu@xfootnote \tabu@Hy@xfootnote \fi + \ifdefined\FV@DefineCheckEnd% + \tabu@fancyvrb \fi + \ifdefined\color % + \let\tabu@color \color + \def\tabu@leavevmodecolor ##1{% + \def\tabu@leavevmodecolor {\leavevmode ##1}% + }\expandafter\tabu@leavevmodecolor\expandafter{\color}% + \else + \let\tabu@color \tabu@nocolor + \let\tabu@leavevmodecolor \@firstofone \fi + \tabu@latextwoe + \ifdefined\@raggedtwoe@everyselectfont % + \tabu@raggedtwoe + \else + \let\tabu@cell@L \tabu@cell@l + \let\tabu@cell@R \tabu@cell@r + \let\tabu@cell@C \tabu@cell@c + \let\tabu@cell@J \tabu@cell@j \fi + \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% + \ifin@ \let\tabu@endarray \endarray + \else \tabu@fix@arrayright \fi% + \everyrow{}% +}% \tabu@AtBeginDocument +\def\tabu@warn@cellspace{% + \PackageWarning{tabu}{% + Package cellspace has some limitations + \MessageBreak And redefines some macros of array.sty. + \MessageBreak Please use \string\tabulinesep\space to control + \MessageBreak vertical spacing of lines inside tabu environment}% +}% \tabu@warn@cellspace +%% tabu Package initialisation +\tabuscantokensfalse +\let\tabu@arc@G \relax +\let\tabu@drsc@G \relax +\let\tabu@evr@G \@empty +\let\tabu@rc@G \@empty +\def\tabu@ls@G {\tabu@linestyle@}% +\let\tabu@@rowfontreset \@empty % +\let\tabu@@celllalign \@empty +\let\tabu@@cellralign \@empty +\let\tabu@@cellleft \@empty +\let\tabu@@cellright \@empty +\def\tabu@naturalXmin {\z@} +\def\tabu@naturalXmax {\z@} +\let\tabu@rowfontreset \@empty +\def\tabulineon {4pt}\let\tabulineoff \tabulineon +\tabu@everyrowtrue +\ifdefined\pdfelapsedtime % + \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% +\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax +\fi +\tracingtabu=\z@ +\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ +\tabulinestyle{} +\taburowcolors{} +\let\tabudefaulttarget \linewidth +\ProcessOptions* % \ProcessOptions* is quicker ! +\endinput +%% +%% End of file `tabu.sty'. diff --git a/missfont.log b/missfont.log new file mode 100644 index 0000000..1c4050b --- /dev/null +++ b/missfont.log @@ -0,0 +1,56 @@ +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos/BI +mktextfm tinos +mktextfm tinos/B +mktextfm tinos +mktextfm tinos/I +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos/BI +mktextfm tinos +mktextfm tinos/B +mktextfm tinos +mktextfm tinos/I +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm tinos +mktextfm arrimo +mktextfm arrimo +mktextfm arrimo +mktextfm arrimo/BI +mktextfm arrimo +mktextfm arrimo/B +mktextfm arrimo +mktextfm arrimo/I +mktextfm arrimo +mktextfm arrimo +mktextfm arrimo +mktextfm arrimo +mktextfm arrimo +mktextfm arrimo +mktextfm arimo +mktextfm arimo +mktextfm arimo +mktextfm arimo/BI +mktextfm arimo +mktextfm arimo/B +mktextfm arimo +mktextfm arimo/I +mktextfm arimo +mktextfm arimo +mktextfm arimo +mktextfm arimo +mktextfm arimo +mktextfm arimo diff --git a/src2pdf b/src2pdf index aa4f42c..e6ef73a 100755 --- a/src2pdf +++ b/src2pdf @@ -4,6 +4,8 @@ tex_file=$(mktemp) ## Random temp file name cat<$tex_file ## Print the tex file header \documentclass{book} +\usepackage{fontspec} +\setmainfont{Bitstream Vera Sans} \usepackage{listings} \usepackage[usenames,dvipsnames]{color} %% Allow color names \lstdefinestyle{customasm}{ @@ -25,14 +27,12 @@ cat<$tex_file ## Print the tex file header EOF while read i; do ## Loop through each file - name=${i//_/\\_} ## escape underscores + name=${i/\\_} ## escape underscores echo "\newpage" >> $tex_file ## start each section on a new page echo "\section{$name}" >> $tex_file ## Create a section for each filename - - ## This command will include the file in the PDF - echo "\lstinputlisting[style=customasm]{$i}" >>$tex_file - done > $tex_file && - pdflatex $tex_file -output-directory . && - pdflatex $tex_file -output-directory . ## This needs to be run twice - ## for the TOC to be generated \ No newline at end of file + echo "\lstinputlisting[style=customasm]{$i}" >>$tex_file +done > $tex_file && + xelatex $tex_file -output-directory . && + xelatex $tex_file -output-directory . ## This needs to be run twice + ## for the TOC to be generated \ No newline at end of file diff --git a/tests/testcall.jet b/tests/testcall.jet index 3ef97fc..087ce56 100755 --- a/tests/testcall.jet +++ b/tests/testcall.jet @@ -1,11 +1,18 @@ #!../jet-2.0 - + test1=$[test1] name1=$[%name1] error=$[error] - + $[rc] + +From: barant@barant.com +To: brad.arant@gmail.com +Subject: This is a test email. +This is a test email being sent from a jet script with a single +call command. + diff --git a/tests/testfor.jet b/tests/testfor.jet index 2b2e98e..ca0398a 100755 --- a/tests/testfor.jet +++ b/tests/testfor.jet @@ -2,6 +2,6 @@ - -->#[ix]<-- + #[iz]-->#[ix]<-- diff --git a/tests/testmath.jet b/tests/testmath.jet new file mode 100755 index 0000000..f0af3d2 --- /dev/null +++ b/tests/testmath.jet @@ -0,0 +1,23 @@ +#!../jet-2.0 + + +$[value1] + +$[value2] + +$[value3] + +$[value4] + +$[value5] + +$[value6] + +$[value6] + +$[value7] + +$[value8] + +$[value9] + diff --git a/tests/testvar.jet b/tests/testvar.jet index b10195f..fe92dca 100755 --- a/tests/testvar.jet +++ b/tests/testvar.jet @@ -24,4 +24,6 @@ $[test64;tobase64] $[test64;toupper] $[testupperexpr] + +unix time is $[time] diff --git a/tmp.aux b/tmp.aux new file mode 100644 index 0000000..80c79fa --- /dev/null +++ b/tmp.aux @@ -0,0 +1,52 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand*\HyPL@Entry[1]{} +\HyPL@Entry{0<>} +\@writefile{toc}{\contentsline {section}{\numberline {0.1}__call.cpp}{2}{section.0.1}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore call.cpp}{2}{lstlisting.0.-1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.2}__call.h}{4}{section.0.2}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore call.h}{4}{lstlisting.0.-2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.3}__comment.cpp}{5}{section.0.3}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore comment.cpp}{5}{lstlisting.0.-3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.4}__comment.h}{6}{section.0.4}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore comment.h}{6}{lstlisting.0.-4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.5}__dotag.cpp}{7}{section.0.5}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore dotag.cpp}{7}{lstlisting.0.-5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.6}__dotag.h}{8}{section.0.6}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore dotag.h}{8}{lstlisting.0.-6}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.7}__dump.cpp}{9}{section.0.7}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore dump.cpp}{9}{lstlisting.0.-7}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.8}__dump.h}{10}{section.0.8}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore dump.h}{10}{lstlisting.0.-8}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.9}__for.cpp}{11}{section.0.9}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore for.cpp}{11}{lstlisting.0.-9}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.10}__for.cpp}{12}{section.0.10}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore for.cpp}{12}{lstlisting.0.-10}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.11}__for.h}{13}{section.0.11}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore for.h}{13}{lstlisting.0.-11}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.12}Global.cpp}{14}{section.0.12}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{Global.cpp}{14}{lstlisting.0.-12}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.13}Global.h}{17}{section.0.13}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{Global.h}{17}{lstlisting.0.-13}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.14}__header.cpp}{18}{section.0.14}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore header.cpp}{18}{lstlisting.0.-14}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.15}__header.h}{19}{section.0.15}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore header.h}{19}{lstlisting.0.-15}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.16}__if.cpp}{20}{section.0.16}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore if.cpp}{20}{lstlisting.0.-16}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.17}__if.h}{22}{section.0.17}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore if.h}{22}{lstlisting.0.-17}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.18}__ifrow.cpp}{23}{section.0.18}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore ifrow.cpp}{23}{lstlisting.0.-18}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.19}__ifrow.h}{24}{section.0.19}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore ifrow.h}{24}{lstlisting.0.-19}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.20}__include.cpp}{25}{section.0.20}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore include.cpp}{25}{lstlisting.0.-20}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.21}__include.h}{26}{section.0.21}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore include.h}{26}{lstlisting.0.-21}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.22}jet-2.0.cpp}{27}{section.0.22}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{jet\textendash 2.0.cpp}{27}{lstlisting.0.-22}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.23}__jet.cpp}{28}{section.0.23}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore jet.cpp}{28}{lstlisting.0.-23}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {0.24}__jet.h}{29}{section.0.24}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\textunderscore \textunderscore jet.h}{29}{lstlisting.0.-24}\protected@file@percent } diff --git a/tmp.log b/tmp.log new file mode 100644 index 0000000..8ef6891 --- /dev/null +++ b/tmp.log @@ -0,0 +1,2297 @@ +This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023/Debian) (preloaded format=xelatex 2024.11.17) 13 NOV 2025 21:29 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/tmp/tmp.SwNN21el2r -output-directory . +(/tmp/tmp.SwNN21el2r +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-01-22> +(/usr/share/texlive/texmf-dist/tex/latex/base/book.cls +Document Class: book 2023/05/17 v1.4n Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo +File: bk10.clo 2023/05/17 v1.4n Standard LaTeX file (size option) +) +\c@part=\count183 +\c@chapter=\count184 +\c@section=\count185 +\c@subsection=\count186 +\c@subsubsection=\count187 +\c@paragraph=\count188 +\c@subparagraph=\count189 +\c@figure=\count190 +\c@table=\count191 +\abovecaptionskip=\skip48 +\belowcaptionskip=\skip49 +\bibindent=\dimen140 +) +(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty +(/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +Package: expl3 2024-01-22 L3 programming layer (loader) + +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-xetex.def +File: l3backend-xetex.def 2024-01-04 L3 backend support: XeTeX +\g__graphics_track_int=\count192 +\l__pdf_internal_box=\box51 +\g__pdf_backend_object_int=\count193 +\g__pdf_backend_annotation_int=\count194 +\g__pdf_backend_link_int=\count195 +)) +Package: xparse 2023-10-10 L3 Experimental document command parser +) +Package: fontspec 2022/01/15 v2.8a Font selection for XeLaTeX and LuaLaTeX + +(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty +Package: fontspec-xetex 2022/01/15 v2.8a Font selection for XeLaTeX and LuaLaTe +X +\l__fontspec_script_int=\count196 +\l__fontspec_language_int=\count197 +\l__fontspec_strnum_int=\count198 +\l__fontspec_tmp_int=\count199 +\l__fontspec_tmpa_int=\count266 +\l__fontspec_tmpb_int=\count267 +\l__fontspec_tmpc_int=\count268 +\l__fontspec_em_int=\count269 +\l__fontspec_emdef_int=\count270 +\l__fontspec_strong_int=\count271 +\l__fontspec_strongdef_int=\count272 +\l__fontspec_tmpa_dim=\dimen141 +\l__fontspec_tmpb_dim=\dimen142 +\l__fontspec_tmpc_dim=\dimen143 + +(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) +(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg))) + +Package fontspec Info: Font family 'BitstreamVeraSans(0)' created for font +(fontspec) 'Bitstream Vera Sans' with options [Ligatures=TeX]. +(fontspec) +(fontspec) This font family consists of the following NFSS +(fontspec) series/shapes: +(fontspec) +(fontspec) - 'normal' (m/n) with NFSS spec.: <->"Bitstream Vera +(fontspec) Sans/OT:language=dflt;mapping=tex-text;" +(fontspec) - 'small caps' (m/sc) with NFSS spec.: +(fontspec) - 'bold' (b/n) with NFSS spec.: <->"Bitstream Vera +(fontspec) Sans/B/OT:language=dflt;mapping=tex-text;" +(fontspec) - 'bold small caps' (b/sc) with NFSS spec.: +(fontspec) - 'italic' (m/it) with NFSS spec.: <->"Bitstream Vera +(fontspec) Sans/I/OT:language=dflt;mapping=tex-text;" +(fontspec) - 'italic small caps' (m/scit) with NFSS spec.: +(fontspec) - 'bold italic' (b/it) with NFSS spec.: <->"Bitstream +(fontspec) Vera Sans/BI/OT:language=dflt;mapping=tex-text;" +(fontspec) - 'bold italic small caps' (b/scit) with NFSS spec.: + + +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2022/05/29 v1.15 key=value parser (DPC) +\KV@toks@=\toks17 +) +\lst@mode=\count273 +\lst@gtempboxa=\box52 +\lst@token=\toks18 +\lst@length=\count274 +\lst@currlwidth=\dimen144 +\lst@column=\count275 +\lst@pos=\count276 +\lst@lostspace=\dimen145 +\lst@width=\dimen146 +\lst@newlines=\count277 +\lst@lineno=\count278 +\lst@maxwidth=\dimen147 + +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2023/02/27 1.9 (Carsten Heinz) +\c@lstnumber=\count279 +\lst@skipnumbers=\count280 +\lst@framebox=\box53 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2023/02/27 1.9 listings configuration +)) +Package: listings 2023/02/27 1.9 (Carsten Heinz) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty +Package: color 2022/01/06 v1.3d Standard LaTeX Color (DPC) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package color Info: Driver file: xetex.def on input line 149. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/xetex.def +File: xetex.def 2022/09/22 v5.0n Graphics/color driver for xetex +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def +File: dvipsnam.def 2016/06/17 v3.0m Driver-dependent file (DPC,SPQR) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx)) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2024-01-20 v7.01h Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2022/02/03 v1.0f TeX engine tests +) +(/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO +) + +(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode not found. +)) +(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2023-11-26 v2.56 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) + +(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) +)) +\c@section@level=\count281 +) +(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count282 +) +\@linkdim=\dimen148 +\Hy@linkcounter=\count283 +\Hy@pagecounter=\count284 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2024-01-20 v7.01h Hyperref: PDFDocEncoding definition (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) +\Hy@SavedSpaceFactor=\count285 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2024-01-20 v7.01h Hyperref: PDF Unicode definition (HO) +) +Package hyperref Info: Option `colorlinks' set `true' on input line 4062. +Package hyperref Info: Hyper figures OFF on input line 4179. +Package hyperref Info: Link nesting OFF on input line 4184. +Package hyperref Info: Hyper index ON on input line 4187. +Package hyperref Info: Plain pages OFF on input line 4194. +Package hyperref Info: Backreferencing OFF on input line 4199. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4446. +\c@Hy@tempcnt=\count286 + +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip16 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4784. +\XeTeXLinkMargin=\dimen149 + +(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count287 +\Field@Width=\dimen150 +\Fld@charsize=\dimen151 +Package hyperref Info: Hyper figures OFF on input line 6063. +Package hyperref Info: Link nesting OFF on input line 6068. +Package hyperref Info: Hyper index ON on input line 6071. +Package hyperref Info: backreferencing OFF on input line 6078. +Package hyperref Info: Link coloring ON on input line 6081. +Package hyperref Info: Link coloring with OCG OFF on input line 6088. +Package hyperref Info: PDF/A mode OFF on input line 6093. + +(/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +\Hy@abspage=\count288 +\c@Item=\count289 +\c@Hfootnote=\count290 +) +Package hyperref Info: Driver (autodetected): hxetex. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hxetex.def +File: hxetex.def 2024-01-20 v7.01h Hyperref driver for XeTeX + +(/usr/share/texlive/texmf-dist/tex/generic/stringenc/stringenc.sty +Package: stringenc 2019/11/29 v1.12 Convert strings between diff. encodings (HO +) +) +\pdfm@box=\box54 +\c@Hy@AnnotLevel=\count291 +\HyField@AnnotCount=\count292 +\Fld@listcount=\count293 +\c@bookmark@seq@number=\count294 + +(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) + +(/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac +kage +with kernel methods +) +(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +85. +) +\Hy@SectionHShift=\skip50 +) +(./tmp.aux) +\openout1 = `tmp.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 19. +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 19. +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 19. +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 19. +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 19. +LaTeX Font Info: Trying to load font information for TS1+cmr on input line 1 +9. + (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 2023/04/13 v2.5m Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 19. +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 19. +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 19. +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 19. +LaTeX Font Info: ... okay on input line 19. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 19. +LaTeX Font Info: ... okay on input line 19. + +Package fontspec Info: Adjusting the maths setup (use [no-math] to avoid +(fontspec) this). + +\symlegacymaths=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `legacymaths' in version `bold' +(Font) OT1/cmr/m/n --> OT1/cmr/bx/n on input line 19. +LaTeX Font Info: Redeclaring math accent \acute on input line 19. +LaTeX Font Info: Redeclaring math accent \grave on input line 19. +LaTeX Font Info: Redeclaring math accent \ddot on input line 19. +LaTeX Font Info: Redeclaring math accent \tilde on input line 19. +LaTeX Font Info: Redeclaring math accent \bar on input line 19. +LaTeX Font Info: Redeclaring math accent \breve on input line 19. +LaTeX Font Info: Redeclaring math accent \check on input line 19. +LaTeX Font Info: Redeclaring math accent \hat on input line 19. +LaTeX Font Info: Redeclaring math accent \dot on input line 19. +LaTeX Font Info: Redeclaring math accent \mathring on input line 19. +LaTeX Font Info: Redeclaring math symbol \colon on input line 19. +LaTeX Font Info: Redeclaring math symbol \Gamma on input line 19. +LaTeX Font Info: Redeclaring math symbol \Delta on input line 19. +LaTeX Font Info: Redeclaring math symbol \Theta on input line 19. +LaTeX Font Info: Redeclaring math symbol \Lambda on input line 19. +LaTeX Font Info: Redeclaring math symbol \Xi on input line 19. +LaTeX Font Info: Redeclaring math symbol \Pi on input line 19. +LaTeX Font Info: Redeclaring math symbol \Sigma on input line 19. +LaTeX Font Info: Redeclaring math symbol \Upsilon on input line 19. +LaTeX Font Info: Redeclaring math symbol \Phi on input line 19. +LaTeX Font Info: Redeclaring math symbol \Psi on input line 19. +LaTeX Font Info: Redeclaring math symbol \Omega on input line 19. +LaTeX Font Info: Redeclaring math symbol \mathdollar on input line 19. +LaTeX Font Info: Redeclaring symbol font `operators' on input line 19. +LaTeX Font Info: Encoding `OT1' has changed to `TU' for symbol font +(Font) `operators' in the math version `normal' on input line 19. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> TU/BitstreamVeraSans(0)/m/n on input li +ne 19. +LaTeX Font Info: Encoding `OT1' has changed to `TU' for symbol font +(Font) `operators' in the math version `bold' on input line 19. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> TU/BitstreamVeraSans(0)/m/n on input l +ine 19. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) TU/BitstreamVeraSans(0)/m/n --> TU/BitstreamVeraSans(0) +/m/n on input line 19. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> TU/BitstreamVeraSans(0)/m/it on input +line 19. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> TU/BitstreamVeraSans(0)/b/n on input l +ine 19. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> TU/lmss/m/n on input line 19. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> TU/lmtt/m/n on input line 19. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) TU/BitstreamVeraSans(0)/m/n --> TU/BitstreamVeraSans(0) +/b/n on input line 19. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> TU/BitstreamVeraSans(0)/b/it on input + line 19. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> TU/lmss/b/n on input line 19. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> TU/lmtt/b/n on input line 19. +\c@lstlisting=\count295 +Package hyperref Info: Link coloring ON on input line 19. + (./tmp.out) (./tmp.out) +\@outlinefile=\write3 +\openout3 = `tmp.out'. + + (./tmp.toc) +\tf@toc=\write4 +\openout4 = `tmp.toc'. + + [1 + + +] +! Missing $ inserted. + + $ +l.23 \section{__call.cpp} + +? q +OK, entering \batchmode... +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <14.4> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 23. +! Missing { inserted. + + _ +l.23 \section{__call.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.23 \section{__call.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.23 \section{__call.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 23. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 23. + + +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2023/02/27 1.9 listings language file +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2023/02/27 1.9 listings language file +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2023/02/27 1.9 (Carsten Heinz) +) +Package hyperref Info: bookmark level for unknown lstlisting defaults to 0 on i +nput line 24. + (./__call.cpp +LaTeX Font Info: Font shape `TU/lmtt/bx/n' in size <8> not available +(Font) Font shape `TU/lmtt/b/n' tried instead on input line 2. +LaTeX Font Info: Font shape `TU/BitstreamVeraSans(0)/m/sl' in size <10> not +available +(Font) Font shape `TU/BitstreamVeraSans(0)/m/it' tried instead on +input line 53. + [2]) +! Missing $ inserted. + + $ +l.25 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 25. +! Missing { inserted. + + _ +l.25 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.25 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.25 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.25 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.25 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.25 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.25 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [3] +! Missing $ inserted. + + $ +l.26 \section{__call.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.26 \section{__call.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.26 \section{__call.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.26 \section{__call.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 26. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 26. + + (./__call.h) [4] +! Missing $ inserted. + + $ +l.29 \section{__comment.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.29 \section{__comment.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.29 \section{__comment.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.29 \section{__comment.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 29. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 29. + + (./__comment.cpp) +! Missing $ inserted. + + $ +l.31 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.31 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.31 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.31 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.31 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.31 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.31 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.31 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [5] +! Missing $ inserted. + + $ +l.32 \section{__comment.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.32 \section{__comment.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.32 \section{__comment.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.32 \section{__comment.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 32. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 32. + + (./__comment.h) [6] +! Missing $ inserted. + + $ +l.35 \section{__dotag.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.35 \section{__dotag.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.35 \section{__dotag.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.35 \section{__dotag.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 35. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 35. + + (./__dotag.cpp) +! Missing $ inserted. + + $ +l.37 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.37 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.37 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.37 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.37 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.37 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.37 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.37 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [7] +! Missing $ inserted. + + $ +l.38 \section{__dotag.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.38 \section{__dotag.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.38 \section{__dotag.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.38 \section{__dotag.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 38. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 38. + + (./__dotag.h) [8] +! Missing $ inserted. + + $ +l.41 \section{__dump.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.41 \section{__dump.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.41 \section{__dump.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.41 \section{__dump.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 41. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 41. + + (./__dump.cpp) +! Missing $ inserted. + + $ +l.43 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.43 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.43 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.43 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.43 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.43 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.43 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.43 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [9] +! Missing $ inserted. + + $ +l.44 \section{__dump.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.44 \section{__dump.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.44 \section{__dump.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.44 \section{__dump.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 44. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 44. + + (./__dump.h) [10] +! Missing $ inserted. + + $ +l.47 \section{__for.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.47 \section{__for.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.47 \section{__for.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.47 \section{__for.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 47. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 47. + + (./__for.cpp) +! Missing $ inserted. + + $ +l.49 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.49 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.49 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.49 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.49 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.49 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.49 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.49 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [11] +! Missing $ inserted. + + $ +l.50 \section{__for.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.50 \section{__for.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.50 \section{__for.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.50 \section{__for.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 50. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 50. + + (./__for.cpp) [12] +! Missing $ inserted. + + $ +l.53 \section{__for.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.53 \section{__for.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.53 \section{__for.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.53 \section{__for.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 53. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 53. + + (./__for.h) +! Missing $ inserted. + + $ +l.55 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.55 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.55 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.55 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.55 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.55 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.55 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.55 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [13] (./Global.cpp [14] +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [15]) [16] (./Global.h) [17] +! Missing $ inserted. + + $ +l.62 \section{__header.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.62 \section{__header.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.62 \section{__header.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.62 \section{__header.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 62. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 62. + + (./__header.cpp) [18] +! Missing $ inserted. + + $ +l.65 \section{__header.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.65 \section{__header.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.65 \section{__header.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.65 \section{__header.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 65. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 65. + + (./__header.h) +! Missing $ inserted. + + $ +l.67 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.67 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.67 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.67 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.67 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.67 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.67 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.67 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [19] +! Missing $ inserted. + + $ +l.68 \section{__if.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.68 \section{__if.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.68 \section{__if.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.68 \section{__if.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 68. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 68. + + (./__if.cpp [20]) +! Missing $ inserted. + + $ +l.70 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.70 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.70 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.70 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.70 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.70 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.70 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.70 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [21] +! Missing $ inserted. + + $ +l.71 \section{__if.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.71 \section{__if.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.71 \section{__if.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.71 \section{__if.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 71. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 71. + + (./__if.h) [22] +! Missing $ inserted. + + $ +l.74 \section{__ifrow.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.74 \section{__ifrow.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.74 \section{__ifrow.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.74 \section{__ifrow.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 74. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 74. + + (./__ifrow.cpp) +! Missing $ inserted. + + $ +l.76 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.76 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.76 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.76 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.76 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.76 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.76 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.76 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [23] +! Missing $ inserted. + + $ +l.77 \section{__ifrow.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.77 \section{__ifrow.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.77 \section{__ifrow.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.77 \section{__ifrow.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 77. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 77. + + (./__ifrow.h) [24] +! Missing $ inserted. + + $ +l.80 \section{__include.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.80 \section{__include.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.80 \section{__include.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.80 \section{__include.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 80. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 80. + + (./__include.cpp) +! Missing $ inserted. + + $ +l.82 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.82 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.82 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.82 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.82 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.82 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.82 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.82 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [25] +! Missing $ inserted. + + $ +l.83 \section{__include.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.83 \section{__include.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.83 \section{__include.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.83 \section{__include.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 83. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 83. + + (./__include.h) [26] (./jet-2.0.cpp) [27] +! Missing $ inserted. + + $ +l.89 \section{__jet.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.89 \section{__jet.cpp} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.89 \section{__jet.cpp} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.89 \section{__jet.cpp} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 89. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 89. + + (./__jet.cpp) [28] +! Missing $ inserted. + + $ +l.92 \section{__jet.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.92 \section{__jet.h} + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing $ inserted. + + $ +l.92 \section{__jet.h} + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.92 \section{__jet.h} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 92. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `subscript' on input line 92. + + (./__jet.h) +! Missing $ inserted. + + $ +l.94 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.94 \newpage + +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Extra }, or forgotten $. +\@thehead ->{\slshape \rightmark } + \hfil \thepage +l.94 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +\@outputpage ...or \hb@xt@ \textwidth {\@thehead } + \color@endbox }\dp \@tempb... +l.94 \newpage + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.94 \newpage + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.94 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.94 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing } inserted. + + } +l.94 \newpage + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + [29] + +! Package Listings Error: File `KeywordValue(.cpp)' not found. + +Type X to quit or to proceed, +or enter new name. (Default extension: cpp) + + Enter file name: +! Emergency stop. + + +l.96 ...listing[style=customasm]{KeywordValue.cpp} + ^^M +*** (cannot \read from terminal in nonstop modes) + + +Here is how much of TeX's memory you used: + 12377 strings out of 474878 + 241013 string characters out of 5762515 + 2223627 words of memory out of 5000000 + 34237 multiletter control sequences out of 15000+600000 + 559702 words of font info for 65 fonts, out of 8000000 for 9000 + 1348 hyphenation exceptions out of 8191 + 79i,7n,93p,455b,1969s stack positions out of 10000i,1000n,20000p,200000b,200000s +Output written on tmp.pdf (29 pages). diff --git a/tmp.out b/tmp.out new file mode 100644 index 0000000..9dc0361 --- /dev/null +++ b/tmp.out @@ -0,0 +1,24 @@ +\BOOKMARK [1][-]{section.0.1}{\376\377\000c\000a\000l\000l\000.\000c\000p\000p}{}% 1 +\BOOKMARK [1][-]{section.0.2}{\376\377\000c\000a\000l\000l\000.\000h}{}% 2 +\BOOKMARK [1][-]{section.0.3}{\376\377\000c\000o\000m\000m\000e\000n\000t\000.\000c\000p\000p}{}% 3 +\BOOKMARK [1][-]{section.0.4}{\376\377\000c\000o\000m\000m\000e\000n\000t\000.\000h}{}% 4 +\BOOKMARK [1][-]{section.0.5}{\376\377\000d\000o\000t\000a\000g\000.\000c\000p\000p}{}% 5 +\BOOKMARK [1][-]{section.0.6}{\376\377\000d\000o\000t\000a\000g\000.\000h}{}% 6 +\BOOKMARK [1][-]{section.0.7}{\376\377\000d\000u\000m\000p\000.\000c\000p\000p}{}% 7 +\BOOKMARK [1][-]{section.0.8}{\376\377\000d\000u\000m\000p\000.\000h}{}% 8 +\BOOKMARK [1][-]{section.0.9}{\376\377\000f\000o\000r\000.\000c\000p\000p}{}% 9 +\BOOKMARK [1][-]{section.0.10}{\376\377\000f\000o\000r\000.\000c\000p\000p}{}% 10 +\BOOKMARK [1][-]{section.0.11}{\376\377\000f\000o\000r\000.\000h}{}% 11 +\BOOKMARK [1][-]{section.0.12}{\376\377\000G\000l\000o\000b\000a\000l\000.\000c\000p\000p}{}% 12 +\BOOKMARK [1][-]{section.0.13}{\376\377\000G\000l\000o\000b\000a\000l\000.\000h}{}% 13 +\BOOKMARK [1][-]{section.0.14}{\376\377\000h\000e\000a\000d\000e\000r\000.\000c\000p\000p}{}% 14 +\BOOKMARK [1][-]{section.0.15}{\376\377\000h\000e\000a\000d\000e\000r\000.\000h}{}% 15 +\BOOKMARK [1][-]{section.0.16}{\376\377\000i\000f\000.\000c\000p\000p}{}% 16 +\BOOKMARK [1][-]{section.0.17}{\376\377\000i\000f\000.\000h}{}% 17 +\BOOKMARK [1][-]{section.0.18}{\376\377\000i\000f\000r\000o\000w\000.\000c\000p\000p}{}% 18 +\BOOKMARK [1][-]{section.0.19}{\376\377\000i\000f\000r\000o\000w\000.\000h}{}% 19 +\BOOKMARK [1][-]{section.0.20}{\376\377\000i\000n\000c\000l\000u\000d\000e\000.\000c\000p\000p}{}% 20 +\BOOKMARK [1][-]{section.0.21}{\376\377\000i\000n\000c\000l\000u\000d\000e\000.\000h}{}% 21 +\BOOKMARK [1][-]{section.0.22}{\376\377\000j\000e\000t\000-\0002\000.\0000\000.\000c\000p\000p}{}% 22 +\BOOKMARK [1][-]{section.0.23}{\376\377\000j\000e\000t\000.\000c\000p\000p}{}% 23 +\BOOKMARK [1][-]{section.0.24}{\376\377\000j\000e\000t\000.\000h}{}% 24 diff --git a/tmp.pdf b/tmp.pdf new file mode 100644 index 0000000..b87fcad Binary files /dev/null and b/tmp.pdf differ diff --git a/tmp.toc b/tmp.toc new file mode 100644 index 0000000..e69de29