Index: 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; }