got rid of main

This commit is contained in:
Jean-Francois Dockes 2016-07-11 18:21:32 +02:00
parent b9e672abda
commit 7c4223088b

View File

@ -14,8 +14,6 @@
* Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef TEST_SMALLUT
#ifdef BUILDING_RECOLL
#include "autoconfig.h"
#else
@ -1332,242 +1330,3 @@ void smallut_init_mt()
// Init langtocode() static table
langtocode("");
}
#else // TEST_SMALLUT
#include <string>
using namespace std;
#include <iostream>
#include "smallut.h"
struct spair {
const char *s1;
const char *s2;
};
struct spair pairs[] = {
{"", ""},
{"", "a"},
{"a", ""},
{"a", "a"},
{"A", "a"},
{"a", "A"},
{"A", "A"},
{"12", "12"},
{"a", "ab"},
{"ab", "a"},
{"A", "Ab"},
{"a", "Ab"},
};
int npairs = sizeof(pairs) / sizeof(struct spair);
struct spair suffpairs[] = {
{"", ""},
{"", "a"},
{"a", ""},
{"a", "a"},
{"toto.txt", ".txt"},
{"TXT", "toto.txt"},
{"toto.txt", ".txt1"},
{"toto.txt1", ".txt"},
};
int nsuffpairs = sizeof(suffpairs) / sizeof(struct spair);
// Periods test strings
const char* periods[] = {
"2001", // Year 2001
"2001/", // 2001 or later
"2001/P3Y", // 2001 -> 2004 or 2005, ambiguous
"2001-01-01/P3Y", // 01-2001 -> 01 2004
"2001-03-03/2001-05-01", // Explicit one
"P3M/", // 3 months ago to now
"P1Y1M/2001-03-01", // 2000-02-01/2001-03-01
"/2001", // From the epoch to the end of 2001
};
const int nperiods = sizeof(periods) / sizeof(char*);
const char *thisprog;
static void cerrdip(const string& s, DateInterval *dip)
{
cerr << s << dip->y1 << "-" << dip->m1 << "-" << dip->d1 << "/"
<< dip->y2 << "-" << dip->m2 << "-" << dip->d2
<< endl;
}
int main(int argc, char **argv)
{
thisprog = *argv++;
argc--;
#if 0
if (argc <= 0) {
cerr << "Usage: smallut <stringtosplit>" << endl;
exit(1);
}
string s = *argv++;
argc--;
vector<string> vs;
stringToTokens(s, vs, "/");
for (vector<string>::const_iterator it = vs.begin(); it != vs.end(); it++) {
cerr << "[" << *it << "] ";
}
cerr << endl;
exit(0);
#elif 0
if (argc <= 0) {
cerr << "Usage: smallut <stringtosplit>" << endl;
exit(1);
}
string s = *argv++;
argc--;
vector<string> vs;
if (!stringToStrings(s, vs, ":-()")) {
cerr << "Bad entry" << endl;
exit(1);
}
for (vector<string>::const_iterator it = vs.begin(); it != vs.end(); it++) {
cerr << "[" << *it << "] ";
}
cerr << endl;
exit(0);
#elif 0
if (argc <= 0) {
cerr << "Usage: smallut <dateinterval>" << endl;
exit(1);
}
string s = *argv++;
argc--;
DateInterval di;
if (!parsedateinterval(s, &di)) {
cerr << "Parse failed" << endl;
exit(1);
}
cerrdip("", &di);
exit(0);
#elif 0
DateInterval di;
for (int i = 0; i < nperiods; i++) {
if (!parsedateinterval(periods[i], &di)) {
cerr << "Parsing failed for [" << periods[i] << "]" << endl;
} else {
cerrdip(string(periods[i]).append(" : "), &di);
}
}
exit(0);
#elif 0
for (int i = 0; i < npairs; i++) {
{
int c = stringicmp(pairs[i].s1, pairs[i].s2);
printf("'%s' %s '%s' ", pairs[i].s1,
c == 0 ? "==" : c < 0 ? "<" : ">", pairs[i].s2);
}
{
int cl = stringlowercmp(pairs[i].s1, pairs[i].s2);
printf("L '%s' %s '%s' ", pairs[i].s1,
cl == 0 ? "==" : cl < 0 ? "<" : ">", pairs[i].s2);
}
{
int cu = stringuppercmp(pairs[i].s1, pairs[i].s2);
printf("U '%s' %s '%s' ", pairs[i].s1,
cu == 0 ? "==" : cu < 0 ? "<" : ">", pairs[i].s2);
}
printf("\n");
}
#elif 0
for (int i = 0; i < nsuffpairs; i++) {
int c = stringisuffcmp(suffpairs[i].s1, suffpairs[i].s2);
printf("[%s] %s [%s] \n", suffpairs[i].s1,
c == 0 ? "matches" : c < 0 ? "<" : ">", suffpairs[i].s2);
}
#elif 0
std::string testit("\303\251l\303\251gant");
for (int sz = 10; sz >= 0; sz--) {
utf8truncate(testit, sz);
cout << testit << endl;
}
#elif 0
std::string testit("ligne\ndeuxieme ligne\r3eme ligne\r\n");
cout << "[" << neutchars(testit, "\r\n") << "]" << endl;
string i, o;
cout << "neutchars(null) is [" << neutchars(i, "\r\n") << "]" << endl;
#elif 0
map<string, string> substs;
substs["a"] = "A_SUBST";
substs["title"] = "TITLE_SUBST";
string in = "a: %a title: %(title) pcpc: %% %";
string out;
pcSubst(in, out, substs);
cout << in << " => " << out << endl;
in = "unfinished: %(unfinished";
pcSubst(in, out, substs);
cout << in << " => " << out << endl;
in = "unfinished: %(";
pcSubst(in, out, substs);
cout << in << " => " << out << endl;
in = "empty: %()";
pcSubst(in, out, substs);
cout << in << " => " << out << endl;
substs.clear();
in = "a: %a title: %(title) pcpc: %% %";
pcSubst(in, out, substs);
cout << "After map clear: " << in << " => " << out << endl;
#elif 0
list<string> tokens;
tokens.push_back("");
tokens.push_back("a,b");
tokens.push_back("simple value");
tokens.push_back("with \"quotes\"");
string out;
stringsToCSV(tokens, out);
cout << "CSV line: [" << out << "]" << endl;
#elif 0
string sshort("ABC");
string slong("ABCD");
string sshortsmaller("ABB");
vector<pair<string, string> > cmps;
cmps.push_back(pair<string, string>(sshort, sshort));
cmps.push_back(pair<string, string>(sshort, slong));
cmps.push_back(pair<string, string>(slong, sshort));
cmps.push_back(pair<string, string>(sshortsmaller, sshort));
cmps.push_back(pair<string, string>(sshort, sshortsmaller));
for (vector<pair<string, string> >::const_iterator it = cmps.begin();
it != cmps.end(); it++) {
cout << it->first << " " << it->second << " " <<
stringicmp(it->first, it->second) << endl;
}
cout << endl;
for (vector<pair<string, string> >::const_iterator it = cmps.begin();
it != cmps.end(); it++) {
cout << it->first << " " << it->second << " " <<
stringlowercmp(stringtolower(it->first), it->second) << endl;
}
cout << endl;
for (vector<pair<string, string> >::const_iterator it = cmps.begin();
it != cmps.end(); it++) {
cout << it->first << " " << it->second << " " <<
stringuppercmp(it->first, it->second) << endl;
}
#elif 0
SimpleRegexp exp("[ \t]*#[ \t]*([a-zA-Z0-9]+)[ \t]*=.*", 0, 1);
//SimpleRegexp exp(" # ([a-zA-Z0-9]+) =.*", 0, 10);
//SimpleRegexp exp(" # (varnm) = sdf sdf sdf ", 0, 10);
//SimpleRegexp exp(".*", 0);
string tomatch(" # varnm = sdf sdf sdf ");
if (exp.simpleMatch(tomatch)) {
cout << "Match !\n";
cout << "Submatch[0]: [" << exp.getMatch(tomatch, 0) << "]\n";
cout << "Submatch[1]: [" << exp.getMatch(tomatch, 1) << "]\n";
return 0;
} else {
cerr << "No match\n";
return 1;
}
#elif 1
cout << makeCString("\"hello\" world\n2nd line") << endl;
#endif
}
#endif