rendered paste bodyIndex: mythtv/libs/libmythtv/progfind.cpp
===================================================================
--- mythtv/libs/libmythtv/progfind.cpp (revision 12723)
+++ mythtv/libs/libmythtv/progfind.cpp (working copy)
@@ -1274,35 +1274,54 @@
MSqlBindings &bindings)
{
QDateTime progStart = QDateTime::currentDateTime();
+ QString lang = gContext->getSetting("Language");
if (searchData[charNum].contains('@'))
{
+ if (lang == "EN_GB")
+ {
+ QString localerules = " AND title NOT REGEXP '^The [A-Z0-9]' AND "
+ "title NOT REGEXP '^A [A-Z0-9]' AND "
+ "title NOT REGEXP '^An [A-Z0-9]'";
+ }
+
where = "SELECT DISTINCT title FROM program WHERE ( "
- "title NOT REGEXP '^[A-Z0-9]' AND "
- "title NOT REGEXP '^The [A-Z0-9]' AND "
- "title NOT REGEXP '^A [A-Z0-9]' AND "
- "title NOT REGEXP '^An [A-Z0-9]' AND "
- "starttime > :STARTTIME ) ORDER BY title;";
+ "title NOT REGEXP '^[A-Z0-9]'"
+ + localerules +
+ " AND starttime > :STARTTIME ) ORDER BY title;";
bindings[":STARTTIME"] = progStart.toString("yyyy-MM-ddThh:mm:50");
}
else
{
- QString one = searchData[charNum] + "%";
- QString two = QString("The ") + one;
- QString three = QString("A ") + one;
- QString four = QString("An ") + one;
- where = "SELECT DISTINCT title "
- "FROM program "
- "WHERE ( title LIKE :ONE OR title LIKE :TWO "
- " OR title LIKE :THREE "
- " OR title LIKE :FOUR ) "
- "AND starttime > :STARTTIME "
- "ORDER BY title;";
- bindings[":ONE"] = one.utf8();
- bindings[":TWO"] = two.utf8();
- bindings[":THREE"] = three.utf8();
- bindings[":FOUR"] = four.utf8();
- bindings[":STARTTIME"] = progStart.toString("yyyy-MM-ddThh:mm:50");
+ if (lang == "EN_GB")
+ {
+ QString one = searchData[charNum] + "%";
+ QString two = QString("The ") + one;
+ QString three = QString("A ") + one;
+ QString four = QString("An ") + one;
+ where = "SELECT DISTINCT title "
+ "FROM program "
+ "WHERE ( title LIKE :ONE OR title LIKE :TWO "
+ " OR title LIKE :THREE "
+ " OR title LIKE :FOUR ) "
+ "AND starttime > :STARTTIME "
+ "ORDER BY title;";
+ bindings[":ONE"] = one.utf8();
+ bindings[":TWO"] = two.utf8();
+ bindings[":THREE"] = three.utf8();
+ bindings[":FOUR"] = four.utf8();
+ bindings[":STARTTIME"] = progStart.toString("yyyy-MM-ddThh:mm:50");
+ }
+ else {
+ QString one = searchData[charNum] + "%";
+ where = "SELECT DISTINCT title "
+ "FROM program "
+ "WHERE title LIKE :ONE "
+ "AND starttime > :STARTTIME "
+ "ORDER BY title;";
+ bindings[":ONE"] = one.utf8();
+ bindings[":STARTTIME"] = progStart.toString("yyyy-MM-ddThh:mm:50");
+ }
}
}
@@ -1310,37 +1329,41 @@
{
bool retval = true;
- if (searchData[curSearch] == "T" || searchData[curSearch] == "A")
+ QString lang = gContext->getSetting("Language");
+ if (lang == "EN_GB")
{
- if (data.left(5) == "The T" && searchData[curSearch] == "T")
- data = data.mid(4) + ", The";
- else if (data.left(5) == "The A" && searchData[curSearch] == "A")
- data = data.mid(4) + ", The";
- else if (data.left(3) == "A T" && searchData[curSearch] == "T")
- data = data.mid(2) + ", A";
- else if (data.left(3) == "A A" && searchData[curSearch] == "A")
- data = data.mid(2) + ", A";
- else if (data.left(4) == "An A" && searchData[curSearch] == "A")
- data = data.mid(3) + ", An";
- else if (data.left(4) != "The " && data.left(2) != "A ")
+ if (searchData[curSearch] == "T" || searchData[curSearch] == "A")
{
- // nothing, use as is
+ if (data.left(5) == "The T" && searchData[curSearch] == "T")
+ data = data.mid(4) + ", The";
+ else if (data.left(5) == "The A" && searchData[curSearch] == "A")
+ data = data.mid(4) + ", The";
+ else if (data.left(3) == "A T" && searchData[curSearch] == "T")
+ data = data.mid(2) + ", A";
+ else if (data.left(3) == "A A" && searchData[curSearch] == "A")
+ data = data.mid(2) + ", A";
+ else if (data.left(4) == "An A" && searchData[curSearch] == "A")
+ data = data.mid(3) + ", An";
+ else if (data.left(4) != "The " && data.left(2) != "A ")
+ {
+ // nothing, use as is
+ }
+ else
+ {
+ // don't add
+ retval = false;
+ }
}
else
{
- // don't add
- retval = false;
+ if (data.left(4) == "The ")
+ data = data.mid(4) + ", The";
+ if (data.left(2) == "A ")
+ data = data.mid(2) + ", A";
+ if (data.left(3) == "An ")
+ data = data.mid(3) + ", An";
}
}
- else
- {
- if (data.left(4) == "The ")
- data = data.mid(4) + ", The";
- if (data.left(2) == "A ")
- data = data.mid(2) + ", A";
- if (data.left(3) == "An ")
- data = data.mid(3) + ", An";
- }
return retval;
}
@@ -1349,37 +1372,41 @@
{
bool retval = true;
- if (charNum == 29 || charNum == 10)
+ QString lang = gContext->getSetting("Language");
+ if (lang == "EN_GB")
{
- if (data.left(5) == "The T" && charNum == 29)
- data = data.mid(4) + ", The";
- else if (data.left(5) == "The A" && charNum == 10)
- data = data.mid(4) + ", The";
- else if (data.left(3) == "A T" && charNum == 29)
- data = data.mid(2) + ", A";
- else if (data.left(3) == "A A" && charNum == 10)
- data = data.mid(2) + ", A";
- else if (data.left(4) == "An A" && charNum == 10)
- data = data.mid(3) + ", An";
- else if (data.left(4) != "The " && data.left(2) != "A ")
+ if (charNum == 29 || charNum == 10)
{
- // use as is
+ if (data.left(5) == "The T" && charNum == 29)
+ data = data.mid(4) + ", The";
+ else if (data.left(5) == "The A" && charNum == 10)
+ data = data.mid(4) + ", The";
+ else if (data.left(3) == "A T" && charNum == 29)
+ data = data.mid(2) + ", A";
+ else if (data.left(3) == "A A" && charNum == 10)
+ data = data.mid(2) + ", A";
+ else if (data.left(4) == "An A" && charNum == 10)
+ data = data.mid(3) + ", An";
+ else if (data.left(4) != "The " && data.left(2) != "A ")
+ {
+ // use as is
+ }
+ else
+ {
+ // don't add
+ retval = false;
+ }
}
else
{
- // don't add
- retval = false;
+ if (data.left(4) == "The ")
+ data = data.mid(4) + ", The";
+ if (data.left(2) == "A ")
+ data = data.mid(2) + ", A";
+ if (data.left(3) == "An ")
+ data = data.mid(3) + ", An";
}
}
- else
- {
- if (data.left(4) == "The ")
- data = data.mid(4) + ", The";
- if (data.left(2) == "A ")
- data = data.mid(2) + ", A";
- if (data.left(3) == "An ")
- data = data.mid(3) + ", An";
- }
return retval;
}