Fix casing (again)

This commit is contained in:
skizzerz 2016-07-28 11:36:36 -05:00
parent 965e0481ec
commit f3eef86db5

View File

@ -884,8 +884,31 @@ def _conn():
with _ts.conn:
c = _ts.conn.cursor()
c.execute("PRAGMA foreign_keys = ON")
# remap NOCASE to be IRC casing
_ts.conn.create_collation("NOCASE", _collate_irc)
return _ts.conn
def _collate_irc(s1, s2):
# treat hostmasks specially, otherwise call irc_lower on stuff
if "@" in s1:
hl, hr = s1.split("@", 1)
s1 = irc_lower(hl) + "@" + hr.lower()
else:
s1 = irc_lower(s1)
if "@" in s2:
hl, hr = s2.split("@", 1)
l2 = irc_lower(hl) + "@" + hr.lower()
else:
s2 = irc_lower(s2)
if s1 == s2:
return 0
elif s1 < s2:
return -1
else:
return 1
need_install = not os.path.isfile("data.sqlite3")
conn = sqlite3.connect("data.sqlite3")
with conn: