from StringIO import StringIO

def execute(hdf, args, env):
    db = env.get_db_cnx()
    cursor = db.cursor()
    
    thispage = None
    
    if args:        
        thispage = args.replace('\'', '\'\'')
        
    sql = 'SELECT DISTINCT name FROM wiki '

    if thispage:
        sql += 'WHERE text LIKE \'%%%s%%\' ' % thispage
   
    cursor.execute(sql)
        
    buf = StringIO()
    #debug
    #buf.write(sql)
    
    buf.write('Pages linking to %s:\n' % thispage)
    buf.write('<ul>')
        
    while 1: 
        row = cursor.fetchone()
        if row == None:
            break
        if row[0] != thispage:
            buf.write('<li><a href="%s">' % env.href.wiki(row[0]))
            buf.write(row[0])
            buf.write('</a></li>\n')
        
    buf.write('</ul>')
        
    return buf.getvalue()
