[SCM] glyr/master: pick commits

emillon-guest at users.alioth.debian.org emillon-guest at users.alioth.debian.org
Fri May 9 08:58:45 UTC 2014


The following commit has been merged in the master branch:
commit 244417d75f6b5af52f03922774c2c3b98f58c699
Author: Etienne Millon <me at emillon.org>
Date:   Fri May 9 10:00:15 2014 +0200

    pick commits

diff --git a/debian/changelog b/debian/changelog
index c439f1e..8cfe562 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 glyr (1.0.6-1) UNRELEASED; urgency=medium
 
   * New upstream release
+    - pick upstream commits to fix build
 
  -- Etienne Millon <me at emillon.org>  Fri, 09 May 2014 09:36:51 +0200
 
diff --git a/debian/patches/series b/debian/patches/series
index 6130e6d..3f4eb4c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 0001-Don-t-strip-binaries.patch
+style.patch
diff --git a/debian/patches/style.patch b/debian/patches/style.patch
new file mode 100644
index 0000000..46d3fa5
--- /dev/null
+++ b/debian/patches/style.patch
@@ -0,0 +1,20831 @@
+From: Etienne Millon <me at emillon.org>
+Subject: Revert "Updated the sourcecode with astyle to reflect my current taste."
+Origin: Upstream
+
+This patch incorporate two upstream commits (f6800dde, 302c35e9) necessary to
+make the project build again.
+---
+diff --git a/lib/blacklist.c b/lib/blacklist.c
+index 19de76c..93a2c18 100644
+--- a/lib/blacklist.c
++++ b/lib/blacklist.c
+@@ -23,41 +23,43 @@
+ 
+ /////////////////////////////////
+ 
+-GHashTable *lookup_table = NULL;
+-gchar *blacklist_array[] = {
++GHashTable * lookup_table = NULL;
++gchar * blacklist_array[] =
++{
+     "http://ecx.images-amazon.com/images/I/11J2DMYABHL.jpg",       /* blank image */
+     "http://cdn.recordshopx.com/cover/normal/5/53/53138.jpg%3Fcd"  /* blank image */
+ };
+ 
+ /////////////////////////////////
+ 
+-void blacklist_build(void)
++void blacklist_build (void)
+ {
+-    lookup_table = g_hash_table_new(g_str_hash, g_str_equal);
+-    gint b_size = sizeof(blacklist_array) / sizeof(gchar *);
+-    for(gint it = 0; it < b_size; it++) {
+-        if(blacklist_array[it] != NULL) {
+-            g_hash_table_insert(lookup_table, blacklist_array[it], blacklist_array[it]);
++    lookup_table = g_hash_table_new (g_str_hash,g_str_equal);
++    gint b_size = sizeof (blacklist_array) / sizeof (gchar *);
++    for (gint it = 0; it < b_size; it++)
++    {
++        if (blacklist_array[it] != NULL)
++        {
++            g_hash_table_insert (lookup_table,blacklist_array[it],blacklist_array[it]);
+         }
+     }
+ }
+ 
+ /////////////////////////////////
+ 
+-void blacklist_destroy(void)
++void blacklist_destroy (void)
+ {
+-    g_hash_table_destroy(lookup_table);
++    g_hash_table_destroy (lookup_table);
+ }
+ 
+ /////////////////////////////////
+ 
+-gboolean is_blacklisted(gchar *URL)
++gboolean is_blacklisted (gchar * URL)
+ {
+-    if(lookup_table == NULL || URL == NULL) {
++    if (lookup_table == NULL || URL == NULL)
+         return FALSE;
+-    }
+ 
+-    return !(g_hash_table_lookup(lookup_table, URL) == NULL);
++    return ! (g_hash_table_lookup (lookup_table,URL) == NULL);
+ }
+ 
+ /////////////////////////////////
+diff --git a/lib/cache.c b/lib/cache.c
+index 92bdc3c..8a777ad 100644
+--- a/lib/cache.c
++++ b/lib/cache.c
+@@ -26,7 +26,8 @@
+ 
+ ///////////////////////////////
+ 
+-enum {
++enum
++{
+     SQL_TABLE_DEF,
+     SQL_FOREACH,
+     SQL_DELETE_SELECT,
+@@ -35,7 +36,8 @@ enum {
+     SQL_INSERT_CACHE
+ };
+ 
+-static const char *sqlcode[] = {
++static const char * sqlcode[] =
++{
+     [SQL_TABLE_DEF] =
+     "PRAGMA synchronous = 1;                                                     \n"
+     "PRAGMA temp_store = 2;                                                      \n"
+@@ -75,7 +77,7 @@ static const char *sqlcode[] = {
+     "CREATE INDEX IF NOT EXISTS index_title_id    ON metadata(title_id);         \n"
+     "CREATE INDEX IF NOT EXISTS index_provider_id ON metadata(provider_id);      \n"
+     "CREATE UNIQUE INDEX IF NOT EXISTS index_unique                              \n"
+-    "       ON metadata(get_type, ata_type, ata_checksum,source_url);            \n"
++    "       ON metadata(get_type,data_type,data_checksum,source_url);            \n"
+     "-- Insert imageformats                                                      \n"
+     "INSERT OR IGNORE INTO image_types VALUES('jpeg');                           \n"
+     "INSERT OR IGNORE INTO image_types VALUES('jpg');                            \n"
+@@ -169,7 +171,7 @@ static const char *sqlcode[] = {
+     "  (SELECT rowid FROM providers WHERE provider_name = LOWER('%q')),    \n"
+     "  ?,                                                                  \n"
+     "  (SELECT rowid FROM image_types WHERE image_type_name = LOWER('%q')),\n"
+-    "  ?, , , , , , , ,                                                    \n"
++    "  ?,?,?,?,?,?,?,?,?                                                   \n"
+     ");                                                                    \n"
+ };
+ 
+@@ -177,30 +179,30 @@ static const char *sqlcode[] = {
+ ////////////////////// Prototypes //////////////////////
+ ////////////////////////////////////////////////////////
+ 
+-static void insert_cache_data(GlyrDatabase *db, GlyrQuery *query, GlyrMemCache *cache);
+-static void execute(GlyrDatabase *db, const gchar *sql_statement);
+-static gchar *convert_from_option_to_sql(GlyrQuery *q);
++static void insert_cache_data (GlyrDatabase * db, GlyrQuery * query, GlyrMemCache * cache);
++static void execute (GlyrDatabase * db, const gchar * sql_statement);
++static gchar * convert_from_option_to_sql (GlyrQuery * q);
+ 
+-static double get_current_time(void);
+-static void add_to_cache_list(GlyrMemCache **list, GlyrMemCache *to_add);
++static double get_current_time (void);
++static void add_to_cache_list (GlyrMemCache ** list, GlyrMemCache * to_add);
+ 
+-static int delete_callback(void *result, int argc, char **argv, char **azColName);
+-static int select_callback(void *result, int argc, char **argv, char **azColName);
++static int delete_callback (void * result, int argc, char ** argv, char ** azColName);
++static int select_callback (void * result, int argc, char ** argv, char ** azColName);
+ 
+ 
+ ////////////////////////////////////////////////////////
+ ////////////////// Useful Defines //////////////////////
+ ////////////////////////////////////////////////////////
+ 
+-#define INSERT_STRING(SQL, RG) {                        \
++#define INSERT_STRING(SQL,ARG) {                        \
+         if(SQL && ARG) {                                    \
+             /* We have to use _ascii_ here,                   */\
+             /* since there seems to be some encoding problems */\
+             /* in SQLite, which are triggered by comparing    */\
+             /* lower and highercase umlauts for example       */\
+             /* Simple encoding-indepent lowercase prevents it */\
+-            gchar * lower_str = g_ascii_strdown(ARG, 1);    \
+-            gchar * sql = sqlite3_mprintf(SQL, ower_str);   \
++            gchar * lower_str = g_ascii_strdown(ARG,-1);    \
++            gchar * sql = sqlite3_mprintf(SQL,lower_str);   \
+             execute(db,sql);                                \
+             sqlite3_free(sql);                              \
+             g_free(lower_str);                              \
+@@ -210,9 +212,9 @@ static int select_callback(void *result, int argc, char **argv, char **azColName
+ ////////////////////////////////////////////////////////
+ 
+ /* Ensure no invalid data comes in */
+-#define ABORT_ON_FAILED_REQS(REQS, PT_ARG, RG) {                   \
++#define ABORT_ON_FAILED_REQS(REQS,OPT_ARG,ARG) {                   \
+         if((REQS & OPT_ARG) == 0 && ARG == NULL) {                     \
+-            glyr_message(-1, ULL, Warning: %s != NULL failed", ARG);   \
++            glyr_message(-1,NULL,"Warning: %s != NULL failed",#ARG);   \
+             goto rollback;                                             \
+         }                                                              \
+     }
+@@ -227,10 +229,10 @@ static int select_callback(void *result, int argc, char **argv, char **azColName
+         /* lower and highercase umlauts for example       */                 \
+         /* Simple encoding-indepent lowercase prevents it */                 \
+         \
+-        gchar * lower = g_ascii_strdown(VARNAME, 1);                         \
++        gchar * lower = g_ascii_strdown(VARNAME,-1);                         \
+         if(lower != NULL)                                                    \
+         {                                                                    \
+-            TO_CONSTR = sqlite3_mprintf("AND %s = '%q'\n", IELDNAME, ower);  \
++            TO_CONSTR = sqlite3_mprintf("AND %s = '%q'\n",FIELDNAME,lower);  \
+             g_free(lower);                                                   \
+         }                                                                    \
+     }
+@@ -241,16 +243,16 @@ static int select_callback(void *result, int argc, char **argv, char **azColName
+ 
+ ////////////////////////////////////////////////////////
+ 
+-#define SQL_BIND_TEXT(stmt, ext, os) {                                               \
++#define SQL_BIND_TEXT(stmt,text,pos) {                                               \
+         int cpPos = pos;                                                                 \
+         if(stmt && text) {                                                               \
+-            int rc = sqlite3_bind_text(stmt, pPos, ext,strlen(text) + 1, SQLITE_STATIC); \
++            int rc = sqlite3_bind_text(stmt,cpPos,text,strlen(text) + 1, SQLITE_STATIC); \
+             if(rc != SQLITE_OK) {                                                        \
+-                printf("Could not bind value: %d\n", c);                                 \
++                printf("Could not bind value: %d\n",rc);                                 \
+             }                                                                            \
+         }                                                                                \
+     }                                                                                    \
+- 
++     
+ ////////////////////////////////////////////////////////
+ 
+ /* How long to wait till returning SQLITE_BUSY */
+@@ -259,7 +261,7 @@ static int select_callback(void *result, int argc, char **argv, char **azColName
+ #define DO_PROFILE false
+ 
+ #if DO_PROFILE
+-static GTimer *select_callback_timer = NULL;
++static GTimer * select_callback_timer = NULL;
+ static float select_callback_spent = 0;
+ #endif
+ 
+@@ -267,20 +269,22 @@ static float select_callback_spent = 0;
+ ////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////
+ 
+-typedef struct {
+-    GlyrDatabase *con;
++typedef struct
++{
++    GlyrDatabase * con;
+     gint deleted;
+     gint max_delete;
+ 
+ } delete_callback_data;
+ 
+ 
+-typedef struct {
+-    GlyrMemCache **result;
+-    GlyrQuery *query;
++typedef struct
++{
++    GlyrMemCache ** result;
++    GlyrQuery * query;
+     gint counter;
+     glyr_foreach_callback cb;
+-    void *userptr;
++    void * userptr;
+ 
+ } select_callback_data;
+ 
+@@ -288,56 +292,66 @@ typedef struct {
+ ////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GlyrDatabase *glyr_db_init(const char *root_path)
++__attribute__ ( (visibility ("default") ) )
++GlyrDatabase * glyr_db_init (const char * root_path)
+ {
+-    GlyrDatabase *to_return = NULL;
++    GlyrDatabase * to_return = NULL;
+ 
+ #if DO_PROFILE
+-    GTimer *open_db = g_timer_new();
++    GTimer * open_db = g_timer_new();
+     select_callback_timer = g_timer_new();
+ #endif
+ 
+-    if(sqlite3_threadsafe() == FALSE) {
+-        glyr_message(-1, NULL, "WARNING: Your SQLite version seems not to be threadsafe? \n"
+-                     "         Expect corrupted data and other weird behaviour!\n");
++    if (sqlite3_threadsafe() == FALSE)
++    {
++        glyr_message (-1,NULL,"WARNING: Your SQLite version seems not to be threadsafe? \n"
++                      "         Expect corrupted data and other weird behaviour!\n");
+     }
+ 
+-    if(root_path != NULL && g_file_test(root_path, G_FILE_TEST_EXISTS)) {
+-        sqlite3 *db_connection = NULL;
++    if (root_path != NULL && g_file_test (root_path,G_FILE_TEST_EXISTS) )
++    {
++        sqlite3 * db_connection = NULL;
+ 
+-        if(g_file_test(root_path, G_FILE_TEST_IS_DIR)) {
+-            gchar *db_file_path = g_strdup_printf("%s%s%s", root_path,
+-                                                  (g_str_has_suffix(root_path, G_DIR_SEPARATOR_S) ? "" : G_DIR_SEPARATOR_S),
+-                                                  GLYR_DB_FILENAME);
++        if (g_file_test (root_path,G_FILE_TEST_IS_DIR) )
++        {
++            gchar * db_file_path = g_strdup_printf ("%s%s%s",root_path,
++                                                    (g_str_has_suffix (root_path,G_DIR_SEPARATOR_S) ? "" : G_DIR_SEPARATOR_S),
++                                                    GLYR_DB_FILENAME);
+ 
+-            gint db_open_err = sqlite3_open_v2(db_file_path, &db_connection,
+-                                               SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_FULLMUTEX,
+-                                               NULL);
++            gint db_open_err = sqlite3_open_v2 (db_file_path,&db_connection,
++                                                SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_FULLMUTEX,
++                                                NULL);
+ 
+-            if(db_open_err == SQLITE_OK) {
+-                to_return = g_malloc0(sizeof(GlyrDatabase));
+-                to_return->root_path = g_strdup(root_path);
++            if (db_open_err == SQLITE_OK)
++            {
++                to_return = g_malloc0 (sizeof (GlyrDatabase) );
++                to_return->root_path = g_strdup (root_path);
+                 to_return->db_handle = db_connection;
+-                sqlite3_busy_timeout(db_connection, DB_BUSY_WAIT);
++                sqlite3_busy_timeout (db_connection,DB_BUSY_WAIT);
+ 
+                 /* Now create the Tables via sql */
+-                execute(to_return, (char *) sqlcode[SQL_TABLE_DEF]);
+-            } else {
+-                glyr_message(-1, NULL, "Connecting to database failed: %s\n", sqlite3_errmsg(db_connection));
+-                sqlite3_close(db_connection);
++                execute (to_return, (char*) sqlcode[SQL_TABLE_DEF]);
++            }
++            else
++            {
++                glyr_message (-1,NULL,"Connecting to database failed: %s\n",sqlite3_errmsg (db_connection) );
++                sqlite3_close (db_connection);
+             }
+-            g_free(db_file_path);
+-        } else {
+-            glyr_message(-1, NULL, "Warning: %s is not a directory; Creating DB Structure failed.\n", root_path);
++            g_free (db_file_path);
++        }
++        else
++        {
++            glyr_message (-1,NULL,"Warning: %s is not a directory; Creating DB Structure failed.\n",root_path);
+         }
+-    } else {
+-        glyr_message(-1, NULL, "Warning: %s does not exist; Creating DB Structure failed.\n", root_path);
++    }
++    else
++    {
++        glyr_message (-1,NULL,"Warning: %s does not exist; Creating DB Structure failed.\n",root_path);
+     }
+ 
+ #if DO_PROFILE
+-    g_message("Time to open DB: %lf\n", g_timer_elapsed(open_db, NULL));
+-    g_timer_destroy(open_db);
++    g_message ("Time to open DB: %lf\n",g_timer_elapsed (open_db,NULL) );
++    g_timer_destroy (open_db);
+ #endif
+     return to_return;
+ }
+@@ -347,16 +361,20 @@ GlyrDatabase *glyr_db_init(const char *root_path)
+ ////////////////////////////////////
+ 
+ 
+-__attribute__((visibility("default")))
+-void glyr_db_destroy(GlyrDatabase *db_object)
++__attribute__ ( (visibility ("default") ) )
++void glyr_db_destroy (GlyrDatabase * db_object)
+ {
+-    if(db_object != NULL) {
+-        int db_err = sqlite3_close(db_object->db_handle);
+-        if(db_err == SQLITE_OK) {
+-            g_free((gchar *) db_object->root_path);
+-            g_free(db_object);
+-        } else {
+-            glyr_message(-1, NULL, "Disconnecting database failed: %s\n", sqlite3_errmsg(db_object->db_handle));
++    if (db_object != NULL)
++    {
++        int db_err = sqlite3_close (db_object->db_handle);
++        if (db_err == SQLITE_OK)
++        {
++            g_free ( (gchar*) db_object->root_path);
++            g_free (db_object);
++        }
++        else
++        {
++            glyr_message (-1,NULL,"Disconnecting database failed: %s\n",sqlite3_errmsg (db_object->db_handle) );
+         }
+     }
+ }
+@@ -365,15 +383,18 @@ void glyr_db_destroy(GlyrDatabase *db_object)
+ ////////////////////////////////////
+ ////////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-int glyr_db_edit(GlyrDatabase *db, GlyrQuery *query, GlyrMemCache *edited)
++__attribute__ ( (visibility ("default") ) )
++int glyr_db_edit (GlyrDatabase * db, GlyrQuery * query, GlyrMemCache * edited)
+ {
+     int result = 0;
+-    if(db && query) {
+-        result = glyr_db_delete(db, query);
+-        if(result != 0) {
+-            for(GlyrMemCache *elem = edited; elem; elem = elem->next) {
+-                glyr_db_insert(db, query, edited);
++    if (db && query)
++    {
++        result = glyr_db_delete (db,query);
++        if (result != 0)
++        {
++            for (GlyrMemCache * elem = edited; elem; elem = elem->next)
++            {
++                glyr_db_insert (db,query,edited);
+             }
+         }
+     }
+@@ -384,23 +405,26 @@ int glyr_db_edit(GlyrDatabase *db, GlyrQuery *query, GlyrMemCache *edited)
+ ////////////////////////////////////
+ ////////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_db_replace(GlyrDatabase *db, unsigned char *md5sum, GlyrQuery *query, GlyrMemCache *data)
++__attribute__ ( (visibility ("default") ) )
++void glyr_db_replace (GlyrDatabase * db, unsigned char * md5sum, GlyrQuery * query, GlyrMemCache * data)
+ {
+-    if(db != NULL && md5sum != NULL) {
+-        gchar *sql = "DELETE FROM metadata WHERE data_checksum = ? ;\n";
++    if (db != NULL && md5sum != NULL)
++    {
++        gchar * sql = "DELETE FROM metadata WHERE data_checksum = ? ;\n";
+         sqlite3_stmt *stmt = NULL;
+-        sqlite3_prepare_v2(db->db_handle, sql, strlen(sql) + 1, &stmt, NULL);
+-        sqlite3_bind_blob(stmt, 1, md5sum, 16, SQLITE_STATIC);
++        sqlite3_prepare_v2 (db->db_handle, sql, strlen (sql) + 1, &stmt, NULL);
++        sqlite3_bind_blob (stmt, 1, md5sum, 16, SQLITE_STATIC);
+ 
+-        if(sqlite3_step(stmt) != SQLITE_DONE) {
+-            glyr_message(1, query, "Error message: %s\n", sqlite3_errmsg(db->db_handle));
++        if (sqlite3_step (stmt) != SQLITE_DONE)
++        {
++            glyr_message (1,query,"Error message: %s\n", sqlite3_errmsg (db->db_handle) );
+         }
+ 
+-        sqlite3_finalize(stmt);
++        sqlite3_finalize (stmt);
+ 
+-        if(data != NULL) {
+-            glyr_db_insert(db, query, data);
++        if (data != NULL)
++        {
++            glyr_db_insert (db,query,data);
+         }
+     }
+ }
+@@ -410,67 +434,77 @@ void glyr_db_replace(GlyrDatabase *db, unsigned char *md5sum, GlyrQuery *query,
+ ////////////////////////////////////
+ 
+ 
+-__attribute__((visibility("default")))
+-gint glyr_db_delete(GlyrDatabase *db, GlyrQuery *query)
++__attribute__ ( (visibility ("default") ) )
++gint glyr_db_delete (GlyrDatabase * db, GlyrQuery * query)
+ {
+     gint result = 0;
+-    if(db && query) {
++    if (db && query)
++    {
+         /* Find out which fields are required for this getter */
+-        GLYR_FIELD_REQUIREMENT reqs = glyr_get_requirements(query->type);
++        GLYR_FIELD_REQUIREMENT reqs = glyr_get_requirements (query->type);
+ 
+         /* Spaces in SQL statements just for pretty debug printing */
+-        gchar *artist_constr = "";
+-        if((reqs & GLYR_REQUIRES_ARTIST) != 0 && query->artist) {
+-            ADD_CONSTRAINT(artist_constr, "a.artist_name", query->artist);
++        gchar * artist_constr = "";
++        if ( (reqs & GLYR_REQUIRES_ARTIST) != 0 && query->artist)
++        {
++            ADD_CONSTRAINT (artist_constr,"a.artist_name",query->artist);
+         }
+ 
+-        gchar *album_constr  = "";
+-        if((reqs & GLYR_REQUIRES_ALBUM) != 0 && query->album) {
+-            ADD_CONSTRAINT(album_constr, "b.album_name", query->album);
++        gchar * album_constr  = "";
++        if ( (reqs & GLYR_REQUIRES_ALBUM ) != 0 && query->album)
++        {
++            ADD_CONSTRAINT (album_constr,"b.album_name",query->album);
+         }
+ 
+-        gchar *title_constr = "";
+-        if((reqs & GLYR_REQUIRES_TITLE) != 0 && query->title) {
+-            ADD_CONSTRAINT(title_constr, "t.title_name", query->title);
++        gchar * title_constr = "";
++        if ( (reqs & GLYR_REQUIRES_TITLE ) != 0 && query->title)
++        {
++            ADD_CONSTRAINT (title_constr,"t.title_name",query->title);
+         }
+ 
+-        /* Get a SQL formatted list of enabled providers: IN('lastfm', ...') */
+-        gchar *from_argument_list = convert_from_option_to_sql(query);
++        /* Get a SQL formatted list of enabled providers: IN('lastfm','...') */
++        gchar * from_argument_list = convert_from_option_to_sql (query);
+ 
+         /* Check if links should be deleted */
+-        gchar *img_url_constr = "";
+-        if(TYPE_IS_IMAGE(query->type)) {
+-            if(query->download == FALSE) {
+-                img_url_constr = sqlite3_mprintf("AND data_type = %d ", GLYR_TYPE_IMG_URL);
+-            } else {
+-                img_url_constr = sqlite3_mprintf("AND NOT data_type = %d ", GLYR_TYPE_IMG_URL);
++        gchar * img_url_constr = "";
++        if (TYPE_IS_IMAGE (query->type) )
++        {
++            if (query->download == FALSE)
++            {
++                img_url_constr = sqlite3_mprintf ("AND data_type = %d ", GLYR_TYPE_IMG_URL);
++            }
++            else
++            {
++                img_url_constr = sqlite3_mprintf ("AND NOT data_type = %d ", GLYR_TYPE_IMG_URL);
+             }
+         }
+ 
+-        gchar *sql = sqlite3_mprintf(sqlcode[SQL_DELETE_SELECT],
+-                                     query->type,        /* Limit to <type>             */
+-                                     title_constr,       /* Title Constr, may be empty  */
+-                                     album_constr,       /* Album Constr, may be empty  */
+-                                     artist_constr,      /* Artist Constr, may be empty */
+-                                     from_argument_list, /* Provider contraint          */
+-                                     img_url_constr,     /* Search for links?           */
+-                                     query->number       /* LIMIT to <number>           */
+-                                    );
++        gchar * sql = sqlite3_mprintf (sqlcode[SQL_DELETE_SELECT],
++                                       query->type,        /* Limit to <type>             */
++                                       title_constr,       /* Title Constr, may be empty  */
++                                       album_constr,       /* Album Constr, may be empty  */
++                                       artist_constr,      /* Artist Constr, may be empty */
++                                       from_argument_list, /* Provider contraint          */
++                                       img_url_constr,     /* Search for links?           */
++                                       query->number       /* LIMIT to <number>           */
++                                      );
+ 
+ 
+-        if(sql != NULL) {
++        if (sql != NULL)
++        {
+             delete_callback_data cb_data;
+             cb_data.con = db;
+             cb_data.deleted = 0;
+             cb_data.max_delete = query->number;
+ 
+-            gchar *err_msg = NULL;
+-            sqlite3_exec(db->db_handle, sql, delete_callback, &cb_data, &err_msg);
+-            if(err_msg != NULL) {
+-                glyr_message(-1, NULL, "SQL Delete error: %s\n", err_msg);
+-                sqlite3_free(err_msg);
++            gchar * err_msg = NULL;
++            sqlite3_exec (db->db_handle,sql,delete_callback,&cb_data,&err_msg);
++            if (err_msg != NULL)
++            {
++                glyr_message (-1,NULL,"SQL Delete error: %s\n",err_msg);
++                sqlite3_free (err_msg);
+             }
+-            sqlite3_free(sql);
++            sqlite3_free (sql);
+             result = cb_data.deleted;
+         }
+ 
+@@ -478,23 +512,19 @@ gint glyr_db_delete(GlyrDatabase *db, GlyrQuery *query)
+          * Free ressources with according free calls,
+          */
+ 
+-        if(*artist_constr) {
+-            sqlite3_free(artist_constr);
+-        }
++        if (*artist_constr)
++            sqlite3_free (artist_constr);
+ 
+-        if(*album_constr) {
+-            sqlite3_free(album_constr);
+-        }
++        if (*album_constr)
++            sqlite3_free (album_constr);
+ 
+-        if(*title_constr) {
+-            sqlite3_free(title_constr);
+-        }
++        if (*title_constr)
++            sqlite3_free (title_constr);
+ 
+-        if(*img_url_constr) {
+-            sqlite3_free(img_url_constr);
+-        }
++        if (*img_url_constr)
++            sqlite3_free (img_url_constr);
+ 
+-        g_free(from_argument_list);
++        g_free (from_argument_list);
+ 
+     }
+     return result;
+@@ -505,10 +535,11 @@ gint glyr_db_delete(GlyrDatabase *db, GlyrQuery *query)
+ ////////////////////////////////////
+ 
+ 
+-__attribute__((visibility("default")))
+-void glyr_db_foreach(GlyrDatabase *db, glyr_foreach_callback cb, void *userptr)
++__attribute__ ( (visibility ("default") ) )
++void glyr_db_foreach (GlyrDatabase * db, glyr_foreach_callback cb, void * userptr)
+ {
+-    if(db != NULL && cb != NULL) {
++    if (db != NULL && cb != NULL)
++    {
+         select_callback_data scb_data;
+         scb_data.cb = cb;
+         scb_data.userptr = userptr;
+@@ -520,12 +551,14 @@ void glyr_db_foreach(GlyrDatabase *db, glyr_foreach_callback cb, void *userptr)
+         scb_data.result = NULL;
+ 
+         int rc = SQLITE_OK;
+-        char *err_msg = NULL;
+-        if((rc = sqlite3_exec(db->db_handle, sqlcode[SQL_FOREACH], select_callback, &scb_data, &err_msg)) != SQLITE_OK) {
+-            if(rc != SQLITE_ABORT) {
+-                glyr_message(-1, NULL, "SQL Foreach error: %s\n", err_msg);
++        char * err_msg = NULL;
++        if ( (rc = sqlite3_exec (db->db_handle,sqlcode[SQL_FOREACH],select_callback,&scb_data,&err_msg) ) != SQLITE_OK)
++        {
++            if (rc != SQLITE_ABORT)
++            {
++                glyr_message (-1,NULL,"SQL Foreach error: %s\n",err_msg);
+             }
+-            sqlite3_free(err_msg);
++            sqlite3_free (err_msg);
+         }
+     }
+ }
+@@ -534,49 +567,58 @@ void glyr_db_foreach(GlyrDatabase *db, glyr_foreach_callback cb, void *userptr)
+ ////////////////////////////////////
+ ////////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GlyrMemCache *glyr_db_lookup(GlyrDatabase *db, GlyrQuery *query)
++__attribute__ ( (visibility ("default") ) )
++GlyrMemCache * glyr_db_lookup (GlyrDatabase * db, GlyrQuery * query)
+ {
+-    GlyrMemCache *result = NULL;
+-    if(db != NULL && query != NULL) {
+-        GLYR_FIELD_REQUIREMENT reqs = glyr_get_requirements(query->type);
+-        gchar *artist_constr = "";
+-        if((reqs & GLYR_REQUIRES_ARTIST) != 0) {
+-            ADD_CONSTRAINT(artist_constr, "artist_name", query->artist);
++    GlyrMemCache * result = NULL;
++    if (db != NULL && query != NULL)
++    {
++        GLYR_FIELD_REQUIREMENT reqs = glyr_get_requirements (query->type);
++        gchar * artist_constr = "";
++        if ( (reqs & GLYR_REQUIRES_ARTIST) != 0)
++        {
++            ADD_CONSTRAINT (artist_constr,"artist_name",query->artist);
+         }
+-        gchar *album_constr  = "";
+-        if((reqs & GLYR_REQUIRES_ALBUM) != 0) {
+-            ADD_CONSTRAINT(album_constr, "album_name", query->album);
++        gchar * album_constr  = "";
++        if ( (reqs & GLYR_REQUIRES_ALBUM ) != 0)
++        {
++            ADD_CONSTRAINT (album_constr,"album_name",query->album);
+         }
+ 
+-        gchar *title_constr = "";
+-        if((reqs & GLYR_REQUIRES_TITLE) != 0) {
+-            ADD_CONSTRAINT(title_constr, "title_name", query->title);
++        gchar * title_constr = "";
++        if ( (reqs & GLYR_REQUIRES_TITLE ) != 0)
++        {
++            ADD_CONSTRAINT (title_constr,"title_name",query->title);
+         }
+ 
+-        gchar *from_argument_list = convert_from_option_to_sql(query);
+-        gchar *img_url_constr = "";
++        gchar * from_argument_list = convert_from_option_to_sql (query);
++        gchar * img_url_constr = "";
+ 
+-        if(TYPE_IS_IMAGE(query->type)) {
+-            if(query->download == FALSE) {
+-                img_url_constr = sqlite3_mprintf("AND data_type = %d ", GLYR_TYPE_IMG_URL);
+-            } else {
+-                img_url_constr = sqlite3_mprintf("AND NOT data_type = %d ", GLYR_TYPE_IMG_URL);
++        if (TYPE_IS_IMAGE (query->type) )
++        {
++            if (query->download == FALSE)
++            {
++                img_url_constr = sqlite3_mprintf ("AND data_type = %d ", GLYR_TYPE_IMG_URL);
++            }
++            else
++            {
++                img_url_constr = sqlite3_mprintf ("AND NOT data_type = %d ", GLYR_TYPE_IMG_URL);
+             }
+         }
+ 
+-        gchar *sql = sqlite3_mprintf(sqlcode[SQL_LOOKUP],
+-                                     query->type,
+-                                     title_constr,
+-                                     album_constr,
+-                                     artist_constr,
+-                                     img_url_constr,
+-                                     from_argument_list,
+-                                     query->number
+-                                    );
++        gchar * sql = sqlite3_mprintf (sqlcode[SQL_LOOKUP],
++                                       query->type,
++                                       title_constr,
++                                       album_constr,
++                                       artist_constr,
++                                       img_url_constr,
++                                       from_argument_list,
++                                       query->number
++                                      );
+ 
+ 
+-        if(sql != NULL) {
++        if (sql != NULL)
++        {
+             select_callback_data data;
+             data.result = &result;
+             data.query = query;
+@@ -584,34 +626,39 @@ GlyrMemCache *glyr_db_lookup(GlyrDatabase *db, GlyrQuery *query)
+             data.cb = NULL;
+             data.userptr = NULL;
+ 
+-            gchar *err_msg = NULL;
+-            sqlite3_exec(db->db_handle, sql, select_callback, &data, &err_msg);
+-            if(err_msg != NULL) {
+-                glyr_message(-1, NULL, "glyr_db_lookup: %s\n", err_msg);
+-                sqlite3_free(err_msg);
++            gchar * err_msg = NULL;
++            sqlite3_exec (db->db_handle,sql,select_callback,&data,&err_msg);
++            if (err_msg != NULL)
++            {
++                glyr_message (-1,NULL,"glyr_db_lookup: %s\n",err_msg);
++                sqlite3_free (err_msg);
+             }
+-            sqlite3_free(sql);
++            sqlite3_free (sql);
+         }
+ 
+ #if DO_PROFILE
+-        g_message("Spent %.5f Seconds in Selectcallback.\n", select_callback_spent);
++        g_message ("Spent %.5f Seconds in Selectcallback.\n",select_callback_spent);
+         select_callback_spent = 0;
+ #endif
+ 
+-        if(*artist_constr) {
+-            sqlite3_free(artist_constr);
++        if (*artist_constr)
++        {
++            sqlite3_free (artist_constr);
+         }
+-        if(*album_constr) {
+-            sqlite3_free(album_constr);
++        if (*album_constr)
++        {
++            sqlite3_free (album_constr);
+         }
+-        if(*title_constr) {
+-            sqlite3_free(title_constr);
++        if (*title_constr)
++        {
++            sqlite3_free (title_constr);
+         }
+ 
+-        g_free(from_argument_list);
++        g_free (from_argument_list);
+ 
+-        if(*img_url_constr != '\0') {
+-            sqlite3_free(img_url_constr);
++        if (*img_url_constr != '\0')
++        {
++            sqlite3_free (img_url_constr);
+         }
+     }
+     return result;
+@@ -622,31 +669,35 @@ GlyrMemCache *glyr_db_lookup(GlyrDatabase *db, GlyrQuery *query)
+ ////////////////////////////////////
+ 
+ 
+-__attribute__((visibility("default")))
+-void glyr_db_insert(GlyrDatabase *db, GlyrQuery *q, GlyrMemCache *cache)
++__attribute__ ( (visibility ("default") ) )
++void glyr_db_insert (GlyrDatabase * db, GlyrQuery * q, GlyrMemCache * cache)
+ {
+-    if(db && q && cache) {
+-        GLYR_FIELD_REQUIREMENT reqs = glyr_get_requirements(q->type);
+-        execute(db, "BEGIN IMMEDIATE;");
+-        if((reqs & GLYR_REQUIRES_ARTIST) || (reqs & GLYR_OPTIONAL_ARTIST)) {
+-            ABORT_ON_FAILED_REQS(reqs, GLYR_OPTIONAL_ARTIST, q->artist);
+-            INSERT_STRING("INSERT OR IGNORE INTO artists VALUES('%q');", q->artist);
++    if (db && q && cache)
++    {
++        GLYR_FIELD_REQUIREMENT reqs = glyr_get_requirements (q->type);
++        execute (db,"BEGIN IMMEDIATE;");
++        if ( (reqs & GLYR_REQUIRES_ARTIST) || (reqs & GLYR_OPTIONAL_ARTIST) )
++        {
++            ABORT_ON_FAILED_REQS (reqs,GLYR_OPTIONAL_ARTIST,q->artist);
++            INSERT_STRING ("INSERT OR IGNORE INTO artists VALUES('%q');",q->artist);
+         }
+-        if((reqs & GLYR_REQUIRES_ALBUM) || (reqs & GLYR_OPTIONAL_ALBUM)) {
+-            ABORT_ON_FAILED_REQS(reqs, GLYR_OPTIONAL_ALBUM, q->album);
+-            INSERT_STRING("INSERT OR IGNORE INTO albums  VALUES('%q');", q->album);
++        if ( (reqs & GLYR_REQUIRES_ALBUM) || (reqs & GLYR_OPTIONAL_ALBUM) )
++        {
++            ABORT_ON_FAILED_REQS (reqs,GLYR_OPTIONAL_ALBUM,q->album);
++            INSERT_STRING ("INSERT OR IGNORE INTO albums  VALUES('%q');",q->album);
+         }
+-        if((reqs & GLYR_REQUIRES_TITLE) || (reqs & GLYR_OPTIONAL_TITLE)) {
+-            ABORT_ON_FAILED_REQS(reqs, GLYR_OPTIONAL_TITLE, q->title);
+-            INSERT_STRING("INSERT OR IGNORE INTO titles  VALUES('%q');", q->title);
++        if ( (reqs & GLYR_REQUIRES_TITLE) || (reqs & GLYR_OPTIONAL_TITLE) )
++        {
++            ABORT_ON_FAILED_REQS (reqs,GLYR_OPTIONAL_TITLE,q->title);
++            INSERT_STRING ("INSERT OR IGNORE INTO titles  VALUES('%q');",q->title);
+         }
+ 
+-        gchar *provider = CACHE_GET_PROVIDER(cache);
+-        INSERT_STRING("INSERT OR IGNORE INTO providers VALUES('%q');", provider);
+-        insert_cache_data(db, q, cache);
++        gchar * provider = CACHE_GET_PROVIDER (cache);
++        INSERT_STRING ("INSERT OR IGNORE INTO providers VALUES('%q');",provider);
++        insert_cache_data (db,q,cache);
+ 
+ rollback:
+-        execute(db, "COMMIT;");
++        execute (db,"COMMIT;");
+     }
+ }
+ 
+@@ -654,11 +705,11 @@ rollback:
+ ////////////////////////////////////
+ ////////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GlyrMemCache *glyr_db_make_dummy(void)
++__attribute__ ( (visibility ("default") ) )
++GlyrMemCache * glyr_db_make_dummy (void)
+ {
+-    GlyrMemCache *c = glyr_cache_new();
+-    glyr_cache_set_data(c, g_strdup("[dummy]"), -1);
++    GlyrMemCache * c = glyr_cache_new();
++    glyr_cache_set_data (c,g_strdup ("[dummy]"),-1);
+     c->rating = -1;
+     return c;
+ }
+@@ -669,14 +720,16 @@ GlyrMemCache *glyr_db_make_dummy(void)
+ 
+ // --------- INTERNALS ------------ //
+ 
+-static void execute(GlyrDatabase *db, const gchar *sql_statement)
++static void execute (GlyrDatabase * db, const gchar * sql_statement)
+ {
+-    if(db && sql_statement) {
+-        char *err_msg = NULL;
+-        sqlite3_exec(db->db_handle, sql_statement, NULL, NULL, &err_msg);
+-        if(err_msg != NULL) {
+-            glyr_message(-1, NULL, "glyr_db_execute: SQL error: %s\n", err_msg);
+-            sqlite3_free(err_msg);
++    if (db && sql_statement)
++    {
++        char * err_msg = NULL;
++        sqlite3_exec (db->db_handle,sql_statement,NULL,NULL,&err_msg);
++        if (err_msg != NULL)
++        {
++            glyr_message (-1,NULL,"glyr_db_execute: SQL error: %s\n", err_msg);
++            sqlite3_free (err_msg);
+         }
+     }
+ }
+@@ -689,53 +742,58 @@ static void execute(GlyrDatabase *db, const gchar *sql_statement)
+  *  Return the current time as double:
+  *  <seconds>.<microseconds/one_second>
+  */
+-static double get_current_time(void)
++static double get_current_time (void)
+ {
+     struct timeval tim;
+-    gettimeofday(&tim, NULL);
+-    return (double) tim.tv_sec + ((double) tim.tv_usec / 1e6);
++    gettimeofday (&tim, NULL);
++    return (double) tim.tv_sec + ( (double) tim.tv_usec/1e6);
+ }
+ 
+ ////////////////////////////////////
+ 
+-static void insert_cache_data(GlyrDatabase *db, GlyrQuery *query, GlyrMemCache *cache)
++static void insert_cache_data (GlyrDatabase * db, GlyrQuery * query, GlyrMemCache * cache)
+ {
+-    if(db && query && cache) {
++    if (db && query && cache)
++    {
+         int pos = 1;
+-        char *sql = sqlite3_mprintf(sqlcode[SQL_INSERT_CACHE],
+-                                    query->artist,
+-                                    query->album,
+-                                    query->title,
+-                                    CACHE_GET_PROVIDER(cache),
+-                                    cache->img_format
+-                                   );
++        char * sql = sqlite3_mprintf (sqlcode[SQL_INSERT_CACHE],
++                                      query->artist,
++                                      query->album,
++                                      query->title,
++                                      CACHE_GET_PROVIDER (cache),
++                                      cache->img_format
++                                     );
+ 
+         sqlite3_stmt *stmt = NULL;
+-        sqlite3_prepare_v2(db->db_handle, sql, strlen(sql) + 1, &stmt, NULL);
+-
+-        SQL_BIND_TEXT(stmt, cache->dsrc, pos++);
+-        sqlite3_bind_int(stmt, pos++, cache->duration);
+-        sqlite3_bind_int(stmt, pos++, query->type);
+-        sqlite3_bind_int(stmt, pos++, cache->type);
+-        sqlite3_bind_int(stmt, pos++, cache->size);
+-        sqlite3_bind_int(stmt, pos++, cache->is_image);
+-        sqlite3_bind_blob(stmt, pos++, cache->md5sum, sizeof cache->md5sum, SQLITE_STATIC);
+-
+-        if(cache->data != NULL) {
+-            sqlite3_bind_blob(stmt, pos++, cache->data, cache->size, SQLITE_STATIC);
+-        } else {
+-            glyr_message(1, query, "glyr: Warning: Attempting to insert cache with missing data!\n");
++        sqlite3_prepare_v2 (db->db_handle, sql, strlen (sql) + 1, &stmt, NULL);
++
++        SQL_BIND_TEXT (stmt,cache->dsrc,pos++);
++        sqlite3_bind_int (stmt, pos++, cache->duration);
++        sqlite3_bind_int (stmt, pos++, query->type);
++        sqlite3_bind_int (stmt, pos++, cache->type);
++        sqlite3_bind_int (stmt, pos++, cache->size);
++        sqlite3_bind_int (stmt, pos++, cache->is_image);
++        sqlite3_bind_blob (stmt,pos++, cache->md5sum, sizeof cache->md5sum, SQLITE_STATIC);
++
++        if (cache->data != NULL)
++        {
++            sqlite3_bind_blob (stmt, pos++, cache->data, cache->size, SQLITE_STATIC);
++        }
++        else
++        {
++            glyr_message (1,query,"glyr: Warning: Attempting to insert cache with missing data!\n");
+         }
+ 
+-        sqlite3_bind_int(stmt, pos++, cache->rating);
+-        sqlite3_bind_double(stmt, pos++, get_current_time());
++        sqlite3_bind_int (stmt, pos++, cache->rating);
++        sqlite3_bind_double (stmt,pos++, get_current_time() );
+ 
+-        if(sqlite3_step(stmt) != SQLITE_DONE) {
+-            glyr_message(1, query, "glyr_db_insert: SQL failure: %s\n", sqlite3_errmsg(db->db_handle));
++        if (sqlite3_step (stmt) != SQLITE_DONE)
++        {
++            glyr_message (1,query,"glyr_db_insert: SQL failure: %s\n", sqlite3_errmsg (db->db_handle) );
+         }
+ 
+-        sqlite3_finalize(stmt);
+-        sqlite3_free(sql);
++        sqlite3_finalize (stmt);
++        sqlite3_free (sql);
+     }
+ }
+ 
+@@ -747,20 +805,25 @@ static void insert_cache_data(GlyrDatabase *db, GlyrQuery *query, GlyrMemCache *
+ 
+ #define DEBUG_LIST false
+ 
+-static void add_to_cache_list(GlyrMemCache **list, GlyrMemCache *to_add)
++static void add_to_cache_list (GlyrMemCache ** list, GlyrMemCache * to_add)
+ {
+-    if(to_add && list) {
+-        GlyrMemCache *head = *list;
+-        if(head == NULL) {
++    if (to_add && list)
++    {
++        GlyrMemCache * head = *list;
++        if (head == NULL)
++        {
+             /* Initialize list */
+             *list = to_add;
+-        } else {
++        }
++        else
++        {
+             /* Find rating in list
+              * head will store the first non-matchin item,
+              * tail = head->prev
+              * */
+-            GlyrMemCache *tail = head;
+-            while(head && head->rating > to_add->rating) {
++            GlyrMemCache * tail = head;
++            while (head && head->rating > to_add->rating)
++            {
+                 tail = head;
+                 head = head->next;
+             }
+@@ -771,19 +834,23 @@ static void add_to_cache_list(GlyrMemCache **list, GlyrMemCache *to_add)
+              * caches (== higher timestamp), are sorted
+              * at the start
+              */
+-            if(head != NULL) {
++            if (head != NULL)
++            {
+                 int last_rating = head->rating;
+-                while(head && head->rating == last_rating && head->timestamp > to_add->timestamp) {
+-                    GlyrMemCache *p = head->next;
+-                    if(p && p->rating == last_rating) {
++                while (head && head->rating == last_rating && head->timestamp > to_add->timestamp)
++                {
++                    GlyrMemCache * p = head->next;
++                    if (p && p->rating == last_rating)
++                    {
+                         tail = head;
+                         head = p;
+-                    } else if(p == NULL) {
++                    }
++                    else if (p == NULL)
++                    {
+                         tail = head;
+                         head = p;
+-                    } else {
+-                        break;
+                     }
++                    else break;
+ 
+                 }
+             }
+@@ -792,22 +859,23 @@ static void add_to_cache_list(GlyrMemCache **list, GlyrMemCache *to_add)
+              * If so just append it,
+              * else we insert to_add before head
+              */
+-            g_assert(tail);
+-            if(head != NULL) {
+-                GlyrMemCache *prev = head->prev;
+-                if(prev != NULL) {
++            g_assert (tail);
++            if (head != NULL)
++            {
++                GlyrMemCache * prev = head->prev;
++                if (prev != NULL)
+                     prev->next = to_add;
+-                }
+ 
+                 to_add->prev = prev;
+                 to_add->next = head;
+ 
+                 head->prev = to_add;
+ 
+-                if(prev == NULL) {
++                if (prev == NULL)
+                     *list = to_add;
+-                }
+-            } else { /* We're at the end */
++            }
++            else /* We're at the end */
++            {
+                 tail->next = to_add;
+                 to_add->prev = tail;
+             }
+@@ -815,13 +883,14 @@ static void add_to_cache_list(GlyrMemCache **list, GlyrMemCache *to_add)
+     }
+ 
+ #if DEBUG_LIST
+-    GlyrMemCache *p = *list;
+-    while(p != NULL) {
+-        char *surr = (to_add == p) ? "*" : "|";
+-        g_printerr("%s(%d|%2.10f)%s %c ", surr, p->rating, p->timestamp, surr, (p->next) ? '-' : ' ');
++    GlyrMemCache * p = *list;
++    while (p != NULL)
++    {
++        char * surr = (to_add == p) ? "*" : "|";
++        g_printerr ("%s(%d|%2.10f)%s %c ",surr,p->rating,p->timestamp,surr, (p->next) ? '-' : ' ');
+         p = p->next;
+     }
+-    puts("");
++    puts ("");
+ #endif
+ 
+ }
+@@ -831,77 +900,86 @@ static void add_to_cache_list(GlyrMemCache **list, GlyrMemCache *to_add)
+ ////////////////////////////////////
+ 
+ /* Convert a single result from the DB to an actual Cache */
+-static int select_callback(void *result, int argc, char **argv, char **azColName)
++static int select_callback (void * result, int argc, char ** argv, char ** azColName)
+ {
+ #if DO_PROFILE
+-    g_timer_start(select_callback_timer);
++    g_timer_start (select_callback_timer);
+ #endif
+ 
+ 
+     int rc = 0;
+-    select_callback_data *data = result;
+-    GlyrMemCache **list = data->result;
+-
+-    if(argc >= 15 && data->counter < data->query->number) {
+-        GlyrMemCache *cache = DL_init();
+-        if(cache != NULL) {
+-            cache->prov = g_strdup(argv[3]);
+-            cache->dsrc = g_strdup(argv[4]);
+-            cache->img_format = g_strdup(argv[5]);
+-
+-            cache->duration = (argv[6]  ? strtol(argv[6], NULL, 10)   : 0);
+-            cache->type = (argv[8]  ? strtol(argv[8], NULL, 10)   : 0);
+-            cache->size = (argv[9]  ? strtol(argv[9], NULL, 10)   : 0);
+-            cache->is_image = (argv[10] ? strtol(argv[10], NULL, 10) : 0);
+-
+-            if(argv[11] != NULL) {
+-                memcpy(cache->md5sum, argv[11], 16);
++    select_callback_data * data = result;
++    GlyrMemCache ** list = data->result;
++
++    if (argc >= 15 && data->counter < data->query->number)
++    {
++        GlyrMemCache * cache = DL_init();
++        if (cache != NULL)
++        {
++            cache->prov = g_strdup (argv[3]);
++            cache->dsrc = g_strdup (argv[4]);
++            cache->img_format = g_strdup (argv[5]);
++
++            cache->duration = (argv[6]  ? strtol (argv[6],NULL,10)   : 0);
++            cache->type =     (argv[8]  ? strtol (argv[8],NULL,10)   : 0);
++            cache->size =     (argv[9]  ? strtol (argv[9],NULL,10)   : 0);
++            cache->is_image = (argv[10] ? strtol (argv[10],NULL,10) : 0);
++
++            if (argv[11] != NULL)
++            {
++                memcpy (cache->md5sum,argv[11],16);
+             }
+ 
+-            if(argv[12] != NULL && cache->size > 0) {
+-                cache->data = g_malloc0(cache->size + 1);
+-                memcpy(cache->data, argv[12], cache->size);
++            if (argv[12] != NULL && cache->size > 0)
++            {
++                cache->data = g_malloc0 (cache->size + 1);
++                memcpy (cache->data,argv[12],cache->size);
+                 cache->data[cache->size] = 0;
+             }
+ 
+-            cache->rating = (argv[13] ? strtol(argv[13], NULL, 10) : 0);
++            cache->rating = (argv[13] ? strtol (argv[13],NULL,10) : 0);
+ 
+             /* Timestamp */
+-            if(argv[14] != NULL) {
++            if (argv[14] != NULL)
++            {
+                 /* Normal strtod() cuts off part behin the comma.. */
+-                cache->timestamp = (argv[14] ? g_ascii_strtod(argv[14], NULL) : 0);
++                cache->timestamp = (argv[14] ? g_ascii_strtod (argv[14],NULL) : 0);
+             }
+ 
+             /* We're in the cache, so this one was cached.. :) */
+             cache->cached = TRUE;
+ 
+-            if(list != NULL) {
+-                add_to_cache_list(list, cache);
+-            } else if(data->cb != NULL && cache) {
++            if (list != NULL)
++            {
++                add_to_cache_list (list,cache);
++            }
++            else if (data->cb != NULL && cache)
++            {
+                 GlyrQuery q;
+-                glyr_query_init(&q);
++                glyr_query_init (&q);
+ 
+-                if(argv[7] != NULL) {
+-                    GLYR_GET_TYPE type = strtol(argv[7], NULL, 10);
+-                    glyr_opt_type(&q, type);
++                if (argv[7] != NULL)
++                {
++                    GLYR_GET_TYPE type = strtol (argv[7],NULL,10);
++                    glyr_opt_type (&q,type);
+                 }
+ 
+-                glyr_opt_artist(&q, argv[0]);
+-                glyr_opt_album(&q, argv[1]);
+-                glyr_opt_title(&q, argv[2]);
++                glyr_opt_artist (&q,argv[0]);
++                glyr_opt_album (&q, argv[1]);
++                glyr_opt_title (&q, argv[2]);
+ 
+-                rc = data->cb(&q, cache, data->userptr);
++                rc = data->cb (&q,cache,data->userptr);
+ 
+-                glyr_query_destroy(&q);
+-                DL_free(cache);
++                glyr_query_destroy (&q);
++                DL_free (cache);
+             }
+         }
+     }
+ 
+     data->counter++;
+ #if DO_PROFILE
+-    g_timer_stop(select_callback_timer);
+-    select_callback_spent += g_timer_elapsed(select_callback_timer, NULL);
++    g_timer_stop (select_callback_timer);
++    select_callback_spent += g_timer_elapsed (select_callback_timer,NULL);
+ #endif
+     return rc;
+ }
+@@ -910,17 +988,20 @@ static int select_callback(void *result, int argc, char **argv, char **azColName
+ ////////////////////////////////////
+ ////////////////////////////////////
+ 
+-static gchar *convert_from_option_to_sql(GlyrQuery *q)
++static gchar * convert_from_option_to_sql (GlyrQuery * q)
+ {
+-    gchar *result = g_strdup("'none'");
+-
+-    for(GList *elem = r_getSList(); elem; elem = elem->next) {
+-        MetaDataSource *item = elem->data;
+-        if(item && (q->type == item->type || item->type == GLYR_GET_ANY)) {
+-            if(provider_is_enabled(q, item) == TRUE) {
+-                gchar *old_mem = result;
+-                result = g_strdup_printf("%s%s'%s'", result, (*result) ? ",  : "", item->name);
+-                g_free(old_mem);
++    gchar * result = g_strdup ("'none'");
++
++    for (GList * elem = r_getSList(); elem; elem = elem->next)
++    {
++        MetaDataSource * item = elem->data;
++        if (item && (q->type == item->type || item->type == GLYR_GET_ANY) )
++        {
++            if (provider_is_enabled (q,item) == TRUE)
++            {
++                gchar * old_mem = result;
++                result = g_strdup_printf ("%s%s'%s'",result, (*result) ? "," : "",item->name);
++                g_free (old_mem);
+             }
+         }
+     }
+@@ -931,23 +1012,25 @@ static gchar *convert_from_option_to_sql(GlyrQuery *q)
+ ////////////////////////////////////
+ ////////////////////////////////////
+ 
+-static int delete_callback(void *result, int argc, char **argv, char **azColName)
++static int delete_callback (void * result, int argc, char ** argv, char ** azColName)
+ {
+-    delete_callback_data *data = result;
+-    if(argc >= 4 && result && data->max_delete > data->deleted) {
++    delete_callback_data * data = result;
++    if (argc >= 4 && result && data->max_delete > data->deleted)
++    {
+         /* God, this is so silly.. SQL, why you don't like " = null"
+          * I can't think of any easier way to do this, tell me if you found one
+          */
+-        gchar *sql_delete = sqlite3_mprintf(sqlcode[SQL_ACTUAL_DELETE],
+-                                            argv[0] ? "=" : " IS ", argv[0] ? argv[0] : "NULL",
+-                                            argv[1] ? "=" : " IS ", argv[1] ? argv[1] : "NULL",
+-                                            argv[2] ? "=" : " IS ", argv[2] ? argv[2] : "NULL",
+-                                            argv[3] ? "=" : " IS ", argv[3] ? argv[3] : "NULL",
+-                                            argv[4] ? "=" : " IS ", argv[4] ? argv[4] : "NULL");
+-
+-        if(sql_delete != NULL) {
+-            execute(data->con, sql_delete);
+-            sqlite3_free(sql_delete);
++        gchar * sql_delete = sqlite3_mprintf (sqlcode[SQL_ACTUAL_DELETE],
++                                              argv[0] ? "=" : " IS ", argv[0] ? argv[0] : "NULL",
++                                              argv[1] ? "=" : " IS ", argv[1] ? argv[1] : "NULL",
++                                              argv[2] ? "=" : " IS ", argv[2] ? argv[2] : "NULL",
++                                              argv[3] ? "=" : " IS ", argv[3] ? argv[3] : "NULL",
++                                              argv[4] ? "=" : " IS ", argv[4] ? argv[4] : "NULL");
++
++        if (sql_delete != NULL)
++        {
++            execute (data->con,sql_delete);
++            sqlite3_free (sql_delete);
+             data->deleted++;
+         }
+     }
+diff --git a/lib/cache_intern.c b/lib/cache_intern.c
+index af19fd9..b4b6f86 100644
+--- a/lib/cache_intern.c
++++ b/lib/cache_intern.c
+@@ -28,34 +28,39 @@
+ /////////////////////////////////
+ 
+ /* Check if a cache is already in the db, by cheskum or source_url  */
+-gboolean db_contains(GlyrDatabase *db, GlyrMemCache *cache)
++gboolean db_contains (GlyrDatabase * db, GlyrMemCache * cache)
+ {
+     gboolean result = FALSE;
+-    if(db && cache) {
+-        gchar *sql = sqlite3_mprintf(
+-                         "SELECT source_url, ata_checksum, ata_size, ata_type FROM metadata AS m      "
+-                         "WHERE (m.data_type = %d AND m.data_size = %d AND m.data_checksum = '?')     "
+-                         "OR (m.source_url LIKE '%q' AND m.source_url IS NOT NULL AND data_type = %d) "
+-                         "LIMIT 1;                                                                    ",
+-                         cache->type,
+-                         cache->size,
+-                         cache->dsrc,
+-                         cache->type);
++    if (db && cache)
++    {
++        gchar * sql = sqlite3_mprintf (
++                          "SELECT source_url,data_checksum,data_size,data_type FROM metadata AS m      "
++                          "WHERE (m.data_type = %d AND m.data_size = %d AND m.data_checksum = '?')     "
++                          "OR (m.source_url LIKE '%q' AND m.source_url IS NOT NULL AND data_type = %d) "
++                          "LIMIT 1;                                                                    ",
++                          cache->type,
++                          cache->size,
++                          cache->dsrc,
++                          cache->type);
+ 
+-        if(sql != NULL) {
+-            sqlite3_stmt *stmt = NULL;
+-            sqlite3_prepare_v2(db->db_handle, sql, strlen(sql) + 1, &stmt, NULL);
+-            sqlite3_bind_blob(stmt, 1, cache->md5sum, sizeof cache->md5sum, SQLITE_TRANSIENT);
++        if (sql != NULL)
++        {
++            sqlite3_stmt * stmt = NULL;
++            sqlite3_prepare_v2 (db->db_handle, sql, strlen (sql) + 1, &stmt, NULL);
++            sqlite3_bind_blob (stmt, 1, cache->md5sum, sizeof cache->md5sum, SQLITE_TRANSIENT);
+ 
+-            int err = sqlite3_step(stmt);
+-            if(err == SQLITE_ROW) {
++            int err = sqlite3_step (stmt);
++            if (err == SQLITE_ROW)
++            {
+                 result = TRUE;
+-            } else if(err != SQLITE_DONE) {
+-                glyr_message(-1, NULL, "db_contains: error message: %s\n", sqlite3_errmsg(db->db_handle));
++            }
++            else if (err != SQLITE_DONE)
++            {
++                glyr_message (-1,NULL,"db_contains: error message: %s\n", sqlite3_errmsg (db->db_handle) );
+             }
+ 
+-            sqlite3_finalize(stmt);
+-            sqlite3_free(sql);
++            sqlite3_finalize (stmt);
++            sqlite3_free (sql);
+         }
+     }
+     return result;
+diff --git a/lib/config.h b/lib/config.h
+index cffcc3b..c225e39 100644
+--- a/lib/config.h
++++ b/lib/config.h
+@@ -12,11 +12,11 @@
+ 
+ #define GLYR_VERSION_MAJOR "1"
+ #define GLYR_VERSION_MINOR "0"
+-#define GLYR_VERSION_MICRO "5"
++#define GLYR_VERSION_MICRO "6"
+ 
+ #define GLYR_VERSION_MAJOR_INT 1
+ #define GLYR_VERSION_MINOR_INT 0
+-#define GLYR_VERSION_MICRO_INT 5
++#define GLYR_VERSION_MICRO_INT 6
+ 
+ /**
+  * GLYR_CHECK_VERSION:
+diff --git a/lib/core.c b/lib/core.c
+index d3753fb..e620057 100644
+--- a/lib/core.c
++++ b/lib/core.c
+@@ -39,16 +39,17 @@
+ //////////////////////////////////////
+ 
+ 
+-static int _msg(const char *fmt, va_list params)
++static int _msg (const char * fmt, va_list params)
+ {
+-    gchar *tmp_buf = NULL;
++    gchar * tmp_buf = NULL;
+ 
+     /* Silly, but needs a way to get length */
+-    gint written = g_vasprintf(&tmp_buf, fmt, params);
++    gint written = g_vasprintf (&tmp_buf,fmt,params);
+ 
+-    if(written != -1 && tmp_buf != NULL) {
+-        g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "%s", tmp_buf);
+-        g_free(tmp_buf);
++    if (written != -1 && tmp_buf != NULL)
++    {
++        g_log (G_LOG_DOMAIN,G_LOG_LEVEL_INFO,"%s",tmp_buf);
++        g_free (tmp_buf);
+         tmp_buf = NULL;
+     }
+     return written;
+@@ -56,16 +57,19 @@ static int _msg(const char *fmt, va_list params)
+ 
+ //////////////////////////////////////
+ 
+-int glyr_message(int verbosity, GlyrQuery *s, const char *fmt, ...)
++int glyr_message (int verbosity, GlyrQuery * s, const char * fmt, ...)
+ {
+     gint written = 0;
+-    if(s != NULL || verbosity == -1) {
+-        if(verbosity == -1 || verbosity <= s->verbosity) {
++    if (s != NULL || verbosity == -1)
++    {
++        if (verbosity == -1 || verbosity <= s->verbosity)
++        {
+             va_list params;
+-            if(fmt != NULL) {
+-                va_start(params, fmt);
+-                written = _msg(fmt, params);
+-                va_end(params);
++            if (fmt != NULL)
++            {
++                va_start (params,fmt);
++                written = _msg (fmt,params);
++                va_end (params);
+             }
+         }
+     }
+@@ -78,14 +82,13 @@ int glyr_message(int verbosity, GlyrQuery *s, const char *fmt, ...)
+ /**
+ * Check if the size of a cover fits the specs
+ */
+-gboolean size_is_okay(int sZ, int min, int max)
++gboolean size_is_okay (int sZ, int min, int max)
+ {
+-    if((min == -1 && max == -1) ||
++    if ( (min == -1 && max == -1) ||
+             (min == -1 && max >= sZ) ||
+             (min <= sZ && max == -1) ||
+-            (min <= sZ && max >= sZ)) {
++            (min <= sZ && max >= sZ)  )
+         return TRUE;
+-    }
+ 
+     return FALSE;
+ }
+@@ -95,31 +98,35 @@ gboolean size_is_okay(int sZ, int min, int max)
+ /* cache incoming data in a GlyrMemCache
+  * libglyr is spending quite some time here
+  */
+-static size_t DL_buffer(void *puffer, size_t size, size_t nmemb, void *buff_data)
++static size_t DL_buffer (void *puffer, size_t size, size_t nmemb, void * buff_data)
+ {
+     size_t realsize = size * nmemb;
+-    DLBufferContainer *data = (DLBufferContainer *) buff_data;
+-    if(data != NULL) {
+-        GlyrMemCache *mem = data->cache;
+-        mem->data = realloc(mem->data, mem->size + realsize + 1);
+-        if(mem->data) {
+-            memcpy(& (mem->data[mem->size]), puffer, realsize);
++    DLBufferContainer * data = (DLBufferContainer *) buff_data;
++    if (data != NULL)
++    {
++        GlyrMemCache * mem = data->cache;
++        mem->data = realloc (mem->data, mem->size + realsize + 1);
++        if (mem->data)
++        {
++            memcpy (& (mem->data[mem->size]), puffer, realsize);
+             mem->size += realsize;
+             mem->data[mem->size] = 0;
+ 
+-            GlyrQuery *query = data->query;
+-            if(query && GET_ATOMIC_SIGNAL_EXIT(query)) {
++            GlyrQuery * query = data->query;
++            if (query && GET_ATOMIC_SIGNAL_EXIT (query) )
++            {
+                 return 0;
+             }
+ 
+             /* Test if a endmarker is in this buffer */
+-            const gchar *endmarker = data->endmarker;
+-            if(endmarker && strstr(mem->data, endmarker)) {
++            const gchar * endmarker = data->endmarker;
++            if (endmarker && strstr (mem->data,endmarker) )
+                 return 0;
+-            }
+-        } else {
+-            glyr_message(-1, NULL, "Caching failed: Out of memory.\n");
+-            glyr_message(-1, NULL, "Did you perhaps try to load a 4, GB .iso into your RAM?\n");
++        }
++        else
++        {
++            glyr_message (-1,NULL,"Caching failed: Out of memory.\n");
++            glyr_message (-1,NULL,"Did you perhaps try to load a 4,7GB .iso into your RAM?\n");
+         }
+     }
+     return realsize;
+@@ -127,40 +134,46 @@ static size_t DL_buffer(void *puffer, size_t size, size_t nmemb, void *buff_data
+ 
+ //////////////////////////////////////
+ 
+-void DL_set_data(GlyrMemCache *cache, const gchar *data, gint len)
++void DL_set_data (GlyrMemCache * cache, const gchar * data, gint len)
+ {
+-    if(cache != NULL) {
+-        g_free(cache->data);
+-
+-        cache->data = (gchar *) data;
+-        if(data != NULL) {
+-            cache->size = (len >= 0) ? (gsize) len : strlen(data);
+-            update_md5sum(cache);
+-        } else {
++    if (cache != NULL)
++    {
++        g_free (cache->data);
++
++        cache->data = (gchar*) data;
++        if (data != NULL)
++        {
++            cache->size = (len >= 0) ? (gsize) len : strlen (data);
++            update_md5sum (cache);
++        }
++        else
++        {
+             cache->size = 0;
+-            memset(cache->md5sum, 0, 16);
++            memset (cache->md5sum,0,16);
+         }
+     }
+ }
+ 
+ //////////////////////////////////////
+ 
+-GlyrMemCache *DL_copy(GlyrMemCache *cache)
++GlyrMemCache * DL_copy (GlyrMemCache * cache)
+ {
+-    GlyrMemCache *result = NULL;
+-    if(cache != NULL) {
+-        result = g_malloc0(sizeof(GlyrMemCache));
+-        memcpy(result, cache, sizeof(GlyrMemCache));
+-        if(cache->size > 0) {
++    GlyrMemCache * result = NULL;
++    if (cache != NULL)
++    {
++        result = g_malloc0 (sizeof (GlyrMemCache) );
++        memcpy (result,cache,sizeof (GlyrMemCache) );
++        if (cache->size > 0)
++        {
+             /* Remember NUL for strings */
+-            result->data = g_malloc(cache->size + 1);
++            result->data = g_malloc (cache->size + 1);
+             result->data[cache->size] = 0;
+-            memcpy(result->data, cache->data, cache->size);
++            memcpy (result->data,cache->data,cache->size);
+         }
+-        result->dsrc = g_strdup(cache->dsrc);
+-        result->prov = g_strdup(cache->prov);
+-        result->img_format = g_strdup(cache->img_format);
+-        memcpy(result->md5sum, cache->md5sum, 16);
++        result->dsrc = g_strdup (cache->dsrc);
++        result->prov = g_strdup (cache->prov);
++        result->img_format = g_strdup (cache->img_format);
++        memcpy (result->md5sum,cache->md5sum,16);
+ 
+         result->next = NULL;
+         result->prev = NULL;
+@@ -171,28 +184,32 @@ GlyrMemCache *DL_copy(GlyrMemCache *cache)
+ //////////////////////////////////////
+ 
+ // cleanup internal buffer if no longer used
+-void DL_free(GlyrMemCache *cache)
++void DL_free (GlyrMemCache *cache)
+ {
+-    if(cache) {
+-        if(cache->size && cache->data) {
+-            g_free(cache->data);
++    if (cache)
++    {
++        if (cache->size && cache->data)
++        {
++            g_free (cache->data);
+             cache->data = NULL;
+         }
+-        if(cache->dsrc) {
+-            g_free(cache->dsrc);
++        if (cache->dsrc)
++        {
++            g_free (cache->dsrc);
+             cache->dsrc = NULL;
+         }
+ 
+-        if(cache->prov) {
+-            g_free(cache->prov);
++        if (cache->prov)
++        {
++            g_free (cache->prov);
+             cache->prov = NULL;
+         }
+ 
+         cache->size = 0;
+         cache->type = GLYR_TYPE_UNKNOWN;
+ 
+-        g_free(cache->img_format);
+-        g_free(cache);
++        g_free (cache->img_format);
++        g_free (cache);
+         cache = NULL;
+     }
+ }
+@@ -200,10 +217,10 @@ void DL_free(GlyrMemCache *cache)
+ //////////////////////////////////////
+ 
+ // Use this to init the internal buffer
+-GlyrMemCache *DL_init(void)
++GlyrMemCache* DL_init (void)
+ {
+-    GlyrMemCache *cache = g_malloc0(sizeof(GlyrMemCache));
+-    memset(cache, 0, sizeof(GlyrMemCache));
++    GlyrMemCache * cache = g_malloc0 (sizeof (GlyrMemCache) );
++    memset (cache,0,sizeof (GlyrMemCache) );
+ 
+     cache->type = GLYR_TYPE_UNKNOWN;
+     cache->cached = FALSE;
+@@ -216,29 +233,37 @@ GlyrMemCache *DL_init(void)
+ //////////////////////////////////////
+ 
+ // Splits http_proxy to libcurl conform represantation
+-static gboolean proxy_to_curl(gchar *proxystring, char **userpwd, char **server)
++static gboolean proxy_to_curl (gchar * proxystring, char ** userpwd, char ** server)
+ {
+-    if(proxystring && userpwd && server) {
+-        if(proxystring != NULL) {
+-            gchar *ddot = strchr(proxystring, ':');
+-            gchar *asgn = strchr(proxystring, '@');
+-
+-            if(ddot == NULL || asgn < ddot) {
+-                *server  = g_strdup(proxystring);
++    if (proxystring && userpwd && server)
++    {
++        if (proxystring != NULL)
++        {
++            gchar * ddot = strchr (proxystring,':');
++            gchar * asgn = strchr (proxystring,'@');
++
++            if (ddot == NULL || asgn < ddot)
++            {
++                *server  = g_strdup (proxystring);
+                 *userpwd = NULL;
+                 return TRUE;
+-            } else {
+-                gsize len = strlen(proxystring);
+-                char *protocol = strstr(proxystring, "://");
+-
+-                if(protocol == NULL) {
+-                    protocol = (gchar *) proxystring;
+-                } else {
++            }
++            else
++            {
++                gsize len = strlen (proxystring);
++                char * protocol = strstr (proxystring,"://");
++
++                if (protocol == NULL)
++                {
++                    protocol = (gchar*) proxystring;
++                }
++                else
++                {
+                     protocol += 3;
+                 }
+ 
+-                *userpwd = g_strndup(protocol, asgn - protocol);
+-                *server  = g_strndup(asgn + 1, protocol + len - asgn);
++                *userpwd = g_strndup (protocol,asgn-protocol);
++                *server  = g_strndup (asgn+1,protocol+len-asgn);
+                 return TRUE;
+             }
+         }
+@@ -249,44 +274,51 @@ static gboolean proxy_to_curl(gchar *proxystring, char **userpwd, char **server)
+ 
+ //////////////////////////////////////
+ 
+-struct header_data {
+-    gchar *type;
+-    gchar *format;
+-    gchar *extra;
++struct header_data
++{
++    gchar * type;
++    gchar * format;
++    gchar * extra;
+ };
+ 
+ //////////////////////////////////////
+ 
+ /* Parse header file. Get Contenttype from it and save it in the header_data struct */
+-gsize header_cb(void *ptr, gsize size, gsize nmemb, void *userdata)
++gsize header_cb (void *ptr, gsize size, gsize nmemb, void *userdata)
+ {
+     gsize bytes = size * nmemb;
+-    if(ptr != NULL && userdata != NULL) {
++    if (ptr != NULL && userdata != NULL)
++    {
+         /* Transform safely into string */
+         gchar nulbuf[bytes + 1];
+-        memcpy(nulbuf, ptr, bytes);
++        memcpy (nulbuf,ptr,bytes);
+         nulbuf[bytes] = '\0';
+ 
+         /* We're only interested in the content type */
+-        gchar *cttp  = "Content-Type: ";
+-        gsize ctt_len = strlen(cttp);
+-        if(ctt_len < bytes && g_ascii_strncasecmp(cttp, nulbuf, ctt_len) == 0) {
+-            gchar **content_type = g_strsplit_set(nulbuf + ctt_len, " /;", 0);
+-            if(content_type != NULL) {
++        gchar * cttp  = "Content-Type: ";
++        gsize ctt_len = strlen (cttp);
++        if (ctt_len < bytes && g_ascii_strncasecmp (cttp,nulbuf,ctt_len) == 0)
++        {
++            gchar ** content_type = g_strsplit_set (nulbuf + ctt_len," /;",0);
++            if (content_type != NULL)
++            {
+                 gsize set_at = 0;
+-                gchar **elem = content_type;
+-                struct header_data *info = userdata;
++                gchar ** elem = content_type;
++                struct header_data * info = userdata;
+ 
+                 /* Set fields..  */
+-                while(elem[0] != NULL) {
+-                    if(elem[0][0] != '\0') {
+-                        switch(set_at) {
++                while (elem[0] != NULL)
++                {
++                    if (elem[0][0] != '\0')
++                    {
++                        switch (set_at)
++                        {
+                         case 0:
+-                            g_free(info->type);
+-                            info->type   = g_strdup(elem[0]);
++                            g_free (info->type);
++                            info->type   = g_strdup (elem[0]);
+                             break;
+                         case 1:
+-                            g_free(info->format);
++                            g_free (info->format);
+ 
+                             /*
+                              * Specialcase:
+@@ -294,24 +326,27 @@ gsize header_cb(void *ptr, gsize size, gsize nmemb, void *userdata)
+                              * for their images. This is annoying, but needs to be
+                              * handled nevertheless. Shame on you, htbackdrops.
+                              * */
+-                            if(g_ascii_strncasecmp(elem[0], "octet-stream", 12) == 0) {
+-                                g_free(info->type);
+-                                info->type   = g_strdup("image");
+-                                info->format = g_strdup("jpeg");
+-                            } else {
+-                                info->format = g_strdup(elem[0]);
++                            if (g_ascii_strncasecmp (elem[0],"octet-stream",12) == 0)
++                            {
++                                g_free (info->type);
++                                info->type   = g_strdup ("image");
++                                info->format = g_strdup ("jpeg");
++                            }
++                            else
++                            {
++                                info->format = g_strdup (elem[0]);
+                             }
+                             break;
+                         case 2:
+-                            g_free(info->extra);
+-                            info->extra  = g_strdup(elem[0]);
++                            g_free (info->extra);
++                            info->extra  = g_strdup (elem[0]);
+                             break;
+                         }
+                         set_at++;
+                     }
+                     elem++;
+                 }
+-                g_strfreev(content_type);
++                g_strfreev (content_type);
+             }
+         }
+     }
+@@ -321,94 +356,107 @@ gsize header_cb(void *ptr, gsize size, gsize nmemb, void *userdata)
+ //////////////////////////////////////
+ 
+ /* empty callback just prevent writing header to stdout */
+-gsize nearly_empty_callback(void *p, gsize size, gsize numb, void *pp_Query)
++gsize nearly_empty_callback (void * p, gsize size, gsize numb, void * pp_Query)
+ {
+-    GlyrQuery *query = (GlyrQuery *) pp_Query;
+-    return (query && GET_ATOMIC_SIGNAL_EXIT(query)) ? 0 : (size * numb);
++    GlyrQuery * query = (GlyrQuery *) pp_Query;
++    return (query && GET_ATOMIC_SIGNAL_EXIT (query) ) ? 0 : (size * numb);
+ }
+ 
+ //////////////////////////////////////
+ 
+-static void DL_setproxy(CURL *eh, gchar *proxystring)
++static void DL_setproxy (CURL *eh, gchar * proxystring)
+ {
+-    if(proxystring != NULL) {
+-        gchar *userpwd;
+-        gchar *server;
+-        proxy_to_curl(proxystring, &userpwd, &server);
+-
+-        if(server != NULL) {
+-            curl_easy_setopt(eh, CURLOPT_PROXY, server);
+-            g_free(server);
+-        } else {
+-            glyr_message(-1, NULL, "Warning: Invalid proxy string.\n");
++    if (proxystring != NULL)
++    {
++        gchar * userpwd;
++        gchar * server;
++        proxy_to_curl (proxystring,&userpwd,&server);
++
++        if (server != NULL)
++        {
++            curl_easy_setopt (eh, CURLOPT_PROXY,server);
++            g_free (server);
++        }
++        else
++        {
++            glyr_message (-1,NULL,"Warning: Invalid proxy string.\n");
+         }
+ 
+-        if(userpwd != NULL) {
+-            curl_easy_setopt(eh, CURLOPT_PROXYUSERPWD, userpwd);
+-            g_free(userpwd);
++        if (userpwd != NULL)
++        {
++            curl_easy_setopt (eh,CURLOPT_PROXYUSERPWD,userpwd);
++            g_free (userpwd);
+         }
+     }
+ }
+ 
+ //////////////////////////////////////
+ 
+-static struct header_data *retrieve_content_info(gchar *url, gchar *proxystring, gchar *useragent, GlyrQuery *query)
++static struct header_data * retrieve_content_info (gchar * url, gchar * proxystring, gchar * useragent, GlyrQuery * query)
+ {
+-    struct header_data *info = NULL;
+-    if(url != NULL) {
+-        CURL *eh = curl_easy_init();
++    struct header_data * info = NULL;
++    if (url != NULL)
++    {
++        CURL * eh = curl_easy_init();
+         CURLcode rc = CURLE_OK;
+ 
+-        info = g_malloc0(sizeof(struct header_data));
+-        gchar *link_user_agent =  g_strdup_printf("%s / linkvalidator", useragent);
++        info = g_malloc0 (sizeof (struct header_data) );
++        gchar * link_user_agent =  g_strdup_printf ("%s / linkvalidator",useragent);
+ 
+-        curl_easy_setopt(eh, CURLOPT_TIMEOUT, 10);
+-        curl_easy_setopt(eh, CURLOPT_NOSIGNAL, 1L);
+-        curl_easy_setopt(eh, CURLOPT_USERAGENT, link_user_agent);
+-        curl_easy_setopt(eh, CURLOPT_URL, url);
+-        curl_easy_setopt(eh, CURLOPT_FOLLOWLOCATION, TRUE);
+-        curl_easy_setopt(eh, CURLOPT_MAXREDIRS, 5L);
+-        curl_easy_setopt(eh, CURLOPT_HEADER, TRUE);
+-        curl_easy_setopt(eh, CURLOPT_SSL_VERIFYPEER, FALSE);
++        curl_easy_setopt (eh, CURLOPT_TIMEOUT, 10);
++        curl_easy_setopt (eh, CURLOPT_NOSIGNAL, 1L);
++        curl_easy_setopt (eh, CURLOPT_USERAGENT, link_user_agent);
++        curl_easy_setopt (eh, CURLOPT_URL,url);
++        curl_easy_setopt (eh, CURLOPT_FOLLOWLOCATION, TRUE);
++        curl_easy_setopt (eh, CURLOPT_MAXREDIRS, 5L);
++        curl_easy_setopt (eh, CURLOPT_HEADER,TRUE);
++        curl_easy_setopt (eh, CURLOPT_SSL_VERIFYPEER, FALSE);
+ 
+         /* Dirty hack here: Amazon bitches at me when setting NOBODY to true *
+          * But otherwise large images won't pass with other providers        *
+          * Check domain therefore..
+          */
+-        if(strstr(url, "amazon") != NULL) {
+-            curl_easy_setopt(eh, CURLOPT_NOBODY, FALSE);
+-        } else {
+-            curl_easy_setopt(eh, CURLOPT_NOBODY, TRUE);
++        if (strstr (url,"amazon") != NULL)
++        {
++            curl_easy_setopt (eh, CURLOPT_NOBODY,FALSE);
++        }
++        else
++        {
++            curl_easy_setopt (eh, CURLOPT_NOBODY,TRUE);
+         }
+ 
+-        curl_easy_setopt(eh, CURLOPT_HEADERFUNCTION, header_cb);
+-        curl_easy_setopt(eh, CURLOPT_WRITEFUNCTION, nearly_empty_callback);
+-        curl_easy_setopt(eh, CURLOPT_WRITEDATA, query);
+-        curl_easy_setopt(eh, CURLOPT_WRITEHEADER, info);
++        curl_easy_setopt (eh, CURLOPT_HEADERFUNCTION, header_cb);
++        curl_easy_setopt (eh, CURLOPT_WRITEFUNCTION, nearly_empty_callback);
++        curl_easy_setopt (eh, CURLOPT_WRITEDATA, query);
++        curl_easy_setopt (eh, CURLOPT_WRITEHEADER, info);
+ 
+         /* Set proxy, if any */
+-        DL_setproxy(eh, proxystring);
++        DL_setproxy (eh, proxystring);
+ 
+         /* This seemed to prevent some valid urls from passing. Strange. */
+-        //curl_easy_setopt(eh, CURLOPT_FAILONERROR, RUE);
++        //curl_easy_setopt(eh, CURLOPT_FAILONERROR,TRUE);
+ 
+-        rc = curl_easy_perform(eh);
+-        curl_easy_cleanup(eh);
++        rc = curl_easy_perform (eh);
++        curl_easy_cleanup (eh);
+ 
+-        if(rc != CURLE_OK) {
+-            if(GET_ATOMIC_SIGNAL_EXIT(query) == FALSE) {
+-                glyr_message(1, query, "- DLError: %s [%d]\n", curl_easy_strerror(rc), rc);
++        if (rc != CURLE_OK)
++        {
++            if (GET_ATOMIC_SIGNAL_EXIT (query) == FALSE)
++            {
++                glyr_message (1,query,"- DLError: %s [%d]\n",curl_easy_strerror (rc),rc);
+             }
+-            g_free(info);
++            g_free (info);
+             info = NULL;
+-        } else {
+-            /* Remove trailing newlines, arriage returns */
+-            chomp_breakline(info->type);
+-            chomp_breakline(info->format);
+-            chomp_breakline(info->extra);
++        }
++        else
++        {
++            /* Remove trailing newlines,carriage returns */
++            chomp_breakline (info->type);
++            chomp_breakline (info->format);
++            chomp_breakline (info->extra);
+         }
+ 
+-        g_free(link_user_agent);
++        g_free (link_user_agent);
+     }
+     return info;
+ }
+@@ -416,57 +464,58 @@ static struct header_data *retrieve_content_info(gchar *url, gchar *proxystring,
+ //////////////////////////////////////
+ 
+ // Init an easyhandler with all relevant options
+-static DLBufferContainer *DL_setopt(CURL *eh, GlyrMemCache *cache, const char *url, GlyrQuery *s, void *magic_private_ptr, long timeout, gchar *endmarker)
++static DLBufferContainer * DL_setopt (CURL *eh, GlyrMemCache * cache, const char * url, GlyrQuery * s, void * magic_private_ptr, long timeout, gchar * endmarker)
+ {
+     // Set options (see 'man curl_easy_setopt')
+-    curl_easy_setopt(eh, CURLOPT_TIMEOUT, timeout);
+-    curl_easy_setopt(eh, CURLOPT_NOSIGNAL, 1L);
++    curl_easy_setopt (eh, CURLOPT_TIMEOUT, timeout);
++    curl_easy_setopt (eh, CURLOPT_NOSIGNAL, 1L);
+ 
+     // last.fm and discogs require an useragent (wokrs without too)
+-    curl_easy_setopt(eh, CURLOPT_USERAGENT, (s && s->useragent) ? s->useragent : GLYR_DEFAULT_USERAGENT);
+-    curl_easy_setopt(eh, CURLOPT_HEADER, 0L);
++    curl_easy_setopt (eh, CURLOPT_USERAGENT, (s && s->useragent) ? s->useragent : GLYR_DEFAULT_USERAGENT);
++    curl_easy_setopt (eh, CURLOPT_HEADER, 0L);
+ 
+     // Pass vars to curl
+-    curl_easy_setopt(eh, CURLOPT_URL, url);
+-    curl_easy_setopt(eh, CURLOPT_PRIVATE, magic_private_ptr);
+-    curl_easy_setopt(eh, CURLOPT_VERBOSE, (s && s->verbosity >= 4));
+-    curl_easy_setopt(eh, CURLOPT_WRITEFUNCTION, DL_buffer);
+-    curl_easy_setopt(eh, CURLOPT_SSL_VERIFYPEER, FALSE);
+-
+-    DLBufferContainer *dlbuffer = g_malloc0(sizeof(DLBufferContainer));
+-    curl_easy_setopt(eh, CURLOPT_WRITEDATA, (void *) dlbuffer);
++    curl_easy_setopt (eh, CURLOPT_URL, url);
++    curl_easy_setopt (eh, CURLOPT_PRIVATE, magic_private_ptr);
++    curl_easy_setopt (eh, CURLOPT_VERBOSE, (s && s->verbosity >= 4) );
++    curl_easy_setopt (eh, CURLOPT_WRITEFUNCTION, DL_buffer);
++    curl_easy_setopt (eh, CURLOPT_SSL_VERIFYPEER, FALSE);
++
++    DLBufferContainer * dlbuffer = g_malloc0 (sizeof (DLBufferContainer) );
++    curl_easy_setopt (eh, CURLOPT_WRITEDATA, (void *) dlbuffer);
+     dlbuffer->cache = cache;
+     dlbuffer->endmarker = endmarker;
+     dlbuffer->query = s;
+ 
+     // amazon plugin requires redirects
+-    curl_easy_setopt(eh, CURLOPT_FOLLOWLOCATION, 1L);
+-    curl_easy_setopt(eh, CURLOPT_MAXREDIRS, (s) ? s->redirects : 2);
++    curl_easy_setopt (eh, CURLOPT_FOLLOWLOCATION, 1L);
++    curl_easy_setopt (eh, CURLOPT_MAXREDIRS, (s) ? s->redirects : 2);
+ 
+     // Do not download 404 pages
+-    curl_easy_setopt(eh, CURLOPT_FAILONERROR, 1L);
++    curl_easy_setopt (eh, CURLOPT_FAILONERROR, 1L);
+ 
+     // Set proxy to use
+-    DL_setproxy(eh, (gchar *)(s) ? s->proxy : NULL);
++    DL_setproxy (eh, (gchar*) (s) ? s->proxy : NULL);
+ 
+     // Discogs requires gzip compression
+-    curl_easy_setopt(eh, CURLOPT_ENCODING, "gzip");
++    curl_easy_setopt (eh, CURLOPT_ENCODING,"gzip");
+ 
+     // Don't save cookies - I had some quite embarassing moments
+     // when amazon's startpage showed me "Hooray for Boobies",
+     // because I searched for the Bloodhoundgang album...
+     // (because I have it already of course! ;-))
+-    curl_easy_setopt(eh, CURLOPT_COOKIEJAR , "");
++    curl_easy_setopt (eh, CURLOPT_COOKIEJAR ,"");
+ 
+     return dlbuffer;
+ }
+ 
+ //////////////////////////////////////
+ 
+-gboolean continue_search(gint current, GlyrQuery *s)
++gboolean continue_search (gint current, GlyrQuery * s)
+ {
+     gboolean decision = FALSE;
+-    if(s != NULL && GET_ATOMIC_SIGNAL_EXIT(s) == FALSE) {
++    if (s != NULL && GET_ATOMIC_SIGNAL_EXIT (s) == FALSE)
++    {
+         /* Take an educated guess, let the provider get more, because URLs might be wrong,
+          * as we check this later, it's good to have some more ULRs waiting for us,     *
+          * alternatively we might hit the maximum for one plugin (off by one!)          */
+@@ -477,7 +526,7 @@ gboolean continue_search(gint current, GlyrQuery *s)
+          */
+         gint pre_cache = (s->local_db) ? s->number : 0;
+         decision = (current + s->itemctr) < (s->number + buffering + pre_cache) &&
+-                   (current < s->plugmax || (s->plugmax == -1));
++                   (current < s->plugmax || (s->plugmax == -1) );
+ 
+     }
+     return decision;
+@@ -488,46 +537,55 @@ gboolean continue_search(gint current, GlyrQuery *s)
+ //////////////////////////////////////
+ 
+ /* Check for dupes. This does not affect the HEAD of the list, therefore no GList return */
+-gsize delete_dupes(GList *result, GlyrQuery *s)
++gsize delete_dupes (GList * result, GlyrQuery * s)
+ {
+-    if(!result || g_list_length(result) < 1) {
++    if (!result || g_list_length (result) < 1)
+         return 0;
+-    }
+ 
+     /* Build new hashes, the data might have changed */
+-    for(GList *elem = result; elem; elem = elem->next) {
+-        update_md5sum(elem->data);
++    for (GList * elem = result; elem; elem = elem->next)
++    {
++        update_md5sum (elem->data);
+     }
+ 
+     gint double_items = 0;
+-    for(GList *inode = result; inode; inode = inode->next) {
+-        GlyrMemCache *lval = inode->data;
++    for (GList * inode = result; inode; inode = inode->next)
++    {
++        GlyrMemCache * lval = inode->data;
+ 
+-        GList *jnode = result;
+-        while(jnode != NULL) {
++        GList * jnode = result;
++        while (jnode != NULL)
++        {
+             bool is_duplicate  = false;
+-            GlyrMemCache *rval = jnode->data;
++            GlyrMemCache * rval = jnode->data;
+ 
+-            if(lval && rval && rval != lval && lval->size == rval->size) {
++            if (lval && rval && rval != lval && lval->size == rval->size)
++            {
+                 /* Compare via checkums */
+-                if(CALC_MD5SUMS == false) {
+-                    if(!memcmp(lval->data, rval->data, rval->size)) {
++                if (CALC_MD5SUMS == false)
++                {
++                    if (!memcmp (lval->data,rval->data,rval->size) )
++                    {
+                         is_duplicate = true;
+                     }
+-                } else {
+-                    if(!memcmp(lval->md5sum, rval->md5sum, 16)) {
++                }
++                else
++                {
++                    if (!memcmp (lval->md5sum,rval->md5sum,16) )
++                    {
+                         is_duplicate = true;
+                     }
+                 }
+ 
+                 /* Delete this element.. */
+-                if(is_duplicate == true) {
+-                    DL_free(rval);
++                if (is_duplicate == true)
++                {
++                    DL_free (rval);
+ 
+                     /* Delete this ref from the list */
+-                    GList *to_free = jnode;
++                    GList * to_free = jnode;
+                     jnode = jnode->next;
+-                    result = g_list_delete_link(result, to_free);
++                    result = g_list_delete_link (result,to_free);
+ 
+                     /* Remember him.. */
+                     double_items++;
+@@ -544,52 +602,59 @@ gsize delete_dupes(GList *result, GlyrQuery *s)
+ //////////////////////////////////////
+ 
+ // Download a singe file NOT in parallel
+-GlyrMemCache *download_single(const char *url, GlyrQuery *s, const char *end)
++GlyrMemCache * download_single (const char* url, GlyrQuery * s, const char * end)
+ {
+-    if(url != NULL && is_blacklisted((gchar *) url) == false) {
++    if (url != NULL && is_blacklisted ( (gchar*) url) == false)
++    {
+         CURL *curl = NULL;
+         CURLcode res = 0;
+ 
+         /* Init handles */
+         curl = curl_easy_init();
+-        GlyrMemCache *dldata = DL_init();
++        GlyrMemCache * dldata = DL_init();
+ 
+         /* DL_buffer needs the 'end' mark.
+          * As I didnt want to introduce a new struct just for this
+          * I save it in->dsrc */
+-        if(end != NULL) {
+-            dldata->dsrc = g_strdup(end);
++        if (end != NULL)
++        {
++            dldata->dsrc = g_strdup (end);
+         }
+ 
+-        if(curl != NULL) {
++        if (curl != NULL)
++        {
+             /* Configure curl */
+-            DLBufferContainer *dlbuffer = DL_setopt(curl, dldata, url, s, NULL, (s) ? s->timeout : 5, NULL);
++            DLBufferContainer * dlbuffer = DL_setopt (curl,dldata,url,s,NULL, (s) ? s->timeout : 5, NULL);
+ 
+             /* Perform transaction */
+-            res = curl_easy_perform(curl);
++            res = curl_easy_perform (curl);
+ 
+             /* Free the pointer buff */
+-            g_free(dlbuffer);
++            g_free (dlbuffer);
+ 
+             /* Better check again */
+-            if(res != CURLE_OK && res != CURLE_WRITE_ERROR) {
+-                glyr_message(3, s, "glyr: E: singledownload: %s [E:%d]\n", curl_easy_strerror(res), res);
+-                DL_free(dldata);
++            if (res != CURLE_OK && res != CURLE_WRITE_ERROR)
++            {
++                glyr_message (3,s,"glyr: E: singledownload: %s [E:%d]\n", curl_easy_strerror (res),res);
++                DL_free (dldata);
+                 dldata = NULL;
+-            } else {
++            }
++            else
++            {
+                 /* Set the source URL */
+-                if(dldata->dsrc != NULL) {
+-                    g_free(dldata->dsrc);
++                if (dldata->dsrc != NULL)
++                {
++                    g_free (dldata->dsrc);
+                 }
+ 
+-                dldata->dsrc = g_strdup(url);
++                dldata->dsrc = g_strdup (url);
+             }
+ 
+-            curl_easy_cleanup(curl);
+-            update_md5sum(dldata);
++            curl_easy_cleanup (curl);
++            update_md5sum (dldata);
+             return dldata;
+         }
+-        DL_free(dldata);
++        DL_free (dldata);
+     }
+     return NULL;
+ }
+@@ -597,10 +662,11 @@ GlyrMemCache *download_single(const char *url, GlyrQuery *s, const char *end)
+ //////////////////////////////////////
+ 
+ // Init a callback object and a curl_easy_handle
+-static GlyrMemCache *init_async_cache(CURLM *cm, cb_object *capo, GlyrQuery *s, long timeout, gchar *endmark)
++static GlyrMemCache * init_async_cache (CURLM * cm, cb_object * capo, GlyrQuery *s, long timeout, gchar * endmark)
+ {
+-    GlyrMemCache *dlcache = NULL;
+-    if(capo && capo->url) {
++    GlyrMemCache * dlcache = NULL;
++    if (capo && capo->url)
++    {
+         /* Init handle */
+         CURL *eh = curl_easy_init();
+ 
+@@ -614,10 +680,10 @@ static GlyrMemCache *init_async_cache(CURLM *cm, cb_object *capo, GlyrQuery *s,
+         capo->dlbuffer = NULL;
+ 
+         /* Configure this handle */
+-        capo->dlbuffer = DL_setopt(eh, dlcache, capo->url, s, (void *) capo, timeout, endmark);
++        capo->dlbuffer = DL_setopt (eh, dlcache, capo->url, s, (void*) capo,timeout, endmark);
+ 
+         /* Add handle to multihandle */
+-        curl_multi_add_handle(cm, eh);
++        curl_multi_add_handle (cm, eh);
+ 
+         /* This is set to true once DL_buffer is reached */
+         capo->was_buffered = FALSE;
+@@ -628,22 +694,24 @@ static GlyrMemCache *init_async_cache(CURLM *cm, cb_object *capo, GlyrQuery *s,
+ 
+ //////////////////////////////////////
+ 
+-static GList *init_async_download(GList *url_list, GList *endmark_list, CURLM *cmHandle, GlyrQuery *s, int abs_timeout)
++static GList * init_async_download (GList * url_list, GList * endmark_list, CURLM * cmHandle, GlyrQuery * s, int abs_timeout)
+ {
+-    GList *cb_list = NULL;
+-    for(GList *elem = url_list; elem; elem = elem->next) {
+-        if(is_blacklisted((gchar *) elem->data) == false) {
+-            cb_object *obj = g_malloc0(sizeof(cb_object));
++    GList * cb_list = NULL;
++    for (GList * elem = url_list; elem; elem = elem->next)
++    {
++        if (is_blacklisted ( (gchar*) elem->data) == false)
++        {
++            cb_object * obj = g_malloc0 (sizeof (cb_object) );
+             obj->s = s;
+-            obj->url = g_strdup((gchar *)(elem->data));
+-            cb_list = g_list_prepend(cb_list, obj);
++            obj->url = g_strdup ( (gchar*) (elem->data) );
++            cb_list = g_list_prepend (cb_list,obj);
+             obj->consumed = FALSE;
+ 
+             /* Get the endmark from the endmark list */
+-            gint endmark_pos = g_list_position(url_list, elem);
+-            GList *glist_m  = g_list_nth(endmark_list, endmark_pos);
+-            gchar *endmark  = (glist_m == NULL) ? NULL : glist_m->data;
+-            obj->cache = init_async_cache(cmHandle, obj, s, abs_timeout, endmark);
++            gint endmark_pos = g_list_position (url_list,elem);
++            GList * glist_m  = g_list_nth (endmark_list,endmark_pos);
++            gchar * endmark  = (glist_m==NULL) ? NULL : glist_m->data;
++            obj->cache = init_async_cache (cmHandle,obj,s,abs_timeout,endmark);
+         }
+     }
+     return cb_list;
+@@ -651,46 +719,51 @@ static GList *init_async_download(GList *url_list, GList *endmark_list, CURLM *c
+ 
+ //////////////////////////////////////
+ 
+-static void destroy_async_download(GList *cb_list, CURLM *cmHandle, gboolean free_caches)
++static void destroy_async_download (GList * cb_list, CURLM * cmHandle, gboolean free_caches)
+ {
+     /* Free ressources */
+-    curl_multi_cleanup(cmHandle);
+-
+-    if(cb_list != NULL) {
+-        for(GList *elem = cb_list; elem; elem = elem->next) {
+-            cb_object *item = elem->data;
+-            if(item->handle != NULL) {
+-                curl_easy_cleanup(item->handle);
++    curl_multi_cleanup (cmHandle);
++
++    if (cb_list != NULL)
++    {
++        for (GList * elem = cb_list; elem; elem = elem->next)
++        {
++            cb_object * item = elem->data;
++            if (item->handle != NULL)
++            {
++                curl_easy_cleanup (item->handle);
+             }
+ 
+             /* Also free unbuffered items, that don't appear in the queue,
+              * even if free_caches was set to FALSE
+              */
+-            if((free_caches == TRUE || item->was_buffered == FALSE)
+-                    && item->consumed == FALSE) {
+-                DL_free(item->cache);
++            if ( (free_caches == TRUE || item->was_buffered == FALSE)
++                    && item->consumed == FALSE)
++            {
++                DL_free (item->cache);
+                 item->cache = NULL;
+             }
+ 
+-            g_free(item->dlbuffer);
+-            g_free(item->url);
++            g_free (item->dlbuffer);
++            g_free (item->url);
+         }
+-        glist_free_full(cb_list, g_free);
++        glist_free_full (cb_list,g_free);
+     }
+ }
+ 
+ //////////////////////////////////////
+ /* ----------------- THE HEART OF GOLD ------------------ */
+ //////////////////////////////////////
+-GList *async_download(GList *url_list, GList *endmark_list, GlyrQuery *s, long parallel_fac, long timeout_fac, AsyncDLCB asdl_callback, void *userptr, gboolean free_caches)
++GList * async_download (GList * url_list, GList * endmark_list, GlyrQuery * s, long parallel_fac, long timeout_fac, AsyncDLCB asdl_callback, void * userptr, gboolean free_caches)
+ {
+     /* Storage for result items */
+-    GList *item_list = NULL;
++    GList * item_list = NULL;
+ 
+-    if(url_list != NULL && s != NULL) {
++    if (url_list != NULL && s != NULL)
++    {
+         /* total timeout and parallel tries */
+-        long abs_timeout  = ABS(timeout_fac  * s->timeout);
+-        long abs_parallel = ABS(parallel_fac * s->parallel);
++        long abs_timeout  = ABS (timeout_fac  * s->timeout);
++        long abs_parallel = ABS (parallel_fac * s->parallel);
+ 
+         /* select() control */
+         int max_fd, queue_msg, running_handles = -1;
+@@ -698,57 +771,64 @@ GList *async_download(GList *url_list, GList *endmark_list, GlyrQuery *s, long p
+         fd_set ReadFDS, WriteFDS, ErrorFDS;
+ 
+         /* Curl Multi Handles (~ container for easy handlers) */
+-        CURLM    *cmHandle = curl_multi_init();
+-        curl_multi_setopt(cmHandle, CURLMOPT_MAXCONNECTS, abs_parallel);
+-        curl_multi_setopt(cmHandle, CURLMOPT_PIPELINING, 1L);
++        CURLM   * cmHandle = curl_multi_init();
++        curl_multi_setopt (cmHandle, CURLMOPT_MAXCONNECTS,abs_parallel);
++        curl_multi_setopt (cmHandle, CURLMOPT_PIPELINING, 1L);
+ 
+         /* Once set to true this will terminate the download */
+         gboolean terminate = FALSE;
+ 
+         /* Now create cb_objects */
+-        GList *cb_list = init_async_download(url_list, endmark_list, cmHandle, s, abs_timeout);
++        GList * cb_list = init_async_download (url_list,endmark_list,cmHandle,s,abs_timeout);
+ 
+-        while(GET_ATOMIC_SIGNAL_EXIT(s) == FALSE && running_handles != 0 && terminate == FALSE) {
++        while (GET_ATOMIC_SIGNAL_EXIT (s) == FALSE && running_handles != 0 && terminate == FALSE)
++        {
+             CURLMcode merr = CURLM_CALL_MULTI_PERFORM;
+-            while(merr == CURLM_CALL_MULTI_PERFORM) {
+-                merr = curl_multi_perform(cmHandle, &running_handles);
++            while (merr == CURLM_CALL_MULTI_PERFORM)
++            {
++                merr = curl_multi_perform (cmHandle, &running_handles);
+             }
+-            if(merr != CURLM_OK) {
+-                glyr_message(1, s, "Error: curl_multi_perform() failed!");
++            if (merr != CURLM_OK)
++            {
++                glyr_message (1,s,"Error: curl_multi_perform() failed!");
+                 return NULL;
+             }
+ 
+-            if(running_handles != 0) {
++            if (running_handles != 0)
++            {
+                 /* Set up fds */
+-                FD_ZERO(&ReadFDS);
+-                FD_ZERO(&WriteFDS);
+-                FD_ZERO(&ErrorFDS);
+-
+-                if(curl_multi_fdset(cmHandle, &ReadFDS, &WriteFDS, &ErrorFDS, &max_fd) ||
+-                        curl_multi_timeout(cmHandle, &wait_time)) {
+-                    glyr_message(1, s, "Error while selecting stream. Might be a bug.\n");
++                FD_ZERO (&ReadFDS);
++                FD_ZERO (&WriteFDS);
++                FD_ZERO (&ErrorFDS);
++
++                if (curl_multi_fdset (cmHandle, &ReadFDS, &WriteFDS, &ErrorFDS, &max_fd) ||
++                        curl_multi_timeout (cmHandle, &wait_time) )
++                {
++                    glyr_message (1,s,"Error while selecting stream. Might be a bug.\n");
+                     return NULL;
+                 }
+ 
+-                if(wait_time == -1) {
++                if (wait_time == -1)
+                     wait_time = 100;
+-                }
+ 
+-                if(wait_time >= s->timeout * 1000) {
++                if (wait_time >= s->timeout * 1000)
+                     wait_time = s->timeout * 1000;
+-                }
+ 
+                 /* Nothing happens.. */
+-                if(max_fd == -1) {
+-                    g_usleep(wait_time * 100);
+-                } else {
++                if (max_fd == -1)
++                {
++                    g_usleep (wait_time * 100);
++                }
++                else
++                {
+                     struct timeval Tmax;
+-                    Tmax.tv_sec  = (wait_time / 1000);
+-                    Tmax.tv_usec = (wait_time % 1000) * 1000;
++                    Tmax.tv_sec  = (wait_time/1000);
++                    Tmax.tv_usec = (wait_time%1000) *1000;
+ 
+                     /* Now block till something interesting happens with the download */
+-                    if(select(max_fd + 1, &ReadFDS, &WriteFDS, &ErrorFDS, &Tmax) == -1) {
+-                        glyr_message(1, s, "Error: select(%i <=> %li): %i: %s\n", max_fd + 1, wait_time, errno, strerror(errno));
++                    if (select (max_fd+1, &ReadFDS, &WriteFDS, &ErrorFDS, &Tmax) == -1)
++                    {
++                        glyr_message (1,s,"Error: select(%i <=> %li): %i: %s\n",max_fd+1, wait_time, errno, strerror (errno) );
+                         return NULL;
+                     }
+                 }
+@@ -756,24 +836,27 @@ GList *async_download(GList *url_list, GList *endmark_list, GlyrQuery *s, long p
+ 
+ 
+             /* select() returned. There might be some fresh flesh! - Check. */
+-            CURLMsg *msg;
+-            while(GET_ATOMIC_SIGNAL_EXIT(s) == FALSE &&
++            CURLMsg * msg;
++            while (GET_ATOMIC_SIGNAL_EXIT (s) == FALSE &&
+                     terminate == FALSE &&
+-                    (msg = curl_multi_info_read(cmHandle, &queue_msg))) {
++                    (msg = curl_multi_info_read (cmHandle, &queue_msg) ) )
++            {
+                 /* That download is ready to be viewed */
+-                if(msg->msg == CURLMSG_DONE) {
++                if (msg->msg == CURLMSG_DONE)
++                {
+                     /* Easy handle of this particular DL */
+                     CURL *easy_handle = msg->easy_handle;
+ 
+                     /* Get the callback object associated with the curl handle
+                      * for some odd reason curl requires a char * pointer */
+-                    cb_object *capo = NULL;
+-                    curl_easy_getinfo(msg->easy_handle, CURLINFO_PRIVATE, (((char **) &capo)));
++                    cb_object * capo = NULL;
++                    curl_easy_getinfo (msg->easy_handle, CURLINFO_PRIVATE, ( ( (char**) &capo) ) );
+ 
+                     /* It's useless if it's empty  */
+-                    if(capo && capo->cache && capo->cache->data == NULL) {
++                    if (capo && capo->cache && capo->cache->data == NULL)
++                    {
+                         capo->consumed = TRUE;
+-                        DL_free(capo->cache);
++                        DL_free (capo->cache);
+                         capo->cache = NULL;
+                     }
+ 
+@@ -781,94 +864,110 @@ GList *async_download(GList *url_list, GList *endmark_list, GlyrQuery *s, long p
+                     capo->was_buffered = TRUE;
+ 
+                     /* capo contains now the downloaded cache, ready to parse */
+-                    if(msg->data.result == CURLE_OK && capo && capo->cache) {
++                    if (msg->data.result == CURLE_OK && capo && capo->cache)
++                    {
+                         /* How many items from the callback will actually be added */
+                         gint to_add = 0;
+ 
+                         /* Stop download after this came in */
+                         bool stop_download = false;
+-                        GList *cb_results = NULL;
++                        GList * cb_results = NULL;
+ 
+                         /* Set origin */
+-                        if(capo->cache->dsrc != NULL) {
+-                            g_free(capo->cache->dsrc);
++                        if (capo->cache->dsrc != NULL)
++                        {
++                            g_free (capo->cache->dsrc);
+                         }
+-                        capo->cache->dsrc = g_strdup(capo->url);
++                        capo->cache->dsrc = g_strdup (capo->url);
+ 
+                         /* Call it if present */
+-                        if(asdl_callback != NULL) {
++                        if (asdl_callback != NULL)
++                        {
+                             /* Add parsed results or nothing if parsed result is empty */
+-                            cb_results = asdl_callback(capo, userptr, &stop_download, &to_add);
++                            cb_results = asdl_callback (capo,userptr,&stop_download,&to_add);
+                         }
+ 
+-                        if(cb_results != NULL) {
++                        if (cb_results != NULL)
++                        {
+                             /* Fill in the source filed (dsrc) if not already done */
+-                            for(GList *elem = cb_results; elem; elem = elem->next) {
+-                                GlyrMemCache *item = elem->data;
+-                                if(item && item->dsrc == NULL) {
++                            for (GList * elem = cb_results; elem; elem = elem->next)
++                            {
++                                GlyrMemCache * item = elem->data;
++                                if (item && item->dsrc == NULL)
++                                {
+                                     /* Plugin didn't do any special download */
+-                                    item->dsrc = g_strdup(capo->url);
++                                    item->dsrc = g_strdup (capo->url);
+                                 }
+-                                item_list = g_list_prepend(item_list, item);
++                                item_list = g_list_prepend (item_list,item);
+                             }
+-                            g_list_free(cb_results);
+-                        } else if(to_add != 0) {
++                            g_list_free (cb_results);
++                        }
++                        else if (to_add != 0)
++                        {
+                             /* Add it as raw data */
+-                            item_list = g_list_prepend(item_list, capo->cache);
+-                        } else {
++                            item_list = g_list_prepend (item_list,capo->cache);
++                        }
++                        else
++                        {
+                             capo->consumed = TRUE;
+-                            DL_free(capo->cache);
++                            DL_free (capo->cache);
+                             capo->cache = NULL;
+                         }
+ 
+                         /* So, shall we stop? */
+                         terminate = stop_download;
+ 
+-                    } else {
++                    }
++                    else
++                    {
+                         /* Something in this download was wrong. Tell us what. */
+-                        char *errstring = (char *) curl_easy_strerror(msg->data.result);
+-                        glyr_message(3, capo->s, "- glyr: Downloaderror: %s [errno:%d]\n",
+-                                     errstring ? errstring : "Unknown Error",
+-                                     msg->data.result);
++                        char * errstring = (char*) curl_easy_strerror (msg->data.result);
++                        glyr_message (3,capo->s,"- glyr: Downloaderror: %s [errno:%d]\n",
++                                      errstring ? errstring : "Unknown Error",
++                                      msg->data.result);
+ 
+-                        glyr_message(3, capo->s, "  On URL: ");
+-                        glyr_message(3, capo->s, "%s\n", capo->url);
++                        glyr_message (3,capo->s,"  On URL: ");
++                        glyr_message (3,capo->s,"%s\n",capo->url);
+ 
+-                        DL_free(capo->cache);
++                        DL_free (capo->cache);
+                         capo->cache = NULL;
+                         capo->consumed = TRUE;
+                     }
+ 
+                     /* We're done with this one.. bybebye */
+-                    curl_multi_remove_handle(cmHandle, easy_handle);
+-                    curl_easy_cleanup(easy_handle);
++                    curl_multi_remove_handle (cmHandle,easy_handle);
++                    curl_easy_cleanup (easy_handle);
+                     capo->handle = NULL;
+-                } else {
++                }
++                else
++                {
+                     /* Something in the multidownloading gone wrong */
+-                    glyr_message(1, s, "Error: multiDownload-errorcode: %d\n", msg->msg);
++                    glyr_message (1,s,"Error: multiDownload-errorcode: %d\n",msg->msg);
+                 }
+             }
+         }
+-        destroy_async_download(cb_list, cmHandle, free_caches);
++        destroy_async_download (cb_list,cmHandle,free_caches);
+     }
+     return item_list;
+ }
+ 
+ //////////////////////////////////////
+ 
+-struct wrap_retrieve_pass_data {
+-    gchar *url;
+-    GlyrQuery *query;
++struct wrap_retrieve_pass_data
++{
++    gchar * url;
++    GlyrQuery * query;
+ };
+ 
+-static void *wrap_retrieve_content(gpointer data)
++static void * wrap_retrieve_content (gpointer data)
+ {
+-    struct header_data *head = NULL;
+-    if(data != NULL) {
+-        struct wrap_retrieve_pass_data *passed = data;
+-        GlyrQuery *query = passed->query;
+-        head = retrieve_content_info(passed->url, (gchar *) query->proxy, (gchar *) query->useragent, query);
+-        g_free(passed);
++    struct header_data * head = NULL;
++    if (data != NULL)
++    {
++        struct wrap_retrieve_pass_data * passed = data;
++        GlyrQuery * query = passed->query;
++        head = retrieve_content_info (passed->url, (gchar*) query->proxy, (gchar*) query->useragent,query);
++        g_free (passed);
+         passed = NULL;
+     }
+     return head;
+@@ -876,77 +975,90 @@ static void *wrap_retrieve_content(gpointer data)
+ 
+ //////////////////////////////////////
+ 
+-static void check_all_types_in_url_list(GList *cache_list, GlyrQuery *s)
++static void check_all_types_in_url_list (GList * cache_list, GlyrQuery * s)
+ {
+-    if(cache_list != NULL) {
+-        GHashTable *thread_id_table = g_hash_table_new(g_direct_hash, g_direct_equal);
+-        GList *thread_list = NULL;
+-
+-        glyr_message(2, s, "#[%02d/%02d] Checking image-types: [", s->itemctr, s->number);
+-
+-        for(GList *elem = cache_list; elem; elem = elem->next) {
+-            GlyrMemCache *item = elem->data;
+-            if(item != NULL) {
+-                struct wrap_retrieve_pass_data *passer = g_malloc0(sizeof(struct wrap_retrieve_pass_data));
++    if (cache_list != NULL)
++    {
++        GHashTable * thread_id_table = g_hash_table_new (g_direct_hash,g_direct_equal);
++        GList * thread_list = NULL;
++
++        glyr_message (2,s,"#[%02d/%02d] Checking image-types: [",s->itemctr,s->number);
++
++        for (GList * elem = cache_list; elem; elem = elem->next)
++        {
++            GlyrMemCache * item = elem->data;
++            if (item != NULL)
++            {
++                struct wrap_retrieve_pass_data * passer = g_malloc0 (sizeof (struct wrap_retrieve_pass_data) );
+                 passer->url   = item->data;
+                 passer->query = s;
+ 
+-                GThread *thread = g_thread_new("content_retriever",
+-                                               (GThreadFunc) wrap_retrieve_content,
+-                                               passer);
++                GThread * thread = g_thread_new("content_retriever",
++                        (GThreadFunc) wrap_retrieve_content,
++                        passer);
+ 
+-                if(thread != NULL) {
+-                    thread_list = g_list_prepend(thread_list, thread);
++                if (thread != NULL)
++                {
++                    thread_list = g_list_prepend (thread_list,thread);
+                 }
+-                g_hash_table_insert(thread_id_table, thread, item);
++                g_hash_table_insert (thread_id_table,thread,item);
+             }
+         }
+ 
+-        for(GList *thread = thread_list; thread; thread = thread->next) {
++        for (GList * thread = thread_list; thread; thread = thread->next)
++        {
+             gboolean success = FALSE;
+-            struct header_data *info = g_thread_join(thread->data);
+-            if(info != NULL) {
+-                GlyrMemCache *linked_cache = g_hash_table_lookup(thread_id_table, thread->data);
+-                if(linked_cache != NULL) {
+-                    if(g_strcmp0(info->type, "image") == 0) {
+-                        linked_cache->img_format = g_strdup(info->format);
++            struct header_data * info = g_thread_join (thread->data);
++            if (info != NULL)
++            {
++                GlyrMemCache * linked_cache = g_hash_table_lookup (thread_id_table,thread->data);
++                if (linked_cache != NULL)
++                {
++                    if (g_strcmp0 (info->type,"image") == 0)
++                    {
++                        linked_cache->img_format = g_strdup (info->format);
+                         success = TRUE;
+                     }
+-                } else {
+-                    glyr_message(1, s, "glyr: Uh oh.. empty link in hashtable..\n");
+                 }
+-                g_free(info->format);
+-                g_free(info->type);
+-                g_free(info->extra);
+-                g_free(info);
++                else
++                {
++                    glyr_message (1,s,"glyr: Uh oh.. empty link in hashtable..\n");
++                }
++                g_free (info->format);
++                g_free (info->type);
++                g_free (info->extra);
++                g_free (info);
+             }
+ 
+-            glyr_message(2, s, "%c", (success) ? '.' : '!');
++            glyr_message (2,s,"%c", (success) ? '.' : '!');
+         }
+-        g_list_free(thread_list);
+-        g_hash_table_destroy(thread_id_table);
+-        glyr_message(2, s, "]");
++        g_list_free (thread_list);
++        g_hash_table_destroy (thread_id_table);
++        glyr_message (2,s,"]");
+     }
+ }
+ 
+ //////////////////////////////////////
+ 
+-static gboolean format_is_allowed(gchar *format, gchar *allowed)
++static gboolean format_is_allowed (gchar * format, gchar * allowed)
+ {
+     /* Let everything pass */
+-    if(allowed == NULL) {
++    if (allowed == NULL)
++    {
+         return TRUE;
+     }
+ 
+     gboolean result = FALSE;
+-    if(format != NULL && allowed != NULL) {
+-        gchar *token;
++    if (format != NULL && allowed != NULL)
++    {
++        gchar * token;
+         gsize offset = 0;
+-        gsize len = strlen(allowed);
++        gsize len = strlen (allowed);
+ 
+-        while(!result && (token = get_next_word(allowed, GLYR_DEFAULT_FROM_ARGUMENT_DELIM, &offset, len)) != NULL) {
+-            result = (g_strcmp0(token, format) == 0);
+-            g_free(token);
++        while (!result && (token = get_next_word (allowed,GLYR_DEFAULT_FROM_ARGUMENT_DELIM,&offset,len) ) != NULL)
++        {
++            result = (g_strcmp0 (token,format) == 0);
++            g_free (token);
+         }
+     }
+     return result;
+@@ -955,28 +1067,32 @@ static gboolean format_is_allowed(gchar *format, gchar *allowed)
+ 
+ //////////////////////////////////////
+ 
+-static gint delete_wrong_formats(GList **list, GlyrQuery *s)
++static gint delete_wrong_formats (GList ** list, GlyrQuery * s)
+ {
+     /* Now compare it agains the format. */
+     gsize invalid_format_counter = 0;
+-    GList *new_head = *list;
+-    GList *elem = new_head;
++    GList * new_head = *list;
++    GList * elem = new_head;
+ 
+-    gchar *allowed_formats = s->allowed_formats;
+-    if(allowed_formats == NULL) {
++    gchar * allowed_formats = s->allowed_formats;
++    if (allowed_formats == NULL)
++    {
+         allowed_formats = GLYR_DEFAULT_ALLOWED_FORMATS;
+     }
+ 
+-    while(elem != NULL) {
+-        GlyrMemCache *item = elem->data;
+-        if(item != NULL) {
+-            if(format_is_allowed(item->img_format, allowed_formats) == FALSE) {
+-                GList *to_delete = elem;
++    while (elem != NULL)
++    {
++        GlyrMemCache * item = elem->data;
++        if (item != NULL)
++        {
++            if (format_is_allowed (item->img_format,allowed_formats) == FALSE)
++            {
++                GList * to_delete = elem;
+                 elem = elem->next;
+                 invalid_format_counter++;
+ 
+-                new_head = g_list_delete_link(new_head, to_delete);
+-                DL_free(item);
++                new_head = g_list_delete_link (new_head,to_delete);
++                DL_free (item);
+                 item = NULL;
+                 continue;
+             }
+@@ -990,39 +1106,43 @@ static gint delete_wrong_formats(GList **list, GlyrQuery *s)
+ 
+ //////////////////////////////////////
+ 
+-static GList *kick_out_wrong_formats(GList *data_list, GlyrQuery *s)
++static GList * kick_out_wrong_formats (GList * data_list, GlyrQuery * s)
+ {
+-    GList *new_head = data_list;
++    GList * new_head = data_list;
+ 
+     /* Parallely check if the format is what we wanted */
+-    check_all_types_in_url_list(new_head, s);
++    check_all_types_in_url_list (new_head,s);
+ 
+     /* Kick the wrong ones */
+-    gint invalid_format_counter = delete_wrong_formats(&new_head, s);
++    gint invalid_format_counter = delete_wrong_formats (&new_head,s);
+ 
+-    glyr_message(2, s, " (-%d item(s) less)\n", invalid_format_counter);
++    glyr_message (2,s," (-%d item(s) less)\n",invalid_format_counter);
+     return new_head;
+ }
+ 
+ //////////////////////////////////////
+ 
+-static void do_charset_conversion(MetaDataSource *source, GList *text_list)
++static void do_charset_conversion (MetaDataSource * source, GList * text_list)
+ {
+-    if(source != NULL && text_list != NULL) {
+-        for(GList *elem = text_list; elem; elem = elem->next) {
+-            GlyrMemCache *cache = elem->data;
++    if (source != NULL && text_list != NULL)
++    {
++        for (GList * elem = text_list; elem; elem = elem->next)
++        {
++            GlyrMemCache * cache = elem->data;
+ 
+             /* We might need to unescape the HTML Utf8 encoded strings first, this is done later anyway. */
+-            gchar *utf8_string = unescape_html_UTF8(cache->data);
+-            if(utf8_string != NULL) {
++            gchar * utf8_string = unescape_html_UTF8 (cache->data);
++            if (utf8_string != NULL)
++            {
+                 gsize new_len;
+-                gchar *conv = convert_charset(utf8_string, "UTF-8", source->encoding, &new_len);
+-                if(conv != NULL) {
++                gchar * conv = convert_charset (utf8_string,"UTF-8",source->encoding,&new_len);
++                if (conv != NULL)
++                {
+                     cache->size = new_len;
+-                    g_free(cache->data);
++                    g_free (cache->data);
+                     cache->data = conv;
+                 }
+-                g_free(utf8_string);
++                g_free (utf8_string);
+             }
+         }
+     }
+@@ -1030,53 +1150,62 @@ static void do_charset_conversion(MetaDataSource *source, GList *text_list)
+ 
+ //////////////////////////////////////
+ 
+-static GList *check_for_forced_utf8(GlyrQuery *query, GList *text_list)
++static GList * check_for_forced_utf8 (GlyrQuery * query, GList * text_list)
+ {
+     gint deleted = 0;
+-    GList *new_head = text_list;
+-    if(query != NULL && text_list != NULL && query->force_utf8 == TRUE) {
+-        glyr_message(2, query, "#[%02d/%02d] Checking encoding [", g_list_length(text_list), query->number);
+-
+-        GList *elem = text_list;
+-        while(elem != NULL) {
+-            GlyrMemCache *cache = elem->data;
+-
+-            const gchar *end_of_valid_utf8 = NULL;
+-            if(cache && g_utf8_validate(cache->data, cache->size, &end_of_valid_utf8) == FALSE) {
++    GList * new_head = text_list;
++    if (query != NULL && text_list != NULL && query->force_utf8 == TRUE)
++    {
++        glyr_message (2,query,"#[%02d/%02d] Checking encoding [",g_list_length (text_list),query->number);
++
++        GList * elem = text_list;
++        while (elem != NULL)
++        {
++            GlyrMemCache * cache = elem->data;
++
++            const gchar * end_of_valid_utf8 = NULL;
++            if (cache && g_utf8_validate (cache->data,cache->size,&end_of_valid_utf8) == FALSE)
++            {
+                 /* UTF8 was forced, and this cache didn't pass -> deletre */
+-                glyr_message(2, query, "!");
++                glyr_message (2,query,"!");
+ 
+-                DL_free(cache);
++                DL_free (cache);
+                 deleted++;
+ 
+-                GList *to_delete = elem;
++                GList * to_delete = elem;
+                 elem = elem->next;
+-                new_head = g_list_delete_link(new_head, to_delete);
++                new_head = g_list_delete_link (new_head,to_delete);
+                 continue;
+-            } else {
+-                glyr_message(2, query, ".");
++            }
++            else
++            {
++                glyr_message (2,query,".");
+                 elem = elem->next;
+             }
+         }
+-        glyr_message(2, query, "] (-%d item(s) less)\n", deleted);
++        glyr_message (2,query,"] (-%d item(s) less)\n",deleted);
+     }
+     return new_head;
+ }
+ 
+ //////////////////////////////////////
+ 
+-static void normalize_utf8(GList *text_list)
++static void normalize_utf8 (GList * text_list)
+ {
+-    for(GList *elem = text_list; elem; elem = elem->next) {
+-        GlyrMemCache *cache = elem->data;
+-        if(cache != NULL && cache->data) {
+-            if(g_utf8_validate(cache->data, -1, NULL) != FALSE) {
+-                gchar *normalized_utf8 = g_utf8_normalize(cache->data, -1, G_NORMALIZE_NFKC);
+-                if(normalized_utf8 != NULL) {
++    for (GList * elem = text_list; elem; elem = elem->next)
++    {
++        GlyrMemCache * cache = elem->data;
++        if (cache != NULL && cache->data)
++        {
++            if (g_utf8_validate (cache->data,-1,NULL) != FALSE)
++            {
++                gchar * normalized_utf8 = g_utf8_normalize (cache->data,-1,G_NORMALIZE_NFKC);
++                if (normalized_utf8 != NULL)
++                {
+                     /* Swap cache contents */
+-                    g_free(cache->data);
++                    g_free (cache->data);
+                     cache->data = normalized_utf8;
+-                    cache->size = strlen(normalized_utf8);
++                    cache->size = strlen (normalized_utf8);
+                 }
+             }
+         }
+@@ -1085,27 +1214,32 @@ static void normalize_utf8(GList *text_list)
+ 
+ //////////////////////////////////////
+ 
+-static gint delete_already_cached_items(cb_object *capo, GList **list)
++static gint delete_already_cached_items (cb_object * capo, GList ** list)
+ {
+-    if(capo->s->db_autoread == FALSE) {
++    if (capo->s->db_autoread == FALSE)
++    {
+         return 0;
+     }
+ 
+     gint deleted = 0;
+-    if(capo && capo->s->local_db) {
+-        GList *elem = *list;
+-        while(elem != NULL) {
+-            GlyrMemCache *item = elem->data;
+-            if(item != NULL && item->dsrc == NULL && capo->s->imagejob) {
+-                item->dsrc = g_strdup(item->data);
++    if (capo && capo->s->local_db)
++    {
++        GList * elem = *list;
++        while (elem != NULL)
++        {
++            GlyrMemCache * item = elem->data;
++            if (item != NULL && item->dsrc == NULL && capo->s->imagejob)
++            {
++                item->dsrc = g_strdup (item->data);
+             }
+ 
+-            if(item && db_contains(capo->s->local_db, item)) {
+-                GList *to_delete = elem;
++            if (item && db_contains (capo->s->local_db,item) )
++            {
++                GList * to_delete = elem;
+                 elem = elem->next;
+-                *list = g_list_delete_link(*list, to_delete);
++                *list= g_list_delete_link (*list,to_delete);
+ 
+-                DL_free(item);
++                DL_free (item);
+                 deleted++;
+                 continue;
+             }
+@@ -1117,14 +1251,19 @@ static gint delete_already_cached_items(cb_object *capo, GList **list)
+ 
+ //////////////////////////////////////
+ 
+-static void fix_data_types(GList *list, MetaDataSource *src, GlyrQuery *query)
++static void fix_data_types (GList * list, MetaDataSource * src, GlyrQuery * query)
+ {
+-    for(GList *elem = list; elem; elem = elem->next) {
+-        GlyrMemCache *item = elem->data;
+-        if(item != NULL && item->type == GLYR_TYPE_UNKNOWN) {
+-            if(TYPE_IS_IMAGE(query->type) && query->download == FALSE) {
++    for (GList * elem = list; elem; elem = elem->next)
++    {
++        GlyrMemCache * item = elem->data;
++        if (item != NULL && item->type == GLYR_TYPE_UNKNOWN)
++        {
++            if (TYPE_IS_IMAGE (query->type) && query->download == FALSE)
++            {
+                 item->type = GLYR_TYPE_IMG_URL;
+-            } else {
++            }
++            else
++            {
+                 item->type = src->data_type;
+             }
+         }
+@@ -1135,61 +1274,77 @@ static void fix_data_types(GList *list, MetaDataSource *src, GlyrQuery *query)
+ //////////////////////////////////////
+ 
+ /* The actual call to the metadata provider here, coming from the downloader, triggered by start_engine() */
+-static GList *call_provider_callback(cb_object *capo, void *userptr, bool *stop_download, gint *to_add)
++static GList * call_provider_callback (cb_object * capo, void * userptr, bool * stop_download, gint * to_add)
+ {
+-    GList *parsed = NULL;
+-    if(userptr != NULL) {
++    GList * parsed = NULL;
++    if (userptr != NULL)
++    {
+         /* Get MetaDataSource correlated to this URL */
+-        GHashTable *assoc = (GHashTable *) userptr;
+-        MetaDataSource *plugin = g_hash_table_lookup(assoc, capo->url);
++        GHashTable * assoc = (GHashTable*) userptr;
++        MetaDataSource * plugin = g_hash_table_lookup (assoc,capo->url);
+ 
+-        if(plugin != NULL) {
+-            if(capo->s->itemctr < capo->s->number) {
++        if (plugin != NULL)
++        {
++            if (capo->s->itemctr < capo->s->number)
++            {
+                 /* Call the provider's parser */
+-                GList *raw_parsed_data = plugin->parser(capo);
++                GList * raw_parsed_data = plugin->parser (capo);
+ 
+                 /* Set the default type if not known otherwise */
+-                fix_data_types(raw_parsed_data, plugin, capo->s);
++                fix_data_types (raw_parsed_data,plugin,capo->s);
+ 
+                 /* Also do some duplicate check already */
+-                gsize less = delete_dupes(raw_parsed_data, capo->s);
+-                if(less > 0) {
+-                    gsize items_now = g_list_length(raw_parsed_data) + capo->s->itemctr - less;
+-                    glyr_message(2, capo->s, "#[%02d/%02d] Inner check found %ld dupes\n", items_now, capo->s->number, less);
++                gsize less = delete_dupes (raw_parsed_data,capo->s);
++                if (less > 0)
++                {
++                    gsize items_now = g_list_length (raw_parsed_data) + capo->s->itemctr - less;
++                    glyr_message (2,capo->s,"#[%02d/%02d] Inner check found %ld dupes\n",items_now,capo->s->number,less);
+                 }
+ 
+                 /* Look up if items already in cache */
+-                less = delete_already_cached_items(capo, &raw_parsed_data);
+-                if(less > 0) {
+-                    gsize items_now = g_list_length(raw_parsed_data) + capo->s->itemctr - less;
+-                    glyr_message(2, capo->s, "#[%02d/%02d] DB lookup found %ld dupes\n", items_now, capo->s->number, less);
++                less = delete_already_cached_items (capo,&raw_parsed_data);
++                if (less > 0)
++                {
++                    gsize items_now = g_list_length (raw_parsed_data) + capo->s->itemctr - less;
++                    glyr_message (2,capo->s,"#[%02d/%02d] DB lookup found %ld dupes\n",items_now,capo->s->number,less);
+                 }
+ 
+                 /* Any items left to kill? */
+-                if(g_list_length(raw_parsed_data) != 0) {
++                if (g_list_length (raw_parsed_data) != 0)
++                {
+                     /* We shouldn't check (e.g) lyrics if they are a valid URL ;-) */
+-                    if(capo->s->imagejob == TRUE) {
+-                        raw_parsed_data = kick_out_wrong_formats(raw_parsed_data, capo->s);
+-                    } else { /* We should look if charset conversion is requested */
+-                        normalize_utf8(raw_parsed_data);
+-                        if(plugin->encoding != NULL) {
+-                            glyr_message(2, capo->s, "#[%02d/%02d] Attempting to convert charsets\n", g_list_length(raw_parsed_data), capo->s->number);
+-                            do_charset_conversion(plugin, raw_parsed_data);
++                    if (capo->s->imagejob == TRUE)
++                    {
++                        raw_parsed_data = kick_out_wrong_formats (raw_parsed_data,capo->s);
++                    }
++                    else /* We should look if charset conversion is requested */
++                    {
++                        normalize_utf8 (raw_parsed_data);
++                        if (plugin->encoding != NULL)
++                        {
++                            glyr_message (2,capo->s,"#[%02d/%02d] Attempting to convert charsets\n",g_list_length (raw_parsed_data),capo->s->number);
++                            do_charset_conversion (plugin, raw_parsed_data);
+                         }
+-                        raw_parsed_data = check_for_forced_utf8(capo->s, raw_parsed_data);
++                        raw_parsed_data = check_for_forced_utf8 (capo->s,raw_parsed_data);
+                     }
+ 
+-                    if(g_list_length(raw_parsed_data) != 0) {
+-                        for(GList *elem = raw_parsed_data; elem; elem = elem->next) {
+-                            GlyrMemCache *item = elem->data;
+-                            if(item != NULL) {
+-                                if(capo->s->itemctr < capo->s->number) {
++                    if (g_list_length (raw_parsed_data) != 0)
++                    {
++                        for (GList * elem = raw_parsed_data; elem; elem = elem->next)
++                        {
++                            GlyrMemCache * item = elem->data;
++                            if (item != NULL)
++                            {
++                                if (capo->s->itemctr < capo->s->number)
++                                {
+                                     /* Only reference to the plugin -> copy providername */
+-                                    item->prov = g_strdup(plugin->name);
+-                                    parsed = g_list_prepend(parsed, item);
++                                    item->prov = g_strdup (plugin->name);
++                                    parsed = g_list_prepend (parsed,item);
+                                     capo->s->itemctr++;
+-                                } else { /* Not needed anymore. Forget this item */
+-                                    DL_free(item);
++                                }
++                                else /* Not needed anymore. Forget this item */
++                                {
++                                    DL_free (item);
+                                     item = NULL;
+ 
+                                     /* Also skip other downloads */
+@@ -1199,23 +1354,27 @@ static GList *call_provider_callback(cb_object *capo, void *userptr, bool *stop_
+                         }
+ 
+                         /* Forget those pointers */
+-                        g_list_free(raw_parsed_data);
++                        g_list_free (raw_parsed_data);
+                     }
+                 }
+             }
+-        } else {
+-            glyr_message(1, capo->s, "glyr: hashmap lookup failed. Cannot call plugin => Bug.\n");
++        }
++        else
++        {
++            glyr_message (1,capo->s,"glyr: hashmap lookup failed. Cannot call plugin => Bug.\n");
+         }
+ 
+     }
+     /* We replace the cache with a new one -> free the old one */
+-    if(capo->cache != NULL) {
+-        DL_free(capo->cache);
++    if (capo->cache != NULL)
++    {
++        DL_free (capo->cache);
+         capo->cache = NULL;
+     }
+ 
+     /* Do not add raw data */
+-    if(parsed == NULL) {
++    if (parsed == NULL)
++    {
+         *to_add = 0;
+     }
+ 
+@@ -1224,17 +1383,19 @@ static GList *call_provider_callback(cb_object *capo, void *userptr, bool *stop_
+ 
+ //////////////////////////////////////
+ 
+-gboolean provider_is_enabled(GlyrQuery *q, MetaDataSource *f)
++gboolean provider_is_enabled (GlyrQuery * q, MetaDataSource * f)
+ {
+-    if(q->lang_aware_only &&
++    if (q->lang_aware_only &&
+             f->lang_aware == false &&
+             q->imagejob == false   &&
+-            g_strcmp0(f->name, "local") != 0) {
++            g_strcmp0 (f->name,"local") != 0)
++    {
+         return FALSE;
+     }
+ 
+     /* Assume 'all we have' */
+-    if(q->from == NULL) {
++    if (q->from == NULL)
++    {
+         return TRUE;
+     }
+ 
+@@ -1244,31 +1405,33 @@ gboolean provider_is_enabled(GlyrQuery *q, MetaDataSource *f)
+     gboolean all_occured = FALSE;
+ 
+     /* split string */
+-    if(f->name != NULL) {
+-        gsize name_len = strlen(f->name);
+-        gsize len = strlen(q->from);
++    if (f->name != NULL)
++    {
++        gsize name_len = strlen (f->name);
++        gsize len = strlen (q->from);
+         gsize offset = 0;
+ 
+-        gchar *token = NULL;
+-        while((token = get_next_word(q->from, GLYR_DEFAULT_FROM_ARGUMENT_DELIM, &offset, len))) {
+-            if(token != NULL) {
+-                gsize token_len = strlen(token);
+-                gchar *back = token;
++        gchar * token = NULL;
++        while ( (token = get_next_word (q->from,GLYR_DEFAULT_FROM_ARGUMENT_DELIM,&offset,len) ) )
++        {
++            if (token != NULL)
++            {
++                gsize token_len = strlen (token);
++                gchar * back = token;
+ 
+                 gboolean minus;
+-                if((minus = token[0] == '-') || token[0] == '+') {
++                if ( (minus = token[0] == '-') || token[0] == '+')
+                     token++;
+-                }
+ 
+-                if(!g_ascii_strncasecmp(token, "all", token_len)) {
++                if (!g_ascii_strncasecmp (token,"all",token_len) )
+                     all_occured = TRUE;
+-                }
+ 
+-                if((token[0] == f->key && token_len == 1) || !g_ascii_strncasecmp(token, f->name, name_len)) {
++                if ( (token[0] == f->key && token_len == 1) || !g_ascii_strncasecmp (token,f->name,name_len) )
++                {
+                     is_excluded =  minus;
+                     is_found    = !minus;
+                 }
+-                g_free(back);
++                g_free (back);
+             }
+         }
+     }
+@@ -1277,29 +1440,34 @@ gboolean provider_is_enabled(GlyrQuery *q, MetaDataSource *f)
+ 
+ //////////////////////////////////////
+ 
+-/* GnuPlot: plot3d(1/X*Y + (100-Y)*1/(1-X) + 1000, X, .1, .9], Y, , 00]); */
+-static gfloat calc_rating(gfloat qsratio, gint quality, gint speed)
++/* GnuPlot: plot3d(1/X*Y + (100-Y)*1/(1-X) + 1000,[X,0.1,0.9],[Y,0,100]); */
++static gfloat calc_rating (gfloat qsratio, gint quality, gint speed)
+ {
+-    gfloat cratio = CLAMP(qsratio, 0.1, 0.9);
+-    return 1000.0f + ((1.0 / (1 - cratio) * quality) + (1.0 / cratio * speed));
++    gfloat cratio = CLAMP (qsratio,0.1,0.9);
++    return 1000.0f + ( (1.0/ (1-cratio) *quality) + (1.0/cratio*speed) );
+ }
+ 
+ //////////////////////////////////////
+ 
+-static GList *get_queued(GlyrQuery *s, MetaDataFetcher *fetcher, gint *fired)
++static GList * get_queued (GlyrQuery * s, MetaDataFetcher * fetcher, gint * fired)
+ {
+-    GList *source_list = NULL;
+-    for(gint it = 0; it < s->parallel; it++) {
++    GList * source_list = NULL;
++    for (gint it = 0; it < s->parallel; it++)
++    {
+         gint pos = 0;
+         gint max_pos = -1;
+         gfloat max = G_MINFLOAT;
+ 
+-        for(GList *elem = fetcher->provider; elem; elem = elem->next, ++pos) {
+-            MetaDataSource *src = elem->data;
+-            if(provider_is_enabled(s, src) == TRUE) {
+-                if(fired[pos] == 0) {
+-                    gfloat rating = calc_rating(s->qsratio, src->quality, src->speed);
+-                    if(rating > max) {
++        for (GList * elem = fetcher->provider; elem; elem = elem->next, ++pos)
++        {
++            MetaDataSource * src = elem->data;
++            if (provider_is_enabled (s,src) == TRUE)
++            {
++                if (fired[pos] == 0)
++                {
++                    gfloat rating = calc_rating (s->qsratio,src->quality,src->speed);
++                    if (rating > max)
++                    {
+                         max = rating;
+                         max_pos = pos;
+                     }
+@@ -1307,31 +1475,37 @@ static GList *get_queued(GlyrQuery *s, MetaDataFetcher *fetcher, gint *fired)
+             }
+         }
+ 
+-        if(max_pos != -1) {
+-            GList *wanted = g_list_nth(fetcher->provider, max_pos);
+-            if(wanted != NULL) {
+-                MetaDataSource *src = wanted->data;
+-                source_list = g_list_prepend(source_list, src);
++        if (max_pos != -1)
++        {
++            GList * wanted = g_list_nth (fetcher->provider,max_pos);
++            if (wanted != NULL)
++            {
++                MetaDataSource * src = wanted->data;
++                source_list = g_list_prepend (source_list,src);
+             }
+             fired[max_pos]++;
+         }
+     }
+ 
+-    if(source_list != NULL) {
+-        source_list = g_list_reverse(source_list);
++    if (source_list != NULL)
++    {
++        source_list = g_list_reverse (source_list);
+     }
+     return source_list;
+ }
+ 
+ //////////////////////////////////////
+ 
+-gboolean is_in_result_list(GlyrMemCache *cache, GList *result_list)
++gboolean is_in_result_list (GlyrMemCache * cache, GList * result_list)
+ {
+     gboolean result = FALSE;
+-    if(cache != NULL) {
+-        for(GList *elem = result_list; elem; elem = elem->next) {
+-            GlyrMemCache *item = elem->data;
+-            if(memcmp(cache->md5sum, item->md5sum, 16) == 0) {
++    if (cache != NULL)
++    {
++        for (GList * elem = result_list; elem; elem = elem->next)
++        {
++            GlyrMemCache * item = elem->data;
++            if (memcmp (cache->md5sum, item->md5sum, 16) == 0)
++            {
+                 result = TRUE;
+             }
+         }
+@@ -1341,191 +1515,222 @@ gboolean is_in_result_list(GlyrMemCache *cache, GList *result_list)
+ 
+ //////////////////////////////////////
+ 
+-static void execute_query(GlyrQuery *query, MetaDataFetcher *fetcher, GList *source_list, gboolean *stop_me, GList **result_list)
++static void execute_query (GlyrQuery * query, MetaDataFetcher * fetcher, GList * source_list, gboolean * stop_me, GList ** result_list)
+ {
+-    GList *url_list = NULL;
+-    GList *endmarks = NULL;
+-    GList *offline_provider = NULL;
+-    GHashTable *url_table = g_hash_table_new(g_str_hash, g_str_equal);
++    GList * url_list = NULL;
++    GList * endmarks = NULL;
++    GList * offline_provider = NULL;
++    GHashTable * url_table = g_hash_table_new (g_str_hash,g_str_equal);
+ 
+     /* Iterate over all sources for this fetcher  */
+-    for(GList *source = source_list; source != NULL; source = source->next) {
+-        MetaDataSource *item = source->data;
+-        if(item != NULL) {
++    for (GList * source = source_list; source != NULL; source = source->next)
++    {
++        MetaDataSource * item = source->data;
++        if (item != NULL)
++        {
+             /* get the url of this MetaDataSource */
+-            const gchar *lookup_url = item->get_url(query);
++            const gchar * lookup_url = item->get_url (query);
+ 
+             /* Add this to the list */
+-            if(lookup_url != NULL) {
+-                if(g_ascii_strncasecmp(lookup_url, OFFLINE_PROVIDER, (sizeof OFFLINE_PROVIDER) - 1) != 0) {
++            if (lookup_url != NULL)
++            {
++                if (g_ascii_strncasecmp (lookup_url,OFFLINE_PROVIDER, (sizeof OFFLINE_PROVIDER) - 1) != 0)
++                {
+                     /* make a sane URL out of it */
+-                    const gchar *prepared = prepare_url(lookup_url, query, TRUE);
++                    const gchar * prepared = prepare_url (lookup_url,query,TRUE);
+ 
+                     /* add it to the hash table and relate it to the MetaDataSource */
+-                    g_hash_table_insert(url_table, (gpointer) prepared, (gpointer) item);
+-                    url_list = g_list_prepend(url_list, (gpointer) prepared);
+-                    endmarks = g_list_prepend(endmarks, (gpointer) item->endmarker);
++                    g_hash_table_insert (url_table, (gpointer) prepared, (gpointer) item);
++                    url_list = g_list_prepend (url_list, (gpointer) prepared);
++                    endmarks = g_list_prepend (endmarks, (gpointer) item->endmarker);
+ 
+                     /* If the URL was dyn. allocated, we should go and free it */
+-                    if(item->free_url == TRUE) {
+-                        g_free((gchar *) lookup_url);
++                    if (item->free_url == TRUE)
++                    {
++                        g_free ( (gchar*) lookup_url);
+                     }
+-                } else {
++                }
++                else
++                {
+                     /* This providers offers some autogenerated content */
+-                    offline_provider = g_list_prepend(offline_provider, item);
++                    offline_provider = g_list_prepend (offline_provider,item);
+                 }
+             }
+         }
+     }
+ 
+-    GList *sub_result_list = NULL;
+-    gsize url_list_length = g_list_length(url_list);
+-    if(url_list_length != 0 || g_list_length(offline_provider) != 0) {
++    GList * sub_result_list = NULL;
++    gsize url_list_length = g_list_length (url_list);
++    if (url_list_length != 0 || g_list_length (offline_provider) != 0)
++    {
+         gboolean proceed = TRUE;
+-        GList *cached_items = NULL;
+-        GList *raw_parsed = NULL;
+-        GList *ready_caches = NULL;
++        GList * cached_items = NULL;
++        GList * raw_parsed = NULL;
++        GList * ready_caches = NULL;
+ 
+         /* Handle offline provider, that don't need to download something */
+-        for(GList *off_source = offline_provider; proceed && off_source && query->itemctr < query->number; off_source = off_source->next) {
+-            MetaDataSource *source = off_source->data;
+-            if(source != NULL && source->parser != NULL) {
++        for (GList * off_source = offline_provider; proceed && off_source && query->itemctr < query->number; off_source = off_source->next)
++        {
++            MetaDataSource * source = off_source->data;
++            if (source != NULL && source->parser != NULL)
++            {
+                 cb_object pseudo_capo;
+-                memset(&pseudo_capo, 0, sizeof pseudo_capo);
++                memset (&pseudo_capo, 0, sizeof pseudo_capo);
+                 pseudo_capo.s = query;
+ 
+-                GList *offline_list = source->parser(&pseudo_capo);
++                GList * offline_list = source->parser (&pseudo_capo);
+ 
+-                if(query->imagejob) {
+-                    delete_wrong_formats(&offline_list, query);
+-                } else {
+-                    offline_list = check_for_forced_utf8(query, offline_list);
++                if (query->imagejob)
++                {
++                    delete_wrong_formats (&offline_list,query);
++                }
++                else
++                {
++                    offline_list = check_for_forced_utf8 (query,offline_list);
+                 }
+ 
+-                for(GList *off_elem = offline_list; off_elem && query->itemctr < query->number; off_elem = off_elem->next) {
++                for (GList * off_elem = offline_list; off_elem && query->itemctr < query->number; off_elem = off_elem->next)
++                {
+                     GLYR_ERROR result = GLYRE_OK;
+-                    if(query->callback.download != NULL) {
+-                        result = query->callback.download(off_elem->data, query);
++                    if (query->callback.download != NULL)
++                    {
++                        result = query->callback.download (off_elem->data,query);
+                     }
+ 
+-                    if(result != GLYRE_STOP_PRE && result != GLYRE_SKIP) {
+-                        cached_items = g_list_prepend(cached_items, off_elem->data);
++                    if (result != GLYRE_STOP_PRE && result != GLYRE_SKIP)
++                    {
++                        cached_items = g_list_prepend (cached_items,off_elem->data);
+                         query->itemctr++;
+                     }
+ 
+-                    if(result == GLYRE_STOP_PRE || result == GLYRE_STOP_POST) {
++                    if (result == GLYRE_STOP_PRE || result == GLYRE_STOP_POST)
++                    {
+                         proceed = FALSE;
+                         break;
+                     }
+                 }
+-                g_list_free(offline_list);
++                g_list_free (offline_list);
+             }
+         }
+ 
+         /* Now start the downloadmanager - and call the specified callback with the URL table when an item is ready */
+-        if(proceed == TRUE && url_list_length != 0 && query->itemctr < query->number) {
+-            raw_parsed = async_download(url_list,
+-                                        endmarks,
+-                                        query,
+-                                        url_list_length / query->timeout  + 1,
+-                                        MIN((gint)(url_list_length / query->parallel + 3), query->number + 2),
+-                                        call_provider_callback,
+-                                        url_table,
+-                                        TRUE);
++        if (proceed == TRUE && url_list_length != 0 && query->itemctr < query->number)
++        {
++            raw_parsed = async_download (url_list,
++                                         endmarks,
++                                         query,
++                                         url_list_length / query->timeout  + 1,
++                                         MIN ( (gint) (url_list_length / query->parallel + 3), query->number + 2),
++                                         call_provider_callback,
++                                         url_table,
++                                         TRUE);
+         }
+ 
+         /* Now finalize our retrieved items */
+-        if(g_list_length(raw_parsed) != 0) {
++        if (g_list_length (raw_parsed) != 0)
++        {
+ 
+             /* Kill duplicates before finalizing */
+-            int pre_less = delete_dupes(raw_parsed, query);
+-            if(pre_less > 0) {
+-                glyr_message(2, query, "- Prefiltering double data: (-%d item(s) less)\n", pre_less);
++            int pre_less = delete_dupes (raw_parsed,query);
++            if (pre_less > 0)
++            {
++                glyr_message (2,query,"- Prefiltering double data: (-%d item(s) less)\n",pre_less);
+                 query->itemctr -= pre_less;
+             }
+ 
+-            glyr_message(2, query, "---- \n");
+-            if(g_list_length(raw_parsed) != 0) {
++            glyr_message (2,query,"---- \n");
++            if (g_list_length (raw_parsed) != 0)
++            {
+                 /* Call finalize to sanitize data, or download given URLs */
+-                ready_caches = fetcher->finalize(query, raw_parsed, stop_me, result_list);
++                ready_caches = fetcher->finalize (query, raw_parsed,stop_me, result_list);
+ 
+                 /* Raw data not needed anymore */
+-                g_list_free(raw_parsed);
++                g_list_free (raw_parsed);
+                 raw_parsed = NULL;
+             }
+         }
+ 
+-        if(cached_items && ready_caches) {
+-            sub_result_list = g_list_concat(cached_items, ready_caches);
+-        } else {
++        if (cached_items && ready_caches)
++        {
++            sub_result_list = g_list_concat (cached_items, ready_caches);
++        }
++        else
++        {
+             sub_result_list = (cached_items) ? cached_items : ready_caches;
+         }
+     }
+ 
+     /* Free ressources */
+-    glist_free_full(url_list, g_free);
+-    g_list_free(endmarks);
+-    g_list_free(offline_provider);
+-    g_hash_table_destroy(url_table);
+-
+-
+-    for(GList *result = sub_result_list; result; result = result->next) {
+-        GlyrMemCache *result_cache = result->data;
+-        if(result_cache != NULL) {
+-            *result_list = g_list_prepend(*result_list, result->data);
++    glist_free_full (url_list,g_free);
++    g_list_free (endmarks);
++    g_list_free (offline_provider);
++    g_hash_table_destroy (url_table);
++
++
++    for (GList * result = sub_result_list; result; result = result->next)
++    {
++        GlyrMemCache * result_cache = result->data;
++        if (result_cache != NULL)
++        {
++            *result_list = g_list_prepend (*result_list,result->data);
+         }
+     }
+-    g_list_free(sub_result_list);
++    g_list_free (sub_result_list);
+ }
+ //////////////////////////////////////
+ 
+-static void print_trigger(GlyrQuery *query, GList *src_list)
++static void print_trigger (GlyrQuery * query, GList * src_list)
+ {
+-    glyr_message(2, query, "---- Triggering: ");
+-    for(GList *elem = src_list; elem; elem = elem->next) {
+-        MetaDataSource *info = elem->data;
+-        glyr_message(2, query, "%s ", info->name);
++    glyr_message (2,query,"---- Triggering: ");
++    for (GList * elem = src_list; elem; elem = elem->next)
++    {
++        MetaDataSource * info = elem->data;
++        glyr_message (2,query,"%s ",info->name);
+     }
+-    glyr_message(2, query, "\n");
++    glyr_message (2,query,"\n");
+ }
+ 
+ //////////////////////////////////////
+ 
+-GList *start_engine(GlyrQuery *query, MetaDataFetcher *fetcher, GLYR_ERROR *err)
++GList * start_engine (GlyrQuery * query, MetaDataFetcher * fetcher, GLYR_ERROR * err)
+ {
+-    gsize list_len = g_list_length(fetcher->provider);
++    gsize list_len = g_list_length (fetcher->provider);
+     gint fired[list_len];
+-    memset(fired, 0, list_len * sizeof(gint));
++    memset (fired,0,list_len * sizeof (gint) );
+ 
+     gboolean something_was_searched = FALSE;
+     gboolean stop_now = FALSE;
+ 
+-    GList *src_list = NULL, * result_list = NULL;
+-    while((stop_now == FALSE) &&
+-            (g_list_length(result_list) < (gsize) query->number) &&
+-            (src_list = get_queued(query, fetcher, fired)) != NULL) {
++    GList * src_list = NULL, * result_list = NULL;
++    while ( (stop_now == FALSE) &&
++            (g_list_length (result_list) < (gsize) query->number) &&
++            (src_list = get_queued (query, fetcher, fired) ) != NULL)
++    {
+         /* Print what provider were triggered */
+-        print_trigger(query, src_list);
++        print_trigger (query,src_list);
+ 
+         /* Send this list of sources to the download manager */
+-        execute_query(query, fetcher, src_list, &stop_now, &result_list);
++        execute_query (query,fetcher,src_list, &stop_now, &result_list);
+ 
+         /* Do not report errors */
+         something_was_searched = TRUE;
+ 
+         /* Next list please */
+-        g_list_free(src_list);
++        g_list_free (src_list);
+ 
+         /* Check is exit was signaled */
+-        stop_now = (GET_ATOMIC_SIGNAL_EXIT(query)) ? TRUE : stop_now;
++        stop_now = (GET_ATOMIC_SIGNAL_EXIT (query) ) ? TRUE : stop_now;
+     }
+ 
+-    if(something_was_searched == FALSE) {
+-        if(err != NULL) {
++    if (something_was_searched == FALSE)
++    {
++        if (err != NULL)
++        {
+             *err = GLYRE_NO_PROVIDER;
+         }
+ 
+-        if(query != NULL) {
++        if (query != NULL)
++        {
+             query->q_errno = GLYRE_NO_PROVIDER;
+         }
+     }
+@@ -1536,36 +1741,39 @@ GList *start_engine(GlyrQuery *query, MetaDataFetcher *fetcher, GLYR_ERROR *err)
+ //////////////////////////////////////
+ 
+ /* New glib implementation, thanks to Etienne Millon */
+-void update_md5sum(GlyrMemCache *c)
++void update_md5sum (GlyrMemCache * c)
+ {
+-    if(c && c->data && c->size > 0) {
++    if (c && c->data && c->size > 0)
++    {
+         gsize bufsize = 16;
+-        GChecksum *checksum = g_checksum_new(G_CHECKSUM_MD5);
++        GChecksum *checksum = g_checksum_new (G_CHECKSUM_MD5);
+ 
+-        g_checksum_update(checksum, (const guchar *) c->data, c->size);
+-        g_checksum_get_digest(checksum, c->md5sum, &bufsize);
+-        g_checksum_free(checksum);
++        g_checksum_update (checksum, (const guchar*) c->data, c->size);
++        g_checksum_get_digest (checksum, c->md5sum, &bufsize);
++        g_checksum_free (checksum);
+     }
+ }
+ 
+ //////////////////////////////////////
+ 
+-void glist_free_full(GList *List, void (* free_func)(void *ptr))
++void glist_free_full (GList * List, void (* free_func) (void * ptr) )
+ {
+-#if GLIB_CHECK_VERSION(2, 8, )
++#if GLIB_CHECK_VERSION(2,28,0)
+ 
+     /* Use official version */
+-    g_list_free_full(List, free_func);
++    g_list_free_full (List,free_func);
+ #else
+ 
+     /* Fallback to simple own implementation  */
+-    for(GList *elem = List; elem; elem = elem->next) {
+-        if(free_func != NULL) {
+-            free_func(elem->data);
++    for (GList * elem = List; elem; elem = elem->next)
++    {
++        if (free_func != NULL)
++        {
++            free_func (elem->data);
+         }
+ 
+     }
+-    g_list_free(List);
++    g_list_free (List);
+ #endif
+ }
+ 
+diff --git a/lib/glyr.c b/lib/glyr.c
+index c341451..aad2ce5 100644
+--- a/lib/glyr.c
++++ b/lib/glyr.c
+@@ -34,10 +34,11 @@ static volatile gboolean is_initalized = FALSE;
+ 
+ //////////////////////////////////
+ 
+-static const char *err_strings[] = {
++static const char * err_strings[] =
++{
+     [GLYRE_UNKNOWN] = "Unknown error",
+     [GLYRE_OK] = "No error",
+-    [GLYRE_BAD_VALUE] = "Bad value for glyr_opt_[...]()",
++    [GLYRE_BAD_VALUE] ="Bad value for glyr_opt_[...]()",
+     [GLYRE_BAD_OPTION] = "Bad option passed to gly_opt_[...]()",
+     [GLYRE_NO_PROVIDER] = "No valid provider specified in glyr_opt_from()",
+     [GLYRE_EMPTY_STRUCT] = "Empty Query structure (NULL)",
+@@ -50,7 +51,8 @@ static const char *err_strings[] = {
+     [GLYRE_WAS_STOPPED] = "Library was stopped by glyr_signal_exit()"
+ };
+ 
+-static const char *type_strings[] = {
++static const char * type_strings[] =
++{
+     [GLYR_TYPE_COVERART] = "cover",
+     [GLYR_TYPE_LYRICS] = "songtext",
+     [GLYR_TYPE_ARTIST_PHOTO] = "artistphoto",
+@@ -74,29 +76,28 @@ static const char *type_strings[] = {
+ 
+ /////////////////////////////////
+ 
+-const gchar *map_language[][2] = {
+-    {"en_US", "us"},
+-    {"en_CA", "ca"},
+-    {"en_UK", "uk"}
++const gchar * map_language[][2] =
++{
++    {"en_US","us"},
++    {"en_CA","ca"},
++    {"en_UK","uk"}
+ };
+ 
+ 
+ /////////////////////////////////
+ 
+-void glyr_internal_log(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
++void glyr_internal_log (const gchar *log_domain,GLogLevelFlags log_level,const gchar *message, gpointer user_data)
+ {
+-    if(message != NULL) {
+-        fputs(message, GLYR_OUTPUT);
+-    }
++    if (message != NULL) fputs (message,GLYR_OUTPUT);
+ }
+ 
+ 
+ /////////////////////////////////
+ 
+ /* Local scopes are cool. */
+-#define END_STRING(STR, HAR)           \
++#define END_STRING(STR,CHAR)           \
+     {                                      \
+-        gchar * term = strchr(STR, HAR);   \
++        gchar * term = strchr(STR,CHAR);   \
+         if(term) *term = 0;                \
+     }
+ 
+@@ -105,59 +106,67 @@ void glyr_internal_log(const gchar *log_domain, GLogLevelFlags log_level, const
+  *
+  * @return a newly allocated language code. Free.
+  */
+-gchar *guess_language(void)
++gchar * guess_language (void)
+ {
+     /* Default to 'en' in any case */
+-    gchar *result_lang = g_strdup("en");
++    gchar * result_lang = g_strdup ("en");
+ 
+-#if GLIB_CHECK_VERSION(2, 8, )
++#if GLIB_CHECK_VERSION(2,28,0)
+     gboolean break_out = FALSE;
+ 
+     /* Please never ever free this */
+-    const gchar *const *languages = g_get_language_names();
++    const gchar * const * languages = g_get_language_names();
+ 
+-    for(gint i = 0; languages[i] && break_out == FALSE; i++) {
+-        gchar **variants = g_get_locale_variants(languages[i]);
+-        for(gint j = 0; variants[j] && !break_out; j++) {
++    for (gint i = 0; languages[i] && break_out == FALSE; i++)
++    {
++        gchar ** variants = g_get_locale_variants (languages[i]);
++        for (gint j = 0; variants[j] && !break_out; j++)
++        {
+             /* Look up if we need to map a language */
+-            gchar *to_investigate = variants[j];
+-            gint map_size = (sizeof(map_language) / (2 * sizeof(char *)));
+-            for(gint map = 0; map < map_size; map++) {
+-                const gchar *to_map = map_language[map][0];
+-                gsize map_len  = strlen(to_map);
+-                if(g_ascii_strncasecmp(to_map, to_investigate, map_len) == 0) {
+-                    to_investigate = (gchar *) map_language[map][1];
++            gchar * to_investigate = variants[j];
++            gint map_size = (sizeof (map_language) / (2 * sizeof (char*) ) );
++            for (gint map = 0; map < map_size; map++)
++            {
++                const gchar * to_map = map_language[map][0];
++                gsize map_len  = strlen (to_map);
++                if (g_ascii_strncasecmp (to_map,to_investigate,map_len) == 0)
++                {
++                    to_investigate = (gchar*) map_language[map][1];
+                     break;
+                 }
+             }
+ 
+             gboolean allowed_lang = TRUE;
+ 
+-            if(allowed_lang &&
+-                    g_ascii_strncasecmp("en", to_investigate, 2) != 0 &&
+-                    g_ascii_strncasecmp("C", to_investigate, 1) != 0 &&
+-                    !strchr(to_investigate, '@') && !strchr(to_investigate, '.')) {
+-                g_free(result_lang);
+-                result_lang = g_strdup(to_investigate);
++            if (allowed_lang &&
++                    g_ascii_strncasecmp ("en",to_investigate,2) != 0 &&
++                    g_ascii_strncasecmp ("C", to_investigate,1) != 0 &&
++                    !strchr (to_investigate,'@') && !strchr (to_investigate,'.') )
++            {
++                g_free (result_lang);
++                result_lang = g_strdup (to_investigate);
+                 break_out = TRUE;
+             }
+         }
+-        g_strfreev(variants);
++        g_strfreev (variants);
+     }
+ 
+-#elif GLIB_CHECK_VERSION(2, 6, )
++#elif GLIB_CHECK_VERSION(2,26,0)
+ 
+     /* Fallback to simpler version of the above,
+      * g_get_locale_variants is not there in this version
+      */
+-    const gchar *const *possible_locales = g_get_language_names();
+-    if(possible_locales != NULL) {
++    const gchar * const * possible_locales = g_get_language_names();
++    if (possible_locales != NULL)
++    {
+         /* might be a bit weird */
+-        for(gint i = 0; possible_locales[i]; i++) {
+-            if(g_ascii_strncasecmp("en", possible_locales[i], 2) != 0 &&
+-                    g_ascii_strncasecmp("C", possible_locales[i], 1) != 0) {
+-                g_free(result_lang);
+-                result_lang = g_strdup(possible_locales[i]);
++        for (gint i = 0; possible_locales[i]; i++)
++        {
++            if (g_ascii_strncasecmp ("en",possible_locales[i],2) != 0 &&
++                    g_ascii_strncasecmp ("C", possible_locales[i],1) != 0)
++            {
++                g_free (result_lang);
++                result_lang = g_strdup (possible_locales[i]);
+                 break;
+             }
+         }
+@@ -170,9 +179,9 @@ gchar *guess_language(void)
+ #endif
+ 
+     /* Properly terminate string */
+-    END_STRING(result_lang, '_');
+-    END_STRING(result_lang, '@');
+-    END_STRING(result_lang, '.');
++    END_STRING (result_lang,'_');
++    END_STRING (result_lang,'@');
++    END_STRING (result_lang,'.');
+ 
+     /* We don't need it anymore */
+ #undef END_STRING
+@@ -182,18 +191,19 @@ gchar *guess_language(void)
+ 
+ /////////////////////////////////
+ 
+-static int glyr_set_info(GlyrQuery *s, int at, const char *arg);
+-static void set_query_on_defaults(GlyrQuery *glyrs);
++static int glyr_set_info (GlyrQuery * s, int at, const char * arg);
++static void set_query_on_defaults (GlyrQuery * glyrs);
+ 
+ /////////////////////////////////
+ // OTHER
+ /////////////////////////////////
+ 
+ // return a descriptive string on error ID
+-__attribute__((visibility("default")))
+-const char *glyr_strerror(GLYR_ERROR ID)
++__attribute__ ( (visibility ("default") ) )
++const char * glyr_strerror (GLYR_ERROR ID)
+ {
+-    if(ID < (sizeof(err_strings) / sizeof(const char *))) {
++    if (ID < (sizeof (err_strings) /sizeof (const char *) ) )
++    {
+         return err_strings[ID];
+     }
+     return err_strings[GLYRE_UNKNOWN];
+@@ -201,40 +211,40 @@ const char *glyr_strerror(GLYR_ERROR ID)
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_signal_exit(GlyrQuery *query)
++__attribute__ ( (visibility ("default") ) )
++void glyr_signal_exit (GlyrQuery * query)
+ {
+-    SET_ATOMIC_SIGNAL_EXIT(query, 1);
++    SET_ATOMIC_SIGNAL_EXIT (query,1);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_update_md5sum(GlyrMemCache *cache)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_update_md5sum (GlyrMemCache * cache)
+ {
+-    update_md5sum(cache);
++    update_md5sum (cache);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_set_data(GlyrMemCache *cache, const char *data, int len)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_set_data (GlyrMemCache * cache, const char * data, int len)
+ {
+-    DL_set_data(cache, data, len);
++    DL_set_data (cache,data,len);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GlyrMemCache *glyr_cache_copy(GlyrMemCache *cache)
++__attribute__ ( (visibility ("default") ) )
++GlyrMemCache * glyr_cache_copy (GlyrMemCache * cache)
+ {
+-    return DL_copy(cache);
++    return DL_copy (cache);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-const char *glyr_version(void)
++__attribute__ ( (visibility ("default") ) )
++const char * glyr_version (void)
+ {
+     return "Version "GLYR_VERSION_MAJOR"."GLYR_VERSION_MINOR"."GLYR_VERSION_MICRO" ("GLYR_VERSION_NAME") of ["__DATE__"] compiled at ["__TIME__"]";
+ }
+@@ -244,556 +254,525 @@ const char *glyr_version(void)
+ /////////////////////////////////
+ 
+ // Seperate method because va_arg struggles with function pointers
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_dlcallback(GlyrQuery *settings, DL_callback dl_cb, void *userp)
+-{
+-if(settings) {
+-settings->callback.download     = dl_cb;
+-settings->callback.user_pointer = userp;
+-return GLYRE_OK;
+-}
+-return GLYRE_EMPTY_STRUCT;
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_dlcallback (GlyrQuery * settings, DL_callback dl_cb, void * userp)
++{
++    if (settings)
++    {
++        settings->callback.download     = dl_cb;
++        settings->callback.user_pointer = userp;
++        return GLYRE_OK;
++    }
++    return GLYRE_EMPTY_STRUCT;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_type(GlyrQuery *s, GLYR_GET_TYPE type)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_type (GlyrQuery * s, GLYR_GET_TYPE type)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-if(type != GLYR_GET_UNKNOWN) {
+-s->type = type;
+-return GLYRE_OK;
+-}
+-return GLYRE_BAD_VALUE;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    if (type != GLYR_GET_UNKNOWN)
++    {
++        s->type = type;
++        return GLYRE_OK;
++    }
++    return GLYRE_BAD_VALUE;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_artist(GlyrQuery *s, const char *artist)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_artist (GlyrQuery * s, const char * artist)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-glyr_set_info(s, 0, artist);
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    glyr_set_info (s,0,artist);
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_album(GlyrQuery *s, const char *album)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_album (GlyrQuery * s, const char * album)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-glyr_set_info(s, 1, album);
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    glyr_set_info (s,1,album);
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_title(GlyrQuery *s, const char *title)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_title (GlyrQuery * s, const char * title)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-glyr_set_info(s, 2, title);
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    glyr_set_info (s,2,title);
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-static int size_set(int *ref, int size)
++static int size_set (int * ref, int size)
+ {
+-if(size < -1 && ref) {
+-*ref = -1;
+-return GLYRE_BAD_VALUE;
+-}
++    if (size < -1 && ref)
++    {
++        *ref = -1;
++        return GLYRE_BAD_VALUE;
++    }
+ 
+-if(ref) {
+-*ref = size;
+-return GLYRE_OK;
+-}
+-return GLYRE_BAD_OPTION;
++    if (ref)
++    {
++        *ref = size;
++        return GLYRE_OK;
++    }
++    return GLYRE_BAD_OPTION;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_img_maxsize(GlyrQuery *s, int size)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_img_maxsize (GlyrQuery * s, int size)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-return size_set(&s->img_max_size, size);
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    return size_set (&s->img_max_size,size);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_img_minsize(GlyrQuery *s, int size)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_img_minsize (GlyrQuery * s, int size)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-return size_set(&s->img_min_size, size);
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    return size_set (&s->img_min_size,size);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_parallel(GlyrQuery *s, unsigned long val)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_parallel (GlyrQuery * s, unsigned long val)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->parallel = (long) val;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->parallel = (long) val;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_timeout(GlyrQuery *s, unsigned long val)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_timeout (GlyrQuery * s, unsigned long val)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->timeout = (long) val;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->timeout = (long) val;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_redirects(GlyrQuery *s, unsigned long val)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_redirects (GlyrQuery * s, unsigned long val)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->redirects = (long) val;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->redirects = (long) val;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_useragent(GlyrQuery *s, const char *useragent)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_useragent (GlyrQuery * s, const char * useragent)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-glyr_set_info(s, 6, (useragent) ? useragent : "");
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    glyr_set_info (s,6, (useragent) ? useragent : "");
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_lang(GlyrQuery *s, const char *langcode)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_lang (GlyrQuery * s, const char * langcode)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-if(langcode != NULL) {
+-if(g_ascii_strncasecmp("auto", langcode, 4) == 0) {
+-gchar *auto_lang = guess_language();
+-glyr_set_info(s, 7, auto_lang);
+-g_free(auto_lang);
+-} else {
+-glyr_set_info(s, 7, langcode);
+-}
+-return GLYRE_OK;
+-}
+-return GLYRE_BAD_VALUE;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    if (langcode != NULL)
++    {
++        if (g_ascii_strncasecmp ("auto",langcode,4) == 0)
++        {
++            gchar * auto_lang = guess_language();
++            glyr_set_info (s,7,auto_lang);
++            g_free (auto_lang);
++        }
++        else
++        {
++            glyr_set_info (s,7,langcode);
++        }
++        return GLYRE_OK;
++    }
++    return GLYRE_BAD_VALUE;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_lang_aware_only(GlyrQuery *s, bool lang_aware_only)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_lang_aware_only (GlyrQuery * s, bool lang_aware_only)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->lang_aware_only = lang_aware_only;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->lang_aware_only = lang_aware_only;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_number(GlyrQuery *s, unsigned int num)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_number (GlyrQuery * s, unsigned int num)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->number = num == 0 ? INT_MAX : num;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->number = num == 0 ? INT_MAX : num;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_verbosity(GlyrQuery *s, unsigned int level)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_verbosity (GlyrQuery * s, unsigned int level)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->verbosity = level;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->verbosity = level;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_from(GlyrQuery *s, const char *from)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_from (GlyrQuery * s, const char * from)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-if(from != NULL) {
+-glyr_set_info(s, 4, from);
+-return GLYRE_OK;
+-}
+-return GLYRE_BAD_VALUE;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    if (from != NULL)
++    {
++        glyr_set_info (s,4,from);
++        return GLYRE_OK;
++    }
++    return GLYRE_BAD_VALUE;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_allowed_formats(GlyrQuery *s, const char *formats)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_allowed_formats (GlyrQuery * s, const char * formats)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-glyr_set_info(s, 5, (formats == NULL) ? GLYR_DEFAULT_ALLOWED_FORMATS : formats);
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    glyr_set_info (s,5, (formats==NULL) ? GLYR_DEFAULT_ALLOWED_FORMATS : formats);
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_musictree_path(GlyrQuery *s, const char *musictree_path)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_musictree_path (GlyrQuery * s, const char * musictree_path)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-glyr_set_info(s, 8, (musictree_path == NULL) ? GLYR_DEFAULT_MUISCTREE_PATH : musictree_path);
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    glyr_set_info (s,8, (musictree_path==NULL) ? GLYR_DEFAULT_MUISCTREE_PATH : musictree_path);
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_plugmax(GlyrQuery *s, int plugmax)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_plugmax (GlyrQuery * s, int plugmax)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-if(plugmax < 0) {
+-return GLYRE_BAD_VALUE;
+-}
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    if (plugmax < 0)
++    {
++        return GLYRE_BAD_VALUE;
++    }
+ 
+-s->plugmax = plugmax;
+-return GLYRE_OK;
++    s->plugmax = plugmax;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_qsratio(GlyrQuery *s, float ratio)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_qsratio (GlyrQuery * s, float ratio)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->qsratio = MIN(MAX(ratio, 0.0), 1.0);
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->qsratio = MIN (MAX (ratio,0.0),1.0);
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_proxy(GlyrQuery *s, const char *proxystring)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_proxy (GlyrQuery * s, const char * proxystring)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-glyr_set_info(s, 3, proxystring);
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    glyr_set_info (s,3,proxystring);
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_fuzzyness(GlyrQuery *s, int fuzz)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_fuzzyness (GlyrQuery * s, int fuzz)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->fuzzyness = fuzz;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->fuzzyness = fuzz;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_download(GlyrQuery *s, bool download)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_download (GlyrQuery * s, bool download)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->download = download;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->download = download;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_force_utf8(GlyrQuery *s, bool force_utf8)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_force_utf8 (GlyrQuery * s, bool force_utf8)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->force_utf8 = force_utf8;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->force_utf8 = force_utf8;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_lookup_db(GlyrQuery *s, GlyrDatabase *db)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_lookup_db (GlyrQuery * s, GlyrDatabase * db)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-if(db != NULL) {
+-s->local_db = db;
+-return GLYRE_OK;
+-}
+-return GLYRE_BAD_VALUE;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    if (db != NULL)
++    {
++        s->local_db = db;
++        return GLYRE_OK;
++    }
++    return GLYRE_BAD_VALUE;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_db_autowrite(GlyrQuery *s, bool db_autowrite)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_db_autowrite (GlyrQuery * s, bool db_autowrite)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->db_autowrite = db_autowrite;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->db_autowrite = db_autowrite;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_db_autoread(GlyrQuery *s, bool db_autoread)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_db_autoread (GlyrQuery * s, bool db_autoread)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->db_autoread = db_autoread;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->db_autoread = db_autoread;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_ERROR glyr_opt_normalize(GlyrQuery *s, GLYR_NORMALIZATION norm)
++__attribute__ ( (visibility ("default") ) )
++GLYR_ERROR glyr_opt_normalize (GlyrQuery * s, GLYR_NORMALIZATION norm)
+ {
+-if(s == NULL) {
+-return GLYRE_EMPTY_STRUCT;
+-}
+-s->normalization = norm;
+-return GLYRE_OK;
++    if (s == NULL) return GLYRE_EMPTY_STRUCT;
++    s->normalization = norm;
++    return GLYRE_OK;
+ }
+ 
+ /////////////////////////////////
+ /////////////////////////////////
+ /////////////////////////////////
+ 
+-static void set_query_on_defaults(GlyrQuery *glyrs)
++static void set_query_on_defaults (GlyrQuery * glyrs)
+ {
+-if(glyrs == NULL) {
+-return;
+-}
+-
+-/* Initialize free pointer pool */
+-memset(glyrs, 0, sizeof(GlyrQuery));
+-
+-glyrs->type = GLYR_GET_UNKNOWN;
+-glyrs->artist = NULL;
+-glyrs->album  = NULL;
+-glyrs->title  = NULL;
+-glyrs->local_db = NULL;
+-glyrs->callback.download = NULL;
+-glyrs->callback.user_pointer = NULL;
+-glyrs->musictree_path = NULL;
+-glyrs->q_errno = GLYRE_OK;
+-
+-glyrs->db_autoread = GLYR_DEFAULT_DB_AUTOREAD;
+-glyrs->db_autowrite = GLYR_DEFAULT_DB_AUTOWRITE;
+-glyrs->from   = GLYR_DEFAULT_FROM;
+-glyrs->img_min_size = GLYR_DEFAULT_CMINSIZE;
+-glyrs->img_max_size = GLYR_DEFAULT_CMAXSIZE;
+-glyrs->number = GLYR_DEFAULT_NUMBER;
+-glyrs->parallel  = GLYR_DEFAULT_PARALLEL;
+-glyrs->redirects = GLYR_DEFAULT_REDIRECTS;
+-glyrs->timeout   = GLYR_DEFAULT_TIMEOUT;
+-glyrs->verbosity = GLYR_DEFAULT_VERBOSITY;
+-glyrs->plugmax = GLYR_DEFAULT_PLUGMAX;
+-glyrs->download = GLYR_DEFAULT_DOWNLOAD;
+-glyrs->fuzzyness = GLYR_DEFAULT_FUZZYNESS;
+-glyrs->proxy = GLYR_DEFAULT_PROXY;
+-glyrs->qsratio = GLYR_DEFAULT_QSRATIO;
+-glyrs->allowed_formats = GLYR_DEFAULT_ALLOWED_FORMATS;
+-glyrs->useragent = GLYR_DEFAULT_USERAGENT;
+-glyrs->force_utf8 = GLYR_DEFAULT_FORCE_UTF8;
+-glyrs->lang = GLYR_DEFAULT_LANG;
+-glyrs->lang_aware_only = GLYR_DEFAULT_LANG_AWARE_ONLY;
+-glyrs->normalization = GLYR_NORMALIZE_AGGRESSIVE | GLYR_NORMALIZE_ALL;
+-glyrs->signal_exit = FALSE;
+-glyrs->itemctr = 0;
+-
+-/* Set on a very specific value, so we can pretty sure,
+-   we are not accessing bad memory - feels little hackish.. */
+-glyrs->is_initalized = QUERY_INITIALIZER;
+-}
+-
+-/////////////////////////////////
++    if (glyrs == NULL)
++    {
++        return;
++    }
+ 
+-__attribute__((visibility("default")))
+-void glyr_query_init(GlyrQuery *glyrs)
+-{
+-if(glyrs != NULL) {
+-set_query_on_defaults(glyrs);
+-}
++    /* Initialize free pointer pool */
++    memset (glyrs,0,sizeof (GlyrQuery) );
++
++    glyrs->type = GLYR_GET_UNKNOWN;
++    glyrs->artist = NULL;
++    glyrs->album  = NULL;
++    glyrs->title  = NULL;
++    glyrs->local_db = NULL;
++    glyrs->callback.download = NULL;
++    glyrs->callback.user_pointer = NULL;
++    glyrs->musictree_path = NULL;
++    glyrs->q_errno = GLYRE_OK;
++
++    glyrs->db_autoread = GLYR_DEFAULT_DB_AUTOREAD;
++    glyrs->db_autowrite = GLYR_DEFAULT_DB_AUTOWRITE;
++    glyrs->from   = GLYR_DEFAULT_FROM;
++    glyrs->img_min_size = GLYR_DEFAULT_CMINSIZE;
++    glyrs->img_max_size = GLYR_DEFAULT_CMAXSIZE;
++    glyrs->number = GLYR_DEFAULT_NUMBER;
++    glyrs->parallel  = GLYR_DEFAULT_PARALLEL;
++    glyrs->redirects = GLYR_DEFAULT_REDIRECTS;
++    glyrs->timeout   = GLYR_DEFAULT_TIMEOUT;
++    glyrs->verbosity = GLYR_DEFAULT_VERBOSITY;
++    glyrs->plugmax = GLYR_DEFAULT_PLUGMAX;
++    glyrs->download = GLYR_DEFAULT_DOWNLOAD;
++    glyrs->fuzzyness = GLYR_DEFAULT_FUZZYNESS;
++    glyrs->proxy = GLYR_DEFAULT_PROXY;
++    glyrs->qsratio = GLYR_DEFAULT_QSRATIO;
++    glyrs->allowed_formats = GLYR_DEFAULT_ALLOWED_FORMATS;
++    glyrs->useragent = GLYR_DEFAULT_USERAGENT;
++    glyrs->force_utf8 = GLYR_DEFAULT_FORCE_UTF8;
++    glyrs->lang = GLYR_DEFAULT_LANG;
++    glyrs->lang_aware_only = GLYR_DEFAULT_LANG_AWARE_ONLY;
++    glyrs->normalization = GLYR_NORMALIZE_AGGRESSIVE | GLYR_NORMALIZE_ALL;
++    glyrs->signal_exit = FALSE;
++    glyrs->itemctr = 0;
++
++    /* Set on a very specific value, so we can pretty sure,
++       we are not accessing bad memory - feels little hackish.. */
++    glyrs->is_initalized = QUERY_INITIALIZER;
++}
++
++/////////////////////////////////
++
++__attribute__ ( (visibility ("default") ) )
++void glyr_query_init (GlyrQuery * glyrs)
++{
++    if (glyrs != NULL)
++    {
++        set_query_on_defaults (glyrs);
++    }
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_query_destroy(GlyrQuery *sets)
++__attribute__ ( (visibility ("default") ) )
++void glyr_query_destroy (GlyrQuery * sets)
+ {
+-if(sets != NULL && QUERY_IS_INITALIZED(sets)) {
+-for(gsize i = 0; i < 10; i++) {
+-if(sets->info[i] != NULL) {
+-g_free((char *) sets->info[i]);
+-sets->info[i] = NULL;
+-}
+-}
++    if (sets != NULL && QUERY_IS_INITALIZED (sets) )
++    {
++        for (gsize i = 0; i < 10; i++)
++        {
++            if (sets->info[i] != NULL)
++            {
++                g_free ( (char*) sets->info[i]);
++                sets->info[i] = NULL;
++            }
++        }
+ 
+-/* Reset query so it can be used again */
+-set_query_on_defaults(sets);
+-}
++        /* Reset query so it can be used again */
++        set_query_on_defaults (sets);
++    }
+ 
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GlyrMemCache *glyr_download(const char *url, GlyrQuery *s)
++__attribute__ ( (visibility ("default") ) )
++GlyrMemCache * glyr_download (const char * url, GlyrQuery * s)
+ {
+-return download_single(url, s, NULL);
++    return download_single (url,s,NULL);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_free_list(GlyrMemCache *head)
++__attribute__ ( (visibility ("default") ) )
++void glyr_free_list (GlyrMemCache * head)
+ {
+-if(head != NULL) {
+-GlyrMemCache *next = head;
+-GlyrMemCache *prev = head->prev;
++    if (head != NULL)
++    {
++        GlyrMemCache * next = head;
++        GlyrMemCache * prev = head->prev;
+ 
+-while(next != NULL) {
+-GlyrMemCache *p = next;
+-next = next->next;
+-DL_free(p);
+-}
++        while (next != NULL)
++        {
++            GlyrMemCache * p = next;
++            next = next->next;
++            DL_free (p);
++        }
+ 
+-while(prev != NULL) {
+-GlyrMemCache *p = prev;
+-prev = prev->prev;
+-DL_free(p);
+-}
+-}
++        while (prev != NULL)
++        {
++            GlyrMemCache * p = prev;
++            prev = prev->prev;
++            DL_free (p);
++        }
++    }
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_free(GlyrMemCache *c)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_free (GlyrMemCache * c)
+ {
+-DL_free(c);
++    DL_free (c);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GlyrMemCache *glyr_cache_new(void)
++__attribute__ ( (visibility ("default") ) )
++GlyrMemCache * glyr_cache_new (void)
+ {
+-return DL_init();
++    return DL_init();
+ }
+ 
+ /////////////////////////////////
+ 
+ // !! NOT THREADSAFE !! //
+-__attribute__((visibility("default")))
+-void glyr_init(void)
+-{
+-/* Protect agains double initialization */
+-if(is_initalized == FALSE) {
+-/* Set loghandler */
+-g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL
+-| G_LOG_FLAG_RECURSION,
+-glyr_internal_log, NULL);
+-
+-if(curl_global_init(CURL_GLOBAL_ALL)) {
+-glyr_message(-1, NULL, "Fatal: libcurl failed to init\n");
+-}
++__attribute__ ( (visibility ("default") ) )
++void glyr_init (void)
++{
++    /* Protect agains double initialization */
++    if (is_initalized == FALSE)
++    {
++        /* Set loghandler */
++        g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL
++                           | G_LOG_FLAG_RECURSION,
++                           glyr_internal_log, NULL);
++
++        if (curl_global_init (CURL_GLOBAL_ALL) )
++        {
++            glyr_message (-1,NULL,"Fatal: libcurl failed to init\n");
++        }
+ 
+-/* Locale */
+-if(setlocale(LC_ALL, "") == NULL) {
+-glyr_message(-1, NULL, "Cannot set locale!\n");
+-}
++        /* Locale */
++        if (setlocale (LC_ALL, "") == NULL)
++        {
++            glyr_message (-1,NULL,"Cannot set locale!\n");
++        }
+ 
+-/* Register plugins */
+-register_fetcher_plugins();
++        /* Register plugins */
++        register_fetcher_plugins();
+ 
+-/* Init the smallest blacklist in the world :-) */
+-blacklist_build();
++        /* Init the smallest blacklist in the world :-) */
++        blacklist_build();
+ 
+-is_initalized = TRUE;
+-}
++        is_initalized = TRUE;
++    }
+ }
+ 
+ 
+ /////////////////////////////////
+ 
+ // !! NOT THREADSAFE !! //
+-__attribute__((visibility("default")))
+-void glyr_cleanup(void)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cleanup (void)
+ {
+-if(is_initalized == TRUE) {
+-/* Curl no longer needed */
+-curl_global_cleanup();
++    if (is_initalized == TRUE)
++    {
++        /* Curl no longer needed */
++        curl_global_cleanup();
+ 
+-/* Destroy all fetchers */
+-unregister_fetcher_plugins();
++        /* Destroy all fetchers */
++        unregister_fetcher_plugins();
+ 
+-/* Kill it again */
+-blacklist_destroy();
++        /* Kill it again */
++        blacklist_destroy();
+ 
+-is_initalized = FALSE;
+-}
++        is_initalized = FALSE;
++    }
+ }
+ 
+ 
+@@ -801,67 +780,68 @@ is_initalized = FALSE;
+ /////////////////////////////////
+ 
+ /* Sets parallel field depending on the get_type */
+-static void auto_detect_parallel(MetaDataFetcher *fetcher, GlyrQuery *query)
+-{
+-if(query->parallel <= 0) {
+-if(fetcher->default_parallel <= 0) {
+-gint div = (int)(1.0 / (CLAMP(query->qsratio, 0.01, 0.99) * 2));
+-query->parallel = (div == 0) ? 3 : g_list_length(fetcher->provider) / div;
+-} else {
+-query->parallel = fetcher->default_parallel;
+-}
+-}
++static void auto_detect_parallel (MetaDataFetcher * fetcher, GlyrQuery * query)
++{
++    if (query->parallel <= 0)
++    {
++        if (fetcher->default_parallel <= 0)
++        {
++            gint div = (int) (1.0/ (CLAMP (query->qsratio,0.01,0.99) * 2) );
++            query->parallel = (div == 0) ? 3 : g_list_length (fetcher->provider) / div;
++        }
++        else
++        {
++            query->parallel = fetcher->default_parallel;
++        }
++    }
+ }
+ 
+ /////////////////////////////////
+ 
+-static gboolean check_if_valid(GlyrQuery *q, MetaDataFetcher *fetch)
++static gboolean check_if_valid (GlyrQuery * q, MetaDataFetcher * fetch)
+ {
+-gboolean isValid = TRUE;
+-if(fetch->reqs & GLYR_REQUIRES_ARTIST && q->artist == NULL) {
+-glyr_message(2, q, "Artist is required for this getter\n");
+-isValid = FALSE;
+-}
++    gboolean isValid = TRUE;
++    if (fetch->reqs & GLYR_REQUIRES_ARTIST && q->artist == NULL)
++    {
++        glyr_message (2,q,"Artist is required for this getter\n");
++        isValid = FALSE;
++    }
+ 
+-if(fetch->reqs & GLYR_REQUIRES_ALBUM && q->album == NULL) {
+-glyr_message(2, q, "Albumname is required for this getter\n");
+-isValid = FALSE;
+-}
++    if (fetch->reqs & GLYR_REQUIRES_ALBUM && q->album == NULL)
++    {
++        glyr_message (2,q,"Albumname is required for this getter\n");
++        isValid = FALSE;
++    }
+ 
+-if(fetch->reqs & GLYR_REQUIRES_TITLE && q->title == NULL) {
+-glyr_message(2, q, "Songname is required for this getter\n");
+-isValid = FALSE;
+-}
++    if (fetch->reqs & GLYR_REQUIRES_TITLE && q->title == NULL)
++    {
++        glyr_message (2,q,"Songname is required for this getter\n");
++        isValid = FALSE;
++    }
+ 
+-if(isValid == FALSE && fetch->reqs > GLYR_REQUIRES_TITLE) {
+-char *f1 = "", * f2 = "", * f3 = "";
+-if(fetch->reqs & GLYR_OPTIONAL_ARTIST) {
+-f1 = "Artist ";
+-}
+-if(fetch->reqs & GLYR_OPTIONAL_ALBUM) {
+-f2 = "Album ";
+-}
+-if(fetch->reqs & GLYR_OPTIONAL_TITLE) {
+-f3 = "Songtitle ";
+-}
++    if (isValid == FALSE && fetch->reqs > GLYR_REQUIRES_TITLE)
++    {
++        char * f1 = "",* f2 = "", * f3 = "";
++        if (fetch->reqs & GLYR_OPTIONAL_ARTIST) f1 = "Artist ";
++        if (fetch->reqs & GLYR_OPTIONAL_ALBUM)  f2 = "Album ";
++        if (fetch->reqs & GLYR_OPTIONAL_TITLE)  f3 = "Songtitle ";
+ 
+-if(*f1 || *f2 || *f3) {
+-glyr_message(2, q, "\nFollowing fields are optional: %s%s%s\n", f1, f2, f3);
+-}
+-}
+-return isValid;
++        if (*f1 || *f2 || *f3)
++        {
++            glyr_message (2,q,"\nFollowing fields are optional: %s%s%s\n",f1,f2,f3);
++        }
++    }
++    return isValid;
+ }
+ 
+ /////////////////////////////////
+ 
+-static void set_error(GLYR_ERROR err_in, GlyrQuery *query, GLYR_ERROR *err_out)
++static void set_error (GLYR_ERROR err_in, GlyrQuery * query, GLYR_ERROR * err_out)
+ {
+-if(query) {
+-query->q_errno = err_in;
+-}
+-if(err_out) {
+-*err_out = err_in;
+-}
++    if (query)
++        query->q_errno = err_in;
++    if (err_out)
++        *err_out = err_in;
+ }
+ 
+ /////////////////////////////////
+@@ -879,385 +859,439 @@ if(err_out) {
+         }                                                   \
+     }                                                       \
+ 
+-__attribute__((visibility("default")))
+-GlyrMemCache *glyr_get(GlyrQuery *query, GLYR_ERROR *e, int *length)
++__attribute__ ( (visibility ("default") ) )
++GlyrMemCache * glyr_get (GlyrQuery * query, GLYR_ERROR * e, int * length)
+ {
+-if(is_initalized == FALSE || QUERY_IS_INITALIZED(query) == FALSE) {
+-glyr_message(-1, NULL, "Warning: Either query or library is not initialized.\n");
+-if(e != NULL) {
+-set_error(GLYRE_NO_INIT, query, e);
+-}
+-return NULL;
+-}
+-
+-set_error(GLYRE_OK, query, e);
+-
+-if(query != NULL) {
+-if(g_ascii_strncasecmp(query->lang, "auto", 4) == 0) {
+-glyr_opt_lang(query, "auto");
+-}
+-
+-GList *result = NULL;
+-set_error(GLYRE_UNKNOWN_GET, query, e);
+-
+-for(GList *elem = r_getFList(); elem; elem = elem->next) {
+-MetaDataFetcher *item = elem->data;
+-if(query->type == item->type) {
+-if(check_if_valid(query, item) == TRUE) {
+-/* Print some user info, always useful */
+-if(query->normalization & GLYR_NORMALIZE_ARTIST) {
+-PRINT_NORMALIZED_ATTR("- Artist   : ", query->normalization, query->artist);
+-} else {
+-PRINT_NORMALIZED_ATTR("- Artist   : ", GLYR_NORMALIZE_NONE, query->artist);
+-}
+-
+-if(query->normalization & GLYR_NORMALIZE_ALBUM) {
+-PRINT_NORMALIZED_ATTR("- Album    : ", query->normalization, query->album);
+-} else {
+-PRINT_NORMALIZED_ATTR("- Album    : ", GLYR_NORMALIZE_NONE, query->album);
+-}
+-
+-if(query->normalization & GLYR_NORMALIZE_TITLE) {
+-PRINT_NORMALIZED_ATTR("- Title    : ", query->normalization, query->title);
+-} else {
+-PRINT_NORMALIZED_ATTR("- Title    : ", GLYR_NORMALIZE_NONE, query->title);
+-}
+-
+-if(query->lang != NULL) {
+-glyr_message(2, query, "- Language : ");
+-glyr_message(2, query, "%s\n", query->lang);
+-}
+-
+-set_error(GLYRE_OK, query, e);
+-glyr_message(2, query, "- Type     : %s\n\n", item->name);
+-
+-/* Lookup what we search for here: Images (url, or raw) or text */
+-query->imagejob = !(item->full_data);
++    if (is_initalized == FALSE || QUERY_IS_INITALIZED (query) == FALSE)
++    {
++        glyr_message (-1,NULL,"Warning: Either query or library is not initialized.\n");
++        if (e != NULL)
++        {
++            set_error (GLYRE_NO_INIT, query, e);
++        }
++        return NULL;
++    }
+ 
+-/* If ->parallel is <= 0, it gets autodetected */
+-auto_detect_parallel(item, query);
++    set_error (GLYRE_OK, query, e);
+ 
+-/* Now start your engines, gentlemen */
+-result = start_engine(query, item, e);
+-break;
+-} else {
+-set_error(GLYRE_INSUFF_DATA, query, e);
+-}
+-}
+-}
+-
+-/* Make this query reusable */
+-query->itemctr = 0;
++    if (query != NULL)
++    {
++        if (g_ascii_strncasecmp (query->lang,"auto",4) == 0)
++        {
++            glyr_opt_lang (query,"auto");
++        }
+ 
+-/* Start of the returned list */
+-GlyrMemCache *head = NULL;
++        GList * result = NULL;
++        set_error (GLYRE_UNKNOWN_GET, query, e);
++
++        for (GList * elem = r_getFList(); elem; elem = elem->next)
++        {
++            MetaDataFetcher * item = elem->data;
++            if (query->type == item->type)
++            {
++                if (check_if_valid (query,item) == TRUE)
++                {
++                    /* Print some user info, always useful */
++                    if (query->normalization & GLYR_NORMALIZE_ARTIST) {
++                        PRINT_NORMALIZED_ATTR("- Artist   : ", query->normalization, query->artist);
++                    } else {
++                        PRINT_NORMALIZED_ATTR("- Artist   : ", GLYR_NORMALIZE_NONE, query->artist);
++                    }
++
++                    if (query->normalization & GLYR_NORMALIZE_ALBUM) {
++                        PRINT_NORMALIZED_ATTR("- Album    : ", query->normalization, query->album);
++                    } else {
++                        PRINT_NORMALIZED_ATTR("- Album    : ", GLYR_NORMALIZE_NONE, query->album);
++                    }
++
++                    if (query->normalization & GLYR_NORMALIZE_TITLE) {
++                        PRINT_NORMALIZED_ATTR("- Title    : ", query->normalization, query->title);
++                    } else {
++                        PRINT_NORMALIZED_ATTR("- Title    : ", GLYR_NORMALIZE_NONE, query->title);
++                    }
++
++                    if (query->lang != NULL)
++                    {
++                        glyr_message (2,query,"- Language : ");
++                        glyr_message (2,query,"%s\n",query->lang);
++                    }
++
++                    set_error (GLYRE_OK, query, e);
++                    glyr_message (2,query,"- Type     : %s\n\n",item->name);
++
++                    /* Lookup what we search for here: Images (url, or raw) or text */
++                    query->imagejob = ! (item->full_data);
++
++                    /* If ->parallel is <= 0, it gets autodetected */
++                    auto_detect_parallel (item, query);
++
++                    /* Now start your engines, gentlemen */
++                    result = start_engine (query,item,e);
++                    break;
++                }
++                else
++                {
++                    set_error (GLYRE_INSUFF_DATA, query, e);
++                }
++            }
++        }
+ 
+-/* Librarby was stopped, just return NULL. */
+-if(result != NULL && GET_ATOMIC_SIGNAL_EXIT(query)) {
+-for(GList *elem = result; elem; elem = elem->next) {
+-DL_free(elem->data);
+-}
++        /* Make this query reusable */
++        query->itemctr = 0;
+ 
+-g_list_free(result);
+-result = NULL;
++        /* Start of the returned list */
++        GlyrMemCache * head = NULL;
+ 
+-set_error(GLYRE_WAS_STOPPED, query, e);
+-}
++        /* Librarby was stopped, just return NULL. */
++        if (result != NULL && GET_ATOMIC_SIGNAL_EXIT (query) )
++        {
++            for (GList * elem = result; elem; elem = elem->next)
++                DL_free (elem->data);
+ 
+-/* Set the length */
+-if(length != NULL) {
+-*length = g_list_length(result);
+-}
++            g_list_free (result);
++            result = NULL;
+ 
+-/* free if empty */
+-if(result != NULL) {
+-/* Count inserstions */
+-gint db_inserts = 0;
++            set_error (GLYRE_WAS_STOPPED, query, e);
++        }
+ 
+-/* link caches to each other */
+-for(GList *elem = result; elem; elem = elem->next) {
+-GlyrMemCache *item = elem->data;
+-item->next = (elem->next) ? elem->next->data : NULL;
+-item->prev = (elem->prev) ? elem->prev->data : NULL;
++        /* Set the length */
++        if (length != NULL)
++        {
++            *length = g_list_length (result);
++        }
+ 
+-if(query->db_autowrite && query->local_db && item->cached == FALSE) {
+-db_inserts++;
+-glyr_db_insert(query->local_db, query, item);
+-}
+-}
++        /* free if empty */
++        if (result != NULL)
++        {
++            /* Count inserstions */
++            gint db_inserts = 0;
++
++            /* link caches to each other */
++            for (GList * elem = result; elem; elem = elem->next)
++            {
++                GlyrMemCache * item = elem->data;
++                item->next = (elem->next) ? elem->next->data : NULL;
++                item->prev = (elem->prev) ? elem->prev->data : NULL;
++
++                if (query->db_autowrite && query->local_db && item->cached == FALSE)
++                {
++                    db_inserts++;
++                    glyr_db_insert (query->local_db,query,item);
++                }
++            }
+ 
+-if(db_inserts > 0) {
+-glyr_message(2, query, "--- Inserted %d item%s into db.\n", db_inserts, (db_inserts == 1) ? "" : "s");
+-}
++            if (db_inserts > 0)
++            {
++                glyr_message (2,query,"--- Inserted %d item%s into db.\n",db_inserts, (db_inserts == 1) ? "" : "s");
++            }
+ 
+-/* Finish. */
+-if(g_list_first(result)) {
+-head = g_list_first(result)->data;
+-}
++            /* Finish. */
++            if (g_list_first (result) )
++            {
++                head = g_list_first (result)->data;
++            }
+ 
+-g_list_free(result);
+-result = NULL;
+-}
++            g_list_free (result);
++            result = NULL;
++        }
+ 
+-/* Done! */
+-SET_ATOMIC_SIGNAL_EXIT(query, 0);
+-return head;
+-}
++        /* Done! */
++        SET_ATOMIC_SIGNAL_EXIT (query,0);
++        return head;
++    }
+ 
+-set_error(GLYRE_EMPTY_STRUCT, query, e);
+-SET_ATOMIC_SIGNAL_EXIT(query, 0);
+-return NULL;
++    set_error (GLYRE_EMPTY_STRUCT, query, e);
++    SET_ATOMIC_SIGNAL_EXIT (query,0);
++    return NULL;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-int glyr_cache_write(GlyrMemCache *data, const char *path)
++__attribute__ ( (visibility ("default") ) )
++int glyr_cache_write (GlyrMemCache * data, const char * path)
+ {
+-int bytes = -1;
+-if(path) {
+-if(!g_ascii_strcasecmp(path, "null")) {
+-bytes = 0;
+-} else if(!g_ascii_strcasecmp(path, "stdout")) {
+-bytes = fwrite(data->data, 1, data->size, stdout);
+-fputc('\n', stdout);
+-} else if(!g_ascii_strcasecmp(path, "stderr")) {
+-bytes = fwrite(data->data, 1, data->size, stderr);
+-fputc('\n', stderr);
+-} else {
+-FILE *fp = fopen(path, "w");
+-if(fp) {
+-if(data->data != NULL) {
+-bytes = fwrite(data->data, 1, data->size, fp);
+-}
+-fclose(fp);
+-} else {
+-glyr_message(-1, NULL, "glyr_cache_write: Unable to write to '%s'!\n", path);
+-}
+-}
+-}
+-return bytes;
++    int bytes = -1;
++    if (path)
++    {
++        if (!g_ascii_strcasecmp (path,"null") )
++        {
++            bytes = 0;
++        }
++        else if (!g_ascii_strcasecmp (path,"stdout") )
++        {
++            bytes=fwrite (data->data,1,data->size,stdout);
++            fputc ('\n',stdout);
++        }
++        else if (!g_ascii_strcasecmp (path,"stderr") )
++        {
++            bytes=fwrite (data->data,1,data->size,stderr);
++            fputc ('\n',stderr);
++        }
++        else
++        {
++            FILE * fp = fopen (path,"w");
++            if (fp)
++            {
++                if (data->data != NULL)
++                {
++                    bytes=fwrite (data->data,1,data->size,fp);
++                }
++                fclose (fp);
++            }
++            else
++            {
++                glyr_message (-1,NULL,"glyr_cache_write: Unable to write to '%s'!\n",path);
++            }
++        }
++    }
++    return bytes;
+ }
+ 
+ /////////////////////////////////
+ 
+-static int glyr_set_info(GlyrQuery *s, int at, const char *arg)
++static int glyr_set_info (GlyrQuery * s, int at, const char * arg)
+ {
+-gint result = GLYRE_OK;
+-if(s && arg && at >= 0 && at < 10) {
+-if(s->info[at] != NULL) {
+-g_free((char *) s->info[at]);
+-}
++    gint result = GLYRE_OK;
++    if (s && arg && at >= 0 && at < 10)
++    {
++        if (s->info[at] != NULL)
++        {
++            g_free ( (char*) s->info[at]);
++        }
+ 
+-s->info[at] = g_strdup(arg);
+-switch(at) {
+-case 0:
+-s->artist = (gchar *) s->info[at];
+-break;
+-case 1:
+-s->album = (gchar *) s->info[at];
+-break;
+-case 2:
+-s->title = (gchar *) s->info[at];
+-break;
+-case 3:
+-s->proxy = s->info[at];
+-break;
+-case 4:
+-s->from = (gchar *) s->info[at];
+-break;
+-case 5:
+-s->allowed_formats = (gchar *) s->info[at];
+-break;
+-case 6:
+-s->useragent = (gchar *) s->info[at];
+-break;
+-case 7:
+-s->lang = (gchar *) s->info[at];
+-break;
+-case 8:
+-s->musictree_path = (gchar *) s->info[at];
+-break;
+-default:
+-glyr_message(2, s, "Warning: wrong <at> for glyr_info_at!\n");
+-}
+-} else {
+-result = GLYRE_BAD_VALUE;
+-}
+-return result;
++        s->info[at] = g_strdup (arg);
++        switch (at)
++        {
++        case 0:
++            s->artist = (gchar*) s->info[at];
++            break;
++        case 1:
++            s->album = (gchar*) s->info[at];
++            break;
++        case 2:
++            s->title = (gchar*) s->info[at];
++            break;
++        case 3:
++            s->proxy = s->info[at];
++            break;
++        case 4:
++            s->from = (gchar*) s->info[at];
++            break;
++        case 5:
++            s->allowed_formats = (gchar*) s->info[at];
++            break;
++        case 6:
++            s->useragent = (gchar*) s->info[at];
++            break;
++        case 7:
++            s->lang = (gchar*) s->info[at];
++            break;
++        case 8:
++            s->musictree_path = (gchar * ) s->info[at];
++            break;
++        default:
++            glyr_message (2,s,"Warning: wrong <at> for glyr_info_at!\n");
++        }
++    }
++    else
++    {
++        result = GLYRE_BAD_VALUE;
++    }
++    return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-const char *glyr_get_type_to_string(GLYR_GET_TYPE type)
++__attribute__ ( (visibility ("default") ) )
++const char * glyr_get_type_to_string (GLYR_GET_TYPE type)
+ {
+-const gchar *result = "unknown";
++    const gchar * result = "unknown";
+ 
+-GList *fetcher_list = r_getFList();
+-for(GList *elem = fetcher_list; elem != NULL; elem = elem->next) {
+-MetaDataFetcher *fetch = elem->data;
+-if(fetch->type == type) {
+-result = fetch->name;
+-break;
+-}
+-}
++    GList * fetcher_list = r_getFList();
++    for (GList * elem = fetcher_list; elem != NULL; elem = elem->next)
++    {
++        MetaDataFetcher * fetch = elem->data;
++        if (fetch->type == type)
++        {
++            result = fetch->name;
++            break;
++        }
++    }
+ 
+-return result;
++    return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_GET_TYPE glyr_string_to_get_type(const char *string)
++__attribute__ ( (visibility ("default") ) )
++GLYR_GET_TYPE glyr_string_to_get_type (const char * string)
+ {
+-if(string != NULL) {
+-GList *fetcher_list = r_getFList();
+-for(GList *elem = fetcher_list; elem != NULL; elem = elem->next) {
+-MetaDataFetcher *fetch = elem->data;
+-if(g_ascii_strcasecmp(fetch->name, string) == 0) {
+-return fetch->type;
+-break;
+-}
+-}
+-}
+-return GLYR_GET_UNKNOWN;
++    if (string != NULL)
++    {
++        GList * fetcher_list = r_getFList();
++        for (GList * elem = fetcher_list; elem != NULL; elem = elem->next)
++        {
++            MetaDataFetcher * fetch = elem->data;
++            if (g_ascii_strcasecmp (fetch->name,string) == 0)
++            {
++                return fetch->type;
++                break;
++            }
++        }
++    }
++    return GLYR_GET_UNKNOWN;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-const char *glyr_data_type_to_string(GLYR_DATA_TYPE type)
++__attribute__ ( (visibility ("default") ) )
++const char * glyr_data_type_to_string (GLYR_DATA_TYPE type)
+ {
+-if(type > 0 && type < (sizeof(type_strings) / sizeof(const char *))) {
+-return type_strings[type];
+-} else {
+-return type_strings[GLYR_TYPE_UNKNOWN];
+-}
++    if (type > 0 && type < (sizeof (type_strings) /sizeof (const char*) ) )
++    {
++        return type_strings[type];
++    }
++    else
++    {
++        return type_strings[GLYR_TYPE_UNKNOWN];
++    }
+ }
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_DATA_TYPE glyr_string_to_data_type(const char *string)
++__attribute__ ( (visibility ("default") ) )
++GLYR_DATA_TYPE glyr_string_to_data_type (const char * string)
+ {
+-if(string != NULL) {
+-gsize table_size = (sizeof(type_strings) / sizeof(const char *));
+-for(gsize i = 0; i < table_size; i++) {
+-if(g_ascii_strcasecmp(string, type_strings[i]) == 0) {
+-return i;
+-}
+-}
+-}
+-return GLYR_TYPE_UNKNOWN;
++    if (string != NULL)
++    {
++        gsize table_size = (sizeof (type_strings) /sizeof (const char*) );
++        for (gsize i = 0; i < table_size; i++)
++        {
++            if (g_ascii_strcasecmp (string,type_strings[i]) == 0)
++                return i;
++        }
++    }
++    return GLYR_TYPE_UNKNOWN;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_print(GlyrMemCache *cacheditem)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_print (GlyrMemCache * cacheditem)
+ {
+-if(cacheditem != NULL) {
+-glyr_message(-1, NULL, "FROM: <%s>\n", cacheditem->dsrc);
+-glyr_message(-1, NULL, "PROV: %s\n", cacheditem->prov);
+-glyr_message(-1, NULL, "SIZE: %d Bytes\n", (int) cacheditem->size);
+-glyr_message(-1, NULL, "MSUM: ");
++    if (cacheditem != NULL)
++    {
++        glyr_message (-1,NULL,"FROM: <%s>\n",cacheditem->dsrc);
++        glyr_message (-1,NULL,"PROV: %s\n",cacheditem->prov);
++        glyr_message (-1,NULL,"SIZE: %d Bytes\n", (int) cacheditem->size);
++        glyr_message (-1,NULL,"MSUM: ");
+ 
+ 
+-/* Print md5sum */
+-for(int i = 0; i < 16; i++) {
+-fprintf(stderr, "%02x", cacheditem->md5sum[i]);
+-}
+-
+-// Each cache identified it's data by a constant
+-glyr_message(-1, NULL, "\nTYPE: ");
+-if(cacheditem->type == GLYR_TYPE_TRACK) {
+-glyr_message(-1, NULL, "[%02d:%02d] ", cacheditem->duration / 60, cacheditem->duration % 60);
+-}
+-glyr_message(-1, NULL, "%s", glyr_data_type_to_string(cacheditem->type));
+-
+-glyr_message(-1, NULL, "\nSAFE: %s", (cacheditem->cached) ? "Yes" : "No");
+-glyr_message(-1, NULL, "\nRATE: %d", cacheditem->rating);
+-glyr_message(-1, NULL, "\nSTMP: %f", cacheditem->timestamp);
++        /* Print md5sum */
++        for (int i = 0; i < 16; i++)
++        {
++            fprintf (stderr,"%02x", cacheditem->md5sum[i]);
++        }
+ 
+-/* Print the actual data.
+- * This might have funny results if using cover/photos
+- */
+-if(cacheditem->is_image == FALSE) {
+-glyr_message(-1, NULL, "\nDATA: \n%s", cacheditem->data);
+-} else {
+-glyr_message(-1, NULL, "\nFRMT: %s", cacheditem->img_format);
+-glyr_message(-1, NULL, "\nDATA: <not printable>");
+-}
+-glyr_message(-1, NULL, "\n");
+-}
++        // Each cache identified it's data by a constant
++        glyr_message (-1,NULL,"\nTYPE: ");
++        if (cacheditem->type == GLYR_TYPE_TRACK)
++        {
++            glyr_message (-1,NULL,"[%02d:%02d] ",cacheditem->duration/60, cacheditem->duration%60);
++        }
++        glyr_message (-1,NULL,"%s",glyr_data_type_to_string (cacheditem->type) );
++
++        glyr_message (-1,NULL,"\nSAFE: %s", (cacheditem->cached) ? "Yes" : "No");
++        glyr_message (-1,NULL,"\nRATE: %d",cacheditem->rating);
++        glyr_message (-1,NULL,"\nSTMP: %f",cacheditem->timestamp);
++
++        /* Print the actual data.
++         * This might have funny results if using cover/photos
++         */
++        if (cacheditem->is_image == FALSE)
++        {
++            glyr_message (-1,NULL,"\nDATA: \n%s",cacheditem->data);
++        }
++        else
++        {
++            glyr_message (-1,NULL,"\nFRMT: %s",cacheditem->img_format);
++            glyr_message (-1,NULL,"\nDATA: <not printable>");
++        }
++        glyr_message (-1,NULL,"\n");
++    }
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GlyrFetcherInfo *glyr_info_get(void)
++__attribute__ ( (visibility ("default") ) )
++GlyrFetcherInfo * glyr_info_get (void)
+ {
+-return get_plugin_info();
++    return get_plugin_info();
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_info_free(GlyrFetcherInfo *info)
++__attribute__ ( (visibility ("default") ) )
++void glyr_info_free (GlyrFetcherInfo * info)
+ {
+-free_plugin_info(info);
++    free_plugin_info (info);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-char *glyr_md5sum_to_string(unsigned char *md5sum)
++__attribute__ ( (visibility ("default") ) )
++char * glyr_md5sum_to_string (unsigned char * md5sum)
+ {
+-gchar *md5str = NULL;
+-if(md5sum != NULL) {
+-const gchar *hex = "0123456789abcdef";
+-md5str = g_malloc0(33);
+-for(int i = 0; i < 16; i++) {
+-gint index = i * 2;
+-md5str[index + 0] = hex[md5sum[i] / 16];
+-md5str[index + 1] = hex[md5sum[i] % 16];
+-}
+-}
+-return md5str;
++    gchar * md5str = NULL;
++    if (md5sum != NULL)
++    {
++        const gchar * hex = "0123456789abcdef";
++        md5str = g_malloc0 (33);
++        for (int i = 0; i < 16; i++)
++        {
++            gint index = i * 2;
++            md5str[index + 0] = hex[md5sum[i] / 16];
++            md5str[index + 1] = hex[md5sum[i] % 16];
++        }
++    }
++    return md5str;
+ }
+ 
+ /////////////////////////////////
+ 
+ #define CHAR_TO_NUM(c) (unsigned char)(g_ascii_isdigit(c) ? c - '0' : (c - 'a') + 10)
+ 
+-__attribute__((visibility("default")))
+-void glyr_string_to_md5sum(const char *string, unsigned char *md5sum)
++__attribute__ ( (visibility ("default") ) )
++void glyr_string_to_md5sum (const char * string, unsigned char * md5sum)
+ {
+-if(string != NULL && strlen(string) >= 32 && md5sum) {
+-for(gint i = 0; i < 16; i++) {
+-gint index = i * 2;
+-md5sum[i] = (CHAR_TO_NUM(string[index]) << 4) + CHAR_TO_NUM(string[index + 1]);
+-}
+-}
++    if (string != NULL && strlen (string) >= 32 && md5sum)
++    {
++        for (gint i = 0; i < 16; i++)
++        {
++            gint index = i * 2;
++            md5sum[i] = (CHAR_TO_NUM (string[index]) << 4) + CHAR_TO_NUM (string[index+1]);
++        }
++    }
+ }
+ #undef CHAR_TO_NUM
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GLYR_FIELD_REQUIREMENT glyr_get_requirements(GLYR_GET_TYPE type)
++__attribute__ ( (visibility ("default") ) )
++GLYR_FIELD_REQUIREMENT glyr_get_requirements (GLYR_GET_TYPE type)
+ {
+-GLYR_FIELD_REQUIREMENT result = 0;
+-GlyrFetcherInfo *info = glyr_info_get();
+-GlyrFetcherInfo *head = info;
+-while(head != NULL) {
+-if(type == head->type) {
+-result = head->reqs;
+-}
+-head = head->next;
+-}
+-glyr_info_free(info);
+-return result;
++    GLYR_FIELD_REQUIREMENT result = 0;
++    GlyrFetcherInfo * info = glyr_info_get();
++    GlyrFetcherInfo * head = info;
++    while (head != NULL)
++    {
++        if (type == head->type)
++        {
++            result = head->reqs;
++        }
++        head = head->next;
++    }
++    glyr_info_free (info);
++    return result;
+ }
+ 
+ /* ---------------------------------------------------------
+@@ -1278,54 +1312,52 @@ return result;
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_set_dsrc(GlyrMemCache *cache, const char *download_source)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_set_dsrc (GlyrMemCache * cache, const char * download_source)
+ {
+-SET_CACHE_STRING(cache, cache->dsrc, download_source);
++    SET_CACHE_STRING (cache,cache->dsrc,download_source);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_set_prov(GlyrMemCache *cache, const char *provider)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_set_prov (GlyrMemCache * cache, const char * provider)
+ {
+-SET_CACHE_STRING(cache, cache->prov, provider);
++    SET_CACHE_STRING (cache,cache->prov,provider);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_set_img_format(GlyrMemCache *cache, const char *img_format)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_set_img_format (GlyrMemCache * cache, const char * img_format)
+ {
+-SET_CACHE_STRING(cache, cache->img_format, img_format);
++    SET_CACHE_STRING (cache,cache->img_format,img_format);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_set_type(GlyrMemCache *cache, GLYR_DATA_TYPE type)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_set_type (GlyrMemCache * cache, GLYR_DATA_TYPE type)
+ {
+-if(cache != NULL) {
+-cache->type = MAX(type, GLYR_TYPE_UNKNOWN);
+-}
++    if (cache != NULL)
++        cache->type = MAX (type,GLYR_TYPE_UNKNOWN);
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-void glyr_cache_set_rating(GlyrMemCache *cache, int rating)
++__attribute__ ( (visibility ("default") ) )
++void glyr_cache_set_rating (GlyrMemCache * cache, int rating)
+ {
+-if(cache != NULL) {
+-cache->rating = rating;
+-}
++    if (cache != NULL)
++        cache->rating = rating;
+ }
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-bool glyr_type_is_image(GLYR_GET_TYPE type)
++__attribute__ ( (visibility ("default") ) )
++bool glyr_type_is_image (GLYR_GET_TYPE type)
+ {
+-return TYPE_IS_IMAGE(type);
++    return TYPE_IS_IMAGE (type);
+ }
+ 
+ /////////////////////////////////
+diff --git a/lib/intern/ainfo.c b/lib/intern/ainfo.c
+index 921fe6b..fa63475 100644
+--- a/lib/intern/ainfo.c
++++ b/lib/intern/ainfo.c
+@@ -24,27 +24,30 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+     /* Fix up messy text, escape chars etc.  */
+-    for(GList *elem = list; elem; elem = elem->next) {
+-        GlyrMemCache *item = elem->data;
+-        if(item != NULL) {
++    for (GList * elem = list; elem; elem = elem->next)
++    {
++        GlyrMemCache * item = elem->data;
++        if (item != NULL)
++        {
+ 
+-            gchar *temp = beautify_string(item->data);
+-            g_free(item->data);
++            gchar * temp = beautify_string (item->data);
++            g_free (item->data);
+             item->data = temp;
+-            item->size = (item->data) ? strlen(item->data) : 0;
++            item->size = (item->data) ? strlen (item->data) : 0;
+         }
+     }
+ 
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_ARTIST_BIO, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_ARTIST_BIO,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_artistbio = {
++MetaDataFetcher glyrFetcher_artistbio =
++{
+     .name = "artistbio",
+     .type = GLYR_GET_ARTIST_BIO,
+     .default_data_type = GLYR_TYPE_ARTIST_BIO,
+diff --git a/lib/intern/ainfo/bbcmusic.c b/lib/intern/ainfo/bbcmusic.c
+index 6ffa32e..8d8914f 100644
+--- a/lib/intern/ainfo/bbcmusic.c
++++ b/lib/intern/ainfo/bbcmusic.c
+@@ -29,42 +29,47 @@
+ #define CONTENT_BEGIN "<content>"
+ #define CONTENT_ENDIN "</content>"
+ 
+-static GlyrMemCache *parse_bbc_xml(GlyrMemCache *input)
++static GlyrMemCache * parse_bbc_xml (GlyrMemCache * input)
+ {
+-    GlyrMemCache *result = NULL;
+-    char *content = get_search_value(input->data, CONTENT_BEGIN, CONTENT_ENDIN);
+-    if(content != NULL) {
++    GlyrMemCache * result = NULL;
++    char * content = get_search_value (input->data, CONTENT_BEGIN, CONTENT_ENDIN);
++    if (content != NULL)
++    {
+         result = DL_init();
+         result->data = content;
+-        result->dsrc = g_strdup(input->dsrc);
+-        result->size = strlen(content);
++        result->dsrc = g_strdup (input->dsrc);
++        result->size = strlen (content);
+     }
+     return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-static const char *ainfo_bbcmusic_url(GlyrQuery *qry)
++static const char * ainfo_bbcmusic_url (GlyrQuery * qry)
+ {
+     return "http://musicbrainz.org/ws/2/artist?query=artist:${artist}";
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *ainfo_bbcmusic_parse(cb_object *capo)
++static GList * ainfo_bbcmusic_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+-    char *mbid = mbid_parse_data(capo->cache, "artist", "name", capo->s->artist, capo->s);
++    char * mbid = mbid_parse_data (capo->cache, "artist", "name", capo->s->artist, capo->s);
+ 
+-    if(mbid != NULL) {
+-        char *full_url = g_strdup_printf(API_ROOT, mbid);
+-        if(full_url != NULL) {
+-            GlyrMemCache *bbc_xml = download_single(full_url, capo->s, NULL);
+-            if(bbc_xml != NULL) {
+-                GlyrMemCache *item = parse_bbc_xml(bbc_xml);
+-                if(item != NULL) {
+-                    result_list = g_list_prepend(result_list, item);
++    if (mbid != NULL)
++    {
++        char * full_url = g_strdup_printf (API_ROOT, mbid);
++        if (full_url != NULL)
++        {
++            GlyrMemCache * bbc_xml = download_single (full_url, capo->s, NULL);
++            if (bbc_xml != NULL)
++            {
++                GlyrMemCache * item = parse_bbc_xml (bbc_xml);
++                if (item != NULL)
++                {
++                    result_list = g_list_prepend (result_list, item);
+                 }
+                 DL_free(bbc_xml);
+             }
+@@ -78,7 +83,8 @@ static GList *ainfo_bbcmusic_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource ainfo_bbcmusic_src = {
++MetaDataSource ainfo_bbcmusic_src =
++{
+     .name      = "bbcmusic",
+     .key       = 'b',
+     .free_url  = false,
+diff --git a/lib/intern/ainfo/echonest.c b/lib/intern/ainfo/echonest.c
+index 48a8f64..b7c6c22 100644
+--- a/lib/intern/ainfo/echonest.c
++++ b/lib/intern/ainfo/echonest.c
+@@ -24,21 +24,21 @@
+ /* JSON Parsing */
+ #include "../../jsmn/jsmn.h"
+ 
+-static const gchar *ainfo_echonest_url(GlyrQuery *s)
++static const gchar * ainfo_echonest_url (GlyrQuery * s)
+ {
+     return "http://developer.echonest.com/api/v4/artist/biographies?api_key="API_KEY_ECHONEST"&results=${number}&format=json&name=${artist}";
+ }
+ 
+ /////////////////////////////////
+ 
+-static char *echonest_strip_escapes(char *src, char *dest, int len)
++static char * echonest_strip_escapes(char * src, char * dest, int len) 
+ {
+     int offset = 0;
+ 
+-    for(int i = 0; i < len; ++i) {
+-        if(src[i] == '\\') {
++    for (int i = 0; i < len; ++i) {
++        if (src[i] == '\\') {
+             ++i;
+-            if(src[i] == 'n') {
++            if (src[i] == 'n') {
+                 dest[offset++] = '\n';
+                 continue;
+             }
+@@ -51,10 +51,10 @@ static char *echonest_strip_escapes(char *src, char *dest, int len)
+ 
+ /////////////////////////////////
+ 
+-static bool echonest_check_if_text_is_valid(char *text, int len)
++static bool echonest_check_if_text_is_valid(char * text, int len) 
+ {
+     bool rc = false;
+-    if(len >= 125) {
++    if (len >= 125) {
+         return true;
+     }
+ 
+@@ -63,13 +63,13 @@ static bool echonest_check_if_text_is_valid(char *text, int len)
+ 
+ /////////////////////////////////
+ 
+-static GList *ainfo_echonest_parse(cb_object *capo)
++static GList * ainfo_echonest_parse (cb_object * capo)
+ {
+-    char *json = capo->cache->data;
++    char * json = capo->cache->data;
+     bool is_text = false;
+     const int num_tokens = 512;
+-
+-    GList *results = NULL;
++    
++    GList * results = NULL;
+ 
+     /* jasmin stuff */
+     jsmn_parser parser;
+@@ -85,30 +85,30 @@ static GList *ainfo_echonest_parse(cb_object *capo)
+     /* Parse the json text */
+     error = jsmn_parse(&parser, capo->cache->data, tokens, num_tokens);
+ 
+-    if(error == JSMN_SUCCESS) {
+-        for(int i = 0; i < num_tokens; ++i) {
+-            jsmntok_t *tok = &tokens[i];
++    if (error == JSMN_SUCCESS) {
++        for (int i = 0; i < num_tokens; ++i) {
++            jsmntok_t * tok = &tokens[i];
+             size_t len = tok->end - tok->start;
+-            char *text_off = json + tok->start;
+-
++            char * text_off = json + tok->start;
++            
+             /* End of tokens? */
+             if(tok->start == 0 && tok->end == 0) {
+                 break;
+             }
+ 
+             /* Check for the "text" field. */
+-            if(tok->type == JSMN_STRING) {
+-                if(len == 4 && g_ascii_strncasecmp(text_off, "text", len) == 0) {
++            if (tok->type == JSMN_STRING) {
++                if (len == 4 && g_ascii_strncasecmp(text_off, "text", len) == 0) {
+                     is_text = true;
+                     continue;
+                 }
+             }
+ 
+             /* Interesting part! */
+-            if(is_text == true && tok->type == JSMN_STRING) {
+-                if(echonest_check_if_text_is_valid(text_off, len)) {
+-                    GlyrMemCache *cache = DL_init();
+-                    if(cache != NULL) {
++            if (is_text == true && tok->type == JSMN_STRING) {
++                if (echonest_check_if_text_is_valid(text_off, len)) {
++                    GlyrMemCache * cache = DL_init();
++                    if (cache != NULL) {
+                         cache->data = g_strndup(text_off, len);
+                         cache->data = echonest_strip_escapes(cache->data, cache->data, len);
+                         cache->size = len;
+@@ -128,7 +128,8 @@ static GList *ainfo_echonest_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource ainfo_echonest_src = {
++MetaDataSource ainfo_echonest_src =
++{
+     .name      = "echonest",
+     .key       = 'e',
+     .free_url  = false,
+@@ -138,5 +139,5 @@ MetaDataSource ainfo_echonest_src = {
+     .quality   = 95,
+     .speed     = 85,
+     .endmarker = NULL,
+-    .lang_aware = false
++    .lang_aware = false 
+ };
+diff --git a/lib/intern/ainfo/lastfm.c b/lib/intern/ainfo/lastfm.c
+index 17e464d..7cd90f1 100644
+--- a/lib/intern/ainfo/lastfm.c
++++ b/lib/intern/ainfo/lastfm.c
+@@ -26,59 +26,67 @@
+ #define CDATA_BEGIN "<![CDATA["
+ 
+ /* Locales that are just mapped to 'en' */
+-const char *locale_map_to_en = "ca|uk|us";
++const char * locale_map_to_en = "ca|uk|us";
+ 
+-static const gchar *ainfo_lastfm_url(GlyrQuery *s)
++static const gchar * ainfo_lastfm_url (GlyrQuery * s)
+ {
+-    gchar *url = NULL;
+-    gchar *right_artist = strreplace(s->artist, " ", "+");
+-    if(right_artist != NULL) {
+-        gchar *lang = "en";
++    gchar * url = NULL;
++    gchar * right_artist = strreplace (s->artist," ","+");
++    if (right_artist != NULL)
++    {
++        gchar * lang = "en";
+ 
+         /* Check if this is an allowed language */
+-        if(strstr(GLYR_DEFAULT_SUPPORTED_LANGS, s->lang) != NULL) {
+-            lang = (gchar *) s->lang;
++        if (strstr (GLYR_DEFAULT_SUPPORTED_LANGS,s->lang) != NULL)
++        {
++            lang = (gchar*) s->lang;
+         }
+ 
+         /* Do we need to map a language to 'en'? */
+-        if(strstr(locale_map_to_en, s->lang) != NULL) {
++        if (strstr (locale_map_to_en,s->lang) != NULL)
++        {
+             lang = "en";
+         }
+ 
+-        url = g_strdup_printf("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&autocorrect=1&artist=%s&lang=%s&api_key="API_KEY_LASTFM, right_artist, lang);
+-        g_free(right_artist);
++        url = g_strdup_printf ("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&autocorrect=1&artist=%s&lang=%s&api_key="API_KEY_LASTFM,right_artist,lang);
++        g_free (right_artist);
+     }
+     return url;
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *ainfo_lastfm_parse(cb_object *capo)
++static GList * ainfo_lastfm_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *content_begin = strstr(capo->cache->data, CONTENT_BEGIN);
++    GList * result_list = NULL;
++    gchar * content_begin = strstr (capo->cache->data,CONTENT_BEGIN);
+ 
+-    if(content_begin != NULL) {
+-        gchar *content_endin = strstr(capo->cache->data, CONTENT_ENDIN);
++    if (content_begin != NULL)
++    {
++        gchar * content_endin = strstr (capo->cache->data,CONTENT_ENDIN);
+ 
+-        if(content_endin == NULL) {
+-            content_endin = strstr(capo->cache->data, OTHER_ENDIN);
++        if (content_endin == NULL)
++        {
++            content_endin = strstr (capo->cache->data,OTHER_ENDIN);
+         }
+ 
+-        if(content_endin != NULL) {
++        if (content_endin != NULL)
++        {
+             content_begin += (sizeof CONTENT_BEGIN) - 1;
+ 
+-            char *skip_cdata = strstr(content_begin, CDATA_BEGIN);
+-            if(skip_cdata != NULL) {
++            char * skip_cdata = strstr(content_begin, CDATA_BEGIN);
++            if (skip_cdata != NULL)
++            {
+                 content_begin = skip_cdata + (sizeof CDATA_BEGIN) - 1;
+             }
+ 
+-            gchar *content = copy_value(content_begin, content_endin);
+-            if(content != NULL) {
+-                GlyrMemCache *result = DL_init();
++            gchar * content = copy_value (content_begin,content_endin);
++            if (content != NULL)
++            {
++                GlyrMemCache * result = DL_init();
+                 result->data = content;
+-                result->size = strlen(result->data);
+-                result_list = g_list_prepend(result_list, result);
++                result->size = strlen (result->data);
++                result_list = g_list_prepend (result_list,result);
+             }
+         }
+     }
+@@ -87,7 +95,8 @@ static GList *ainfo_lastfm_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource ainfo_lastfm_src = {
++MetaDataSource ainfo_lastfm_src =
++{
+     .name      = "lastfm",
+     .key       = 'l',
+     .free_url  = true,
+diff --git a/lib/intern/ainfo/lyricsreg.c b/lib/intern/ainfo/lyricsreg.c
+index 05f245b..4ed6866 100644
+--- a/lib/intern/ainfo/lyricsreg.c
++++ b/lib/intern/ainfo/lyricsreg.c
+@@ -26,36 +26,41 @@
+ #define INFO_ENDIN "</div>"
+ /////////////////////////////////
+ 
+-static const gchar *ainfo_lyricsreg_url(GlyrQuery *s)
++static const gchar * ainfo_lyricsreg_url (GlyrQuery * s)
+ {
+     return "http://www.lyricsreg.com/biography/${artist}/";
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *ainfo_lyricsreg_parse(cb_object *capo)
++static GList * ainfo_lyricsreg_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *point_to_start = strstr(capo->cache->data, INFO_BEGIN);
+-    if(point_to_start != NULL) {
+-        gchar *opt_begin = strstr(point_to_start, OPTN_BEGIN);
++    GList * result_list = NULL;
++    gchar * point_to_start = strstr (capo->cache->data,INFO_BEGIN);
++    if (point_to_start != NULL)
++    {
++        gchar * opt_begin = strstr (point_to_start,OPTN_BEGIN);
+         gsize skip_len = (sizeof INFO_BEGIN) - 1;
+-        if(opt_begin != NULL) {
++        if (opt_begin != NULL)
++        {
+             point_to_start = opt_begin;
+             skip_len = (sizeof OPTN_BEGIN) - 1;
+         }
+ 
+         point_to_start += skip_len;
+-        gchar *end = strstr(point_to_start, INFO_ENDIN);
+-        if(end != NULL) {
++        gchar * end = strstr (point_to_start, INFO_ENDIN);
++        if (end != NULL)
++        {
+             gsize info_len = end - point_to_start;
+-            if(info_len > 200) {
+-                gchar *info = copy_value(point_to_start, end);
+-                if(info != NULL) {
+-                    GlyrMemCache *result = DL_init();
++            if (info_len > 200)
++            {
++                gchar * info = copy_value (point_to_start, end);
++                if (info != NULL)
++                {
++                    GlyrMemCache * result = DL_init();
+                     result->data = info;
+                     result->size = info_len;
+-                    result_list = g_list_prepend(result_list, result);
++                    result_list = g_list_prepend (result_list,result);
+                 }
+             }
+         }
+@@ -65,7 +70,8 @@ static GList *ainfo_lyricsreg_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource ainfo_lyricsreg_src = {
++MetaDataSource ainfo_lyricsreg_src =
++{
+     .name      = "lyricsreg",
+     .key       = 'r',
+     .free_url  = false,
+diff --git a/lib/intern/albumlist.c b/lib/intern/albumlist.c
+index 14a8705..1df737a 100644
+--- a/lib/intern/albumlist.c
++++ b/lib/intern/albumlist.c
+@@ -24,15 +24,16 @@
+ 
+ //-------------------------------------
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_ALBUMLIST, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_ALBUMLIST,result_list);
+ }
+ 
+ //-------------------------------------
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_albumlist = {
++MetaDataFetcher glyrFetcher_albumlist =
++{
+     .name = "albumlist",
+     .type = GLYR_GET_ALBUMLIST,
+     .default_data_type = GLYR_TYPE_ALBUMLIST,
+diff --git a/lib/intern/albumlist/musicbrainz.c b/lib/intern/albumlist/musicbrainz.c
+index c8c2874..f60c13b 100644
+--- a/lib/intern/albumlist/musicbrainz.c
++++ b/lib/intern/albumlist/musicbrainz.c
+@@ -21,7 +21,7 @@
+ #include "../../stringlib.h"
+ #include "../../core.h"
+ 
+-static const gchar *albumlist_musicbrainz_url(GlyrQuery *sets)
++static const gchar * albumlist_musicbrainz_url (GlyrQuery * sets)
+ {
+     return "http://musicbrainz.org/ws/1/release/?type=xml&artist=${artist}&limit=100";
+ }
+@@ -42,13 +42,16 @@ static const gchar *albumlist_musicbrainz_url(GlyrQuery *sets)
+ 
+ /////////////////////////////////////////////////////////////
+ 
+-static bool is_in_list(GList *list, const char *to_cmp)
++static bool is_in_list (GList * list, const char * to_cmp)
+ {
+     bool rc = false;
+-    for(GList *elem = list; elem; elem = elem->next) {
+-        GlyrMemCache *item = elem->data;
+-        if(item != NULL) {
+-            if(g_ascii_strcasecmp(item->data, to_cmp) == 0) {
++    for (GList * elem = list; elem; elem = elem->next)
++    {
++        GlyrMemCache * item = elem->data;
++        if (item != NULL)
++        {
++            if (g_ascii_strcasecmp (item->data,to_cmp) == 0)
++            {
+                 rc = true;
+                 break;
+             }
+@@ -60,14 +63,13 @@ static bool is_in_list(GList *list, const char *to_cmp)
+ 
+ /////////////////////////////////////////////////////////////
+ 
+-static bool type_is_valid(const char *type)
++static bool type_is_valid (const char * type)
+ {
+     bool result = FALSE;
+-    if(type == NULL) {
++    if (type == NULL)
+         return result;
+-    }
+ 
+-    static const char *valid_types[] = {
++    static const char * valid_types[] = {
+         "Single Official",
+         "Album Official",
+         NULL
+@@ -75,7 +77,7 @@ static bool type_is_valid(const char *type)
+ 
+     int check_idx = 0;
+     while(valid_types[check_idx]) {
+-        if(g_strcmp0(valid_types[check_idx], type) == 0) {
++        if (g_strcmp0(valid_types[check_idx], type) == 0) {
+             result = TRUE;
+             break;
+         }
+@@ -87,42 +89,48 @@ static bool type_is_valid(const char *type)
+ 
+ /////////////////////////////////////////////////////////////
+ 
+-static GList *albumlist_musicbrainz_parse(cb_object *capo)
++static GList * albumlist_musicbrainz_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *node = capo->cache->data;
++    GList * result_list = NULL;
++    gchar * node = capo->cache->data;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s) &&
+-            (node = strstr(node + 1, ALBUM_BEGIN)) != NULL) {
+-        gchar *type = get_search_value(node, TYPE_BEGIN, TYPE_ENDIN);
+-        if(type_is_valid(type)) {
+-            gchar *artist = get_search_value(node, ARTIST_BEGIN, ARTIST_ENDIN);
+-            if(artist != NULL &&
+-                    levenshtein_strnormcmp(capo->s, capo->s->artist, artist) <= capo->s->fuzzyness) {
++    while (continue_search (g_list_length (result_list),capo->s) &&
++            (node = strstr (node + 1, ALBUM_BEGIN) ) != NULL)
++    {
++        gchar * type = get_search_value (node, TYPE_BEGIN, TYPE_ENDIN);
++        if (type_is_valid (type)) 
++        {
++            gchar * artist = get_search_value (node,ARTIST_BEGIN, ARTIST_ENDIN);
++            if (artist != NULL && 
++                    levenshtein_strnormcmp (capo->s, capo->s->artist, artist) <= capo->s->fuzzyness) {
+ 
+ 
+-                gchar *name = get_search_value(node, TITLE_BEGIN, TITLE_ENDIN);
++                gchar * name = get_search_value (node,TITLE_BEGIN,TITLE_ENDIN);
+ 
+-                if(name != NULL && is_in_list(result_list, name) == false) {
+-                    GlyrMemCache *result = DL_init();
++                if (name != NULL && is_in_list (result_list,name) == false)
++                {
++                    GlyrMemCache * result = DL_init();
+                     result->data = name;
+-                    result->size = (result->data) ? strlen(result->data) : 0;
+-                    result_list = g_list_prepend(result_list, result);
+-                } else {
+-                    g_free(name);
++                    result->size = (result->data) ? strlen (result->data) : 0;
++                    result_list = g_list_prepend (result_list,result);
++                }
++                else 
++                {
++                    g_free (name);
+                 }
+             }
+-            g_free(artist);
++            g_free (artist);
+         }
+ 
+-        g_free(type);
++        g_free (type);
+     }
+     return result_list;
+ }
+ 
+ /////////////////////////////////////////////////////////////
+ 
+-MetaDataSource albumlist_musicbrainz_src = {
++MetaDataSource albumlist_musicbrainz_src =
++{
+     .name = "musicbrainz",
+     .key = 'm',
+     .free_url = false,
+diff --git a/lib/intern/backdrops.c b/lib/intern/backdrops.c
+index 4fbced8..3671644 100644
+--- a/lib/intern/backdrops.c
++++ b/lib/intern/backdrops.c
+@@ -23,15 +23,16 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_img_finalizer(s, list, stop_me, GLYR_TYPE_BACKDROPS, result_list);
++    return generic_img_finalizer (s,list,stop_me,GLYR_TYPE_BACKDROPS,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_backdrops = {
++MetaDataFetcher glyrFetcher_backdrops =
++{
+     .name = "backdrops",
+     .type = GLYR_GET_BACKDROPS,
+     .default_data_type = GLYR_TYPE_BACKDROPS,
+diff --git a/lib/intern/backdrops/htbackdrops.c b/lib/intern/backdrops/htbackdrops.c
+index 97fd2b4..cbb912c 100644
+--- a/lib/intern/backdrops/htbackdrops.c
++++ b/lib/intern/backdrops/htbackdrops.c
+@@ -26,31 +26,33 @@
+     "/searchXML?keywords=${artist}&default_operator=and&"  \
+     "fields=title&inc=mb_name&limit=%d&dmax_w=%d&dmin_h=%d"
+ 
+-static const gchar *backdrops_htbackdrops_url(GlyrQuery *q)
++static const gchar * backdrops_htbackdrops_url (GlyrQuery * q)
+ {
+-    gchar *result = g_strdup_printf(HTBACKDROPS_URL, API_KEY_HTBACK, q->number * 20,
+-                                    (q->img_max_size < 0) ? (gint) 1e10 : q->img_max_size,
+-                                    (q->img_min_size < 0) ? 0          : q->img_min_size);
++    gchar * result = g_strdup_printf (HTBACKDROPS_URL, API_KEY_HTBACK,q->number * 20,
++                                      (q->img_max_size < 0) ? (gint) 1e10 : q->img_max_size,
++                                      (q->img_min_size < 0) ? 0          : q->img_min_size);
+ 
+     return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-static gboolean check_size(GlyrQuery *query, const gchar *size_string)
++static gboolean check_size (GlyrQuery * query, const gchar * size_string)
+ {
+     gboolean result = FALSE;
+-    if(size_string != NULL && query != NULL) {
+-        /* "1024x1024" -> ["1024", 1024"] */
+-        gchar **strv = g_strsplit(size_string, "x", 0);
+-        if(strv && strv[0] && strv[1]) {
+-            gint width  = strtol(strv[0], NULL, 10);
+-            gint height = strtol(strv[1], NULL, 10);
++    if (size_string != NULL && query != NULL)
++    {
++        /* "1024x1024" -> ["1024","1024"] */
++        gchar ** strv = g_strsplit (size_string,"x",0);
++        if (strv && strv[0] && strv[1])
++        {
++            gint width  = strtol (strv[0],NULL,10);
++            gint height = strtol (strv[1],NULL,10);
+             gint img_size = (width + height) / 2;
+ 
+-            result = size_is_okay(img_size, query->img_min_size, query->img_max_size);
++            result = size_is_okay (img_size, query->img_min_size, query->img_max_size);
+         }
+-        g_strfreev(strv);
++        g_strfreev (strv);
+     }
+     return result;
+ }
+@@ -59,31 +61,36 @@ static gboolean check_size(GlyrQuery *query, const gchar *size_string)
+ 
+ #define NODE "<image>"
+ 
+-static GList *backdrops_htbackdrops_parse(cb_object *capo)
++static GList * backdrops_htbackdrops_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *img_list_start = strstr(capo->cache->data, "<images>");
+-    if(img_list_start != NULL) {
+-        gchar *node = img_list_start;
+-        while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node, NODE))) {
++    GList * result_list = NULL;
++    gchar * img_list_start = strstr (capo->cache->data,"<images>");
++    if (img_list_start != NULL)
++    {
++        gchar * node = img_list_start;
++        while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node,NODE) ) )
++        {
+             node += sizeof NODE;
+ 
+-            gchar *dimensions = get_search_value(node, "<dimensions>", "</dimensions>");
+-            if(check_size(capo->s, dimensions) == TRUE) {
+-                gchar *validate_artist = get_search_value(node, "<mb_name>", "</mb_name>");
+-                if(levenshtein_strnormcmp(capo->s, validate_artist, capo->s->artist) <= capo->s->fuzzyness) {
+-                    gchar *id = get_search_value(node, "<id>", "</id>");
+-                    if(id != NULL) {
+-                        GlyrMemCache *result = DL_init();
+-                        result->data = g_strdup_printf("http://htbackdrops.org/api/"API_KEY_HTBACK"/download/%s/fullsize", id);
+-                        result->size = strlen(result->data);
+-                        result_list  = g_list_prepend(result_list, result);
+-                        g_free(id);
++            gchar * dimensions = get_search_value (node,"<dimensions>","</dimensions>");
++            if (check_size (capo->s,dimensions) == TRUE)
++            {
++                gchar * validate_artist = get_search_value (node,"<mb_name>","</mb_name>");
++                if (levenshtein_strnormcmp (capo->s,validate_artist,capo->s->artist) <= capo->s->fuzzyness)
++                {
++                    gchar * id = get_search_value (node,"<id>","</id>");
++                    if (id != NULL)
++                    {
++                        GlyrMemCache * result = DL_init();
++                        result->data = g_strdup_printf ("http://htbackdrops.org/api/"API_KEY_HTBACK"/download/%s/fullsize",id);
++                        result->size = strlen (result->data);
++                        result_list  = g_list_prepend (result_list,result);
++                        g_free (id);
+                     }
+                 }
+-                g_free(validate_artist);
++                g_free (validate_artist);
+             }
+-            g_free(dimensions);
++            g_free (dimensions);
+         }
+     }
+     return result_list;
+@@ -91,7 +98,8 @@ static GList *backdrops_htbackdrops_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource backdrops_htbackdrops_src = {
++MetaDataSource backdrops_htbackdrops_src =
++{
+     .name = "htbackdrops",
+     .key  = 'h',
+     .parser    = backdrops_htbackdrops_parse,
+diff --git a/lib/intern/cache/db_provider.c b/lib/intern/cache/db_provider.c
+index 1bc12f8..c5593ac 100644
+--- a/lib/intern/cache/db_provider.c
++++ b/lib/intern/cache/db_provider.c
+@@ -22,22 +22,27 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *local_provider_parse(cb_object *capo)
++static GList * local_provider_parse (cb_object * capo)
+ {
+-    GList *converter_list = NULL;
+-    if(capo->s && capo->s->local_db != NULL) {
++    GList * converter_list = NULL;
++    if (capo->s && capo->s->local_db != NULL)
++    {
+         gint counter = 0;
+-        GlyrMemCache *head = glyr_db_lookup(capo->s->local_db, capo->s);
+-        while(head != NULL) {
+-            if(counter < capo->s->number) {
+-                converter_list = g_list_prepend(converter_list, head);
++        GlyrMemCache * head = glyr_db_lookup (capo->s->local_db,capo->s);
++        while (head != NULL)
++        {
++            if (counter < capo->s->number)
++            {
++                converter_list = g_list_prepend (converter_list,head);
+                 head->cached = TRUE;
+                 head = head->next;
+                 counter++;
+-            } else {
+-                GlyrMemCache *to_delete = head;
++            }
++            else
++            {
++                GlyrMemCache * to_delete = head;
+                 head = head->next;
+-                DL_free(to_delete);
++                DL_free (to_delete);
+             }
+         }
+     }
+@@ -46,14 +51,15 @@ static GList *local_provider_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-static const gchar *local_provider_url(GlyrQuery *sets)
++static const gchar * local_provider_url (GlyrQuery * sets)
+ {
+     return OFFLINE_PROVIDER;
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource local_provider_src = {
++MetaDataSource local_provider_src =
++{
+     .name = "local",
+     .key  = 'l',
+     .parser    = local_provider_parse,
+diff --git a/lib/intern/common/amazon.c b/lib/intern/common/amazon.c
+index b7f9869..fcba773 100644
+--- a/lib/intern/common/amazon.c
++++ b/lib/intern/common/amazon.c
+@@ -27,28 +27,29 @@
+ 
+ #define ACCESS_KEY API_KEY_AMAZON
+ #define rg_markup "__RESPONSE_GROUP__"
+-const gchar *generic_amazon_url(GlyrQuery *sets, const gchar *response_group)
++const gchar * generic_amazon_url (GlyrQuery * sets, const gchar * response_group)
+ {
+-    const char *lang_link = NULL;
+-    if(sets->img_min_size <= 500 || sets->img_min_size) {
+-        if(!strcmp(sets->lang, "us")) {
++    const char * lang_link = NULL;
++    if (sets->img_min_size <= 500 || sets->img_min_size)
++    {
++        if (!strcmp (sets->lang,"us") )
+             lang_link = "http://free.apisigning.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId="ACCESS_KEY"&Operation=ItemSearch&SearchIndex=Music&ResponseGroup="rg_markup"&Keywords=${artist}+${album}\0";
+-        } else if(!strcmp(sets->lang, "ca")) {
++        else if (!strcmp (sets->lang,"ca") )
+             lang_link = "http://ca.free.apisigning.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId="ACCESS_KEY"&Operation=ItemSearch&SearchIndex=Music&ResponseGroup="rg_markup"&Keywords=${artist}+${album}\0";
+-        } else if(!strcmp(sets->lang, "uk")) {
++        else if (!strcmp (sets->lang,"uk") )
+             lang_link = "http://co.uk.free.apisigning.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId="ACCESS_KEY"&Operation=ItemSearch&SearchIndex=Music&ResponseGroup="rg_markup"&Keywords=${artist}+${album}\0";
+-        } else if(!strcmp(sets->lang, "fr")) {
++        else if (!strcmp (sets->lang,"fr") )
+             lang_link = "http://fr.free.apisigning.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId="ACCESS_KEY"&Operation=ItemSearch&SearchIndex=Music&ResponseGroup="rg_markup"&Keywords=${artist}+${album}\0";
+-        } else if(!strcmp(sets->lang, "de")) {
++        else if (!strcmp (sets->lang,"de") )
+             lang_link = "http://de.free.apisigning.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId="ACCESS_KEY"&Operation=ItemSearch&SearchIndex=Music&ResponseGroup="rg_markup"&Keywords=${artist}+${album}\0";
+-        } else if(!strcmp(sets->lang, "jp")) {
++        else if (!strcmp (sets->lang,"jp") )
+             lang_link = "http://co.jp.free.apisigning.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId="ACCESS_KEY"&Operation=ItemSearch&SearchIndex=Music&ResponseGroup="rg_markup"&Keywords=${artist}+${album}\0";
+-        } else {
++        else
+             lang_link = "http://free.apisigning.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId="ACCESS_KEY"&Operation=ItemSearch&SearchIndex=Music&ResponseGroup="rg_markup"&Keywords=${artist}+${album}\0";
+-        }
+     }
+-    if(lang_link != NULL) {
+-        return strreplace(lang_link, rg_markup, response_group);
++    if (lang_link != NULL)
++    {
++        return strreplace (lang_link,rg_markup,response_group);
+     }
+     return NULL;
+ }
+diff --git a/lib/intern/common/google.c b/lib/intern/common/google.c
+index 38e6fd9..f99f08a 100644
+--- a/lib/intern/common/google.c
++++ b/lib/intern/common/google.c
+@@ -25,43 +25,55 @@
+ /////////////////////////////////
+ 
+ /* Methods used by more than one provider go here */
+-const gchar *generic_google_url(GlyrQuery *sets, const gchar *searchterm)
++const gchar * generic_google_url (GlyrQuery * sets, const gchar * searchterm)
+ {
+-    const gchar *lang = NULL;
+-    if(!g_ascii_strncasecmp(sets->lang, "us", 2)) {
++    const gchar * lang = NULL;
++    if (!g_ascii_strncasecmp (sets->lang,"us",2) )
+         lang = "com"  ;
+-    } else if(!g_ascii_strncasecmp(sets->lang, "ca", 2)) {
++    else if (!g_ascii_strncasecmp (sets->lang,"ca",2) )
+         lang = "ca"   ;
+-    } else if(!g_ascii_strncasecmp(sets->lang, "uk", 2)) {
++    else if (!g_ascii_strncasecmp (sets->lang,"uk",2) )
+         lang = "co.uk";
+-    } else if(!g_ascii_strncasecmp(sets->lang, "fr", 2)) {
++    else if (!g_ascii_strncasecmp (sets->lang,"fr",2) )
+         lang = "fr"   ;
+-    } else if(!g_ascii_strncasecmp(sets->lang, "de", 2)) {
++    else if (!g_ascii_strncasecmp (sets->lang,"de",2) )
+         lang = "de"   ;
+-    } else if(!g_ascii_strncasecmp(sets->lang, "jp", 2)) {
++    else if (!g_ascii_strncasecmp (sets->lang,"jp",2) )
+         lang = "co.jp";
+-    } else {
++    else
+         lang = "com";
+-    }
+ 
+-    const gchar *back = NULL;
+-    if(sets->img_min_size == -1) {
++    const gchar * back = NULL;
++    if (sets->img_min_size == -1)
++    {
+         back = "";
+-    } else if(sets->img_min_size < 75) {
++    }
++    else if (sets->img_min_size < 75)
++    {
+         back = "&tbs=isz:i";
+-    } else if(sets->img_min_size < 300) {
++    }
++    else if (sets->img_min_size < 300)
++    {
+         back = "&tbs=isz:m";
+-    } else if(sets->img_min_size < 450) {
+-        back = "&tbs=isz:lt, slt:qsvga";
+-    } else if(sets->img_min_size < 550) {
+-        back = "&tbs=isz:lt, slt:vg/a";
+-    } else if(sets->img_min_size < 700) {
+-        back = "&tbs=isz:lt, slt:svga";
+-    } else { /* High enough. */
+-        back = "&tbs=isz:lt, slt:xga";
++    }
++    else if (sets->img_min_size < 450)
++    {
++        back = "&tbs=isz:lt,islt:qsvga";
++    }
++    else if (sets->img_min_size < 550)
++    {
++        back = "&tbs=isz:lt,islt:vg/a";
++    }
++    else if (sets->img_min_size < 700)
++    {
++        back = "&tbs=isz:lt,islt:svga";
++    }
++    else /* High enough. */
++    {
++        back = "&tbs=isz:lt,islt:xga";
+     }
+ 
+-    return g_strdup_printf("http://www.google.%s/images?q=%s&safe=off%s%s", lang, searchterm, (back != NULL) ? "" : "&", back);
++    return g_strdup_printf ("http://www.google.%s/images?q=%s&safe=off%s%s",lang,searchterm, (back!=NULL) ? "" : "&", back);
+ }
+ 
+ /////////////////////////////////
+@@ -71,18 +83,20 @@ const gchar *generic_google_url(GlyrQuery *sets, const gchar *searchterm)
+ #define HEIGHT_START  "&h="
+ #define MAX_NUM_BUF   16
+ 
+-static gint google_get_size_value(gchar *ref, gchar *name)
++static gint google_get_size_value (gchar * ref, gchar * name)
+ {
+     gint number = 0;
+-    gchar *start = g_strstr_len(ref, 256, name);
+-    if(start != NULL) {
+-        start += strlen(name);
+-        gchar *end = strchr(start, ' ');
+-        if(end != NULL) {
++    gchar * start = g_strstr_len (ref,256,name);
++    if (start != NULL)
++    {
++        start += strlen (name);
++        gchar * end = strchr (start,' ');
++        if (end != NULL)
++        {
+             gchar numbuf[MAX_NUM_BUF] = {};
+-            gsize span = MIN(end - start, MAX_NUM_BUF - 1);
+-            strncpy(numbuf, start, span);
+-            number = strtol(numbuf, NULL, 10);
++            gsize span = MIN (end - start,MAX_NUM_BUF-1);
++            strncpy (numbuf,start,span);
++            number = strtol (numbuf,NULL,10);
+         }
+     }
+     return number;
+@@ -90,16 +104,17 @@ static gint google_get_size_value(gchar *ref, gchar *name)
+ 
+ /////////////////////////////////
+ 
+-static gboolean google_check_image_size(GlyrQuery *s, gchar *ref)
++static gboolean google_check_image_size (GlyrQuery * s, gchar * ref)
+ {
+     gboolean result = FALSE;
+-    gchar *img_src_after = strstr(ref, IMG_SRC_START);
+-    if(img_src_after != NULL) {
+-        gint width  = google_get_size_value(img_src_after, WIDTH_START);
+-        gint height = google_get_size_value(img_src_after, HEIGHT_START);
+-        gint ratio  = (width + height) / 2;
++    gchar * img_src_after = strstr (ref,IMG_SRC_START);
++    if (img_src_after != NULL)
++    {
++        gint width  = google_get_size_value (img_src_after,WIDTH_START);
++        gint height = google_get_size_value (img_src_after,HEIGHT_START);
++        gint ratio  = (width+height) /2;
+ 
+-        result = size_is_okay(ratio, s->img_min_size, s->img_max_size);
++        result = size_is_okay (ratio,s->img_min_size,s->img_max_size);
+     }
+     return result;
+ }
+@@ -108,22 +123,26 @@ static gboolean google_check_image_size(GlyrQuery *s, gchar *ref)
+ 
+ #define FIRST_RESULT "<a href=\"/imgres?imgurl="
+ #define END_OF_URL "&imgrefurl="
+-GList *generic_google_parse(cb_object *capo)
++GList * generic_google_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *find = capo->cache->data;
++    GList * result_list = NULL;
++    gchar * find = capo->cache->data;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s) && (find =  strstr(find + 1, FIRST_RESULT)) != NULL) {
+-        gchar *end_of_url = NULL;
+-        find += strlen(FIRST_RESULT);
+-        if((end_of_url = strstr(find, END_OF_URL)) != NULL) {
+-            if(google_check_image_size(capo->s, find) == TRUE) {
+-                gchar *url = copy_value(find, end_of_url);
+-                if(url != NULL) {
+-                    GlyrMemCache *result = DL_init();
++    while (continue_search (g_list_length (result_list),capo->s) && (find =  strstr (find+1,FIRST_RESULT) ) != NULL)
++    {
++        gchar * end_of_url = NULL;
++        find += strlen (FIRST_RESULT);
++        if ( (end_of_url = strstr (find, END_OF_URL) ) != NULL)
++        {
++            if (google_check_image_size (capo->s,find) == TRUE)
++            {
++                gchar * url = copy_value (find,end_of_url);
++                if (url != NULL)
++                {
++                    GlyrMemCache * result = DL_init();
+                     result->data = url;
+                     result->size = end_of_url - find;
+-                    result_list = g_list_prepend(result_list, result);
++                    result_list = g_list_prepend (result_list,result);
+                 }
+             }
+         }
+diff --git a/lib/intern/common/mbid_lookup.c b/lib/intern/common/mbid_lookup.c
+index 0502f5b..644d2fe 100644
+--- a/lib/intern/common/mbid_lookup.c
++++ b/lib/intern/common/mbid_lookup.c
+@@ -23,29 +23,31 @@
+ 
+ //////////////////////////////////
+ 
+-char *mbid_parse_data(GlyrMemCache *data, const char *lookup_entity, const char *find_entity, const char *compre_entity, GlyrQuery *qry)
++char * mbid_parse_data (GlyrMemCache * data, const char * lookup_entity, const char * find_entity, const char * compre_entity, GlyrQuery * qry)
+ {
+-    char *key = g_strdup_printf("<%s ", lookup_entity);
+-    size_t keylen = strlen(key);
+-    char *node = data->data;
+-    char *result = NULL;
+-
+-    char *find_ent_start = g_strdup_printf("<%s>", find_entity);
+-    char *find_ent_end   = g_strdup_printf("</%s>", find_entity);
+-
+-    while((node = strstr(node + keylen, key))) {
+-        char *name = get_search_value(node, find_ent_start, find_ent_end);
+-        if(name && levenshtein_strnormcmp(qry, name, compre_entity) <= qry->fuzzyness) {
+-            result = get_search_value(node, "id=\"", "\"");
+-            g_free(name);
++    char * key = g_strdup_printf ("<%s ", lookup_entity);
++    size_t keylen = strlen (key);
++    char * node = data->data;
++    char * result = NULL;
++
++    char * find_ent_start = g_strdup_printf ("<%s>", find_entity);
++    char * find_ent_end   = g_strdup_printf ("</%s>", find_entity);
++
++    while ( (node = strstr (node + keylen, key) ) )
++    {
++        char * name = get_search_value (node, find_ent_start, find_ent_end);
++        if (name && levenshtein_strnormcmp (qry, name, compre_entity) <= qry->fuzzyness)
++        {
++            result = get_search_value (node, "id=\"", "\"");
++            g_free (name);
+             break;
+         }
+-        g_free(name);
++        g_free (name);
+     }
+ 
+-    g_free(find_ent_start);
+-    g_free(find_ent_end);
+-    g_free(key);
++    g_free (find_ent_start);
++    g_free (find_ent_end);
++    g_free (key);
+     return result;
+ }
+ 
+@@ -56,18 +58,18 @@ char *mbid_parse_data(GlyrMemCache *data, const char *lookup_entity, const char
+ 
+ //////////////////////////////////
+ 
+-char *mbid_lookup(const char *query, GLYR_DATA_TYPE type, GlyrQuery *qry)
++char * mbid_lookup (const char * query, GLYR_DATA_TYPE type, GlyrQuery * qry)
+ {
+-    char *result_mbid = NULL;
+-    if(query == NULL) {
++    char * result_mbid = NULL;
++    if (query == NULL)
+         return result_mbid;
+-    }
+ 
+-    const char *lookup_entity = "";
+-    const char *compre_entity = qry->artist;
+-    const char *find_entity = "name";
++    const char * lookup_entity = "";
++    const char * compre_entity = qry->artist;
++    const char * find_entity = "name";
+ 
+-    switch(type) {
++    switch (type)
++    {
+     case GLYR_TYPE_TAG_ARTIST:
+         lookup_entity = "artist";
+         compre_entity = qry->artist;
+@@ -88,14 +90,15 @@ char *mbid_lookup(const char *query, GLYR_DATA_TYPE type, GlyrQuery *qry)
+         break;
+     }
+ 
+-    char *lookup_url = g_strdup_printf(LOOKUP_QUERY, lookup_entity, lookup_entity, query);
+-    GlyrMemCache *parseable_data = download_single(lookup_url, qry, NULL);
+-    if(parseable_data != NULL) {
+-        result_mbid = mbid_parse_data(parseable_data, lookup_entity, find_entity, compre_entity, qry);
+-        DL_free(parseable_data);
++    char * lookup_url = g_strdup_printf (LOOKUP_QUERY, lookup_entity, lookup_entity, query);
++    GlyrMemCache * parseable_data = download_single (lookup_url, qry, NULL);
++    if (parseable_data != NULL)
++    {
++        result_mbid = mbid_parse_data (parseable_data, lookup_entity, find_entity, compre_entity, qry);
++        DL_free (parseable_data);
+     }
+ 
+-    g_free(lookup_url);
++    g_free (lookup_url);
+     return result_mbid;
+ }
+ 
+diff --git a/lib/intern/common/musicbrainz.c b/lib/intern/common/musicbrainz.c
+index a219ab7..439329c 100644
+--- a/lib/intern/common/musicbrainz.c
++++ b/lib/intern/common/musicbrainz.c
+@@ -25,43 +25,43 @@
+ /////////////////////////////////
+ 
+ /* 'please' is important. gcc won't compile without. */
+-gint please_what_type(GlyrQuery *s)
++gint please_what_type (GlyrQuery * s)
+ {
+     int result = -1;
+-    if(s->artist && !s->album && !s->title) {
++    if (s->artist && !s->album && !s->title)
+         result = GLYR_TYPE_TAG_ARTIST;
+-    } else if(!s->artist && !s->album && s->title) {
++    else if (!s->artist && !s->album && s->title)
+         result = GLYR_TYPE_TAG_TITLE;
+-    } else if(!s->artist && s->album && !s->title) {
++    else if (!s->artist && s->album && !s->title)
+         result = GLYR_TYPE_TAG_ALBUM;
+-    } else if(s->artist && s->album && s->title) {
++    else if (s->artist && s->album && s->title)
+         result = GLYR_TYPE_TAG_TITLE;
+-    } else if(s->artist && !s->album && s->title) {
++    else if (s->artist && !s->album && s->title)
+         result = GLYR_TYPE_TAG_TITLE;
+-    } else if(s->artist && s->album && !s->title) {
++    else if (s->artist && s->album && !s->title)
+         result = GLYR_TYPE_TAG_ALBUM;
+-    } else {
++    else
+         result = -1;
+-    }
+ 
+     return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-const gchar *generic_musicbrainz_url(GlyrQuery *sets)
++const gchar * generic_musicbrainz_url (GlyrQuery * sets)
+ {
+-    const gchar *wrap_a = sets->artist ? "${artist}" : "";
+-    const gchar *wrap_b = sets->album  ? "${album}"  : "";
+-    const gchar *wrap_t = sets->title  ? "${title}"  : "";
++    const gchar * wrap_a = sets->artist ? "${artist}" : "";
++    const gchar * wrap_b = sets->album  ? "${album}"  : "";
++    const gchar * wrap_t = sets->title  ? "${title}"  : "";
+ 
+-    switch(please_what_type(sets)) {
++    switch (please_what_type (sets) )
++    {
+     case GLYR_TYPE_TAG_TITLE :
+-        return g_strdup_printf("http://musicbrainz.org/ws/1/track/?type=xml&title=%s&artist=%s&release=%s", wrap_t, wrap_a, wrap_b);
++        return g_strdup_printf ("http://musicbrainz.org/ws/1/track/?type=xml&title=%s&artist=%s&release=%s",wrap_t,wrap_a,wrap_b);
+     case GLYR_TYPE_TAG_ALBUM :
+-        return g_strdup_printf("http://musicbrainz.org/ws/1/release/?type=xml&title=%s&artist=%s", wrap_b, wrap_a);
++        return g_strdup_printf ("http://musicbrainz.org/ws/1/release/?type=xml&title=%s&artist=%s",wrap_b,wrap_a);
+     case GLYR_TYPE_TAG_ARTIST:
+-        return g_strdup_printf("http://musicbrainz.org/ws/1/artist/?type=xml&name=%s", wrap_a);
++        return g_strdup_printf ("http://musicbrainz.org/ws/1/artist/?type=xml&name=%s",wrap_a);
+     default:
+         return NULL;
+     }
+@@ -70,17 +70,17 @@ const gchar *generic_musicbrainz_url(GlyrQuery *sets)
+ /////////////////////////////////
+ 
+ #define ID_BEGIN "id=\""
+-const gchar *get_mbid_from_xml(GlyrQuery *s, GlyrMemCache *c, gint *offset)
++const gchar * get_mbid_from_xml (GlyrQuery * s, GlyrMemCache * c, gint * offset)
+ {
+-    if(c == NULL || s == NULL || offset == NULL) {
++    if (c==NULL || s==NULL || offset==NULL)
+         return NULL;
+-    }
+ 
+-    const gchar *searchterm  = NULL;
+-    const gchar *checkstring = NULL;
+-    const gchar *comparestr  = NULL;
++    const gchar * searchterm  = NULL;
++    const gchar * checkstring = NULL;
++    const gchar * comparestr  = NULL;
+ 
+-    switch(please_what_type(s)) {
++    switch (please_what_type (s) )
++    {
+     case GLYR_TYPE_TAG_TITLE:
+         checkstring = "<title>";
+         searchterm  = "<track ";
+@@ -97,32 +97,34 @@ const gchar *get_mbid_from_xml(GlyrQuery *s, GlyrMemCache *c, gint *offset)
+         comparestr  = s->artist;
+         break;
+     default:
+-        glyr_message(1, s, "Warning: (tags/musicbrainz.c) Unable to determine type.\n");
++        glyr_message (1,s,"Warning: (tags/musicbrainz.c) Unable to determine type.\n");
+     }
+ 
+-    const gchar *mbid = NULL;
+-    if(searchterm != NULL) {
+-        gchar *node = c->data + *offset;
+-        gchar *search_check = NULL;
++    const gchar * mbid = NULL;
++    if (searchterm != NULL)
++    {
++        gchar * node = c->data + *offset;
++        gchar * search_check = NULL;
+         gsize nlen = (sizeof ID_BEGIN) - 1;
+-        gsize clen = strlen(checkstring);
++        gsize clen = strlen (checkstring);
+ 
+-        while(node && (node = strstr(node, searchterm)) && mbid == NULL) {
+-            if(!(node = strstr(node, ID_BEGIN))) {
++        while (node && (node = strstr (node,searchterm) ) && mbid == NULL)
++        {
++            if (! (node = strstr (node,ID_BEGIN) ) )
+                 break;
+-            }
+ 
+-            if(!(search_check = strstr(node, checkstring))) {
++            if (! (search_check = strstr (node,checkstring) ) )
+                 break;
+-            }
+ 
+             search_check += clen;
+-            gchar *to_compare = copy_value(search_check, strstr(search_check, "</"));
+-            if(to_compare != NULL) {
+-                if(levenshtein_strnormcmp(s, to_compare, comparestr) <= s->fuzzyness) {
+-                    mbid = (gchar *) copy_value(node + nlen, strchr(node + nlen, '"'));
++            gchar * to_compare = copy_value (search_check,strstr (search_check,"</") );
++            if (to_compare != NULL)
++            {
++                if (levenshtein_strnormcmp (s,to_compare,comparestr) <= s->fuzzyness)
++                {
++                    mbid = (gchar*) copy_value (node+nlen,strchr (node+nlen,'"') );
+                 }
+-                g_free(to_compare);
++                g_free (to_compare);
+             }
+             node += (sizeof ID_BEGIN) - 1;
+         }
+@@ -134,16 +136,19 @@ const gchar *get_mbid_from_xml(GlyrQuery *s, GlyrMemCache *c, gint *offset)
+ /////////////////////////////////
+ 
+ /* Returns only a parseable memcache */
+-GlyrMemCache *generic_musicbrainz_parse(cb_object *capo, gint *last_mbid, const gchar *include)
++GlyrMemCache * generic_musicbrainz_parse (cb_object * capo, gint * last_mbid, const gchar * include)
+ {
+     gsize offset = 0;
+-    const gchar *mbid = NULL;
+-    GlyrMemCache *info = NULL;
+-
+-    while(offset < capo->cache->size && info == NULL && (mbid = get_mbid_from_xml(capo->s, capo->cache, last_mbid))) {
+-        if(mbid != NULL) {
+-            const gchar *type = NULL;
+-            switch(please_what_type(capo->s)) {
++    const gchar * mbid = NULL;
++    GlyrMemCache * info = NULL;
++
++    while (offset < capo->cache->size && info==NULL && (mbid = get_mbid_from_xml (capo->s,capo->cache,last_mbid) ) )
++    {
++        if (mbid != NULL)
++        {
++            const gchar * type = NULL;
++            switch (please_what_type (capo->s) )
++            {
+             case GLYR_TYPE_TAG_TITLE:
+                 type = "track";
+                 break;
+@@ -155,12 +160,13 @@ GlyrMemCache *generic_musicbrainz_parse(cb_object *capo, gint *last_mbid, const
+                 break;
+             }
+ 
+-            gchar *info_page_url = g_strdup_printf("http://musicbrainz.org/ws/1/%s/%s?type=xml&inc=%s", type, mbid, include);
+-            if(info_page_url) {
+-                info = download_single(info_page_url, capo->s, NULL);
+-                g_free(info_page_url);
++            gchar * info_page_url = g_strdup_printf ("http://musicbrainz.org/ws/1/%s/%s?type=xml&inc=%s",type,mbid,include);
++            if (info_page_url)
++            {
++                info = download_single (info_page_url,capo->s,NULL);
++                g_free (info_page_url);
+             }
+-            g_free((gchar *) mbid);
++            g_free ( (gchar*) mbid);
+         }
+     }
+     return info;
+diff --git a/lib/intern/common/picsearch.c b/lib/intern/common/picsearch.c
+index 6947419..4e9713a 100644
+--- a/lib/intern/common/picsearch.c
++++ b/lib/intern/common/picsearch.c
+@@ -21,22 +21,24 @@
+ #include "../../stringlib.h"
+ #include "picsearch.h"
+ 
+-const gchar *generic_picsearch_url(GlyrQuery *s, const char *fmt)
++const gchar * generic_picsearch_url (GlyrQuery * s, const char * fmt)
+ {
+     /* picsearch offers a nice way to set img_min / img_max */
+-    gchar *base_url = "http://www.picsearch.com/index.cgi?q=%s&face=both&orientation=square&size=%dt%d";
++    gchar * base_url = "http://www.picsearch.com/index.cgi?q=%s&face=both&orientation=square&size=%dt%d";
+ 
+     gint img_min_size = s->img_min_size;
+-    if(img_min_size == -1) {
++    if (img_min_size == -1)
++    {
+         img_min_size = 0;
+     }
+ 
+     gint img_max_size = s->img_max_size;
+-    if(img_max_size == -1) {
++    if (img_max_size == -1)
++    {
+         img_max_size = INT_MAX;
+     }
+ 
+-    return g_strdup_printf(base_url, fmt, img_min_size, img_max_size);
++    return g_strdup_printf (base_url, fmt, img_min_size, img_max_size);
+ }
+ 
+ /////////////////////////////////
+@@ -45,18 +47,21 @@ const gchar *generic_picsearch_url(GlyrQuery *s, const char *fmt)
+ #define IMG_HOOK_BEGIN "<a rel=\"nofollow\" href=\""
+ #define IMG_HOOK_ENDIN "\"><img src=\""
+ 
+-static GlyrMemCache *parse_details_page(GlyrMemCache *to_parse)
++static GlyrMemCache * parse_details_page (GlyrMemCache * to_parse)
+ {
+-    GlyrMemCache *result = NULL;
+-    if(to_parse != NULL) {
+-        char *start = strstr(to_parse->data, IMG_HOOK);
+-        if(start != NULL) {
+-            char *img_url = get_search_value(start, IMG_HOOK_BEGIN, IMG_HOOK_ENDIN);
+-            if(img_url != NULL) {
++    GlyrMemCache * result = NULL;
++    if (to_parse != NULL)
++    {
++        char * start = strstr (to_parse->data,IMG_HOOK);
++        if (start != NULL)
++        {
++            char * img_url = get_search_value (start,IMG_HOOK_BEGIN,IMG_HOOK_ENDIN);
++            if (img_url != NULL)
++            {
+                 result = DL_init();
+                 result->data = img_url;
+-                result->size = strlen(img_url);
+-                result->dsrc = g_strdup(to_parse->dsrc);
++                result->size = strlen (img_url);
++                result->dsrc = g_strdup (to_parse->dsrc);
+             }
+         }
+     }
+@@ -68,38 +73,43 @@ static GlyrMemCache *parse_details_page(GlyrMemCache *to_parse)
+ #define NODE "<div class=\"imgContainer\">"
+ #define NODE_NEEDS_TO_BEGIN "/imageDetail.cgi"
+ 
+-GList *generic_picsearch_parse(cb_object *capo)
++GList * generic_picsearch_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+-    gchar *node = capo->cache->data;
++    gchar * node = capo->cache->data;
+     gint nodelen = (sizeof NODE) - 1;
+ 
+-    node = strstr(node, "<div id=\"results_table\">");
++    node = strstr (node,"<div id=\"results_table\">");
+ 
+     int items = 0, tries = 0;
+     const int MAX_TRIES = capo->s->number * 4;
+ 
+-    while(continue_search(items, capo->s)         &&
+-            (node = strstr(node, "<a href=\""))  &&
+-            tries++ < MAX_TRIES) {
++    while (continue_search (items,capo->s)         &&
++            (node = strstr (node, "<a href=\"") )  &&
++            tries++ < MAX_TRIES)
++    {
+         node += nodelen;
+-        gchar *details_url = get_search_value(node, "<a href=\"", "\" ");
+-        if(details_url != NULL && strncmp(details_url, NODE_NEEDS_TO_BEGIN, sizeof(NODE_NEEDS_TO_BEGIN) - 1) == 0) {
+-            gchar *full_url = g_strdup_printf("www.picsearch.com%s", details_url);
+-            if(full_url != NULL) {
+-                GlyrMemCache *to_parse = download_single(full_url, capo->s, NULL);
+-                if(to_parse != NULL) {
+-                    GlyrMemCache *result = parse_details_page(to_parse);
+-                    if(result != NULL) {
+-                        result_list = g_list_prepend(result_list, result);
++        gchar * details_url = get_search_value (node,"<a href=\"","\" ");
++        if (details_url != NULL && strncmp (details_url,NODE_NEEDS_TO_BEGIN,sizeof (NODE_NEEDS_TO_BEGIN)-1) == 0)
++        {
++            gchar * full_url = g_strdup_printf ("www.picsearch.com%s",details_url);
++            if (full_url != NULL)
++            {
++                GlyrMemCache * to_parse = download_single (full_url,capo->s,NULL);
++                if (to_parse != NULL)
++                {
++                    GlyrMemCache * result = parse_details_page (to_parse);
++                    if (result != NULL)
++                    {
++                        result_list = g_list_prepend (result_list,result);
+                         items++;
+                     }
+-                    DL_free(to_parse);
++                    DL_free (to_parse);
+                 }
+-                g_free(full_url);
++                g_free (full_url);
+             }
+-            g_free(details_url);
++            g_free (details_url);
+         }
+     }
+     return result_list;
+diff --git a/lib/intern/cover.c b/lib/intern/cover.c
+index 48acdee..e76693e 100644
+--- a/lib/intern/cover.c
++++ b/lib/intern/cover.c
+@@ -24,15 +24,16 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_img_finalizer(s, list, stop_me, GLYR_TYPE_COVERART, result_list);
++    return generic_img_finalizer (s,list,stop_me,GLYR_TYPE_COVERART,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_cover = {
++MetaDataFetcher glyrFetcher_cover =
++{
+     .name = "cover",
+     .type = GLYR_GET_COVERART,
+     .default_data_type = GLYR_TYPE_COVERART,
+diff --git a/lib/intern/cover/albumart.c b/lib/intern/cover/albumart.c
+index 4979cb0..168d856 100644
+--- a/lib/intern/cover/albumart.c
++++ b/lib/intern/cover/albumart.c
+@@ -21,12 +21,13 @@
+ #include "../../core.h"
+ #include "../../stringlib.h"
+ 
+-static const gchar *cover_albumart_url(GlyrQuery *sets)
++static const gchar * cover_albumart_url (GlyrQuery * sets)
+ {
+     gint i = sets->img_min_size;
+     gint e = sets->img_max_size;
+ 
+-    if((e >= 50 || e == -1) && (i == -1 || i < 450)) {
++    if ( (e >= 50 || e == -1) && (i == -1 || i < 450) )
++    {
+         return "http://www.albumart.org/index.php?searchkey=${artist}&itempage=1&newsearch=1&searchindex=Music";
+     }
+     return NULL;
+@@ -39,42 +40,50 @@ static const gchar *cover_albumart_url(GlyrQuery *sets)
+ #define AMZ "http://ecx.images-amazon.com/images/"
+ #define IMG_FORMAT ".jpg"
+ 
+-static GList *cover_albumart_parse(cb_object *capo)
++static GList * cover_albumart_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *node = strstr(capo->cache->data, NODE_START);
+-    if(node != NULL) {
++    GList * result_list = NULL;
++    gchar * node = strstr (capo->cache->data,NODE_START);
++    if (node != NULL)
++    {
+         /* Decide what size we want */
+         gsize size_it = 2;
+-        if(capo->s->img_max_size < 450 && capo->s->img_max_size != -1 && capo->s->img_min_size < 160) {
++        if (capo->s->img_max_size < 450 && capo->s->img_max_size != -1 && capo->s->img_min_size < 160)
++        {
+             size_it = 1;
+         }
+ 
+         /* Go through all nodes */
+-        while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + (sizeof NODE_NEXT) - 1, NODE_NEXT))) {
+-            gchar *img_tag = node;
+-            gchar *img_end = NULL;
++        while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node + (sizeof NODE_NEXT) - 1,NODE_NEXT) ) )
++        {
++            gchar * img_tag = node;
++            gchar * img_end = NULL;
+ 
+-            gchar *album_name = get_search_value(node, "title=\"", "\"");
+-            if(levenshtein_strnormcmp(capo->s, album_name, capo->s->album) <= capo->s->fuzzyness) {
+-                for(gsize it = 0; it < size_it; it++, img_tag += (sizeof AMZ) - 1) {
+-                    if((img_tag = strstr(img_tag, AMZ)) == NULL) {
++            gchar * album_name = get_search_value (node,"title=\"","\"");
++            if (levenshtein_strnormcmp (capo->s,album_name,capo->s->album) <= capo->s->fuzzyness)
++            {
++                for (gsize it = 0; it < size_it; it++, img_tag += (sizeof AMZ) - 1)
++                {
++                    if ( (img_tag = strstr (img_tag,AMZ) ) == NULL)
++                    {
+                         break;
+                     }
+                 }
+ 
+-                if((img_end  = strstr(img_tag, IMG_FORMAT)) != NULL) {
+-                    gchar *img_url = copy_value(img_tag, img_end);
+-                    if(img_url != NULL) {
+-                        GlyrMemCache *result = DL_init();
+-                        result->data = g_strdup_printf(AMZ"%s"IMG_FORMAT, img_url);
+-                        result->size = strlen(result->data);
+-                        result_list = g_list_prepend(result_list, result);
+-                        g_free(img_url);
++                if ( (img_end  = strstr (img_tag,IMG_FORMAT) ) != NULL)
++                {
++                    gchar * img_url = copy_value (img_tag,img_end);
++                    if (img_url != NULL)
++                    {
++                        GlyrMemCache * result = DL_init();
++                        result->data = g_strdup_printf (AMZ"%s"IMG_FORMAT, img_url);
++                        result->size = strlen (result->data);
++                        result_list = g_list_prepend (result_list,result);
++                        g_free (img_url);
+                     }
+                 }
+             }
+-            g_free(album_name);
++            g_free (album_name);
+         }
+     }
+     return result_list;
+@@ -82,7 +91,8 @@ static GList *cover_albumart_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_albumart_src = {
++MetaDataSource cover_albumart_src =
++{
+     .name      = "albumart",
+     .key       = 'b',
+     .parser    = cover_albumart_parse,
+diff --git a/lib/intern/cover/amazon.c b/lib/intern/cover/amazon.c
+index be55aac..204d56f 100644
+--- a/lib/intern/cover/amazon.c
++++ b/lib/intern/cover/amazon.c
+@@ -59,9 +59,9 @@ http://ecx.images-amazon.com/images/I/51rnlRwtsiL.jpg
+ // as an fallback there is the albumart and coverhunt plugin which implement a search on amazon (on serverside)
+ /////////////////////////////////
+ 
+-static const gchar *cover_amazon_url(GlyrQuery *sets)
++static const gchar * cover_amazon_url (GlyrQuery * sets)
+ {
+-    return generic_amazon_url(sets, "Images");
++    return generic_amazon_url (sets,"Images");
+ }
+ 
+ /////////////////////////////////
+@@ -70,29 +70,32 @@ static const gchar *cover_amazon_url(GlyrQuery *sets)
+ #define C_MAX(X) (capo->s->img_max_size <  X && capo->s->img_max_size != -1)
+ #define C_MIN(X) (capo->s->img_min_size >= X && capo->s->img_min_size != -1)
+ 
+-static GList *cover_amazon_parse(cb_object *capo)
++static GList * cover_amazon_parse (cb_object *capo)
+ {
+     const gchar *tag_ssize = (capo->s->img_max_size == -1 && capo->s->img_min_size == -1) ? "<LargeImage>"  :
+-                             (C_MAX(30) && C_MIN(-1)) ? "<SwatchImage>" :
+-                             (C_MAX(70) && C_MIN(30)) ? "<SmallImage>"  :
+-                             (C_MAX(150) && C_MIN(70)) ? "<MediumImage>" :
++                             (C_MAX ( 30) && C_MIN (-1) ) ? "<SwatchImage>" :
++                             (C_MAX ( 70) && C_MIN (30) ) ? "<SmallImage>"  :
++                             (C_MAX (150) && C_MIN (70) ) ? "<MediumImage>" :
+                              "<LargeImage>"  ;
+ 
+-    GList *result_list = NULL;
+-    gchar *find = capo->cache->data;
+-    while(continue_search(g_list_length(result_list), capo->s) && (find = strstr(find + strlen(tag_ssize), tag_ssize)) != NULL) {
++    GList * result_list = NULL;
++    gchar * find = capo->cache->data;
++    while (continue_search (g_list_length (result_list),capo->s) && (find = strstr (find + strlen (tag_ssize), tag_ssize) ) != NULL)
++    {
+         /* Next two XML tags not relevant */
+-        nextTag(find);
+-        nextTag(find);
++        nextTag (find);
++        nextTag (find);
+ 
+-        gchar *endTag = NULL;
+-        if((endTag = strstr(find, END_OF_URL)) != NULL) {
+-            gchar *result_url = copy_value(find, endTag);
+-            if(result_url != NULL) {
+-                GlyrMemCache *result = DL_init();
++        gchar * endTag = NULL;
++        if ( (endTag = strstr (find, END_OF_URL) ) != NULL)
++        {
++            gchar * result_url = copy_value (find,endTag);
++            if (result_url != NULL)
++            {
++                GlyrMemCache * result = DL_init();
+                 result->data = result_url;
+                 result->size = endTag - find;
+-                result_list = g_list_prepend(result_list, result);
++                result_list = g_list_prepend (result_list,result);
+             }
+         }
+     }
+@@ -101,7 +104,8 @@ static GList *cover_amazon_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_amazon_src = {
++MetaDataSource cover_amazon_src =
++{
+     .name      = "amazon",
+     .key       = 'a',
+     .parser    = cover_amazon_parse,
+diff --git a/lib/intern/cover/coverartarchive.c b/lib/intern/cover/coverartarchive.c
+index c91c07b..a24626a 100644
+--- a/lib/intern/cover/coverartarchive.c
++++ b/lib/intern/cover/coverartarchive.c
+@@ -25,7 +25,7 @@
+ 
+ //////////////////////////////////////////////////
+ 
+-static const char *cover_coverartarchive_url(GlyrQuery *qry)
++static const char * cover_coverartarchive_url (GlyrQuery * qry)
+ {
+     /* Return a search for the mbid, later we'll search for the cover */
+     return "http://musicbrainz.org/ws/2/release?query=artist:${artist}%20AND%20release:${album}";
+@@ -36,20 +36,22 @@ static const char *cover_coverartarchive_url(GlyrQuery *qry)
+ #define IMAGE_NODE "\"image\":\""
+ 
+ /* This should work, but apparently there is no real data yet there... */
+-static GList *parse_archive_json(GlyrMemCache *input, GlyrQuery *qry)
++static GList * parse_archive_json (GlyrMemCache * input, GlyrQuery * qry)
+ {
+-    GList *result_list = NULL;
+-    char *node = input->data;
+-
+-    while((node = strstr(node + sizeof(IMAGE_NODE), IMAGE_NODE))) {
+-        char *url = copy_value(node, strstr(node + sizeof(IMAGE_NODE), "\""));
+-        if(url != NULL) {
+-            GlyrMemCache *item = DL_init();
++    GList * result_list = NULL;
++    char * node = input->data;
++
++    while ( (node = strstr (node + sizeof (IMAGE_NODE), IMAGE_NODE) ) )
++    {
++        char * url = copy_value (node, strstr (node + sizeof (IMAGE_NODE), "\"") );
++        if (url != NULL)
++        {
++            GlyrMemCache * item = DL_init();
+             item->data = url;
+-            item->size = strlen(url);
+-            item->dsrc = g_strdup(input->dsrc);
++            item->size = strlen (url);
++            item->dsrc = g_strdup (input->dsrc);
+ 
+-            result_list = g_list_prepend(result_list, item);
++            result_list = g_list_prepend (result_list, item);
+         }
+     }
+     return result_list;
+@@ -62,19 +64,22 @@ static GList *parse_archive_json(GlyrMemCache *input, GlyrQuery *qry)
+ 
+ //////////////////////////////////////////////////
+ 
+-static GList *cover_coverartarchive_parse(cb_object *capo)
++static GList * cover_coverartarchive_parse (cb_object * capo)
+ {
+     GList *result_list = NULL;
+-    char *mbid = mbid_parse_data(capo->cache, "release", "title", capo->s->album, capo->s);
+-    if(mbid != NULL) {
+-        char *full_url = g_strdup_printf(API_ROOT, mbid);
+-        if(full_url != NULL) {
+-            GlyrMemCache *json_data = download_single(full_url, capo->s, NULL);
+-            if(json_data != NULL) {
+-                result_list = parse_archive_json(json_data, capo->s);
+-                DL_free(json_data);
++    char * mbid = mbid_parse_data (capo->cache, "release", "title", capo->s->album, capo->s);
++    if (mbid != NULL)
++    {
++        char * full_url = g_strdup_printf (API_ROOT, mbid);
++        if (full_url != NULL)
++        {
++            GlyrMemCache * json_data = download_single (full_url, capo->s, NULL);
++            if (json_data != NULL)
++            {
++                result_list = parse_archive_json (json_data, capo->s);
++                DL_free (json_data);
+             }
+-            g_free(full_url);
++            g_free (full_url);
+         }
+     }
+     return result_list;
+@@ -82,7 +87,8 @@ static GList *cover_coverartarchive_parse(cb_object *capo)
+ 
+ //////////////////////////////////////////////////
+ 
+-MetaDataSource cover_coverartarchive_src = {
++MetaDataSource cover_coverartarchive_src =
++{
+     .name      = "coverartarchive",
+     .key       = 'z',
+     .parser    = cover_coverartarchive_parse,
+diff --git a/lib/intern/cover/coverhunt.c b/lib/intern/cover/coverhunt.c
+index 0a90a8b..ff80932 100644
+--- a/lib/intern/cover/coverhunt.c
++++ b/lib/intern/cover/coverhunt.c
+@@ -25,28 +25,30 @@
+  * Coverhunt seems to have some load problems at time of writing...
+  */
+ 
+-static const gchar *cover_coverhunt_url(GlyrQuery *sets)
++static const gchar * cover_coverhunt_url (GlyrQuery * sets)
+ {
+-    if(sets->img_min_size <= 500 || sets->img_min_size == -1) {
++    if (sets->img_min_size <= 500 || sets->img_min_size == -1)
++    {
+         return "http://www.coverhunt.com/index.php?query=${artist}+${album}&action=Find+my+CD+Covers";
+     }
+     return NULL;
+ }
+ 
+-static gboolean check_size(const char *art_root, const char *hw, cb_object *capo)
++static gboolean check_size (const char * art_root, const char *hw, cb_object * capo)
+ {
+-    gchar *begin = strstr(art_root, hw);
+-    if(begin != NULL) {
+-        gchar *end = strchr(begin, ' ');
+-        gchar *buf = copy_value(begin + strlen(hw), end);
+-        if(buf != NULL) {
+-            gint atoid = strtol(buf, NULL, 10);
+-            g_free(buf);
++    gchar * begin = strstr (art_root,hw);
++    if (begin != NULL)
++    {
++        gchar * end = strchr (begin,' ');
++        gchar * buf = copy_value (begin+strlen (hw),end);
++        if (buf != NULL)
++        {
++            gint atoid = strtol (buf,NULL,10);
++            g_free (buf);
+ 
+-            if((atoid >= capo->s->img_min_size || capo->s->img_min_size == -1) &&
+-                    (atoid <= capo->s->img_max_size || capo->s->img_max_size == -1)) {
++            if ( (atoid >= capo->s->img_min_size || capo->s->img_min_size == -1) &&
++                    (atoid <= capo->s->img_max_size || capo->s->img_max_size == -1)  )
+                 return TRUE;
+-            }
+         }
+     }
+     return FALSE;
+@@ -60,51 +62,62 @@ static gboolean check_size(const char *art_root, const char *hw, cb_object *capo
+  * coverhunt sadly offers  no way to check if the
+  * image is really related to the query we're searching for
+  */
+-static GList *cover_coverhunt_parse(cb_object *capo)
++static GList * cover_coverhunt_parse (cb_object *capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+     /* navigate to start of search results */
+-    gchar *table_start;
+-    if((table_start = strstr(capo->cache->data, SEARCH_RESULT_BEGIN)) == NULL) {
++    gchar * table_start;
++    if ( (table_start = strstr (capo->cache->data,SEARCH_RESULT_BEGIN) ) == NULL)
++    {
+         /* Whoops, nothing to see here */
+         return NULL;
+     }
+ 
+-    while(continue_search(g_list_length(result_list), capo->s) && (table_start = strstr(table_start + 1, NODE_BEGIN))) {
+-        gchar *table_end = NULL;
+-        if((table_end = strstr(table_start, "\">")) != NULL) {
+-            gchar *go_url = copy_value(table_start + strlen(NODE_BEGIN), table_end);
+-            if(go_url) {
+-                gchar *real_url = g_strdup_printf("http://www.coverhunt.com/go/%s", go_url);
+-                if(real_url != NULL) {
+-                    GlyrMemCache *search_buf = download_single(real_url, capo->s, "<div id=\"right\">");
+-                    if(search_buf != NULL) {
+-                        gchar *artwork = strstr(search_buf->data, "<div class=\"artwork\">");
+-                        if(artwork != NULL) {
+-                            if(check_size(artwork, "height=", capo) && check_size(artwork, "width=", capo)) {
+-                                gchar *img_start = strstr(artwork, IMG_START);
+-                                if(img_start != NULL) {
++    while (continue_search (g_list_length (result_list),capo->s) && (table_start = strstr (table_start + 1,NODE_BEGIN) ) )
++    {
++        gchar * table_end = NULL;
++        if ( (table_end = strstr (table_start,"\">") ) != NULL)
++        {
++            gchar * go_url = copy_value (table_start + strlen (NODE_BEGIN),table_end);
++            if (go_url)
++            {
++                gchar * real_url = g_strdup_printf ("http://www.coverhunt.com/go/%s",go_url);
++                if (real_url != NULL)
++                {
++                    GlyrMemCache * search_buf = download_single (real_url,capo->s,"<div id=\"right\">");
++                    if (search_buf != NULL)
++                    {
++                        gchar * artwork = strstr (search_buf->data, "<div class=\"artwork\">");
++                        if (artwork != NULL)
++                        {
++                            if (check_size (artwork,"height=",capo) && check_size (artwork,"width=",capo) )
++                            {
++                                gchar * img_start = strstr (artwork,IMG_START);
++                                if (img_start != NULL)
++                                {
+                                     img_start += (sizeof IMG_START) - 1;
+-                                    gchar *img_end = strstr(img_start, "\" ");
+-                                    if(img_end != NULL) {
+-                                        gchar *url = copy_value(img_start, img_end);
+-                                        if(url != NULL) {
+-                                            GlyrMemCache *shell = DL_init();
++                                    gchar * img_end = strstr (img_start,"\" ");
++                                    if (img_end != NULL)
++                                    {
++                                        gchar * url = copy_value (img_start,img_end);
++                                        if (url != NULL)
++                                        {
++                                            GlyrMemCache * shell = DL_init();
+                                             shell->data = url;
+                                             shell->size = img_end - img_start;
+-                                            shell->dsrc = g_strdup(real_url);
+-                                            result_list = g_list_prepend(result_list, shell);
++                                            shell->dsrc = g_strdup (real_url);
++                                            result_list = g_list_prepend (result_list,shell);
+                                         }
+                                     }
+                                 }
+                             }
+                         }
+-                        DL_free(search_buf);
++                        DL_free (search_buf);
+                     }
+-                    g_free(real_url);
++                    g_free (real_url);
+                 }
+-                g_free(go_url);
++                g_free (go_url);
+             }
+         }
+     }
+@@ -112,7 +125,8 @@ static GList *cover_coverhunt_parse(cb_object *capo)
+ }
+ 
+ /* Queued last, as long coverhunt is down */
+-MetaDataSource cover_coverhunt_src = {
++MetaDataSource cover_coverhunt_src =
++{
+     .name      = "coverhunt",
+     .key       = 'c',
+     .parser    = cover_coverhunt_parse,
+diff --git a/lib/intern/cover/discogs.c b/lib/intern/cover/discogs.c
+index dc95c53..4b03191 100644
+--- a/lib/intern/cover/discogs.c
++++ b/lib/intern/cover/discogs.c
+@@ -52,47 +52,51 @@
+ #define THUMB_SUBDNOE "\"thumb\": \""
+ #define FOLLR_SUBNODE "\"uri\": \""
+ #define NODE THUMB_SUBDNOE
+-#define ENDOF_SUBNODE "\", 
++#define ENDOF_SUBNODE "\","
+ 
+ 
+ /////////////////////////////////////////////////////
+ 
+-static bool check_artist_album(GlyrQuery *q, const char *artist_album)
++static bool check_artist_album (GlyrQuery * q, const char * artist_album)
+ {
+     bool rc = false;
+ 
+-    char **split = g_strsplit(artist_album, " - ", 2);
+-    if(split && split[0] && split[1]) {
+-        rc = levenshtein_strnormcmp(q, q->artist, split[0]) <= q->fuzzyness &&
+-             levenshtein_strnormcmp(q, q->album, split[1]) <= q->fuzzyness;
++    char ** split = g_strsplit (artist_album," - ",2);
++    if (split && split[0] && split[1])
++    {
++        rc = levenshtein_strnormcmp (q,q->artist,split[0]) <= q->fuzzyness &&
++             levenshtein_strnormcmp (q,q->album, split[1]) <= q->fuzzyness;
+     }
+ 
+-    g_strfreev(split);
++    g_strfreev (split);
+     return rc;
+ }
+ 
+ /////////////////////////////////////////////////////
+ 
+-static GlyrMemCache *transform_url(cb_object *s, const char *url)
++static GlyrMemCache * transform_url (cb_object * s, const char * url)
+ {
+-    GlyrMemCache *rc = NULL;
+-    size_t rc_size = strlen(url);
+-    char *rc_url  = g_strdup(url);
+-
+-    if(rc_url != NULL) {
+-        char *slash = strrchr(rc_url, '/');
+-        if(slash != NULL) {
+-            char *sp = strchr(slash, '-');
+-            if(sp != NULL) {
+-                char *ep = strchr(sp + 1, '-');
++    GlyrMemCache * rc = NULL;
++    size_t rc_size = strlen (url);
++    char * rc_url  = g_strdup (url);
++
++    if (rc_url != NULL)
++    {
++        char * slash = strrchr (rc_url,'/');
++        if (slash != NULL)
++        {
++            char * sp = strchr (slash,'-');
++            if (sp != NULL)
++            {
++                char * ep = strchr (sp + 1, '-');
+                 if(ep != NULL) {
+                     size_t rest_len = rc_size - (ep - rc_url) + 1;
+-                    memmove(sp, ep, rest_len);
++                    memmove (sp,ep,rest_len);
+ 
+                     rc = DL_init();
+-                    rc->data = (char *) rc_url;
+-                    rc->size = strlen(url);
+-                    rc->dsrc = g_strdup(s->url);
++                    rc->data = (char*) rc_url;
++                    rc->size = strlen (url);
++                    rc->dsrc = g_strdup (s->url);
+                 }
+             }
+         }
+@@ -104,38 +108,42 @@ static GlyrMemCache *transform_url(cb_object *s, const char *url)
+ /////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////
+ 
+-static const char *cover_discogs_url(GlyrQuery *q)
++static const char * cover_discogs_url (GlyrQuery * q)
+ {
+     return API_ENTRY;
+ }
+ 
+ /////////////////////////////////////////////////////
+ 
+-static GList *cover_discogs_parse(cb_object *capo)
++static GList * cover_discogs_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+     /* Jump to the very first node 'directly' */
+-    gchar *node = capo->cache->data;
++    gchar * node = capo->cache->data;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s)
+-            && (node = strstr(node + (sizeof NODE) - 1, NODE)) != NULL) {
++    while (continue_search (g_list_length (result_list),capo->s)
++            && (node = strstr (node + (sizeof NODE) - 1,NODE) ) != NULL)
++    {
+ 
+-        char *artist_album = get_search_value(node, TITLE_SUBNODE, ENDOF_SUBNODE);
++        char * artist_album = get_search_value (node,TITLE_SUBNODE,ENDOF_SUBNODE);
+ 
+-        if(artist_album && check_artist_album(capo->s, artist_album)) {
++        if (artist_album && check_artist_album (capo->s,artist_album) )
++        {
+ 
+-            char *thumb_url = get_search_value(node, THUMB_SUBDNOE, ENDOF_SUBNODE);
+-            if(thumb_url) {
++            char * thumb_url = get_search_value (node,THUMB_SUBDNOE,ENDOF_SUBNODE);
++            if (thumb_url)
++            {
+ 
+-                GlyrMemCache *p = transform_url(capo, thumb_url);
+-                if(p != NULL) {
+-                    result_list = g_list_prepend(result_list, p);
++                GlyrMemCache * p = transform_url (capo,thumb_url);
++                if (p != NULL)
++                {
++                    result_list = g_list_prepend (result_list,p);
+                 }
+-                g_free(thumb_url);
++                g_free (thumb_url);
+             }
+         }
+-        g_free(artist_album);
++        g_free (artist_album);
+     }
+ 
+     return result_list;
+@@ -143,7 +151,8 @@ static GList *cover_discogs_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_discogs_src = {
++MetaDataSource cover_discogs_src =
++{
+     .name      = "discogs",
+     .key       = 'd',
+     .parser    = cover_discogs_parse,
+diff --git a/lib/intern/cover/google.c b/lib/intern/cover/google.c
+index 9c68e83..ff39008 100644
+--- a/lib/intern/cover/google.c
++++ b/lib/intern/cover/google.c
+@@ -23,27 +23,29 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *cover_google_url(GlyrQuery *s)
++static const gchar * cover_google_url (GlyrQuery * s)
+ {
+-    const gchar *result = NULL;
+-    gchar *searchterm = g_strdup("${artist}+${album}+album");
+-    if(searchterm != NULL) {
+-        result = generic_google_url(s, searchterm);
+-        g_free(searchterm);
++    const gchar * result = NULL;
++    gchar * searchterm = g_strdup ("${artist}+${album}+album");
++    if (searchterm != NULL)
++    {
++        result = generic_google_url (s,searchterm);
++        g_free (searchterm);
+     }
+     return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *cover_google_parse(cb_object *capo)
++static GList * cover_google_parse (cb_object * capo)
+ {
+-    return generic_google_parse(capo);
++    return generic_google_parse (capo);
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_google_src = {
++MetaDataSource cover_google_src =
++{
+     .name      = "google",
+     .key       = 'g',
+     .parser    = cover_google_parse,
+diff --git a/lib/intern/cover/jamendo.c b/lib/intern/cover/jamendo.c
+index 1969368..da4215f 100644
+--- a/lib/intern/cover/jamendo.c
++++ b/lib/intern/cover/jamendo.c
+@@ -27,26 +27,27 @@
+ #define RESULT_URL "http://www.jamendo.com/get/album/id/album/artworkurl/redirect/%s/?artwork_size=%d"
+ #define SOURCE_URL "http://api.jamendo.com/get2/id+name+artist_name/album/plain/?order=searchweight_desc&n=100&searchquery=${album}"
+ 
+-static int get_cover_size(GlyrQuery *query);
+-static bool check_values(GlyrQuery *query, char *artist, char *album);
++static int get_cover_size (GlyrQuery * query);
++static bool check_values (GlyrQuery * query, char * artist, char * album);
+ 
+ /////////////////////////////////
+ 
+-static const char *cover_jamendo_url(GlyrQuery *sets)
++static const char * cover_jamendo_url (GlyrQuery * sets)
+ {
+     return SOURCE_URL;
+ }
+ 
+ /////////////////////////////////
+ 
+-void do_line_split(char **p_arr, char *line)
++void do_line_split (char ** p_arr, char * line)
+ {
+-    g_return_if_fail(p_arr && line);
++    g_return_if_fail (p_arr && line);
+ 
+-    char *hop = line;
++    char * hop = line;
+     *p_arr = line;
+ 
+-    while((hop = strchr(hop, '\t')) != NULL) {
++    while ( (hop = strchr (hop,'\t') ) != NULL)
++    {
+         p_arr++;
+ 
+         *hop = 0;
+@@ -56,32 +57,37 @@ void do_line_split(char **p_arr, char *line)
+ 
+ /////////////////////////////////
+ 
+-static GList *cover_jamendo_parse(cb_object *capo)
++static GList * cover_jamendo_parse (cb_object *capo)
+ {
+     // A nice parser with zero memory overhead..
+ 
+-    GList *result_list = NULL;
+-    gchar *line = capo->cache->data;
++    GList * result_list = NULL;
++    gchar * line = capo->cache->data;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s)) {
+-        char *line_end;
++    while (continue_search (g_list_length (result_list),capo->s) )
++    {
++        char * line_end;
+ 
+-        if((line_end = strchr(line, '\n')) != NULL) {
++        if ( (line_end = strchr (line,'\n') ) != NULL)
++        {
+             *line_end = 0;
+ 
+-            char *line_split[3] = {0, 0, 0};
+-            do_line_split(line_split, line);
++            char * line_split[3] = {0,0,0};
++            do_line_split (line_split,line);
+ 
+-            if(check_values(capo->s, line_split[2], line_split[1])) {
+-                char *url =  g_strdup_printf(RESULT_URL, line_split[0], get_cover_size(capo->s));
+-                GlyrMemCache *result = DL_init();
++            if (check_values (capo->s,line_split[2],line_split[1]) )
++            {
++                char * url =  g_strdup_printf (RESULT_URL,line_split[0],get_cover_size (capo->s) );
++                GlyrMemCache * result = DL_init();
+                 result->data = url;
+-                result->size = strlen(url);
+-                result_list = g_list_prepend(result_list, result);
++                result->size = strlen (url);
++                result_list = g_list_prepend (result_list,result);
+             }
+ 
+             line = ++line_end;
+-        } else {
++        }
++        else
++        {
+             break;
+         }
+     }
+@@ -90,10 +96,11 @@ static GList *cover_jamendo_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-static bool check_values(GlyrQuery *query, char *artist, char *album)
++static bool check_values (GlyrQuery * query, char * artist, char * album)
+ {
+-    if(levenshtein_strnormcmp(query, query->artist, artist) <= query->fuzzyness
+-            && levenshtein_strnormcmp(query, query->album, album) <= query->fuzzyness) {
++    if (levenshtein_strnormcmp (query, query->artist, artist) <= query->fuzzyness
++            && levenshtein_strnormcmp (query, query->album,album) <= query->fuzzyness)
++    {
+         return true;
+     }
+     return false;
+@@ -101,17 +108,22 @@ static bool check_values(GlyrQuery *query, char *artist, char *album)
+ 
+ /////////////////////////////////
+ 
+-static int get_cover_size(GlyrQuery *query)
++static int get_cover_size (GlyrQuery * query)
+ {
+-    int cover_size[] = {50, 50, 100, 200, 300, 400, 600, INT_MAX};
+-    int array_len = (sizeof(cover_size) / sizeof(int));
++    int cover_size[] = {50,50,100,200,300,400,600,INT_MAX};
++    int array_len = (sizeof (cover_size) /sizeof (int) );
+ 
+-    if(query->img_max_size == -1) {
++    if (query->img_max_size == -1)
++    {
+         return 400;
+-    } else {
+-        for(int i = 1; i < array_len; i++) {
+-            if(query->img_max_size <= cover_size[i]) {
+-                return cover_size[i - 1];
++    }
++    else
++    {
++        for (int i=1; i<array_len; i++)
++        {
++            if (query->img_max_size <= cover_size[i])
++            {
++                return cover_size[i-1];
+             }
+         }
+     }
+@@ -121,7 +133,8 @@ static int get_cover_size(GlyrQuery *query)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_jamendo_src = {
++MetaDataSource cover_jamendo_src =
++{
+     .name      = "jamendo",
+     .key       = 'j',
+     .parser    = cover_jamendo_parse,
+diff --git a/lib/intern/cover/lastfm.c b/lib/intern/cover/lastfm.c
+index 4ae417e..9272000 100644
+--- a/lib/intern/cover/lastfm.c
++++ b/lib/intern/cover/lastfm.c
+@@ -23,7 +23,7 @@
+ 
+ /////////////////////////////////
+ 
+-static const char *cover_lastfm_url(GlyrQuery *sets)
++static const char * cover_lastfm_url (GlyrQuery * sets)
+ {
+     return "http://ws.audioscrobbler.com/2.0/?method=album.search&autocorrect=1&album=${artist}+${album}&api_key="API_KEY_LASTFM;
+ }
+@@ -33,62 +33,68 @@ static const char *cover_lastfm_url(GlyrQuery *sets)
+ #define ALBUM_NODE "<album>"
+ #define BAD_DEFAULT_IMAGE "http://cdn.last.fm/flatness/catalogue/noimage/2/default_album_medium.png"
+ 
+-static GList *cover_lastfm_parse(cb_object *capo)
++static GList * cover_lastfm_parse (cb_object *capo)
+ {
+     /* Handle size requirements (Default to large) */
+-    const gchar *tag_ssize = NULL ;
+-    const gchar *tag_esize = "</image>";
++    const gchar * tag_ssize = NULL ;
++    const gchar * tag_esize = "</image>";
+ 
+     /* find desired size */
+-    if(size_is_okay(300, capo->s->img_min_size, capo->s->img_max_size)) {
++    if ( size_is_okay (300,capo->s->img_min_size,capo->s->img_max_size) )
+         tag_ssize = "<image size=\"extralarge\">";
+-    } else if(size_is_okay(125, capo->s->img_min_size, capo->s->img_max_size)) {
++    else if ( size_is_okay (125,capo->s->img_min_size,capo->s->img_max_size) )
+         tag_ssize = "<image size=\"large\">";
+-    } else if(size_is_okay(64, capo->s->img_min_size, capo->s->img_max_size)) {
++    else if ( size_is_okay (64, capo->s->img_min_size,capo->s->img_max_size) )
+         tag_ssize = "<image size=\"middle\">";
+-    } else if(size_is_okay(34, capo->s->img_min_size, capo->s->img_max_size)) {
++    else if ( size_is_okay (34, capo->s->img_min_size,capo->s->img_max_size) )
+         tag_ssize = "<image size=\"small\">";
+-    } else if(true || false) {
++    else if ( true || false )
+         tag_ssize = "<image size=\"extralarge\">";
+-    }
+ 
+     /* The result (perhaps) */
+-    GList *result_list = NULL;
+-    gchar *find  = capo->cache->data;
++    GList * result_list = NULL;
++    gchar * find  = capo->cache->data;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s) && (find = strstr(find + sizeof(ALBUM_NODE), ALBUM_NODE)) != NULL) {
+-        gchar *artist = get_search_value(find, "<artist>", "</artist>");
+-        gchar *album  = get_search_value(find, "<name>", "</name>");
++    while (continue_search (g_list_length (result_list),capo->s) && (find = strstr (find + sizeof(ALBUM_NODE), ALBUM_NODE) ) != NULL)
++    {
++        gchar * artist = get_search_value (find, "<artist>", "</artist>");
++        gchar * album  = get_search_value (find, "<name>", "</name>");
+ 
+-        if(levenshtein_strnormcmp(capo->s, artist, capo->s->artist) <= capo->s->fuzzyness &&
+-                levenshtein_strnormcmp(capo->s, album,  capo->s->album) <= capo->s->fuzzyness) {
++        if (levenshtein_strnormcmp (capo->s, artist, capo->s->artist) <= capo->s->fuzzyness &&
++            levenshtein_strnormcmp (capo->s, album,  capo->s->album) <= capo->s->fuzzyness) {
+ 
+-            gchar *img_start = strstr(find, tag_ssize);
++            gchar * img_start = strstr(find, tag_ssize);
+ 
+-            if(img_start != NULL) {
+-                gchar *url = get_search_value(find, (gchar *) tag_ssize, (gchar *) tag_esize);
+-                if(url != NULL) {
+-                    if(strcmp(url, BAD_DEFAULT_IMAGE) != 0) {
+-                        GlyrMemCache *result = DL_init();
++            if (img_start != NULL)
++            {
++                gchar * url = get_search_value (find, (gchar*) tag_ssize, (gchar*) tag_esize);
++                if (url != NULL)
++                {
++                    if (strcmp (url,BAD_DEFAULT_IMAGE) != 0)
++                    {
++                        GlyrMemCache * result = DL_init();
+                         result->data = url;
+-                        result->size = strlen(url);
+-                        result_list = g_list_prepend(result_list, result);
+-                    } else {
+-                        g_free(url);
++                        result->size = strlen (url);
++                        result_list = g_list_prepend (result_list,result);
++                    }
++                    else
++                    {
++                        g_free (url);
+                     }
+                 }
+             }
+         }
+ 
+-        g_free(artist);
+-        g_free(album);
++        g_free (artist);
++        g_free (album);
+     }
+     return result_list;
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_lastfm_src = {
++MetaDataSource cover_lastfm_src =
++{
+     .name      = "lastfm",
+     .key       = 'l',
+     .parser    = cover_lastfm_parse,
+diff --git a/lib/intern/cover/lyricswiki.c b/lib/intern/cover/lyricswiki.c
+index a102f23..a150226 100644
+--- a/lib/intern/cover/lyricswiki.c
++++ b/lib/intern/cover/lyricswiki.c
+@@ -21,10 +21,11 @@
+ #include "../../stringlib.h"
+ #include "../../core.h"
+ 
+-const gchar *cover_lyricswiki_url(GlyrQuery *sets)
++const gchar * cover_lyricswiki_url (GlyrQuery * sets)
+ {
+-    const gchar *url = NULL;
+-    if(sets->img_min_size < 650) {
++    const gchar * url = NULL;
++    if (sets->img_min_size < 650)
++    {
+         url = "http://lyrics.wikia.com/api.php?format=xml&action=query&list=allimages&aiprefix=${artist}";
+     }
+     return url;
+@@ -32,27 +33,30 @@ const gchar *cover_lyricswiki_url(GlyrQuery *sets)
+ 
+ /////////////////////////////////
+ 
+-static gboolean check_file_format(GlyrQuery *query, gchar *filename)
++static gboolean check_file_format (GlyrQuery * query, gchar * filename)
+ {
+     gboolean result = FALSE;
+-    gsize length = strlen(filename);
++    gsize length = strlen (filename);
+     gsize offset = 0;
+     gchar *token = NULL;
+ 
+-    gchar **token_list = g_strsplit(query->allowed_formats, GLYR_DEFAULT_FROM_ARGUMENT_DELIM, 0);
+-    while((token = token_list[offset]) != NULL) {
+-        if(g_str_has_suffix(filename, token) == TRUE) {
++    gchar ** token_list = g_strsplit (query->allowed_formats,GLYR_DEFAULT_FROM_ARGUMENT_DELIM,0);
++    while ( (token = token_list[offset]) != NULL)
++    {
++        if (g_str_has_suffix (filename,token) == TRUE)
++        {
+             result = TRUE;
+-            gsize format_pos = length - strlen(token);
++            gsize format_pos = length - strlen (token);
+             filename[format_pos] = '\0';
+-            if(format_pos != 0 && filename[format_pos - 1] == '.') {
+-                filename[format_pos - 1] = '\0';
++            if (format_pos != 0 && filename[format_pos-1] == '.')
++            {
++                filename[format_pos-1] = '\0';
+             }
+             break;
+         }
+         offset++;
+     }
+-    g_strfreev(token_list);
++    g_strfreev (token_list);
+     return result;
+ }
+ 
+@@ -71,55 +75,58 @@ static gboolean check_file_format(GlyrQuery *query, gchar *filename)
+ #define URL_END "\" descriptionurl="
+ #define NEXT_NAME "<img name=\""
+ 
+-GList *cover_lyricswiki_parse(cb_object *capo)
++GList * cover_lyricswiki_parse (cb_object * capo)
+ {
+-    gchar *find = capo->cache->data;
+-    gchar *endTag   = NULL;
+-    GList *result_list = NULL;
++    gchar * find = capo->cache->data;
++    gchar * endTag   = NULL;
++    GList * result_list = NULL;
+ 
+-    gchar *escaped_album_name = strreplace(capo->s->album, " ", "_");
+-    if(escaped_album_name != NULL) {
++    gchar * escaped_album_name = strreplace (capo->s->album," ","_");
++    if (escaped_album_name != NULL)
++    {
+         /* Go through all names and compare them with Levenshtein */
+-        while(continue_search(g_list_length(result_list), capo->s) && (find = strstr(find + (sizeof IMG_TAG) - 1, IMG_TAG)) != NULL) {
++        while (continue_search (g_list_length (result_list),capo->s) && (find = strstr (find+ (sizeof IMG_TAG) - 1,IMG_TAG) ) != NULL)
++        {
+             /* Find end & start of the name */
+             find  += (sizeof IMG_TAG) - 1;
+-            endTag = strstr(find, END_TAG);
++            endTag = strstr (find,END_TAG);
+ 
+-            if(endTag == NULL || endTag <= find) {
++            if (endTag == NULL || endTag <= find)
+                 continue;
+-            }
+ 
+             /* Copy the name of the current album */
+-            gchar *name = copy_value(find, endTag);
+-            if(name != NULL) {
+-                if(check_file_format(capo->s, name) && levenshtein_strnormcmp(capo->s, escaped_album_name, name) <= capo->s->fuzzyness) {
+-                    gchar *url = get_search_value(endTag, URL_MARKER, URL_END);
+-                    if(url != NULL) {
+-                        GlyrMemCache *result = DL_init();
++            gchar * name = copy_value (find,endTag);
++            if (name != NULL)
++            {
++                if (check_file_format (capo->s,name) && levenshtein_strnormcmp (capo->s,escaped_album_name,name) <= capo->s->fuzzyness)
++                {
++                    gchar * url = get_search_value (endTag, URL_MARKER, URL_END);
++                    if (url != NULL)
++                    {
++                        GlyrMemCache * result = DL_init();
+                         result->data = url;
+-                        result->size = strlen(url);
+-                        result_list = g_list_prepend(result_list, result);
++                        result->size = strlen (url);
++                        result_list = g_list_prepend (result_list,result);
+                     }
+                 }
+ 
+                 /* Get next img tag */
+-                find = strstr(endTag, NEXT_NAME);
+-                g_free(name);
++                find = strstr (endTag,NEXT_NAME);
++                g_free (name);
+ 
+                 /* Whoops, right into nonexistence.. */
+-                if(find == NULL) {
+-                    break;
+-                }
++                if (find == NULL) break;
+             }
+         }
+-        g_free(escaped_album_name);
++        g_free (escaped_album_name);
+     }
+     return result_list;
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_lyricswiki_src = {
++MetaDataSource cover_lyricswiki_src =
++{
+     .name      = "lyricswiki",
+     .key       = 'w',
+     .parser    = cover_lyricswiki_parse,
+diff --git a/lib/intern/cover/musicbrainz.c b/lib/intern/cover/musicbrainz.c
+index 61f1474..1ea903c 100644
+--- a/lib/intern/cover/musicbrainz.c
++++ b/lib/intern/cover/musicbrainz.c
+@@ -23,7 +23,7 @@
+ 
+ /////////////////////////////////
+ 
+-static const char *cover_musicbrainz_url(GlyrQuery *q)
++static const char * cover_musicbrainz_url (GlyrQuery * q)
+ {
+     return "http://musicbrainz.org/ws/2/release?query=${album}&limit=10&offset=0";
+ }
+@@ -37,24 +37,28 @@ static const char *cover_musicbrainz_url(GlyrQuery *q)
+  * This is silly overall,
+  * but coverartarchive.org does not seem to work fully yet.
+  */
+-static GlyrMemCache *parse_web_page(GlyrMemCache *page)
++static GlyrMemCache * parse_web_page (GlyrMemCache * page)
+ {
+-    GlyrMemCache *retv = NULL;
+-    if(page && page->data) {
+-        char *begin = strstr(page->data, COVERART);
+-        if(begin != NULL) {
+-            char *amz_url = strstr(begin, AMZ_URL_START);
+-            if(amz_url != NULL) {
+-                char *img_url = get_search_value(amz_url, "\"", "\"");
+-                if(img_url != NULL) {
++    GlyrMemCache * retv = NULL;
++    if (page && page->data)
++    {
++        char * begin = strstr (page->data,COVERART);
++        if (begin != NULL)
++        {
++            char * amz_url = strstr (begin,AMZ_URL_START);
++            if (amz_url != NULL)
++            {
++                char * img_url = get_search_value (amz_url,"\"","\"");
++                if (img_url != NULL)
++                {
+                     retv = DL_init();
+-                    retv->dsrc = g_strdup(page->dsrc);
++                    retv->dsrc = g_strdup (page->dsrc);
+                     retv->data  = img_url;
+-                    retv->size  = strlen(img_url);
++                    retv->size  = strlen (img_url);
+                 }
+             }
+         }
+-        DL_free(page);
++        DL_free (page);
+     }
+     return retv;
+ }
+@@ -66,35 +70,40 @@ static GlyrMemCache *parse_web_page(GlyrMemCache *page)
+ 
+ /////////////////////////////////
+ 
+-static GList *cover_musicbrainz_parse(cb_object *capo)
++static GList * cover_musicbrainz_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-
+-    char *node = capo->cache->data;
+-
+-    while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + 1, NODE))) {
+-        char *album  = get_search_value(node, "<title>", "</title>");
+-        char *artist = get_search_value(node, "<name>" , "</name>");
+-
+-
+-        if(levenshtein_strnormcmp(capo->s, artist, capo->s->artist) <= capo->s->fuzzyness &&
+-                levenshtein_strnormcmp(capo->s, album , capo->s->album) <= capo->s->fuzzyness) {
+-
+-            char *ID = get_search_value(node, "id=\"", "\" ");
+-            if(ID != NULL) {
+-                char *url = g_strdup_printf(DL_URL, ID);
+-                if(url != NULL) {
+-                    GlyrMemCache *item = parse_web_page(download_single(url, capo->s, NULL));
+-                    if(item != NULL) {
+-                        result_list = g_list_prepend(result_list, item);
++    GList * result_list = NULL;
++
++    char * node = capo->cache->data;
++
++    while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node + 1,NODE) ) )
++    {
++        char * album  = get_search_value (node,"<title>","</title>");
++        char * artist = get_search_value (node,"<name>" ,"</name>" );
++
++
++        if (levenshtein_strnormcmp (capo->s,artist,capo->s->artist) <= capo->s->fuzzyness &&
++                levenshtein_strnormcmp (capo->s,album ,capo->s->album ) <= capo->s->fuzzyness)
++        {
++
++            char * ID = get_search_value (node,"id=\"","\" ");
++            if (ID != NULL)
++            {
++                char * url = g_strdup_printf (DL_URL,ID);
++                if (url != NULL)
++                {
++                    GlyrMemCache * item = parse_web_page (download_single (url,capo->s,NULL) );
++                    if (item != NULL)
++                    {
++                        result_list = g_list_prepend (result_list,item);
+                     }
+                 }
+-                g_free(url);
++                g_free (url);
+             }
+-            g_free(ID);
++            g_free (ID);
+         }
+-        g_free(artist);
+-        g_free(album);
++        g_free (artist);
++        g_free (album);
+     }
+ 
+     return result_list;
+@@ -102,7 +111,8 @@ static GList *cover_musicbrainz_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_musicbrainz_src = {
++MetaDataSource cover_musicbrainz_src =
++{
+     .name      = "musicbrainz",
+     .key       = 'z',
+     .parser    = cover_musicbrainz_parse,
+diff --git a/lib/intern/cover/picsearch.c b/lib/intern/cover/picsearch.c
+index a646c53..4faa16d 100644
+--- a/lib/intern/cover/picsearch.c
++++ b/lib/intern/cover/picsearch.c
+@@ -23,20 +23,21 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *cover_picsearch_url(GlyrQuery *s)
++static const gchar * cover_picsearch_url (GlyrQuery * s)
+ {
+-    return generic_picsearch_url(s, "${artist}+${album}+coverart");
++    return generic_picsearch_url (s,"${artist}+${album}+coverart");
+ }
+ 
+ /////////////////////////////////
+-static GList *cover_picsearch_parse(cb_object *capo)
++static GList * cover_picsearch_parse (cb_object * capo)
+ {
+-    return generic_picsearch_parse(capo);
++    return generic_picsearch_parse (capo);
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_picsearch_src = {
++MetaDataSource cover_picsearch_src =
++{
+     .name      = "picsearch",
+     .key       = 'p',
+     .parser    = cover_picsearch_parse,
+diff --git a/lib/intern/cover/rhapsody.c b/lib/intern/cover/rhapsody.c
+index 972eff3..b62be53 100644
+--- a/lib/intern/cover/rhapsody.c
++++ b/lib/intern/cover/rhapsody.c
+@@ -23,18 +23,21 @@
+ 
+ /////////////////////////////////
+ 
+-static gchar *translate_string(gchar *string)
++static gchar * translate_string (gchar * string)
+ {
+-    gchar *result = NULL;
+-    if(string != NULL) {
+-        gchar *beautiful = beautify_string(string);
+-        if(beautiful != NULL) {
+-            gchar *downcase = g_utf8_strdown(beautiful, -1);
+-            if(downcase != NULL) {
+-                result = translate_umlauts(downcase);
+-                g_free(downcase);
++    gchar * result = NULL;
++    if (string != NULL)
++    {
++        gchar * beautiful = beautify_string (string);
++        if (beautiful != NULL)
++        {
++            gchar * downcase = g_utf8_strdown (beautiful,-1);
++            if (downcase != NULL)
++            {
++                result = translate_umlauts (downcase);
++                g_free (downcase);
+             }
+-            g_free(beautiful);
++            g_free (beautiful);
+         }
+     }
+     return result;
+@@ -42,34 +45,37 @@ static gchar *translate_string(gchar *string)
+ 
+ /////////////////////////////////
+ 
+-static const gchar *cover_rhapsody_url(GlyrQuery *query)
++static const gchar * cover_rhapsody_url (GlyrQuery * query)
+ {
+-    gchar *result = NULL;
+-    gchar *corrected_artist = translate_string(query->artist);
+-    gchar *corrected_album  = translate_string(query->album);
+-    if(corrected_artist && corrected_album) {
+-        result = g_strdup_printf("http://feeds.rhapsody.com/%s/%s/data.xml", corrected_artist, corrected_album);
++    gchar * result = NULL;
++    gchar * corrected_artist = translate_string (query->artist);
++    gchar * corrected_album  = translate_string (query->album);
++    if (corrected_artist && corrected_album)
++    {
++        result = g_strdup_printf ("http://feeds.rhapsody.com/%s/%s/data.xml",corrected_artist,corrected_album);
+     }
+-    g_free(corrected_artist);
+-    g_free(corrected_album);
++    g_free (corrected_artist);
++    g_free (corrected_album);
+     return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-static gboolean check_size(GlyrQuery *s, gchar *ref)
++static gboolean check_size (GlyrQuery * s, gchar * ref)
+ {
+     gboolean result = FALSE;
+-    if(ref != NULL) {
+-        gchar *width_str  = get_search_value(ref, "width=\"", "\"");
+-        gchar *height_str = get_search_value(ref, "height=\"", "\"");
+-        if(width_str && height_str) {
+-            gint width  = strtol(width_str, NULL, 10);
+-            gint height = strtol(height_str, NULL, 10);
+-            result = size_is_okay((width + height) / 2, s->img_min_size, s->img_max_size);
++    if (ref != NULL)
++    {
++        gchar * width_str  = get_search_value (ref,"width=\"","\"");
++        gchar * height_str = get_search_value (ref,"height=\"","\"");
++        if (width_str && height_str)
++        {
++            gint width  = strtol (width_str, NULL,10);
++            gint height = strtol (height_str,NULL,10);
++            result = size_is_okay ( (width+height) /2,s->img_min_size,s->img_max_size);
+         }
+-        g_free(width_str);
+-        g_free(height_str);
++        g_free (width_str);
++        g_free (height_str);
+     }
+     return result;
+ }
+@@ -82,28 +88,33 @@ static gboolean check_size(GlyrQuery *s, gchar *ref)
+ #define HACK_SIZE "170x170"
+ #define HIGH_SIZE "500x500"
+ 
+-static GList *cover_rhapsody_parse(cb_object *capo)
++static GList * cover_rhapsody_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *delim_beg = strstr(capo->cache->data, DELIM_BEG);
+-    gchar *delim_end = strstr(capo->cache->data, DELIM_END);
+-    GlyrMemCache *special_size = NULL;
++    GList * result_list = NULL;
++    gchar * delim_beg = strstr (capo->cache->data,DELIM_BEG);
++    gchar * delim_end = strstr (capo->cache->data,DELIM_END);
++    GlyrMemCache * special_size = NULL;
+ 
+-    if(delim_beg && delim_end) {
+-        gchar *node = delim_beg;
++    if (delim_beg && delim_end)
++    {
++        gchar * node = delim_beg;
+         gsize nd_len = (sizeof NODE) - 1;
+-        while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + nd_len, NODE)) && node < delim_end) {
++        while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node + nd_len, NODE) ) && node < delim_end)
++        {
+             node += nd_len;
+-            if(check_size(capo->s, node) == TRUE) {
+-                gchar *url = get_search_value(node, "src=\"", "\"");
+-                if(url != NULL) {
+-                    GlyrMemCache *result = DL_init();
++            if (check_size (capo->s,node) == TRUE)
++            {
++                gchar * url = get_search_value (node,"src=\"","\"");
++                if (url != NULL)
++                {
++                    GlyrMemCache * result = DL_init();
+                     result->data = url;
+-                    result->size = strlen(url);
+-                    result_list = g_list_prepend(result_list, result);
++                    result->size = strlen (url);
++                    result_list = g_list_prepend (result_list,result);
+ 
+                     /* A very cool hack. Thanks Bansheeproject! */
+-                    if(strstr(result->data, HACK_SIZE) != NULL) {
++                    if (strstr (result->data,HACK_SIZE) != NULL)
++                    {
+                         special_size = result;
+                     }
+                 }
+@@ -111,15 +122,16 @@ static GList *cover_rhapsody_parse(cb_object *capo)
+         }
+ 
+         /* Awesome hack continues.. */
+-        if(special_size != NULL) {
++        if (special_size != NULL)
++        {
+             /* Note: Prepend the large size at begin:
+              * If only one item requested it will just
+              * be thrown away (the small size)
+              */
+-            GlyrMemCache *result = DL_init();
+-            result->data = strreplace(special_size->data, HACK_SIZE, HIGH_SIZE);
+-            result->size = strlen(result->data);
+-            result_list = g_list_prepend(result_list, result);
++            GlyrMemCache * result = DL_init();
++            result->data = strreplace (special_size->data,HACK_SIZE,HIGH_SIZE);
++            result->size = strlen (result->data);
++            result_list = g_list_prepend (result_list,result);
+         }
+     }
+     return result_list;
+@@ -127,7 +139,8 @@ static GList *cover_rhapsody_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource cover_rhapsody_src = {
++MetaDataSource cover_rhapsody_src =
++{
+     .name      = "rhapsody",
+     .key       = 'r',
+     .parser    = cover_rhapsody_parse,
+diff --git a/lib/intern/cover/slothradio.c b/lib/intern/cover/slothradio.c
+index d888a0a..1f87668 100644
+--- a/lib/intern/cover/slothradio.c
++++ b/lib/intern/cover/slothradio.c
+@@ -33,12 +33,11 @@
+ 
+ #define STREQ(s1,s2) (g_ascii_strcasecmp(s1,s2) == 0)
+ 
+-static const char *cover_slothradio_url(GlyrQuery *s)
++static const char * cover_slothradio_url (GlyrQuery * s)
+ {
+-    const char *locale = "us";
+-    if(STREQ(s->lang, "uk") || STREQ(s->lang, "de")) {
++    const char * locale = "us";
++    if (STREQ (s->lang,"uk") || STREQ (s->lang,"de") )
+         locale = s->lang;
+-    }
+ 
+     /*
+      * Possible image sizes:
+@@ -48,81 +47,82 @@ static const char *cover_slothradio_url(GlyrQuery *s)
+      * s = small  (50 **2)
+      **/
+     char image_size = 'x';
+-    if(s->img_max_size != -1) {
+-        if(s->img_max_size < 75) {
++    if (s->img_max_size != -1)
++    {
++        if (s->img_max_size < 75)
+             image_size = 's';
+-        } else if(s->img_max_size < 150) {
++        else if (s->img_max_size < 150)
+             image_size = 'm';
+-        } else if(s->img_max_size < 350) {
++        else if (s->img_max_size < 350)
+             image_size = 'l';
+-        }
+     }
+ 
+-    return g_strdup_printf(API_URL, s->artist, s->album, image_size, locale);
++    return g_strdup_printf (API_URL,s->artist,s->album,image_size,locale);
+ }
+ 
+ ///////////////////////
+ 
+-static bool check_size(GlyrQuery *q, char *node)
++static bool check_size (GlyrQuery * q, char * node)
+ {
+     bool rc = false;
+-    char *width  = get_search_value(node, "width=\"", "\"");
+-    char *height = get_search_value(node, "height=\"", "\"");
++    char * width  = get_search_value (node,"width=\"", "\"");
++    char * height = get_search_value (node,"height=\"","\"");
+ 
+-    if(width && height) {
+-        int w = strtol(width, NULL, 10);
+-        int h = strtol(height, NULL, 10);
++    if (width && height)
++    {
++        int w = strtol (width, NULL,10);
++        int h = strtol (height,NULL,10);
+ 
+-        if(size_is_okay(w, q->img_min_size, q->img_max_size) &&
+-                size_is_okay(h, q->img_min_size, q->img_max_size)) {
++        if (size_is_okay (w,q->img_min_size,q->img_max_size) &&
++                size_is_okay (h,q->img_min_size,q->img_max_size) )
+             rc = true;
+-        }
+     }
+-    g_free(width);
+-    g_free(height);
++    g_free (width);
++    g_free (height);
+ 
+     return rc;
+ }
+ 
+ ///////////////////////
+ 
+-static GList *cover_slothradio_parse(cb_object *capo)
++static GList * cover_slothradio_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+-    const char *bound_start = strstr(capo->cache->data, RESULT_LIST_START);
+-    if(bound_start == NULL) {
++    const char * bound_start = strstr (capo->cache->data,RESULT_LIST_START);
++    if (bound_start == NULL)
+         return NULL;
+-    }
+ 
+-    const char *bound_end  = strstr(bound_start, RESULT_LIST_END);
+-    if(bound_end == NULL) {
++    const char * bound_end  = strstr (bound_start,RESULT_LIST_END);
++    if (bound_end == NULL)
+         return NULL;
+-    }
+ 
+-    char *node = (char *) bound_start;
+-    while((node = strstr(node + sizeof(RESULT_ITEM_START), RESULT_ITEM_START)) != NULL) {
+-        if(node >= bound_end) {
++    char * node = (char*) bound_start;
++    while ( (node = strstr (node + sizeof (RESULT_ITEM_START),RESULT_ITEM_START) ) != NULL)
++    {
++        if (node >= bound_end)
+             break;
+-        }
+ 
+-        char *url = get_search_value(node, "img src=\"", "\"");
+-        if(url != NULL) {
+-            if(check_size(capo->s, node)) {
+-                GlyrMemCache *result = DL_init();
+-                result->dsrc = g_strdup(capo->url);
++        char * url = get_search_value (node,"img src=\"","\"");
++        if (url != NULL)
++        {
++            if (check_size (capo->s,node) )
++            {
++                GlyrMemCache * result = DL_init();
++                result->dsrc = g_strdup (capo->url);
+                 result->data = url;
+-                result->size = strlen(url);
++                result->size = strlen (url);
+ 
+-                result_list = g_list_prepend(result_list, result);
+-            } else {
+-                g_free(url);
++                result_list = g_list_prepend (result_list,result);
++            }
++            else
++            {
++                g_free (url);
+             }
+         }
+ 
+-        if(continue_search(g_list_length(result_list), capo->s) == false) {
++        if (continue_search (g_list_length (result_list),capo->s) == false)
+             break;
+-        }
+     }
+ 
+     return result_list;
+@@ -130,7 +130,8 @@ static GList *cover_slothradio_parse(cb_object *capo)
+ 
+ ///////////////////////
+ 
+-MetaDataSource cover_slothradio_src = {
++MetaDataSource cover_slothradio_src =
++{
+     .name      = "slothradio",
+     .key       = 's',
+     .parser    = cover_slothradio_parse,
+diff --git a/lib/intern/generic.c b/lib/intern/generic.c
+index f4de573..d8436ab 100644
+--- a/lib/intern/generic.c
++++ b/lib/intern/generic.c
+@@ -22,48 +22,59 @@
+ #include "../core.h"
+ #include "../stringlib.h"
+ 
+-struct callback_save_struct {
+-    GHashTable *table;
++struct callback_save_struct
++{
++    GHashTable * table;
+     GLYR_DATA_TYPE type;
+-    GList *results;
++    GList * results;
+ };
+ 
+ /////////////////////////////////
+ 
+ /* Simple finalizer template sufficient for most */
+-GList *generic_txt_finalizer(GlyrQuery *settings, GList *input_list, gboolean *stop_me, GLYR_DATA_TYPE type, GList **result_list)
++GList * generic_txt_finalizer (GlyrQuery * settings, GList * input_list, gboolean * stop_me, GLYR_DATA_TYPE type, GList ** result_list)
+ {
+     gboolean add_to_list = TRUE;
+-    GList *almost_copied = NULL;
+-    for(GList *elem = input_list; elem; elem = elem->next) {
+-        GlyrMemCache *item = elem->data;
+-        if(is_in_result_list(item, result_list[0]) == FALSE && add_to_list == TRUE) {
++    GList * almost_copied = NULL;
++    for (GList * elem = input_list; elem; elem = elem->next)
++    {
++        GlyrMemCache * item = elem->data;
++        if (is_in_result_list (item,result_list[0]) == FALSE && add_to_list == TRUE)
++        {
+             /* Set to some default type */
+-            if(item->type == GLYR_TYPE_UNKNOWN) {
++            if (item->type == GLYR_TYPE_UNKNOWN)
++            {
+                 item->type = type;
+             }
+ 
+             /* call user defined callback */
+             GLYR_ERROR response = GLYRE_OK;
+-            if(settings->callback.download) {
++            if (settings->callback.download)
++            {
+                 /* Call the usercallback */
+-                response = settings->callback.download(item, settings);
++                response = settings->callback.download (item,settings);
+             }
+ 
+-            if(response != GLYRE_SKIP && response != GLYRE_STOP_PRE) {
+-                almost_copied = g_list_prepend(almost_copied, item);
+-            } else {
+-                DL_free(item);
++            if (response != GLYRE_SKIP && response != GLYRE_STOP_PRE)
++            {
++                almost_copied = g_list_prepend (almost_copied,item);
++            }
++            else
++            {
++                DL_free (item);
+                 item = NULL;
+             }
+ 
+-            if(response == GLYRE_STOP_POST || response == GLYRE_STOP_PRE) {
++            if (response == GLYRE_STOP_POST || response == GLYRE_STOP_PRE)
++            {
+                 add_to_list = FALSE;
+                 *stop_me = TRUE;
+             }
+-        } else {
++        }
++        else
++        {
+             settings->itemctr--;
+-            DL_free(item);
++            DL_free (item);
+             item = NULL;
+         }
+     }
+@@ -72,43 +83,54 @@ GList *generic_txt_finalizer(GlyrQuery *settings, GList *input_list, gboolean *s
+ 
+ /////////////////////////////////
+ 
+-static GList *async_dl_callback(cb_object *capo, void *userptr, bool *stop_download, gint *add_item)
++static GList * async_dl_callback (cb_object * capo, void * userptr, bool * stop_download, gint * add_item)
+ {
+-    if(capo->cache != NULL && userptr != NULL) {
++    if (capo->cache != NULL && userptr != NULL)
++    {
+         /* Sanitize this */
+-        struct callback_save_struct *saver = userptr;
+-        GHashTable *prov_url_table = saver->table;
++        struct callback_save_struct * saver = userptr;
++        GHashTable * prov_url_table = saver->table;
+         capo->cache->is_image = true;
+ 
+-        if(prov_url_table != NULL) {
+-            GlyrMemCache *old_cache = g_hash_table_lookup(prov_url_table, capo->cache->dsrc);
++        if (prov_url_table != NULL)
++        {
++            GlyrMemCache * old_cache = g_hash_table_lookup (prov_url_table,capo->cache->dsrc);
+             GLYR_ERROR response = GLYRE_OK;
+-            if(old_cache != NULL) {
+-                update_md5sum(capo->cache);
+-                if(is_in_result_list(capo->cache, saver->results) == FALSE) {
+-                    capo->cache->prov       = (old_cache->prov != NULL) ? g_strdup(old_cache->prov) : NULL;
+-                    capo->cache->img_format = (old_cache->img_format) ? g_strdup(old_cache->img_format) : NULL;
+-
+-                    if(capo->cache->type == GLYR_TYPE_UNKNOWN) {
++            if (old_cache != NULL)
++            {
++                update_md5sum (capo->cache);
++                if (is_in_result_list (capo->cache,saver->results) == FALSE)
++                {
++                    capo->cache->prov       = (old_cache->prov!=NULL) ? g_strdup (old_cache->prov) : NULL;
++                    capo->cache->img_format = (old_cache->img_format) ? g_strdup (old_cache->img_format) : NULL;
++
++                    if (capo->cache->type == GLYR_TYPE_UNKNOWN)
++                    {
+                         capo->cache->type = saver->type;
+                     }
+ 
+-                    if(capo->s->callback.download != NULL) {
+-                        response = capo->s->callback.download(capo->cache, capo->s);
++                    if (capo->s->callback.download != NULL)
++                    {
++                        response = capo->s->callback.download (capo->cache,capo->s);
+                     }
+ 
+                     *add_item = (response != GLYRE_SKIP && response != GLYRE_STOP_PRE);
+-                } else {
++                }
++                else
++                {
+                     capo->s->itemctr--;
+                     *add_item = FALSE;
+                 }
+             }
+ 
+-            if(response == GLYRE_STOP_POST || response == GLYRE_STOP_PRE) {
++            if (response == GLYRE_STOP_POST || response == GLYRE_STOP_PRE)
++            {
+                 *stop_download = TRUE;
+             }
+-        } else {
+-            glyr_message(-1, NULL, "glyr: Warn: Hashtable is empty im image_callback!\n");
++        }
++        else
++        {
++            glyr_message (-1,NULL,"glyr: Warn: Hashtable is empty im image_callback!\n");
+         }
+     }
+     return NULL;
+@@ -116,58 +138,66 @@ static GList *async_dl_callback(cb_object *capo, void *userptr, bool *stop_downl
+ 
+ /////////////////////////////////
+ 
+-GList *generic_img_finalizer(GlyrQuery *s, GList *list, gboolean *stop_me, GLYR_DATA_TYPE type, GList **result_list)
++GList * generic_img_finalizer (GlyrQuery * s, GList * list, gboolean * stop_me, GLYR_DATA_TYPE type, GList ** result_list)
+ {
+     /* Just return URLs */
+-    if(s->download == false) {
+-        for(GList *elem = list; elem; elem = elem->next) {
+-            GlyrMemCache *img = elem->data;
++    if (s->download == false)
++    {
++        for (GList * elem = list; elem; elem = elem->next)
++        {
++            GlyrMemCache * img = elem->data;
+             img->is_image = false;
+         }
+-        return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_IMG_URL, result_list);
+-    } else {
++        return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_IMG_URL,result_list);
++    }
++    else
++    {
+         /* Convert to a list of URLs first */
+-        GList *url_list  = NULL;
++        GList * url_list  = NULL;
+ 
+         /* Hashtable to associate the provider name with the corresponding URL */
+-        GHashTable *cache_url_table = g_hash_table_new_full(g_str_hash, g_str_equal,
+-                                      NULL,
+-                                      (GDestroyNotify) DL_free
+-                                                           );
++        GHashTable * cache_url_table = g_hash_table_new_full (g_str_hash,g_str_equal,
++                                       NULL,
++                                       (GDestroyNotify) DL_free
++                                                             );
+ 
+         /* Iterate over all caches and turn them to GList */
+-        for(GList *item = list; item; item = item->next) {
+-            GlyrMemCache *cache = item->data;
++        for (GList * item = list; item; item = item->next)
++        {
++            GlyrMemCache * cache = item->data;
+ 
+             /* Make a copy, since we free the cache */
+-            gchar *url_double = g_strdup(cache->data);
+-            url_list  = g_list_prepend(url_list, url_double);
++            gchar * url_double = g_strdup (cache->data);
++            url_list  = g_list_prepend (url_list,url_double);
+ 
+             /* Fill in the URL */
+-            g_hash_table_insert(cache_url_table, (gpointer) url_double, (gpointer) cache);
++            g_hash_table_insert (cache_url_table, (gpointer) url_double, (gpointer) cache);
+         }
+ 
+         /* We need to pass this to the callback */
+-        struct callback_save_struct userptr = {
++        struct callback_save_struct userptr =
++        {
+             .table = cache_url_table,
+             .type  = type,
+             .results = result_list ? result_list[0] : NULL
+         };
+ 
+         /* Download images in parallel */
+-        GList *dl_raw_images = async_download(url_list, NULL, s, 1, (g_list_length(url_list) / 2), async_dl_callback, &userptr, FALSE);
++        GList * dl_raw_images = async_download (url_list,NULL,s,1, (g_list_length (url_list) /2),async_dl_callback,&userptr,FALSE);
+ 
+         /* Default to the given type */
+-        for(GList *elem = dl_raw_images; elem; elem = elem->next) {
+-            GlyrMemCache *item = elem->data;
+-            if(item && item->type == GLYR_TYPE_UNKNOWN) {
++        for (GList * elem = dl_raw_images; elem; elem = elem->next)
++        {
++            GlyrMemCache * item = elem->data;
++            if (item && item->type == GLYR_TYPE_UNKNOWN)
++            {
+                 item->type = type;
+             }
+         }
+ 
+         /* Freeing Party */
+-        g_hash_table_destroy(cache_url_table);
+-        glist_free_full(url_list, g_free);
++        g_hash_table_destroy (cache_url_table);
++        glist_free_full (url_list,g_free);
+ 
+         /* Ready to save images */
+         return dl_raw_images;
+diff --git a/lib/intern/guitartabs.c b/lib/intern/guitartabs.c
+index acd2bb1..41c4a87 100644
+--- a/lib/intern/guitartabs.c
++++ b/lib/intern/guitartabs.c
+@@ -24,27 +24,30 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+     /* Fix up tabs, escape chars etc.  */
+-    for(GList *elem = list; elem; elem = elem->next) {
+-        GlyrMemCache *item = elem->data;
+-        if(item != NULL) {
+-            gchar *temp = beautify_string(item->data);
+-            g_free(item->data);
++    for (GList * elem = list; elem; elem = elem->next)
++    {
++        GlyrMemCache * item = elem->data;
++        if (item != NULL)
++        {
++            gchar * temp = beautify_string (item->data);
++            g_free (item->data);
+             item->data = temp;
+-            item->size = (item->data) ? strlen(item->data) : 0;
++            item->size = (item->data) ? strlen (item->data) : 0;
+         }
+     }
+ 
+     /* Let the rest do by the norma generic finalizer */
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_GUITARTABS, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_GUITARTABS,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_guitartabs = {
++MetaDataFetcher glyrFetcher_guitartabs =
++{
+     .name = "guitartabs",
+     .type = GLYR_GET_GUITARTABS,
+     .default_data_type = GLYR_TYPE_GUITARTABS,
+diff --git a/lib/intern/guitartabs/chordie_com.c b/lib/intern/guitartabs/chordie_com.c
+index 318a8bc..fdbffab 100644
+--- a/lib/intern/guitartabs/chordie_com.c
++++ b/lib/intern/guitartabs/chordie_com.c
+@@ -27,29 +27,32 @@
+ #define RESULTS_ENDIN "<!--results end-->"
+ #define NODE "<a class=\"darkblue\" href=\""
+ 
+-static const gchar *guitartabs_chordie_url(GlyrQuery *s)
++static const gchar * guitartabs_chordie_url (GlyrQuery * s)
+ {
+     return SEARCH_URL;
+ }
+ 
+ /////////////////////////////////
+ 
+-static gboolean check_title_value(GlyrQuery *s, const gchar *to_check)
++static gboolean check_title_value (GlyrQuery * s, const gchar * to_check)
+ {
+     gboolean result = FALSE;
+-    if(to_check != NULL) {
+-        gchar *artist = g_strrstr(to_check, "(");
+-        if(artist != NULL) {
++    if (to_check != NULL)
++    {
++        gchar * artist = g_strrstr (to_check,"(");
++        if (artist != NULL)
++        {
+             artist[0] = 0;
+             artist++;
+ 
+-            gchar *end_bracket = strchr(artist, ')');
+-            if(end_bracket) {
++            gchar * end_bracket = strchr (artist,')');
++            if (end_bracket)
++            {
+                 end_bracket[0] = 0;
+             }
+ 
+-            result = (levenshtein_strnormcmp(s, artist, s->artist)  <= s->fuzzyness &&
+-                      levenshtein_strnormcmp(s, to_check, s->title) <= s->fuzzyness);
++            result = (levenshtein_strnormcmp (s,artist,s->artist)  <= s->fuzzyness &&
++                      levenshtein_strnormcmp (s,to_check,s->title) <= s->fuzzyness);
+         }
+     }
+     return result;
+@@ -57,20 +60,23 @@ static gboolean check_title_value(GlyrQuery *s, const gchar *to_check)
+ 
+ /////////////////////////////////
+ 
+-static GlyrMemCache *parse_result_page(GlyrQuery *s, gchar *content_url)
++static GlyrMemCache * parse_result_page (GlyrQuery * s, gchar * content_url)
+ {
+-    GlyrMemCache *result = NULL;
+-    if(content_url != NULL) {
+-        GlyrMemCache *dl_cache = download_single(content_url, s, NULL);
+-        if(dl_cache != NULL) {
+-            gchar *content = get_search_value(dl_cache->data, "<div class=\"song\">", "</div>");
+-            if(content != NULL) {
++    GlyrMemCache * result = NULL;
++    if (content_url != NULL)
++    {
++        GlyrMemCache * dl_cache = download_single (content_url,s,NULL);
++        if (dl_cache != NULL)
++        {
++            gchar * content = get_search_value (dl_cache->data,"<div class=\"song\">","</div>");
++            if (content != NULL)
++            {
+                 result = DL_init();
+                 result->data = content;
+-                result->size = strlen(content);
+-                result->dsrc = g_strdup(content_url);
++                result->size = strlen (content);
++                result->dsrc = g_strdup (content_url);
+             }
+-            DL_free(dl_cache);
++            DL_free (dl_cache);
+         }
+     }
+     return result;
+@@ -79,29 +85,35 @@ static GlyrMemCache *parse_result_page(GlyrQuery *s, gchar *content_url)
+ 
+ /////////////////////////////////
+ 
+-static GList *guitartabs_chordie_parse(cb_object *capo)
++static GList * guitartabs_chordie_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *search_begin = strstr(capo->cache->data, RESULTS_BEGIN);
+-    if(search_begin != NULL) {
+-        gchar *search_ending = strstr(search_begin, RESULTS_ENDIN);
+-        if(search_ending != NULL) {
+-            gchar *node  = search_begin;
++    GList * result_list = NULL;
++    gchar * search_begin = strstr (capo->cache->data,RESULTS_BEGIN);
++    if (search_begin != NULL)
++    {
++        gchar * search_ending = strstr (search_begin,RESULTS_ENDIN);
++        if (search_ending != NULL)
++        {
++            gchar * node  = search_begin;
+             gsize nodelen = (sizeof NODE) - 1;
+-            while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + nodelen, NODE)) != NULL && node >= search_begin && node <= search_ending) {
+-                gchar *url = get_search_value(node, NODE, "\" ");
+-                if(url != NULL) {
+-                    gchar *name_value = get_search_value(node, "\">", "</a>");
+-                    if(check_title_value(capo->s, name_value) == TRUE) {
+-                        gchar *content_url = g_strdup_printf("%s%s", BASE_URL, url);
+-                        GlyrMemCache *result = parse_result_page(capo->s, content_url);
+-                        if(result != NULL) {
+-                            result_list = g_list_prepend(result_list, result);
++            while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node + nodelen, NODE) ) != NULL && node >= search_begin && node <= search_ending)
++            {
++                gchar * url = get_search_value (node,NODE,"\" ");
++                if (url != NULL)
++                {
++                    gchar * name_value = get_search_value (node,"\">","</a>");
++                    if (check_title_value (capo->s, name_value) == TRUE)
++                    {
++                        gchar * content_url = g_strdup_printf ("%s%s",BASE_URL,url);
++                        GlyrMemCache * result = parse_result_page (capo->s,content_url);
++                        if (result != NULL)
++                        {
++                            result_list = g_list_prepend (result_list,result);
+                         }
+-                        g_free(content_url);
++                        g_free (content_url);
+                     }
+-                    g_free(name_value);
+-                    g_free(url);
++                    g_free (name_value);
++                    g_free (url);
+                 }
+             }
+         }
+@@ -111,7 +123,8 @@ static GList *guitartabs_chordie_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource guitartabs_chordie_src = {
++MetaDataSource guitartabs_chordie_src =
++{
+     .name = "chordie",
+     .key  = 'c',
+     .parser    = guitartabs_chordie_parse,
+diff --git a/lib/intern/guitartabs/guitaretab.c b/lib/intern/guitartabs/guitaretab.c
+index f7793bc..9e817d4 100644
+--- a/lib/intern/guitartabs/guitaretab.c
++++ b/lib/intern/guitartabs/guitaretab.c
+@@ -25,26 +25,28 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *gt_guitaretabs_url(GlyrQuery *settings)
++static const gchar * gt_guitaretabs_url (GlyrQuery * settings)
+ {
+     return GT_URL;
+ }
+ 
+ /////////////////////////////////
+ 
+-static GlyrMemCache *parse_single_page(GlyrQuery *s, const gchar *url)
++static GlyrMemCache * parse_single_page (GlyrQuery * s, const gchar * url)
+ {
+-    GlyrMemCache *result = NULL;
+-    GlyrMemCache *tab_cache = download_single(url, s, NULL);
+-    if(tab_cache != NULL) {
+-        gchar *content = get_search_value(tab_cache->data, "<pre>", "</pre>");
+-        if(content != NULL) {
++    GlyrMemCache * result = NULL;
++    GlyrMemCache * tab_cache = download_single (url,s,NULL);
++    if (tab_cache != NULL)
++    {
++        gchar * content = get_search_value (tab_cache->data,"<pre>","</pre>");
++        if (content != NULL)
++        {
+             result = DL_init();
+             result->data = content;
+-            result->size = strlen(content);
+-            result->dsrc = g_strdup(url);
++            result->size = strlen (content);
++            result->dsrc = g_strdup (url);
+         }
+-        DL_free(tab_cache);
++        DL_free (tab_cache);
+     }
+     return result;
+ }
+@@ -62,53 +64,62 @@ static GlyrMemCache *parse_single_page(GlyrQuery *s, const gchar *url)
+ #define TITLE_BEGIN "\">"
+ #define TITLE_ENDIN "</a></li>"
+ 
+-static GList *gt_guitaretabs_parse(cb_object *capo)
++static GList * gt_guitaretabs_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *begin_search = strstr(capo->cache->data, SEARCH_RESULTS_BEGIN);
+-    if(begin_search != NULL) {
++    GList * result_list = NULL;
++    gchar * begin_search = strstr (capo->cache->data,SEARCH_RESULTS_BEGIN);
++    if (begin_search != NULL)
++    {
+         /* End need to assure we don't get over the search results */
+-        gchar *endin_search = strstr(begin_search, SEARCH_RESULTS_ENDIN);
+-        if(endin_search != NULL) {
++        gchar * endin_search = strstr (begin_search,SEARCH_RESULTS_ENDIN);
++        if (endin_search != NULL)
++        {
+             /* Go through all search results */
+-            gchar *node  = begin_search;
++            gchar * node  = begin_search;
+             gsize nodelen = (sizeof SEARCH_NODE) - 1;
+-            while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + nodelen, SEARCH_NODE)) != NULL && node <= endin_search) {
+-                gchar *artist = get_search_value(node, ARTIST_BEGIN, ARTIST_END);
+-                node = strstr(node + nodelen, SEARCH_NODE);
+-                if(node != NULL) {
+-                    gchar *url = get_search_value(node, SEARCH_NODE, URL_END);
+-                    gchar *title = get_search_value(node, TITLE_BEGIN, TITLE_ENDIN);
+-
+-                    if(title != NULL) {
+-                        gchar *delim = g_strrstr(title, " chords");
+-                        if(delim == NULL) {
+-                            delim = g_strrstr(title, " tab");
++            while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node + nodelen, SEARCH_NODE) ) != NULL && node <= endin_search)
++            {
++                gchar * artist = get_search_value (node,ARTIST_BEGIN,ARTIST_END);
++                node = strstr (node + nodelen, SEARCH_NODE);
++                if (node != NULL)
++                {
++                    gchar * url = get_search_value (node,SEARCH_NODE,URL_END);
++                    gchar * title = get_search_value (node,TITLE_BEGIN,TITLE_ENDIN);
++
++                    if (title != NULL)
++                    {
++                        gchar * delim = g_strrstr (title," chords");
++                        if (delim == NULL)
++                        {
++                            delim = g_strrstr (title," tab");
+                         }
+ 
+-                        if(delim != NULL) {
++                        if (delim != NULL)
++                        {
+                             delim[0] = 0;
+                         }
+                     }
+ 
+                     /* Check if this is the item we actually search */
+-                    if(levenshtein_strnormcmp(capo->s, title, capo->s->title) <= capo->s->fuzzyness &&
+-                            levenshtein_strnormcmp(capo->s, artist, capo->s->artist) <= capo->s->fuzzyness) {
++                    if (levenshtein_strnormcmp (capo->s,title, capo->s->title ) <= capo->s->fuzzyness &&
++                            levenshtein_strnormcmp (capo->s,artist,capo->s->artist) <= capo->s->fuzzyness)
++                    {
+                         /* Build resulting url */
+-                        gchar *result_url = g_strdup_printf("%s%s", GT_BASE, url);
++                        gchar * result_url = g_strdup_printf ("%s%s",GT_BASE,url);
+ 
+                         /* Go and parse it */
+-                        GlyrMemCache *result = parse_single_page(capo->s, result_url);
+-                        if(result != NULL) {
+-                            result_list = g_list_prepend(result_list, result);
++                        GlyrMemCache * result = parse_single_page (capo->s,result_url);
++                        if (result != NULL)
++                        {
++                            result_list = g_list_prepend (result_list,result);
+                         }
+-                        g_free(result_url);
++                        g_free (result_url);
+                     }
+-                    g_free(url);
+-                    g_free(title);
++                    g_free (url);
++                    g_free (title);
+ 
+                 }
+-                g_free(artist);
++                g_free (artist);
+             }
+         }
+     }
+@@ -117,7 +128,8 @@ static GList *gt_guitaretabs_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource guitartabs_guitaretab_src = {
++MetaDataSource guitartabs_guitaretab_src =
++{
+     .name = "guitaretab",
+     .key  = 'g',
+     .parser    = gt_guitaretabs_parse,
+diff --git a/lib/intern/lyrics.c b/lib/intern/lyrics.c
+index ef7d93f..7e84058 100644
+--- a/lib/intern/lyrics.c
++++ b/lib/intern/lyrics.c
+@@ -24,27 +24,30 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+     /* Fix up lyrics, escape chars etc.  */
+-    for(GList *elem = list; elem; elem = elem->next) {
+-        GlyrMemCache *item = elem->data;
+-        if(item != NULL) {
+-            gchar *temp = beautify_string(item->data);
+-            g_free(item->data);
++    for (GList * elem = list; elem; elem = elem->next)
++    {
++        GlyrMemCache * item = elem->data;
++        if (item != NULL)
++        {
++            gchar * temp = beautify_string (item->data);
++            g_free (item->data);
+             item->data = temp;
+-            item->size = (item->data) ? strlen(item->data) : 0;
++            item->size = (item->data) ? strlen (item->data) : 0;
+         }
+     }
+ 
+     /* Let the rest do by the norma generic finalizer */
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_LYRICS, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_LYRICS,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_lyrics = {
++MetaDataFetcher glyrFetcher_lyrics =
++{
+     .name = "lyrics",
+     .type = GLYR_GET_LYRICS,
+     .default_data_type = GLYR_TYPE_LYRICS,
+diff --git a/lib/intern/lyrics/chartlyrics.c b/lib/intern/lyrics/chartlyrics.c
+index 6c9d82a..088fe5a 100644
+--- a/lib/intern/lyrics/chartlyrics.c
++++ b/lib/intern/lyrics/chartlyrics.c
+@@ -25,7 +25,7 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *lyrics_chartlyrics_url(GlyrQuery *s)
++static const gchar * lyrics_chartlyrics_url (GlyrQuery * s)
+ {
+     return CL_API_URL;
+ }
+@@ -35,19 +35,21 @@ static const gchar *lyrics_chartlyrics_url(GlyrQuery *s)
+ #define LYRIC_TEXT_BEG "<Lyric>"
+ #define LYRIC_TEXT_END "</Lyric>"
+ 
+-static GlyrMemCache *get_lyrics_from_results(GlyrQuery *s, const gchar *url)
++static GlyrMemCache * get_lyrics_from_results (GlyrQuery * s, const gchar * url)
+ {
+-    GlyrMemCache *result = NULL;
+-    GlyrMemCache *dl_cache = download_single(url, s, NULL);
+-    if(dl_cache != NULL) {
+-        gchar *text = get_search_value(dl_cache->data, LYRIC_TEXT_BEG, LYRIC_TEXT_END);
+-        if(text != NULL) {
++    GlyrMemCache * result = NULL;
++    GlyrMemCache * dl_cache = download_single (url,s,NULL);
++    if (dl_cache != NULL)
++    {
++        gchar * text = get_search_value (dl_cache->data,LYRIC_TEXT_BEG,LYRIC_TEXT_END);
++        if (text != NULL)
++        {
+             result = DL_init();
+             result->data = text;
+-            result->size = strlen(text);
+-            result->dsrc = g_strdup(url);
++            result->size = strlen (text);
++            result->dsrc = g_strdup (url);
+         }
+-        DL_free(dl_cache);
++        DL_free (dl_cache);
+     }
+     return result;
+ }
+@@ -68,34 +70,38 @@ static GlyrMemCache *get_lyrics_from_results(GlyrQuery *s, const gchar *url)
+ #define LYRIC_ID_BEG "<LyricId>"
+ #define LYRIC_ID_END "</LyricId>"
+ 
+-static GList *lyrics_chartlyrics_parse(cb_object *capo)
++static GList * lyrics_chartlyrics_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *node = capo->cache->data;
++    GList * result_list = NULL;
++    gchar * node = capo->cache->data;
+     gint nodelen = (sizeof LYRIC_NODE) - 1;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + nodelen, LYRIC_NODE)) != NULL) {
++    while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node + nodelen, LYRIC_NODE) ) != NULL)
++    {
+         node += nodelen;
+-        gchar *artist = get_search_value(node, ARTIST_BEG, ARTIST_END);
+-        gchar *title  = get_search_value(node, SONG_BEG, SONG_END);
+-
+-        if(levenshtein_strnormcmp(capo->s, artist, capo->s->artist) <= capo->s->fuzzyness &&
+-                levenshtein_strnormcmp(capo->s, title, capo->s->title)   <= capo->s->fuzzyness) {
+-            gchar *lyric_id = get_search_value(node, LYRIC_ID_BEG, LYRIC_ID_END);
+-            gchar *lyric_checksum = get_search_value(node, LYRIC_CHECKSUM_BEG, LYRIC_CHECKSUM_END);
+-            if(lyric_id && lyric_checksum && strcmp(lyric_id, "0") != 0) {
+-                gchar *content_url = g_strdup_printf(CL_API_GET, lyric_id, lyric_checksum);
+-                GlyrMemCache *result = get_lyrics_from_results(capo->s, content_url);
+-                if(result != NULL) {
+-                    result_list = g_list_prepend(result_list, result);
++        gchar * artist = get_search_value (node,ARTIST_BEG,ARTIST_END);
++        gchar * title  = get_search_value (node,SONG_BEG,SONG_END);
++
++        if (levenshtein_strnormcmp (capo->s,artist,capo->s->artist) <= capo->s->fuzzyness &&
++                levenshtein_strnormcmp (capo->s,title,capo->s->title)   <= capo->s->fuzzyness)
++        {
++            gchar * lyric_id = get_search_value (node,LYRIC_ID_BEG,LYRIC_ID_END);
++            gchar * lyric_checksum = get_search_value (node,LYRIC_CHECKSUM_BEG,LYRIC_CHECKSUM_END);
++            if (lyric_id && lyric_checksum && strcmp (lyric_id,"0") != 0)
++            {
++                gchar * content_url = g_strdup_printf (CL_API_GET,lyric_id,lyric_checksum);
++                GlyrMemCache * result = get_lyrics_from_results (capo->s,content_url);
++                if (result != NULL)
++                {
++                    result_list = g_list_prepend (result_list,result);
+                 }
+-                g_free(content_url);
++                g_free (content_url);
+             }
+-            g_free(lyric_id);
+-            g_free(lyric_checksum);
++            g_free (lyric_id);
++            g_free (lyric_checksum);
+         }
+-        g_free(artist);
+-        g_free(title);
++        g_free (artist);
++        g_free (title);
+     }
+     return result_list;
+ }
+@@ -103,7 +109,8 @@ static GList *lyrics_chartlyrics_parse(cb_object *capo)
+ /////////////////////////////////
+ 
+ 
+-MetaDataSource lyrics_chartlyrics_src = {
++MetaDataSource lyrics_chartlyrics_src =
++{
+     .name = "chartlyrics",
+     .key  = 'c',
+     .parser    = lyrics_chartlyrics_parse,
+diff --git a/lib/intern/lyrics/elyrics.c b/lib/intern/lyrics/elyrics.c
+index bfb36cb..b529e85 100644
+--- a/lib/intern/lyrics/elyrics.c
++++ b/lib/intern/lyrics/elyrics.c
+@@ -23,34 +23,34 @@
+ /* Simple URL replace scheme - works pretty good here */
+ #define ELYRICS_BASE_URL "http://www.elyrics.net/read/%c/%s-lyrics/%s-lyrics.html"
+ 
+-static const gchar *lyrics_elyrics_url(GlyrQuery *settings)
++static const gchar * lyrics_elyrics_url (GlyrQuery * settings)
+ {
+-    gchar *result_url = NULL;
+-
+-    gchar *space_to_min_artist = strreplace(settings->artist, " ", "-");
+-    gchar *space_to_min_title  = strreplace(settings->title, " ", "-");
+-    if(space_to_min_artist && space_to_min_title) {
+-        gchar *prep_title = NULL, * prep_artist = NULL;
+-        if(settings->normalization & GLYR_NORMALIZE_ARTIST) {
+-            prep_title  = prepare_string(space_to_min_title, settings->normalization, TRUE);
+-        } else {
+-            prep_title  = prepare_string(space_to_min_title, GLYR_NORMALIZE_NONE, TRUE);
++    gchar * result_url = NULL;
++
++    gchar * space_to_min_artist = strreplace (settings->artist," ","-");
++    gchar * space_to_min_title  = strreplace (settings->title, " ","-");
++    if (space_to_min_artist && space_to_min_title)
++    {
++        gchar * prep_title = NULL, * prep_artist = NULL;
++        if (settings->normalization & GLYR_NORMALIZE_ARTIST)
++            prep_title  = prepare_string (space_to_min_title, settings->normalization,TRUE);
++        else
++            prep_title  = prepare_string (space_to_min_title, GLYR_NORMALIZE_NONE,TRUE);
++
++        if (settings->normalization & GLYR_NORMALIZE_ARTIST)
++            prep_artist = prepare_string (space_to_min_artist, settings->normalization,TRUE);
++        else
++            prep_artist = prepare_string (space_to_min_artist, GLYR_NORMALIZE_NONE,TRUE);
++
++        if (prep_title && prep_artist)
++        {
++            result_url = g_strdup_printf (ELYRICS_BASE_URL,prep_artist[0],prep_artist,prep_title);
++            g_free (prep_title);
++            g_free (prep_artist);
+         }
+ 
+-        if(settings->normalization & GLYR_NORMALIZE_ARTIST) {
+-            prep_artist = prepare_string(space_to_min_artist, settings->normalization, TRUE);
+-        } else {
+-            prep_artist = prepare_string(space_to_min_artist, GLYR_NORMALIZE_NONE, TRUE);
+-        }
+-
+-        if(prep_title && prep_artist) {
+-            result_url = g_strdup_printf(ELYRICS_BASE_URL, prep_artist[0], prep_artist, prep_title);
+-            g_free(prep_title);
+-            g_free(prep_artist);
+-        }
+-
+-        g_free(space_to_min_artist);
+-        g_free(space_to_min_title);
++        g_free (space_to_min_artist);
++        g_free (space_to_min_title);
+     }
+     return result_url;
+ }
+@@ -63,20 +63,24 @@ static const gchar *lyrics_elyrics_url(GlyrQuery *settings)
+ #define BAD_STRING "Lyrics removed for copyright protection!"
+ 
+ /* This data is separated from the actual lyrics => remove it from here */
+-static void remove_from_from_string(gchar *string)
++static void remove_from_from_string (gchar * string)
+ {
+-    gchar *from_middle = strstr(string, FROM_MIDDLE);
+-    if(from_middle != NULL) {
+-        gchar *from_end = strstr(from_middle, FROM_END);
+-        if(from_end != NULL) {
+-            gchar *from_start = from_middle;
+-            while(from_start[0] && from_start[0] != '>') {
++    gchar * from_middle = strstr (string,FROM_MIDDLE);
++    if (from_middle != NULL)
++    {
++        gchar * from_end = strstr (from_middle,FROM_END);
++        if (from_end != NULL)
++        {
++            gchar * from_start = from_middle;
++            while (from_start[0] && from_start[0] != '>')
++            {
+                 from_start--;
+             }
+ 
+-            if(from_start != NULL) {
++            if (from_start != NULL)
++            {
+                 gsize memlen = from_end - from_start;
+-                memset(from_start, ' ', memlen);
++                memset (from_start,' ',memlen);
+             }
+         }
+     }
+@@ -88,28 +92,32 @@ static void remove_from_from_string(gchar *string)
+ #define LYRICS_ALT_END "these lyrics are submitted by"
+ #define LYRICS_END   "</div>"
+ 
+-static GList *lyrics_elyrics_parse(cb_object *capo)
++static GList * lyrics_elyrics_parse (cb_object * capo)
+ {
+-    GList *results = NULL;
+-    gchar *lyrics_begin = strstr(capo->cache->data, LYRICS_BEGIN);
+-    if(lyrics_begin != NULL) {
+-        if(g_strstr_len(lyrics_begin, 250, BAD_STRING) == NULL) {
+-            gchar *lyrics_end = strstr(lyrics_begin, LYRICS_ALT_END);
+-            if(lyrics_end == NULL) {
+-                lyrics_end = strstr(lyrics_begin, LYRICS_END);
++    GList * results = NULL;
++    gchar * lyrics_begin = strstr (capo->cache->data,LYRICS_BEGIN);
++    if (lyrics_begin != NULL)
++    {
++        if (g_strstr_len (lyrics_begin,250,BAD_STRING) == NULL)
++        {
++            gchar * lyrics_end = strstr (lyrics_begin,LYRICS_ALT_END);
++            if (lyrics_end == NULL)
++            {
++                lyrics_end = strstr (lyrics_begin,LYRICS_END);
+             }
+ 
+-            if(lyrics_end != NULL) {
++            if (lyrics_end != NULL)
++            {
+                 /* Modifying original buffer is allowed
+                  * As long it's not saved in the result cache
+                  * */
+                 lyrics_end[0] = '\0';
+ 
+-                GlyrMemCache *item = DL_init();
+-                remove_from_from_string(lyrics_begin);
+-                item->data = g_strdup(lyrics_begin);
++                GlyrMemCache * item = DL_init();
++                remove_from_from_string (lyrics_begin);
++                item->data = g_strdup (lyrics_begin);
+                 item->size = lyrics_end - lyrics_begin;
+-                results = g_list_prepend(results, item);
++                results = g_list_prepend (results,item);
+             }
+         }
+     }
+@@ -118,7 +126,8 @@ static GList *lyrics_elyrics_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_elyrics_src = {
++MetaDataSource lyrics_elyrics_src =
++{
+     .name = "elyrics",
+     .key  = 'e',
+     .encoding  = "LATIN1",
+diff --git a/lib/intern/lyrics/lipwalk.c b/lib/intern/lyrics/lipwalk.c
+index 852b634..4ea754b 100644
+--- a/lib/intern/lyrics/lipwalk.c
++++ b/lib/intern/lyrics/lipwalk.c
+@@ -32,31 +32,35 @@
+ 
+ #define IS_ON_SEARCH_PAGE "<title>Search results for"
+ 
+-static const gchar *lyrics_lipwalk_url(GlyrQuery *settings)
++static const gchar * lyrics_lipwalk_url (GlyrQuery * settings)
+ {
+     return LIPWALK_URL;
+ }
+ 
+ /////////////////////////////////
+ 
+-static GlyrMemCache *parse_lyrics_page(GlyrMemCache *cache)
++static GlyrMemCache * parse_lyrics_page (GlyrMemCache * cache)
+ {
+-    gchar *start = NULL;
+-    gchar *end = NULL;
+-    gchar *content = NULL;
++    gchar * start = NULL;
++    gchar * end = NULL;
++    gchar * content = NULL;
+ 
+-    GlyrMemCache *result_cache = NULL;
+-    if(cache && (start = strstr(cache->data, START)) != NULL) {
++    GlyrMemCache * result_cache = NULL;
++    if (cache && (start = strstr (cache->data,START) ) != NULL)
++    {
+         start += (sizeof START) - 1;
+-        if(start && (end = strstr(start + (sizeof START) , END)) != NULL) {
+-            if(ABS(end - start) > 35) {
++        if (start && (end = strstr (start + (sizeof START) ,END) ) != NULL)
++        {
++            if (ABS (end-start) > 35)
++            {
+                 * (end) = 0;
+-                content = strreplace(start, "<br />", NULL);
+-                if(content != NULL) {
++                content = strreplace (start,"<br />",NULL);
++                if (content != NULL)
++                {
+                     result_cache = DL_init();
+                     result_cache->data = content;
+-                    result_cache->size = strlen(content);
+-                    result_cache->dsrc = g_strdup(cache->dsrc);
++                    result_cache->size = strlen (content);
++                    result_cache->dsrc = g_strdup (cache->dsrc);
+                 }
+             }
+         }
+@@ -66,19 +70,23 @@ static GlyrMemCache *parse_lyrics_page(GlyrMemCache *cache)
+ 
+ /////////////////////////////////
+ 
+-static gboolean validate_track_description(GlyrQuery *query, gchar *description)
++static gboolean validate_track_description (GlyrQuery * query, gchar * description)
+ {
+     gboolean result = FALSE;
+-    if(description != NULL) {
+-        gchar **splitv = g_strsplit(description, " - ", 0);
+-        if(splitv != NULL) {
+-            if(splitv[0] && splitv[1] != NULL) {
+-                if(levenshtein_strnormcmp(query, query->artist, splitv[0]) <= query->fuzzyness
+-                        && levenshtein_strnormcmp(query, query->title, splitv[1]) <= query->fuzzyness) {
++    if (description != NULL)
++    {
++        gchar ** splitv = g_strsplit (description," - ",0);
++        if (splitv != NULL)
++        {
++            if (splitv[0] && splitv[1] != NULL)
++            {
++                if (levenshtein_strnormcmp (query,query->artist,splitv[0]) <= query->fuzzyness
++                        && levenshtein_strnormcmp (query,query->title, splitv[1]) <= query->fuzzyness)
++                {
+                     result = TRUE;
+                 }
+             }
+-            g_strfreev(splitv);
++            g_strfreev (splitv);
+         }
+     }
+     return result;
+@@ -86,38 +94,47 @@ static gboolean validate_track_description(GlyrQuery *query, gchar *description)
+ 
+ /////////////////////////////////
+ 
+-static GList *lyrics_lipwalk_parse(cb_object *capo)
++static GList * lyrics_lipwalk_parse (cb_object *capo)
+ {
+-    GList *result_list  = NULL;
+-    if(strstr(capo->cache->data, IS_ON_SEARCH_PAGE) == NULL) {
+-        GlyrMemCache *result_cache = parse_lyrics_page(capo->cache);
+-        result_list = g_list_prepend(result_list, result_cache);
+-    } else { /* Oops, we're on the search results page, things are complicated now */
++    GList * result_list  = NULL;
++    if (strstr (capo->cache->data,IS_ON_SEARCH_PAGE) == NULL)
++    {
++        GlyrMemCache * result_cache = parse_lyrics_page (capo->cache);
++        result_list = g_list_prepend (result_list,result_cache);
++    }
++    else /* Oops, we're on the search results page, things are complicated now */
++    {
+         /* Happens with "In Flames" - "Trigger" e.g.                          */
+-        gchar *search_node = capo->cache->data;
++        gchar * search_node = capo->cache->data;
+         gsize track_len = (sizeof TRACK_BEGIN) - 1;
+-        while(continue_search(g_list_length(result_list), capo->s) && (search_node = strstr(search_node + track_len, TRACK_BEGIN))) {
++        while (continue_search (g_list_length (result_list),capo->s) && (search_node = strstr (search_node + track_len,TRACK_BEGIN) ) )
++        {
+             search_node += track_len;
+-            gchar *track_end = strstr(search_node, TRACK_ENDIN);
+-            if(track_end != NULL) {
+-                gchar *lyrics_url = copy_value(search_node, track_end);
+-                if(lyrics_url != NULL) {
++            gchar * track_end = strstr (search_node,TRACK_ENDIN);
++            if (track_end != NULL)
++            {
++                gchar * lyrics_url = copy_value (search_node,track_end);
++                if (lyrics_url != NULL)
++                {
+                     track_end += (sizeof TRACK_ENDIN) - 1;
+-                    gchar *track_descr = copy_value(track_end, strstr(track_end, TRACK_DESCR));
+-                    if(track_descr != NULL && validate_track_description(capo->s, track_descr) == TRUE) {
+-                        gchar *full_url = g_strdup_printf("%s%s", LIPWALK_DOMAIN, lyrics_url);
+-                        GlyrMemCache *lyrics_page = download_single(full_url, capo->s, NULL);
+-                        if(lyrics_page != NULL) {
+-                            GlyrMemCache *result_cache = parse_lyrics_page(lyrics_page);
+-                            if(result_cache != NULL) {
+-                                result_list = g_list_prepend(result_list, result_cache);
++                    gchar * track_descr = copy_value (track_end,strstr (track_end,TRACK_DESCR) );
++                    if (track_descr != NULL && validate_track_description (capo->s,track_descr) == TRUE)
++                    {
++                        gchar * full_url = g_strdup_printf ("%s%s",LIPWALK_DOMAIN,lyrics_url);
++                        GlyrMemCache * lyrics_page = download_single (full_url,capo->s,NULL);
++                        if (lyrics_page != NULL)
++                        {
++                            GlyrMemCache * result_cache = parse_lyrics_page (lyrics_page);
++                            if (result_cache != NULL)
++                            {
++                                result_list = g_list_prepend (result_list,result_cache);
+                             }
+-                            DL_free(lyrics_page);
++                            DL_free (lyrics_page);
+                         }
+-                        g_free(track_descr);
+-                        g_free(full_url);
++                        g_free (track_descr);
++                        g_free (full_url);
+                     }
+-                    g_free(lyrics_url);
++                    g_free (lyrics_url);
+                 }
+             }
+         }
+@@ -127,7 +144,8 @@ static GList *lyrics_lipwalk_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_lipwalk_src = {
++MetaDataSource lyrics_lipwalk_src =
++{
+     .name = "lipwalk",
+     .key  = 'z',
+     .parser    = lyrics_lipwalk_parse,
+diff --git a/lib/intern/lyrics/lyrdb.c b/lib/intern/lyrics/lyrdb.c
+index cb5a719..08514a6 100644
+--- a/lib/intern/lyrics/lyrdb.c
++++ b/lib/intern/lyrics/lyrdb.c
+@@ -24,48 +24,54 @@
+ 
+ /////////////////////////////////
+ 
+-static const char *lyrics_lyrdb_url(GlyrQuery *settings)
++static const char * lyrics_lyrdb_url (GlyrQuery * settings)
+ {
+     return LYRDB_URL;
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *lyrics_lyrdb_parse(cb_object *capo)
++static GList * lyrics_lyrdb_parse (cb_object * capo)
+ {
+     gchar *slash = NULL;
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+-    if((slash = strchr(capo->cache->data, '\\')) != NULL) {
+-        gchar *uID = copy_value(capo->cache->data, slash);
+-        if(uID != NULL) {
+-            gchar *lyr_url = g_strdup_printf("http://webservices.lyrdb.com/getlyr.php?q=%s", uID);
+-            if(lyr_url != NULL) {
+-                GlyrMemCache *new_cache = download_single(lyr_url, capo->s, NULL);
+-                if(new_cache != NULL) {
++    if ( (slash = strchr (capo->cache->data,'\\') ) != NULL)
++    {
++        gchar * uID = copy_value (capo->cache->data,slash);
++        if (uID != NULL)
++        {
++            gchar * lyr_url = g_strdup_printf ("http://webservices.lyrdb.com/getlyr.php?q=%s",uID);
++            if (lyr_url != NULL)
++            {
++                GlyrMemCache * new_cache = download_single (lyr_url,capo->s,NULL);
++                if (new_cache != NULL)
++                {
+                     gsize i = 0;
+-                    gchar *buffer = g_malloc0(new_cache->size + 1);
+-                    for(i = 0; i < new_cache->size; i++) {
++                    gchar * buffer = g_malloc0 (new_cache->size + 1);
++                    for (i = 0; i < new_cache->size; i++)
++                    {
+                         buffer[i] = (new_cache->data[i] == '\r') ?
+                                     ' ' :
+                                     new_cache->data[i];
+                     }
+                     buffer[i] = 0;
+ 
+-                    if(i != 0) {
+-                        GlyrMemCache *result = DL_init();
++                    if (i != 0)
++                    {
++                        GlyrMemCache * result = DL_init();
+                         result->data = buffer;
+                         result->size = i;
+-                        result->dsrc = g_strdup(lyr_url);
++                        result->dsrc = g_strdup (lyr_url);
+ 
+-                        result_list = g_list_prepend(result_list, result);
++                        result_list = g_list_prepend (result_list,result);
+                     }
+ 
+-                    DL_free(new_cache);
++                    DL_free (new_cache);
+                 }
+-                g_free(lyr_url);
++                g_free (lyr_url);
+             }
+-            g_free(uID);
++            g_free (uID);
+         }
+     }
+     return result_list;
+@@ -73,7 +79,8 @@ static GList *lyrics_lyrdb_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_lyrdb_src = {
++MetaDataSource lyrics_lyrdb_src =
++{
+     .name = "lyrdb",
+     .key  = 'd',
+     .encoding  = "LATIN1",
+diff --git a/lib/intern/lyrics/lyricsreg.c b/lib/intern/lyrics/lyricsreg.c
+index a9dfe96..1891b53 100644
+--- a/lib/intern/lyrics/lyricsreg.c
++++ b/lib/intern/lyrics/lyricsreg.c
+@@ -23,30 +23,34 @@
+ #define INFO_BEGIN "</div><div style=\"text-align:center;\">"
+ #define INFO_ENDIN " <a href=\""
+ 
+-static const char *lyrics_lyricsreg_url(GlyrQuery *s)
++static const char * lyrics_lyricsreg_url (GlyrQuery * s)
+ {
+     return "http://www.lyricsreg.com/lyrics/${artist}/${title}/";
+ }
+ 
+-static GList *lyrics_lyricsreg_parse(cb_object *capo)
++static GList * lyrics_lyricsreg_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *start = strstr(capo->cache->data, INFO_BEGIN);
++    GList * result_list = NULL;
++    gchar * start = strstr (capo->cache->data, INFO_BEGIN);
+ 
+-    if(start != NULL) {
++    if (start != NULL)
++    {
+         start += (sizeof INFO_BEGIN) - 1;
+-        gchar *end = strstr(start, INFO_ENDIN);
+-        if(end != NULL) {
++        gchar * end = strstr (start,INFO_ENDIN);
++        if (end != NULL)
++        {
+             * (end) = 0;
+-            gchar *no_br_tags = strreplace(start, "<br />", NULL);
+-            if(no_br_tags != NULL) {
+-                GlyrMemCache *tmp = DL_init();
+-                tmp->data = beautify_string(no_br_tags);
+-                tmp->size = tmp->data ? strlen(tmp->data) : 0;
+-                g_free(no_br_tags);
++            gchar * no_br_tags = strreplace (start,"<br />",NULL);
++            if (no_br_tags != NULL)
++            {
++                GlyrMemCache * tmp = DL_init();
++                tmp->data = beautify_string (no_br_tags);
++                tmp->size = tmp->data ? strlen (tmp->data) : 0;
++                g_free (no_br_tags);
+ 
+-                if(tmp->data != NULL) {
+-                    result_list = g_list_prepend(result_list, tmp);
++                if (tmp->data != NULL)
++                {
++                    result_list = g_list_prepend (result_list,tmp);
+                 }
+             }
+         }
+@@ -56,7 +60,8 @@ static GList *lyrics_lyricsreg_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_lyricsreg_src = {
++MetaDataSource lyrics_lyricsreg_src =
++{
+     .name = "lyricsreg",
+     .key  = 'r',
+     .parser    = lyrics_lyricsreg_parse,
+diff --git a/lib/intern/lyrics/lyricstime.c b/lib/intern/lyrics/lyricstime.c
+index 2f3d76d..ef091a9 100644
+--- a/lib/intern/lyrics/lyricstime.c
++++ b/lib/intern/lyrics/lyricstime.c
+@@ -24,7 +24,7 @@
+ 
+ /////////////////////////////////
+ 
+-static const char *lyrics_lyricstime_url(GlyrQuery *settings)
++static const char * lyrics_lyricstime_url (GlyrQuery * settings)
+ {
+     return GLYR_GET_URL;
+ }
+@@ -34,24 +34,28 @@ static const char *lyrics_lyricstime_url(GlyrQuery *settings)
+ #define LYR_BEGIN "<div id=\"songlyrics\" >"
+ #define LYR_ENDIN "</div>"
+ 
+-static GlyrMemCache *parse_page(GlyrMemCache *dl, cb_object *capo)
++static GlyrMemCache * parse_page (GlyrMemCache * dl, cb_object * capo)
+ {
+-    GlyrMemCache *result = NULL;
+-    if(dl != NULL) {
+-        gchar *begin = strstr(dl->data, LYR_BEGIN);
+-        if(begin != NULL) {
++    GlyrMemCache * result = NULL;
++    if (dl != NULL)
++    {
++        gchar * begin = strstr (dl->data,LYR_BEGIN);
++        if (begin != NULL)
++        {
+             begin += (sizeof LYR_BEGIN) - 1;
+-            gchar *end = strstr(begin, LYR_ENDIN);
+-            if(end != NULL) {
++            gchar * end = strstr (begin,LYR_ENDIN);
++            if (end != NULL)
++            {
+                 * (end) = 0;
+-                gchar *no_br_tags = strreplace(begin, "<br />", NULL);
+-                if(no_br_tags != NULL) {
++                gchar * no_br_tags = strreplace (begin,"<br />",NULL);
++                if (no_br_tags != NULL)
++                {
+                     result = DL_init();
+-                    result->data = beautify_string(no_br_tags);
+-                    result->size = (result->data) ? strlen(result->data) : 0;
+-                    result->dsrc = g_strdup(dl->dsrc);
++                    result->data = beautify_string (no_br_tags);
++                    result->size = (result->data) ? strlen (result->data) : 0;
++                    result->dsrc = g_strdup (dl->dsrc);
+ 
+-                    g_free(no_br_tags);
++                    g_free (no_br_tags);
+                 }
+             }
+         }
+@@ -69,23 +73,29 @@ static GlyrMemCache *parse_page(GlyrMemCache *dl, cb_object *capo)
+ #define ARTIST_BEG "<b>"
+ #define ARTIST_END "</b>"
+ 
+-static gboolean validate_artist(cb_object *capo, gchar *backpointer)
++static gboolean validate_artist (cb_object * capo, gchar * backpointer)
+ {
+     gboolean i_shall_continue = false;
+-    if(backpointer != NULL) {
+-        char *span = strstr(backpointer, SPAN_BEGIN);
+-        if(span != NULL) {
+-            gchar *artist_beg = strstr(span, ARTIST_BEG);
+-            if(artist_beg != NULL) {
++    if (backpointer != NULL)
++    {
++        char * span = strstr (backpointer,SPAN_BEGIN);
++        if (span != NULL)
++        {
++            gchar * artist_beg = strstr (span,ARTIST_BEG);
++            if (artist_beg != NULL)
++            {
+                 artist_beg += (sizeof ARTIST_BEG) - 1;
+-                gchar *artist_end = strstr(artist_beg, ARTIST_END);
+-                if(artist_end != NULL) {
+-                    gchar *artist_val = copy_value(artist_beg, artist_end);
+-                    if(artist_val != NULL) {
+-                        if(levenshtein_strnormcmp(capo->s, artist_val, capo->s->artist) <= capo->s->fuzzyness) {
++                gchar * artist_end = strstr (artist_beg,ARTIST_END);
++                if (artist_end != NULL)
++                {
++                    gchar * artist_val = copy_value (artist_beg,artist_end);
++                    if (artist_val != NULL)
++                    {
++                        if (levenshtein_strnormcmp (capo->s,artist_val,capo->s->artist) <= capo->s->fuzzyness)
++                        {
+                             i_shall_continue = true;
+                         }
+-                        g_free(artist_val);
++                        g_free (artist_val);
+                     }
+                 }
+             }
+@@ -96,37 +106,43 @@ static gboolean validate_artist(cb_object *capo, gchar *backpointer)
+ 
+ /////////////////////////////////
+ 
+-static GList *lyrics_lyricstime_parse(cb_object *capo)
++static GList * lyrics_lyricstime_parse (cb_object * capo)
+ {
+-    GList *rList = NULL;
+-    char *start = capo->cache->data;
+-    if(start != NULL) {
+-        gchar *div_end = strstr(start, SEARCH_ENDIN);
+-        gchar *node = capo->cache->data;
+-        gchar *backpointer = node;
++    GList * rList = NULL;
++    char * start = capo->cache->data;
++    if (start != NULL)
++    {
++        gchar * div_end = strstr (start,SEARCH_ENDIN);
++        gchar * node = capo->cache->data;
++        gchar * backpointer = node;
+         gsize nlen = (sizeof NODE_BEGIN) - 1;
+ 
+-        while(continue_search(g_list_length(rList), capo->s) && (node = strstr(node + nlen, NODE_BEGIN)) != NULL) {
+-            if(div_end >= node) {
++        while (continue_search (g_list_length (rList),capo->s) && (node = strstr (node+nlen,NODE_BEGIN) ) != NULL)
++        {
++            if (div_end >= node)
+                 break;
+-            }
+ 
+-            if(validate_artist(capo, backpointer) == TRUE) {
+-                gchar *end_of_url = strstr(node + nlen, NODE_ENDIN);
+-                if(end_of_url != NULL) {
+-                    gchar *url = copy_value(node + nlen, end_of_url);
+-                    if(url != NULL) {
+-                        gchar *full_url = g_strdup_printf("http://www.lyricstime.com%s", url);
+-                        GlyrMemCache *dl_cache = download_single(full_url, capo->s, NULL);
+-                        if(dl_cache) {
+-                            GlyrMemCache *parsed_cache = parse_page(dl_cache, capo);
+-                            if(parsed_cache != NULL) {
+-                                rList = g_list_prepend(rList, parsed_cache);
++            if (validate_artist (capo,backpointer) == TRUE)
++            {
++                gchar * end_of_url = strstr (node+nlen,NODE_ENDIN);
++                if (end_of_url != NULL)
++                {
++                    gchar * url = copy_value (node+nlen,end_of_url);
++                    if (url != NULL)
++                    {
++                        gchar * full_url = g_strdup_printf ("http://www.lyricstime.com%s",url);
++                        GlyrMemCache * dl_cache = download_single (full_url,capo->s,NULL);
++                        if (dl_cache)
++                        {
++                            GlyrMemCache * parsed_cache = parse_page (dl_cache,capo);
++                            if (parsed_cache != NULL)
++                            {
++                                rList = g_list_prepend (rList,parsed_cache);
+                             }
+-                            DL_free(dl_cache);
+-                            g_free(full_url);
++                            DL_free (dl_cache);
++                            g_free (full_url);
+                         }
+-                        g_free(url);
++                        g_free (url);
+                     }
+                 }
+             }
+@@ -138,7 +154,8 @@ static GList *lyrics_lyricstime_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_lyricstime_src = {
++MetaDataSource lyrics_lyricstime_src =
++{
+     .name = "lyricstime",
+     .key  = 'y',
+     .parser    = lyrics_lyricstime_parse,
+diff --git a/lib/intern/lyrics/lyricsvip.c b/lib/intern/lyrics/lyricsvip.c
+index 6655ae6..2765611 100644
+--- a/lib/intern/lyrics/lyricsvip.c
++++ b/lib/intern/lyrics/lyricsvip.c
+@@ -24,21 +24,23 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *lyrics_lyricsvip_url(GlyrQuery *settings)
++static const gchar * lyrics_lyricsvip_url (GlyrQuery * settings)
+ {
+-    gchar *result = NULL;
+-    gchar *artist_clean = strreplace(settings->artist, " ", "-");
+-    if(artist_clean != NULL) {
+-        gchar *title_clean =  strreplace(settings->title, " ", "-");
+-        if(title_clean != NULL) {
+-            gchar *prep_artist = curl_easy_escape(NULL, artist_clean, 0);
+-            gchar *prep_title  = curl_easy_escape(NULL, title_clean, 0);
+-            result = g_strdup_printf(LV_URL, prep_artist, prep_title);
+-            g_free(title_clean);
+-            curl_free(prep_artist);
+-            curl_free(prep_title);
++    gchar * result = NULL;
++    gchar * artist_clean = strreplace (settings->artist, " ", "-");
++    if (artist_clean != NULL)
++    {
++        gchar * title_clean =  strreplace (settings->title, " ", "-");
++        if (title_clean != NULL)
++        {
++            gchar * prep_artist = curl_easy_escape (NULL,artist_clean,0);
++            gchar * prep_title  = curl_easy_escape (NULL,title_clean,0);
++            result = g_strdup_printf (LV_URL, prep_artist, prep_title);
++            g_free (title_clean);
++            curl_free (prep_artist);
++            curl_free (prep_title);
+         }
+-        g_free(artist_clean);
++        g_free (artist_clean);
+     }
+     return result;
+ }
+@@ -48,24 +50,28 @@ static const gchar *lyrics_lyricsvip_url(GlyrQuery *settings)
+ #define BEG "<img src=\"http://www.lyricsvip.com/images/phone2.gif\" alt=\"phone\" /></div>"
+ #define END "<br />\n<div class=\"ad\">"
+ 
+-static GList *lyrics_lyricsvip_parse(cb_object *capo)
++static GList * lyrics_lyricsvip_parse (cb_object *capo)
+ {
+-    gchar *start = NULL;
+-    gchar *end = NULL;
+-    gchar *content = NULL;
+-    GList *result_list  = NULL;
++    gchar * start = NULL;
++    gchar * end = NULL;
++    gchar * content = NULL;
++    GList * result_list  = NULL;
+ 
+-    if((start = strstr(capo->cache->data, BEG)) != NULL) {
+-        if((end = strstr(start, END)) != NULL) {
+-            if(ABS(end - start) > 0) {
++    if ( (start = strstr (capo->cache->data,BEG) ) != NULL)
++    {
++        if ( (end = strstr (start,END) ) != NULL)
++        {
++            if (ABS (end-start) > 0)
++            {
+                 * (end) = 0;
+ 
+-                content = strreplace(start, "<br />", "");
+-                if(content) {
+-                    GlyrMemCache *result = DL_init();
++                content = strreplace (start,"<br />","");
++                if (content)
++                {
++                    GlyrMemCache * result = DL_init();
+                     result->data = content;
+-                    result->size = strlen(content);
+-                    result_list = g_list_prepend(result_list, result);
++                    result->size = strlen (content);
++                    result_list = g_list_prepend (result_list,result);
+                 }
+             }
+         }
+@@ -75,7 +81,8 @@ static GList *lyrics_lyricsvip_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_lyricsvip_src = {
++MetaDataSource lyrics_lyricsvip_src =
++{
+     .name = "lyricsvip",
+     .key  = 'v',
+     .parser    = lyrics_lyricsvip_parse,
+diff --git a/lib/intern/lyrics/lyricswiki.c b/lib/intern/lyrics/lyricswiki.c
+index ec8ad9e..8943133 100644
+--- a/lib/intern/lyrics/lyricswiki.c
++++ b/lib/intern/lyrics/lyricswiki.c
+@@ -27,7 +27,7 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *lyrics_lyricswiki_url(GlyrQuery *settings)
++static const gchar * lyrics_lyricswiki_url (GlyrQuery * settings)
+ {
+     return LW_URL;
+ }
+@@ -35,22 +35,26 @@ static const gchar *lyrics_lyricswiki_url(GlyrQuery *settings)
+ /////////////////////////////////
+ 
+ // Compare response, so lyricswiki's search did not fool us
+-static gboolean lv_cmp_content(const gchar *to_artist, const gchar *to_title, cb_object *capo)
++static gboolean lv_cmp_content (const gchar * to_artist, const gchar * to_title, cb_object * capo)
+ {
+     gboolean res = false;
+-    if(to_artist && to_title && capo) {
+-        gchar *tmp_artist = copy_value(to_artist, strstr(to_artist, "</artist>"));
+-        if(tmp_artist != NULL) {
+-            gchar *tmp_title = copy_value(to_title, strstr(to_title , "</song>"));
+-            if(tmp_title != NULL) {
++    if (to_artist && to_title && capo)
++    {
++        gchar * tmp_artist = copy_value (to_artist,strstr (to_artist,"</artist>") );
++        if (tmp_artist != NULL)
++        {
++            gchar * tmp_title = copy_value (to_title, strstr (to_title ,"</song>" ) );
++            if (tmp_title != NULL)
++            {
+                 /* levenshtein_strnormcmp takes care of those brackets */
+-                if((levenshtein_strnormcmp(capo->s, capo->s->artist, tmp_artist) <= capo->s->fuzzyness &&
+-                        levenshtein_strnormcmp(capo->s, capo->s->title, tmp_title)  <= capo->s->fuzzyness)) {
++                if ( (levenshtein_strnormcmp (capo->s,capo->s->artist,tmp_artist) <= capo->s->fuzzyness &&
++                        levenshtein_strnormcmp (capo->s,capo->s->title, tmp_title)  <= capo->s->fuzzyness ) )
++                {
+                     res = true;
+                 }
+-                g_free(tmp_title);
++                g_free (tmp_title);
+             }
+-            g_free(tmp_artist);
++            g_free (tmp_artist);
+         }
+     }
+     return res;
+@@ -64,51 +68,58 @@ static gboolean lv_cmp_content(const gchar *to_artist, const gchar *to_title, cb
+ #define LYR_ENDIN "<!--"
+ #define LYR_INSTRUMENTAL "/Category:Instrumental"
+ 
+-GList *parse_result_page(GlyrQuery *query, GlyrMemCache *to_parse)
++GList * parse_result_page (GlyrQuery * query, GlyrMemCache * to_parse)
+ {
+-    GList *result_list = NULL;
+-    gchar *node = to_parse->data;
+-    while(continue_search(g_list_length(result_list), query) && (node = strstr(node, LYR_NODE))) {
++    GList * result_list = NULL;
++    gchar * node = to_parse->data;
++    while (continue_search (g_list_length (result_list),query) && (node = strstr (node,LYR_NODE) ) )
++    {
+         node += (sizeof LYR_NODE);
+ 
+         bool is_instrumental = strstr(node, LYR_INSTRUMENTAL) != NULL;
+-        gchar *lyr = get_search_value(node, LYR_BEGIN, LYR_ENDIN);
+-        gchar *beautiness_test = beautify_string(lyr);
+-        if(is_instrumental || (beautiness_test != NULL && beautiness_test[0])) {
+-            if(is_instrumental || (lyr != NULL && strstr(lyr, BAD_STRING) == NULL && strstr(lyr, EXTERNAL_LINKS) == NULL)) {
+-                GlyrMemCache *result = DL_init();
+-                if(is_instrumental) {
++        gchar * lyr = get_search_value (node,LYR_BEGIN,LYR_ENDIN);
++        gchar * beautiness_test = beautify_string (lyr);
++        if (is_instrumental || (beautiness_test != NULL && beautiness_test[0]))
++        {
++            if (is_instrumental || (lyr != NULL && strstr (lyr,BAD_STRING) == NULL && strstr (lyr,EXTERNAL_LINKS) == NULL))
++            {
++                GlyrMemCache * result = DL_init();
++                if(is_instrumental) 
+                     result->data = g_strdup("Instrumental");
+-                } else {
++                else
+                     result->data = lyr;
+-                }
+ 
+-                result->size = strlen(result->data);
+-                result->dsrc = g_strdup(to_parse->dsrc);
+-                result_list  = g_list_prepend(result_list, result);
++                result->size = strlen (result->data);
++                result->dsrc = g_strdup (to_parse->dsrc);
++                result_list  = g_list_prepend (result_list,result);
+             }
+-        } else {
+-            g_free(lyr);
+         }
+-        g_free(beautiness_test);
++        else
++        {
++            g_free (lyr);
++        }
++        g_free (beautiness_test);
+     }
+     return result_list;
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *lyrics_lyricswiki_parse(cb_object *capo)
++static GList * lyrics_lyricswiki_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    if(strstr(capo->cache->data, NOT_FOUND) == NULL && lv_cmp_content(strstr(capo->cache->data, "<artist>"), strstr(capo->cache->data, "<song>"), capo)) {
+-        gchar *wiki_page_url = get_search_value(capo->cache->data, "<url>", "</url>");
+-        if(wiki_page_url != NULL) {
+-            GlyrMemCache *new_cache = download_single(wiki_page_url, capo->s, NULL);
+-            if(new_cache != NULL) {
+-                result_list = parse_result_page(capo->s, new_cache);
+-                DL_free(new_cache);
++    GList * result_list = NULL;
++    if (strstr (capo->cache->data,NOT_FOUND) == NULL && lv_cmp_content (strstr (capo->cache->data,"<artist>"),strstr (capo->cache->data,"<song>"),capo) )
++    {
++        gchar * wiki_page_url = get_search_value (capo->cache->data,"<url>","</url>");
++        if (wiki_page_url != NULL)
++        {
++            GlyrMemCache * new_cache = download_single (wiki_page_url,capo->s,NULL);
++            if (new_cache != NULL)
++            {
++                result_list = parse_result_page (capo->s,new_cache);
++                DL_free (new_cache);
+             }
+-            g_free(wiki_page_url);
++            g_free (wiki_page_url);
+         }
+     }
+     return result_list;
+@@ -116,7 +127,8 @@ static GList *lyrics_lyricswiki_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_lyricswiki_src = {
++MetaDataSource lyrics_lyricswiki_src =
++{
+     .name = "lyricswiki",
+     .key  = 'w',
+     .parser    = lyrics_lyricswiki_parse,
+diff --git a/lib/intern/lyrics/lyrix_at.c b/lib/intern/lyrics/lyrix_at.c
+index 3e604f2..244569d 100644
+--- a/lib/intern/lyrics/lyrix_at.c
++++ b/lib/intern/lyrics/lyrix_at.c
+@@ -20,9 +20,9 @@
+ #include "../../core.h"
+ #include "../../stringlib.h"
+ 
+-#define AT_URL "http://lyrix.at/lyrics-search/s-${artist}, ${title}, any, 321, .html"
++#define AT_URL "http://lyrix.at/lyrics-search/s-${artist},,${title},,any,1321,0.html"
+ 
+-const char *lyrics_lyrixat_url(GlyrQuery *settings)
++const char * lyrics_lyrixat_url (GlyrQuery * settings)
+ {
+     return AT_URL;
+ }
+@@ -38,59 +38,70 @@ const char *lyrics_lyrixat_url(GlyrQuery *settings)
+ 
+ /////////////////////////////////
+ 
+-static void parse_lyrics_page(const gchar *url, GList **result_list, cb_object *capo)
++static void parse_lyrics_page (const gchar * url, GList ** result_list, cb_object * capo)
+ {
+-    GlyrMemCache *lyrcache = download_single(url, capo->s, "<!-- eBay Relevance Ad -->");
+-    if(lyrcache != NULL) {
+-        gchar *lyr_begin = strstr(lyrcache->data, LYRIC_BEGIN);
+-        if(lyr_begin != NULL) {
+-            gchar *lyr_endin = strstr(lyr_begin, "</div>");
+-            if(lyr_endin != NULL) {
+-                gchar *lyrics = copy_value(lyr_begin, lyr_endin);
+-                if(lyrics != NULL) {
+-                    GlyrMemCache *result = DL_init();
+-                    result->data = strreplace(lyrics, "<br />", "");
+-                    result->size = strlen(result->data);
+-                    result->dsrc = g_strdup(url);
+-                    *result_list = g_list_prepend(*result_list, result);
++    GlyrMemCache * lyrcache = download_single (url,capo->s,"<!-- eBay Relevance Ad -->");
++    if (lyrcache != NULL)
++    {
++        gchar * lyr_begin = strstr (lyrcache->data,LYRIC_BEGIN);
++        if (lyr_begin != NULL)
++        {
++            gchar * lyr_endin = strstr (lyr_begin,"</div>");
++            if (lyr_endin != NULL)
++            {
++                gchar * lyrics = copy_value (lyr_begin,lyr_endin);
++                if (lyrics != NULL)
++                {
++                    GlyrMemCache * result = DL_init();
++                    result->data = strreplace (lyrics,"<br />","");
++                    result->size = strlen (result->data);
++                    result->dsrc = g_strdup (url);
++                    *result_list = g_list_prepend (*result_list,result);
+                 }
+-                g_free(lyrics);
++                g_free (lyrics);
+             }
+         }
+-        DL_free(lyrcache);
++        DL_free (lyrcache);
+     }
+ }
+ 
+ /////////////////////////////////
+ 
+-GList *lyrics_lyrixat_parse(cb_object *capo)
++GList * lyrics_lyrixat_parse (cb_object * capo)
+ {
+     /* lyrix.at does not offer any webservice -> use the searchfield to get some results */
+-    GList *result_list = NULL;
+-    gchar *search_begin_tag = capo->cache->data;
++    GList * result_list = NULL;
++    gchar * search_begin_tag = capo->cache->data;
+     gint ctr = 0;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s) && (search_begin_tag = strstr(search_begin_tag + 1, SEARCH_START_TAG)) && MAX_TRIES >= ctr++) {
+-        gchar *url_tag = search_begin_tag;
+-        url_tag = strstr(url_tag, URL_TAG_BEGIN);
+-        if(url_tag != NULL) {
+-            gchar *title_tag = strstr(url_tag, URL_TAG_ENDIN);
+-            if(title_tag) {
+-                gchar *title_end = strstr(title_tag, TITLE_END);
+-                if(title_end != NULL) {
++    while (continue_search (g_list_length (result_list),capo->s) && (search_begin_tag = strstr (search_begin_tag+1,SEARCH_START_TAG) ) && MAX_TRIES >= ctr++)
++    {
++        gchar * url_tag = search_begin_tag;
++        url_tag = strstr (url_tag,URL_TAG_BEGIN);
++        if (url_tag != NULL)
++        {
++            gchar * title_tag = strstr (url_tag,URL_TAG_ENDIN);
++            if (title_tag)
++            {
++                gchar * title_end = strstr (title_tag,TITLE_END);
++                if (title_end != NULL)
++                {
+                     gsize tag_end_len = (sizeof URL_TAG_ENDIN) - 1;
+-                    gchar *title = copy_value(title_tag + tag_end_len, title_end);
+-                    if(title != NULL) {
+-                        if(levenshtein_strnormcmp(capo->s, title, capo->s->title) <= capo->s->fuzzyness) {
+-                            gchar *url_part = copy_value(url_tag + strlen(URL_TAG_BEGIN), title_tag);
+-                            if(url_part != NULL) {
+-                                gchar *url = g_strdup_printf("http://lyrix.at/de%s", url_part);
+-                                parse_lyrics_page(url, &result_list, capo);
+-                                g_free(url);
+-                                g_free(url_part);
++                    gchar * title = copy_value (title_tag + tag_end_len,title_end);
++                    if (title != NULL)
++                    {
++                        if (levenshtein_strnormcmp (capo->s,title,capo->s->title) <= capo->s->fuzzyness)
++                        {
++                            gchar * url_part = copy_value (url_tag+strlen (URL_TAG_BEGIN),title_tag);
++                            if (url_part != NULL)
++                            {
++                                gchar * url = g_strdup_printf ("http://lyrix.at/de%s",url_part);
++                                parse_lyrics_page (url,&result_list,capo);
++                                g_free (url);
++                                g_free (url_part);
+                             }
+                         }
+-                        g_free(title);
++                        g_free (title);
+                     }
+                 }
+             }
+@@ -100,7 +111,8 @@ GList *lyrics_lyrixat_parse(cb_object *capo)
+ }
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_lyrix_src = {
++MetaDataSource lyrics_lyrix_src =
++{
+     .name = "lyrix",
+     .key  = 'a',
+     .parser    = lyrics_lyrixat_parse,
+diff --git a/lib/intern/lyrics/magistrix.c b/lib/intern/lyrics/magistrix.c
+index 71a7ab1..46cb465 100644
+--- a/lib/intern/lyrics/magistrix.c
++++ b/lib/intern/lyrics/magistrix.c
+@@ -22,25 +22,26 @@
+ 
+ #define MG_URL "http://www.magistrix.de/lyrics/search?q=${artist}+${title}"
+ 
+-static const char *lyrics_magistrix_url(GlyrQuery *settings)
++static const char * lyrics_magistrix_url (GlyrQuery * settings)
+ {
+     return MG_URL;
+ }
+ 
+ ///////////////////////////////////
+ 
+-static GlyrMemCache *parse_lyric_page(GlyrMemCache *cache)
++static GlyrMemCache * parse_lyric_page (GlyrMemCache * cache)
+ {
+-    GlyrMemCache *result = NULL;
+-    g_return_val_if_fail(cache, NULL);
+-    g_return_val_if_fail(cache->data, NULL);
++    GlyrMemCache * result = NULL;
++    g_return_val_if_fail (cache,NULL);
++    g_return_val_if_fail (cache->data,NULL);
+ 
+-    gchar *data = get_search_value(cache->data, "id='songtext'>", "<div class='lyric-actions'>");
+-    if(data != NULL) {
++    gchar * data = get_search_value (cache->data,"id='songtext'>","<div class='lyric-actions'>");
++    if (data != NULL)
++    {
+         result = DL_init();
+         result->data = data;
+-        result->size = strlen(data);
+-        result->dsrc = g_strdup(cache->dsrc);
++        result->size = strlen (data);
++        result->dsrc = g_strdup (cache->dsrc);
+     }
+ 
+     return result;
+@@ -54,29 +55,35 @@ static GlyrMemCache *parse_lyric_page(GlyrMemCache *cache)
+ #define SEARCH_LINK_START "–\n<a href=\""
+ #define SEARCH_LINK_END   "\" class"
+ 
+-static GList *parse_search_result_page(cb_object *capo)
++static GList * parse_search_result_page (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    char *first_result = strstr(capo->cache->data, SEARCH_FIRST_RESULT);
+-    if(first_result != NULL) {
+-        char *end_of_results = strstr(first_result + sizeof(SEARCH_FIRST_RESULT), SEARCH_LAST_RESULT);
+-        if(end_of_results) {
+-            char *node = first_result;
+-            while((node = strstr(node + sizeof(SEARCH_NODE), SEARCH_NODE))
+-                    && continue_search(g_list_length(result_list), capo->s)) {
+-                char *new_url = get_search_value(node, SEARCH_LINK_START, SEARCH_LINK_END);
+-                if(new_url != NULL) {
+-                    char *full_url = g_strdup_printf("www.magistrix.de%s", new_url);
+-                    GlyrMemCache *lyrics_page = download_single(full_url, capo->s, NULL);
+-                    if(lyrics_page) {
+-                        GlyrMemCache *item = parse_lyric_page(lyrics_page);
+-                        if(item != NULL) {
+-                            result_list = g_list_prepend(result_list, item);
++    GList * result_list = NULL;
++    char * first_result = strstr (capo->cache->data, SEARCH_FIRST_RESULT);
++    if (first_result != NULL)
++    {
++        char * end_of_results = strstr (first_result + sizeof (SEARCH_FIRST_RESULT), SEARCH_LAST_RESULT);
++        if (end_of_results)
++        {
++            char * node = first_result;
++            while ( (node = strstr (node + sizeof (SEARCH_NODE), SEARCH_NODE) )
++                    && continue_search (g_list_length (result_list), capo->s) )
++            {
++                char * new_url = get_search_value (node, SEARCH_LINK_START, SEARCH_LINK_END);
++                if (new_url != NULL)
++                {
++                    char * full_url = g_strdup_printf ("www.magistrix.de%s", new_url);
++                    GlyrMemCache * lyrics_page = download_single (full_url, capo->s, NULL);
++                    if (lyrics_page)
++                    {
++                        GlyrMemCache * item = parse_lyric_page (lyrics_page);
++                        if (item != NULL)
++                        {
++                            result_list = g_list_prepend (result_list, item);
+                         }
+-                        DL_free(lyrics_page);
++                        DL_free (lyrics_page);
+                     }
+-                    g_free(new_url);
+-                    g_free(full_url);
++                    g_free (new_url);
++                    g_free (full_url);
+                 }
+             }
+         }
+@@ -86,18 +93,23 @@ static GList *parse_search_result_page(cb_object *capo)
+ 
+ ///////////////////////////////////
+ 
+-static GList *lyrics_magistrix_parse(cb_object *capo)
++static GList * lyrics_magistrix_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    if(strstr(capo->cache->data, "Es wurden keine Songtexte gefunden") == NULL) {      /* "No songtext" page? */
+-        if(strstr(capo->cache->data, "<title>Songtext-Suche</title>") == NULL) {      /* Are we not on the search result page? */
+-            GlyrMemCache *result = parse_lyric_page(capo->cache);
+-            if(result != NULL) {
+-                result_list = g_list_prepend(result_list, result);
++    GList * result_list = NULL;
++    if (strstr (capo->cache->data,"Es wurden keine Songtexte gefunden") == NULL) /* "No songtext" page? */
++    {
++        if (strstr (capo->cache->data,"<title>Songtext-Suche</title>") == NULL) /* Are we not on the search result page? */
++        {
++            GlyrMemCache * result = parse_lyric_page (capo->cache);
++            if (result != NULL)
++            {
++                result_list = g_list_prepend (result_list,result);
+             }
+-        } else {
++        }
++        else
++        {
+             /* Parse Searchresult page */
+-            result_list = parse_search_result_page(capo);
++            result_list = parse_search_result_page (capo);
+         }
+     }
+     return result_list;
+@@ -105,7 +117,8 @@ static GList *lyrics_magistrix_parse(cb_object *capo)
+ 
+ ///////////////////////////////////
+ 
+-MetaDataSource lyrics_magistrix_src = {
++MetaDataSource lyrics_magistrix_src =
++{
+     .name = "magistrix",
+     .key  = 'x',
+     .parser    = lyrics_magistrix_parse,
+diff --git a/lib/intern/lyrics/metallum.c b/lib/intern/lyrics/metallum.c
+index fa8b371..66349e0 100644
+--- a/lib/intern/lyrics/metallum.c
++++ b/lib/intern/lyrics/metallum.c
+@@ -31,7 +31,7 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *lyrics_metallum_url(GlyrQuery *s)
++static const gchar * lyrics_metallum_url (GlyrQuery * s)
+ {
+     return AJAX_URL;
+ }
+@@ -43,23 +43,27 @@ static const gchar *lyrics_metallum_url(GlyrQuery *s)
+ 
+ /////////////////////////////////
+ 
+-static GList *lyrics_metallum_parse(cb_object *capo)
++static GList * lyrics_metallum_parse (cb_object * capo)
+ {
+-    GList *result_items = NULL;
+-    gchar *id_start = strstr(capo->cache->data, ID_START);
+-    if(id_start != NULL) {
+-        id_start += strlen(ID_START);
+-        gchar *ID_string = copy_value(id_start, strstr(id_start, ID_END));
+-        if(ID_string != NULL) {
+-            gchar *content_url = g_strdup_printf(SUBST_URL, ID_string);
+-            if(content_url != NULL) {
+-                GlyrMemCache *content_cache = download_single(content_url, capo->s, NULL);
+-                if(content_cache != NULL && strstr(content_cache->data, BAD_STRING) == NULL) {
+-                    result_items = g_list_prepend(result_items, content_cache);
++    GList * result_items = NULL;
++    gchar * id_start = strstr (capo->cache->data,ID_START);
++    if (id_start != NULL)
++    {
++        id_start += strlen (ID_START);
++        gchar * ID_string = copy_value (id_start,strstr (id_start,ID_END) );
++        if (ID_string != NULL)
++        {
++            gchar * content_url = g_strdup_printf (SUBST_URL,ID_string);
++            if (content_url != NULL)
++            {
++                GlyrMemCache * content_cache = download_single (content_url,capo->s,NULL);
++                if (content_cache != NULL && strstr (content_cache->data,BAD_STRING) == NULL)
++                {
++                    result_items = g_list_prepend (result_items, content_cache);
+                 }
+-                g_free(content_url);
++                g_free (content_url);
+             }
+-            g_free(ID_string);
++            g_free (ID_string);
+         }
+     }
+     return result_items;
+@@ -67,7 +71,8 @@ static GList *lyrics_metallum_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_metallum_src = {
++MetaDataSource lyrics_metallum_src =
++{
+     .name = "metallum",
+     .key  = 'u',
+     .parser    = lyrics_metallum_parse,
+diff --git a/lib/intern/lyrics/metrolyrics.c b/lib/intern/lyrics/metrolyrics.c
+index b80d9a3..dbd3428 100644
+--- a/lib/intern/lyrics/metrolyrics.c
++++ b/lib/intern/lyrics/metrolyrics.c
+@@ -25,24 +25,28 @@
+ #define MAX_TRIES 5
+ 
+ // Just return URL
+-static const gchar *lyrics_metrolyrics_url(GlyrQuery *settings)
++static const gchar * lyrics_metrolyrics_url (GlyrQuery * settings)
+ {
+     return ML_URL;
+ }
+ 
+ ///////////////////////////////////
+ 
+-static void replace_from_message_inline(gchar *text)
++static void replace_from_message_inline (gchar * text)
+ {
+-    if(text != NULL) {
+-        gchar *from_msg_start = strstr(text, "[ From: ");
+-        if(from_msg_start != NULL) {
+-            while(from_msg_start[0] != '\n' && from_msg_start[0]) {
++    if (text != NULL)
++    {
++        gchar * from_msg_start = strstr (text,"[ From: ");
++        if (from_msg_start != NULL)
++        {
++            while (from_msg_start[0] != '\n' && from_msg_start[0])
++            {
+                 from_msg_start[0] = ' ';
+                 from_msg_start++;
+             }
+ 
+-            if(from_msg_start[0] == '\n') {
++            if (from_msg_start[0] == '\n')
++            {
+                 from_msg_start[0] = ' ';
+             }
+         }
+@@ -54,20 +58,24 @@ static void replace_from_message_inline(gchar *text)
+ #define LYRICS_DIV "<div id=\"lyrics-body\">"
+ #define LYRICS_END "</div>"
+ 
+-static GlyrMemCache *parse_lyrics_page(const gchar *buffer)
++static GlyrMemCache * parse_lyrics_page (const gchar * buffer)
+ {
+-    GlyrMemCache *result = NULL;
+-    if(buffer != NULL) {
+-        gchar *begin = strstr(buffer, LYRICS_DIV);
+-        if(begin != NULL) {
+-            gchar *end = strstr(begin, LYRICS_END);
+-            if(end != NULL) {
+-                gchar *lyr = copy_value(begin, end);
+-                if(lyr != NULL) {
++    GlyrMemCache * result = NULL;
++    if (buffer != NULL)
++    {
++        gchar * begin = strstr (buffer,LYRICS_DIV);
++        if (begin != NULL)
++        {
++            gchar * end = strstr (begin,LYRICS_END);
++            if (end != NULL)
++            {
++                gchar * lyr = copy_value (begin,end);
++                if (lyr != NULL)
++                {
+                     result = DL_init();
+-                    replace_from_message_inline(lyr);
++                    replace_from_message_inline (lyr);
+                     result->data = lyr;
+-                    result->size = strlen(result->data);
++                    result->size = strlen (result->data);
+                 }
+             }
+         }
+@@ -89,57 +97,61 @@ static GlyrMemCache *parse_lyrics_page(const gchar *buffer)
+         <span class="title">Die Apokalyptischen Reiter<br /><strong>Friede Sei Mit Dir Lyrics</strong></span>
+     </a>
+ 
+-    artist = get_search_value("<span class=\"title\">", <br />");
+-    title  = get_search_value("<strong>", </strong>");
++    artist = get_search_value("<span class=\"title\">","<br />");
++    title  = get_search_value("<strong>","</strong>");
+ */
+ 
+-static GList *lyrics_metrolyrics_parse(cb_object *capo)
++static GList * lyrics_metrolyrics_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *root = strstr(capo->cache->data, ROOT_NODE);
++    GList * result_list = NULL;
++    gchar * root = strstr (capo->cache->data,ROOT_NODE);
+ 
+-    if(root != NULL) {
+-        gchar *end_of_earch = strstr(root, END_OF_SEARCH);
+-        gchar *node = root;
++    if (root != NULL)
++    {
++        gchar * end_of_earch = strstr (root,END_OF_SEARCH);
++        gchar * node = root;
+ 
+         gsize tries = 0;
+         gsize nodelen = (sizeof NODE_BEGIN);
+ 
+-        while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + nodelen, NODE_BEGIN)) && tries < MAX_TRIES) {
++        while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node + nodelen,NODE_BEGIN) ) && tries < MAX_TRIES)
++        {
+             node += nodelen;
+ 
+-            gchar *m_artist = get_search_value(node, "<span class=\"title\">", "<br />");
+-            gchar *m_title  = get_search_value(node, "<strong>", " Lyrics</strong>");
++            gchar * m_artist = get_search_value (node,"<span class=\"title\">","<br />");
++            gchar * m_title  = get_search_value (node,"<strong>"," Lyrics</strong>");
+ 
+-            if(levenshtein_strnormcmp(capo->s, capo->s->title, m_title)  <= capo->s->fuzzyness &&
+-                    levenshtein_strnormcmp(capo->s, capo->s->artist, m_artist) <= capo->s->fuzzyness) {
+-                gchar *relative_url = copy_value(node, strstr(node, "\">"));
+-                if(relative_url != NULL) {
+-                    gchar *page_url = g_strdup_printf("www.metrolyrics.com/%s", relative_url);
++            if (levenshtein_strnormcmp (capo->s,capo->s->title, m_title)  <= capo->s->fuzzyness &&
++                    levenshtein_strnormcmp (capo->s,capo->s->artist,m_artist) <= capo->s->fuzzyness)
++            {
++                gchar * relative_url = copy_value (node, strstr (node,"\">") );
++                if (relative_url != NULL)
++                {
++                    gchar * page_url = g_strdup_printf ("www.metrolyrics.com/%s",relative_url);
+ 
+                     tries++;
+-                    GlyrMemCache *page_cache = download_single(page_url, capo->s, NULL);
+-
+-                    if(page_cache != NULL) {
+-                        GlyrMemCache *result = parse_lyrics_page(page_cache->data);
+-                        if(result != NULL) {
+-                            result->dsrc = g_strdup(page_url);
+-                            result_list  = g_list_prepend(result_list, result);
++                    GlyrMemCache * page_cache = download_single (page_url,capo->s,NULL);
++
++                    if (page_cache != NULL)
++                    {
++                        GlyrMemCache * result = parse_lyrics_page (page_cache->data);
++                        if (result != NULL)
++                        {
++                            result->dsrc = g_strdup (page_url);
++                            result_list  = g_list_prepend (result_list,result);
+                         }
+-                        DL_free(page_cache);
++                        DL_free (page_cache);
+                     }
+-                    g_free(page_url);
+-                    g_free(relative_url);
++                    g_free (page_url);
++                    g_free (relative_url);
+                 }
+             }
+ 
+-            g_free(m_artist);
+-            g_free(m_title);
++            g_free (m_artist);
++            g_free (m_title);
+ 
+             /* Only advertisment behind dist */
+-            if(node >= end_of_earch) {
+-                break;
+-            }
++            if (node >= end_of_earch) break;
+         }
+     }
+     return result_list;
+@@ -147,7 +159,8 @@ static GList *lyrics_metrolyrics_parse(cb_object *capo)
+ 
+ ///////////////////////////////////
+ 
+-MetaDataSource lyrics_metrolyrics_src = {
++MetaDataSource lyrics_metrolyrics_src =
++{
+     .name = "metrolyrics",
+     .key  = 'm',
+     .parser    = lyrics_metrolyrics_parse,
+diff --git a/lib/intern/lyrics/vagalume.c b/lib/intern/lyrics/vagalume.c
+index 7ffb2e2..0f7d9a9 100644
+--- a/lib/intern/lyrics/vagalume.c
++++ b/lib/intern/lyrics/vagalume.c
+@@ -29,13 +29,13 @@
+ 
+ /**
+  * Vagalume Provider written by: Felipe Bessa Coelho
+- *
++ * 
+  * https://github.com/fcoelho
+  *
+  * Many thanks.
+  */
+ 
+-static const char *lyrics_vagalume_url(GlyrQuery *s)
++static const char * lyrics_vagalume_url (GlyrQuery * s)
+ {
+     return VAGALUME_DOMAIN VAGALUME_PATH;
+ }
+@@ -49,29 +49,28 @@ static gunichar get_unichar(const char *src)
+     gint i;
+ 
+     uchar = 0;
+-    for(i = 0; i < 4; ++i) {
++    for (i = 0; i < 4; ++i) {
+         ch = src[i];
+-        if(g_ascii_isxdigit(ch)) {
++        if (g_ascii_isxdigit(ch))
+             uchar += ((gunichar) g_ascii_xdigit_value(ch) << ((3 - i) * 4));
+-        } else {
++        else
+             break;
+-        }
+     }
+ 
+     return uchar;
+ }
+ 
+-static GString *vagalume_escape_text(const char *src, int len)
++static GString * vagalume_escape_text(const char * src, int len)
+ {
+-    GString *output = g_string_sized_new(len);
++    GString * output = g_string_sized_new(len);
+ 
+-    for(int i = 0; i < len; ++i) {
+-        if(src[i] == '\\') {
++    for (int i = 0; i < len; ++i) {
++        if (src[i] == '\\') {
+             ++i;
+-            if(src[i] == 'n') {
++            if (src[i] == 'n') {
+                 output = g_string_append_c(output, '\n');
+                 continue;
+-            } else if(src[i] == 'u') {
++            } else if (src[i] == 'u') {
+                 ++i;
+                 /* this was taken from here:
+                  * https://git.gnome.org/browse/json-glib/tree/json-glib/json-scanner.c#n1116 */
+@@ -79,11 +78,11 @@ static GString *vagalume_escape_text(const char *src, int len)
+                 /* 4 characters read, the XXXX in \uXXXX, but we leave the last
+                  * increment to the for loop */
+                 i += 3;
+-                if(g_unichar_type(ucs) == G_UNICODE_SURROGATE) {
++                if (g_unichar_type(ucs) == G_UNICODE_SURROGATE) {
+                     /* read next surrogate, but first update our source string
+                      * pointer */
+                     ++i;
+-                    if('\\' == src[i++] && 'u' == src[i++]) {
++                    if ('\\' == src[i++] && 'u' == src[i++]) {
+                         gunichar ucs_lo = get_unichar(src + i);
+                         /* 6 characters read from \uXXXX: '\\', 'u' and XXXX,
+                          * but again, leave the last one to be updated by the
+@@ -104,28 +103,27 @@ static GString *vagalume_escape_text(const char *src, int len)
+     return output;
+ }
+ 
+-static gboolean found_song(const char *json, jsmntok_t *tokens, int *cur_token, int *tokens_left)
++static gboolean found_song (const char *json, jsmntok_t *tokens, int *cur_token, int *tokens_left)
+ {
+     gboolean found_key = false, song_found = false;
+ 
+     /* check "type" key to see if song was found */
+-    for(*cur_token = 0, *tokens_left = 1; *tokens_left > 0; ++ (*cur_token), -- (*tokens_left)) {
+-        jsmntok_t *token = &tokens[*cur_token];
++    for (*cur_token = 0, *tokens_left = 1; *tokens_left > 0; ++(*cur_token), --(*tokens_left)) {
++        jsmntok_t * token = &tokens[*cur_token];
+ 
+-        if(token->type == JSMN_ARRAY || token->type == JSMN_OBJECT) {
++        if (token->type == JSMN_ARRAY || token->type == JSMN_OBJECT)
+             *tokens_left += token->size;
+-        }
+ 
+-        if(token->type == JSMN_STRING) {
++        if (token->type == JSMN_STRING) {
+             size_t len = token->end - token->start;
+             const char *text_start = json + token->start;
+ 
+-            if(len == 4 && g_ascii_strncasecmp(text_start, "type", len) == 0) {
++            if (len == 4 && g_ascii_strncasecmp(text_start, "type", len) == 0) {
+                 found_key = true;
+                 continue;
+             }
+-            if(found_key) {
+-                if(len == 5 && g_ascii_strncasecmp(text_start, "exact", len) == 0) {
++            if (found_key) {
++                if (len == 5 && g_ascii_strncasecmp(text_start, "exact", len) == 0) {
+                     song_found = true;
+                     break;
+                 } else {
+@@ -136,35 +134,34 @@ static gboolean found_song(const char *json, jsmntok_t *tokens, int *cur_token,
+             }
+         }
+     }
+-
++    
+     /* we return only here to make sure tokens_left is updated at the end of
+      * the for loop (specially if we break out of it) */
+     return song_found;
+ }
+ 
+-static jsmntok_t *get_text_token(const char *json, jsmntok_t *tokens, int *cur_token, int *tokens_left)
++static jsmntok_t * get_text_token(const char *json, jsmntok_t *tokens, int *cur_token, int *tokens_left)
+ {
+     gboolean found_key = false;
+-    jsmntok_t *text_token = NULL;
++    jsmntok_t * text_token = NULL;
+ 
+     /* find the first occurrence of "text" */
+-    for(/* empty */; *tokens_left > 0; ++ (*cur_token), -- (*tokens_left)) {
+-        jsmntok_t *token = &tokens[*cur_token];
++    for (/* empty */; *tokens_left > 0; ++(*cur_token), --(*tokens_left)) {
++        jsmntok_t * token = &tokens[*cur_token];
+ 
+-        if(token->type == JSMN_ARRAY || token->type == JSMN_OBJECT) {
++        if (token->type == JSMN_ARRAY || token->type == JSMN_OBJECT)
+             *tokens_left += token->size;
+-        }
+ 
+-        if(token->type == JSMN_STRING) {
++        if (token->type == JSMN_STRING) {
+             size_t len = token->end - token->start;
+             const char *text_start = json + token->start;
+ 
+-            if(len == 4 && g_ascii_strncasecmp(text_start, "text", len) == 0) {
++            if (len == 4 && g_ascii_strncasecmp(text_start, "text", len) == 0) {
+                 found_key = true;
+                 continue;
+             }
+ 
+-            if(found_key) {
++            if (found_key) {
+                 /* this is it */
+                 text_token = token;
+                 break;
+@@ -175,9 +172,9 @@ static jsmntok_t *get_text_token(const char *json, jsmntok_t *tokens, int *cur_t
+     return text_token;
+ }
+ 
+-static GList *lyrics_vagalume_parse(cb_object *capo)
++static GList * lyrics_vagalume_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+     /* jsmn variables */
+     jsmn_parser parser;
+@@ -195,17 +192,18 @@ static GList *lyrics_vagalume_parse(cb_object *capo)
+ 
+     parse_result = jsmn_parse(&parser, json, tokens, 512);
+ 
+-    if(parse_result == JSMN_SUCCESS) {
++    if (parse_result == JSMN_SUCCESS)
++    {
+         gboolean song_found = found_song(json, tokens, &cur_token, &tokens_left);
+-        if(song_found) {
+-            jsmntok_t *text_token = get_text_token(json, tokens, &cur_token, &tokens_left);
+-            if(text_token) {
+-                const char *lyrics_start = json + text_token->start;
++        if (song_found) {
++            jsmntok_t * text_token = get_text_token(json, tokens, &cur_token, &tokens_left);
++            if (text_token) {
++                const char * lyrics_start = json + text_token->start;
+                 size_t len = text_token->end - text_token->start;
+ 
+-                GlyrMemCache *cache = DL_init();
+-                if(cache != NULL) {
+-                    GString *data = vagalume_escape_text(lyrics_start, len);
++                GlyrMemCache * cache = DL_init();
++                if (cache != NULL) {
++                    GString * data = vagalume_escape_text(lyrics_start, len);
+ 
+                     cache->data = data->str;
+                     cache->size = data->len;
+@@ -225,7 +223,8 @@ static GList *lyrics_vagalume_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource lyrics_vagalume_src = {
++MetaDataSource lyrics_vagalume_src =
++{
+     .name = "vagalume",
+     .key  = 'g',
+     .parser    = lyrics_vagalume_parse,
+diff --git a/lib/intern/musictree/musictree.c b/lib/intern/musictree/musictree.c
+index 4b5b4a1..e881ecf 100644
+--- a/lib/intern/musictree/musictree.c
++++ b/lib/intern/musictree/musictree.c
+@@ -4,19 +4,21 @@
+ #include "../../register_plugins.h"
+ 
+ //static gboolean path_go_up(char * song_dir_path);
+-static GList *find_in_musictree(const gchar *song_file_path, const gchar *regex, gint up_to, GlyrQuery *query);
+-static void foreach_file(const gchar *song_dir_path, const GRegex *cRegex, GlyrQuery *query, GList **retv_list);
++static GList * find_in_musictree (const gchar * song_file_path, const gchar * regex, gint up_to,GlyrQuery * query);
++static void foreach_file (const gchar * song_dir_path, const GRegex * cRegex, GlyrQuery * query, GList ** retv_list);
+ 
+ //---------------------------------------------------
+ 
+-static gchar *get_file_contents(const gchar *filename, gsize *len)
++static gchar * get_file_contents (const gchar * filename, gsize * len)
+ {
+-    gchar *content = NULL;
+-    GError *file_error = NULL;
+-    if(filename != NULL) {
+-        if(g_file_get_contents(filename, &content, len, &file_error) == FALSE) {
+-            glyr_message(-1, NULL, "Error while reading file '%s': %s\n", filename, file_error->message);
+-            g_error_free(file_error);
++    gchar * content = NULL;
++    GError * file_error = NULL;
++    if (filename != NULL)
++    {
++        if (g_file_get_contents (filename,&content,len,&file_error) == FALSE)
++        {
++            glyr_message (-1,NULL,"Error while reading file '%s': %s\n",filename,file_error->message);
++            g_error_free (file_error);
+         }
+     }
+     return content;
+@@ -24,12 +26,14 @@ static gchar *get_file_contents(const gchar *filename, gsize *len)
+ 
+ //---------------------------------------------------
+ 
+-static GLYR_DATA_TYPE get_data_type_from_query(GlyrQuery *query)
++static GLYR_DATA_TYPE get_data_type_from_query (GlyrQuery * query)
+ {
+     GLYR_DATA_TYPE type = GLYR_TYPE_UNKNOWN;
+-    for(GList *elem = r_getFList(); elem != NULL; elem = elem->next) {
+-        MetaDataFetcher *fetcher = elem->data;
+-        if(fetcher != NULL && fetcher->type == query->type) {
++    for (GList * elem = r_getFList(); elem != NULL; elem = elem->next)
++    {
++        MetaDataFetcher * fetcher = elem->data;
++        if (fetcher != NULL && fetcher->type == query->type)
++        {
+             type = fetcher->default_data_type;
+             break;
+         }
+@@ -39,119 +43,137 @@ static GLYR_DATA_TYPE get_data_type_from_query(GlyrQuery *query)
+ 
+ //---------------------------------------------------
+ 
+-static void file_to_cache(GList **list, GlyrQuery *query, gchar *data, gsize size)
++static void file_to_cache (GList ** list, GlyrQuery * query, gchar * data, gsize size)
+ {
+-    if(list != NULL && data != NULL) {
+-        GlyrMemCache *item = DL_init();
+-        glyr_cache_set_data(item, data, size);
+-        item->type = get_data_type_from_query(query);
+-        item->dsrc = g_strdup("musictree");
+-        item->prov = g_strdup("musictree");
+-
+-        if(TYPE_IS_IMAGE(query->type)) {
+-            item->img_format = g_strdup("jpeg");
++    if (list != NULL && data != NULL)
++    {
++        GlyrMemCache * item = DL_init();
++        glyr_cache_set_data (item,data,size);
++        item->type = get_data_type_from_query (query);
++        item->dsrc = g_strdup ("musictree");
++        item->prov = g_strdup ("musictree");
++
++        if (TYPE_IS_IMAGE (query->type) )
++        {
++            item->img_format = g_strdup ("jpeg");
+             item->is_image = TRUE;
+-        } else {
++        }
++        else
++        {
+             item->is_image = FALSE;
+         }
+ 
+-        *list = g_list_prepend(*list, item);
++        *list = g_list_prepend (*list, item);
+     }
+ }
+ 
+ //---------------------------------------------------
+ 
+-static void foreach_file(const gchar *song_dir_path, const GRegex *cRegex, GlyrQuery *query, GList **retv_list)
++static void foreach_file (const gchar * song_dir_path, const GRegex * cRegex, GlyrQuery * query, GList ** retv_list)
+ {
+-    if(song_dir_path != NULL) {
+-        GError *dir_error = NULL;
+-        GDir *song_dir = g_dir_open(song_dir_path, 0, &dir_error);
+-        if(song_dir != NULL) {
+-            const gchar *entry = NULL;
+-            while((entry = g_dir_read_name(song_dir)) != NULL) {
+-                if(regex_match_compiled(entry, cRegex) == TRUE) {
++    if (song_dir_path != NULL)
++    {
++        GError * dir_error = NULL;
++        GDir * song_dir = g_dir_open (song_dir_path,0,&dir_error);
++        if (song_dir != NULL)
++        {
++            const gchar * entry = NULL;
++            while ( (entry = g_dir_read_name (song_dir) ) != NULL)
++            {
++                if (regex_match_compiled (entry,cRegex) == TRUE)
++                {
+ 
+                     gsize size = 0;
+-                    gchar *absolute_path = g_strdup_printf("%s%c%s", song_dir_path, G_DIR_SEPARATOR, entry);
++                    gchar * absolute_path = g_strdup_printf ("%s%c%s",song_dir_path,G_DIR_SEPARATOR,entry);
+ 
+-                    if(absolute_path != NULL) {
++                    if (absolute_path != NULL)
++                    {
+                         /* Read file */
+-                        gchar *file_path = g_filename_from_utf8(absolute_path, -1, NULL, NULL, NULL);
+-                        gchar *retv = get_file_contents(file_path, &size);
+-                        g_free(file_path);
+-                        g_free(absolute_path);
++                        gchar * file_path = g_filename_from_utf8 (absolute_path, -1, NULL, NULL, NULL);
++                        gchar * retv = get_file_contents (file_path,&size);
++                        g_free (file_path);
++                        g_free (absolute_path);
+ 
+                         /* Add file to result list if not null */
+-                        file_to_cache(retv_list, query, retv, size);
++                        file_to_cache (retv_list,query,retv,size);
+ 
+                         /* Not requested more? */
+-                        if(g_list_length(*retv_list) >= (gsize) query->number) {
++                        if (g_list_length (*retv_list) >= (gsize) query->number)
+                             break;
+-                        }
+                     }
+                 }
+             }
+-            g_dir_close(song_dir);
+-        } else {
+-            glyr_message(-1, NULL, "Opening %s failed: %s\n", song_dir_path, dir_error->message);
+-            g_error_free(dir_error);
++            g_dir_close (song_dir);
++        }
++        else
++        {
++            glyr_message (-1,NULL,"Opening %s failed: %s\n",song_dir_path,dir_error->message);
++            g_error_free (dir_error);
+         }
+     }
+ }
+ 
+ //---------------------------------------------------
+ 
+-static gchar *path_go_up(char *song_dir_path)
++static gchar * path_go_up (char * song_dir_path)
+ {
+-    if(song_dir_path != NULL) {
+-        song_dir_path = g_strstrip(song_dir_path);
+-        if(g_str_has_suffix(song_dir_path, "/")) {
+-            gsize len = strlen(song_dir_path);
+-            song_dir_path[len - 1] = '\0';
++    if (song_dir_path != NULL)
++    {
++        song_dir_path = g_strstrip (song_dir_path);
++        if (g_str_has_suffix (song_dir_path, "/") )
++        {
++            gsize len = strlen (song_dir_path);
++            song_dir_path[len-1] = '\0';
+         }
+ 
+-        return g_path_get_dirname(song_dir_path);
++        return g_path_get_dirname (song_dir_path);
+     }
+     return NULL;
+ }
+ 
+ //---------------------------------------------------
+ 
+-static GList *find_in_musictree(const gchar *song_file_path, const gchar *regex, gint up_to, GlyrQuery *query)
++static GList * find_in_musictree (const gchar * song_file_path, const gchar * regex, gint up_to,GlyrQuery * query)
+ {
+-    GList *retv_list = NULL;
++    GList * retv_list = NULL;
+ 
+-    gchar *song_dir_path = NULL;
+-    if(g_file_test(song_file_path, G_FILE_TEST_IS_DIR)) {
+-        song_dir_path = g_strdup(song_file_path);
+-    } else {
+-        song_dir_path = g_path_get_dirname(song_file_path);
++    gchar * song_dir_path = NULL;
++    if (g_file_test (song_file_path,G_FILE_TEST_IS_DIR) )
++    {
++        song_dir_path = g_strdup (song_file_path);
++    }
++    else
++    {
++        song_dir_path = g_path_get_dirname (song_file_path);
+     }
+ 
+-    if(song_dir_path != NULL) {
+-        gchar *tmp = song_dir_path;
+-        song_dir_path = g_filename_from_utf8(song_dir_path, -1, NULL, NULL, NULL);
+-        g_free(tmp);
++    if (song_dir_path != NULL)
++    {
++        gchar * tmp = song_dir_path;
++        song_dir_path = g_filename_from_utf8 (song_dir_path, -1, NULL, NULL, NULL);
++        g_free (tmp);
+     }
+ 
+-    if(song_dir_path != NULL) {
++    if (song_dir_path != NULL)
++    {
+         /* Compile the regex just once */
+-        GRegex *compiled_regex = g_regex_new(regex, G_REGEX_CASELESS, 0, NULL);
+-        if(compiled_regex != NULL) {
+-            for(gint i = 0; i < up_to; ++i) {
++        GRegex * compiled_regex = g_regex_new (regex,G_REGEX_CASELESS, 0, NULL);
++        if (compiled_regex != NULL)
++        {
++            for (gint i = 0; i < up_to; ++i)
++            {
+                 /* Check every single file */
+-                foreach_file(song_dir_path, compiled_regex, query, &retv_list);
++                foreach_file (song_dir_path,compiled_regex, query, &retv_list);
+ 
+                 /* Cannot go up anymore */
+-                if((song_dir_path = path_go_up(song_dir_path)) == NULL) {
++                if ( (song_dir_path = path_go_up (song_dir_path) ) == NULL)
+                     break;
+-                }
+             }
+ 
+             /* Forgot the regex */
+-            g_regex_unref(compiled_regex);
++            g_regex_unref (compiled_regex);
+         }
+-        g_free(song_dir_path);
++        g_free (song_dir_path);
+     }
+     return retv_list;
+ }
+@@ -160,23 +182,24 @@ static GList *find_in_musictree(const gchar *song_file_path, const gchar *regex,
+ 
+ #define REGEX_ESCAPE(str)         \
+     (str != NULL) ?               \
+-    g_regex_escape_string(str, 1) \
++    g_regex_escape_string(str,-1) \
+     : NULL
+ 
+-static gchar *configure_regex(const gchar *regex, GlyrQuery *subs)
++static gchar * configure_regex (const gchar * regex, GlyrQuery * subs)
+ {
+-    gchar *correct_regex = NULL;
+-    if(regex && subs) {
++    gchar * correct_regex = NULL;
++    if (regex && subs)
++    {
+         GlyrQuery temp;
+-        temp.artist = REGEX_ESCAPE(subs->artist);
+-        temp.album  = REGEX_ESCAPE(subs->album);
+-        temp.title  = REGEX_ESCAPE(subs->title);
++        temp.artist = REGEX_ESCAPE (subs->artist);
++        temp.album  = REGEX_ESCAPE (subs->album);
++        temp.title  = REGEX_ESCAPE (subs->title);
+ 
+-        correct_regex = prepare_url(regex, &temp, FALSE);
++        correct_regex = prepare_url (regex,&temp,FALSE);
+ 
+-        g_free(temp.artist);
+-        g_free(temp.album);
+-        g_free(temp.title);
++        g_free (temp.artist);
++        g_free (temp.album );
++        g_free (temp.title );
+     }
+     return correct_regex;
+ }
+@@ -186,7 +209,7 @@ static gchar *configure_regex(const gchar *regex, GlyrQuery *subs)
+ 
+ /* PROVIDER STUFF */
+ 
+-static const gchar *musictree_provider_url(GlyrQuery *query)
++static const gchar * musictree_provider_url (GlyrQuery * query)
+ {
+     /* Flag this as a Offline provider */
+     return OFFLINE_PROVIDER;
+@@ -194,15 +217,16 @@ static const gchar *musictree_provider_url(GlyrQuery *query)
+ 
+ //---------------------------------------------------
+ 
+-static GList *musictree_provider_parse(cb_object *capo)
++static GList * musictree_provider_parse (cb_object * capo)
+ {
+-    GList *retv_list = NULL;
++    GList * retv_list = NULL;
+ 
+     gint recurse_depth;
+-    const gchar *search_regex = NULL;
++    const gchar * search_regex = NULL;
+ 
+     /* The actual regexes are shamelessly ripped of GMPC */
+-    switch(capo->s->type) {
++    switch (capo->s->type)
++    {
+     case GLYR_GET_COVERART:
+         search_regex = "^(folder|front|album|AlbumArt|cover|.*${album}.*)\\.(jpg|png|jpeg|gif)";
+         recurse_depth = 3;
+@@ -226,18 +250,20 @@ static GList *musictree_provider_parse(cb_object *capo)
+         break;
+     }
+ 
+-    if(search_regex != NULL && capo->s->musictree_path != NULL) {
+-        gchar *correct_regex = configure_regex(search_regex, capo->s);
+-        retv_list = find_in_musictree(capo->s->musictree_path, correct_regex, recurse_depth, capo->s);
++    if (search_regex != NULL && capo->s->musictree_path != NULL)
++    {
++        gchar * correct_regex = configure_regex (search_regex,capo->s);
++        retv_list = find_in_musictree (capo->s->musictree_path,correct_regex,recurse_depth,capo->s);
+ 
+-        g_free(correct_regex);
++        g_free (correct_regex);
+     }
+     return retv_list;
+ }
+ 
+ //---------------------------------------------------
+ 
+-MetaDataSource musictree_provider_src = {
++MetaDataSource musictree_provider_src =
++{
+     .name = "musictree",
+     .key  = 't',
+     .parser    = musictree_provider_parse,
+diff --git a/lib/intern/photos.c b/lib/intern/photos.c
+index 17b8de9..c25aa86 100644
+--- a/lib/intern/photos.c
++++ b/lib/intern/photos.c
+@@ -23,15 +23,16 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_img_finalizer(s, list, stop_me, GLYR_TYPE_ARTIST_PHOTO, result_list);
++    return generic_img_finalizer (s,list,stop_me,GLYR_TYPE_ARTIST_PHOTO,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_artistphotos = {
++MetaDataFetcher glyrFetcher_artistphotos =
++{
+     .name = "artistphoto",
+     .type = GLYR_GET_ARTIST_PHOTOS,
+     .default_data_type = GLYR_TYPE_ARTIST_PHOTO,
+diff --git a/lib/intern/photos/bbcmusic.c b/lib/intern/photos/bbcmusic.c
+index 8295133..a88ada3 100644
+--- a/lib/intern/photos/bbcmusic.c
++++ b/lib/intern/photos/bbcmusic.c
+@@ -31,42 +31,47 @@
+ #define CONTENT_BEGIN "<image><src>"
+ #define CONTENT_ENDIN "</src></image>"
+ 
+-static GlyrMemCache *parse_bbc_xml(GlyrMemCache *input)
++static GlyrMemCache * parse_bbc_xml (GlyrMemCache * input)
+ {
+-    GlyrMemCache *result = NULL;
+-    char *content = get_search_value(input->data, CONTENT_BEGIN, CONTENT_ENDIN);
+-    if(content != NULL) {
++    GlyrMemCache * result = NULL;
++    char * content = get_search_value (input->data, CONTENT_BEGIN, CONTENT_ENDIN);
++    if (content != NULL)
++    {
+         result = DL_init();
+         result->data = content;
+-        result->dsrc = g_strdup(input->dsrc);
+-        result->size = strlen(content);
++        result->dsrc = g_strdup (input->dsrc);
++        result->size = strlen (content);
+     }
+     return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-static const char *photos_bbcmusic_url(GlyrQuery *qry)
++static const char * photos_bbcmusic_url (GlyrQuery * qry)
+ {
+     return "http://musicbrainz.org/ws/2/artist?query=artist:${artist}";
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *photos_bbcmusic_parse(cb_object *capo)
++static GList * photos_bbcmusic_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+-    char *mbid = mbid_parse_data(capo->cache, "artist", "name", capo->s->artist, capo->s);
++    char * mbid = mbid_parse_data (capo->cache, "artist", "name", capo->s->artist, capo->s);
+ 
+-    if(mbid != NULL) {
+-        char *full_url = g_strdup_printf(API_ROOT, mbid);
+-        if(full_url != NULL) {
+-            GlyrMemCache *bbc_xml = download_single(full_url, capo->s, NULL);
+-            if(bbc_xml != NULL) {
+-                GlyrMemCache *item = parse_bbc_xml(bbc_xml);
+-                if(item != NULL) {
+-                    result_list = g_list_prepend(result_list, item);
++    if (mbid != NULL)
++    {
++        char * full_url = g_strdup_printf (API_ROOT, mbid);
++        if (full_url != NULL)
++        {
++            GlyrMemCache * bbc_xml = download_single (full_url, capo->s, NULL);
++            if (bbc_xml != NULL)
++            {
++                GlyrMemCache * item = parse_bbc_xml (bbc_xml);
++                if (item != NULL)
++                {
++                    result_list = g_list_prepend (result_list, item);
+                 }
+                 DL_free(bbc_xml);
+             }
+@@ -80,7 +85,8 @@ static GList *photos_bbcmusic_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource photos_bbcmusic_src = {
++MetaDataSource photos_bbcmusic_src =
++{
+     .name      = "bbcmusic",
+     .key       = 'b',
+     .free_url  = false,
+diff --git a/lib/intern/photos/discogs.c b/lib/intern/photos/discogs.c
+index 6814398..a9d73e5 100644
+--- a/lib/intern/photos/discogs.c
++++ b/lib/intern/photos/discogs.c
+@@ -52,39 +52,42 @@
+ #define THUMB_SUBDNOE "\"thumb\": \""
+ #define FOLLR_SUBNODE "\"uri\": \""
+ #define NODE THUMB_SUBDNOE
+-#define ENDOF_SUBNODE "\", 
++#define ENDOF_SUBNODE "\","
+ 
+ 
+ /////////////////////////////////////////////////////
+ 
+-static bool check_artist_album(GlyrQuery *q, const char *artist)
++static bool check_artist_album (GlyrQuery * q, const char * artist)
+ {
+-    return levenshtein_strnormcmp(q, q->artist, artist) <= q->fuzzyness;
++    return levenshtein_strnormcmp (q,q->artist, artist) <= q->fuzzyness;
+ 
+ }
+ 
+ /////////////////////////////////////////////////////
+ 
+-static GlyrMemCache *transform_url(cb_object *s, const char *url)
++static GlyrMemCache * transform_url (cb_object * s, const char * url)
+ {
+-    GlyrMemCache *rc = NULL;
+-    size_t rc_size = strlen(url);
+-    char *rc_url  = g_strdup(url);
+-
+-    if(rc_url != NULL) {
+-        char *slash = strrchr(rc_url, '/');
+-        if(slash != NULL) {
+-            char *sp = strchr(slash, '-');
+-            if(sp != NULL) {
+-                char *ep = strchr(sp + 1, '-');
++    GlyrMemCache * rc = NULL;
++    size_t rc_size = strlen (url);
++    char * rc_url  = g_strdup (url);
++
++    if (rc_url != NULL)
++    {
++        char * slash = strrchr (rc_url,'/');
++        if (slash != NULL)
++        {
++            char * sp = strchr (slash,'-');
++            if (sp != NULL)
++            {
++                char * ep = strchr (sp + 1, '-');
+                 if(ep != NULL) {
+                     size_t rest_len = rc_size - (ep - rc_url) + 1;
+-                    memmove(sp, ep, rest_len);
++                    memmove (sp,ep,rest_len);
+ 
+                     rc = DL_init();
+-                    rc->data = (char *) rc_url;
+-                    rc->size = strlen(url);
+-                    rc->dsrc = g_strdup(s->url);
++                    rc->data = (char*) rc_url;
++                    rc->size = strlen (url);
++                    rc->dsrc = g_strdup (s->url);
+                 }
+             }
+         }
+@@ -96,37 +99,41 @@ static GlyrMemCache *transform_url(cb_object *s, const char *url)
+ /////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////
+ 
+-static const char *photos_discogs_url(GlyrQuery *q)
++static const char * photos_discogs_url (GlyrQuery * q)
+ {
+     return API_ENTRY;
+ }
+ 
+ /////////////////////////////////////////////////////
+ 
+-static GList *photos_discogs_parse(cb_object *capo)
++static GList * photos_discogs_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+     /* Jump to the very first node 'directly' */
+-    gchar *node = capo->cache->data;
++    gchar * node = capo->cache->data;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s)
+-            && (node = strstr(node + (sizeof NODE) - 1, NODE)) != NULL) {
++    while (continue_search (g_list_length (result_list),capo->s)
++            && (node = strstr (node + (sizeof NODE) - 1,NODE) ) != NULL)
++    {
+ 
+-        char *artist_album = get_search_value(node, TITLE_SUBNODE, ENDOF_SUBNODE);
+-        if(artist_album && check_artist_album(capo->s, artist_album)) {
++        char * artist_album = get_search_value (node,TITLE_SUBNODE,ENDOF_SUBNODE);
++        if (artist_album && check_artist_album (capo->s,artist_album) )
++        {
+ 
+-            char *thumb_url = get_search_value(node, THUMB_SUBDNOE, ENDOF_SUBNODE);
+-            if(thumb_url) {
++            char * thumb_url = get_search_value (node,THUMB_SUBDNOE,ENDOF_SUBNODE);
++            if (thumb_url)
++            {
+ 
+-                GlyrMemCache *p = transform_url(capo, thumb_url);
+-                if(p != NULL) {
+-                    result_list = g_list_prepend(result_list, p);
++                GlyrMemCache * p = transform_url (capo,thumb_url);
++                if (p != NULL)
++                {
++                    result_list = g_list_prepend (result_list,p);
+                 }
+-                g_free(thumb_url);
++                g_free (thumb_url);
+             }
+         }
+-        g_free(artist_album);
++        g_free (artist_album);
+     }
+ 
+     return result_list;
+@@ -134,7 +141,8 @@ static GList *photos_discogs_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource photos_discogs_src = {
++MetaDataSource photos_discogs_src =
++{
+     .name      = "discogs",
+     .key       = 'd',
+     .parser    = photos_discogs_parse,
+diff --git a/lib/intern/photos/flickr.c b/lib/intern/photos/flickr.c
+index 55c2c87..03001a6 100644
+--- a/lib/intern/photos/flickr.c
++++ b/lib/intern/photos/flickr.c
+@@ -25,55 +25,59 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *photos_flickr_url(GlyrQuery *settings)
++static const gchar * photos_flickr_url (GlyrQuery * settings)
+ {
+-    if(settings->img_max_size <= 175 && settings->img_max_size != -1) {
++    if (settings->img_max_size <= 175 && settings->img_max_size != -1)
++    {
+         return NULL;
+     }
+ 
+-    gchar *url = g_strdup_printf("http://api.flickr.com/services/rest/"
+-                                 "?method=flickr.photos.search&"
+-                                 "api_key="API_KEY_FLICKR"&"
+-                                 "tags=%s&"
+-                                 "media=photos&"
+-                                 "group_id=29928242 at N00&"
+-                                 "content_type=6&"
+-                                 "sort=interestingness-asc&"
+-                                 "per_page=%d",
+-                                 settings->artist,
+-                                 settings->number
+-                                );
++    gchar * url = g_strdup_printf ("http://api.flickr.com/services/rest/"
++                                   "?method=flickr.photos.search&"
++                                   "api_key="API_KEY_FLICKR"&"
++                                   "tags=%s&"
++                                   "media=photos&"
++                                   "group_id=29928242 at N00&"
++                                   "content_type=6&"
++                                   "sort=interestingness-asc&"
++                                   "per_page=%d",
++                                   settings->artist,
++                                   settings->number
++                                  );
+     return url;
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *photos_flickr_parse(cb_object *capo)
++static GList * photos_flickr_parse (cb_object * capo)
+ {
+-    gchar *ph_begin = capo->cache->data;
+-    GList *result_list = NULL;
++    gchar * ph_begin = capo->cache->data;
++    GList * result_list = NULL;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s) && (ph_begin = strstr(ph_begin, LINE_BEGIN)) != NULL) {
+-        gchar *ph_end = strstr(ph_begin, LINE_ENDIN);
+-        if(ph_end != NULL) {
+-            gchar *linebf = copy_value(ph_begin, ph_end);
+-            if(linebf != NULL) {
+-                gchar *ID = get_search_value(linebf, "id=\"", "\"");
+-                gchar *SC = get_search_value(linebf, "secret=\"", "\"");
+-                gchar *SV = get_search_value(linebf, "server=\"", "\"");
+-                gchar *FR = get_search_value(linebf, "farm=\"", "\"");
++    while (continue_search (g_list_length (result_list),capo->s) && (ph_begin=strstr (ph_begin,LINE_BEGIN) ) != NULL)
++    {
++        gchar * ph_end = strstr (ph_begin,LINE_ENDIN);
++        if (ph_end != NULL)
++        {
++            gchar * linebf = copy_value (ph_begin,ph_end);
++            if (linebf != NULL)
++            {
++                gchar * ID = get_search_value (linebf, "id=\"","\"");
++                gchar * SC = get_search_value (linebf, "secret=\"","\"");
++                gchar * SV = get_search_value (linebf, "server=\"","\"");
++                gchar * FR = get_search_value (linebf, "farm=\"","\"");
+ 
+-                GlyrMemCache *cache = DL_init();
+-                cache->data = g_strdup_printf("http://farm%s.static.flickr.com/%s/%s_%s.jpg", FR, SV, ID, SC);
+-                cache->size = strlen(cache->data);
+-                result_list = g_list_prepend(result_list, cache);
++                GlyrMemCache * cache = DL_init();
++                cache->data = g_strdup_printf ("http://farm%s.static.flickr.com/%s/%s_%s.jpg",FR,SV,ID,SC);
++                cache->size = strlen (cache->data);
++                result_list = g_list_prepend (result_list,cache);
+ 
+-                g_free(ID);
+-                g_free(SC);
+-                g_free(SV);
+-                g_free(FR);
++                g_free (ID);
++                g_free (SC);
++                g_free (SV);
++                g_free (FR);
+ 
+-                g_free(linebf);
++                g_free (linebf);
+             }
+         }
+     }
+@@ -82,7 +86,8 @@ static GList *photos_flickr_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource photos_flickr_src = {
++MetaDataSource photos_flickr_src =
++{
+     .name = "flickr",
+     .key  = 'f',
+     .parser    = photos_flickr_parse,
+diff --git a/lib/intern/photos/google.c b/lib/intern/photos/google.c
+index 48b8946..4d65095 100644
+--- a/lib/intern/photos/google.c
++++ b/lib/intern/photos/google.c
+@@ -23,27 +23,29 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *photos_google_url(GlyrQuery *s)
++static const gchar * photos_google_url (GlyrQuery * s)
+ {
+-    const gchar *result = NULL;
+-    gchar *searchterm = g_strdup("${artist}+band+photos");
+-    if(searchterm != NULL) {
+-        result = generic_google_url(s, searchterm);
+-        g_free(searchterm);
++    const gchar * result = NULL;
++    gchar * searchterm = g_strdup ("${artist}+band+photos");
++    if (searchterm != NULL)
++    {
++        result = generic_google_url (s,searchterm);
++        g_free (searchterm);
+     }
+     return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-static GList *photos_google_parse(cb_object *capo)
++static GList * photos_google_parse (cb_object * capo)
+ {
+-    return generic_google_parse(capo);
++    return generic_google_parse (capo);
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource photos_google_src = {
++MetaDataSource photos_google_src =
++{
+     .name = "google",
+     .key  = 'g',
+     .parser    = photos_google_parse,
+diff --git a/lib/intern/photos/lastfm.c b/lib/intern/photos/lastfm.c
+index f764c5d..204a9b8 100644
+--- a/lib/intern/photos/lastfm.c
++++ b/lib/intern/photos/lastfm.c
+@@ -26,43 +26,49 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *photos_lastfm_url(GlyrQuery *settings)
++static const gchar * photos_lastfm_url (GlyrQuery * settings)
+ {
+     return "http://ws.audioscrobbler.com/2.0/?method=artist.getimages&autocorrect=1&artist=${artist}&api_key="API_KEY_LASTFM;
+ }
+ 
+ /////////////////////////////////
+ 
+-static gboolean size_fits(GlyrQuery *s, gchar **ref)
++static gboolean size_fits (GlyrQuery * s, gchar ** ref)
+ {
+     gboolean result = FALSE;
+-    if(ref != NULL) {
+-        gchar *search_ptr = ref[0];
+-        if(search_ptr != NULL) {
+-            search_ptr = strchr(search_ptr, '"');
++    if (ref != NULL)
++    {
++        gchar * search_ptr = ref[0];
++        if (search_ptr != NULL)
++        {
++            search_ptr = strchr (search_ptr,'"');
+ 
+             gint ratio = 0;
+-            gchar *width_string  = get_search_value(search_ptr, "width=\"", "\"");
+-            gchar *height_string = get_search_value(search_ptr, "height=\"", "\"");
+-            if(width_string && height_string) {
+-                ratio  = (strtol(width_string, NULL, 10) + strtol(height_string, NULL, 10)) / 2;
++            gchar * width_string  = get_search_value (search_ptr,"width=\"","\"");
++            gchar * height_string = get_search_value (search_ptr,"height=\"","\"");
++            if (width_string && height_string)
++            {
++                ratio  = (strtol (width_string,NULL,10) + strtol (height_string,NULL,10) ) /2;
+             }
+-            g_free(width_string);
+-            g_free(height_string);
++            g_free (width_string);
++            g_free (height_string);
+ 
+             gboolean original_size_allowed = TRUE;
+-            if(g_strstr_len(ref[0], 100, "original") != NULL) {
++            if (g_strstr_len (ref[0],100,"original") != NULL)
++            {
+                 /* Deny extremelly large images by default, except explicitely wanted */
+-                if(!(ratio >= 1000 && s->img_min_size >= 1000 && s->img_max_size == -1)) {
++                if (! (ratio >= 1000 && s->img_min_size >= 1000 && s->img_max_size == -1) )
++                {
+                     original_size_allowed = FALSE;
+                 }
+             }
+ 
+-            if(size_is_okay(ratio, s->img_min_size, s->img_max_size) == TRUE && original_size_allowed == TRUE) {
++            if (size_is_okay (ratio, s->img_min_size, s->img_max_size) == TRUE && original_size_allowed == TRUE)
++            {
+                 result = TRUE;
+             }
+ 
+-            search_ptr = strchr(search_ptr, '>');
++            search_ptr = strchr (search_ptr,'>');
+         }
+         ref[0] = search_ptr + 1;
+     }
+@@ -71,22 +77,26 @@ static gboolean size_fits(GlyrQuery *s, gchar **ref)
+ 
+ /////////////////////////////////
+ 
+-static GList *photos_lastfm_parse(cb_object *capo)
++static GList * photos_lastfm_parse (cb_object * capo)
+ {
+-    gchar *root = capo->cache->data;
+-    GList *result_list = NULL;
++    gchar * root = capo->cache->data;
++    GList * result_list = NULL;
+ 
+-    while(continue_search(g_list_length(result_list), capo->s) && (root = strstr(root, SIZE_FO)) != NULL) {
+-        gchar *begin = root + strlen(SIZE_FO);
+-        if(size_fits(capo->s, &begin) == TRUE) {
+-            gchar *endin = strstr(begin, URL_ENDIN);
+-            if(endin != NULL) {
+-                gchar *urlb = copy_value(begin, endin);
+-                if(urlb != NULL) {
+-                    GlyrMemCache *cache = DL_init();
++    while (continue_search (g_list_length (result_list),capo->s) && (root = strstr (root,SIZE_FO) ) != NULL)
++    {
++        gchar * begin = root + strlen (SIZE_FO);
++        if (size_fits (capo->s,&begin) == TRUE)
++        {
++            gchar * endin = strstr (begin,URL_ENDIN);
++            if (endin != NULL)
++            {
++                gchar * urlb = copy_value (begin,endin);
++                if (urlb != NULL)
++                {
++                    GlyrMemCache * cache = DL_init();
+                     cache->data = urlb;
+-                    cache->size = strlen(urlb);
+-                    result_list = g_list_prepend(result_list, cache);
++                    cache->size = strlen (urlb);
++                    result_list = g_list_prepend (result_list,cache);
+                 }
+             }
+         }
+@@ -97,7 +107,8 @@ static GList *photos_lastfm_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource photos_lastfm_src = {
++MetaDataSource photos_lastfm_src =
++{
+     .name = "lastfm",
+     .key  = 'l',
+     .parser    = photos_lastfm_parse,
+diff --git a/lib/intern/photos/picsearch.c b/lib/intern/photos/picsearch.c
+index b739257..5bafc0c 100644
+--- a/lib/intern/photos/picsearch.c
++++ b/lib/intern/photos/picsearch.c
+@@ -23,20 +23,21 @@
+ 
+ /////////////////////////////////
+ 
+-static const gchar *photos_picsearch_url(GlyrQuery *s)
++static const gchar * photos_picsearch_url (GlyrQuery * s)
+ {
+-    return generic_picsearch_url(s, "${artist}+band");
++    return generic_picsearch_url (s,"${artist}+band");
+ }
+ 
+ /////////////////////////////////
+-static GList *photos_picsearch_parse(cb_object *capo)
++static GList * photos_picsearch_parse (cb_object * capo)
+ {
+-    return generic_picsearch_parse(capo);
++    return generic_picsearch_parse (capo);
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource photos_picsearch_src = {
++MetaDataSource photos_picsearch_src =
++{
+     .name      = "picsearch",
+     .key       = 'p',
+     .parser    = photos_picsearch_parse,
+diff --git a/lib/intern/photos/rhapsody.c b/lib/intern/photos/rhapsody.c
+index 12a54e1..bc21516 100644
+--- a/lib/intern/photos/rhapsody.c
++++ b/lib/intern/photos/rhapsody.c
+@@ -23,18 +23,21 @@
+ 
+ /////////////////////////////////
+ 
+-static gchar *translate_string(gchar *string)
++static gchar * translate_string (gchar * string)
+ {
+-    gchar *result = NULL;
+-    if(string != NULL) {
+-        gchar *beautiful = beautify_string(string);
+-        if(beautiful != NULL) {
+-            gchar *downcase = g_utf8_strdown(beautiful, -1);
+-            if(downcase != NULL) {
+-                result = translate_umlauts(downcase);
+-                g_free(downcase);
++    gchar * result = NULL;
++    if (string != NULL)
++    {
++        gchar * beautiful = beautify_string (string);
++        if (beautiful != NULL)
++        {
++            gchar * downcase = g_utf8_strdown (beautiful,-1);
++            if (downcase != NULL)
++            {
++                result = translate_umlauts (downcase);
++                g_free (downcase);
+             }
+-            g_free(beautiful);
++            g_free (beautiful);
+         }
+     }
+     return result;
+@@ -42,35 +45,39 @@ static gchar *translate_string(gchar *string)
+ 
+ /////////////////////////////////
+ 
+-static const gchar *photos_rhapsody_url(GlyrQuery *query)
++static const gchar * photos_rhapsody_url (GlyrQuery * query)
+ {
+-    gchar *result = NULL;
+-    if(query->img_min_size <= 135) {
+-        gchar *corrected_artist = translate_string(query->artist);
+-        if(corrected_artist != NULL) {
+-            result = g_strdup_printf("http://feeds.rhapsody.com/%s/data.xml", corrected_artist);
++    gchar * result = NULL;
++    if (query->img_min_size <= 135)
++    {
++        gchar * corrected_artist = translate_string (query->artist);
++        if (corrected_artist != NULL)
++        {
++            result = g_strdup_printf ("http://feeds.rhapsody.com/%s/data.xml",corrected_artist);
+         }
+-        g_free(corrected_artist);
++        g_free (corrected_artist);
+     }
+     return result;
+ }
+ 
+ /////////////////////////////////
+ 
+-static gboolean check_size(GlyrQuery *s, gchar *ref)
++static gboolean check_size (GlyrQuery * s, gchar * ref)
+ {
+     gboolean result = FALSE;
+-    if(ref != NULL) {
+-        gchar *width_str  = get_search_value(ref, "width=\"", "\"");
+-        gchar *height_str = get_search_value(ref, "height=\"", "\"");
+-        if(width_str && height_str) {
+-            gint width  = strtol(width_str, NULL, 10);
+-            gint height = strtol(height_str, NULL, 10);
++    if (ref != NULL)
++    {
++        gchar * width_str  = get_search_value (ref,"width=\"","\"");
++        gchar * height_str = get_search_value (ref,"height=\"","\"");
++        if (width_str && height_str)
++        {
++            gint width  = strtol (width_str, NULL,10);
++            gint height = strtol (height_str,NULL,10);
+ 
+-            result = size_is_okay((width + height) / 2 + 10, s->img_min_size, s->img_max_size);
++            result = size_is_okay ( (width+height) /2 + 10,s->img_min_size,s->img_max_size);
+         }
+-        g_free(width_str);
+-        g_free(height_str);
++        g_free (width_str);
++        g_free (height_str);
+     }
+     return result;
+ }
+@@ -81,24 +88,28 @@ static gboolean check_size(GlyrQuery *s, gchar *ref)
+ #define DELIM_END "</art>"
+ #define NODE "<img "
+ 
+-static GList *photos_rhapsody_parse(cb_object *capo)
++static GList * photos_rhapsody_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    gchar *delim_beg = strstr(capo->cache->data, DELIM_BEG);
+-    gchar *delim_end = strstr(capo->cache->data, DELIM_END);
++    GList * result_list = NULL;
++    gchar * delim_beg = strstr (capo->cache->data,DELIM_BEG);
++    gchar * delim_end = strstr (capo->cache->data,DELIM_END);
+ 
+-    if(delim_beg && delim_end) {
+-        gchar *node = delim_beg;
++    if (delim_beg && delim_end)
++    {
++        gchar * node = delim_beg;
+         gsize nd_len = (sizeof NODE) - 1;
+-        while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + nd_len, NODE)) && node < delim_end) {
++        while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node + nd_len, NODE) ) && node < delim_end)
++        {
+             node += nd_len;
+-            if(check_size(capo->s, node) == TRUE) {
+-                gchar *url = get_search_value(node, "src=\"", "\"");
+-                if(url != NULL) {
+-                    GlyrMemCache *result = DL_init();
++            if (check_size (capo->s,node) == TRUE)
++            {
++                gchar * url = get_search_value (node,"src=\"","\"");
++                if (url != NULL)
++                {
++                    GlyrMemCache * result = DL_init();
+                     result->data = url;
+-                    result->size = strlen(url);
+-                    result_list = g_list_prepend(result_list, result);
++                    result->size = strlen (url);
++                    result_list = g_list_prepend (result_list,result);
+                 }
+             }
+         }
+@@ -109,7 +120,8 @@ static GList *photos_rhapsody_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource photos_rhapsody_src = {
++MetaDataSource photos_rhapsody_src =
++{
+     .name      = "rhapsody",
+     .key       = 'r',
+     .parser    = photos_rhapsody_parse,
+diff --git a/lib/intern/photos/singerpictures.c b/lib/intern/photos/singerpictures.c
+index d21f6c7..994cee5 100644
+--- a/lib/intern/photos/singerpictures.c
++++ b/lib/intern/photos/singerpictures.c
+@@ -22,23 +22,24 @@
+ 
+ #define SPICS_BASE_URL "http://www.singerpictures.com/%s-pictures.html"
+ 
+-static const gchar *photos_singerlyrics_url(GlyrQuery *settings)
++static const gchar * photos_singerlyrics_url (GlyrQuery * settings)
+ {
+-    gchar *result_url = NULL;
+-    gchar *space_to_min_artist = strreplace(settings->artist, " ", "-");
+-    if(space_to_min_artist != NULL) {
+-        gchar *prep_artist = NULL;
+-        if(settings->normalization & GLYR_NORMALIZE_ARTIST) {
+-            prep_artist = prepare_string(space_to_min_artist, settings->normalization, TRUE);
+-        } else {
+-            prep_artist = prepare_string(space_to_min_artist, GLYR_NORMALIZE_NONE, TRUE);
++    gchar * result_url = NULL;
++    gchar * space_to_min_artist = strreplace (settings->artist," ","-");
++    if (space_to_min_artist != NULL)
++    {
++        gchar * prep_artist = NULL;
++        if(settings->normalization & GLYR_NORMALIZE_ARTIST)
++            prep_artist = prepare_string (space_to_min_artist, settings->normalization,TRUE);
++        else
++            prep_artist = prepare_string (space_to_min_artist, GLYR_NORMALIZE_NONE,TRUE);
++
++        if (prep_artist != NULL)
++        {
++            result_url = g_strdup_printf (SPICS_BASE_URL,prep_artist);
++            g_free (prep_artist);
+         }
+-
+-        if(prep_artist != NULL) {
+-            result_url = g_strdup_printf(SPICS_BASE_URL, prep_artist);
+-            g_free(prep_artist);
+-        }
+-        g_free(space_to_min_artist);
++        g_free (space_to_min_artist);
+     }
+     return result_url;
+ }
+@@ -49,39 +50,45 @@ static const gchar *photos_singerlyrics_url(GlyrQuery *settings)
+ #define SIZE_END   "<br>"
+ #define MAX_NUM_SIZE 16
+ 
+-static gboolean check_image_size(GlyrQuery *s, gchar *ref_to_img_start)
++static gboolean check_image_size (GlyrQuery * s, gchar * ref_to_img_start)
+ {
+-    if(s->img_min_size == -1 && s->img_max_size == -1) {
++    if (s->img_min_size == -1 && s->img_max_size == -1)
++    {
+         return TRUE;
+     }
+ 
+     gboolean result = FALSE;
+-    gchar *size_begin = strstr(ref_to_img_start, SIZE_BEGIN);
+-    if(size_begin != NULL) {
++    gchar * size_begin = strstr (ref_to_img_start,SIZE_BEGIN);
++    if (size_begin != NULL)
++    {
+         size_begin += (sizeof SIZE_BEGIN) - 1;
+-        gchar *size_end = strstr(size_begin, SIZE_END);
+-        if(size_end != NULL) {
+-            gchar size_buf[2][MAX_NUM_SIZE] = {{}, {}};
++        gchar * size_end = strstr (size_begin,SIZE_END);
++        if (size_end != NULL)
++        {
++            gchar size_buf[2][MAX_NUM_SIZE] = {{},{}};
+             gint copy_to = 0, offset = 0;
+ 
+             /* Parse the 'x_one X y_one' field */
+-            for(gint it = 0; &size_begin[it] != size_end && it < MAX_NUM_SIZE; it++) {
+-                if(size_begin[it] == 'X') {
++            for (gint it = 0; &size_begin[it] != size_end && it < MAX_NUM_SIZE; it++)
++            {
++                if (size_begin[it] == 'X')
++                {
+                     copy_to = 1;
+                     offset  = 0;
+-                } else {
++                }
++                else
++                {
+                     size_buf[copy_to][offset++] = size_begin[it];
+                 }
+             }
+ 
+-            gint x = g_ascii_strtoll(size_buf[0], NULL, 10);
+-            gint y = g_ascii_strtoll(size_buf[0], NULL, 10);
+-            gint ratio = (x + y) / 2;
++            gint x = g_ascii_strtoll (size_buf[0],NULL,10);
++            gint y = g_ascii_strtoll (size_buf[0],NULL,10);
++            gint ratio = (x+y) /2;
+ 
+-            if((s->img_min_size == -1 || ratio >= s->img_min_size) &&
+-                    (s->img_max_size == -1 || ratio <= s->img_max_size)) {
++            if ( (s->img_min_size == -1 || ratio >= s->img_min_size) &&
++                    (s->img_max_size == -1 || ratio <= s->img_max_size) )
+                 result = TRUE;
+-            }
+         }
+     }
+     return result;
+@@ -93,22 +100,25 @@ static gboolean check_image_size(GlyrQuery *s, gchar *ref_to_img_start)
+ #define URL_ID_START "rel=\"nofollow\"><img src='/images/pic/"
+ #define URL_ID_END   "_th."
+ 
+-static GList *photos_singerlyrics_parse(cb_object *capo)
++static GList * photos_singerlyrics_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+     gsize len = (sizeof URL_ID_START) - 1;
+-    gchar *url_id_start = capo->cache->data;
+-
+-    while((continue_search(g_list_length(result_list), capo->s) && (url_id_start = strstr(url_id_start + len, URL_ID_START)) != NULL)) {
+-        if(check_image_size(capo->s, url_id_start)) {
+-            gchar *ID = get_search_value(url_id_start, URL_ID_START, URL_ID_END);
+-            if(ID != NULL) {
+-                GlyrMemCache *item = DL_init();
+-                item->data = g_strdup_printf(FINAL_BASE_URL, ID);
+-                item->size = strlen(item->data);
+-
+-                result_list = g_list_prepend(result_list, item);
+-                g_free(ID);
++    gchar * url_id_start = capo->cache->data;
++
++    while ( (continue_search (g_list_length (result_list),capo->s) && (url_id_start = strstr (url_id_start + len,URL_ID_START) ) != NULL) )
++    {
++        if (check_image_size (capo->s, url_id_start) )
++        {
++            gchar * ID = get_search_value (url_id_start,URL_ID_START,URL_ID_END);
++            if (ID != NULL)
++            {
++                GlyrMemCache * item = DL_init();
++                item->data = g_strdup_printf (FINAL_BASE_URL,ID);
++                item->size = strlen (item->data);
++
++                result_list = g_list_prepend (result_list, item);
++                g_free (ID);
+             }
+         }
+     }
+@@ -117,7 +127,8 @@ static GList *photos_singerlyrics_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource photos_singerpictures_src = {
++MetaDataSource photos_singerpictures_src =
++{
+     .name = "singerpictures",
+     .key  = 's',
+     .parser    = photos_singerlyrics_parse,
+diff --git a/lib/intern/relations.c b/lib/intern/relations.c
+index 3bc9b7c..654fb92 100644
+--- a/lib/intern/relations.c
++++ b/lib/intern/relations.c
+@@ -22,15 +22,16 @@
+ #include "../stringlib.h"
+ #include "generic.h"
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_RELATION, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_RELATION,result_list);
+ }
+ 
+ //-------------------------------------
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_relations = {
++MetaDataFetcher glyrFetcher_relations =
++{
+     .name = "relations",
+     .type = GLYR_GET_RELATIONS,
+     .default_data_type = GLYR_TYPE_RELATION,
+diff --git a/lib/intern/relations/generated.c b/lib/intern/relations/generated.c
+index 03946c7..0413f6f 100644
+--- a/lib/intern/relations/generated.c
++++ b/lib/intern/relations/generated.c
+@@ -22,52 +22,57 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *relations_generated_parse(cb_object *capo)
++static GList * relations_generated_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
+-    GList *temple_list = NULL;
++    GList * result_list = NULL;
++    GList * temple_list = NULL;
+ 
+-    if(capo->s->title && capo->s->album) {
+-        temple_list = g_list_prepend(temple_list, "Musicbrainz Recording:http://musicbrainz.org/search?query=\"${title}\"+AND+artist%3A\"${artist}\"+AND+release%3A\"${album}\"&type=recording&advanced=1");
++    if (capo->s->title && capo->s->album)
++    {
++        temple_list = g_list_prepend (temple_list,"Musicbrainz Recording:http://musicbrainz.org/search?query=\"${title}\"+AND+artist%3A\"${artist}\"+AND+release%3A\"${album}\"&type=recording&advanced=1");
+     }
+ 
+-    if(capo->s->album) {
+-        temple_list = g_list_prepend(temple_list, "Musicbrainz Album:http://musicbrainz.org/search?query=\"${album}\"+AND+artist%3A\"${artist}\"&type=release&advanced=1");
+-        temple_list = g_list_prepend(temple_list, "Wikipedia Album:http://en.wikipedia.org/wiki/Special:Search/${album}(${artist})");
++    if (capo->s->album)
++    {
++        temple_list = g_list_prepend (temple_list,"Musicbrainz Album:http://musicbrainz.org/search?query=\"${album}\"+AND+artist%3A\"${artist}\"&type=release&advanced=1");
++        temple_list = g_list_prepend (temple_list,"Wikipedia Album:http://en.wikipedia.org/wiki/Special:Search/${album}(${artist})");
+     }
+ 
+-    temple_list = g_list_prepend(temple_list, "Musicbrainz Artist:http://musicbrainz.org/search?query=\"${artist}\"&type=artist");
+-    temple_list = g_list_prepend(temple_list, "Wikipedia Artist:http://en.wikipedia.org/wiki/Special:Search/${artist}");
+-    temple_list = g_list_prepend(temple_list, "Lastfm Page:http://last.fm/music/${artist}");
++    temple_list = g_list_prepend (temple_list,"Musicbrainz Artist:http://musicbrainz.org/search?query=\"${artist}\"&type=artist");
++    temple_list = g_list_prepend (temple_list,"Wikipedia Artist:http://en.wikipedia.org/wiki/Special:Search/${artist}");
++    temple_list = g_list_prepend (temple_list,"Lastfm Page:http://last.fm/music/${artist}");
+ 
+-    for(GList *elem = temple_list; elem; elem = elem->next) {
+-        gchar *result_url = prepare_url(elem->data, capo->s, TRUE);
+-        if(result_url != NULL) {
+-            GlyrMemCache *result = DL_init();
++    for (GList * elem = temple_list; elem; elem = elem->next)
++    {
++        gchar * result_url = prepare_url (elem->data, capo->s,TRUE);
++        if (result_url != NULL)
++        {
++            GlyrMemCache * result = DL_init();
+             result->data = result_url;
+-            result->size = strlen(result_url);
+-            result->dsrc = g_strdup(OFFLINE_PROVIDER);
+-            result->prov = g_strdup("generated");
++            result->size = strlen (result_url);
++            result->dsrc = g_strdup (OFFLINE_PROVIDER);
++            result->prov = g_strdup ("generated");
+             result->type = GLYR_TYPE_RELATION;
+-            update_md5sum(result);
+-            result_list = g_list_prepend(result_list, result);
++            update_md5sum (result);
++            result_list = g_list_prepend (result_list, result);
+         }
+     }
+ 
+-    g_list_free(temple_list);
++    g_list_free (temple_list);
+     return result_list;
+ }
+ 
+ /////////////////////////////////
+ 
+-static const gchar *relations_generated_url(GlyrQuery *sets)
++static const gchar * relations_generated_url (GlyrQuery * sets)
+ {
+     return OFFLINE_PROVIDER;
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource relations_generated_src = {
++MetaDataSource relations_generated_src =
++{
+     .name = "generated",
+     .key  = 'g',
+     .parser    = relations_generated_parse,
+diff --git a/lib/intern/relations/musicbrainz.c b/lib/intern/relations/musicbrainz.c
+index 46fe48c..722de00 100644
+--- a/lib/intern/relations/musicbrainz.c
++++ b/lib/intern/relations/musicbrainz.c
+@@ -27,52 +27,58 @@
+ #define RELATION_BEGIN_TYPE  "<relation"
+ 
+ /* Wrap around the (a bit more) generic versions */
+-static GList *relations_musicbrainz_parse(cb_object *capo)
++static GList * relations_musicbrainz_parse (cb_object * capo)
+ {
+-    GList *results = NULL;
++    GList * results = NULL;
+     gint mbid_marker = 0;
+-    while(continue_search(g_list_length(results), capo->s)) {
+-        GlyrMemCache   *infobuf = generic_musicbrainz_parse(capo, &mbid_marker, "url-rels");
+-        if(infobuf == NULL) {
++    while (continue_search (g_list_length (results), capo->s) )
++    {
++        GlyrMemCache  * infobuf = generic_musicbrainz_parse (capo,&mbid_marker,"url-rels");
++        if (infobuf == NULL)
++        {
+             break;
+         }
+         gsize nlen = (sizeof RELATION_BEGIN_TYPE) - 1;
+-        gchar *node = strstr(infobuf->data, RELATION_TARGLYR_GET_TYPE);
+-        if(node != NULL) {
++        gchar * node = strstr (infobuf->data,RELATION_TARGLYR_GET_TYPE);
++        if (node != NULL)
++        {
+             gint ctr = 0;
+-            while(continue_search(ctr, capo->s) && (node = strstr(node + nlen, RELATION_BEGIN_TYPE))) {
++            while (continue_search (ctr,capo->s) && (node = strstr (node+nlen,RELATION_BEGIN_TYPE) ) )
++            {
+                 node += nlen;
+-                gchar *target = get_search_value(node, "target=\"", "\"");
+-                gchar *type   = get_search_value(node, "type=\"", "\"");
++                gchar * target = get_search_value (node,"target=\"","\"");
++                gchar * type   = get_search_value (node,"type=\"","\"");
+ 
+-                if(type != NULL && target != NULL) {
+-                    GlyrMemCache *tmp = DL_init();
+-                    tmp->data = g_strdup_printf("%s:%s", type, target);
+-                    tmp->size = strlen(tmp->data);
+-                    tmp->dsrc = g_strdup(infobuf->dsrc);
+-                    results = g_list_prepend(results, tmp);
++                if (type != NULL && target != NULL)
++                {
++                    GlyrMemCache * tmp = DL_init();
++                    tmp->data = g_strdup_printf ("%s:%s",type,target);
++                    tmp->size = strlen (tmp->data);
++                    tmp->dsrc = g_strdup (infobuf->dsrc);
++                    results = g_list_prepend (results,tmp);
+                     ctr++;
+ 
+-                    g_free(type);
+-                    g_free(target);
++                    g_free (type);
++                    g_free (target);
+                 }
+             }
+         }
+-        DL_free(infobuf);
++        DL_free (infobuf);
+     }
+     return results;
+ }
+ 
+ /////////////////////////////////
+ 
+-static const gchar *relations_musicbrainz_url(GlyrQuery *sets)
++static const gchar * relations_musicbrainz_url (GlyrQuery * sets)
+ {
+-    return generic_musicbrainz_url(sets);
++    return generic_musicbrainz_url (sets);
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource relations_musicbrainz_src = {
++MetaDataSource relations_musicbrainz_src =
++{
+     .name = "musicbrainz",
+     .key  = 'm',
+     .parser    = relations_musicbrainz_parse,
+diff --git a/lib/intern/review.c b/lib/intern/review.c
+index 76d2ebc..927feef 100644
+--- a/lib/intern/review.c
++++ b/lib/intern/review.c
+@@ -24,27 +24,30 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+     /* Fix up messy text, escape chars etc.  */
+-    for(GList *elem = list; elem; elem = elem->next) {
+-        GlyrMemCache *item = elem->data;
+-        if(item != NULL) {
++    for (GList * elem = list; elem; elem = elem->next)
++    {
++        GlyrMemCache * item = elem->data;
++        if (item != NULL)
++        {
+ 
+-            gchar *temp = beautify_string(item->data);
+-            g_free(item->data);
++            gchar * temp = beautify_string (item->data);
++            g_free (item->data);
+             item->data = temp;
+-            item->size = (item->data) ? strlen(item->data) : 0;
++            item->size = (item->data) ? strlen (item->data) : 0;
+         }
+     }
+ 
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_ALBUM_REVIEW, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_ALBUM_REVIEW,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_review = {
++MetaDataFetcher glyrFetcher_review =
++{
+     .name = "albumreview",
+     .type = GLYR_GET_ALBUM_REVIEW,
+     .default_data_type = GLYR_TYPE_ALBUM_REVIEW,
+diff --git a/lib/intern/review/amazon.c b/lib/intern/review/amazon.c
+index 36f04c8..735bac3 100644
+--- a/lib/intern/review/amazon.c
++++ b/lib/intern/review/amazon.c
+@@ -21,29 +21,32 @@
+ #include "../../stringlib.h"
+ #include "../common/amazon.h"
+ 
+-static const gchar *review_amazon_url(GlyrQuery *settings)
++static const gchar * review_amazon_url (GlyrQuery * settings)
+ {
+-    return generic_amazon_url(settings, "EditorialReview");
++    return generic_amazon_url (settings,"EditorialReview");
+ }
+ 
+ #define TheContent "<Content>"
+ #define TheEndofCt "</Content>"
+-static GList *review_amazon_parse(cb_object *capo)
++static GList * review_amazon_parse (cb_object * capo)
+ {
+-    gchar *node = capo->cache->data;
++    gchar * node = capo->cache->data;
+     gsize conlen = (sizeof TheContent) - 1;
+-    GList *result_list = NULL;
+-    while(continue_search(g_list_length(result_list), capo->s) && (node = strstr(node + conlen, TheContent)) != NULL) {
+-        gchar *endOfText = strstr(node + conlen, TheEndofCt);
+-        gchar *text = copy_value(node + conlen, endOfText);
+-        if(text != NULL) {
++    GList * result_list = NULL;
++    while (continue_search (g_list_length (result_list),capo->s) && (node = strstr (node+conlen,TheContent) ) != NULL)
++    {
++        gchar * endOfText = strstr (node+conlen,TheEndofCt);
++        gchar * text = copy_value (node+conlen,endOfText);
++        if (text != NULL)
++        {
+             /* Ignore reviews with 350 chars
+              * as mostly just advertisement */
+-            if((endOfText - (node + conlen)) > 350) {
+-                GlyrMemCache *result = DL_init();
++            if ( (endOfText - (node+conlen) ) > 350)
++            {
++                GlyrMemCache * result = DL_init();
+                 result->data = text;
+-                result->size = result->data ? strlen(result->data) : 0;
+-                result_list = g_list_prepend(result_list, result);
++                result->size = result->data ? strlen (result->data) : 0;
++                result_list = g_list_prepend (result_list,result);
+             }
+         }
+     }
+@@ -52,7 +55,8 @@ static GList *review_amazon_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource review_amazon_src = {
++MetaDataSource review_amazon_src =
++{
+     .name = "amazon",
+     .key  = 'a',
+     .parser    = review_amazon_parse,
+diff --git a/lib/intern/review/echonest.c b/lib/intern/review/echonest.c
+index bbd686b..79f57fc 100644
+--- a/lib/intern/review/echonest.c
++++ b/lib/intern/review/echonest.c
+@@ -24,21 +24,21 @@
+ /* JSON Parsing */
+ #include "../../jsmn/jsmn.h"
+ 
+-static const gchar *review_echonest_url(GlyrQuery *s)
++static const gchar * review_echonest_url (GlyrQuery * s)
+ {
+     return "http://developer.echonest.com/api/v4/artist/reviews?api_key="API_KEY_ECHONEST"&results=${number}&format=json&name=${artist}";
+ }
+ 
+ /////////////////////////////////
+ 
+-static int strip_escapes(char *text, int len)
++static int strip_escapes(char * text, int len) 
+ {
+     int offset = 0;
+ 
+-    for(int i = 0; i < len; ++i) {
+-        if(text[i] == '\\') {
++    for (int i = 0; i < len; ++i) {
++        if (text[i] == '\\') {
+             ++i;
+-            if(text[i] == 'n') {
++            if (text[i] == 'n') {
+                 text[offset++] = '\n';
+                 continue;
+             }
+@@ -51,11 +51,10 @@ static int strip_escapes(char *text, int len)
+ 
+ /////////////////////////////////
+ 
+-static GList *add_result(GList *results, cb_object *capo, char *url, char *summary, char *release)
+-{
+-    if(levenshtein_strnormcmp(capo->s, capo->s->album, release) <= capo->s->fuzzyness) {
+-        if(strlen(summary) >= 125) {
+-            GlyrMemCache *result = DL_init();
++static GList *add_result(GList *results, cb_object *capo, char *url, char *summary, char *release) {
++    if (levenshtein_strnormcmp(capo->s, capo->s->album, release) <= capo->s->fuzzyness) {
++        if (strlen(summary) >= 125) {
++            GlyrMemCache * result = DL_init();
+             result->data = g_strdup_printf("%s\n \n \nRead more on: %s\n", summary, url);
+             result->size = strlen(result->data);
+             result->size -= strip_escapes(result->data, result->size);
+@@ -67,9 +66,9 @@ static GList *add_result(GList *results, cb_object *capo, char *url, char *summa
+ 
+ /////////////////////////////////
+ 
+-static bool json_is_key(jsmntok_t tokens[], int current, char *json, char *key)
++static bool json_is_key(jsmntok_t tokens[], int current, char *json, char *key) 
+ {
+-    jsmntok_t *token = &tokens[current];
++    jsmntok_t * token = &tokens[current];
+     return (token->type == JSMN_STRING &&
+             g_ascii_strncasecmp(
+                 json + token->start,
+@@ -80,10 +79,10 @@ static bool json_is_key(jsmntok_t tokens[], int current, char *json, char *key)
+ 
+ /////////////////////////////////
+ 
+-static char *json_get_next_value(jsmntok_t tokens[], int current, char *json)
++static char * json_get_next_value(jsmntok_t tokens[], int current, char *json) 
+ {
+     jsmntok_t *next_token = &tokens[current + 1];
+-    if(next_token != NULL && next_token->type == JSMN_STRING) {
++    if (next_token != NULL && next_token->type == JSMN_STRING) {
+         return g_strndup(json + next_token->start, next_token->end - next_token->start);
+     } else {
+         return NULL;
+@@ -97,14 +96,14 @@ static char *json_get_next_value(jsmntok_t tokens[], int current, char *json)
+         g_free(name);                                     \
+         name = json_get_next_value(tokens, i++, json);    \
+     }                                                     \
+- 
+-static GList *review_echonest_parse(cb_object *capo)
++
++static GList * review_echonest_parse (cb_object * capo)
+ {
+-    char *json = capo->cache->data;
++    char * json = capo->cache->data;
+     const int num_tokens = 512;
++    
+ 
+-
+-    GList *results = NULL;
++    GList * results = NULL;
+ 
+     /* jasmin stuff */
+     jsmn_parser parser;
+@@ -126,9 +125,9 @@ static GList *review_echonest_parse(cb_object *capo)
+     /* Save partial results here */
+     char *url = NULL, *summary = NULL, *release = NULL;
+ 
+-    if(error == JSMN_SUCCESS) {
+-        for(int i = 0; i < num_tokens; ++i) {
+-            jsmntok_t *token = &tokens[i];
++    if (error == JSMN_SUCCESS) {
++        for (int i = 0; i < num_tokens; ++i) {
++            jsmntok_t * token = &tokens[i];
+ 
+             /* End of tokens? */
+             if(token->start <= 0 && token->end <= 0) {
+@@ -139,9 +138,9 @@ static GList *review_echonest_parse(cb_object *capo)
+             JSON_GET_VALUE_IF_KEY(summary, "summary");
+             JSON_GET_VALUE_IF_KEY(release, "release");
+ 
+-            char *next_bracket = strchr(json + token->start, '}');
+-            if(next_bracket > curr_bracket) {
+-                if(url && summary && release) {
++            char * next_bracket = strchr(json + token->start, '}');
++            if (next_bracket > curr_bracket) {
++                if (url && summary && release) {
+                     results = add_result(results, capo, url, summary, release);
+                 }
+                 curr_bracket = next_bracket;
+@@ -149,7 +148,7 @@ static GList *review_echonest_parse(cb_object *capo)
+ 
+         }
+ 
+-        if(url && summary && release) {
++        if (url && summary && release) {
+             results = add_result(results, capo, url, summary, release);
+         }
+ 
+@@ -165,7 +164,8 @@ static GList *review_echonest_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource review_echonest_src = {
++MetaDataSource review_echonest_src =
++{
+     .name      = "echonest",
+     .key       = 'e',
+     .free_url  = false,
+@@ -175,5 +175,5 @@ MetaDataSource review_echonest_src = {
+     .quality   = 70,
+     .speed     = 85,
+     .endmarker = NULL,
+-    .lang_aware = false
++    .lang_aware = false 
+ };
+diff --git a/lib/intern/review/metallum.c b/lib/intern/review/metallum.c
+index c722f69..f79bc6f 100644
+--- a/lib/intern/review/metallum.c
++++ b/lib/intern/review/metallum.c
+@@ -28,7 +28,7 @@
+     "&iColumns=3&sColumns=&iDisplayStart=0"                                \
+     "&iDisplayLength=100&sNames=%%2C%%2C"
+ 
+-static const gchar *review_metallum_url(GlyrQuery *s)
++static const gchar * review_metallum_url (GlyrQuery * s)
+ {
+     return AJAX_URL;
+ }
+@@ -36,54 +36,61 @@ static const gchar *review_metallum_url(GlyrQuery *s)
+ #define REVIEW_START "<div class=\"reviewContent\">"
+ #define REVIEW_END   "</div>"
+ 
+-static void parse_review_site(GlyrQuery *s, GlyrMemCache *cache, GList **result_items)
++static void parse_review_site (GlyrQuery * s, GlyrMemCache * cache, GList ** result_items)
+ {
+-    if(cache != NULL) {
++    if (cache != NULL)
++    {
+         gsize nodelen = (sizeof REVIEW_START) - 1;
+-        gchar *node  = cache->data;
++        gchar * node  = cache->data;
+ 
+-        while(continue_search(g_list_length(*result_items), s) && (node = strstr(node + nodelen, REVIEW_START)) != NULL) {
+-            gchar *data = get_search_value(node, REVIEW_START, REVIEW_END);
+-            if(data != NULL) {
+-                GlyrMemCache *item = DL_init();
++        while (continue_search (g_list_length (*result_items),s) && (node = strstr (node+nodelen,REVIEW_START) ) != NULL)
++        {
++            gchar * data = get_search_value (node,REVIEW_START,REVIEW_END);
++            if (data != NULL)
++            {
++                GlyrMemCache * item = DL_init();
+ 
+-                gchar *kill_br = strreplace(data, "  <br />\n", "");
+-                item->data = strreplace(kill_br, ".  ", ".\n");
+-                item->size = strlen(item->data);
+-                item->dsrc = g_strdup(cache->dsrc);
+-                *result_items = g_list_prepend(*result_items, item);
++                gchar * kill_br = strreplace (data,"  <br />\n","");
++                item->data = strreplace (kill_br,".  ",".\n");
++                item->size = strlen (item->data);
++                item->dsrc = g_strdup (cache->dsrc);
++                *result_items = g_list_prepend (*result_items, item);
+ 
+-                g_free(kill_br);
+-                g_free(data);
++                g_free (kill_br);
++                g_free (data);
+             }
+         }
+-        DL_free(cache);
++        DL_free (cache);
+     }
+ }
+ 
+ #define NODE_START "\"<a href=\\\""
+ #define NODE_END "\\\">"
+ 
+-static GList *review_metallum_parse(cb_object *capo)
++static GList * review_metallum_parse (cb_object * capo)
+ {
+-    GList *result_items = NULL;
++    GList * result_items = NULL;
+ 
+-    gsize nodelen = strlen(NODE_START);
+-    gchar *node  = capo->cache->data;
++    gsize nodelen = strlen (NODE_START);
++    gchar * node  = capo->cache->data;
+     gint node_ctr = 0;
+ 
+-    while((node = strstr(node + nodelen, NODE_START)) != NULL) {
++    while ( (node = strstr (node+nodelen,NODE_START) ) != NULL)
++    {
+         /* Only take the album url, not the other urls */
+-        if(++node_ctr % 2 == 0) {
++        if (++node_ctr % 2 == 0)
++        {
+             node += nodelen;
+-            gchar *content_url = copy_value(node, strstr(node, NODE_END));
+-            if(content_url != NULL) {
+-                gchar *review_url = strreplace(content_url, "/albums/", "/reviews/");
+-                if(review_url != NULL) {
+-                    parse_review_site(capo->s, download_single(review_url, capo->s, NULL), &result_items);
+-                    g_free(review_url);
++            gchar * content_url = copy_value (node,strstr (node,NODE_END) );
++            if (content_url != NULL)
++            {
++                gchar * review_url = strreplace (content_url,"/albums/","/reviews/");
++                if (review_url != NULL)
++                {
++                    parse_review_site (capo->s, download_single (review_url,capo->s,NULL), &result_items);
++                    g_free (review_url);
+                 }
+-                g_free(content_url);
++                g_free (content_url);
+             }
+         }
+     }
+@@ -91,7 +98,8 @@ static GList *review_metallum_parse(cb_object *capo)
+ }
+ 
+ 
+-MetaDataSource review_metallum_src = {
++MetaDataSource review_metallum_src =
++{
+     .name = "metallum",
+     .key  = 'e',
+     .parser    = review_metallum_parse,
+diff --git a/lib/intern/similar_artist.c b/lib/intern/similar_artist.c
+index 8a3def7..d0ce6af 100644
+--- a/lib/intern/similar_artist.c
++++ b/lib/intern/similar_artist.c
+@@ -24,15 +24,16 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_SIMILAR_SONG, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_SIMILAR_SONG,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_similar_artists = {
++MetaDataFetcher glyrFetcher_similar_artists =
++{
+     .name = "similarartists",
+     .type = GLYR_GET_SIMILAR_ARTISTS,
+     .default_data_type = GLYR_TYPE_SIMILAR_ARTIST,
+diff --git a/lib/intern/similar_artist/lastfm.c b/lib/intern/similar_artist/lastfm.c
+index 9de4e3f..0139a8c 100644
+--- a/lib/intern/similar_artist/lastfm.c
++++ b/lib/intern/similar_artist/lastfm.c
+@@ -22,7 +22,7 @@
+ 
+ #define API_KEY API_KEY_LASTFM
+ 
+-static const char *similar_lastfm_url(GlyrQuery *sets)
++static const char * similar_lastfm_url (GlyrQuery * sets)
+ {
+     return "http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=${artist}&api_key="API_KEY;
+ }
+@@ -43,48 +43,52 @@ static const char *similar_lastfm_url(GlyrQuery *sets)
+ #define IMAGE_X_BEGIN "<image size=\"mega\">"
+ #define IMAGE_ENDIN   "</image>"
+ 
+-static GList *similar_lastfm_parse(cb_object *capo)
++static GList * similar_lastfm_parse (cb_object * capo)
+ {
+-    GList *results = NULL;
+-    gchar *find = capo->cache->data;
+-    while(continue_search(g_list_length(results), capo->s) && (find = strstr(find + 1, "<artist>")) != NULL) {
+-        gchar *name  = get_search_value(find, NAME_BEGIN, NAME_ENDIN);
+-        gchar *match = get_search_value(find, MATCH_BEGIN, MATCH_ENDIN);
+-        gchar *url   = get_search_value(find, URL_BEGIN, URL_ENDIN);
++    GList * results = NULL;
++    gchar * find = capo->cache->data;
++    while (continue_search (g_list_length (results),capo->s) && (find = strstr (find+1, "<artist>") ) != NULL)
++    {
++        gchar * name  = get_search_value (find,NAME_BEGIN,NAME_ENDIN);
++        gchar * match = get_search_value (find,MATCH_BEGIN,MATCH_ENDIN);
++        gchar * url   = get_search_value (find,URL_BEGIN,URL_ENDIN);
+ 
+-        gchar *img_s = get_search_value(find, IMAGE_S_BEGIN, IMAGE_ENDIN);
+-        gchar *img_m = get_search_value(find, IMAGE_M_BEGIN, IMAGE_ENDIN);
+-        gchar *img_l = get_search_value(find, IMAGE_L_BEGIN, IMAGE_ENDIN);
+-        gchar *img_e = get_search_value(find, IMAGE_E_BEGIN, IMAGE_ENDIN);
+-        gchar *img_x = get_search_value(find, IMAGE_X_BEGIN, IMAGE_ENDIN);
+-        gchar *composed = g_strdup_printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", name, match, url, img_s, img_m, img_l, img_e, img_x);
++        gchar * img_s = get_search_value (find,IMAGE_S_BEGIN,IMAGE_ENDIN);
++        gchar * img_m = get_search_value (find,IMAGE_M_BEGIN,IMAGE_ENDIN);
++        gchar * img_l = get_search_value (find,IMAGE_L_BEGIN,IMAGE_ENDIN);
++        gchar * img_e = get_search_value (find,IMAGE_E_BEGIN,IMAGE_ENDIN);
++        gchar * img_x = get_search_value (find,IMAGE_X_BEGIN,IMAGE_ENDIN);
++        gchar * composed = g_strdup_printf ("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",name,match,url,img_s,img_m,img_l,img_e,img_x);
+ 
+-        if(composed != NULL) {
+-            GlyrMemCache *result = DL_init();
++        if (composed != NULL)
++        {
++            GlyrMemCache * result = DL_init();
+             result->data = composed;
+-            result->size = strlen(composed);
+-            results = g_list_prepend(results, result);
++            result->size = strlen (composed);
++            results = g_list_prepend (results, result);
+         }
+ 
+-        if(results != NULL) {
+-            results = g_list_reverse(results);
++        if (results != NULL)
++        {
++            results = g_list_reverse (results);
+         }
+ 
+-        g_free(name);
+-        g_free(match);
+-        g_free(url);
+-        g_free(img_s);
+-        g_free(img_m);
+-        g_free(img_l);
+-        g_free(img_e);
+-        g_free(img_x);
++        g_free (name);
++        g_free (match);
++        g_free (url);
++        g_free (img_s);
++        g_free (img_m);
++        g_free (img_l);
++        g_free (img_e);
++        g_free (img_x);
+     }
+     return results;
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource similar_artist_lastfm_src = {
++MetaDataSource similar_artist_lastfm_src =
++{
+     .name = "lastfm",
+     .key  = 'l',
+     .parser    = similar_lastfm_parse,
+diff --git a/lib/intern/similar_song.c b/lib/intern/similar_song.c
+index 2a1f726..fd12596 100644
+--- a/lib/intern/similar_song.c
++++ b/lib/intern/similar_song.c
+@@ -24,15 +24,16 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_SIMILAR_SONG, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_SIMILAR_SONG,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_similar_song = {
++MetaDataFetcher glyrFetcher_similar_song =
++{
+     .name = "similarsongs",
+     .type = GLYR_GET_SIMILAR_SONGS,
+     .default_data_type = GLYR_TYPE_SIMILAR_SONG,
+diff --git a/lib/intern/similar_song/lastfm.c b/lib/intern/similar_song/lastfm.c
+index b98b069..d05dc87 100644
+--- a/lib/intern/similar_song/lastfm.c
++++ b/lib/intern/similar_song/lastfm.c
+@@ -20,7 +20,7 @@
+ #include "../../stringlib.h"
+ #include "../../core.h"
+ 
+-static const gchar *similar_song_lastfm_url(GlyrQuery *sets)
++static const gchar * similar_song_lastfm_url (GlyrQuery * sets)
+ {
+     return  "http://ws.audioscrobbler.com/2.0/?method=track.getsimilar&artist=${artist}&track=${title}&api_key="API_KEY_LASTFM;
+ }
+@@ -38,37 +38,40 @@ static const gchar *similar_song_lastfm_url(GlyrQuery *sets)
+ #define URL_BEGIN "<url>"
+ #define URL_ENDIN "</url>"
+ 
+-static GList *similar_song_lastfm_parse(cb_object *capo)
++static GList * similar_song_lastfm_parse (cb_object * capo)
+ {
+-    GList *results = NULL;
+-    gchar *begin = capo->cache->data;
++    GList * results = NULL;
++    gchar * begin = capo->cache->data;
+ 
+-    while(continue_search(g_list_length(results), capo->s) && (begin = strstr(begin, TRACK_BEGIN)) != NULL) {
+-        gchar *track  = get_search_value(begin, NAME_BEGIN, NAME_ENDIN);
+-        gchar *match  = get_search_value(begin, MATCH_BEGIN, MATCH_ENDIN);
+-        gchar *url    = get_search_value(begin, URL_BEGIN, URL_ENDIN);
+-        gchar *artist = get_search_value(strstr(begin, ARTIST_BEGIN), NAME_BEGIN, NAME_ENDIN);
++    while (continue_search (g_list_length (results),capo->s) && (begin = strstr (begin, TRACK_BEGIN) ) != NULL)
++    {
++        gchar * track  = get_search_value (begin,NAME_BEGIN,NAME_ENDIN);
++        gchar * match  = get_search_value (begin,MATCH_BEGIN,MATCH_ENDIN);
++        gchar * url    = get_search_value (begin,URL_BEGIN,URL_ENDIN);
++        gchar * artist = get_search_value (strstr (begin,ARTIST_BEGIN),NAME_BEGIN,NAME_ENDIN);
+ 
+-        if(artist && track) {
+-            GlyrMemCache *result = DL_init();
+-            result->data = g_strdup_printf("%s\n%s\n%s\n%s\n", track, artist, match, url);
+-            result->size = strlen(result->data);
+-            results = g_list_prepend(results, result);
++        if (artist && track)
++        {
++            GlyrMemCache * result = DL_init();
++            result->data = g_strdup_printf ("%s\n%s\n%s\n%s\n",track,artist,match,url);
++            result->size = strlen (result->data);
++            results = g_list_prepend (results, result);
+         }
+ 
+-        g_free(track);
+-        g_free(artist);
+-        g_free(match);
+-        g_free(url);
++        g_free (track);
++        g_free (artist);
++        g_free (match);
++        g_free (url);
+ 
+-        begin += sizeof(TRACK_BEGIN) - 1;
++        begin += sizeof (TRACK_BEGIN) - 1;
+     }
+     return results;
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource similar_song_lastfm_src = {
++MetaDataSource similar_song_lastfm_src =
++{
+     .name = "lastfm",
+     .key  = 'l',
+     .parser    = similar_song_lastfm_parse,
+diff --git a/lib/intern/tags.c b/lib/intern/tags.c
+index fdb8170..26742f1 100644
+--- a/lib/intern/tags.c
++++ b/lib/intern/tags.c
+@@ -24,15 +24,16 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_TAG, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_TAG,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_tags = {
++MetaDataFetcher glyrFetcher_tags =
++{
+     .name = "tags",
+     .type = GLYR_GET_TAGS,
+     .default_data_type = GLYR_TYPE_TAG,
+diff --git a/lib/intern/tags/musicbrainz.c b/lib/intern/tags/musicbrainz.c
+index cd1bcf5..bf042d4 100644
+--- a/lib/intern/tags/musicbrainz.c
++++ b/lib/intern/tags/musicbrainz.c
+@@ -35,58 +35,62 @@ artist && album          -> album
+ /////////////////////////////////
+ 
+ /* Wrap around the (a bit more) generic versions */
+-static GList *tags_musicbrainz_parse(cb_object *capo)
++static GList * tags_musicbrainz_parse (cb_object * capo)
+ {
+-    GList *results = NULL;
++    GList * results = NULL;
+     gint mbid_marker = 0;
+-    while(continue_search(g_list_length(results), capo->s)) {
+-        GlyrMemCache   *info = generic_musicbrainz_parse(capo, &mbid_marker, "tags");
+-        if(info == NULL) {
++    while (continue_search (g_list_length (results), capo->s) )
++    {
++        GlyrMemCache  * info = generic_musicbrainz_parse (capo,&mbid_marker,"tags");
++        if (info == NULL)
++        {
+             break;
+         }
+ 
+-        gint type_num = please_what_type(capo->s);
+-        gchar *tag_node = info->data;
+-        while((tag_node = strstr(tag_node + 1, "<tag"))) {
+-            gchar *tag_begin = strchr(tag_node + 1, '>');
+-            if(!tag_begin) {
++        gint type_num = please_what_type (capo->s);
++        gchar * tag_node = info->data;
++        while ( (tag_node = strstr (tag_node + 1,"<tag") ) )
++        {
++            gchar * tag_begin = strchr (tag_node+1,'>');
++            if (!tag_begin)
+                 continue;
+-            }
+ 
+             tag_begin++;
+-            gchar *tag_endin = strchr(tag_begin, '<');
+-            if(!tag_endin) {
++            gchar * tag_endin = strchr (tag_begin,'<');
++            if (!tag_endin)
+                 continue;
+-            }
+ 
+-            gchar *value = copy_value(tag_begin, tag_endin);
+-            if(value != NULL) {
+-                if(strlen(value) > 0) {
+-                    GlyrMemCache *tmp = DL_init();
++            gchar * value = copy_value (tag_begin,tag_endin);
++            if (value != NULL)
++            {
++                if (strlen (value) > 0)
++                {
++                    GlyrMemCache * tmp = DL_init();
+                     tmp->data = value;
+                     tmp->size = tag_endin - tag_begin;
+                     tmp->type = type_num;
+-                    tmp->dsrc = g_strdup(info->dsrc);
++                    tmp->dsrc = g_strdup (info->dsrc);
+ 
+-                    results = g_list_prepend(results, tmp);
++                    results = g_list_prepend (results,tmp);
+                 }
+             }
+         }
+-        DL_free(info);
++        DL_free (info);
+     }
+     return results;
+ }
+ 
+ /////////////////////////////////
+ 
+-static const gchar *tags_musicbrainz_url(GlyrQuery *sets)
++static const gchar * tags_musicbrainz_url (GlyrQuery * sets)
+ {
+-    return generic_musicbrainz_url(sets);
++    return generic_musicbrainz_url (sets);
+ }
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource tags_musicbrainz_src = {
++MetaDataSource tags_musicbrainz_src =
++{
+     .name = "musicbrainz",
+     .key  = 'm',
+     .parser    = tags_musicbrainz_parse,
+diff --git a/lib/intern/tracklist.c b/lib/intern/tracklist.c
+index 99b3ca4..551a9fa 100644
+--- a/lib/intern/tracklist.c
++++ b/lib/intern/tracklist.c
+@@ -24,15 +24,16 @@
+ 
+ /////////////////////////////////
+ 
+-static GList *factory(GlyrQuery *s, GList *list, gboolean *stop_me, GList **result_list)
++static GList * factory (GlyrQuery * s, GList * list, gboolean * stop_me, GList ** result_list)
+ {
+-    return generic_txt_finalizer(s, list, stop_me, GLYR_TYPE_TRACK, result_list);
++    return generic_txt_finalizer (s,list,stop_me,GLYR_TYPE_TRACK,result_list);
+ }
+ 
+ /////////////////////////////////
+ 
+ /* PlugStruct */
+-MetaDataFetcher glyrFetcher_tracklist = {
++MetaDataFetcher glyrFetcher_tracklist =
++{
+     .name = "tracklist",
+     .type = GLYR_GET_TRACKLIST,
+     .default_data_type = GLYR_TYPE_TRACK,
+diff --git a/lib/intern/tracklist/musicbrainz.c b/lib/intern/tracklist/musicbrainz.c
+index 824b67c..dd51428 100644
+--- a/lib/intern/tracklist/musicbrainz.c
++++ b/lib/intern/tracklist/musicbrainz.c
+@@ -20,7 +20,7 @@
+ #include "../../stringlib.h"
+ #include "../../core.h"
+ 
+-static const gchar *tracklist_musicbrainz_url(GlyrQuery *sets)
++static const gchar * tracklist_musicbrainz_url (GlyrQuery * sets)
+ {
+     return "http://musicbrainz.org/ws/1/release/?type=xml&artist=${artist}&releasetypes=Official&limit=10&title=${album}&limit=1";
+ }
+@@ -38,30 +38,32 @@ static const gchar *tracklist_musicbrainz_url(GlyrQuery *sets)
+ 
+ /////////////////////////////////
+ 
+-static GList *traverse_xml(const gchar *data, const gchar *url, cb_object *capo)
++static GList * traverse_xml (const gchar * data, const gchar * url, cb_object * capo)
+ {
+-    gchar *beg = (gchar *) data;
+-    GList *collection = NULL;
++    gchar * beg = (gchar*) data;
++    GList * collection = NULL;
+     gint item_ctr = 0;
+ 
+     /* Hop over album title */
+-    beg = strstr(beg, TIT_BEGIN);
++    beg = strstr (beg,TIT_BEGIN);
+ 
+-    while(continue_search(item_ctr, capo->s) && (beg = strstr(beg + (sizeof TIT_BEGIN) - 1, TIT_BEGIN)) != NULL) {
+-        gchar *dy;
+-        gchar *value = copy_value(beg + (sizeof TIT_BEGIN) - 1, strstr(beg, TIT_ENDIN));
+-        gchar *durat = copy_value(strstr(beg, DUR_BEGIN) + (sizeof DUR_BEGIN) - 1, (dy = strstr(beg, DUR_ENDIN)));
+-        if(value != NULL && durat != NULL) {
+-            GlyrMemCache *cont = DL_init();
++    while (continue_search (item_ctr,capo->s) && (beg = strstr (beg + (sizeof TIT_BEGIN) - 1,TIT_BEGIN) ) != NULL)
++    {
++        gchar * dy;
++        gchar * value = copy_value (beg+ (sizeof TIT_BEGIN) - 1,strstr (beg,TIT_ENDIN) );
++        gchar * durat = copy_value (strstr (beg,DUR_BEGIN) + (sizeof DUR_BEGIN) - 1, (dy = strstr (beg,DUR_ENDIN) ) );
++        if (value != NULL && durat != NULL)
++        {
++            GlyrMemCache * cont = DL_init();
+             cont->data = value;
+-            cont->size = strlen(cont->data);
+-            cont->duration = strtol(durat, NULL, 10) / 1e3;
+-            cont->dsrc = g_strdup(url);
+-            collection = g_list_prepend(collection, cont);
++            cont->size = strlen (cont->data);
++            cont->duration = strtol (durat,NULL,10) / 1e3;
++            cont->dsrc = g_strdup (url);
++            collection = g_list_prepend (collection,cont);
+ 
+             /* free & jump to next */
+             item_ctr++;
+-            g_free(durat);
++            g_free (durat);
+             beg = dy;
+         }
+     }
+@@ -70,25 +72,29 @@ static GList *traverse_xml(const gchar *data, const gchar *url, cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-static GList *tracklist_musicbrainz_parse(cb_object *capo)
++static GList * tracklist_musicbrainz_parse (cb_object * capo)
+ {
+-    GList *result_list = NULL;
++    GList * result_list = NULL;
+ 
+-    gchar *rel_id_begin = strstr(capo->cache->data, REL_ID_BEGIN);
+-    if(rel_id_begin != NULL) {
+-        gchar *release_ID = get_search_value(rel_id_begin, REL_ID_BEGIN, REL_ID_ENDIN);
+-        if(release_ID != NULL) {
+-            gchar *release_page_info_url = g_strdup_printf(REL_ID_FORM, release_ID);
+-            GlyrMemCache *dlData = download_single(release_page_info_url, capo->s, NULL);
+-            if(dlData != NULL) {
+-                result_list = traverse_xml(dlData->data, capo->url, capo);
+-                if(result_list != NULL) {
+-                    result_list = g_list_reverse(result_list);
++    gchar * rel_id_begin = strstr (capo->cache->data,REL_ID_BEGIN);
++    if (rel_id_begin != NULL)
++    {
++        gchar * release_ID = get_search_value (rel_id_begin,REL_ID_BEGIN,REL_ID_ENDIN);
++        if (release_ID != NULL)
++        {
++            gchar * release_page_info_url = g_strdup_printf (REL_ID_FORM, release_ID);
++            GlyrMemCache * dlData = download_single (release_page_info_url,capo->s,NULL);
++            if (dlData != NULL)
++            {
++                result_list = traverse_xml (dlData->data,capo->url,capo);
++                if (result_list != NULL)
++                {
++                    result_list = g_list_reverse (result_list);
+                 }
+-                DL_free(dlData);
++                DL_free (dlData);
+             }
+-            g_free(release_page_info_url);
+-            g_free(release_ID);
++            g_free (release_page_info_url);
++            g_free (release_ID);
+         }
+     }
+     return result_list;
+@@ -96,7 +102,8 @@ static GList *tracklist_musicbrainz_parse(cb_object *capo)
+ 
+ /////////////////////////////////
+ 
+-MetaDataSource tracklist_musicbrainz_src = {
++MetaDataSource tracklist_musicbrainz_src =
++{
+     .name = "musicbrainz",
+     .key  = 'm',
+     .parser    = tracklist_musicbrainz_parse,
+diff --git a/lib/jsmn/jsmn.c b/lib/jsmn/jsmn.c
+index 7c8295b..5e2d40e 100644
+--- a/lib/jsmn/jsmn.c
++++ b/lib/jsmn/jsmn.c
+@@ -5,295 +5,251 @@
+ /**
+  * Allocates a fresh unused token from the token pull.
+  */
+-static jsmntok_t *jsmn_alloc_token(jsmn_parser *parser,
+-                                   jsmntok_t *tokens, size_t num_tokens)
+-{
+-    jsmntok_t *tok;
+-    if(parser->toknext >= (int) num_tokens) {
+-        return NULL;
+-    }
+-    tok = &tokens[parser->toknext++];
+-    tok->start = tok->end = -1;
+-    tok->size = 0;
++static jsmntok_t *jsmn_alloc_token(jsmn_parser *parser, 
++		jsmntok_t *tokens, size_t num_tokens) {
++	jsmntok_t *tok;
++	if (parser->toknext >= (int)num_tokens) {
++		return NULL;
++	}
++	tok = &tokens[parser->toknext++];
++	tok->start = tok->end = -1;
++	tok->size = 0;
+ #ifdef JSMN_PARENT_LINKS
+-    tok->parent = -1;
++	tok->parent = -1;
+ #endif
+-    return tok;
++	return tok;
+ }
+ 
+ /**
+  * Fills token type and boundaries.
+  */
+-static void jsmn_fill_token(jsmntok_t *token, jsmntype_t type,
+-                            int start, int end)
+-{
+-    token->type = type;
+-    token->start = start;
+-    token->end = end;
+-    token->size = 0;
++static void jsmn_fill_token(jsmntok_t *token, jsmntype_t type, 
++                            int start, int end) {
++	token->type = type;
++	token->start = start;
++	token->end = end;
++	token->size = 0;
+ }
+ 
+ /**
+  * Fills next available token with JSON primitive.
+  */
+ static jsmnerr_t jsmn_parse_primitive(jsmn_parser *parser, const char *js,
+-                                      jsmntok_t *tokens, size_t num_tokens)
+-{
+-    jsmntok_t *token;
+-    int start;
++		jsmntok_t *tokens, size_t num_tokens) {
++	jsmntok_t *token;
++	int start;
+ 
+-    start = parser->pos;
++	start = parser->pos;
+ 
+-    for(; js[parser->pos] != '\0'; parser->pos++) {
+-        switch(js[parser->pos]) {
++	for (; js[parser->pos] != '\0'; parser->pos++) {
++		switch (js[parser->pos]) {
+ #ifndef JSMN_STRICT
+-        /* In strict mode primitive must be followed by ",  or "}" or "]" */
+-        case ':':
++			/* In strict mode primitive must be followed by "," or "}" or "]" */
++			case ':':
+ #endif
+-        case '\t' :
+-        case '\r' :
+-        case '\n' :
+-        case ' ' :
+-        case ',   :
+-        case ']'  :
+-        case '}' :
+-            goto found;
+-        }
+-        if(js[parser->pos] < 32 || js[parser->pos] >= 127) {
+-            parser->pos = start;
+-            return JSMN_ERROR_INVAL;
+-        }
+-    }
++			case '\t' : case '\r' : case '\n' : case ' ' :
++			case ','  : case ']'  : case '}' :
++				goto found;
++		}
++		if (js[parser->pos] < 32 || js[parser->pos] >= 127) {
++			parser->pos = start;
++			return JSMN_ERROR_INVAL;
++		}
++	}
+ #ifdef JSMN_STRICT
+-    /* In strict mode primitive must be followed by a comma/object/array */
+-    parser->pos = start;
+-    return JSMN_ERROR_PART;
++	/* In strict mode primitive must be followed by a comma/object/array */
++	parser->pos = start;
++	return JSMN_ERROR_PART;
+ #endif
+ 
+ found:
+-    token = jsmn_alloc_token(parser, tokens, num_tokens);
+-    if(token == NULL) {
+-        parser->pos = start;
+-        return JSMN_ERROR_NOMEM;
+-    }
+-    jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos);
++	token = jsmn_alloc_token(parser, tokens, num_tokens);
++	if (token == NULL) {
++		parser->pos = start;
++		return JSMN_ERROR_NOMEM;
++	}
++	jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos);
+ #ifdef JSMN_PARENT_LINKS
+-    token->parent = parser->toksuper;
++	token->parent = parser->toksuper;
+ #endif
+-    parser->pos--;
+-    return JSMN_SUCCESS;
++	parser->pos--;
++	return JSMN_SUCCESS;
+ }
+ 
+ /**
+  * Filsl next token with JSON string.
+  */
+ static jsmnerr_t jsmn_parse_string(jsmn_parser *parser, const char *js,
+-                                   jsmntok_t *tokens, size_t num_tokens)
+-{
+-    jsmntok_t *token;
++		jsmntok_t *tokens, size_t num_tokens) {
++	jsmntok_t *token;
+ 
+-    int start = parser->pos;
++	int start = parser->pos;
+ 
+-    parser->pos++;
++	parser->pos++;
+ 
+-    /* Skip starting quote */
+-    for(; js[parser->pos] != '\0'; parser->pos++) {
+-        char c = js[parser->pos];
++	/* Skip starting quote */
++	for (; js[parser->pos] != '\0'; parser->pos++) {
++		char c = js[parser->pos];
+ 
+-        /* Quote: end of string */
+-        if(c == '\"') {
+-            token = jsmn_alloc_token(parser, tokens, num_tokens);
+-            if(token == NULL) {
+-                parser->pos = start;
+-                return JSMN_ERROR_NOMEM;
+-            }
+-            jsmn_fill_token(token, JSMN_STRING, start + 1, parser->pos);
++		/* Quote: end of string */
++		if (c == '\"') {
++			token = jsmn_alloc_token(parser, tokens, num_tokens);
++			if (token == NULL) {
++				parser->pos = start;
++				return JSMN_ERROR_NOMEM;
++			}
++			jsmn_fill_token(token, JSMN_STRING, start+1, parser->pos);
+ #ifdef JSMN_PARENT_LINKS
+-            token->parent = parser->toksuper;
++			token->parent = parser->toksuper;
+ #endif
+-            return JSMN_SUCCESS;
+-        }
+-
+-        /* Backslash: Quoted symbol expected */
+-        if(c == '\\') {
+-            parser->pos++;
+-            switch(js[parser->pos]) {
+-            /* Allowed escaped symbols */
+-            case '\"':
+-            case '/' :
+-            case '\\' :
+-            case 'b' :
+-            case 'f' :
+-            case 'r' :
+-            case 'n'  :
+-            case 't' :
+-                break;
+-            /* Allows escaped symbol \uXXXX */
+-            case 'u':
+-                /* TODO */
+-                break;
+-            /* Unexpected symbol */
+-            default:
+-                parser->pos = start;
+-                return JSMN_ERROR_INVAL;
+-            }
+-        }
+-    }
+-    parser->pos = start;
+-    return JSMN_ERROR_PART;
++			return JSMN_SUCCESS;
++		}
++
++		/* Backslash: Quoted symbol expected */
++		if (c == '\\') {
++			parser->pos++;
++			switch (js[parser->pos]) {
++				/* Allowed escaped symbols */
++				case '\"': case '/' : case '\\' : case 'b' :
++				case 'f' : case 'r' : case 'n'  : case 't' :
++					break;
++				/* Allows escaped symbol \uXXXX */
++				case 'u':
++					/* TODO */
++					break;
++				/* Unexpected symbol */
++				default:
++					parser->pos = start;
++					return JSMN_ERROR_INVAL;
++			}
++		}
++	}
++	parser->pos = start;
++	return JSMN_ERROR_PART;
+ }
+ 
+ /**
+  * Parse JSON string and fill tokens.
+  */
+-jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js, jsmntok_t *tokens,
+-                     unsigned int num_tokens)
+-{
+-    jsmnerr_t r;
+-    int i;
+-    jsmntok_t *token;
+-
+-    for(; js[parser->pos] != '\0'; parser->pos++) {
+-        char c;
+-        jsmntype_t type;
+-
+-        c = js[parser->pos];
+-        switch(c) {
+-        case '{':
+-        case '[':
+-            token = jsmn_alloc_token(parser, tokens, num_tokens);
+-            if(token == NULL) {
+-                return JSMN_ERROR_NOMEM;
+-            }
+-            if(parser->toksuper != -1) {
+-                tokens[parser->toksuper].size++;
++jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js, jsmntok_t *tokens, 
++		unsigned int num_tokens) {
++	jsmnerr_t r;
++	int i;
++	jsmntok_t *token;
++
++	for (; js[parser->pos] != '\0'; parser->pos++) {
++		char c;
++		jsmntype_t type;
++
++		c = js[parser->pos];
++		switch (c) {
++			case '{': case '[':
++				token = jsmn_alloc_token(parser, tokens, num_tokens);
++				if (token == NULL)
++					return JSMN_ERROR_NOMEM;
++				if (parser->toksuper != -1) {
++					tokens[parser->toksuper].size++;
+ #ifdef JSMN_PARENT_LINKS
+-                token->parent = parser->toksuper;
++					token->parent = parser->toksuper;
+ #endif
+-            }
+-            token->type = (c == '{' ? JSMN_OBJECT : JSMN_ARRAY);
+-            token->start = parser->pos;
+-            parser->toksuper = parser->toknext - 1;
+-            break;
+-        case '}':
+-        case ']':
+-            type = (c == '}' ? JSMN_OBJECT : JSMN_ARRAY);
++				}
++				token->type = (c == '{' ? JSMN_OBJECT : JSMN_ARRAY);
++				token->start = parser->pos;
++				parser->toksuper = parser->toknext - 1;
++				break;
++			case '}': case ']':
++				type = (c == '}' ? JSMN_OBJECT : JSMN_ARRAY);
+ #ifdef JSMN_PARENT_LINKS
+-            if(parser->toknext < 1) {
+-                return JSMN_ERROR_INVAL;
+-            }
+-            token = &tokens[parser->toknext - 1];
+-            for(;;) {
+-                if(token->start != -1 && token->end == -1) {
+-                    if(token->type != type) {
+-                        return JSMN_ERROR_INVAL;
+-                    }
+-                    token->end = parser->pos + 1;
+-                    parser->toksuper = token->parent;
+-                    break;
+-                }
+-                if(token->parent == -1) {
+-                    break;
+-                }
+-                token = &tokens[token->parent];
+-            }
++				if (parser->toknext < 1) {
++					return JSMN_ERROR_INVAL;
++				}
++				token = &tokens[parser->toknext - 1];
++				for (;;) {
++					if (token->start != -1 && token->end == -1) {
++						if (token->type != type) {
++							return JSMN_ERROR_INVAL;
++						}
++						token->end = parser->pos + 1;
++						parser->toksuper = token->parent;
++						break;
++					}
++					if (token->parent == -1) {
++						break;
++					}
++					token = &tokens[token->parent];
++				}
+ #else
+-            for(i = parser->toknext - 1; i >= 0; i--) {
+-                token = &tokens[i];
+-                if(token->start != -1 && token->end == -1) {
+-                    if(token->type != type) {
+-                        return JSMN_ERROR_INVAL;
+-                    }
+-                    parser->toksuper = -1;
+-                    token->end = parser->pos + 1;
+-                    break;
+-                }
+-            }
+-            /* Error if unmatched closing bracket */
+-            if(i == -1) {
+-                return JSMN_ERROR_INVAL;
+-            }
+-            for(; i >= 0; i--) {
+-                token = &tokens[i];
+-                if(token->start != -1 && token->end == -1) {
+-                    parser->toksuper = i;
+-                    break;
+-                }
+-            }
++				for (i = parser->toknext - 1; i >= 0; i--) {
++					token = &tokens[i];
++					if (token->start != -1 && token->end == -1) {
++						if (token->type != type) {
++							return JSMN_ERROR_INVAL;
++						}
++						parser->toksuper = -1;
++						token->end = parser->pos + 1;
++						break;
++					}
++				}
++				/* Error if unmatched closing bracket */
++				if (i == -1) return JSMN_ERROR_INVAL;
++				for (; i >= 0; i--) {
++					token = &tokens[i];
++					if (token->start != -1 && token->end == -1) {
++						parser->toksuper = i;
++						break;
++					}
++				}
+ #endif
+-            break;
+-        case '\"':
+-            r = jsmn_parse_string(parser, js, tokens, num_tokens);
+-            if(r < 0) {
+-                return r;
+-            }
+-            if(parser->toksuper != -1) {
+-                tokens[parser->toksuper].size++;
+-            }
+-            break;
+-        case '\t' :
+-        case '\r' :
+-        case '\n' :
+-        case ':' :
+-        case ', :
+-        case ' ':
+-            break;
++				break;
++			case '\"':
++				r = jsmn_parse_string(parser, js, tokens, num_tokens);
++				if (r < 0) return r;
++				if (parser->toksuper != -1)
++					tokens[parser->toksuper].size++;
++				break;
++			case '\t' : case '\r' : case '\n' : case ':' : case ',': case ' ': 
++				break;
+ #ifdef JSMN_STRICT
+-        /* In strict mode primitives are: numbers and booleans */
+-        case '-':
+-        case '0':
+-        case '1' :
+-        case '2':
+-        case '3' :
+-        case '4':
+-        case '5':
+-        case '6':
+-        case '7' :
+-        case '8':
+-        case '9':
+-        case 't':
+-        case 'f':
+-        case 'n' :
++			/* In strict mode primitives are: numbers and booleans */
++			case '-': case '0': case '1' : case '2': case '3' : case '4':
++			case '5': case '6': case '7' : case '8': case '9':
++			case 't': case 'f': case 'n' :
+ #else
+-        /* In non-strict mode every unquoted value is a primitive */
+-        default:
++			/* In non-strict mode every unquoted value is a primitive */
++			default:
+ #endif
+-            r = jsmn_parse_primitive(parser, js, tokens, num_tokens);
+-            if(r < 0) {
+-                return r;
+-            }
+-            if(parser->toksuper != -1) {
+-                tokens[parser->toksuper].size++;
+-            }
+-            break;
++				r = jsmn_parse_primitive(parser, js, tokens, num_tokens);
++				if (r < 0) return r;
++				if (parser->toksuper != -1)
++					tokens[parser->toksuper].size++;
++				break;
+ 
+ #ifdef JSMN_STRICT
+-        /* Unexpected char in strict mode */
+-        default:
+-            return JSMN_ERROR_INVAL;
++			/* Unexpected char in strict mode */
++			default:
++				return JSMN_ERROR_INVAL;
+ #endif
+ 
+-        }
+-    }
++		}
++	}
+ 
+-    for(i = parser->toknext - 1; i >= 0; i--) {
+-        /* Unmatched opened object or array */
+-        if(tokens[i].start != -1 && tokens[i].end == -1) {
+-            return JSMN_ERROR_PART;
+-        }
+-    }
++	for (i = parser->toknext - 1; i >= 0; i--) {
++		/* Unmatched opened object or array */
++		if (tokens[i].start != -1 && tokens[i].end == -1) {
++			return JSMN_ERROR_PART;
++		}
++	}
+ 
+-    return JSMN_SUCCESS;
++	return JSMN_SUCCESS;
+ }
+ 
+ /**
+- * Creates a new parser based over a given  buffer with an array of tokens
++ * Creates a new parser based over a given  buffer with an array of tokens 
+  * available.
+  */
+-void jsmn_init(jsmn_parser *parser)
+-{
+-    parser->pos = 0;
+-    parser->toknext = 0;
+-    parser->toksuper = -1;
++void jsmn_init(jsmn_parser *parser) {
++	parser->pos = 0;
++	parser->toknext = 0;
++	parser->toksuper = -1;
+ }
+ 
+diff --git a/lib/jsmn/jsmn_test.c b/lib/jsmn/jsmn_test.c
+index 3517bf4..308faf6 100644
+--- a/lib/jsmn/jsmn_test.c
++++ b/lib/jsmn/jsmn_test.c
+@@ -8,7 +8,7 @@ static int test_passed = 0;
+ static int test_failed = 0;
+ 
+ /* Terminate current test with error */
+-#define fail()  return __LINE__
++#define fail()	return __LINE__
+ 
+ /* Successfull end of the test case */
+ #define done() return 0
+@@ -17,359 +17,348 @@ static int test_failed = 0;
+ #define check(cond) do { if (!(cond)) fail(); } while (0)
+ 
+ /* Test runner */
+-static void test(int (*func)(void), const char *name)
+-{
+-    int r = func();
+-    if(r == 0) {
+-        test_passed++;
+-    } else {
+-        test_failed++;
+-        printf("FAILED: %s (at line %d)\n", name, r);
+-    }
++static void test(int (*func)(void), const char *name) {
++	int r = func();
++	if (r == 0) {
++		test_passed++;
++	} else {
++		test_failed++;
++		printf("FAILED: %s (at line %d)\n", name, r);
++	}
+ }
+ 
+ #define TOKEN_EQ(t, tok_start, tok_end, tok_type) \
+-    ((t).start == tok_start \
+-     && (t).end == tok_end  \
+-     && (t).type == (tok_type))
++	((t).start == tok_start \
++	 && (t).end == tok_end  \
++	 && (t).type == (tok_type))
+ 
+ #define TOKEN_STRING(js, t, s) \
+-    (strncmp(js+(t).start, s, (t).end - (t).start) == 0 \
+-     && strlen(s) == (t).end - (t).start)
++	(strncmp(js+(t).start, s, (t).end - (t).start) == 0 \
++	 && strlen(s) == (t).end - (t).start)
+ 
+ #define TOKEN_PRINT(t) \
+-    printf("start: %d, end: %d, type: %d, size: %d\n", \
+-            (t).start, (t).end, (t).type, (t).size)
+-
+-int test_empty()
+-{
+-    const char *js;
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t t[10];
+-
+-    js = "{}";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, t, 10);
+-    check(r == JSMN_SUCCESS);
+-    check(t[0].type == JSMN_OBJECT);
+-    check(t[0].start == 0 && t[0].end == 2);
+-
+-    js = "[]";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, t, 10);
+-    check(r == JSMN_SUCCESS);
+-    check(t[0].type == JSMN_ARRAY);
+-    check(t[0].start == 0 && t[0].end == 2);
+-
+-    js = "{\"a\":[]}";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, t, 10);
+-    check(r == JSMN_SUCCESS);
+-    check(t[0].type == JSMN_OBJECT && t[0].start == 0 && t[0].end == 8);
+-    check(t[1].type == JSMN_STRING && t[1].start == 2 && t[1].end == 3);
+-    check(t[2].type == JSMN_ARRAY && t[2].start == 5 && t[2].end == 7);
+-
+-    js = "[{}, }]";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, t, 10);
+-    check(r == JSMN_SUCCESS);
+-    check(t[0].type == JSMN_ARRAY && t[0].start == 0 && t[0].end == 7);
+-    check(t[1].type == JSMN_OBJECT && t[1].start == 1 && t[1].end == 3);
+-    check(t[2].type == JSMN_OBJECT && t[2].start == 4 && t[2].end == 6);
+-    return 0;
++	printf("start: %d, end: %d, type: %d, size: %d\n", \
++			(t).start, (t).end, (t).type, (t).size)
++
++int test_empty() {
++	const char *js;
++	int r;
++	jsmn_parser p;
++	jsmntok_t t[10];
++
++	js = "{}";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, t, 10);
++	check(r == JSMN_SUCCESS);
++	check(t[0].type == JSMN_OBJECT);
++	check(t[0].start == 0 && t[0].end == 2);
++
++	js = "[]";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, t, 10);
++	check(r == JSMN_SUCCESS);
++	check(t[0].type == JSMN_ARRAY);
++	check(t[0].start == 0 && t[0].end == 2);
++
++	js = "{\"a\":[]}";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, t, 10);
++	check(r == JSMN_SUCCESS);
++	check(t[0].type == JSMN_OBJECT && t[0].start == 0 && t[0].end == 8);
++	check(t[1].type == JSMN_STRING && t[1].start == 2 && t[1].end == 3);
++	check(t[2].type == JSMN_ARRAY && t[2].start == 5 && t[2].end == 7);
++
++	js = "[{},{}]";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, t, 10);
++	check(r == JSMN_SUCCESS);
++	check(t[0].type == JSMN_ARRAY && t[0].start == 0 && t[0].end == 7);
++	check(t[1].type == JSMN_OBJECT && t[1].start == 1 && t[1].end == 3);
++	check(t[2].type == JSMN_OBJECT && t[2].start == 4 && t[2].end == 6);
++	return 0;
+ }
+ 
+-int test_simple()
+-{
+-    const char *js;
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t tokens[10];
+-
+-    js = "{\"a\": 0}";
+-
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tokens, 10);
+-    check(r == JSMN_SUCCESS);
+-    check(TOKEN_EQ(tokens[0], 0, 8, JSMN_OBJECT));
+-    check(TOKEN_EQ(tokens[1], 2, 3, JSMN_STRING));
+-    check(TOKEN_EQ(tokens[2], 6, 7, JSMN_PRIMITIVE));
+-
+-    check(TOKEN_STRING(js, tokens[0], js));
+-    check(TOKEN_STRING(js, tokens[1], "a"));
+-    check(TOKEN_STRING(js, tokens[2], "0"));
+-
+-    jsmn_init(&p);
+-    js = "[\"a\":{},\"b\":{}]";
+-    r = jsmn_parse(&p, js, tokens, 10);
+-    check(r == JSMN_SUCCESS);
+-
+-    jsmn_init(&p);
+-    js = "{\n \"Day\": 26,\n \"Month\": 9,\n \"Year\": 12\n }";
+-    r = jsmn_parse(&p, js, tokens, 10);
+-    check(r == JSMN_SUCCESS);
+-
+-    return 0;
++int test_simple() {
++	const char *js;
++	int r;
++	jsmn_parser p;
++	jsmntok_t tokens[10];
++
++	js = "{\"a\": 0}";
++
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tokens, 10);
++	check(r == JSMN_SUCCESS);
++	check(TOKEN_EQ(tokens[0], 0, 8, JSMN_OBJECT));
++	check(TOKEN_EQ(tokens[1], 2, 3, JSMN_STRING));
++	check(TOKEN_EQ(tokens[2], 6, 7, JSMN_PRIMITIVE));
++
++	check(TOKEN_STRING(js, tokens[0], js));
++	check(TOKEN_STRING(js, tokens[1], "a"));
++	check(TOKEN_STRING(js, tokens[2], "0"));
++
++	jsmn_init(&p);
++	js = "[\"a\":{},\"b\":{}]";
++	r = jsmn_parse(&p, js, tokens, 10);
++	check(r == JSMN_SUCCESS);
++
++	jsmn_init(&p);
++	js = "{\n \"Day\": 26,\n \"Month\": 9,\n \"Year\": 12\n }";
++	r = jsmn_parse(&p, js, tokens, 10);
++	check(r == JSMN_SUCCESS);
++
++	return 0;
+ }
+ 
+-int test_primitive()
+-{
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t tok[10];
+-    const char *js;
++int test_primitive() {
++	int r;
++	jsmn_parser p;
++	jsmntok_t tok[10];
++	const char *js;
+ #ifndef JSMN_STRICT
+-    js = "\"boolVar\" : true";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_PRIMITIVE);
+-    check(TOKEN_STRING(js, tok[0], "boolVar"));
+-    check(TOKEN_STRING(js, tok[1], "true"));
+-
+-    js = "\"boolVar\" : false";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_PRIMITIVE);
+-    check(TOKEN_STRING(js, tok[0], "boolVar"));
+-    check(TOKEN_STRING(js, tok[1], "false"));
+-
+-    js = "\"intVar\" : 12345";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_PRIMITIVE);
+-    check(TOKEN_STRING(js, tok[0], "intVar"));
+-    check(TOKEN_STRING(js, tok[1], "12345"));
+-
+-    js = "\"floatVar\" : 12.345";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_PRIMITIVE);
+-    check(TOKEN_STRING(js, tok[0], "floatVar"));
+-    check(TOKEN_STRING(js, tok[1], "12.345"));
+-
+-    js = "\"nullVar\" : null";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_PRIMITIVE);
+-    check(TOKEN_STRING(js, tok[0], "nullVar"));
+-    check(TOKEN_STRING(js, tok[1], "null"));
++	js = "\"boolVar\" : true";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING 
++			&& tok[1].type == JSMN_PRIMITIVE);
++	check(TOKEN_STRING(js, tok[0], "boolVar"));
++	check(TOKEN_STRING(js, tok[1], "true"));
++
++	js = "\"boolVar\" : false";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING 
++			&& tok[1].type == JSMN_PRIMITIVE);
++	check(TOKEN_STRING(js, tok[0], "boolVar"));
++	check(TOKEN_STRING(js, tok[1], "false"));
++
++	js = "\"intVar\" : 12345";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING 
++			&& tok[1].type == JSMN_PRIMITIVE);
++	check(TOKEN_STRING(js, tok[0], "intVar"));
++	check(TOKEN_STRING(js, tok[1], "12345"));
++
++	js = "\"floatVar\" : 12.345";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING 
++			&& tok[1].type == JSMN_PRIMITIVE);
++	check(TOKEN_STRING(js, tok[0], "floatVar"));
++	check(TOKEN_STRING(js, tok[1], "12.345"));
++
++	js = "\"nullVar\" : null";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING 
++			&& tok[1].type == JSMN_PRIMITIVE);
++	check(TOKEN_STRING(js, tok[0], "nullVar"));
++	check(TOKEN_STRING(js, tok[1], "null"));
+ #endif
+-    return 0;
++	return 0;
+ }
+ 
+-int test_string()
+-{
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t tok[10];
+-    const char *js;
+-
+-    js = "\"strVar\" : \"hello world\"";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_STRING);
+-    check(TOKEN_STRING(js, tok[0], "strVar"));
+-    check(TOKEN_STRING(js, tok[1], "hello world"));
+-
+-    js = "\"strVar\" : \"escapes: \\/\\r\\n\\t\\b\\f\\\"\\\\\"";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_STRING);
+-    check(TOKEN_STRING(js, tok[0], "strVar"));
+-    check(TOKEN_STRING(js, tok[1], "escapes: \\/\\r\\n\\t\\b\\f\\\"\\\\"));
+-
+-    js = "\"strVar\" : \"\"";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_STRING);
+-    check(TOKEN_STRING(js, tok[0], "strVar"));
+-    check(TOKEN_STRING(js, tok[1], ""));
+-
+-    return 0;
++int test_string() {
++	int r;
++	jsmn_parser p;
++	jsmntok_t tok[10];
++	const char *js;
++
++	js = "\"strVar\" : \"hello world\"";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING 
++			&& tok[1].type == JSMN_STRING);
++	check(TOKEN_STRING(js, tok[0], "strVar"));
++	check(TOKEN_STRING(js, tok[1], "hello world"));
++
++	js = "\"strVar\" : \"escapes: \\/\\r\\n\\t\\b\\f\\\"\\\\\"";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING 
++			&& tok[1].type == JSMN_STRING);
++	check(TOKEN_STRING(js, tok[0], "strVar"));
++	check(TOKEN_STRING(js, tok[1], "escapes: \\/\\r\\n\\t\\b\\f\\\"\\\\"));
++
++	js = "\"strVar\" : \"\"";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING 
++			&& tok[1].type == JSMN_STRING);
++	check(TOKEN_STRING(js, tok[0], "strVar"));
++	check(TOKEN_STRING(js, tok[1], ""));
++
++	return 0;
+ }
+ 
+-int test_partial_string()
+-{
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t tok[10];
+-    const char *js;
+-
+-    jsmn_init(&p);
+-    js = "\"x\": \"va";
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_ERROR_PART && tok[0].type == JSMN_STRING);
+-    check(TOKEN_STRING(js, tok[0], "x"));
+-    check(p.toknext == 1);
+-
+-    js = "\"x\": \"valu";
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_ERROR_PART && tok[0].type == JSMN_STRING);
+-    check(TOKEN_STRING(js, tok[0], "x"));
+-    check(p.toknext == 1);
+-
+-    js = "\"x\": \"value\"";
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_STRING);
+-    check(TOKEN_STRING(js, tok[0], "x"));
+-    check(TOKEN_STRING(js, tok[1], "value"));
+-
+-    js = "\"x\": \"value\", \"y\": \"value y\"";
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
+-          && tok[1].type == JSMN_STRING && tok[2].type == JSMN_STRING
+-          && tok[3].type == JSMN_STRING);
+-    check(TOKEN_STRING(js, tok[0], "x"));
+-    check(TOKEN_STRING(js, tok[1], "value"));
+-    check(TOKEN_STRING(js, tok[2], "y"));
+-    check(TOKEN_STRING(js, tok[3], "value y"));
+-
+-    return 0;
++int test_partial_string() {
++	int r;
++	jsmn_parser p;
++	jsmntok_t tok[10];
++	const char *js;
++
++	jsmn_init(&p);
++	js = "\"x\": \"va";
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_ERROR_PART && tok[0].type == JSMN_STRING);
++	check(TOKEN_STRING(js, tok[0], "x"));
++	check(p.toknext == 1);
++
++	js = "\"x\": \"valu";
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_ERROR_PART && tok[0].type == JSMN_STRING);
++	check(TOKEN_STRING(js, tok[0], "x"));
++	check(p.toknext == 1);
++
++	js = "\"x\": \"value\"";
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
++			&& tok[1].type == JSMN_STRING);
++	check(TOKEN_STRING(js, tok[0], "x"));
++	check(TOKEN_STRING(js, tok[1], "value"));
++
++	js = "\"x\": \"value\", \"y\": \"value y\"";
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_STRING
++			&& tok[1].type == JSMN_STRING && tok[2].type == JSMN_STRING
++			&& tok[3].type == JSMN_STRING);
++	check(TOKEN_STRING(js, tok[0], "x"));
++	check(TOKEN_STRING(js, tok[1], "value"));
++	check(TOKEN_STRING(js, tok[2], "y"));
++	check(TOKEN_STRING(js, tok[3], "value y"));
++
++	return 0;
+ }
+ 
+-int test_unquoted_keys()
+-{
++int test_unquoted_keys() {
+ #ifndef JSMN_STRICT
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t tok[10];
+-    const char *js;
+-
+-    jsmn_init(&p);
+-    js = "key1: \"value\"\nkey2 : 123";
+-
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_PRIMITIVE
+-          && tok[1].type == JSMN_STRING && tok[2].type == JSMN_PRIMITIVE
+-          && tok[3].type == JSMN_PRIMITIVE);
+-    check(TOKEN_STRING(js, tok[0], "key1"));
+-    check(TOKEN_STRING(js, tok[1], "value"));
+-    check(TOKEN_STRING(js, tok[2], "key2"));
+-    check(TOKEN_STRING(js, tok[3], "123"));
++	int r;
++	jsmn_parser p;
++	jsmntok_t tok[10];
++	const char *js;
++
++	jsmn_init(&p);
++	js = "key1: \"value\"\nkey2 : 123";
++
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_PRIMITIVE
++			&& tok[1].type == JSMN_STRING && tok[2].type == JSMN_PRIMITIVE
++			&& tok[3].type == JSMN_PRIMITIVE);
++	check(TOKEN_STRING(js, tok[0], "key1"));
++	check(TOKEN_STRING(js, tok[1], "value"));
++	check(TOKEN_STRING(js, tok[2], "key2"));
++	check(TOKEN_STRING(js, tok[3], "123"));
+ #endif
+-    return 0;
++	return 0;
+ }
+ 
+-int test_partial_array()
+-{
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t tok[10];
+-    const char *js;
+-
+-    jsmn_init(&p);
+-    js = "  [ 1, true, ";
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY
+-          && tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE);
+-
+-    js = "  [ 1, true, [123, \"hello";
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY
+-          && tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE
+-          && tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE);
+-
+-    js = "  [ 1, true, [123, \"hello\"]";
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY
+-          && tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE
+-          && tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE
+-          && tok[5].type == JSMN_STRING);
+-    /* check child nodes of the 2nd array */
+-    check(tok[3].size == 2);
+-
+-    js = "  [ 1, true, [123, \"hello\"]]";
+-    r = jsmn_parse(&p, js, tok, 10);
+-    check(r == JSMN_SUCCESS && tok[0].type == JSMN_ARRAY
+-          && tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE
+-          && tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE
+-          && tok[5].type == JSMN_STRING);
+-    check(tok[3].size == 2);
+-    check(tok[0].size == 3);
+-    return 0;
++int test_partial_array() {
++	int r;
++	jsmn_parser p;
++	jsmntok_t tok[10];
++	const char *js;
++
++	jsmn_init(&p);
++	js = "  [ 1, true, ";
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY 
++			&& tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE);
++
++	js = "  [ 1, true, [123, \"hello";
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY 
++			&& tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE
++			&& tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE);
++
++	js = "  [ 1, true, [123, \"hello\"]";
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY 
++			&& tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE
++			&& tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE
++			&& tok[5].type == JSMN_STRING);
++	/* check child nodes of the 2nd array */
++	check(tok[3].size == 2);
++
++	js = "  [ 1, true, [123, \"hello\"]]";
++	r = jsmn_parse(&p, js, tok, 10);
++	check(r == JSMN_SUCCESS && tok[0].type == JSMN_ARRAY 
++			&& tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE
++			&& tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE
++			&& tok[5].type == JSMN_STRING);
++	check(tok[3].size == 2);
++	check(tok[0].size == 3);
++	return 0;
+ }
+ 
+-int test_array_nomem()
+-{
+-    int i;
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t toksmall[10], toklarge[10];
+-    const char *js;
++int test_array_nomem() {
++	int i;
++	int r;
++	jsmn_parser p;
++	jsmntok_t toksmall[10], toklarge[10];
++	const char *js;
+ 
+-    js = "  [ 1, true, [123, \"hello\"]]";
++	js = "  [ 1, true, [123, \"hello\"]]";
+ 
+-    for(i = 0; i < 6; i++) {
+-        jsmn_init(&p);
+-        memset(toksmall, 0, sizeof(toksmall));
+-        memset(toklarge, 0, sizeof(toklarge));
+-        r = jsmn_parse(&p, js, toksmall, i);
+-        check(r == JSMN_ERROR_NOMEM);
++	for (i = 0; i < 6; i++) {
++		jsmn_init(&p);
++		memset(toksmall, 0, sizeof(toksmall));
++		memset(toklarge, 0, sizeof(toklarge));
++		r = jsmn_parse(&p, js, toksmall, i);
++		check(r == JSMN_ERROR_NOMEM);
+ 
+-        memcpy(toklarge, toksmall, sizeof(toksmall));
++		memcpy(toklarge, toksmall, sizeof(toksmall));
+ 
+-        r = jsmn_parse(&p, js, toklarge, 10);
+-        check(r == JSMN_SUCCESS);
++		r = jsmn_parse(&p, js, toklarge, 10);
++		check(r == JSMN_SUCCESS);
+ 
+-        check(toklarge[0].type == JSMN_ARRAY && toklarge[0].size == 3);
+-        check(toklarge[3].type == JSMN_ARRAY && toklarge[3].size == 2);
+-    }
+-    return 0;
++		check(toklarge[0].type == JSMN_ARRAY && toklarge[0].size == 3);
++		check(toklarge[3].type == JSMN_ARRAY && toklarge[3].size == 2);
++	}
++	return 0;
+ }
+ 
+-int test_objects_arrays()
+-{
+-    int i;
+-    int r;
+-    jsmn_parser p;
+-    jsmntok_t tokens[10];
+-    const char *js;
+-
+-    js = "[10}";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tokens, 10);
+-    check(r == JSMN_ERROR_INVAL);
+-
+-    js = "[10]";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tokens, 10);
+-    check(r == JSMN_SUCCESS);
+-
+-    js = "{\"a\": 1]";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tokens, 10);
+-    check(r == JSMN_ERROR_INVAL);
+-
+-    js = "{\"a\": 1}";
+-    jsmn_init(&p);
+-    r = jsmn_parse(&p, js, tokens, 10);
+-    check(r == JSMN_SUCCESS);
+-
+-    return 0;
++int test_objects_arrays() {
++	int i;
++	int r;
++	jsmn_parser p;
++	jsmntok_t tokens[10];
++	const char *js;
++
++	js = "[10}";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tokens, 10);
++	check(r == JSMN_ERROR_INVAL);
++
++	js = "[10]";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tokens, 10);
++	check(r == JSMN_SUCCESS);
++
++	js = "{\"a\": 1]";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tokens, 10);
++	check(r == JSMN_ERROR_INVAL);
++
++	js = "{\"a\": 1}";
++	jsmn_init(&p);
++	r = jsmn_parse(&p, js, tokens, 10);
++	check(r == JSMN_SUCCESS);
++
++	return 0;
+ }
+ 
+-int main()
+-{
+-    test(test_empty, "general test for a empty JSON objects/arrays");
+-    test(test_simple, "general test for a simple JSON string");
+-    test(test_primitive, "test primitive JSON data types");
+-    test(test_string, "test string JSON data types");
+-    test(test_partial_string, "test partial JSON string parsing");
+-    test(test_partial_array, "test partial array reading");
+-    test(test_array_nomem, "test array reading with a smaller number of tokens");
+-    test(test_unquoted_keys, "test unquoted keys (like in JavaScript)");
+-    test(test_objects_arrays, "test objects and arrays");
+-    printf("\nPASSED: %d\nFAILED: %d\n", test_passed, test_failed);
+-    return 0;
++int main() {
++	test(test_empty, "general test for a empty JSON objects/arrays");
++	test(test_simple, "general test for a simple JSON string");
++	test(test_primitive, "test primitive JSON data types");
++	test(test_string, "test string JSON data types");
++	test(test_partial_string, "test partial JSON string parsing");
++	test(test_partial_array, "test partial array reading");
++	test(test_array_nomem, "test array reading with a smaller number of tokens");
++	test(test_unquoted_keys, "test unquoted keys (like in JavaScript)");
++	test(test_objects_arrays, "test objects and arrays");
++	printf("\nPASSED: %d\nFAILED: %d\n", test_passed, test_failed);
++	return 0;
+ }
+ 
+diff --git a/lib/misc.c b/lib/misc.c
+index 2198263..edd2f99 100644
+--- a/lib/misc.c
++++ b/lib/misc.c
+@@ -21,14 +21,14 @@
+ #include "stringlib.h"
+ #include "misc.h"
+ 
+-__attribute__((visibility("default")))
+-size_t glyr_levenshtein_strcmp(const char *string, const char *other)
++__attribute__ ( (visibility ("default") ) )
++size_t glyr_levenshtein_strcmp (const char * string, const char * other)
+ {
+-    return levenshtein_safe_strcmp(string, other);
++    return levenshtein_safe_strcmp (string,other);
+ }
+ 
+-__attribute__((visibility("default")))
+-size_t glyr_levenshtein_strnormcmp(const char *string, const char *other)
++__attribute__ ( (visibility ("default") ) )
++size_t glyr_levenshtein_strnormcmp (const char * string, const char * other)
+ {
+-    return levenshtein_strnormcmp(NULL, string, other);
++    return levenshtein_strnormcmp (NULL,string,other);
+ }
+diff --git a/lib/register_plugins.c b/lib/register_plugins.c
+index 989e125..f317739 100644
+--- a/lib/register_plugins.c
++++ b/lib/register_plugins.c
+@@ -23,15 +23,15 @@
+ #include "register_plugins.h"
+ 
+ /* Warning: All functions in here are _not_ threadsafe. */
+-static void get_list_from_type(MetaDataFetcher *fetch);
+-static void register_provider_plugins(void);
+-static void init_provider_list(void);
++static void get_list_from_type (MetaDataFetcher * fetch);
++static void register_provider_plugins (void);
++static void init_provider_list (void);
+ 
+ /* global provider plugin list */
+-GList *glyrMetaDataSourceList = NULL;
++GList * glyrMetaDataSourceList = NULL;
+ 
+ /* List of MetaDataFetchers */
+-GList *glyrMetaDataPluginList = NULL;
++GList * glyrMetaDataPluginList = NULL;
+ 
+ 
+ /* Externalized fetcher vars, add yours here  {{{ */
+@@ -115,7 +115,7 @@ extern MetaDataSource musictree_provider_src;
+ /////////////////////////////////
+ 
+ /* Get fetcher list */
+-GList *r_getFList(void)
++GList * r_getFList (void)
+ {
+     return glyrMetaDataPluginList;
+ }
+@@ -123,96 +123,97 @@ GList *r_getFList(void)
+ /////////////////////////////////
+ 
+ /* Get Source list */
+-GList *r_getSList(void)
++GList * r_getSList (void)
+ {
+     return glyrMetaDataSourceList;
+ }
+ 
+ /////////////////////////////////
+ 
+-void plugin_add_to_list(GList **list, void *data)
++void plugin_add_to_list (GList ** list, void * data)
+ {
+-    if(list != NULL) {
+-        *list = g_list_prepend(*list, data);
++    if (list != NULL)
++    {
++        *list = g_list_prepend (*list,data);
+     }
+ }
+ 
+ /////////////////////////////////
+ 
+-static void register_provider_plugins(void)
++static void register_provider_plugins (void)
+ {
+-    plugin_add_to_list(&glyrMetaDataSourceList, &ainfo_lastfm_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &ainfo_lyricsreg_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &ainfo_bbcmusic_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &ainfo_echonest_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &albumlist_musicbrainz_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&ainfo_lastfm_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&ainfo_lyricsreg_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&ainfo_bbcmusic_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&ainfo_echonest_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&albumlist_musicbrainz_src);
+ 
+     // FIXME: Seems to be broken too. (serverside)
+-    //plugin_add_to_list(&glyrMetaDataSourceList, cover_albumart_src);
++    //plugin_add_to_list(&glyrMetaDataSourceList,&cover_albumart_src);
+ 
+     // FIXME: Silly amazon requires to be a Seller to use their API
+-    // plugin_add_to_list(&glyrMetaDataSourceList, cover_amazon_src);
++    // plugin_add_to_list(&glyrMetaDataSourceList,&cover_amazon_src);
+ 
+     // FIXME: Coverhunt seems to be down. Add again when up and running
+-    //plugin_add_to_list(&glyrMetaDataSourceList, cover_coverhunt_src);
++    //plugin_add_to_list(&glyrMetaDataSourceList,&cover_coverhunt_src);
+ 
+ 
+     // FIXME: No real data yet there.. adele:19 gives a correct mbid, but no results
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_coverartarchive_src);
+-
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_discogs_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_google_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_lastfm_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_jamendo_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_lyricswiki_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_rhapsody_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_picsearch_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_musicbrainz_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &cover_slothradio_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_lipwalk_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_lyrdb_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_lyricsreg_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_lyricstime_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_lyricsvip_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_lyricswiki_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_lyrix_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_magistrix_src);
+-    //plugin_add_to_list (&glyrMetaDataSourceList, lyrics_metrolyrics_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_metallum_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_elyrics_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_vagalume_src);
++    plugin_add_to_list(&glyrMetaDataSourceList,&cover_coverartarchive_src);
++
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_discogs_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_google_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_lastfm_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_jamendo_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_lyricswiki_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_rhapsody_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_picsearch_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_musicbrainz_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&cover_slothradio_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_lipwalk_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_lyrdb_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_lyricsreg_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_lyricstime_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_lyricsvip_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_lyricswiki_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_lyrix_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_magistrix_src);
++    //plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_metrolyrics_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_metallum_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_elyrics_src);
++	plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_vagalume_src);
+ 
+     // FIXME: Chartlyrics reacts very slowly, and often not at all
+     // add again when running again ( :( - good api though)
+     // 28.1.2012: Seems to be on again, API fails too often though still.
+-    plugin_add_to_list(&glyrMetaDataSourceList, &lyrics_chartlyrics_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &photos_flickr_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &photos_google_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &photos_lastfm_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &photos_discogs_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &photos_singerpictures_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &photos_rhapsody_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &photos_picsearch_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &photos_bbcmusic_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &relations_musicbrainz_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&lyrics_chartlyrics_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&photos_flickr_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&photos_google_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&photos_lastfm_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&photos_discogs_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&photos_singerpictures_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&photos_rhapsody_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&photos_picsearch_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&photos_bbcmusic_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&relations_musicbrainz_src);
+ 
+     // FIXME: Silly amazon requires to be a Seller to use their API
+-    //plugin_add_to_list(&glyrMetaDataSourceList, review_amazon_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &review_metallum_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &review_echonest_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &similar_artist_lastfm_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &similar_song_lastfm_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &tags_musicbrainz_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &tracklist_musicbrainz_src);
++    //plugin_add_to_list(&glyrMetaDataSourceList,&review_amazon_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&review_metallum_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&review_echonest_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&similar_artist_lastfm_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&similar_song_lastfm_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&tags_musicbrainz_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&tracklist_musicbrainz_src);
+     // FIXME: Searchfunction of guitaretabs seems to be broken
+-    //plugin_add_to_list(&glyrMetaDataSourceList, guitartabs_guitaretab_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &guitartabs_chordie_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &backdrops_htbackdrops_src);
++    //plugin_add_to_list(&glyrMetaDataSourceList,&guitartabs_guitaretab_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&guitartabs_chordie_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&backdrops_htbackdrops_src);
+ 
+     /* Special offline providers */
+-    plugin_add_to_list(&glyrMetaDataSourceList, &relations_generated_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &local_provider_src);
+-    plugin_add_to_list(&glyrMetaDataSourceList, &musictree_provider_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&relations_generated_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&local_provider_src);
++    plugin_add_to_list (&glyrMetaDataSourceList,&musictree_provider_src);
+ }
+ 
+ /////////////////////////////////
+@@ -221,10 +222,10 @@ static void register_provider_plugins(void)
+  * This has no actual practical use, it's just that pretty plugins are listed
+  * first in outputs. Actual sorting is not threadsafe!
+  */
+-static gint compare_by_priority(gconstpointer a, gconstpointer b)
++static gint compare_by_priority (gconstpointer a, gconstpointer b)
+ {
+-    const MetaDataSource *sa = a;
+-    const MetaDataSource *sb = b;
++    const MetaDataSource * sa = a;
++    const MetaDataSource * sb = b;
+     return (sa != NULL && sb != NULL) ?
+            (sa->quality * sa->speed -
+             sb->quality * sb->speed
+@@ -233,58 +234,62 @@ static gint compare_by_priority(gconstpointer a, gconstpointer b)
+ 
+ /////////////////////////////////
+ 
+-static void get_list_from_type(MetaDataFetcher *fetch)
++static void get_list_from_type (MetaDataFetcher * fetch)
+ {
+-    GList *src;
+-    for(src = glyrMetaDataSourceList; src; src = src->next) {
+-        MetaDataSource *item = src->data;
+-        if(item && (fetch->type == item->type || item->type == GLYR_GET_ANY)) {
+-            fetch->provider = g_list_prepend(fetch->provider, item);
+-            if(item->data_type == GLYR_TYPE_UNKNOWN) {
++    GList * src;
++    for (src = glyrMetaDataSourceList; src; src = src->next)
++    {
++        MetaDataSource * item = src->data;
++        if (item && (fetch->type == item->type || item->type == GLYR_GET_ANY) )
++        {
++            fetch->provider = g_list_prepend (fetch->provider,item);
++            if (item->data_type == GLYR_TYPE_UNKNOWN)
++            {
+                 item->data_type = fetch->default_data_type;
+             }
+         }
+ 
+     }
+-    fetch->provider = g_list_sort(fetch->provider, compare_by_priority);
++    fetch->provider = g_list_sort (fetch->provider,compare_by_priority);
+ 
+ }
+ 
+ /////////////////////////////////
+ 
+-static void init_provider_list(void)
++static void init_provider_list (void)
+ {
+-    for(GList *fetch = glyrMetaDataPluginList; fetch; fetch = fetch->next) {
+-        get_list_from_type((MetaDataFetcher *)(fetch->data));
+-    }
++    for (GList * fetch = glyrMetaDataPluginList; fetch; fetch = fetch->next)
++        get_list_from_type ( (MetaDataFetcher *) (fetch->data) );
+ }
+ 
+ /////////////////////////////////
+ 
+ /* Register fetchers */
+-void register_fetcher_plugins(void)
++void register_fetcher_plugins (void)
+ {
+     /* add yours here */
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_cover);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_lyrics);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_artistphotos);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_artistbio);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_similar_artists);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_similar_song);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_review);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_albumlist);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_tags);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_relations);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_tracklist);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_guitartabs);
+-    plugin_add_to_list(&glyrMetaDataPluginList, &glyrFetcher_backdrops);
+-
+-    glyrMetaDataPluginList = g_list_reverse(glyrMetaDataPluginList);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_cover);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_lyrics);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_artistphotos);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_artistbio);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_similar_artists);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_similar_song);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_review);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_albumlist);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_tags);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_relations);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_tracklist);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_guitartabs);
++    plugin_add_to_list (&glyrMetaDataPluginList,&glyrFetcher_backdrops);
++
++    glyrMetaDataPluginList = g_list_reverse (glyrMetaDataPluginList);
+ 
+     /* call init() */
+-    for(GList *elem = glyrMetaDataPluginList; elem; elem = elem->next) {
+-        MetaDataFetcher *fetch = elem->data;
+-        if(fetch->init != NULL) {
++    for (GList * elem = glyrMetaDataPluginList; elem; elem = elem->next)
++    {
++        MetaDataFetcher * fetch = elem->data;
++        if (fetch->init != NULL)
++        {
+             fetch->init();
+         }
+     }
+@@ -298,73 +303,86 @@ void register_fetcher_plugins(void)
+ /////////////////////////////////
+ 
+ /* Unregister 'em again */
+-void unregister_fetcher_plugins(void)
++void unregister_fetcher_plugins (void)
+ {
+     /* Destroy all fetchers */
+-    if(glyrMetaDataPluginList) {
+-        GList *elem;
+-        for(elem = glyrMetaDataPluginList; elem != NULL; elem = elem->next) {
+-            MetaDataFetcher *item = elem->data;
+-            if(item->destroy != NULL) {
++    if (glyrMetaDataPluginList)
++    {
++        GList * elem;
++        for (elem = glyrMetaDataPluginList; elem != NULL; elem = elem->next)
++        {
++            MetaDataFetcher * item = elem->data;
++            if (item->destroy != NULL)
++            {
+                 item->destroy();
+             }
+-            g_list_free(item->provider);
++            g_list_free (item->provider);
+             item->provider = NULL;
+         }
+-        g_list_free(glyrMetaDataPluginList);
++        g_list_free (glyrMetaDataPluginList);
+         glyrMetaDataPluginList = NULL;
+     }
+ 
+     /* Also kill others */
+-    if(!glyrMetaDataSourceList) {
+-        g_list_free(glyrMetaDataSourceList);
++    if (!glyrMetaDataSourceList)
++    {
++        g_list_free (glyrMetaDataSourceList);
+         glyrMetaDataSourceList = NULL;
+     }
+ }
+ 
+ /////////////////////////////////
+ 
+-GlyrFetcherInfo *get_plugin_info(void)
++GlyrFetcherInfo * get_plugin_info (void)
+ {
+-    GlyrFetcherInfo *head = NULL;
+-    GlyrFetcherInfo *prev_fetcher = NULL;
+-    for(GList *elem0 = r_getFList(); elem0; elem0 = elem0->next) {
+-        MetaDataFetcher *fetch = elem0->data;
+-        GlyrFetcherInfo   *finfo = g_malloc0(sizeof(GlyrFetcherInfo));
+-
+-        GlyrSourceInfo *prev_source = NULL;
+-        for(GList *elem1 = r_getSList(); elem1; elem1 = elem1->next) {
+-            MetaDataSource *source = elem1->data;
+-            if(source && source->type == fetch->type) {
+-                GlyrSourceInfo   *sinfos = g_malloc0(sizeof(GlyrSourceInfo));
++    GlyrFetcherInfo * head = NULL;
++    GlyrFetcherInfo * prev_fetcher = NULL;
++    for (GList * elem0 = r_getFList(); elem0; elem0 = elem0->next)
++    {
++        MetaDataFetcher * fetch = elem0->data;
++        GlyrFetcherInfo  * finfo = g_malloc0 (sizeof (GlyrFetcherInfo) );
++
++        GlyrSourceInfo * prev_source = NULL;
++        for (GList * elem1 = r_getSList(); elem1; elem1 = elem1->next)
++        {
++            MetaDataSource * source = elem1->data;
++            if (source && source->type == fetch->type)
++            {
++                GlyrSourceInfo  * sinfos = g_malloc0 (sizeof (GlyrSourceInfo) );
+ 
+                 sinfos->quality = source->quality;
+                 sinfos->speed   = source->speed;
+                 sinfos->key     = source->key;
+                 sinfos->type    = source->type;
+                 sinfos->lang_aware = source->lang_aware;
+-                sinfos->name    = g_strdup(source->name);
++                sinfos->name    = g_strdup (source->name);
+ 
+-                if(prev_source != NULL) {
++                if (prev_source != NULL)
++                {
+                     prev_source->next = sinfos;
+                     sinfos->prev = prev_source;
+-                } else {
++                }
++                else
++                {
+                     finfo->head = sinfos;
+                 }
+                 prev_source = sinfos;
+             }
+         }
+ 
+-        if(prev_fetcher != NULL) {
++        if (prev_fetcher != NULL)
++        {
+             prev_fetcher->next = finfo;
+             finfo->prev = prev_fetcher;
+-        } else {
++        }
++        else
++        {
+             head = finfo;
+         }
+ 
+         prev_fetcher = finfo;
+ 
+-        finfo->name = g_strdup(fetch->name);
++        finfo->name = g_strdup (fetch->name);
+         finfo->type = fetch->type;
+         finfo->reqs = fetch->reqs;
+     }
+@@ -373,33 +391,37 @@ GlyrFetcherInfo *get_plugin_info(void)
+ 
+ /////////////////////////////////
+ 
+-static void free_single_item(GlyrFetcherInfo *info)
++static void free_single_item (GlyrFetcherInfo * info)
+ {
+-    if(info != NULL) {
+-        GlyrSourceInfo *elem = info->head;
+-        while(elem != NULL) {
+-            GlyrSourceInfo *to_delete = elem;
++    if (info != NULL)
++    {
++        GlyrSourceInfo * elem = info->head;
++        while (elem != NULL)
++        {
++            GlyrSourceInfo * to_delete = elem;
+             elem = elem->next;
+ 
+-            g_free(to_delete->name);
+-            g_free(to_delete);
++            g_free (to_delete->name);
++            g_free (to_delete);
+         }
+-        g_free((gchar *) info->name);
++        g_free ( (gchar*) info->name);
+         info->name = NULL;
+     }
+-    g_free(info);
++    g_free (info);
+ }
+ 
+ /////////////////////////////////
+ 
+-void free_plugin_info(GlyrFetcherInfo *infos)
++void free_plugin_info (GlyrFetcherInfo * infos)
+ {
+-    if(infos != NULL) {
+-        GlyrFetcherInfo *fetch = infos;
+-        while(fetch != NULL) {
+-            GlyrFetcherInfo *to_delete = fetch;
++    if (infos != NULL)
++    {
++        GlyrFetcherInfo * fetch = infos;
++        while (fetch != NULL)
++        {
++            GlyrFetcherInfo * to_delete = fetch;
+             fetch = fetch->next;
+-            free_single_item(to_delete);
++            free_single_item (to_delete);
+         }
+     }
+ }
+diff --git a/lib/stringlib.c b/lib/stringlib.c
+index 64dc243..5a70418 100644
+--- a/lib/stringlib.c
++++ b/lib/stringlib.c
+@@ -40,78 +40,71 @@
+  *
+  * Also, this is UTF-8 aware.
+  */
+-gsize levenshtein_strcmp(const gchar *s, const gchar *t)
++gsize levenshtein_strcmp (const gchar * s, const gchar * t)
+ {
+-    int n = (s) ? g_utf8_strlen(s, -1) + 1 : 0;
+-    int m = (t) ? g_utf8_strlen(t, -1) + 1 : 0;
++    int n = (s) ? g_utf8_strlen (s,-1) +1 : 0;
++    int m = (t) ? g_utf8_strlen (t,-1) +1 : 0;
+ 
+     // NOTE: Be sure to call g_utf8_validate(), might fail otherwise
+     //       It's advisable to call g_utf8_normalize() too.
+ 
+     // Nothing to compute really..
+-    if(n < 2) {
+-        return m;
+-    }
+-    if(m < 2) {
+-        return n;
+-    }
++    if (n < 2) return m;
++    if (m < 2) return n;
+ 
+     // String matrix
+     int d[n][m];
+-    int i, j;
++    int i,j;
+ 
+     // Init first row|column to 0...n|m
+-    for(i = 0; i < n; i++) {
+-        d[i][0] = i;
+-    }
+-    for(j = 0; j < m; j++) {
+-        d[0][j] = j;
+-    }
++    for (i=0; i<n; i++) d[i][0] = i;
++    for (j=0; j<m; j++) d[0][j] = j;
+ 
+-    for(i = 1; i < n; i++) {
++    for (i=1; i<n; i++)
++    {
+         // Current char in string s
+-        gunichar cats = g_utf8_get_char(g_utf8_offset_to_pointer(s, i - 1));
++        gunichar cats = g_utf8_get_char (g_utf8_offset_to_pointer (s,i-1) );
+ 
+-        for(j = 1; j < m; j++) {
++        for (j=1; j<m; j++)
++        {
+             // Do -1 only once
+-            int jm1 = j - 1,
+-                im1 = i - 1;
++            int jm1 = j-1,
++                im1 = i-1;
+ 
+-            gunichar tats = g_utf8_get_char(g_utf8_offset_to_pointer(t, jm1));
++            gunichar tats = g_utf8_get_char (g_utf8_offset_to_pointer (t,jm1) );
+ 
+             // a = above cell, b = left cell, c = left above celli
+             int a = d[im1][j] + 1,
+                 b = d[i][jm1] + 1,
+                 c = d[im1][jm1] + (tats != cats);
+ 
+-            // Now compute the minimum of a, ,  and set MIN(a, , ) to cell d[i][j]
+-            d[i][j] = (a < b) ? MIN(a, c) : MIN(b, c);
++            // Now compute the minimum of a,b,c and set MIN(a,b,c) to cell d[i][j]
++            d[i][j] = (a < b) ? MIN (a,c) : MIN (b,c);
+         }
+     }
+ 
+     // The result is stored in the very right down cell
+-    return d[n - 1][m - 1];
++    return d[n-1][m-1];
+ }
+ 
+ ///////////////////////////////
+ 
+ // A utf8 aware levenshtein that normalizes ambigious codepoints
+ // and validates input-data
+-gsize levenshtein_safe_strcmp(const gchar *s, const gchar *t)
++gsize levenshtein_safe_strcmp (const gchar * s, const gchar * t)
+ {
+     gsize rc = 0;
+-    if(g_utf8_validate(s, -1, NULL) == FALSE ||
+-            g_utf8_validate(t, -1, NULL) == FALSE) {
++    if (g_utf8_validate (s,-1,NULL) == FALSE ||
++            g_utf8_validate (t,-1,NULL) == FALSE)
+         return rc;
+-    }
+ 
+-    gchar *s_norm = g_utf8_normalize(s, -1, G_NORMALIZE_ALL_COMPOSE);
+-    gchar *t_norm = g_utf8_normalize(t, -1, G_NORMALIZE_ALL_COMPOSE);
++    gchar * s_norm = g_utf8_normalize (s,-1,G_NORMALIZE_ALL_COMPOSE);
++    gchar * t_norm = g_utf8_normalize (t,-1,G_NORMALIZE_ALL_COMPOSE);
+ 
+-    rc = levenshtein_strcmp(s_norm, t_norm);
++    rc = levenshtein_strcmp (s_norm,t_norm);
+ 
+-    g_free(s_norm);
+-    g_free(t_norm);
++    g_free (s_norm);
++    g_free (t_norm);
+ 
+     return rc;
+ }
+@@ -125,57 +118,65 @@ gsize levenshtein_safe_strcmp(const gchar *s, const gchar *t)
+  *
+  * @return a newly allocated string
+  */
+-const gchar *const regex_table[][2] = {
++const gchar * const regex_table[][2] =
++{
+     {"CD[[:blank:]]*[0-9]+",   ""}, /* 'CD 1'  -> ''    */
+-    {"track[[:blank:]]*[0-9]+", ""}, /* 'CD 1'  -> ''    */
+-    {"(`|'|\"|\\.|, ",         ""}, /* Punctuation.     */
+-    {"feat(\\.|uring).*", ""}, /* "feat." -> " "   */
+-    {"feat\\..*", ""}, /* "feat." -> " "   */
+-    {"[[:space:]]{2, ",       " "}  /* 'a  b'  -> 'a b' */
++    {"track[[:blank:]]*[0-9]+",""}, /* 'CD 1'  -> ''    */
++    {"(`|'|\"|\\.|,)",         ""}, /* Punctuation.     */
++    {"feat(\\.|uring).*",""}, /* "feat." -> " "   */
++    {"feat\\..*",""}, /* "feat." -> " "   */
++    {"[[:space:]]{2,}",       " "}  /* 'a  b'  -> 'a b' */
+ };
+ 
+-const gsize regex_table_size = sizeof(regex_table) / (2 * sizeof(gchar *));
++const gsize regex_table_size = sizeof (regex_table) / (2 * sizeof (gchar*) );
+ 
+-gchar *regex_replace_by_table(const gchar *string, const gchar *const delete_string[][2], gsize string_size)
++gchar * regex_replace_by_table (const gchar * string, const gchar * const delete_string[][2], gsize string_size)
+ {
+-    gchar *result_string = (gchar *) string;
++    gchar * result_string = (gchar*) string;
+ 
+     /* Match strings to delete */
+-    for(gsize it = 0; it < string_size; it++) {
+-        GError *match_error = NULL;
+-        GRegex *regex = g_regex_new(delete_string[it][0], G_REGEX_CASELESS /*| G_REGEX_MULTILINE*/, 0, &match_error);
+-
+-        if(regex != NULL) {
+-            GMatchInfo *match_info;
+-            g_regex_match_full(regex, string, -1, 0, 0, &match_info, &match_error);
+-            while(g_match_info_matches(match_info)) {
+-                gchar *word = g_match_info_fetch(match_info, 0);
+-                gchar *old_memory = result_string;
+-                result_string = strreplace(old_memory, word, delete_string[it][1]);
+-                if(old_memory != string) {
+-                    g_free(old_memory);
++    for (gsize it = 0; it < string_size; it++)
++    {
++        GError * match_error = NULL;
++        GRegex * regex = g_regex_new (delete_string[it][0],G_REGEX_CASELESS /*| G_REGEX_MULTILINE*/,0,&match_error);
++
++        if (regex != NULL)
++        {
++            GMatchInfo * match_info;
++            g_regex_match_full (regex, string, -1, 0, 0, &match_info,&match_error);
++            while (g_match_info_matches (match_info) )
++            {
++                gchar *word = g_match_info_fetch (match_info, 0);
++                gchar * old_memory = result_string;
++                result_string = strreplace (old_memory,word,delete_string[it][1]);
++                if (old_memory != string)
++                {
++                    g_free (old_memory);
+                 }
+ 
+-                g_match_info_next(match_info, &match_error);
+-                g_free(word);
++                g_match_info_next (match_info, &match_error);
++                g_free (word);
+             }
+-            g_match_info_free(match_info);
+-            g_regex_unref(regex);
++            g_match_info_free (match_info);
++            g_regex_unref (regex);
+         }
+ 
+-        if(match_error != NULL) {
+-            fprintf(stderr, "glyr: Unexcepted error while matching: %s\n", match_error->message);
+-            g_error_free(match_error);
++        if (match_error != NULL)
++        {
++            fprintf (stderr,"glyr: Unexcepted error while matching: %s\n", match_error->message);
++            g_error_free (match_error);
+         }
+     }
+ 
+     /* Trim it the old way - we have to dup the string anyway */
+-    if(result_string != NULL) {
+-        gsize result_len = strlen(result_string);
+-        gchar *trim = g_malloc0(result_len + 1);
+-        trim_copy(result_string, trim);
+-        if(result_string != string) {
+-            g_free(result_string);
++    if (result_string != NULL)
++    {
++        gsize result_len = strlen (result_string);
++        gchar * trim = g_malloc0 (result_len + 1);
++        trim_copy (result_string,trim);
++        if (result_string != string)
++        {
++            g_free (result_string);
+         }
+         result_string = trim;
+     }
+@@ -185,43 +186,48 @@ gchar *regex_replace_by_table(const gchar *string, const gchar *const delete_str
+ 
+ ///////////////////////////////
+ 
+-gsize levenshtein_strcasecmp(const gchar *string, const gchar *other)
++gsize levenshtein_strcasecmp (const gchar * string, const gchar * other)
+ {
+     gsize diff = 100;
+-    if(string != NULL && other != NULL) {
++    if (string != NULL && other != NULL)
++    {
+         /* Lowercase UTF8 string might have more or less bytes! */
+-        gchar *lower_string = g_utf8_strdown(string, -1);
+-        gchar *lower_other  = g_utf8_strdown(other, -1);
++        gchar * lower_string = g_utf8_strdown (string,-1);
++        gchar * lower_other  = g_utf8_strdown (other, -1);
+ 
+-        if(lower_string && lower_other) {
+-            diff = levenshtein_safe_strcmp(lower_string, lower_other);
++        if (lower_string && lower_other)
++        {
++            diff = levenshtein_safe_strcmp (lower_string, lower_other);
+         }
+ 
+-        g_free(lower_string);
+-        g_free(lower_other);
++        g_free (lower_string);
++        g_free (lower_other);
+     }
+     return diff;
+ }
+ 
+ ///////////////////////////////
+ 
+-static gchar *leven_normalize_string(const gchar *str)
++static gchar * leven_normalize_string (const gchar * str)
+ {
+-    gchar *rv = NULL;
+-    gchar *unwinded_string = unwind_artist_name(str);
+-    if(unwinded_string != NULL) {
+-        gchar *norm_string = regex_replace_by_table(unwinded_string, regex_table, regex_table_size);
+-        if(norm_string != NULL) {
+-            gchar *pretty_string = beautify_string(norm_string);
+-            if(pretty_string != NULL) {
+-                remove_tags_from_string(pretty_string, -1, '(', ')');
+-                remove_tags_from_string(pretty_string, -1, '[', ']');
+-                remove_tags_from_string(pretty_string, -1, '<', '>');
++    gchar * rv = NULL;
++    gchar * unwinded_string = unwind_artist_name (str);
++    if (unwinded_string != NULL)
++    {
++        gchar * norm_string = regex_replace_by_table (unwinded_string,regex_table,regex_table_size);
++        if (norm_string != NULL)
++        {
++            gchar * pretty_string = beautify_string (norm_string);
++            if (pretty_string != NULL)
++            {
++                remove_tags_from_string (pretty_string,-1,'(',')');
++                remove_tags_from_string (pretty_string,-1,'[',']');
++                remove_tags_from_string (pretty_string,-1,'<','>');
+                 rv = pretty_string;
+             }
+-            g_free(norm_string);
++            g_free (norm_string);
+         }
+-        g_free(unwinded_string);
++        g_free (unwinded_string);
+     }
+     return rv;
+ }
+@@ -229,49 +235,54 @@ static gchar *leven_normalize_string(const gchar *str)
+ ///////////////////////////////
+ 
+ /* Tries to strip unused strings before comparing with levenshtein_strcasecmp */
+-gsize levenshtein_strnormcmp(GlyrQuery *settings, const gchar *string, const gchar *other)
++gsize levenshtein_strnormcmp (GlyrQuery * settings, const gchar * string, const gchar * other)
+ {
+     gsize diff = 100;
+-    if(string != NULL && other != NULL) {
+-        gchar *normalized_string = leven_normalize_string(string);
+-        gchar *normalized_other  = leven_normalize_string(other);
++    if (string != NULL && other != NULL)
++    {
++        gchar * normalized_string = leven_normalize_string (string);
++        gchar * normalized_other  = leven_normalize_string (other);
+ 
+-        if(normalized_string && normalized_other) {
+-            diff = levenshtein_strcasecmp(normalized_string, normalized_other);
++        if (normalized_string && normalized_other)
++        {
++            diff = levenshtein_strcasecmp (normalized_string,normalized_other);
+ 
+             /* Apply correction */
+-            gsize str_len = strlen(normalized_string);
+-            gsize oth_len = strlen(normalized_other);
++            gsize str_len = strlen (normalized_string);
++            gsize oth_len = strlen (normalized_other);
+             gsize ratio = (oth_len + str_len) / 2;
+             gsize fuzz  = (settings) ? settings->fuzzyness : GLYR_DEFAULT_FUZZYNESS;
+ 
+             /* Useful for debugging */
+-            //g_print("%d:%s <=> %d:%s -> %d\n", gint)str_len,string, gint)oth_len, ther, gint)diff);
++            //g_print("%d:%s <=> %d:%s -> %d\n",(gint)str_len,string,(gint)oth_len,other,(gint)diff);
+ 
+-            if((ratio - diff < ratio / 2 + 1 && diff <= fuzz) || MIN(str_len, oth_len) <= diff) {
++            if ( (ratio - diff < ratio / 2 + 1 && diff <= fuzz) || MIN (str_len,oth_len) <= diff)
++            {
+                 /* Examples: Adios <=> Weiß or 19 <=> 21 pass levenshtein_strcasecmp */
+-                //g_print("warn: The strings might accidentally pass levenshtein: %s <=> %s = %d\n", retty_string, retty_other, gint)diff);
++                //g_print("warn: The strings might accidentally pass levenshtein: %s <=> %s = %d\n",pretty_string,pretty_other,(gint)diff);
+                 diff += 100;
+             }
+         }
+ 
+-        g_free(normalized_string);
+-        g_free(normalized_other);
++        g_free (normalized_string);
++        g_free (normalized_other);
+     }
+     return diff;
+ }
+ 
+ ///////////////////////////////
+ 
+-gchar *strreplace(const char *string, const char *subs, const char *with)
++gchar * strreplace (const char * string, const char * subs, const char * with)
+ {
+-    gchar *result = NULL;
+-    if(string != NULL && string[0] != '\0') {
+-        gchar **split = g_strsplit(string, subs, 0);
+-        if(split != NULL) {
+-            result = g_strjoinv(with, split);
++    gchar * result = NULL;
++    if (string != NULL && string[0] != '\0')
++    {
++        gchar ** split = g_strsplit (string,subs,0);
++        if (split != NULL)
++        {
++            result = g_strjoinv (with,split);
+         }
+-        g_strfreev(split);
++        g_strfreev (split);
+     }
+     return result;
+ }
+@@ -281,148 +292,167 @@ gchar *strreplace(const char *string, const char *subs, const char *with)
+ /* "Clapton, Eric" -> "Eric Clapton"
+  * Cheers Christoph for writing this.
+  */
+-gchar *unwind_artist_name(const gchar *artist)
++gchar * unwind_artist_name (const gchar * artist)
+ {
+-    if(NULL == artist) {
++    if (NULL == artist)
++    {
+         return NULL;
+     }
+ 
+     /*split string in two*/
+-    gchar *separator = strchr(artist, ', );
++    gchar * separator = strchr (artist, ',');
+ 
+-    if(separator) {
+-        gchar *result = NULL;
+-        gchar **strsplit = g_strsplit(artist, ", , 2);
+-        if((strsplit[0] != NULL) && (strsplit[1] != NULL)) {
+-            char *tmp = NULL;
++    if (separator)
++    {
++        gchar * result = NULL;
++        gchar ** strsplit = g_strsplit (artist, ",", 2);
++        if ( (strsplit[0] != NULL) && (strsplit[1] != NULL) )
++        {
++            char * tmp = NULL;
+ 
+             tmp = strsplit[0];
+             strsplit[0] = strsplit[1];
+             strsplit[1] = tmp;
+         }
+ 
+-        result = g_strjoinv(" ", strsplit);
++        result = g_strjoinv (" ",strsplit);
+ 
+         /*free g_strsplit memory*/
+-        g_strfreev(strsplit);
++        g_strfreev (strsplit);
+         return result;
+-    } else {
++    }
++    else
++    {
+         /* nothing done, return just copy*/
+-        return g_strdup(artist);
++        return g_strdup (artist);
+     }
+ }
+ 
+ ///////////////////////////////////////
+ 
+-gchar *prepare_string(const gchar *input, GLYR_NORMALIZATION mode, gboolean do_curl_escape)
++gchar * prepare_string (const gchar * input, GLYR_NORMALIZATION mode, gboolean do_curl_escape)
+ {
+-    gchar *result = NULL;
+-    if(input != NULL) {
+-        gchar *downed = g_utf8_strdown(input, -1);
+-        if(downed != NULL) {
+-            gchar *normalized = g_utf8_normalize(downed, -1, G_NORMALIZE_NFKC);
+-            if(normalized != NULL) {
+-                if(normalized != NULL && mode & GLYR_NORMALIZE_AGGRESSIVE) {
+-                    remove_tags_from_string(normalized, -1, '(', ')');
+-                    remove_tags_from_string(normalized, -1, '<', '>');
+-                    remove_tags_from_string(normalized, -1, '[', ']');
++    gchar * result = NULL;
++    if (input != NULL)
++    {
++        gchar * downed = g_utf8_strdown (input,-1);
++        if (downed != NULL)
++        {
++            gchar * normalized = g_utf8_normalize (downed,-1,G_NORMALIZE_NFKC);
++            if (normalized != NULL)
++            {
++                if (normalized != NULL && mode & GLYR_NORMALIZE_AGGRESSIVE)
++                {
++                    remove_tags_from_string (normalized,-1,'(',')');
++                    remove_tags_from_string (normalized,-1,'<','>');
++                    remove_tags_from_string (normalized,-1,'[',']');
+                 }
+ 
+-                if(mode & GLYR_NORMALIZE_MODERATE || mode & GLYR_NORMALIZE_AGGRESSIVE) {
+-                    gchar *no_lint = regex_replace_by_table(normalized, regex_table, regex_table_size);
++                if (mode & GLYR_NORMALIZE_MODERATE || mode & GLYR_NORMALIZE_AGGRESSIVE)
++                {
++                    gchar * no_lint = regex_replace_by_table (normalized,regex_table,regex_table_size);
+                     g_free(normalized);
+                     normalized = no_lint;
+                 }
+ 
+-                if(normalized != NULL) {
+-                    if(do_curl_escape) {
+-                        char *m_result = curl_easy_escape(NULL, normalized, 0);
+-                        result = g_strdup(m_result);
+-                        curl_free(m_result);
++                if (normalized != NULL)
++                {
++                    if (do_curl_escape)
++                    {
++                        char * m_result = curl_easy_escape (NULL, normalized, 0);
++                        result = g_strdup (m_result);
++                        curl_free (m_result);
+                         g_free(normalized);
+-                    } else {
++                    }
++                    else
++                    {
+                         result = normalized;
+                     }
+                 }
+-            } else {
++            }
++            else
++            {
+                 result = normalized;
+             }
+-            g_free(downed);
++            g_free (downed);
+         }
+     }
+     return result;
+ }
+ 
+-static void swap_string(char **tmp, const char *subs, const char *with)
++static void swap_string (char ** tmp, const char * subs, const char * with)
+ {
+-    char *swap = *tmp;
+-    *tmp = strreplace(swap, subs, with);
+-    g_free(swap);
++    char * swap = *tmp;
++    *tmp = strreplace (swap,subs,with);
++    g_free (swap);
+ }
+ 
+ /* Prepares the url for you to get downloaded. You don't have to call this. */
+-gchar *prepare_url(const gchar *URL, GlyrQuery *s, gboolean do_curl_escape)
++gchar * prepare_url (const gchar * URL, GlyrQuery * s, gboolean do_curl_escape)
+ {
+-    gchar *tmp = NULL;
+-    if(URL != NULL && s != NULL) {
+-        tmp = g_strdup(URL);
+-
+-        gchar *unwinded_artist = unwind_artist_name(s->artist);
+-        gchar *p_artist = NULL, * p_album = NULL, * p_title = NULL;
+-
+-        if(s->normalization & GLYR_NORMALIZE_ARTIST) {
+-            p_artist = prepare_string(trim_nocopy(unwinded_artist), s->normalization, do_curl_escape);
+-        } else {
+-            p_artist = prepare_string(trim_nocopy(unwinded_artist), GLYR_NORMALIZE_NONE, do_curl_escape);
+-        }
+-
+-        if(s->normalization & GLYR_NORMALIZE_ALBUM) {
+-            p_album  = prepare_string(s->album, s->normalization, do_curl_escape);
+-        } else {
+-            p_album  = prepare_string(s->album, GLYR_NORMALIZE_NONE, do_curl_escape);
+-        }
+-
+-        if(s->normalization & GLYR_NORMALIZE_TITLE) {
+-            p_title  = prepare_string(s->title, s->normalization, do_curl_escape);
+-        } else {
+-            p_title  = prepare_string(s->title, GLYR_NORMALIZE_NONE, do_curl_escape);
+-        }
+-
+-        gchar *p_num = g_strdup_printf("%d", s->number * 3);
+-
+-        swap_string(&tmp, "${artist}", p_artist);
+-        swap_string(&tmp, "${album}", p_album);
+-        swap_string(&tmp, "${title}", p_title);
+-        swap_string(&tmp, "${number}", p_num);
+-
+-        g_free(p_artist);
+-        g_free(p_album);
+-        g_free(p_title);
+-        g_free(p_num);
+-        g_free(unwinded_artist);
++    gchar * tmp = NULL;
++    if (URL != NULL && s != NULL)
++    {
++        tmp = g_strdup (URL);
++
++        gchar * unwinded_artist = unwind_artist_name (s->artist);
++        gchar * p_artist = NULL, * p_album = NULL, * p_title = NULL;
++
++        if (s->normalization & GLYR_NORMALIZE_ARTIST)
++            p_artist = prepare_string (trim_nocopy (unwinded_artist), s->normalization, do_curl_escape);
++        else
++            p_artist = prepare_string (trim_nocopy (unwinded_artist), GLYR_NORMALIZE_NONE, do_curl_escape);
++
++        if (s->normalization & GLYR_NORMALIZE_ALBUM)
++            p_album  = prepare_string (s->album, s->normalization, do_curl_escape);
++        else
++            p_album  = prepare_string (s->album, GLYR_NORMALIZE_NONE, do_curl_escape);
++
++        if (s->normalization & GLYR_NORMALIZE_TITLE)
++            p_title  = prepare_string (s->title, s->normalization, do_curl_escape);
++        else
++            p_title  = prepare_string (s->title, GLYR_NORMALIZE_NONE, do_curl_escape);
++
++        gchar * p_num = g_strdup_printf("%d", s->number * 3);
++
++        swap_string (&tmp,"${artist}",p_artist);
++        swap_string (&tmp,"${album}", p_album);
++        swap_string (&tmp,"${title}", p_title);
++        swap_string (&tmp,"${number}", p_num);
++
++        g_free (p_artist);
++        g_free (p_album);
++        g_free (p_title);
++        g_free (p_num);
++        g_free (unwinded_artist);
+     }
+     return tmp;
+ }
+ 
+ ///////////////////////////////////////
+ 
+-gchar *get_next_word(const gchar *string, const gchar *delim, gsize *offset, gsize len)
++gchar * get_next_word (const gchar * string, const gchar * delim, gsize *offset, gsize len)
+ {
+-    gchar *word = NULL;
+-    if(string && delim && * (offset) < len) {
+-        gchar *occurence = strstr(string + (*offset), delim);
+-        if(occurence) {
+-            word = copy_value(string + (*offset), occurence);
+-            * (offset) += (1 + occurence - (string + * (offset)));
+-        } else {
+-            word = copy_value(string + (*offset), string + len);
++    gchar * word = NULL;
++    if (string && delim && * (offset) < len)
++    {
++        gchar * occurence = strstr (string+ (*offset),delim);
++        if (occurence)
++        {
++            word=copy_value (string+ (*offset),occurence);
++            * (offset) += (1 + occurence - (string + * (offset) ) );
++        }
++        else
++        {
++            word=copy_value (string+ (*offset),string+len);
+             * (offset) = len;
+         }
+     }
+-    if(word) {
+-        gchar *trim = g_malloc0(len + 1);
+-        trim_copy(word, trim);
+-        free(word);
++    if (word)
++    {
++        gchar * trim = g_malloc0 (len + 1);
++        trim_copy (word,trim);
++        free (word);
+         word = trim;
+     }
+     return word;
+@@ -430,57 +460,74 @@ gchar *get_next_word(const gchar *string, const gchar *delim, gsize *offset, gsi
+ 
+ ///////////////////////////////////////
+ 
+-static int convert_to_char(const gchar *string)
++static int convert_to_char(const gchar * string)
+ {
+-    if(string != NULL) {
+-        if(string[0] == 'x' || string[0] == 'X') {
+-            return strtoul(string + 1, NULL, 16);
++    if (string != NULL)
++    {
++        if (string[0] == 'x' || string[0] == 'X') {
++            return strtoul (string + 1, NULL, 16);
+         } else {
+-            return strtoul(string, NULL, 10);
++            return strtoul (string, NULL, 10);
+         }
+     }
+     return ' ';
+ }
+ 
+ /* Translate HTML UTF8 marks to normal UTF8 (&#xFF; or e.g. { -> char 123) */
+-char *unescape_html_UTF8(const char *data)
++char *unescape_html_UTF8 (const char * data)
+ {
+-    char *result = NULL;
+-    if(data != NULL) {
+-        size_t i = 0, len = strlen(data);
++    char * result = NULL;
++    if (data != NULL)
++    {
++        size_t i = 0, len = strlen (data);
+         int tagflag = 0;
+         int iB = 0;
+ 
+-        char *tag_open_ptr = NULL;
+-        result = g_malloc0(len + 1);
+-        for(i = 0; i  < len; ++i) {
+-            char *semicol = NULL;
+-            if(data[i] == '&' && data[i + 1] == '#' && (semicol = strstr(data + i, ";")) != NULL) {
+-                int n = convert_to_char(&data[i + 2]);
+-
+-                if(n >= 0x800) {
+-                    result[iB++] = (char)(0xe0 | ((n >> 12) & 0x0f));
+-                    result[iB++] = (char)(0x80 | ((n >> 6) & 0x3f));
+-                    result[iB++] = (char)(0x80 | ((n) & 0x3f));
+-                } else if(n >= 0x80) {
+-                    result[iB++] = (char)(0xc0 | ((n >> 6) & 0x1f));
+-                    result[iB++] = (char)(0x80 | ((n) & 0x3f));
+-                } else {
++        char * tag_open_ptr = NULL;
++        result = g_malloc0 (len+1);
++        for (i = 0; i  < len; ++i)
++        {
++            char * semicol = NULL;
++            if (data[i] == '&' && data[i+1] == '#' && (semicol = strstr (data+i,";") ) != NULL)
++            {
++                int n = convert_to_char(&data[i+2]);
++
++                if (n >= 0x800)
++                {
++                    result[iB++] = (char) (0xe0 | ( (n >> 12) & 0x0f) );
++                    result[iB++] = (char) (0x80 | ( (n >> 6 ) & 0x3f) );
++                    result[iB++] = (char) (0x80 | ( (n      ) & 0x3f) );
++                }
++                else if (n >= 0x80)
++                {
++                    result[iB++] = (char) (0xc0 | ( (n >> 6) & 0x1f) );
++                    result[iB++] = (char) (0x80 | ( (n     ) & 0x3f) );
++                }
++                else
++                {
+                     result[iB++] = (char) n;
+                 }
+-                i = (int)(semicol - data);
+-            } else { /* normal char */
+-                if(data[i] == '<') {
+-                    tag_open_ptr = (char *) &data[i + 1];
++                i =  (int) (semicol-data);
++            }
++            else /* normal char */
++            {
++                if (data[i] == '<')
++                {
++                    tag_open_ptr = (char*) &data[i+1];
+                     tagflag = 1;
+                     continue;
+                 }
+ 
+-                if(tagflag ==  0) {
++                if (tagflag ==  0 )
++                {
+                     result[iB++] = data[i];
+-                } else if(data[i] == '>') {
+-                    if(tag_open_ptr != NULL) {
+-                        if(g_strstr_len(tag_open_ptr, 7, "br") != NULL) {
++                }
++                else if (data[i] == '>')
++                {
++                    if (tag_open_ptr != NULL)
++                    {
++                        if (g_strstr_len (tag_open_ptr,7,"br") != NULL)
++                        {
+                             result[iB++] = '\n';
+                         }
+                     }
+@@ -499,7 +546,8 @@ char *unescape_html_UTF8(const char *data)
+  * Thanks for this. Probably directly from wikipedia: https://secure.wikimedia.org/wikipedia/en/wiki/List_of_XML_and_HTML_character_entity_references
+  * I don't know a way how this can be done easier. But it's working well, so I guess I just let it be...
+  */
+-const char *html_to_unicode_table[][2] = {
++const char * html_to_unicode_table[][2] =
++{
+     { "AElig", "Æ" },
+     { "Aacute", "Á" },
+     { "Acirc", "Â" },
+@@ -759,48 +807,54 @@ const char *html_to_unicode_table[][2] = {
+ ///////////////////////////////////////
+ 
+ /* returns newly allocated string without unicode like expressions */
+-char *strip_html_unicode(const gchar *string)
++char * strip_html_unicode (const gchar * string)
+ {
+-    if(string == NULL) {
++    if (string == NULL)
+         return NULL;
+-    }
+ 
+     // Total length, iterator and resultbuf
+-    gsize sR_len = strlen(string), sR_i = 0;
+-    gchar *sResult = g_malloc0(sR_len + 1);
++    gsize sR_len = strlen (string), sR_i = 0;
++    gchar * sResult = g_malloc0 (sR_len + 1);
+ 
+-    for(gsize aPos = 0; aPos < sR_len; aPos++) {
++    for (gsize aPos = 0; aPos < sR_len; aPos++)
++    {
+         // An ampersand might be a hint
+-        if(string[aPos] == '&') {
+-            gchar *semicolon = NULL;
+-            if((semicolon  = strchr(string + aPos, ';')) != NULL) {
++        if (string[aPos] == '&')
++        {
++            gchar * semicolon = NULL;
++            if ( (semicolon  = strchr (string+aPos,';') ) != NULL)
++            {
+                 // The distance between '&' and ';'
+-                gsize diff = semicolon - (string + aPos);
++                gsize diff = semicolon - (string+aPos);
+ 
+                 // Only translate codes shorter than 10 signs.
+-                if(diff > 0 && diff < 8) {
++                if (diff > 0 && diff < 8)
++                {
+                     // copy that portion so we can find the translation
+                     gchar cmp_buf[diff];
+-                    strncpy(cmp_buf, string + aPos + 1 , diff - 1);
+-                    cmp_buf[diff - 1] = '\0';
++                    strncpy (cmp_buf, string + aPos + 1 ,diff-1);
++                    cmp_buf[diff-1] = '\0';
+ 
+                     // Now find the 'translation' of this code
+                     // This is a bit slow for performance aware applications
+                     // Glyr isn't because it has to wait for data from the internet most
+                     // of the time. You might want to add some sort of 'Hash'
+                     gsize iter = 0;
+-                    while(html_to_unicode_table[iter][0] != NULL) {
+-                        if(html_to_unicode_table[iter][0] &&  !strcmp(cmp_buf, html_to_unicode_table[iter][0])) {
++                    while ( html_to_unicode_table[iter][0] != NULL )
++                    {
++                        if (html_to_unicode_table[iter][0] &&  !strcmp (cmp_buf,html_to_unicode_table[iter][0]) )
++                        {
+                             break;
+                         }
+                         iter++;
+                     }
+ 
+                     // If nothing found we just copy it
+-                    if(html_to_unicode_table[iter][0] != NULL && html_to_unicode_table[iter][1] != NULL) {
++                    if (html_to_unicode_table[iter][0] != NULL && html_to_unicode_table[iter][1] != NULL)
++                    {
+                         // Copy the translation to the string
+-                        gsize trans_len = strlen(html_to_unicode_table[iter][1]);
+-                        strncpy(sResult + sR_i, html_to_unicode_table[iter][1], trans_len);
++                        gsize trans_len = strlen (html_to_unicode_table[iter][1]);
++                        strncpy (sResult + sR_i, html_to_unicode_table[iter][1], trans_len);
+ 
+                         // Overjump next bytes.
+                         sR_i += trans_len;
+@@ -827,23 +881,28 @@ char *strip_html_unicode(const gchar *string)
+  * This is only used for HTML tags, there might be utf8 characters,
+  * being rendered with the same glyph as '<', but won't escaped.
+  */
+-gsize remove_tags_from_string(gchar *string, gint length, gchar start, gchar end)
++gsize remove_tags_from_string (gchar * string, gint length, gchar start, gchar end)
+ {
+-    gchar *tagEnd;
++    gchar * tagEnd;
+     gsize ctr = 0;
+-    if(string != NULL) {
+-        gsize Len = (length < 0) ? strlen(string) : (size_t) length;
+-        if(Len != 0) {
+-            for(gsize n = Len - 1; n != 0; --n) {
+-                if(string[n] == start) {
+-                    if((tagEnd = strchr(string + n + 1, end)) != NULL) {
+-                        gchar *Tpon = tagEnd + 1;
+-                        gsize tLen = Tpon - (string + n);
++    if (string != NULL)
++    {
++        gsize Len = (length < 0) ? strlen (string) : (size_t) length;
++        if (Len != 0)
++        {
++            for (gsize n = Len-1; n != 0; --n)
++            {
++                if (string[n] == start)
++                {
++                    if ( (tagEnd = strchr (string + n + 1,end) ) != NULL)
++                    {
++                        gchar * Tpon = tagEnd + 1;
++                        gsize tLen = Tpon - (string+n);
+                         gsize rest = string + Len - tagEnd;
+ 
+                         tLen = (tLen < rest) ? tLen : rest;
+-                        memcpy(string + n, Tpon, tLen);
+-                        memmove(Tpon, Tpon + tLen, rest - tLen);
++                        memcpy (string+n, Tpon, tLen);
++                        memmove (Tpon,Tpon+tLen,rest-tLen);
+                         ctr += tLen;
+                     }
+                 }
+@@ -855,24 +914,27 @@ gsize remove_tags_from_string(gchar *string, gint length, gchar start, gchar end
+ 
+ ///////////////////////////////////////
+ 
+-static gchar *trim_in_text(gchar *string)
++static gchar * trim_in_text (gchar * string)
+ {
+-    gchar *buffer = NULL;
+-    if(string != NULL) {
+-        gsize str_len = strlen(string), buf_pos = 0;
+-        buffer = g_malloc0(str_len + 1);
++    gchar * buffer = NULL;
++    if (string != NULL)
++    {
++        gsize str_len = strlen (string), buf_pos = 0;
++        buffer = g_malloc0 (str_len + 1);
+ 
+-        gsize space_ctr = 0;
++        gsize space_ctr= 0;
+         gsize lfeed_ctr = 0;
+ 
+-        for(gsize it = 0; it < str_len; it++) {
+-            gboolean is_space = isspace(string[it]);
+-            gboolean is_lfeed = !isblank(string[it]) && is_space;
++        for (gsize it = 0; it < str_len; it++)
++        {
++            gboolean is_space = isspace (string[it]);
++            gboolean is_lfeed = !isblank (string[it]) && is_space;
+ 
+             lfeed_ctr = (is_lfeed) ? lfeed_ctr + 1 : 0;
+             space_ctr = (is_space) ? space_ctr + 1 : 0;
+ 
+-            if(space_ctr < 2 || lfeed_ctr) {
++            if (space_ctr < 2 || lfeed_ctr)
++            {
+                 buffer[buf_pos++] = string[it];
+             }
+         }
+@@ -884,25 +946,32 @@ static gchar *trim_in_text(gchar *string)
+ 
+ /* Beautify lyrics in general, by removing endline spaces, *
+  * trimming everything and removing double newlines        */
+-gchar *beautify_string(const gchar *lyrics)
++gchar * beautify_string (const gchar * lyrics)
+ {
+-    gchar *result = NULL;
++    gchar * result = NULL;
+ 
+     /* Strip special html entities */
+-    gchar *strip = unescape_html_UTF8(lyrics);
+-    if(strip != NULL) {
++    gchar * strip = unescape_html_UTF8 (lyrics);
++    if (strip != NULL)
++    {
+         /* Now convert all unichars like &#[x]num; */
+-        gchar *unicode = strip_html_unicode(strip);
++        gchar * unicode = strip_html_unicode (strip);
+ 
+-        if(unicode != NULL) {
+-            gsize Len = strlen(unicode);
+-            for(gsize i = 0; i < Len; i++) {
++        if (unicode != NULL)
++        {
++            gsize Len = strlen (unicode);
++            for (gsize i = 0; i < Len; i++)
++            {
+                 gsize newline_ctr = 0;
+                 gsize j = i;
+-                for(; j < Len && (unicode[j] == '\n' || unicode[j] == '\r'); j++) {
+-                    if(newline_ctr % 3 == 0) {
++                for (; j < Len && (unicode[j] == '\n' || unicode[j] == '\r'); j++)
++                {
++                    if (newline_ctr % 3 == 0)
++                    {
+                         unicode[j] = '\n';
+-                    } else {
++                    }
++                    else
++                    {
+                         unicode[j] = ' ';
+                     }
+                     newline_ctr++;
+@@ -910,21 +979,24 @@ gchar *beautify_string(const gchar *lyrics)
+                 i = j + 1;
+             }
+ 
+-            remove_tags_from_string(unicode, Len, '<', '>');
++            remove_tags_from_string (unicode,Len,'<','>');
+             // gchar * trimmed = trim_after_newline(unicode);
+-            gchar *trimmed = trim_in_text(unicode);
+-            g_free(unicode);
++            gchar * trimmed = trim_in_text (unicode);
++            g_free (unicode);
+ 
+-            if(trimmed && g_utf8_validate(trimmed, -1, NULL) == TRUE) {
+-                result = g_utf8_normalize(trimmed, -1, G_NORMALIZE_NFKC);
+-                g_free(trimmed);
+-            } else {
++            if (trimmed && g_utf8_validate (trimmed,-1,NULL) == TRUE)
++            {
++                result = g_utf8_normalize (trimmed,-1,G_NORMALIZE_NFKC);
++                g_free (trimmed);
++            }
++            else
++            {
+                 result = trimmed;
+             }
+ 
+-            trim_inplace(result);
++            trim_inplace (result);
+         }
+-        g_free(strip);
++        g_free (strip);
+     }
+     return result;
+ }
+@@ -933,23 +1005,26 @@ gchar *beautify_string(const gchar *lyrics)
+ ///////////////////////////////////////
+ 
+ /* Does not necessarely handle unicode, just ascii */
+-void trim_copy(gchar *input, gchar *output)
++void trim_copy (gchar *input, gchar *output)
+ {
+     gchar *end = output;
+     gchar c;
+ 
+     /* skip spaces at start */
+-    while(input[0] && isspace(*input)) {
++    while (input[0] && isspace (*input) )
++    {
+         ++input;
+     }
+ 
+     /* copy the rest while remembering the last non-whitespace */
+-    while(input[0]) {
++    while (input[0])
++    {
+         // copy character
+         c = * (output++) = * (input++);
+ 
+         /* if its not a whitespace, this *could* be the last character */
+-        if(!isspace(c)) {
++        if ( !isspace (c) )
++        {
+             end = output;
+         }
+     }
+@@ -961,36 +1036,33 @@ void trim_copy(gchar *input, gchar *output)
+ 
+ ///////////////////////////////////////
+ 
+-void trim_inplace(gchar *s)
++void trim_inplace (gchar *s)
+ {
+-    trim_copy(s, s);
++    trim_copy (s, s);
+ }
+ 
+ ///////////////////////////////////////
+ 
+ /* Returns new pointer */
+-gchar *trim_nocopy(gchar *s)
++gchar * trim_nocopy (gchar * s)
+ {
+-    gchar *start = s;
+-    gchar *end = NULL;
++    gchar * start = s;
++    gchar * end = NULL;
+ 
+     /* skip spaces at start */
+-    while(*start && isspace(*start)) {
++    while (*start && isspace (*start) )
+         ++start;
+-    }
+ 
+     /* iterate over the rest remebering last non-whitespace */
+     char *i = start;
+-    while(*i) {
+-        if(!isspace(* (i++))) {
++    while (*i)
++    {
++        if ( !isspace (* (i++) ) )
+             end = i;
+-        }
+     }
+ 
+     /* white the terminating zero after last non-whitespace */
+-    if(end != NULL) {
+-        *end = 0;
+-    }
++    if (end !=NULL) *end = 0;
+ 
+     return start;
+ }
+@@ -998,14 +1070,16 @@ gchar *trim_nocopy(gchar *s)
+ ///////////////////////////////////////
+ 
+ /* Just copies the value from begin to start (excluding end[0]) */
+-gchar *copy_value(const gchar *begin, const gchar *end)
++gchar * copy_value (const gchar * begin, const gchar * end)
+ {
+-    if(begin && end) {
++    if (begin && end)
++    {
+         gsize length = end - begin;
+-        gchar *buffer = g_malloc0(length + 1);
++        gchar * buffer = g_malloc0 (length+1);
+ 
+-        if(buffer != NULL) {
+-            strncpy(buffer, begin, length);
++        if (buffer != NULL)
++        {
++            strncpy (buffer,begin,length);
+             buffer[length] = '\0';
+         }
+         return buffer;
+@@ -1015,15 +1089,19 @@ gchar *copy_value(const gchar *begin, const gchar *end)
+ 
+ ///////////////////////////////////////
+ 
+-void chomp_breakline(gchar *string)
++void chomp_breakline (gchar * string)
+ {
+-    if(string != NULL) {
+-        gsize len = strlen(string);
+-        while(--len) {
+-            if(string[len] == '\n') {
++    if (string != NULL)
++    {
++        gsize len = strlen (string);
++        while (--len)
++        {
++            if (string[len] == '\n')
++            {
+                 string[len] = '\0';
+-                if(len != 0 && string[len - 1] == '\r') {
+-                    string[len - 1] = '\0';
++                if (len != 0 && string[len-1] == '\r')
++                {
++                    string[len-1] = '\0';
+                 }
+                 break;
+             }
+@@ -1033,33 +1111,39 @@ void chomp_breakline(gchar *string)
+ 
+ ///////////////////////////////////////
+ 
+-gchar *convert_charset(const gchar *string, gchar *from, gchar *to, gsize *new_size)
++gchar * convert_charset (const gchar * string, gchar * from, gchar * to, gsize * new_size)
+ {
+-    gchar *conv_string = NULL;
++    gchar * conv_string = NULL;
+     GIConv converter;
+-    if((converter = g_iconv_open(from, to)) != (GIConv) - 1) {
+-        GError *err_step_one = NULL;
+-        conv_string = g_convert_with_iconv(string, -1, converter, NULL, new_size, &err_step_one);
+-        if(conv_string == NULL) {
+-            g_print("conversion-error: %s\n", err_step_one->message);
++    if ( (converter = g_iconv_open (from,to) ) != (GIConv)-1)
++    {
++        GError * err_step_one = NULL;
++        conv_string = g_convert_with_iconv (string,-1,converter,NULL,new_size,&err_step_one);
++        if (conv_string == NULL)
++        {
++            g_print ("conversion-error: %s\n",err_step_one->message);
+         }
+-        g_iconv_close(converter);
+-    } else {
+-        g_print("Unable to convert charsets.\n");
++        g_iconv_close (converter);
++    }
++    else
++    {
++        g_print ("Unable to convert charsets.\n");
+     }
+     return conv_string;
+ }
+ 
+ ///////////////////////////////////////
+ 
+-gchar *get_search_value(gchar *ref, gchar *name, gchar *end_string)
++gchar * get_search_value (gchar * ref, gchar * name, gchar * end_string)
+ {
+-    gchar *result = NULL;
+-    if(ref && name) {
+-        gchar *begin = strstr(ref, name);
+-        if(begin != NULL) {
+-            begin += strlen(name);
+-            result = copy_value(begin, strstr(begin, end_string));
++    gchar * result = NULL;
++    if (ref && name)
++    {
++        gchar * begin = strstr (ref,name);
++        if (begin != NULL)
++        {
++            begin += strlen (name);
++            result = copy_value (begin,strstr (begin,end_string) );
+         }
+     }
+     return result;
+@@ -1068,43 +1152,45 @@ gchar *get_search_value(gchar *ref, gchar *name, gchar *end_string)
+ ///////////////////////////////////////
+ 
+ /* Note: Not case-sens: Ä -> a! */
+-const gchar *const umlaut_table[][2] = {
++const gchar * const umlaut_table[][2] =
++{
+     {"ä",  "a"},
+     {"ü",  "u"},
+     {"ö",  "o"},
+     {"ß", "ss"},
+-    {"\\s", "-"}
++    {"\\s","-"}
+ };
+ 
+-const gsize umlaut_table_size = sizeof(umlaut_table) / (2 * sizeof(gchar *));
++const gsize umlaut_table_size = sizeof (umlaut_table) / (2 * sizeof (gchar*) );
+ 
+ /* Replaces umlauts like ä with an approx. like a */
+-gchar *translate_umlauts(gchar *string)
++gchar * translate_umlauts (gchar * string)
+ {
+-    gchar *result = NULL;
+-    if(string != NULL) {
+-        result = regex_replace_by_table(string, umlaut_table, umlaut_table_size);
++    gchar * result = NULL;
++    if (string != NULL)
++    {
++        result = regex_replace_by_table (string,umlaut_table,umlaut_table_size);
+     }
+     return result;
+ }
+ 
+ /* Match string against a GRegex */
+-gboolean regex_match_compiled(const gchar *string, const GRegex *cRegex)
++gboolean regex_match_compiled (const gchar * string, const GRegex * cRegex)
+ {
+     gboolean retv = FALSE;
+-    if(string != NULL) {
+-        if(cRegex == NULL) {
++    if (string != NULL)
++    {
++        if (cRegex == NULL)
+             return TRUE;
+-        }
+ 
+-        retv = g_regex_match(cRegex, string, 0, NULL);
++        retv = g_regex_match (cRegex, string, 0, NULL);
+     }
+     return retv;
+ }
+ 
+ #if 0
+-int main(int argc, char *argv[])
++int main (int argc, char * argv[])
+ {
+-    printf("%s\n", regex_replace_by_table(argv[1], regex_table, regex_table_size));
++    printf ("%s\n", regex_replace_by_table (argv[1], regex_table, regex_table_size) );
+ }
+ #endif
+diff --git a/lib/testing.c b/lib/testing.c
+index 7298ee1..d56764f 100644
+--- a/lib/testing.c
++++ b/lib/testing.c
+@@ -26,16 +26,20 @@
+ 
+ /////////////////////////////////
+ 
+-static MetaDataSource *get_metadata_struct(const char *provider_name, GLYR_GET_TYPE type)
++static MetaDataSource * get_metadata_struct (const char * provider_name, GLYR_GET_TYPE type)
+ {
+-    MetaDataSource *result = NULL;
+-    if(provider_name && type !=  GLYR_GET_UNKNOWN) {
+-        gsize name_len = strlen(provider_name);
+-        GList *source_list = r_getSList();
+-        for(GList *elem = source_list; elem; elem = elem->next) {
+-            MetaDataSource *src = elem->data;
+-            if(src != NULL) {
+-                if(g_ascii_strncasecmp(provider_name, src->name, name_len) == 0 && src->type == type) {
++    MetaDataSource * result = NULL;
++    if (provider_name && type !=  GLYR_GET_UNKNOWN)
++    {
++        gsize name_len = strlen (provider_name);
++        GList * source_list = r_getSList();
++        for (GList * elem = source_list; elem; elem = elem->next)
++        {
++            MetaDataSource * src = elem->data;
++            if (src != NULL)
++            {
++                if (g_ascii_strncasecmp (provider_name,src->name,name_len) == 0 && src->type == type)
++                {
+                     result = src;
+                     break;
+                 }
+@@ -47,19 +51,23 @@ static MetaDataSource *get_metadata_struct(const char *provider_name, GLYR_GET_T
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-const char *glyr_testing_call_url(const char *provider_name, GLYR_GET_TYPE type, GlyrQuery *query)
++__attribute__ ( (visibility ("default") ) )
++const char * glyr_testing_call_url (const char * provider_name, GLYR_GET_TYPE type, GlyrQuery * query)
+ {
+-    const char *result = NULL;
+-    if(query != NULL) {
+-        MetaDataSource *src = get_metadata_struct(provider_name, type);
+-        if(src != NULL) {
+-            const char *url = src->get_url(query);
+-            if(url != NULL) {
+-                result = prepare_url(url, query, TRUE);
++    const char * result = NULL;
++    if (query != NULL)
++    {
++        MetaDataSource * src = get_metadata_struct (provider_name,type);
++        if (src != NULL)
++        {
++            const char * url = src->get_url (query);
++            if (url != NULL)
++            {
++                result = prepare_url (url,query,TRUE);
+ 
+-                if(src->free_url) {
+-                    g_free((gchar *) url);
++                if (src->free_url)
++                {
++                    g_free ( (gchar*) url);
+                 }
+             }
+         }
+@@ -69,27 +77,32 @@ const char *glyr_testing_call_url(const char *provider_name, GLYR_GET_TYPE type,
+ 
+ /////////////////////////////////
+ 
+-__attribute__((visibility("default")))
+-GlyrMemCache *glyr_testing_call_parser(const char *provider_name, GLYR_GET_TYPE type, GlyrQuery *query, GlyrMemCache *cache)
++__attribute__ ( (visibility ("default") ) )
++GlyrMemCache * glyr_testing_call_parser (const char * provider_name, GLYR_GET_TYPE type, GlyrQuery * query, GlyrMemCache * cache)
+ {
+-    GlyrMemCache *result = NULL;
+-    if(query && cache) {
+-        MetaDataSource *src = get_metadata_struct(provider_name, type);
+-        if(src != NULL) {
++    GlyrMemCache * result = NULL;
++    if (query && cache)
++    {
++        MetaDataSource * src = get_metadata_struct (provider_name,type);
++        if (src != NULL)
++        {
+             cb_object fake;
+             fake.cache = cache;
+             fake.s     = query;
+-            GList *result_list = src->parser(&fake);
++            GList * result_list = src->parser (&fake);
+ 
+-            if(result_list != NULL) {
++            if (result_list != NULL)
++            {
+                 result = result_list->data;
+             }
+ 
+-            for(GList *elem = result_list; elem; elem = elem->next) {
+-                GlyrMemCache *item = elem->data;
+-                if(item != NULL) {
+-                    update_md5sum(item);
+-                    item->prov = g_strdup(provider_name);
++            for (GList * elem = result_list; elem; elem = elem->next)
++            {
++                GlyrMemCache * item = elem->data;
++                if (item != NULL)
++                {
++                    update_md5sum (item);
++                    item->prov = g_strdup (provider_name);
+                     item->type = src->data_type;
+                     item->prev = (elem->prev) ? (elem->prev->data) : NULL;
+                     item->next = (elem->next) ? (elem->next->data) : NULL;
+diff --git a/spec/capi/check_api.c b/spec/capi/check_api.c
+index 4d23b77..93b0705 100644
+--- a/spec/capi/check_api.c
++++ b/spec/capi/check_api.c
+@@ -25,35 +25,35 @@
+ //--------------------
+ //--------------------
+ 
+-START_TEST(test_glyr_init)
++START_TEST (test_glyr_init)
+ {
+     GlyrQuery q;
+-    fail_unless(glyr_get(NULL, NULL, NULL) == NULL, "glyr_get() should return NULL without INIT");
+-    fail_unless(glyr_get(&q, NULL, NULL) == NULL, "glyr_get() should still return NULL, even with uninitalized query.");
++    fail_unless (glyr_get (NULL,NULL,NULL) == NULL,"glyr_get() should return NULL without INIT");
++    fail_unless (glyr_get (&q,NULL,NULL) == NULL,"glyr_get() should still return NULL, even with uninitalized query.");
+ 
+     glyr_init();
+-    fail_unless(glyr_get(NULL, NULL, NULL) == NULL, "glyr_get() should return NULL without INIT");
+-    fail_unless(glyr_get(&q, NULL, NULL) == NULL, "should not access bad memory");
++    fail_unless (glyr_get (NULL,NULL,NULL) == NULL,"glyr_get() should return NULL without INIT");
++    fail_unless (glyr_get (&q,NULL,NULL) == NULL,"should not access bad memory");
+ 
+     glyr_init();
+-    fail_unless(glyr_get(NULL, NULL, NULL) == NULL, "glyr_get() should return NULL without INIT");
+-    fail_unless(glyr_get(&q, NULL, NULL) == NULL, "should not access bad memory");
++    fail_unless (glyr_get (NULL,NULL,NULL) == NULL,"glyr_get() should return NULL without INIT");
++    fail_unless (glyr_get (&q,NULL,NULL) == NULL,"should not access bad memory");
+ 
+     glyr_cleanup();
+     glyr_cleanup();
+-    fail_unless(glyr_get(NULL, NULL, NULL) == NULL, "glyr_get() should return NULL without INIT");
+-    fail_unless(glyr_get(&q, NULL, NULL) == NULL, "should not access bad memory");
++    fail_unless (glyr_get (NULL,NULL,NULL) == NULL,"glyr_get() should return NULL without INIT");
++    fail_unless (glyr_get (&q,NULL,NULL) == NULL,"should not access bad memory");
+ 
+-    glyr_query_init(&q);
+-    fail_unless(q.is_initalized == 0xDEADBEEF, NULL);
+-    fail_unless(glyr_get(&q, NULL, NULL) == NULL, "should not access bad memory");
+-    glyr_query_destroy(&q);
++    glyr_query_init (&q);
++    fail_unless (q.is_initalized == 0xDEADBEEF,NULL);
++    fail_unless (glyr_get (&q,NULL,NULL) == NULL,"should not access bad memory");
++    glyr_query_destroy (&q);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_destroy_before_init)
++START_TEST (test_glyr_destroy_before_init)
+ {
+     glyr_cleanup();
+     glyr_init();
+@@ -63,120 +63,120 @@ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_query_init)
++START_TEST (test_glyr_query_init)
+ {
+     GlyrQuery q;
+ 
+     /* Crash? */
+-    glyr_query_init(NULL);
++    glyr_query_init (NULL);
+ 
+-    glyr_query_init(&q);
+-    fail_unless(q.is_initalized == 0xDEADBEEF, NULL);
++    glyr_query_init (&q);
++    fail_unless (q.is_initalized == 0xDEADBEEF,NULL);
+ 
+-    GlyrQuery *alloc = malloc(sizeof(GlyrQuery));
+-    glyr_query_init(alloc);
+-    fail_unless(alloc->is_initalized == 0xDEADBEEF, NULL);
++    GlyrQuery * alloc = malloc (sizeof (GlyrQuery) );
++    glyr_query_init (alloc);
++    fail_unless (alloc->is_initalized == 0xDEADBEEF,NULL);
+ 
+-    glyr_query_destroy(&q);
++    glyr_query_destroy (&q);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_cache_free)
++START_TEST (test_glyr_cache_free)
+ {
+-    GlyrMemCache *test = glyr_cache_new();
+-    glyr_cache_free(NULL);
+-    glyr_cache_free(test);
++    GlyrMemCache * test = glyr_cache_new();
++    glyr_cache_free (NULL);
++    glyr_cache_free (test);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_cache_copy)
++START_TEST (test_glyr_cache_copy)
+ {
+-    GlyrMemCache *test = glyr_cache_new();
+-    glyr_cache_set_data(test, g_strdup("some data"), -1);
+-    test->next = (GlyrMemCache *) 0x1010;
+-    test->prev = (GlyrMemCache *) 0x0101;
+-
+-    GlyrMemCache *copy = glyr_cache_copy(test);
+-    fail_unless(memcmp(copy->data, test->data, test->size) == 0, "Should have the same data");
+-    fail_unless(copy->next == NULL, NULL);
+-    fail_unless(copy->prev == NULL, NULL);
+-
+-    glyr_cache_free(copy);
+-    glyr_cache_free(test);
++    GlyrMemCache * test = glyr_cache_new();
++    glyr_cache_set_data (test,g_strdup ("some data"),-1);
++    test->next = (GlyrMemCache*) 0x1010;
++    test->prev = (GlyrMemCache*) 0x0101;
++
++    GlyrMemCache * copy = glyr_cache_copy (test);
++    fail_unless (memcmp (copy->data,test->data,test->size) == 0,"Should have the same data");
++    fail_unless (copy->next == NULL,NULL);
++    fail_unless (copy->prev == NULL,NULL);
++
++    glyr_cache_free (copy);
++    glyr_cache_free (test);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_query_destroy)
++START_TEST (test_glyr_query_destroy)
+ {
+     GlyrQuery q;
+-    glyr_query_destroy(NULL);
+-    glyr_query_destroy(&q);
+-    glyr_query_init(&q);
+-    glyr_query_destroy(&q);
++    glyr_query_destroy (NULL);
++    glyr_query_destroy (&q);
++    glyr_query_init (&q);
++    glyr_query_destroy (&q);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_free_list)
++START_TEST (test_glyr_free_list)
+ {
+-    glyr_free_list(NULL);
+-    GlyrMemCache *new1 = glyr_cache_new();
+-    GlyrMemCache *new2 = glyr_cache_new();
+-    GlyrMemCache *new3 = glyr_cache_new();
++    glyr_free_list (NULL);
++    GlyrMemCache * new1 = glyr_cache_new();
++    GlyrMemCache * new2 = glyr_cache_new();
++    GlyrMemCache * new3 = glyr_cache_new();
+     new2->next = new3;
+     new2->prev = new1;
+-    glyr_free_list(new2);
++    glyr_free_list (new2);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_cache_set_data)
++START_TEST (test_glyr_cache_set_data)
+ {
+-    glyr_cache_set_data(NULL, "lala", 10);
++    glyr_cache_set_data (NULL,"lala",10);
+ 
+-    GlyrMemCache *c = glyr_cache_new();
+-    c->data = g_strdup("Hello?");
+-    c->size = strlen("Hello?");
+-    glyr_cache_update_md5sum(c);
++    GlyrMemCache * c = glyr_cache_new();
++    c->data = g_strdup ("Hello?");
++    c->size = strlen ("Hello?");
++    glyr_cache_update_md5sum (c);
+     unsigned char old_sum[16] = {0};
+-    memcpy(old_sum, c->md5sum, 16);
++    memcpy (old_sum,c->md5sum,16);
+     size_t old_size = c->size;
+ 
+-    glyr_cache_set_data(c, g_strdup(" World!"), -1);
++    glyr_cache_set_data (c,g_strdup (" World!"),-1);
+ 
+-    fail_if(g_strcmp0(c->data, " World!"), NULL);
+-    fail_if(old_size == c->size, NULL);
+-    fail_if(!memcmp(old_sum, c->md5sum, 16), NULL);
++    fail_if (g_strcmp0 (c->data," World!"),NULL);
++    fail_if (old_size == c->size,NULL);
++    fail_if (!memcmp (old_sum,c->md5sum,16),NULL);
+ 
+-    glyr_cache_free(c);
++    glyr_cache_free (c);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_cache_write)
++START_TEST (test_glyr_cache_write)
+ {
+     glyr_init();
+ 
+-    glyr_cache_write(NULL, "/tmp");
+-    GlyrMemCache *tmp = glyr_cache_new();
+-    glyr_cache_write(tmp, NULL);
++    glyr_cache_write (NULL,"/tmp");
++    GlyrMemCache * tmp = glyr_cache_new();
++    glyr_cache_write (tmp,NULL);
+ 
+-    glyr_cache_set_data(tmp, g_strdup("Test data of the cache"), -1);
+-    glyr_cache_write(tmp, "stdout");
+-    glyr_cache_write(tmp, "stderr");
+-    glyr_cache_write(tmp, "null");
+-    glyr_cache_write(tmp, "/tmp/test.txt");
++    glyr_cache_set_data (tmp,g_strdup ("Test data of the cache"),-1);
++    glyr_cache_write (tmp,"stdout");
++    glyr_cache_write (tmp,"stderr");
++    glyr_cache_write (tmp,"null");
++    glyr_cache_write (tmp,"/tmp/test.txt");
+ 
+-    glyr_cache_free(tmp);
++    glyr_cache_free (tmp);
+     glyr_cleanup();
+ }
+ END_TEST
+@@ -185,52 +185,52 @@ END_TEST
+ //--------------------
+ //--------------------
+ 
+-START_TEST(test_glyr_download)
++START_TEST (test_glyr_download)
+ {
+     glyr_init();
+-    atexit(glyr_cleanup);
+-    GlyrMemCache *c = glyr_download("www.duckduckgo.com", NULL);
+-    fail_unless(c != NULL, "Could not load www.google.de");
+-    glyr_cache_free(c);
++    atexit (glyr_cleanup);
++    GlyrMemCache * c = glyr_download ("www.duckduckgo.com",NULL);
++    fail_unless (c != NULL,"Could not load www.google.de");
++    glyr_cache_free (c);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-Suite *create_test_suite(void)
++Suite * create_test_suite (void)
+ {
+-    Suite *s = suite_create("Libglyr API");
++    Suite *s = suite_create ("Libglyr API");
+ 
+     /* Core test case */
+-    TCase *tc_core = tcase_create("Init");
+-    tcase_add_test(tc_core, test_glyr_init);
+-    tcase_add_test(tc_core, test_glyr_destroy_before_init);
+-    tcase_add_test(tc_core, test_glyr_query_init);
+-    tcase_add_test(tc_core, test_glyr_query_destroy);
+-    tcase_add_test(tc_core, test_glyr_free_list);
+-    tcase_add_test(tc_core, test_glyr_cache_free);
+-    tcase_add_test(tc_core, test_glyr_cache_copy);
+-    tcase_add_test(tc_core, test_glyr_cache_set_data);
+-    tcase_add_test(tc_core, test_glyr_cache_write);
+-    tcase_add_test(tc_core, test_glyr_download);
+-    suite_add_tcase(s, tc_core);
++    TCase * tc_core = tcase_create ("Init");
++    tcase_add_test (tc_core, test_glyr_init);
++    tcase_add_test (tc_core, test_glyr_destroy_before_init);
++    tcase_add_test (tc_core, test_glyr_query_init);
++    tcase_add_test (tc_core, test_glyr_query_destroy);
++    tcase_add_test (tc_core, test_glyr_free_list);
++    tcase_add_test (tc_core, test_glyr_cache_free);
++    tcase_add_test (tc_core, test_glyr_cache_copy);
++    tcase_add_test (tc_core, test_glyr_cache_set_data);
++    tcase_add_test (tc_core, test_glyr_cache_write);
++    tcase_add_test (tc_core, test_glyr_download);
++    suite_add_tcase (s, tc_core);
+     return s;
+ }
+ 
+ //--------------------
+ 
+-int main(void)
++int main (void)
+ {
+     init();
+ 
+     int number_failed;
+     Suite *s = create_test_suite();
+ 
+-    SRunner *sr = srunner_create(s);
+-    srunner_set_log(sr, "check_glyr_api.log");
+-    srunner_run_all(sr, CK_VERBOSE);
++    SRunner * sr = srunner_create (s);
++    srunner_set_log (sr, "check_glyr_api.log");
++    srunner_run_all (sr, CK_VERBOSE);
+ 
+-    number_failed = srunner_ntests_failed(sr);
+-    srunner_free(sr);
++    number_failed = srunner_ntests_failed (sr);
++    srunner_free (sr);
+     return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+ };
+diff --git a/spec/capi/check_dbc.c b/spec/capi/check_dbc.c
+index 3638d14..a9c7fb6 100644
+--- a/spec/capi/check_dbc.c
++++ b/spec/capi/check_dbc.c
+@@ -28,31 +28,31 @@
+ 
+ //--------------------
+ 
+-static int counter_callback(GlyrQuery *q, GlyrMemCache *c, void *userptr)
++static int counter_callback (GlyrQuery * q, GlyrMemCache * c, void * userptr)
+ {
+-    int *i = userptr;
++    int * i = userptr;
+     *i += 1;
+     return 0;
+ }
+ 
+-static int count_db_items(GlyrDatabase *db)
++static int count_db_items (GlyrDatabase * db)
+ {
+     int c = 0;
+-    glyr_db_foreach(db, counter_callback, &c);
++    glyr_db_foreach (db,counter_callback,&c);
+     return c;
+ }
+ 
+-static void cleanup_db(void)
++static void cleanup_db (void)
+ {
+-    system("rm -rf /tmp/check/");
++    system ("rm -rf /tmp/check/");
+ }
+ 
+ 
+-static GlyrDatabase *setup_db(void)
++static GlyrDatabase * setup_db (void)
+ {
+     cleanup_db();
+-    system("mkdir -p /tmp/check");
+-    return glyr_db_init("/tmp/check");
++    system ("mkdir -p /tmp/check");
++    return glyr_db_init ("/tmp/check");
+ }
+ 
+ //--------------------
+@@ -60,290 +60,291 @@ static GlyrDatabase *setup_db(void)
+ //--------------------
+ //--------------------
+ 
+-START_TEST(test_create_db)
++START_TEST (test_create_db)
+ {
+-    glyr_db_init(NULL);
+-    GlyrDatabase *db = glyr_db_init("/tmp/");
+-    glyr_db_destroy(db);
+-    glyr_db_destroy(NULL);
++    glyr_db_init (NULL);
++    GlyrDatabase * db = glyr_db_init ("/tmp/");
++    glyr_db_destroy (db);
++    glyr_db_destroy (NULL);
+ 
+-    system("rm /tmp/metadata.db");
++    system ("rm /tmp/metadata.db");
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_simple_db)
++START_TEST (test_simple_db)
+ {
+     GlyrQuery q;
+-    setup(&q, GLYR_GET_LYRICS, 10);
+-    glyr_opt_artist(&q, "Equi");
+-    glyr_opt_title(&q, "lala");
++    setup (&q,GLYR_GET_LYRICS,10);
++    glyr_opt_artist (&q,"Equi");
++    glyr_opt_title (&q,"lala");
+ 
+-    GlyrDatabase *db = setup_db();
++    GlyrDatabase * db = setup_db();
+ 
+-    GlyrMemCache *ct = glyr_cache_new();
++    GlyrMemCache * ct = glyr_cache_new();
+ 
+-    glyr_cache_set_data(ct, g_strdup("test"), -1);
++    glyr_cache_set_data (ct,g_strdup ("test"),-1);
+ 
+-    glyr_db_insert(NULL, &q, (GlyrMemCache *) 0x1);
+-    fail_unless(count_db_items(db) == 0, NULL);
+-    glyr_db_insert(db, NULL, (GlyrMemCache *) 0x1);
+-    fail_unless(count_db_items(db) == 0, NULL);
+-    glyr_db_insert(db, &q, NULL);
+-    fail_unless(count_db_items(db) == 0, NULL);
++    glyr_db_insert (NULL,&q, (GlyrMemCache*) 0x1);
++    fail_unless (count_db_items (db) == 0, NULL);
++    glyr_db_insert (db,NULL, (GlyrMemCache*) 0x1);
++    fail_unless (count_db_items (db) == 0, NULL);
++    glyr_db_insert (db,&q,NULL);
++    fail_unless (count_db_items (db) == 0, NULL);
+ 
+-    glyr_db_insert(db, &q, ct);
+-    GlyrMemCache *c = glyr_db_lookup(db, &q);
+-    fail_unless(c != NULL, NULL);
+-    fail_unless(c->data != NULL, NULL);
+-    fail_unless(count_db_items(db) == 1, NULL);
++    glyr_db_insert (db,&q,ct);
++    GlyrMemCache * c = glyr_db_lookup (db,&q);
++    fail_unless (c != NULL, NULL);
++    fail_unless (c->data != NULL, NULL);
++    fail_unless (count_db_items (db) == 1, NULL);
+ 
+-    glyr_db_destroy(db);
+-    glyr_cache_free(ct);
+-    glyr_query_destroy(&q);
++    glyr_db_destroy (db);
++    glyr_cache_free (ct);
++    glyr_query_destroy (&q);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_iter_db)
++START_TEST (test_iter_db)
+ {
+     GlyrQuery q;
+-    setup(&q, GLYR_GET_LYRICS, 10);
+-    glyr_opt_artist(&q, "Equi");
+-    glyr_opt_title(&q, "lala");
++    setup (&q,GLYR_GET_LYRICS,10);
++    glyr_opt_artist (&q,"Equi");
++    glyr_opt_title (&q,"lala");
+ 
+-    GlyrDatabase *db = setup_db();
++    GlyrDatabase * db = setup_db();
+ 
+     GlyrQuery nugget;
+-    setup(&nugget, GLYR_GET_COVERART, 40);
+-    glyr_opt_artist(&nugget, "A very special artist");
+-    glyr_opt_album(&nugget, "A very special album");
++    setup (&nugget,GLYR_GET_COVERART,40);
++    glyr_opt_artist (&nugget,"A very special artist");
++    glyr_opt_album (&nugget,"A very special album");
+ 
+-    GTimer *insert_time = g_timer_new();
++    GTimer * insert_time = g_timer_new();
+ 
+     const int N = 5000;
+-    for(int i = 0; i < N; i++) {
+-        GlyrMemCache *ct = glyr_cache_new();
+-        glyr_cache_set_data(ct, g_strdup_printf("test# %d", i + 1), -1);
+-        ct->dsrc = g_strdup_printf("Dummy url %d", i + 1);
++    for (int i = 0; i < N; i++)
++    {
++        GlyrMemCache * ct = glyr_cache_new();
++        glyr_cache_set_data (ct,g_strdup_printf ("test# %d",i+1),-1);
++        ct->dsrc = g_strdup_printf ("Dummy url %d",i+1);
+ 
+-        if(i % 2) {
++        if (i % 2)
+             ct->rating = N ;
+-        } else {
++        else
+             ct->rating = N ;
+-        }
+ 
+-        if(i % 23) {
+-            glyr_db_insert(db, &q, ct);
+-        } else {
+-            glyr_db_insert(db, &nugget, ct);
+-        }
++        if (i % 23)
++            glyr_db_insert (db,&q,ct);
++        else
++            glyr_db_insert (db,&nugget,ct);
+ 
+-        glyr_cache_free(ct);
++        glyr_cache_free (ct);
+     }
+ 
+-    g_timer_stop(insert_time);
+-    g_message("Used %.5f seconds to insert..", g_timer_elapsed(insert_time, NULL));
++    g_timer_stop (insert_time);
++    g_message ("Used %.5f seconds to insert..",g_timer_elapsed (insert_time,NULL) );
+ 
+     /* Check if N items are in DB */
+-    int cdb = count_db_items(db);
+-    g_message("Counted %d items", cdb);
+-    fail_unless(cdb == N, NULL);
++    int cdb = count_db_items (db);
++    g_message ("Counted %d items",cdb);
++    fail_unless (cdb == N, NULL);
+ 
+     /* Test if case-insensitivity works */
+-    glyr_opt_artist(&q, "eQuI");
+-    glyr_opt_title(&q, "LALA");
++    glyr_opt_artist (&q,"eQuI");
++    glyr_opt_title (&q,"LALA");
+ 
+     float fine_grained = 0.0;
+-    GTimer *grain_time = g_timer_new();
++    GTimer * grain_time = g_timer_new();
+ 
+-    g_timer_start(insert_time);
++    g_timer_start (insert_time);
+ 
+-    GlyrMemCache *c, * ptr;
+-    for(int i = 1; i <= N / 10; i++) {
+-        g_timer_start(grain_time);
++    GlyrMemCache * c, * ptr;
++    for (int i = 1; i <= N/10; i++)
++    {
++        g_timer_start (grain_time);
+         /* Get a list of the caches */
+-        if(i % 10) {
+-            c = glyr_db_lookup(db, &q);
+-        } else {
+-            c = glyr_db_lookup(db, &nugget);
+-        }
++        if (i % 10)
++            c = glyr_db_lookup (db,&q);
++        else
++            c = glyr_db_lookup (db,&nugget);
+ 
+-        g_timer_stop(grain_time);
+-        fine_grained += g_timer_elapsed(grain_time, NULL);
++        g_timer_stop (grain_time);
++        fine_grained += g_timer_elapsed (grain_time,NULL);
+ 
+         ptr = c;
+-        fail_if(ptr == NULL);
++        fail_if (ptr == NULL);
+ 
+         int last_rating = INT_MAX;
+         int ctr = 0;
+-        while(ptr) {
++        while (ptr)
++        {
+             ctr++;
+-            fail_unless(last_rating >= ptr->rating);
++            fail_unless (last_rating >= ptr->rating);
+             last_rating = ptr->rating;
+             ptr = ptr->next;
+         }
+-        glyr_free_list(c);
++        glyr_free_list (c);
+ 
+         /* Test if we got exactly 10 or 42 items, (honoring number setting) */
+ 
+-        if(i % 10) {
+-            fail_unless(ctr == 10);
+-        } else {
+-            fail_unless(ctr == 40);
+-        }
++        if (i % 10)
++            fail_unless (ctr == 10);
++        else
++            fail_unless (ctr == 40);
+     }
+ 
+ 
+-    g_timer_stop(insert_time);
+-    g_message("Used %.5f seconds to lookup..", g_timer_elapsed(insert_time, NULL));
+-    g_message("Used %.5f for actual lookup..", fine_grained);
++    g_timer_stop (insert_time);
++    g_message ("Used %.5f seconds to lookup..",g_timer_elapsed (insert_time,NULL) );
++    g_message ("Used %.5f for actual lookup..",fine_grained);
+ 
+-    glyr_db_destroy(db);
+-    glyr_query_destroy(&q);
+-    glyr_query_destroy(&nugget);
++    glyr_db_destroy (db);
++    glyr_query_destroy (&q);
++    glyr_query_destroy (&nugget);
+ 
+-    g_timer_destroy(insert_time);
+-    g_timer_destroy(grain_time);
++    g_timer_destroy (insert_time);
++    g_timer_destroy (grain_time);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_sorted_rating)
++START_TEST (test_sorted_rating)
+ {
+     const int N = 10;
+ 
+-    GlyrDatabase *db = setup_db();
++    GlyrDatabase * db = setup_db();
+ 
+     GlyrQuery q;
+-    glyr_query_init(&q);
+-    setup(&q, GLYR_GET_LYRICS, N);
++    glyr_query_init (&q);
++    setup (&q,GLYR_GET_LYRICS,N);
+ 
+-    for(int i = 0; i < N; ++i) {
++    for (int i = 0; i < N; ++i)
++    {
+         int rate = (i / 2) + 1;
+ 
+-        GlyrMemCache *ct = glyr_cache_new();
+-        fail_if(ct == NULL);
++        GlyrMemCache * ct = glyr_cache_new();
++        fail_if (ct == NULL);
+ 
+-        glyr_cache_set_data(ct, g_strdup_printf("MyLyrics %d", i), -1);
+-        ct->dsrc = g_strdup("http://MyLyrics.com");
++        glyr_cache_set_data (ct,g_strdup_printf ("MyLyrics %d",i),-1);
++        ct->dsrc = g_strdup ("http://MyLyrics.com");
+         ct->rating = rate;
+-        glyr_db_insert(db, &q, ct);
++        glyr_db_insert (db,&q,ct);
+ 
+-        glyr_cache_free(ct);
++        glyr_cache_free (ct);
+     }
+ 
+-    fail_unless(count_db_items(db) == N);
++    fail_unless (count_db_items (db) == N);
+ 
+-    GlyrMemCache *list = glyr_db_lookup(db, &q);
+-    GlyrMemCache *iter = list;
+-    fail_if(list == NULL);
++    GlyrMemCache * list = glyr_db_lookup (db,&q);
++    GlyrMemCache * iter = list;
++    fail_if (list == NULL);
+ 
+     double last_timestamp = DBL_MAX;
+     int last_rating = INT_MAX;
+-    while(iter) {
+-        glyr_cache_print(iter);
+-        fail_unless(last_rating >= iter->rating);
+-        if(last_rating == iter->rating) {
+-            fail_unless(last_timestamp >= iter->timestamp);
+-        }
++    while (iter)
++    {
++        glyr_cache_print (iter);
++        fail_unless (last_rating >= iter->rating);
++        if (last_rating == iter->rating)
++            fail_unless (last_timestamp >= iter->timestamp);
+ 
+         last_timestamp = iter->timestamp;
+         last_rating = iter->rating;
+         iter = iter->next;
+     }
+ 
+-    glyr_free_list(list);
++    glyr_free_list (list);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+ /* Write artist|album|title, select only artist|title */
+-START_TEST(test_intelligent_lookup)
++START_TEST (test_intelligent_lookup)
+ {
+-    GlyrDatabase *db = setup_db();
++    GlyrDatabase * db = setup_db();
+ 
+     GlyrQuery alt;
+-    glyr_query_init(&alt);
++    glyr_query_init (&alt);
+ 
+-    gchar *artist = "Аркона";
+-    gchar *album  = "Ot Serdca k Nebu";
+-    gchar *title  = "Pokrovy Nebesnogo Startsa (Shrouds Of Celestial Sage)";
++    gchar * artist = "Аркона";
++    gchar * album  = "Ot Serdca k Nebu";
++    gchar * title  = "Pokrovy Nebesnogo Startsa (Shrouds Of Celestial Sage)";
+ 
+-    glyr_opt_artist(&alt, artist);
+-    glyr_opt_album(&alt, album);
+-    glyr_opt_title(&alt, title);
+-    glyr_opt_type(&alt, GLYR_GET_LYRICS);
++    glyr_opt_artist (&alt,artist);
++    glyr_opt_album (&alt,album );
++    glyr_opt_title (&alt,title );
++    glyr_opt_type  (&alt,GLYR_GET_LYRICS);
+ 
+-    GlyrMemCache *subject = glyr_cache_new();
+-    glyr_cache_set_data(subject, g_strdup("These are lyrics. Really."), -1);
++    GlyrMemCache * subject = glyr_cache_new();
++    glyr_cache_set_data (subject,g_strdup ("These are lyrics. Really."),-1);
+ 
+-    glyr_db_insert(db, &alt, subject);
++    glyr_db_insert (db,&alt,subject);
+ 
+-    GlyrMemCache *one = glyr_db_lookup(db, &alt);
+-    fail_if(one == NULL, NULL);
+-    fail_if(memcmp(one->md5sum, subject->md5sum, 16) != 0, NULL);
+-    glyr_cache_free(one);
++    GlyrMemCache * one = glyr_db_lookup (db,&alt);
++    fail_if (one == NULL,NULL);
++    fail_if (memcmp (one->md5sum,subject->md5sum,16) != 0, NULL);
++    glyr_cache_free (one);
+ 
+     alt.album = NULL;
+-    GlyrMemCache *two = glyr_db_lookup(db, &alt);
+-    fail_if(two == NULL, NULL);
+-    fail_if(memcmp(two->md5sum, subject->md5sum, 16) != 0, NULL);
+-    glyr_cache_free(two);
+-
+-    fail_unless(count_db_items(db) == 1, NULL);
+-    int deleted = glyr_db_delete(db, &alt);
+-    fail_unless(deleted == 1, NULL);
+-    fail_unless(count_db_items(db) == 0, NULL);
+-
+-    glyr_query_destroy(&alt);
+-    glyr_db_destroy(db);
++    GlyrMemCache * two = glyr_db_lookup (db,&alt);
++    fail_if (two == NULL,NULL);
++    fail_if (memcmp (two->md5sum,subject->md5sum,16) != 0, NULL);
++    glyr_cache_free (two);
++
++    fail_unless (count_db_items (db) == 1,NULL);
++    int deleted = glyr_db_delete (db,&alt);
++    fail_unless (deleted == 1,NULL);
++    fail_unless (count_db_items (db) == 0,NULL);
++
++    glyr_query_destroy (&alt);
++    glyr_db_destroy (db);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_db_editplace)
++START_TEST (test_db_editplace)
+ {
+ 
+-    GlyrDatabase *db = setup_db();
+-    if(db != NULL) {
+-        fail_unless(count_db_items(db) == 0, NULL);
++    GlyrDatabase * db = setup_db();
++    if (db != NULL)
++    {
++        fail_unless (count_db_items (db) == 0, NULL);
+ 
+-        GlyrMemCache *test_data = glyr_cache_new();
+-        glyr_cache_set_data(test_data, g_strdup("my test data"), -1);
++        GlyrMemCache * test_data = glyr_cache_new();
++        glyr_cache_set_data (test_data,g_strdup ("my test data"),-1);
+         GlyrQuery q;
+-        setup(&q, GLYR_GET_LYRICS, 1);
+-        glyr_db_insert(db, &q, test_data);
++        setup (&q,GLYR_GET_LYRICS,1);
++        glyr_db_insert (db,&q,test_data);
+ 
+-        fail_unless(count_db_items(db) == 1, NULL);
++        fail_unless (count_db_items (db) == 1, NULL);
+ 
+-        GlyrMemCache *edit_one = glyr_cache_new();
+-        glyr_cache_set_data(edit_one, g_strdup("my new data"), -1);
+-        glyr_db_edit(db, &q, edit_one);
++        GlyrMemCache * edit_one = glyr_cache_new();
++        glyr_cache_set_data (edit_one,g_strdup ("my new data"),-1);
++        glyr_db_edit (db,&q,edit_one);
+ 
+-        fail_unless(count_db_items(db) == 1, NULL);
+-        GlyrMemCache *lookup_one = glyr_db_lookup(db, &q);
+-        fail_unless(memcmp(lookup_one->data, edit_one->data, edit_one->size) == 0, NULL);
++        fail_unless (count_db_items (db) == 1, NULL);
++        GlyrMemCache * lookup_one = glyr_db_lookup (db,&q);
++        fail_unless (memcmp (lookup_one->data,edit_one->data,edit_one->size) == 0, NULL);
+ 
+-        GlyrMemCache *edit_two = glyr_cache_new();
+-        glyr_cache_set_data(edit_two, g_strdup("my even new data"), -1);
+-        glyr_db_replace(db, edit_one->md5sum, &q, edit_two);
++        GlyrMemCache * edit_two = glyr_cache_new();
++        glyr_cache_set_data (edit_two,g_strdup ("my even new data"),-1);
++        glyr_db_replace (db,edit_one->md5sum,&q,edit_two);
+ 
+-        fail_unless(count_db_items(db) == 1, NULL);
+-        GlyrMemCache *lookup_two = glyr_db_lookup(db, &q);
+-        fail_unless(memcmp(lookup_two->data, edit_two->data, edit_two->size) == 0, NULL);
++        fail_unless (count_db_items (db) == 1, NULL);
++        GlyrMemCache * lookup_two = glyr_db_lookup (db,&q);
++        fail_unless (memcmp (lookup_two->data,edit_two->data,edit_two->size) == 0, NULL);
+ 
+-        glyr_cache_free(lookup_one);
+-        glyr_cache_free(lookup_two);
+-        glyr_cache_free(edit_one);
+-        glyr_cache_free(edit_two);
+-        glyr_cache_free(test_data);
+-        glyr_db_destroy(db);
++        glyr_cache_free (lookup_one);
++        glyr_cache_free (lookup_two);
++        glyr_cache_free (edit_one);
++        glyr_cache_free (edit_two);
++        glyr_cache_free (test_data);
++        glyr_db_destroy (db);
+     }
+ }
+ END_TEST
+@@ -351,38 +352,38 @@ END_TEST
+ 
+ //--------------------
+ 
+-Suite *create_test_suite(void)
++Suite * create_test_suite (void)
+ {
+-    Suite *s = suite_create("Libglyr");
++    Suite *s = suite_create ("Libglyr");
+ 
+     /* Core test case */
+-    TCase *tc_dbcache = tcase_create("DBCache");
+-    tcase_set_timeout(tc_dbcache, GLYR_DEFAULT_TIMEOUT * 4);
+-    tcase_add_test(tc_dbcache, test_create_db);
+-    tcase_add_test(tc_dbcache, test_simple_db);
+-    tcase_add_test(tc_dbcache, test_iter_db);
+-    tcase_add_test(tc_dbcache, test_sorted_rating);
+-    tcase_add_test(tc_dbcache, test_intelligent_lookup);
+-    tcase_add_test(tc_dbcache, test_db_editplace);
+-    suite_add_tcase(s, tc_dbcache);
++    TCase * tc_dbcache = tcase_create ("DBCache");
++    tcase_set_timeout (tc_dbcache,GLYR_DEFAULT_TIMEOUT * 4);
++    tcase_add_test (tc_dbcache, test_create_db);
++    tcase_add_test (tc_dbcache, test_simple_db);
++    tcase_add_test (tc_dbcache, test_iter_db);
++    tcase_add_test (tc_dbcache, test_sorted_rating);
++    tcase_add_test (tc_dbcache, test_intelligent_lookup);
++    tcase_add_test (tc_dbcache, test_db_editplace);
++    suite_add_tcase (s, tc_dbcache);
+     return s;
+ }
+ 
+ //--------------------
+ 
+-int main(void)
++int main (void)
+ {
+     init();
+ 
+     int number_failed;
+-    Suite *s = create_test_suite();
++    Suite * s = create_test_suite();
+ 
+-    SRunner *sr = srunner_create(s);
+-    srunner_set_log(sr, "check_glyr_opt.log");
+-    srunner_run_all(sr, CK_VERBOSE);
++    SRunner * sr = srunner_create (s);
++    srunner_set_log (sr, "check_glyr_opt.log");
++    srunner_run_all (sr, CK_VERBOSE);
+ 
+-    number_failed = srunner_ntests_failed(sr);
+-    srunner_free(sr);
++    number_failed = srunner_ntests_failed (sr);
++    srunner_free (sr);
+ 
+     cleanup_db();
+     return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+diff --git a/spec/capi/check_opt.c b/spec/capi/check_opt.c
+index 809ab44..43265dc 100644
+--- a/spec/capi/check_opt.c
++++ b/spec/capi/check_opt.c
+@@ -22,114 +22,116 @@
+ 
+ //--------------------
+ 
+-static GLYR_ERROR test_callback_ok(GlyrMemCache *c, GlyrQuery *q)
++static GLYR_ERROR test_callback_ok (GlyrMemCache * c, GlyrQuery * q)
+ {
+     return GLYRE_OK;
+ }
+ 
+-static GLYR_ERROR test_callback_post(GlyrMemCache *c, GlyrQuery *q)
++static GLYR_ERROR test_callback_post (GlyrMemCache * c, GlyrQuery * q)
+ {
+     return GLYRE_STOP_POST;
+ }
+ 
+-static GLYR_ERROR test_callback_pre(GlyrMemCache *c, GlyrQuery *q)
++static GLYR_ERROR test_callback_pre (GlyrMemCache * c, GlyrQuery * q)
+ {
+     return GLYRE_STOP_PRE;
+ }
+ 
+-static GLYR_ERROR test_callback_skip1(GlyrMemCache *c, GlyrQuery *q)
++static GLYR_ERROR test_callback_skip1 (GlyrMemCache * c, GlyrQuery * q)
+ {
+     GLYR_ERROR rc = GLYRE_OK;
+-    int *counter = q->callback.user_pointer;
+-    if(counter[0]++ % 2 == 0) {
++    int * counter = q->callback.user_pointer;
++    if (counter[0]++ % 2 == 0)
++    {
+         rc = GLYRE_SKIP;
+     }
+     return rc;
+ }
+ 
+-static GLYR_ERROR test_callback_skip2(GlyrMemCache *c, GlyrQuery *q)
++static GLYR_ERROR test_callback_skip2 (GlyrMemCache * c, GlyrQuery * q)
+ {
+     return GLYRE_SKIP;
+ }
+ 
+-START_TEST(test_glyr_opt_dlcallback)
++START_TEST (test_glyr_opt_dlcallback)
+ {
+     GlyrQuery q;
+-    GlyrMemCache *list;
++    GlyrMemCache * list;
+     gint length = -1;
+-    setup(&q, GLYR_GET_ARTIST_PHOTOS, 2);
+-    glyr_opt_useragent(&q, "I am a useragent.");
+-    glyr_opt_verbosity(&q, 0);
+-
+-    glyr_opt_dlcallback(&q, test_callback_ok, NULL);
+-    list = glyr_get(&q, NULL, &length);
+-    g_print("L = %d\n", length);
+-    fail_unless(length == 2, NULL);
+-    glyr_free_list(list);
+-
+-    glyr_opt_dlcallback(&q, test_callback_post, NULL);
+-    list = glyr_get(&q, NULL, &length);
+-    g_print("L = %d\n", length);
+-    fail_unless(length == 1, NULL);
+-    glyr_free_list(list);
+-
+-    glyr_opt_dlcallback(&q, test_callback_pre, NULL);
+-    list = glyr_get(&q, NULL, &length);
+-    g_print("L = %d\n", length);
+-    fail_unless(length == 0, NULL);
+-    glyr_free_list(list);
++    setup (&q,GLYR_GET_ARTIST_PHOTOS,2);
++    glyr_opt_useragent (&q,"I am a useragent.");
++    glyr_opt_verbosity (&q,0);
++
++    glyr_opt_dlcallback (&q,test_callback_ok,NULL);
++    list = glyr_get (&q,NULL,&length);
++    g_print ("L = %d\n",length);
++    fail_unless (length == 2,NULL);
++    glyr_free_list (list);
++
++    glyr_opt_dlcallback (&q,test_callback_post,NULL);
++    list = glyr_get (&q,NULL,&length);
++    g_print ("L = %d\n",length);
++    fail_unless (length == 1,NULL);
++    glyr_free_list (list);
++
++    glyr_opt_dlcallback (&q,test_callback_pre,NULL);
++    list = glyr_get (&q,NULL,&length);
++    g_print ("L = %d\n",length);
++    fail_unless (length == 0,NULL);
++    glyr_free_list (list);
+ 
+     int ctr = 0;
+-    glyr_opt_dlcallback(&q, test_callback_skip1, &ctr);
+-    list = glyr_get(&q, NULL, &length);
+-    g_print("L = %d\n", length);
+-    fail_unless(length == 1, NULL);
+-    glyr_free_list(list);
+-
+-    glyr_opt_dlcallback(&q, test_callback_skip2, NULL);
+-    list = glyr_get(&q, NULL, &length);
+-    fail_unless(length == 0, NULL);
+-    g_print("L = %d\n", length);
+-    glyr_free_list(list);
+-
+-    glyr_query_destroy(&q);
++    glyr_opt_dlcallback (&q,test_callback_skip1,&ctr);
++    list = glyr_get (&q,NULL,&length);
++    g_print ("L = %d\n",length);
++    fail_unless (length == 1,NULL);
++    glyr_free_list (list);
++
++    glyr_opt_dlcallback (&q,test_callback_skip2,NULL);
++    list = glyr_get (&q,NULL,&length);
++    fail_unless (length == 0,NULL);
++    g_print ("L = %d\n",length);
++    glyr_free_list (list);
++
++    glyr_query_destroy (&q);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_opt_redirects)
++START_TEST (test_glyr_opt_redirects)
+ {
+     GlyrQuery q;
+-    setup(&q, GLYR_GET_COVERART, 1);
++    setup (&q,GLYR_GET_COVERART,1);
+ 
+-    glyr_opt_from(&q, "amazon");
+-    glyr_opt_redirects(&q, 0);
++    glyr_opt_from (&q,"amazon");
++    glyr_opt_redirects (&q,0);
+ 
+     int length = 0;
+     GLYR_ERROR err = GLYRE_OK;
+-    GlyrMemCache *list = glyr_get(&q, &err, &length);
+-    fail_unless(list == NULL, "should fail due to redirects");
+-    if(err != GLYRE_OK) {
+-        puts(glyr_strerror(err));
++    GlyrMemCache * list = glyr_get (&q,&err,&length);
++    fail_unless (list == NULL,"should fail due to redirects");
++    if (err != GLYRE_OK)
++    {
++        puts (glyr_strerror (err) );
+     }
+ 
+-    unsetup(&q, list);
++    unsetup (&q,list);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_opt_number)
++START_TEST (test_glyr_opt_number)
+ {
+     GlyrQuery q;
+     int length = 0;
+-    setup(&q, GLYR_GET_ARTIST_PHOTOS, 4);
+-    GlyrMemCache *list = glyr_get(&q, NULL, &length);
++    setup (&q,GLYR_GET_ARTIST_PHOTOS,4);
++    GlyrMemCache * list = glyr_get (&q,NULL,&length);
+ 
+-    fail_unless(length == 4, NULL);
++    fail_unless (length == 4,NULL);
+ 
+-    unsetup(&q, list);
++    unsetup (&q,list);
+ }
+ END_TEST
+ 
+@@ -137,71 +139,71 @@ END_TEST
+ // from
+ // plugmax
+ 
+-START_TEST(test_glyr_opt_allowed_formats)
++START_TEST (test_glyr_opt_allowed_formats)
+ {
+     GlyrQuery q;
+-    setup(&q, GLYR_GET_COVERART, 1);
+-    glyr_opt_verbosity(&q, 0);
+-    glyr_opt_allowed_formats(&q, "png");
++    setup (&q,GLYR_GET_COVERART,1);
++    glyr_opt_verbosity (&q,0);
++    glyr_opt_allowed_formats (&q,"png");
+ 
+     int length = 0;
+-    GlyrMemCache *list = glyr_get(&q, NULL, &length);
++    GlyrMemCache * list = glyr_get (&q,NULL,&length);
+ 
+-    fail_if(strcmp(list->img_format, "png") != 0, NULL);
++    fail_if (strcmp (list->img_format,"png") != 0,NULL);
+ 
+-    unsetup(&q, list);
++    unsetup (&q,list);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-START_TEST(test_glyr_opt_proxy)
++START_TEST (test_glyr_opt_proxy)
+ {
+     GlyrQuery q;
+-    setup(&q, GLYR_GET_COVERART, 1);
+-    glyr_opt_verbosity(&q, 0);
+-    glyr_opt_proxy(&q, "I can haz Existence?");
++    setup (&q,GLYR_GET_COVERART,1);
++    glyr_opt_verbosity (&q,0);
++    glyr_opt_proxy (&q,"I can haz Existence?");
+ 
+-    GlyrMemCache *list = glyr_get(&q, NULL, NULL);
+-    fail_unless(list == NULL, NULL);
++    GlyrMemCache * list = glyr_get (&q,NULL,NULL);
++    fail_unless (list == NULL,NULL);
+ 
+-    glyr_cache_free(list);
+-    glyr_query_destroy(&q);
++    glyr_cache_free (list);
++    glyr_query_destroy (&q);
+ }
+ END_TEST
+ 
+ //--------------------
+ 
+-Suite *create_test_suite(void)
++Suite * create_test_suite (void)
+ {
+-    Suite *s = suite_create("Libglyr");
++    Suite *s = suite_create ("Libglyr");
+ 
+     /* Core test case */
+-    TCase *tc_options = tcase_create("Options");
+-    tcase_set_timeout(tc_options, GLYR_DEFAULT_TIMEOUT * 4);
+-    tcase_add_test(tc_options, test_glyr_opt_dlcallback);
+-    tcase_add_test(tc_options, test_glyr_opt_redirects);
+-    tcase_add_test(tc_options, test_glyr_opt_number);
+-    tcase_add_test(tc_options, test_glyr_opt_allowed_formats);
+-    tcase_add_test(tc_options, test_glyr_opt_proxy);
+-    suite_add_tcase(s, tc_options);
++    TCase * tc_options = tcase_create ("Options");
++    tcase_set_timeout (tc_options,GLYR_DEFAULT_TIMEOUT * 4);
++    tcase_add_test (tc_options, test_glyr_opt_dlcallback);
++    tcase_add_test (tc_options, test_glyr_opt_redirects);
++    tcase_add_test (tc_options, test_glyr_opt_number);
++    tcase_add_test (tc_options, test_glyr_opt_allowed_formats);
++    tcase_add_test (tc_options, test_glyr_opt_proxy);
++    suite_add_tcase (s, tc_options);
+     return s;
+ }
+ 
+ //--------------------
+ 
+-int main(void)
++int main (void)
+ {
+     init();
+ 
+     int number_failed;
+-    Suite *s = create_test_suite();
++    Suite * s = create_test_suite();
+ 
+-    SRunner *sr = srunner_create(s);
+-    srunner_set_log(sr, "check_glyr_opt.log");
+-    srunner_run_all(sr, CK_VERBOSE);
++    SRunner * sr = srunner_create (s);
++    srunner_set_log (sr, "check_glyr_opt.log");
++    srunner_run_all (sr, CK_VERBOSE);
+ 
+-    number_failed = srunner_ntests_failed(sr);
+-    srunner_free(sr);
++    number_failed = srunner_ntests_failed (sr);
++    srunner_free (sr);
+     return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+ };
+diff --git a/spec/capi/test_common.c b/spec/capi/test_common.c
+index 6f44a31..d0bb3a2 100644
+--- a/spec/capi/test_common.c
++++ b/spec/capi/test_common.c
+@@ -24,38 +24,38 @@
+ 
+ #include "../../lib/glyr.h"
+ 
+-void setup(GlyrQuery *q, GLYR_GET_TYPE type, int num)
++void setup (GlyrQuery * q, GLYR_GET_TYPE type, int num)
+ {
+-    glyr_query_init(q);
+-    glyr_opt_artist(q, "Equilibrium");
+-    glyr_opt_album(q, "Sagas");
+-    glyr_opt_title(q, "Wurzelbert");
+-    glyr_opt_type(q, type);
+-    glyr_opt_number(q, num);
+-    glyr_opt_verbosity(q, 4);
++    glyr_query_init (q);
++    glyr_opt_artist (q,"Equilibrium");
++    glyr_opt_album (q, "Sagas");
++    glyr_opt_title (q, "Wurzelbert");
++    glyr_opt_type (q, type);
++    glyr_opt_number (q,num);
++    glyr_opt_verbosity (q,4);
+ }
+ 
+ //--------------------
+ 
+-GlyrQuery *setup_alloc(GLYR_GET_TYPE type, int num)
++GlyrQuery * setup_alloc (GLYR_GET_TYPE type, int num)
+ {
+-    GlyrQuery *new = g_malloc0(sizeof(GlyrQuery));
+-    setup(new, type, num);
++    GlyrQuery * new = g_malloc0 (sizeof (GlyrQuery) );
++    setup (new,type,num);
+     return new;
+ }
+ 
+ //--------------------
+ 
+-void unsetup(GlyrQuery *q, GlyrMemCache *list)
++void unsetup (GlyrQuery * q, GlyrMemCache * list)
+ {
+-    glyr_free_list(list);
+-    glyr_query_destroy(q);
++    glyr_free_list (list);
++    glyr_query_destroy (q);
+ }
+ 
+ //--------------------
+ 
+-void init(void)
++void init (void)
+ {
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ }
+diff --git a/src/examples/async_queue.c b/src/examples/async_queue.c
+index f2845c8..1c91f39 100644
+--- a/src/examples/async_queue.c
++++ b/src/examples/async_queue.c
+@@ -31,77 +31,83 @@
+ 
+ /////////////////////////////////
+ 
+-typedef struct _FinishedNotify {
++typedef struct _FinishedNotify
++{
+     gint counter;
+-    GAsyncQueue *queue;
++    GAsyncQueue * queue;
+ 
+ } FinishedNotify;
+ 
+ /////////////////////////////////
+ 
+ /* Our polling thread */
+-gpointer apollo_orbiter(gpointer gp_queue)
++gpointer apollo_orbiter (gpointer gp_queue)
+ {
+-    FinishedNotify *pn = gp_queue;
+-    g_async_queue_ref(pn->queue);
++    FinishedNotify * pn = gp_queue;
++    g_async_queue_ref (pn->queue);
+ 
+-    while(TRUE) {
+-        g_print("\n-----------\n\n");
+-        gpointer thread_data = g_async_queue_pop(pn->queue);
++    while (TRUE)
++    {
++        g_print ("\n-----------\n\n");
++        gpointer thread_data = g_async_queue_pop (pn->queue);
+ 
+-        if(thread_data == THREAD_TERMINATOR) {
+-            g_printerr("\n-- Terminating --\n");
++        if (thread_data == THREAD_TERMINATOR)
++        {
++            g_printerr ("\n-- Terminating --\n");
+             break;
+-        } else {
+-            GlyrQuery *q = thread_data;
+-            GlyrMemCache *head = glyr_get(q, NULL, NULL);
+-            if(head != NULL) {
+-                g_print("//////// ITEM %d ////////\n", ++pn->counter);
+-                glyr_cache_print(head);
+-                glyr_free_list(head);
+-                g_print("/////////////////////////\n");
++        }
++        else
++        {
++            GlyrQuery * q = thread_data;
++            GlyrMemCache * head = glyr_get (q,NULL,NULL);
++            if (head != NULL)
++            {
++                g_print ("//////// ITEM %d ////////\n",++pn->counter);
++                glyr_cache_print (head);
++                glyr_free_list (head);
++                g_print ("/////////////////////////\n");
+             }
+-            glyr_query_destroy(q);
++            glyr_query_destroy (q);
+         }
+     }
+ 
+-    g_async_queue_unref(pn->queue);
++    g_async_queue_unref (pn->queue);
+     return NULL;
+ }
+ 
+ /////////////////////////////////
+ 
+-void build_queries(GlyrQuery *one, GlyrQuery *two, GlyrQuery *three)
++void build_queries (GlyrQuery * one, GlyrQuery * two, GlyrQuery * three)
+ {
+-    glyr_query_init(one);
+-    glyr_query_init(two);
+-    glyr_query_init(three);
++    glyr_query_init (one);
++    glyr_query_init (two);
++    glyr_query_init (three);
+ 
+-    glyr_opt_artist(one, "Diablo Swing Orchestra");
+-    glyr_opt_title(one, "Balrog Boogie");
+-    glyr_opt_type(one, GLYR_GET_LYRICS);
++    glyr_opt_artist (one,"Diablo Swing Orchestra");
++    glyr_opt_title (one,"Balrog Boogie");
++    glyr_opt_type  (one, GLYR_GET_LYRICS);
+ 
+-    glyr_opt_artist(two, "Farin Urlaub");
+-    glyr_opt_download(two, FALSE);
+-    glyr_opt_type(two, GLYR_GET_ARTIST_PHOTOS);
++    glyr_opt_artist (two, "Farin Urlaub");
++    glyr_opt_download (two,FALSE);
++    glyr_opt_type  (two, GLYR_GET_ARTIST_PHOTOS);
+ 
+-    glyr_opt_artist(three, "Knorkator");
+-    glyr_opt_type(three, GLYR_GET_ARTIST_PHOTOS);
++    glyr_opt_artist (three, "Knorkator");
++    glyr_opt_type  (three, GLYR_GET_ARTIST_PHOTOS);
+ }
+ 
+ /////////////////////////////////
+ 
+-gint sort_async_queue_jobs(gconstpointer a, gconstpointer b, gpointer data)
++gint sort_async_queue_jobs (gconstpointer a, gconstpointer b, gpointer data)
+ {
+     return (a == THREAD_TERMINATOR) ? -1 : (b == THREAD_TERMINATOR) ? 1 : 0;
+ }
+ 
+ /////////////////////////////////
+ 
+-int main(void)
++int main (void)
+ {
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+     /* Create a new async queue */
+     FinishedNotify notify;
+@@ -109,39 +115,42 @@ int main(void)
+     notify.counter = 0;
+ 
+     /* Initialize a new thread */
+-    GError *err = NULL;
+-    GThread *apollo = g_thread_new("apollo", apollo_orbiter, &notify);
++    GError * err = NULL;
++    GThread * apollo = g_thread_new("apollo", apollo_orbiter, &notify);
+ 
+-    if(apollo != NULL) {
++    if (apollo != NULL)
++    {
+         /* Push a few jobs */
+-        GlyrQuery one, two, three;
+-        build_queries(&one, &two, &three);
+-        g_async_queue_push(notify.queue, &one);
+-        g_async_queue_push(notify.queue, &two);
+-        g_async_queue_push(notify.queue, &three);
++        GlyrQuery one,two,three;
++        build_queries (&one,&two,&three);
++        g_async_queue_push (notify.queue,&one  );
++        g_async_queue_push (notify.queue,&two  );
++        g_async_queue_push (notify.queue,&three);
+ 
+ #define ABORT_IMMEDIATELY FALSE
+ 
+ #if ABORT_IMMEDIATELY
+         /* Test if it really aborts immediately, if not it crashes :-) */
+-        g_async_queue_push(notify.queue, (gpointer) 0x2);
++        g_async_queue_push (notify.queue, (gpointer) 0x2);
+ #endif
+ 
+         /* Terminate by pushing a special value */
+-        g_async_queue_push(notify.queue, THREAD_TERMINATOR);
++        g_async_queue_push (notify.queue,THREAD_TERMINATOR);
+ 
+ #if ABORT_IMMEDIATELY
+         /* Sort the THREAD_TERMINATOR before anything else. */
+-        g_async_queue_sort(notify.queue, sort_async_queue_jobs, NULL);
++        g_async_queue_sort (notify.queue,sort_async_queue_jobs,NULL);
+ #endif
+ 
+         /* Wait till he finished */
+-        g_thread_join(apollo);
+-    } else {
+-        g_printerr("Could not create thread: %s\n", err->message);
+-        g_error_free(err);
++        g_thread_join (apollo);
++    }
++    else
++    {
++        g_printerr ("Could not create thread: %s\n",err->message);
++        g_error_free (err);
+     }
+ 
+-    g_async_queue_unref(notify.queue);
++    g_async_queue_unref (notify.queue);
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/examples/dbcache.c b/src/examples/dbcache.c
+index 6a0c6ca..cc5fc4c 100644
+--- a/src/examples/dbcache.c
++++ b/src/examples/dbcache.c
+@@ -33,7 +33,7 @@
+ #include "../../lib/glyr.h"
+ #include "../../lib/cache.h"
+ 
+-int main(int argc, char *argv[])
++int main (int argc, char * argv[])
+ {
+     int length = -1;
+     GlyrQuery query;
+@@ -43,64 +43,71 @@ int main(int argc, char *argv[])
+ 
+     /* Initialize..*/
+     glyr_init();
+-    glyr_query_init(&query);
++    glyr_query_init (&query);
+ 
+     /* Create a new database in the /tmp folder
+      * A new file called 'metadata.db' will pop
+      * up there. (GLYR_DB_FILENAME expands to 'metadata.db')
+      */
+-    db = glyr_db_init("/tmp/");
++    db = glyr_db_init ("/tmp/");
+ 
+     /* Set some random settings */
+-    glyr_opt_verbosity(&query, 2);
+-    glyr_opt_artist(&query, "Equilibrium");
+-    glyr_opt_album(&query, "Sagas");
+-    glyr_opt_title(&query, "Blut im Auge");
+-    glyr_opt_type(&query, GLYR_GET_LYRICS);
++    glyr_opt_verbosity (&query,2);
++    glyr_opt_artist (&query,"Equilibrium");
++    glyr_opt_album (&query,"Sagas");
++    glyr_opt_title (&query,"Blut im Auge");
++    glyr_opt_type (&query,GLYR_GET_LYRICS);
+ 
+     /* Tell libglyr to automatically lookup before searching the web */
+-    glyr_opt_lookup_db(&query, db);
++    glyr_opt_lookup_db (&query, db);
+ 
+     /* Also tell it to write newly found items to the db */
+-    glyr_opt_db_autowrite(&query, TRUE);
++    glyr_opt_db_autowrite (&query, TRUE);
+ 
+-    list = glyr_get(&query, &get_error, &length);
+-    if(list != NULL) {
+-        for(GlyrMemCache *cache = list; cache != NULL; cache = cache->next) {
++    list = glyr_get (&query, &get_error, &length);
++    if (list != NULL)
++    {
++        for (GlyrMemCache *cache=list; cache!=NULL; cache=cache->next)
++        {
+             /* Copy a cache and modify it somehow */
+-            if(cache->cached) {
+-                GlyrMemCache *new = glyr_cache_copy(cache);
+-                glyr_cache_set_data(new, g_strdup("edited\n"), -1);
++            if (cache->cached)
++            {
++                GlyrMemCache *new = glyr_cache_copy (cache);
++                glyr_cache_set_data (new,g_strdup ("edited\n"), -1);
+ 
+                 bool which_edit = false;
+-                if(which_edit == false) {
++                if (which_edit == false)
++                {
+                     /* There are two way to edit it..
+                      * One is to delete all caches according to query, and replace it
+                      * by something else.
+                      */
+-                    glyr_db_edit(db, &query, new);
+-                } else {
++                    glyr_db_edit (db, &query, new);
++                }
++                else
++                {
+                     /* ..or find a cache via it's md5sum and replace it.
+                      * You may choose one of them.
+                      */
+-                    glyr_db_replace(db, cache->md5sum, &query, new);
++                    glyr_db_replace (db, cache->md5sum, &query, new);
+                 }
+-                glyr_cache_free(new);
++                glyr_cache_free (new);
+             }
+ 
+             /* Print a nice representation */
+-            glyr_cache_print(cache);
++            glyr_cache_print (cache);
+ 
+             /* Now delete it if it was 'edited' */
+-            if(cache->cached && strcmp(cache->data, "edited\n") == 0) {
+-                glyr_db_delete(db, &query);
++            if (cache->cached && strcmp (cache->data,"edited\n") == 0)
++            {
++                glyr_db_delete (db, &query);
+             }
+         }
+     }
+ 
+     /* Cleanup */
+-    glyr_free_list(list);
+-    glyr_query_destroy(&query);
+-    glyr_db_destroy(db);
++    glyr_free_list (list);
++    glyr_query_destroy (&query);
++    glyr_db_destroy (db);
+     glyr_cleanup();
+ }
+diff --git a/src/examples/dbtest.c b/src/examples/dbtest.c
+index 5b24523..5a6b6fe 100644
+--- a/src/examples/dbtest.c
++++ b/src/examples/dbtest.c
+@@ -3,51 +3,51 @@
+ #include <glib.h>
+ #include <stdlib.h>
+ 
+-void do_insert(GlyrQuery *q, GlyrDatabase *db, char *artist, char *album)
++void do_insert (GlyrQuery * q, GlyrDatabase * db, char * artist, char * album)
+ {
+-    glyr_query_init(q);
+-    glyr_opt_artist(q, artist);
+-    glyr_opt_album(q, album);
+-    glyr_opt_type(q, GLYR_GET_COVERART);
++    glyr_query_init (q);
++    glyr_opt_artist (q,artist);
++    glyr_opt_album (q,album);
++    glyr_opt_type (q,GLYR_GET_COVERART);
+ 
+-    GlyrMemCache *c = glyr_cache_new();
+-    glyr_cache_set_data(c, g_strdup("Dummy"), -1);
++    GlyrMemCache * c = glyr_cache_new();
++    glyr_cache_set_data (c,g_strdup ("Dummy"),-1);
+     c->rating = -1;
+     //    c->dsrc = g_strdup("Hello World"); // Argh.
+ 
+-    glyr_db_insert(db, q, c);
+-    glyr_cache_free(c);
++    glyr_db_insert (db,q,c);
++    glyr_cache_free (c);
+ }
+ 
+-void do_lookup(GlyrQuery *q, GlyrDatabase *db)
++void do_lookup (GlyrQuery * q, GlyrDatabase * db)
+ {
+-    GlyrMemCache *c = glyr_db_lookup(db, q);
+-    g_assert(c);
+-    glyr_cache_print(c);
+-    g_assert(c->rating == -1);
+-    glyr_cache_free(c);
++    GlyrMemCache * c = glyr_db_lookup (db,q);
++    g_assert (c);
++    glyr_cache_print (c);
++    g_assert (c->rating == -1);
++    glyr_cache_free (c);
+ }
+ 
+ 
+-int main(int argc, char const *argv[])
++int main (int argc, char const *argv[])
+ {
+-    system("rm /home/chris/metadata.db");
++    system ("rm /home/chris/metadata.db");
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+-    GlyrDatabase *db = glyr_db_init("/home/chris");
+-    g_assert(db);
++    GlyrDatabase * db = glyr_db_init ("/home/chris");
++    g_assert (db);
+ 
+-    GlyrQuery q1, q2;
++    GlyrQuery q1,q2;
+ 
+-    do_insert(&q1, db, "Equilibrium", "Sagas");
+-    do_insert(&q2, db, "Letzte Instanz", "Kalter Glanz");
++    do_insert (&q1,db,"Equilibrium","Sagas");
++    do_insert (&q2,db,"Letzte Instanz","Kalter Glanz");
+ 
+-    do_lookup(&q1, db);
+-    do_lookup(&q2, db);
++    do_lookup (&q1,db);
++    do_lookup (&q2,db);
+ 
+-    glyr_query_destroy(&q1);
+-    glyr_query_destroy(&q2);
+-    glyr_db_destroy(db);
++    glyr_query_destroy (&q1);
++    glyr_query_destroy (&q2);
++    glyr_db_destroy (db);
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/examples/example.c b/src/examples/example.c
+index 2424b4e..a92853b 100644
+--- a/src/examples/example.c
++++ b/src/examples/example.c
+@@ -35,27 +35,28 @@
+ #include "../../lib/glyr.h"
+ 
+ 
+-static void print_item(GlyrMemCache *cacheditem, int num)
++static void print_item (GlyrMemCache * cacheditem, int num)
+ {
+-    fprintf(stderr, "\n------- ITEM #%d --------\n", num);
+-    glyr_cache_print(cacheditem);
+-    fprintf(stderr, "\n------------------------\n");
++    fprintf (stderr,"\n------- ITEM #%d --------\n",num);
++    glyr_cache_print (cacheditem);
++    fprintf (stderr,"\n------------------------\n");
+ }
+ 
+ /////////////////////////////////
+ 
+ /* This is called whenever glyr gets a ready to use item */
+-static GLYR_ERROR funny_callback(GlyrMemCache *c, GlyrQuery *q)
++static GLYR_ERROR funny_callback (GlyrMemCache * c, GlyrQuery * q)
+ {
+     /* You can pass a void pointer to the callback,
+      * by passing it as third argument to glyr_opt_dlcallback()
+      */
+-    int *i = q->callback.user_pointer;
++    int * i = q->callback.user_pointer;
+ 
+-    if(*i == 1) {
+-        puts("=> Gentlemen, we received an item.");
+-        puts("=> We originally wanted more, but we decide to stop here.");
+-        puts("=> Therefore we return GLYRE_STOP_PRE. Goodbye.");
++    if (*i == 1)
++    {
++        puts ("=> Gentlemen, we received an item.");
++        puts ("=> We originally wanted more, but we decide to stop here.");
++        puts ("=> Therefore we return GLYRE_STOP_PRE. Goodbye.");
+         return GLYRE_STOP_PRE;
+         /*
+          * You can also return:
+@@ -70,62 +71,63 @@ static GLYR_ERROR funny_callback(GlyrMemCache *c, GlyrQuery *q)
+ 
+ /////////////////////////////////
+ 
+-int main(int argc, char *argv[])
++int main (int argc, char * argv[])
+ {
+     /* You need to call this before anything happens */
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+     /* Initialize a new query (this may allocate memory) */
+     GlyrQuery q;
+-    glyr_query_init(&q);
++    glyr_query_init (&q);
+ 
+     /* Say we want a Songtext */
+     GLYR_GET_TYPE type = GLYR_GET_LYRICS;
+-    glyr_opt_type(&q, type);
++    glyr_opt_type (&q,type);
+ 
+     /* Set at least the required fields to your needs        *
+      * For lyrics those are 'artist' and 'title', ('album')  *
+      * is strictly optional and may be used by a few plugins */
+-    glyr_opt_artist(&q, (char *) "Die Apokalyptischen Reiter");
+-    glyr_opt_album(&q, (char *) "Riders on the Storm");
+-    glyr_opt_title(&q, (char *) "Friede sei mit dir");
++    glyr_opt_artist (&q, (char*) "Die Apokalyptischen Reiter");
++    glyr_opt_album (&q, (char*) "Riders on the Storm");
++    glyr_opt_title (&q, (char*) "Friede sei mit dir");
+ 
+     /* Execute a func when getting one item */
+     int this_be_my_counter = 0;
+-    glyr_opt_dlcallback(&q, funny_callback, &this_be_my_counter);
++    glyr_opt_dlcallback (&q,funny_callback,&this_be_my_counter);
+ 
+     /* For the start: Enable verbosity */
+-    glyr_opt_verbosity(&q, 2);
++    glyr_opt_verbosity (&q,2);
+ 
+     /* Download 5 (or less) items */
+-    glyr_opt_number(&q, 5);
++    glyr_opt_number (&q,5);
+ 
+     /* Just search, without downloading items */
+-    glyr_opt_download(&q, 0);
++    glyr_opt_download (&q,0);
+ 
+     /* Call the most important command: GET!
+      * This returned a list of (GlyrMemCache *)s
+      * Each containing ONE item. (i.e. a songtext)
+      */
+     GLYR_ERROR err;
+-    GlyrMemCache *it = glyr_get(&q, &err, NULL);
++    GlyrMemCache * it = glyr_get (&q,&err,NULL);
+ 
+-    if(err != GLYRE_OK) {
+-        fprintf(stderr, "E:%s\n", glyr_strerror(err));
+-    }
++    if (err != GLYRE_OK)
++        fprintf (stderr,"E:%s\n",glyr_strerror (err) );
+ 
+     /* Now iterate through it... */
+-    if(it != NULL) {
+-        GlyrMemCache *start = it;
++    if (it != NULL)
++    {
++        GlyrMemCache * start = it;
+ 
+         int counter = 0;
+-        while(it != NULL) {
++        while (it != NULL)
++        {
+             /* This has the same effect as in the callback,
+              * Just that it's executed just once after all DL is done.
+              * Commented out, as this would print it twice
+              * */
+-            print_item(it, counter);
++            print_item (it,counter);
+ 
+             /* Every cache has a link to the next and prev one (or NULL respectively) */
+             it = it->next;
+@@ -134,10 +136,10 @@ int main(int argc, char *argv[])
+ 
+         /* The contents of it are dynamically allocated. */
+         /* So better free them if you're not keen on memoryleaks */
+-        glyr_free_list(start);
++        glyr_free_list (start);
+     }
+     /* Destroy query (reset to default values and free dyn memory) */
+     /* You could start right off to use this query in another glyr_get */
+-    glyr_query_destroy(&q);
++    glyr_query_destroy (&q);
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/examples/exit_signal.c b/src/examples/exit_signal.c
+index 37aab70..de71c59 100644
+--- a/src/examples/exit_signal.c
++++ b/src/examples/exit_signal.c
+@@ -9,51 +9,52 @@
+  * Example on using the glyr_signal_exit() method.
+  * -----------------------------------------------*/
+ 
+-static GLYR_ERROR funny_callback(GlyrMemCache *c, GlyrQuery *q)
++static GLYR_ERROR funny_callback (GlyrMemCache * c, GlyrQuery * q)
+ {
+-    glyr_cache_print(c);
++    glyr_cache_print (c);
+     return GLYRE_OK;
+ }
+ 
+-static void *killer_thread(void *arg)
++static void * killer_thread (void * arg)
+ {
+-    GlyrQuery *q = arg;
+-    g_usleep(rand() % 10000000);
++    GlyrQuery * q = arg;
++    g_usleep (rand() % 10000000);
+ 
+-    g_printerr("####### SENDING EXIT ######\n");
+-    glyr_signal_exit(q);
++    g_printerr ("####### SENDING EXIT ######\n");
++    glyr_signal_exit (q);
+     return NULL;
+ }
+ 
+-int main(int argc, const char *argv[])
++int main (int argc, const char *argv[])
+ {
+-    srand(time(NULL));
++    srand (time (NULL) );
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+     GlyrQuery q;
+-    glyr_query_init(&q);
++    glyr_query_init (&q);
+ 
+-    glyr_opt_type(&q, GLYR_GET_COVERART);
+-    glyr_opt_artist(&q, "Equilibrium");
+-    glyr_opt_album(&q, "Sagas");
+-    glyr_opt_number(&q, 42);
+-    glyr_opt_verbosity(&q, 3);
+-    glyr_opt_dlcallback(&q, funny_callback, NULL);
++    glyr_opt_type (&q,GLYR_GET_COVERART);
++    glyr_opt_artist (&q,"Equilibrium");
++    glyr_opt_album (&q,"Sagas");
++    glyr_opt_number (&q,42);
++    glyr_opt_verbosity (&q,3);
++    glyr_opt_dlcallback (&q,funny_callback,NULL);
+ 
+-    g_printerr("-- Starting GET\n");
++    g_printerr ("-- Starting GET\n");
+ 
+-    GThread *killer = g_thread_new("killer_thread", killer_thread, (gpointer) &q);
++    GThread * killer = g_thread_new("killer_thread", killer_thread, (gpointer) &q);
+ 
+     gint len = 0;
+-    GlyrMemCache *list = glyr_get(&q, NULL, &len);
+-    if(list != NULL) {
+-        glyr_free_list(list);
++    GlyrMemCache * list = glyr_get (&q,NULL,&len);
++    if (list != NULL)
++    {
++        glyr_free_list (list);
+     }
+-    glyr_query_destroy(&q);
+-    g_printerr("Got %d size\n", len);
+-    g_printerr("-- Ending GET\n");
+-    g_thread_join(killer);
++    glyr_query_destroy (&q);
++    g_printerr ("Got %d size\n",len);
++    g_printerr ("-- Ending GET\n");
++    g_thread_join (killer);
+ 
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/examples/getinfo.c b/src/examples/getinfo.c
+index 8271991..ea842fe 100644
+--- a/src/examples/getinfo.c
++++ b/src/examples/getinfo.c
+@@ -26,42 +26,45 @@
+  * (This does about the same as glyrc --list)
+  * -------------------------------------------------------- */
+ 
+-int main(int argc, const char *argv[])
++int main (int argc, const char *argv[])
+ {
+     /* We need to init first*/
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+-    GlyrFetcherInfo *info = glyr_info_get();
+-    if(info != NULL) {
++    GlyrFetcherInfo * info = glyr_info_get();
++    if (info != NULL)
++    {
+         /* Iterate over all getters */
+-        for(GlyrFetcherInfo *elem0 = info; elem0; elem0 = elem0->next) {
++        for (GlyrFetcherInfo * elem0 = info; elem0; elem0 = elem0->next)
++        {
+             /* Iterate over all providers */
+-            g_print(" %s => %d\n", elem0->name, elem0->type);
+-            for(GlyrSourceInfo *elem1 = elem0->head; elem1; elem1 = elem1->next) {
+-                g_print("   # %s [%c]\n", elem1->name, elem1->key);
+-                g_print("     - Quality: %d\n", elem1->quality);
+-                g_print("     - Speed:   %d\n", elem1->speed);
+-                g_print("     - Type:    %d\n", elem1->type);
++            g_print (" %s => %d\n",elem0->name,elem0->type);
++            for (GlyrSourceInfo * elem1 = elem0->head; elem1; elem1 = elem1->next)
++            {
++                g_print ("   # %s [%c]\n",elem1->name,elem1->key);
++                g_print ("     - Quality: %d\n",elem1->quality);
++                g_print ("     - Speed:   %d\n",elem1->speed);
++                g_print ("     - Type:    %d\n",elem1->type);
+             }
+ 
+             /* Test which fields are required for a certain getter */
+-            g_print(" + Requires: (%s%s%s)\n",
+-                    elem0->reqs & GLYR_REQUIRES_ARTIST ? "Artist " : "",
+-                    elem0->reqs & GLYR_REQUIRES_ALBUM  ? "Album "  : "",
+-                    elem0->reqs & GLYR_REQUIRES_TITLE  ? "Title"   : ""
+-                   );
++            g_print (" + Requires: (%s%s%s)\n",
++                     elem0->reqs & GLYR_REQUIRES_ARTIST ? "Artist " : "",
++                     elem0->reqs & GLYR_REQUIRES_ALBUM  ? "Album "  : "",
++                     elem0->reqs & GLYR_REQUIRES_TITLE  ? "Title"   : ""
++                    );
+ 
+             /* And which are optional? */
+-            g_print(" + Optional: (%s%s%s)\n",
+-                    elem0->reqs & GLYR_OPTIONAL_ARTIST ? "Artist " : "",
+-                    elem0->reqs & GLYR_OPTIONAL_ALBUM  ? "Album "  : "",
+-                    elem0->reqs & GLYR_OPTIONAL_TITLE  ? "Title"   : ""
+-                   );
++            g_print (" + Optional: (%s%s%s)\n",
++                     elem0->reqs & GLYR_OPTIONAL_ARTIST ? "Artist " : "",
++                     elem0->reqs & GLYR_OPTIONAL_ALBUM  ? "Album "  : "",
++                     elem0->reqs & GLYR_OPTIONAL_TITLE  ? "Title"   : ""
++                    );
+ 
+-            g_print("\n///////////////////////////////\n");
++            g_print ("\n///////////////////////////////\n");
+         }
+     }
+-    glyr_info_free(info);
++    glyr_info_free (info);
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/examples/musictree.c b/src/examples/musictree.c
+index 44323a3..c24a9d7 100644
+--- a/src/examples/musictree.c
++++ b/src/examples/musictree.c
+@@ -15,29 +15,30 @@
+  * to enable it.
+  * -------------------------------------------------- */
+ 
+-static void configure(GlyrQuery *s)
++static void configure (GlyrQuery * s)
+ {
+-    glyr_query_init(s);
+-    glyr_opt_artist(s, "Die Apokalyptischen Reiter");
+-    glyr_opt_album(s, "Moral & Wahnsinn");
+-    glyr_opt_title(s, "Die Boten");
+-    glyr_opt_verbosity(s, 2);
+-    glyr_opt_type(s, GLYR_GET_COVERART);
++    glyr_query_init (s);
++    glyr_opt_artist (s,"Die Apokalyptischen Reiter");
++    glyr_opt_album (s,"Moral & Wahnsinn");
++    glyr_opt_title (s,"Die Boten");
++    glyr_opt_verbosity (s,2);
++    glyr_opt_type (s,GLYR_GET_COVERART);
+ }
+ 
+-static void printme(GlyrMemCache *start)
++static void printme (GlyrMemCache * start)
+ {
+-    GlyrMemCache *i = start;
+-    while(i != NULL) {
+-        glyr_cache_print(i);
+-        puts("--------------------");
++    GlyrMemCache * i = start;
++    while (i != NULL)
++    {
++        glyr_cache_print (i);
++        puts ("--------------------");
+         i = i->next;
+     }
+-    glyr_free_list(start);
++    glyr_free_list (start);
+ }
+ 
+ /* Dummy - you will have to replace this yourself */
+-static gchar *get_music_file_path(void)
++static gchar * get_music_file_path (void)
+ {
+     /* Relative directories are possible - but should be avoided
+      * Instead the file you could also just pass the containing
+@@ -46,31 +47,31 @@ static gchar *get_music_file_path(void)
+     return "src/examples/musictree_dir/artist/album/file.mp3";
+ }
+ 
+-int main(void)
++int main (void)
+ {
+     /* Init */
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+     /* Fill some silly values */
+     GlyrQuery query;
+ 
+     /* Regular stuff */
+-    configure(&query);
++    configure (&query);
+ 
+     /* Musictree relevant */
+ 
+     /* Please refer to the documentation here */
+-    glyr_opt_musictree_path(&query, get_music_file_path());
++    glyr_opt_musictree_path (&query,get_music_file_path() );
+ 
+     /* We only want musictree */
+-    glyr_opt_from(&query, "musictree");
++    glyr_opt_from (&query,"musictree");
+ 
+     /* Try to get 4 covers - you will get just 2 */
+-    glyr_opt_number(&query, 4);
++    glyr_opt_number (&query,4);
+ 
+-    GlyrMemCache *cache = glyr_get(&query, NULL, NULL);
+-    printme(cache);
++    GlyrMemCache * cache = glyr_get (&query,NULL,NULL);
++    printme (cache);
+ 
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/examples/rating.c b/src/examples/rating.c
+index 99fb4d1..5bc7998 100644
+--- a/src/examples/rating.c
++++ b/src/examples/rating.c
+@@ -37,51 +37,56 @@
+  * 4) 'rm /tmp/metadata.db' to start again.
+  */
+ 
+-int main(int argc, const char *argv[])
++int main (int argc, const char *argv[])
+ {
+-    int amount_to_get = (argc > 1) ? strtol(argv[1], NULL, 10) : 3;
++    int amount_to_get = (argc > 1) ? strtol (argv[1],NULL,10) : 3;
+     GLYR_ERROR err;
+ 
+     glyr_init();
+-    atexit(glyr_cleanup);
+-    srand(time(NULL));
++    atexit (glyr_cleanup);
++    srand (time (NULL) );
+ 
+-    GlyrDatabase *db = glyr_db_init("/tmp");
+-    if(db != NULL) {
++    GlyrDatabase * db = glyr_db_init ("/tmp");
++    if (db != NULL)
++    {
+         GlyrQuery q;
+-        glyr_query_init(&q);
+-        glyr_opt_artist(&q, "Die Apokalyptischen Reiter");
+-        glyr_opt_type(&q, GLYR_GET_ARTIST_PHOTOS);
+-        glyr_opt_download(&q, false);
+-        glyr_opt_number(&q, amount_to_get);
++        glyr_query_init (&q);
++        glyr_opt_artist (&q,"Die Apokalyptischen Reiter");
++        glyr_opt_type (&q,GLYR_GET_ARTIST_PHOTOS);
++        glyr_opt_download (&q,false);
++        glyr_opt_number (&q,amount_to_get);
+ 
+-        glyr_opt_lookup_db(&q, db);
++        glyr_opt_lookup_db (&q,db);
+ 
+         /* Say, we want to manage the writing part ourself */
+-        glyr_opt_db_autowrite(&q, false);
++        glyr_opt_db_autowrite (&q,false);
+ 
+         /* Now either get me some from the web or the db */
+-        GlyrMemCache *list = glyr_get(&q, &err, NULL);
+-        if(err != GLYRE_OK) {
+-            fprintf(stderr, "Error occured: %s\n", glyr_strerror(err));
++        GlyrMemCache * list = glyr_get (&q,&err,NULL);
++        if (err != GLYRE_OK)
++        {
++            fprintf (stderr,"Error occured: %s\n",glyr_strerror (err) );
+         }
+ 
+-        if(list != NULL) {
+-            for(GlyrMemCache *cache = list; cache; cache = cache->next) {
+-                puts("-----------------");
+-                glyr_cache_print(cache);
+-                puts("-----------------");
++        if (list != NULL)
++        {
++            for (GlyrMemCache * cache = list; cache; cache = cache->next)
++            {
++                puts ("-----------------");
++                glyr_cache_print (cache);
++                puts ("-----------------");
+ 
+                 /* Give it some rating if not already cached */
+-                if(cache->cached == false) {
++                if (cache->cached == false)
++                {
+                     cache->rating = rand() % 100;
+-                    glyr_db_insert(db, &q, cache);
++                    glyr_db_insert (db,&q,cache);
+                 }
+             }
+-            glyr_free_list(list);
++            glyr_free_list (list);
+         }
+-        glyr_query_destroy(&q);
+-        glyr_db_destroy(db);
++        glyr_query_destroy (&q);
++        glyr_db_destroy (db);
+     }
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/examples/simple.c b/src/examples/simple.c
+index 827463e..be65563 100644
+--- a/src/examples/simple.c
++++ b/src/examples/simple.c
+@@ -28,45 +28,46 @@
+ /* use this include path for your project, or directly clone libglyr to your project */
+ //#include <glyr/glyr.h>
+ 
+-int main(void)
++int main (void)
+ {
+     /* Init this thing, the only two methods not being threadsafe */
+     glyr_init();
+     /* Also clear ressources on exit */
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+     /* This struct is used to store all settings you do via glyr_opt_* */
+     GlyrQuery q;
+     /* We also should set it to standard values */
+-    glyr_query_init(&q);
++    glyr_query_init (&q);
+ 
+     /* We want lyrics, well, I want. */
+-    glyr_opt_type(&q, GLYR_GET_LYRICS);
++    glyr_opt_type (&q,GLYR_GET_LYRICS);
+ 
+     /* Set random artist/title -  you could also omit the album line */
+-    glyr_opt_artist(&q, (char *) "Die Ärzte");
+-    glyr_opt_album(&q, (char *) "Die Bestie in Menschengestalt");
+-    glyr_opt_title(&q, (char *) "FaFaFa");
++    glyr_opt_artist (&q, (char*) "Die Ärzte");
++    glyr_opt_album (&q, (char*) "Die Bestie in Menschengestalt");
++    glyr_opt_title (&q, (char*) "FaFaFa");
+ 
+     /* If any error occured it will be saved here, or GLYRE_OK */
+     /* You could have also passed a NULL pointer to glyr_get() if you're not interested in this */
+     GLYR_ERROR err;
+ 
+     /* Now get the job done! The 3rd  */
+-    GlyrMemCache *head = glyr_get(&q, &err, NULL);
++    GlyrMemCache * head = glyr_get (&q,&err,NULL);
+ 
+     /* The results are stored in the GlyrMemCache struct -
+        you are most likely only interested in the fields data, size and type*/
+-    if(head != NULL) {
++    if (head != NULL)
++    {
+         /* head contains also a pointer to the next element, you can use it therefore as linkedlist */
+         //        puts(head->data);
+-        glyr_cache_print(head);
++        glyr_cache_print (head);
+ 
+         /* We have to free it again also, you can pass ANY pointer of the list, it works in both directions */
+-        glyr_free_list(head);
++        glyr_free_list (head);
+     }
+ 
+     /* glyr_query_init  may allocate memory - free it. */
+-    glyr_query_destroy(&q);
++    glyr_query_destroy (&q);
+     return err;
+ }
+diff --git a/src/examples/threads.c b/src/examples/threads.c
+index dcce0e4..799b3db 100644
+--- a/src/examples/threads.c
++++ b/src/examples/threads.c
+@@ -30,70 +30,72 @@
+  * libglyr is fully thread-compatible as long every thread uses it's own query.
+ */
+ 
+-static void *call_get(void *p)
++static void * call_get (void * p)
+ {
+-    GlyrMemCache *r = glyr_get(p, NULL, NULL);
+-    puts("Thread finished");
++    GlyrMemCache * r = glyr_get (p,NULL,NULL);
++    puts ("Thread finished");
+     return r;
+ }
+ 
+-static void configure(GlyrQuery *s, GLYR_GET_TYPE type)
++static void configure (GlyrQuery * s, GLYR_GET_TYPE type)
+ {
+-    glyr_query_init(s);
+-    glyr_opt_artist(s, "Die Apokalyptischen Reiter");
+-    glyr_opt_album(s, "Moral & Wahnsinn");
+-    glyr_opt_title(s, "Die Boten");
+-    glyr_opt_verbosity(s, 1);
+-    glyr_opt_type(s, type);
+-    glyr_opt_from(s, NULL);
++    glyr_query_init (s);
++    glyr_opt_artist (s,"Die Apokalyptischen Reiter");
++    glyr_opt_album (s,"Moral & Wahnsinn");
++    glyr_opt_title (s,"Die Boten");
++    glyr_opt_verbosity (s,1);
++    glyr_opt_type  (s,type);
++    glyr_opt_from (s,NULL);
+ }
+ 
+-static void printme(GlyrMemCache *start)
++static void printme (GlyrMemCache * start)
+ {
+-    GlyrMemCache *i = start;
+-    while(i != NULL) {
+-        glyr_cache_write(i, "stdout");
++    GlyrMemCache * i = start;
++    while (i != NULL)
++    {
++        glyr_cache_write (i,"stdout");
+         i = i->next;
+     }
+-    glyr_free_list(start);
++    glyr_free_list (start);
+ }
+ 
+-int main(void)
++int main (void)
+ {
+     /* Init */
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+     /* Fill some silly values */
+     GlyrQuery query_long, query_longer;
+-    configure(&query_long, GLYR_GET_SIMILAR_ARTISTS);
+-    configure(&query_longer, GLYR_GET_LYRICS);
++    configure (&query_long,GLYR_GET_SIMILAR_ARTISTS);
++    configure (&query_longer,GLYR_GET_LYRICS);
+ 
+-    GlyrDatabase *db = glyr_db_init("/tmp");
+-    glyr_opt_lookup_db(&query_long, db);
+-    glyr_opt_lookup_db(&query_longer, db);
++    GlyrDatabase * db = glyr_db_init ("/tmp");
++    glyr_opt_lookup_db (&query_long,db);
++    glyr_opt_lookup_db (&query_longer,db);
+ 
+-    GlyrMemCache *a, * b;
++    GlyrMemCache * a, * b;
+ 
+     /* Create two threads */
+-    GThread *thread_a = g_thread_new("call_get", call_get, (gpointer) &query_long);
+-    GThread *thread_b = g_thread_new("call_get", call_get, (gpointer) &query_longer);
++    GThread * thread_a = g_thread_new ("call_get", call_get, (gpointer) &query_long);
++    GThread * thread_b = g_thread_new ("call_get", call_get, (gpointer) &query_longer);
+ 
+-    puts("Running!");
++    puts ("Running!");
+ 
+     /* Wait for threads to join, get results */
+-    a = g_thread_join(thread_a);
+-    b = g_thread_join(thread_b);
++    a = g_thread_join (thread_a);
++    b = g_thread_join (thread_b);
+ 
+-    puts("Joined!\n---> Data: ");
++    puts ("Joined!\n---> Data: ");
+ 
+-    if(a && b) {
+-        printme(a);
+-        puts("-------------");
+-        printme(b);
++    if (a && b)
++    {
++        printme (a);
++        puts ("-------------");
++        printme (b);
+     }
+ 
+-    glyr_query_destroy(&query_long);
+-    glyr_query_destroy(&query_longer);
++    glyr_query_destroy (&query_long);
++    glyr_query_destroy (&query_longer);
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/glyrc/autohelp.c b/src/glyrc/autohelp.c
+index a93bc0f..2f2bdc9 100644
+--- a/src/glyrc/autohelp.c
++++ b/src/glyrc/autohelp.c
+@@ -25,72 +25,85 @@
+ 
+ #include "colorprint.h"
+ 
+-void suggest_other_getter(GlyrQuery *query, const char *wrong_input)
++void suggest_other_getter (GlyrQuery * query, const char * wrong_input)
+ {
+-    if(query->verbosity <= 0) {
++    if (query->verbosity <= 0)
++    {
+         return;
+     }
+ 
+-    GlyrFetcherInfo *fetcher = glyr_info_get();
+-    if(fetcher != NULL) {
++    GlyrFetcherInfo * fetcher = glyr_info_get();
++    if (fetcher != NULL)
++    {
+         gboolean did_you_mean_printed = FALSE;
+-        GlyrFetcherInfo *it = fetcher;
+-        while(it != NULL) {
+-            if(glyr_levenshtein_strnormcmp(wrong_input, it->name) < 7) {
+-                if(did_you_mean_printed == FALSE) {
+-                    cvprint(DEFAULT, "\nDid you mean this?\n");
++        GlyrFetcherInfo * it = fetcher;
++        while (it != NULL)
++        {
++            if (glyr_levenshtein_strnormcmp (wrong_input,it->name) < 7)
++            {
++                if (did_you_mean_printed == FALSE)
++                {
++                    cvprint (DEFAULT,"\nDid you mean this?\n");
+                     did_you_mean_printed = TRUE;
+                 }
+-                cvprint(GREEN, "  * %s\n", it->name);
++                cvprint (GREEN,"  * %s\n",it->name);
+             }
+             it = it->next;
+         }
+-        glyr_info_free(fetcher);
++        glyr_info_free (fetcher);
+     }
+ }
+ 
+ /////////////////////////////////
+ 
+-void suggest_other_provider(GlyrQuery *query, const char *wrong_input)
++void suggest_other_provider (GlyrQuery * query, const char * wrong_input)
+ {
+-    if(query->verbosity <= 0) {
++    if (query->verbosity <= 0)
++    {
+         return;
+     }
+ 
+-    GlyrFetcherInfo *fetcher = glyr_info_get();
+-    GlyrFetcherInfo *it = fetcher;
+-    while(it != NULL) {
+-        if(it->type == query->type) {
++    GlyrFetcherInfo * fetcher = glyr_info_get();
++    GlyrFetcherInfo * it = fetcher;
++    while (it != NULL)
++    {
++        if (it->type == query->type)
++        {
+             break;
+         }
+ 
+         it = it->next;
+     }
+ 
+-    if(it != NULL && wrong_input) {
++    if (it != NULL && wrong_input)
++    {
+         gboolean did_you_mean_printed = FALSE;
+-        GlyrSourceInfo *head = it->head;
+-        GHashTable *key_table = g_hash_table_new(g_direct_hash, g_direct_equal);
+-        while(head != NULL) {
+-            gchar **tokens = g_strsplit(wrong_input, GLYR_DEFAULT_FROM_ARGUMENT_DELIM, 0);
+-            for(int i = 0; tokens[i] != NULL; i++) {
+-                gchar *token = tokens[i];
+-                if(glyr_levenshtein_strnormcmp(token, head->name) < 5 &&
+-                        g_hash_table_lookup(key_table, head->name) == NULL) {
+-                    if(did_you_mean_printed == FALSE) {
+-                        cvprint(DEFAULT, "\nI would suggest the following similar providers:\n");
++        GlyrSourceInfo * head = it->head;
++        GHashTable * key_table = g_hash_table_new (g_direct_hash,g_direct_equal);
++        while (head != NULL)
++        {
++            gchar ** tokens = g_strsplit (wrong_input,GLYR_DEFAULT_FROM_ARGUMENT_DELIM,0);
++            for (int i = 0; tokens[i] != NULL; i++)
++            {
++                gchar * token = tokens[i];
++                if (glyr_levenshtein_strnormcmp (token,head->name) < 5 &&
++                        g_hash_table_lookup (key_table,head->name) == NULL)
++                {
++                    if (did_you_mean_printed == FALSE)
++                    {
++                        cvprint (DEFAULT,"\nI would suggest the following similar providers:\n");
+                         did_you_mean_printed = TRUE;
+                     }
+-                    cvprint(GREEN, "  * %s\n", head->name);
+-                    g_hash_table_insert(key_table, head->name, head);
++                    cvprint (GREEN,"  * %s\n",head->name);
++                    g_hash_table_insert (key_table,head->name,head);
+                 }
+             }
+             head = head->next;
+-            g_strfreev(tokens);
++            g_strfreev (tokens);
+         }
+-        g_hash_table_destroy(key_table);
++        g_hash_table_destroy (key_table);
+     }
+-    glyr_info_free(fetcher);
++    glyr_info_free (fetcher);
+ }
+ 
+ /////////////////////////////////
+diff --git a/src/glyrc/colorprint.c b/src/glyrc/colorprint.c
+index 9b5b1a1..004618d 100644
+--- a/src/glyrc/colorprint.c
++++ b/src/glyrc/colorprint.c
+@@ -30,33 +30,32 @@ static bool global_enable_color = true;
+ 
+ /////////////////////////////
+ 
+-static void printcol(FILE *stream, termcolor fg)
++static void printcol (FILE * stream, termcolor fg)
+ {
+-    fprintf(stream, "%c[0;%dm", 0x1B, fg + 30);
++    fprintf (stream,"%c[0;%dm", 0x1B, fg + 30);
+ }
+ 
+ /////////////////////////////
+ 
+-static void resetcolor(FILE *stream)
++static void resetcolor (FILE * stream)
+ {
+-    fprintf(stream, "%c[0m", 0x1B);
++    fprintf (stream,"%c[0m",0x1B);
+ }
+ 
+-void cprint(termcolor col, gint verbosity, GlyrQuery *s, const char *fmt, ...)
++void cprint (termcolor col,gint verbosity, GlyrQuery * s, const char * fmt, ...)
+ {
+-    if((s && verbosity <= s->verbosity) || verbosity == -1) {
+-        if(col != DEFAULT && global_enable_color) {
+-            printcol(GLYR_OUTPUT, col);
+-        }
++    if ( (s && verbosity <= s->verbosity) || verbosity == -1)
++    {
++        if (col != DEFAULT && global_enable_color)
++            printcol (GLYR_OUTPUT,col);
+ 
+         va_list param;
+-        va_start(param, fmt);
+-        g_logv("Glyrc", G_LOG_LEVEL_INFO, fmt, param);
+-        va_end(param);
++        va_start (param,fmt);
++        g_logv ("Glyrc",G_LOG_LEVEL_INFO,fmt,param);
++        va_end (param);
+ 
+-        if(col != DEFAULT && global_enable_color) {
+-            resetcolor(GLYR_OUTPUT);
+-        }
++        if (col != DEFAULT && global_enable_color)
++            resetcolor (GLYR_OUTPUT);
+ 
+         fflush(stdout);
+     }
+@@ -65,11 +64,11 @@ void cprint(termcolor col, gint verbosity, GlyrQuery *s, const char *fmt, ...)
+ 
+ /////////////////////////////
+ 
+-void enable_color(bool enable)
++void enable_color (bool enable)
+ {
+     global_enable_color = enable;
+ }
+ 
+ /////////////////////////////
+ 
+-void enable_color(bool enable);
++void enable_color (bool enable);
+diff --git a/src/glyrc/escape.c b/src/glyrc/escape.c
+index c02e109..dba3ccc 100644
+--- a/src/glyrc/escape.c
++++ b/src/glyrc/escape.c
+@@ -25,7 +25,7 @@
+ #include "escape.h"
+ 
+ static int     global_item_counter = 0;
+-static char   *global_write_path   = NULL;
++static char *  global_write_path   = NULL;
+ 
+ #define EXPAND_FUNC(NAME)    \
+     static char * expand_##NAME( \
+@@ -33,135 +33,141 @@ static char   *global_write_path   = NULL;
+                                  GlyrMemCache * c     \
+                                )
+ 
+-EXPAND_FUNC(type)
++EXPAND_FUNC (type)
+ {
+-    return g_strdup(glyr_get_type_to_string(q->type));
++    return g_strdup (glyr_get_type_to_string (q->type) );
+ }
+ 
+-EXPAND_FUNC(artist)
++EXPAND_FUNC (artist)
+ {
+-    return g_strdup(q->artist);
++    return g_strdup (q->artist);
+ }
+ 
+-EXPAND_FUNC(album)
++EXPAND_FUNC (album)
+ {
+-    return g_strdup(q->album);
++    return g_strdup (q->album);
+ }
+ 
+-EXPAND_FUNC(title)
++EXPAND_FUNC (title)
+ {
+-    return g_strdup(q->title);
++    return g_strdup (q->title);
+ }
+ 
+-EXPAND_FUNC(size)
++EXPAND_FUNC (size)
+ {
+-    return g_strdup_printf("%lu", c->size);
++    return g_strdup_printf ("%lu",c->size);
+ }
+ 
+-EXPAND_FUNC(format)
++EXPAND_FUNC (format)
+ {
+-    return c->is_image ? g_strdup(c->img_format) : g_strdup("txt");
++    return c->is_image ? g_strdup (c->img_format) : g_strdup ("txt");
+ }
+ 
+-EXPAND_FUNC(source)
++EXPAND_FUNC (source)
+ {
+-    return g_strdup(c->dsrc);
++    return g_strdup (c->dsrc);
+ }
+ 
+-EXPAND_FUNC(prov)
++EXPAND_FUNC (prov)
+ {
+-    return g_strdup(c->prov);
++    return g_strdup (c->prov);
+ }
+ 
+-EXPAND_FUNC(cksum)
++EXPAND_FUNC (cksum)
+ {
+-    return glyr_md5sum_to_string(c->md5sum);
++    return glyr_md5sum_to_string (c->md5sum);
+ }
+ 
+-EXPAND_FUNC(rating)
++EXPAND_FUNC (rating)
+ {
+-    return g_strdup_printf("%d", c->rating);
++    return g_strdup_printf ("%d",c->rating);
+ }
+ 
+-EXPAND_FUNC(duration)
++EXPAND_FUNC (duration)
+ {
+-    return g_strdup_printf("%d", c->duration);
++    return g_strdup_printf ("%d",c->duration);
+ }
+ 
+-EXPAND_FUNC(number)
++EXPAND_FUNC (number)
+ {
+-    return g_strdup_printf("%d", global_item_counter);
++    return g_strdup_printf ("%d",global_item_counter);
+ }
+ 
+-EXPAND_FUNC(path)
++EXPAND_FUNC (path)
+ {
+-    return g_strdup(global_write_path);
++    return g_strdup (global_write_path);
+ }
+ 
+ ////////////////////////
+ 
+-typedef char *(* ExpandFunction)(GlyrQuery *, GlyrMemCache *);
++typedef char * (* ExpandFunction) (GlyrQuery *,GlyrMemCache *);
+ 
+-#define EXPAND(tname, scp) { \
++#define EXPAND(tname,escp) { \
+         .name = #tname,          \
+                 .func = expand_##tname,  \
+                         .escape_slashes = escp   \
+     }                            \
+- 
+-struct escape_table {
+-    const char *name;
++                                       
++struct escape_table
++{
++    const char * name;
+     ExpandFunction func;
+     bool escape_slashes;
+-} _escapes[] = {
+-    EXPAND(type, false),
+-    EXPAND(artist, true),
+-    EXPAND(album, true),
+-    EXPAND(title, true),
+-    EXPAND(size, false),
+-    EXPAND(format, false),
+-    EXPAND(source, false),
+-    EXPAND(prov, false),
+-    EXPAND(cksum, false),
+-    EXPAND(rating, false),
+-    EXPAND(duration, false),
+-    EXPAND(number, false),
+-    EXPAND(path, false)
++} _escapes[] =
++{
++    EXPAND (type,false),
++    EXPAND (artist,true),
++    EXPAND (album,true),
++    EXPAND (title,true),
++    EXPAND (size,false),
++    EXPAND (format,false),
++    EXPAND (source,false),
++    EXPAND (prov,false),
++    EXPAND (cksum,false),
++    EXPAND (rating,false),
++    EXPAND (duration,false),
++    EXPAND (number,false),
++    EXPAND (path,false)
+ };
+ 
+-const size_t _escape_table_size = (sizeof(_escapes) / sizeof(struct escape_table));
++const size_t _escape_table_size = (sizeof (_escapes) /sizeof (struct escape_table) );
+ 
+ ////////////////////////
+ 
+-static void utf8_replace_char(char *string, char a, char b)
++static void utf8_replace_char (char * string, char a, char b)
+ {
+-    if(string != NULL) {
+-        if(g_utf8_validate(string, -1, NULL) == false) {
++    if (string != NULL)
++    {
++        if (g_utf8_validate (string,-1,NULL) == false)
+             return;
+-        }
+ 
+-        while(*string) {
+-            if(*string == a) {
++        while (*string)
++        {
++            if (*string == a)
++            {
+                 *string = b;
+             }
+-            string = g_utf8_next_char(string);
++            string = g_utf8_next_char (string);
+         }
+     }
+ }
+ 
+ ////////////////////////
+ 
+-static char *lookup_escape(const char *escape, size_t escape_len, GlyrQuery *q,  GlyrMemCache *c, bool *is_valid)
++static char * lookup_escape (const char * escape, size_t escape_len, GlyrQuery * q,  GlyrMemCache * c, bool * is_valid)
+ {
+-    for(size_t i = 0; i < _escape_table_size; ++i) {
+-        if(_escapes[i].name == NULL) {
++    for (size_t i = 0; i < _escape_table_size; ++i)
++    {
++        if (_escapes[i].name == NULL)
+             continue;
+-        }
+ 
+-        if(strncmp(escape, _escapes[i].name, escape_len) == 0) {
++        if (strncmp (escape,_escapes[i].name,escape_len) == 0)
++        {
+             *is_valid = true;
+-            char *result = _escapes[i].func(q, c);
+-            if(_escapes[i].escape_slashes) {
+-                utf8_replace_char(result, '/', '|');
++            char * result = _escapes[i].func (q,c);
++            if (_escapes[i].escape_slashes)
++            {
++                utf8_replace_char (result,'/','|');
+             }
+             return result;
+         }
+@@ -172,101 +178,111 @@ static char *lookup_escape(const char *escape, size_t escape_len, GlyrQuery *q,
+ 
+ ////////////////////////
+ 
+-static size_t estimate_alloc_size(const char *str)
++static size_t estimate_alloc_size (const char * str)
+ {
+     int colons = 0, normal = 0;
+-    while(*str)
+-        if(*str++ == ':') {
++    while (*str)
++        if (*str++ == ':')
+             colons++;
+-        } else {
++        else
+             normal++;
+-        }
+ 
+     return (colons / 2 + 1) * 128 + normal + 1;
+ }
+ 
+ ////////////////////////
+ 
+-char *escape_colon_expr(const char *path, GlyrQuery *q, GlyrMemCache *c)
++char * escape_colon_expr (const char * path, GlyrQuery * q, GlyrMemCache * c)
+ {
+-    char *retv = NULL;
+-    if(path && q && c) {
+-        size_t maxbufsize = estimate_alloc_size(path);
++    char * retv = NULL;
++    if (path && q && c)
++    {
++        size_t maxbufsize = estimate_alloc_size (path);
+         size_t off = 0;
+         bool always_copy = false;
+-        retv = g_malloc0(maxbufsize + 1);
+-
+-        size_t path_len = strlen(path);
+-        for(size_t i = 0; i < path_len; ++i) {
+-            if(always_copy == false && path[i] == ':') {
+-                const char *escape_begin = &path[i + 1];
+-                char *end_colon = strchr(escape_begin, ':');
+-                if(end_colon != NULL) {
++        retv = g_malloc0 (maxbufsize+1);
++
++        size_t path_len = strlen (path);
++        for (size_t i = 0; i < path_len; ++i)
++        {
++            if (always_copy == false && path[i] == ':')
++            {
++                const char * escape_begin = &path[i+1];
++                char * end_colon = strchr (escape_begin,':');
++                if (end_colon != NULL)
++                {
+                     bool is_valid = false;
+                     size_t escape_len = end_colon - escape_begin;
+-                    if(escape_len == 0) {
++                    if (escape_len == 0)
+                         continue;
+-                    }
+ 
+-                    char *subsitution = lookup_escape(escape_begin, escape_len, q, c, &is_valid);
+-                    if(subsitution != NULL) {
+-                        size_t subs_len = strlen(subsitution);
+-                        memcpy(&retv[off], subsitution, subs_len);
++                    char * subsitution = lookup_escape (escape_begin,escape_len,q,c,&is_valid);
++                    if (subsitution != NULL)
++                    {
++                        size_t subs_len = strlen (subsitution);
++                        memcpy (&retv[off],subsitution,subs_len);
+                         off += subs_len;
+-                        g_free(subsitution);
+-                    } else if(is_valid == false) {
+-                        strncpy(retv + off, &path[i], escape_len + 2);
++                        g_free (subsitution);
++                    }
++                    else if (is_valid == false)
++                    {
++                        strncpy (retv+off,&path[i],escape_len + 2);
+                         off += escape_len + 2;
+                     }
+                     i += escape_len + 1;
+-                } else {
++                }
++                else
++                {
+                     always_copy = true;
+                     i--;
+                 }
+-            } else {
++            }
++            else
++            {
+                 retv[off++] = path[i];
+             }
+ 
+-            if(off >= maxbufsize) {
+-                fprintf(stderr, "ERROR: Ouch! Buffersize too small. Hack: Add some :: to your string.\n");
++            if (off >= maxbufsize)
++            {
++                fprintf (stderr,"ERROR: Ouch! Buffersize too small. Hack: Add some :: to your string.\n");
+                 break;
+             }
+         }
+     }
+-    if(q && q->verbosity >= 4) {
+-        printf(">>> %s\n", retv);
++    if (q && q->verbosity >= 4)
++    {
++        printf (">>> %s\n",retv);
+     }
+     return retv;
+ }
+ 
+ ////////////////////////
+ 
+-void increment_item_counter(void)
++void increment_item_counter (void)
+ {
+     ++global_item_counter;
+ }
+ 
+ ////////////////////////
+ 
+-int get_item_counter(void)
++int get_item_counter (void)
+ {
+     return global_item_counter;
+ }
+ 
+ ////////////////////////
+ 
+-char *get_write_path(void)
++char * get_write_path (void)
+ {
+     return global_write_path;
+ }
+ 
+ ////////////////////////
+ 
+-void set_write_path(char *path)
++void set_write_path (char * path)
+ {
+-    if(global_write_path != NULL) {
+-        g_free(global_write_path);
+-    }
++    if (global_write_path != NULL)
++        g_free (global_write_path);
+ 
+     global_write_path = path;
+ }
+diff --git a/src/glyrc/glyrc.c b/src/glyrc/glyrc.c
+index 452dee5..fc84896 100644
+--- a/src/glyrc/glyrc.c
++++ b/src/glyrc/glyrc.c
+@@ -67,9 +67,10 @@
+ ////////////////////////////////////////////////////////////////
+ 
+ /* Shared data of main/callback */
+-typedef struct {
+-    char *output_path;
+-    char *exec_on_call;
++typedef struct
++{
++    char * output_path;
++    char * exec_on_call;
+     bool as_one;
+     bool append_format;
+ 
+@@ -84,19 +85,19 @@ typedef struct {
+     .as_one       = false, \
+     .append_format= false  \
+ }                          \
+- 
++                                                     
+ //////////////////////////
+ 
+-static GlyrQuery *glob_lastQuery = NULL;
++static GlyrQuery * glob_lastQuery = NULL;
+ 
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ 
+-void log_func(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
++void log_func (const gchar *log_domain,GLogLevelFlags log_level,const gchar *message, gpointer user_data)
+ {
+-    fputs(message, GLYR_OUTPUT);
++    fputs (message,GLYR_OUTPUT);
+ }
+ 
+ ////////////////////////////////////////////////////////////////
+@@ -105,21 +106,22 @@ void log_func(const gchar *log_domain, GLogLevelFlags log_level, const gchar *me
+ #define STACK_FRAME_SIZE 20
+ 
+ /* Obtain a backtrace and print it to stdout. */
+-static void print_trace(void)
++static void print_trace (void)
+ {
+-    void *array[STACK_FRAME_SIZE];
+-    char **bt_info_list;
++    void * array[STACK_FRAME_SIZE];
++    char ** bt_info_list;
+     gsize size, it = 0;
+ 
+-    size = backtrace(array, STACK_FRAME_SIZE);
+-    bt_info_list = backtrace_symbols(array, size);
++    size = backtrace (array, STACK_FRAME_SIZE);
++    bt_info_list = backtrace_symbols (array, size);
+ 
+-    for(it = 0; it < size; it++) {
+-        cvprint(DEFAULT, "    [#%02u] %s\n", (gint) it + 1, bt_info_list[it]);
++    for (it = 0; it < size; it++)
++    {
++        cvprint (DEFAULT,"    [#%02u] %s\n", (gint) it+1, bt_info_list[it]);
+     }
+ 
+-    cvprint(DEFAULT, "\n%zd calls in total are shown.\n", size);
+-    g_free(bt_info_list);
++    cvprint (DEFAULT,"\n%zd calls in total are shown.\n", size);
++    g_free (bt_info_list);
+ }
+ #endif
+ 
+@@ -127,68 +129,70 @@ static void print_trace(void)
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ 
+-static void sig_handler(int signal)
++static void sig_handler (int signal)
+ {
+-    switch(signal) {
++    switch (signal)
++    {
+     case SIGABRT :
+     case SIGFPE  :
+     case SIGSEGV : /* sigh */
+-        cvprint(RED, "\nFATAL: libglyr stopped/crashed due to a %s of death.\n", g_strsignal(signal));
+-        cvprint(DEFAULT, "       This is entirely the fault of the libglyr developers. Yes, we failed. Sorry. Now what to do:\n");
+-        cvprint(DEFAULT, "       It would be just natural to blame us now, so just visit <https://github.com/sahib/glyr/issues>\n");
+-        cvprint(DEFAULT, "       and throw hard words like 'backtrace', 'bug report' or even the '$(command I issued' at them).\n");
+-        cvprint(DEFAULT, "       The libglyr developers will try to fix it as soon as possible so please stop pulling their hair.\n");
++        cvprint (RED,"\nFATAL: libglyr stopped/crashed due to a %s of death.\n",g_strsignal (signal) );
++        cvprint (DEFAULT,"       This is entirely the fault of the libglyr developers. Yes, we failed. Sorry. Now what to do:\n");
++        cvprint (DEFAULT,"       It would be just natural to blame us now, so just visit <https://github.com/sahib/glyr/issues>\n");
++        cvprint (DEFAULT,"       and throw hard words like 'backtrace', 'bug report' or even the '$(command I issued' at them).\n");
++        cvprint (DEFAULT,"       The libglyr developers will try to fix it as soon as possible so please stop pulling their hair.\n");
+ #ifdef __linux__
+-        cvprint(DEFAULT, "\nA list of the last called functions follows, please add this to your report:\n");
++        cvprint (DEFAULT,"\nA list of the last called functions follows, please add this to your report:\n");
+         print_trace();
+ #endif
+-        cvprint(DEFAULT, "\n(Thanks, and Sorry for any bad feelings.)\n\n");
++        cvprint (DEFAULT,"\n(Thanks, and Sorry for any bad feelings.)\n\n");
+         break;
+     }
+-    exit(EXIT_FAILURE);
++    exit (EXIT_FAILURE);
+ }
+ 
+ ////////////////////////////////////////////////////////////////
+ 
+-static void init_signals(void)
++static void init_signals (void)
+ {
+     /* Only register for crashes */
+-    signal(SIGSEGV, sig_handler);
+-    signal(SIGABRT, sig_handler);
+-    signal(SIGFPE,  sig_handler);
++    signal (SIGSEGV, sig_handler);
++    signal (SIGABRT, sig_handler);
++    signal (SIGFPE,  sig_handler);
+ }
+ 
+ ////////////////////////////////////////////////////////////////
+ 
+-static void handle_cancel(int signo)
++static void handle_cancel (int signo)
+ {
+-    cvprint(YELLOW, "Canceling..\n");
+-    if(glob_lastQuery != NULL) {
+-        glyr_signal_exit(glob_lastQuery);
++    cvprint (YELLOW,"Canceling..\n");
++    if (glob_lastQuery != NULL)
++    {
++        glyr_signal_exit (glob_lastQuery);
+     }
+ }
+ 
+ ////////////////////////////////////////////////////////////////
+ 
+-static char *create_cache_directory(void)
++static char * create_cache_directory (void)
+ {
+-    char *xdg_cache_dir = g_strdup(g_getenv("XDG_CACHE_HOME"));
++    char * xdg_cache_dir = g_strdup(g_getenv("XDG_CACHE_HOME"));
+     if(xdg_cache_dir == NULL) {
+-        xdg_cache_dir = (char *) g_getenv("HOME");
++        xdg_cache_dir = (char *)g_getenv("HOME");
+         if(xdg_cache_dir == NULL) {
+             xdg_cache_dir = g_strdup("/tmp");
+         } else {
+             xdg_cache_dir = g_strdup_printf("%s%c.cache",
+-                                            xdg_cache_dir,
+-                                            G_DIR_SEPARATOR
+-                                           );
++                xdg_cache_dir,
++                G_DIR_SEPARATOR
++            );
+         }
+     }
+ 
+-    char *full_path = g_strdup_printf("%s%cglyrc",
+-                                      xdg_cache_dir,
+-                                      G_DIR_SEPARATOR
+-                                     );
++    char * full_path = g_strdup_printf("%s%cglyrc",
++        xdg_cache_dir,
++        G_DIR_SEPARATOR
++    );
+ 
+     if(!g_file_test(full_path, G_FILE_TEST_IS_DIR)) {
+         g_printerr("<%s> does not exist yet. Creating...", full_path);
+@@ -198,7 +202,7 @@ static char *create_cache_directory(void)
+         } else {
+             g_printerr("done.\n");
+         }
+-
++        
+     }
+ 
+     g_free(xdg_cache_dir);
+@@ -207,26 +211,26 @@ static char *create_cache_directory(void)
+ 
+ ////////////////////////////////////////////////////////////////
+ 
+-static void init_cancel_handler(GlyrQuery *p_lastQuery)
++static void init_cancel_handler (GlyrQuery * p_lastQuery)
+ {
+     glob_lastQuery = p_lastQuery;
+-    signal(SIGINT, handle_cancel);
++    signal (SIGINT, handle_cancel);
+ }
+ 
+ ////////////////////////////////////////////////////////////////
+ // --------------------------------------------------------- //
+ ///////////////////////////////////////////////////////////////
+ 
+-static void print_version(GlyrQuery *s)
++static void print_version (GlyrQuery * s)
+ {
+-    cprint(DEFAULT, -1, s, "%s\n\n", glyr_version());
++    cprint (DEFAULT,-1,s, "%s\n\n",glyr_version() );
+ 
+-    cprint(DEFAULT, -1, s, "libglyr is licensed under the terms of the GPLv3.\n");
+-    cprint(DEFAULT, -1, s, "Please refer to the COPYING file you received with glyr.\n\n");
+-    cprint(DEFAULT, -1, s, "Email bugs to <sahib at online.de> or use the bugtracker\n"
+-           "at https://github.com/sahib/glyr/issues - Thank you! \n");
++    cprint (DEFAULT,-1,s, "libglyr is licensed under the terms of the GPLv3.\n");
++    cprint (DEFAULT,-1,s, "Please refer to the COPYING file you received with glyr.\n\n");
++    cprint (DEFAULT,-1,s, "Email bugs to <sahib at online.de> or use the bugtracker\n"
++            "at https://github.com/sahib/glyr/issues - Thank you! \n");
+ 
+-    exit(0);
++    exit (0);
+ }
+ 
+ 
+@@ -234,150 +238,155 @@ static void print_version(GlyrQuery *s)
+ // --------------------------------------------------------- //
+ ////////////////////////////////////////////////////////////////
+ 
+-void help_short(GlyrQuery *s)
++void help_short (GlyrQuery * s)
+ {
+-    cprint(DEFAULT, -1, s, "Usage: glyrc [GETTER] (options)\n\nwhere [GETTER] must be one of:\n");
+-    GlyrFetcherInfo *info  = glyr_info_get();
+-    GlyrFetcherInfo *track = info;
+-    while(info != NULL) {
+-        cprint(DEFAULT, -1, NULL, " - %s\n", info->name);
++    cprint (DEFAULT,-1,s,"Usage: glyrc [GETTER] (options)\n\nwhere [GETTER] must be one of:\n");
++    GlyrFetcherInfo * info  = glyr_info_get();
++    GlyrFetcherInfo * track = info;
++    while (info != NULL)
++    {
++        cprint (DEFAULT,-1,NULL," - %s\n", info->name);
+         info = info->next;
+     }
+-    glyr_info_free(track);
++    glyr_info_free (track);
+ 
+ #define IN "    "
+-    cprint(DEFAULT, -1, s, "\nGENERAL OPTIONS:\n"
+-           IN"-f --from                String: Providers from where to get metadata. Refer to glyrc --list for a full list\n"
+-           IN"-n --number              Integer: Download max. <n> items. Amount of actual downloaded items may be less.\n"
+-           IN"-l --lang                String: Language settings. Used by a few getters to deliever localized data. Given in ISO 639-1 codes like 'de'\n"
+-           IN"-o --only-lang           Only use providers that offer language specific data, this only applies for text items.\n"
+-           IN"-z --fuzzyness           Integer: Set threshold for level of Levenshtein algorithm.\n"
+-           IN"-q --qsratio             Float: How to weight quality/speed; 1.0 = full quality, 0.0 = full speed.\n"
+-           IN"-x --plugmax             Integer. Maximum number od download a plugin may deliever. Use to make results more vary.\n"
+-           IN"-v --verbosity           Integer. Set verbosity from 0 to 4. See online-README for details.\n"
+-           IN"-w --write               Path: Write metadata to the dir <d>, or filename <d>, special values stdout, stderr and null are supported\n"
+-           IN"                               Certain escapes are escaped inside the filename in the form :X:, where X may be one of:\n"
+-           IN"                                  * type     : The getter used in this query (e.g. cover)\n"
+-           IN"                                  * artist   : Artist - as passed by -a\n"
+-           IN"                                  * album    : Album  - as passed by -b\n"
+-           IN"                                  * title    : Title  - as passed by -t\n"
+-           IN"                                  * size     : Size in bytes\n"
+-           IN"                                  * format   : The image format or 'txt' for textitems\n"
+-           IN"                                  * source   : The source URL of this item\n"
+-           IN"                                  * prov     : The Provider of this item\n"
+-           IN"                                  * cksum    : a md5sum of the data\n"
+-           IN"                                  * rating   : (Usually 0)\n"
+-           IN"                                  * duration : (Only for tracks) Duration in seconds\n"
+-           IN"                                  * number   : An index incremented with each item (starting with 1)\n"
+-           IN"\n"
+-           IN"                               The default format is ':artist:_:album:_:title:_:type:_:number:.:format:'\n"
+-           IN"                               Strings containing '/' are replaced with '|' automatically,\n"
+-           IN"                               so --write ':artist:' for AC/DC will result in AC|DC\n"
+-           IN"\n"
+-           "\nNETWORK OPTIONS\n"
+-           IN"-p --parallel            Integer: Define the number of downloads that may be performed in parallel.\n"
+-           IN"-u --useragent           String: The useragent to use during HTTP requests\n"
+-           IN"-r --redirects           Integer. Define the number of redirects that are allowed.\n"
+-           IN"-m --timeout             Integer. Define the maximum number in seconds after which a download is cancelled.\n"
+-           IN"-k --proxy               String: Set the proxy to use in the form of [protocol://][user:pass@]yourproxy.domain[:port]\n"
+-           "\nPROVIDER SPECIFIC OPTIONS\n"
+-           IN"-d --download            Download Images.\n"
+-           IN"-D --skip-download       Don't download images, but return the URLs to them (act like a search engine)\n"
+-           IN"-a --artist              String: Artist name to search for\n"
+-           IN"-b --album               String: Album name to search for\n"
+-           IN"-t --title               String: Songname to search for\n"
+-           IN"-e --maxsize             Integer: (images only) The maximum size a cover may have.\n"
+-           IN"-i --minsize             Integer: (images only) The minimum size a cover may have.\n"
+-           IN"-F --formats             String: A semicolon separated list of imageformats that are allowed. e.g.: \"png;jpeg\"\n"
+-           IN"-8 --force-utf8          Forces utf8 encoding for text items, invalid encodings get sorted out\n"
+-           "\nMISC OPTIONS\n"
+-           IN"-L --list                List all fetchers and source providers for each and exit.\n"
+-           IN"-h --help                This text you unlucky wanderer are viewing.\n"
+-           IN"-V --version             Print the version string.\n"
+-           IN"-U --update              Updates libglyr if new version is available.\n"
+-           IN"-g --as-one              (Textitems only) Output all results as one (useful for tracklist and albumlist).\n"
+-           IN"-G --no-as-one           Disables --as-one (Default)\n"
+-           IN"-y --color               Enables colored output for glyrc (Default)\n"
+-           IN"-Y --no-color            Prints no colored output\n"
+-           IN"-s --musictree-path <p>  <p> is a path to your music directory. Glyr might fetch things like folger.jpg from there;\n"
+-           IN"-j --callback            Command: Set a bash command to be executed when a item is finished downloading;\n"
+-           IN"                                  All escapes mentioned in --write are supported too, and additonally:\n"
+-           IN"                                    * path : The path were the item was written to.\n"
+-           "\nDATABASE OPTIONS\n"
+-           IN"-c --cache <folder>      Creates or opens an existing cache at <folder>/metadata.db and lookups data from there.\n"
+-           IN"cache select [Query]     Selects data from the cache; you can use any other option behind this.\n"
+-           IN"cache delete [Query]     Instead of searching for this element, the element is deleted from the database. Needs --cache.\n"
+-           IN"cache list               List all items in the database (including the artist / album / title / type) - Needs --cache.\n"
+-           IN"\nExamples:\n\n"
+-           IN"    glyrc cover --artist SomeBand --album SomeAlbum\n"
+-           IN"   \n"
+-           IN"  DB:\n\n"
+-           IN"    glyrc lyrics -a A -b B --cache /tmp # Write found items to cache; create it if not existant\n"
+-           IN"    glyrc cache list --cache /tmp # List all in the cache\n"
+-           IN"    glyrc cache delete cover -a Equilibrium -b Sagas --cache /tmp # Delete artist/album\n"
+-           IN"    glyrc cache select lyrics -a Knorkator -t 'A' -n 2 --cache /tmp # Search for two items in cache and print them\n"
+-           IN"\n"
+-           IN"The return code will be 0 on success, 1 on any failure. No distinction is made which error happened.\n"
+-           IN"\n\n"
+-           "With each item received you get a link to the original source, please refer to the individual terms of use,\n"
+-           "copying and distributing of this data might be not allowed.\n"
+-           "A more detailed version of this help can be found online: https://github.com/sahib/glyr/wiki/Commandline-arguments\n"
+-          );
+-
+-    cprint(DEFAULT, -1, s, "\nAUTHOR: (C) Christopher Pahl - 2011, <sahib at online.de>\n%s\n\n", glyr_version());
+-    exit(EXIT_FAILURE);
++    cprint (DEFAULT,-1,s,"\nGENERAL OPTIONS:\n"
++            IN"-f --from                String: Providers from where to get metadata. Refer to glyrc --list for a full list\n"
++            IN"-n --number              Integer: Download max. <n> items. Amount of actual downloaded items may be less.\n"
++            IN"-l --lang                String: Language settings. Used by a few getters to deliever localized data. Given in ISO 639-1 codes like 'de'\n"
++            IN"-o --only-lang           Only use providers that offer language specific data, this only applies for text items.\n"
++            IN"-z --fuzzyness           Integer: Set threshold for level of Levenshtein algorithm.\n"
++            IN"-q --qsratio             Float: How to weight quality/speed; 1.0 = full quality, 0.0 = full speed.\n"
++            IN"-x --plugmax             Integer. Maximum number od download a plugin may deliever. Use to make results more vary.\n"
++            IN"-v --verbosity           Integer. Set verbosity from 0 to 4. See online-README for details.\n"
++            IN"-w --write               Path: Write metadata to the dir <d>, or filename <d>, special values stdout, stderr and null are supported\n"
++            IN"                               Certain escapes are escaped inside the filename in the form :X:, where X may be one of:\n"
++            IN"                                  * type     : The getter used in this query (e.g. cover)\n"
++            IN"                                  * artist   : Artist - as passed by -a\n"
++            IN"                                  * album    : Album  - as passed by -b\n"
++            IN"                                  * title    : Title  - as passed by -t\n"
++            IN"                                  * size     : Size in bytes\n"
++            IN"                                  * format   : The image format or 'txt' for textitems\n"
++            IN"                                  * source   : The source URL of this item\n"
++            IN"                                  * prov     : The Provider of this item\n"
++            IN"                                  * cksum    : a md5sum of the data\n"
++            IN"                                  * rating   : (Usually 0)\n"
++            IN"                                  * duration : (Only for tracks) Duration in seconds\n"
++            IN"                                  * number   : An index incremented with each item (starting with 1)\n"
++            IN"\n"
++            IN"                               The default format is ':artist:_:album:_:title:_:type:_:number:.:format:'\n"
++            IN"                               Strings containing '/' are replaced with '|' automatically,\n"
++            IN"                               so --write ':artist:' for AC/DC will result in AC|DC\n"
++            IN"\n"
++            "\nNETWORK OPTIONS\n"
++            IN"-p --parallel            Integer: Define the number of downloads that may be performed in parallel.\n"
++            IN"-u --useragent           String: The useragent to use during HTTP requests\n"
++            IN"-r --redirects           Integer. Define the number of redirects that are allowed.\n"
++            IN"-m --timeout             Integer. Define the maximum number in seconds after which a download is cancelled.\n"
++            IN"-k --proxy               String: Set the proxy to use in the form of [protocol://][user:pass@]yourproxy.domain[:port]\n"
++            "\nPROVIDER SPECIFIC OPTIONS\n"
++            IN"-d --download            Download Images.\n"
++            IN"-D --skip-download       Don't download images, but return the URLs to them (act like a search engine)\n"
++            IN"-a --artist              String: Artist name to search for\n"
++            IN"-b --album               String: Album name to search for\n"
++            IN"-t --title               String: Songname to search for\n"
++            IN"-e --maxsize             Integer: (images only) The maximum size a cover may have.\n"
++            IN"-i --minsize             Integer: (images only) The minimum size a cover may have.\n"
++            IN"-F --formats             String: A semicolon separated list of imageformats that are allowed. e.g.: \"png;jpeg\"\n"
++            IN"-8 --force-utf8          Forces utf8 encoding for text items, invalid encodings get sorted out\n"
++            "\nMISC OPTIONS\n"
++            IN"-L --list                List all fetchers and source providers for each and exit.\n"
++            IN"-h --help                This text you unlucky wanderer are viewing.\n"
++            IN"-V --version             Print the version string.\n"
++            IN"-U --update              Updates libglyr if new version is available.\n"
++            IN"-g --as-one              (Textitems only) Output all results as one (useful for tracklist and albumlist).\n"
++            IN"-G --no-as-one           Disables --as-one (Default)\n"
++            IN"-y --color               Enables colored output for glyrc (Default)\n"
++            IN"-Y --no-color            Prints no colored output\n"
++            IN"-s --musictree-path <p>  <p> is a path to your music directory. Glyr might fetch things like folger.jpg from there;\n"
++            IN"-j --callback            Command: Set a bash command to be executed when a item is finished downloading;\n"
++            IN"                                  All escapes mentioned in --write are supported too, and additonally:\n"
++            IN"                                    * path : The path were the item was written to.\n"
++            "\nDATABASE OPTIONS\n"
++            IN"-c --cache <folder>      Creates or opens an existing cache at <folder>/metadata.db and lookups data from there.\n"
++            IN"cache select [Query]     Selects data from the cache; you can use any other option behind this.\n"
++            IN"cache delete [Query]     Instead of searching for this element, the element is deleted from the database. Needs --cache.\n"
++            IN"cache list               List all items in the database (including the artist / album / title / type) - Needs --cache.\n"
++            IN"\nExamples:\n\n"
++            IN"    glyrc cover --artist SomeBand --album SomeAlbum\n"
++            IN"   \n"
++            IN"  DB:\n\n"
++            IN"    glyrc lyrics -a A -b B --cache /tmp # Write found items to cache; create it if not existant\n"
++            IN"    glyrc cache list --cache /tmp # List all in the cache\n"
++            IN"    glyrc cache delete cover -a Equilibrium -b Sagas --cache /tmp # Delete artist/album\n"
++            IN"    glyrc cache select lyrics -a Knorkator -t 'A' -n 2 --cache /tmp # Search for two items in cache and print them\n"
++            IN"\n"
++            IN"The return code will be 0 on success, 1 on any failure. No distinction is made which error happened.\n"
++            IN"\n\n"
++            "With each item received you get a link to the original source, please refer to the individual terms of use,\n"
++            "copying and distributing of this data might be not allowed.\n"
++            "A more detailed version of this help can be found online: https://github.com/sahib/glyr/wiki/Commandline-arguments\n"
++           );
++
++    cprint (DEFAULT,-1,s,"\nAUTHOR: (C) Christopher Pahl - 2011, <sahib at online.de>\n%s\n\n",glyr_version() );
++    exit (EXIT_FAILURE);
+ #undef IN
+ }
+ 
+ ////////////////////////////////////////////////////////////////
+ 
+-static void visualize_from_options(void)
++static void visualize_from_options (void)
+ {
+-    cprint(WHITE, -1, NULL, "# First line is the name of the fetcher you can use,\n"
+-           "# Second is the providername with the shortkey in []\n"
+-           "# Some unimportant information follows intented by '-'\n\n");
+-
+-    GlyrFetcherInfo *info = glyr_info_get();
+-    if(info != NULL) {
+-        for(GlyrFetcherInfo *elem0 = info; elem0; elem0 = elem0->next) {
+-            cvprint(BLUE, " %s => %d\n", elem0->name, elem0->type);
+-            for(GlyrSourceInfo *elem1 = elem0->head; elem1; elem1 = elem1->next) {
+-                cvprint(CYAN, "   # %s [%c]\n", elem1->name, elem1->key);
+-                cvprint(YELLOW, "     - Quality: %d\n", elem1->quality);
+-                cvprint(YELLOW, "     - Speed:   %d\n", elem1->speed);
+-                cvprint(YELLOW, "     - Type:    %s\n", glyr_get_type_to_string(elem1->type));
++    cprint (WHITE,-1,NULL,"# First line is the name of the fetcher you can use,\n"
++            "# Second is the providername with the shortkey in []\n"
++            "# Some unimportant information follows intented by '-'\n\n");
++
++    GlyrFetcherInfo * info = glyr_info_get();
++    if (info != NULL)
++    {
++        for (GlyrFetcherInfo * elem0 = info; elem0; elem0 = elem0->next)
++        {
++            cvprint (BLUE," %s => %d\n",elem0->name,elem0->type);
++            for (GlyrSourceInfo * elem1 = elem0->head; elem1; elem1 = elem1->next)
++            {
++                cvprint (CYAN,"   # %s [%c]\n",elem1->name,elem1->key);
++                cvprint (YELLOW,"     - Quality: %d\n",elem1->quality);
++                cvprint (YELLOW,"     - Speed:   %d\n",elem1->speed);
++                cvprint (YELLOW,"     - Type:    %s\n",glyr_get_type_to_string (elem1->type) );
+             }
+ 
+-            cvprint(GREEN, " + Requires: (%s%s%s)\n",
+-                    elem0->reqs & GLYR_REQUIRES_ARTIST ? "Artist " : "",
+-                    elem0->reqs & GLYR_REQUIRES_ALBUM  ? "Album "  : "",
+-                    elem0->reqs & GLYR_REQUIRES_TITLE  ? "Title"   : ""
+-                   );
+-            cvprint(MAGENTA, " + Optional: (%s%s%s)\n",
+-                    elem0->reqs & GLYR_OPTIONAL_ARTIST ? "Artist " : "",
+-                    elem0->reqs & GLYR_OPTIONAL_ALBUM  ? "Album "  : "",
+-                    elem0->reqs & GLYR_OPTIONAL_TITLE  ? "Title"   : ""
+-                   );
+-
+-            cvprint(BLUE, "\n///////////////////////////////\n\n");
++            cvprint (GREEN," + Requires: (%s%s%s)\n",
++                     elem0->reqs & GLYR_REQUIRES_ARTIST ? "Artist " : "",
++                     elem0->reqs & GLYR_REQUIRES_ALBUM  ? "Album "  : "",
++                     elem0->reqs & GLYR_REQUIRES_TITLE  ? "Title"   : ""
++                    );
++            cvprint (MAGENTA," + Optional: (%s%s%s)\n",
++                     elem0->reqs & GLYR_OPTIONAL_ARTIST ? "Artist " : "",
++                     elem0->reqs & GLYR_OPTIONAL_ALBUM  ? "Album "  : "",
++                     elem0->reqs & GLYR_OPTIONAL_TITLE  ? "Title"   : ""
++                    );
++
++            cvprint (BLUE,"\n///////////////////////////////\n\n");
+         }
+ 
+-        cvprint(WHITE, "\nFollowing providers work with all types:\n");
+-        cvprint(WHITE, "  # local     [l] (A local SQLite DB cache; see --cache)\n");
+-        cvprint(WHITE, "  # musictree [t] (Gets items from your music directory (folder.jpg etc) --musictree-path)\n");
+-        cvprint(WHITE, "\nThe string 'all' in --from enables all providers.\n");
+-        cvprint(WHITE, "You can disable certain providers from this by prepending a '-':\n");
+-        cvprint(WHITE, "  \"all;-lastfm\"\n");
+-        cvprint(DEFAULT, "\n///////////////////////////////\n");
++        cvprint (WHITE,"\nFollowing providers work with all types:\n");
++        cvprint (WHITE,"  # local     [l] (A local SQLite DB cache; see --cache)\n");
++        cvprint (WHITE,"  # musictree [t] (Gets items from your music directory (folder.jpg etc) --musictree-path)\n");
++        cvprint (WHITE,"\nThe string 'all' in --from enables all providers.\n");
++        cvprint (WHITE,"You can disable certain providers from this by prepending a '-':\n");
++        cvprint (WHITE,"  \"all;-lastfm\"\n");
++        cvprint (DEFAULT,"\n///////////////////////////////\n");
+     }
+-    glyr_info_free(info);
++    glyr_info_free (info);
+ }
+ 
+ ////////////////////////////////////////////////////////////////
+ 
+-static void parse_commandline_general(int argc, char *const *argv, GlyrQuery *glyrs, callback_data_t *CBData, GlyrDatabase **db)
++static void parse_commandline_general (int argc, char * const * argv, GlyrQuery * glyrs, callback_data_t * CBData, GlyrDatabase ** db)
+ {
+-    static struct option long_options[] = {
++    static struct option long_options[] =
++    {
+         {"from",          required_argument, 0, 'f'},
+         {"write",         required_argument, 0, 'w'},
+         {"parallel",      required_argument, 0, 'p'},
+@@ -410,134 +419,143 @@ static void parse_commandline_general(int argc, char *const *argv, GlyrQuery *gl
+         {"lang",          required_argument, 0, 'l'},
+         {"fuzzyness",     required_argument, 0, 'z'},
+         {"callback",      required_argument, 0, 'j'},
+-        {"musictree-path", required_argument, 0, 's'},
++        {"musictree-path",required_argument, 0, 's'},
+         {"normalization", required_argument, 0, 'N'},
+         {0,               0,                 0, '0'}
+     };
+ 
+     opterr = 0;
+-    while(TRUE) {
++    while (TRUE)
++    {
+         gint c;
+         gint option_index = 0;
+-        if((c = getopt_long(argc, argv, "N:f:W:w:p:r:m:x:u:v:q:c::F:hVodDLa:b:t:i:e:s:n:l:z:j:k:8gGyY", long_options, &option_index)) == -1) {
++        if ( (c = getopt_long (argc, argv, "N:f:W:w:p:r:m:x:u:v:q:c::F:hVodDLa:b:t:i:e:s:n:l:z:j:k:8gGyY",long_options, &option_index) ) == -1)
++        {
+             break;
+         }
+ 
+-        switch(c) {
+-        case 'w': {
+-            char *dirname = g_path_get_dirname(optarg);
+-            gsize opt_len = strlen(optarg);
+-            if(g_ascii_strncasecmp(optarg, "stdout", opt_len) == 0 ||
+-                    g_ascii_strncasecmp(optarg, "stderr", opt_len) == 0 ||
+-                    g_ascii_strncasecmp(optarg, "null",  opt_len) == 0 ||
+-                    g_file_test(dirname, G_FILE_TEST_IS_DIR | G_FILE_TEST_EXISTS) == TRUE) {
++        switch (c)
++        {
++        case 'w':
++        {
++            char * dirname = g_path_get_dirname (optarg);
++            gsize opt_len = strlen (optarg);
++            if (g_ascii_strncasecmp (optarg,"stdout",opt_len) == 0 ||
++                g_ascii_strncasecmp (optarg,"stderr",opt_len) == 0 ||
++                g_ascii_strncasecmp (optarg,"null",  opt_len) == 0 ||
++                g_file_test (dirname,G_FILE_TEST_IS_DIR | G_FILE_TEST_EXISTS) == TRUE)
++            {
+                 CBData->output_path = optarg;
+-                g_free(dirname);
+-            } else {
+-                g_free(dirname);
+-                cprint(DEFAULT, -1, NULL, "'%s' does not seem to be an valid directory!\n", optarg);
+-                exit(-1);
++                g_free (dirname);
++            }
++            else
++            {
++                g_free (dirname);
++                cprint (DEFAULT,-1,NULL,"'%s' does not seem to be an valid directory!\n",optarg);
++                exit (-1);
+             }
+             break;
+         }
+         case 'f':
+-            glyr_opt_from(glyrs, optarg);
++            glyr_opt_from (glyrs,optarg);
+             break;
+         case 'v':
+-            glyr_opt_verbosity(glyrs, atoi(optarg));
++            glyr_opt_verbosity (glyrs,atoi (optarg) );
+             break;
+         case 'p':
+-            glyr_opt_parallel(glyrs, atoi(optarg));
++            glyr_opt_parallel (glyrs,atoi (optarg) );
+             break;
+         case 'r':
+-            glyr_opt_redirects(glyrs, atoi(optarg));
++            glyr_opt_redirects (glyrs,atoi (optarg) );
+             break;
+         case 'm':
+-            glyr_opt_timeout(glyrs, atoi(optarg));
++            glyr_opt_timeout (glyrs,atoi (optarg) );
+             break;
+         case 'u':
+-            glyr_opt_useragent(glyrs, optarg);
++            glyr_opt_useragent (glyrs,optarg);
+             break;
+         case 'x':
+-            glyr_opt_plugmax(glyrs, atoi(optarg));
++            glyr_opt_plugmax (glyrs,atoi (optarg) );
+             break;
+         case 'V':
+-            print_version(glyrs);
++            print_version (glyrs);
+             break;
+         case 'h':
+-            help_short(glyrs);
++            help_short (glyrs);
+             break;
+         case 'a':
+-            glyr_opt_artist(glyrs, optarg);
++            glyr_opt_artist (glyrs,optarg);
+             break;
+         case 'b':
+-            glyr_opt_album(glyrs, optarg);
++            glyr_opt_album (glyrs,optarg);
+             break;
+         case 't':
+-            glyr_opt_title(glyrs, optarg);
++            glyr_opt_title (glyrs,optarg);
+             break;
+         case 'i':
+-            glyr_opt_img_minsize(glyrs, atoi(optarg));
++            glyr_opt_img_minsize (glyrs,atoi (optarg) );
+             break;
+         case 'e':
+-            glyr_opt_img_maxsize(glyrs, atoi(optarg));
++            glyr_opt_img_maxsize (glyrs,atoi (optarg) );
+             break;
+         case 'n':
+-            glyr_opt_number(glyrs, atoi(optarg));
++            glyr_opt_number (glyrs,atoi (optarg) );
+             break;
+         case 'o':
+-            glyr_opt_lang_aware_only(glyrs, true);
++            glyr_opt_lang_aware_only (glyrs,true);
+             break;
+         case 'd':
+-            glyr_opt_download(glyrs, true);
++            glyr_opt_download (glyrs,true);
+             break;
+         case 'D':
+-            glyr_opt_download(glyrs, false);
++            glyr_opt_download (glyrs,false);
+             break;
+-        case 'c': {
+-            char *path = g_strdup(optarg);
++        case 'c':
++        {
++            char * path = g_strdup(optarg);
+             if(path == NULL) {
+                 path = create_cache_directory();
+             }
+ 
+-            GlyrDatabase *new_db = glyr_db_init(path);
+-            if(db == NULL) {
+-                cprint(DEFAULT, -1, NULL, "Unable to open or create a database at specified path.\n");
+-                exit(EXIT_FAILURE);
++            GlyrDatabase * new_db = glyr_db_init (path);
++            if (db == NULL)
++            {
++                cprint (DEFAULT,-1,NULL,"Unable to open or create a database at specified path.\n");
++                exit (EXIT_FAILURE);
+             }
+             *db = new_db;
+-            glyr_opt_db_autowrite(glyrs, TRUE);
+-            glyr_opt_lookup_db(glyrs, new_db);
++            glyr_opt_db_autowrite (glyrs,TRUE);
++            glyr_opt_lookup_db (glyrs,new_db);
+             g_free(path);
+         }
+         break;
+         case 'l':
+-            glyr_opt_lang(glyrs, optarg);
++            glyr_opt_lang (glyrs,optarg);
+             break;
+         case 'L':
+             visualize_from_options();
+-            exit(0);
++            exit (0);
+             break;
+         case 'z':
+-            glyr_opt_fuzzyness(glyrs, atoi(optarg));
++            glyr_opt_fuzzyness (glyrs,atoi (optarg) );
+             break;
+         case 'j':
+             CBData->exec_on_call = optarg;
+             break;
+         case 'k':
+-            glyr_opt_proxy(glyrs, optarg);
++            glyr_opt_proxy (glyrs,optarg);
+             break;
+         case 'q':
+-            glyr_opt_qsratio(glyrs, atof(optarg));
++            glyr_opt_qsratio (glyrs,atof (optarg) );
+             break;
+         case 'F':
+-            glyr_opt_allowed_formats(glyrs, optarg);
++            glyr_opt_allowed_formats (glyrs,optarg);
+             break;
+         case '8':
+-            glyr_opt_force_utf8(glyrs, true);
++            glyr_opt_force_utf8 (glyrs,true);
+             break;
+         case 's':
+-            glyr_opt_musictree_path(glyrs, optarg);
++            glyr_opt_musictree_path (glyrs,optarg);
+             break;
+         case 'g':
+             CBData->as_one = true;
+@@ -546,36 +564,38 @@ static void parse_commandline_general(int argc, char *const *argv, GlyrQuery *gl
+             CBData->as_one = false;
+             break;
+         case 'y':
+-            enable_color(true);
++            enable_color (true);
+             break;
+         case 'Y':
+-            enable_color(false);
+-            break;
+-        case 'N': {
+-            GLYR_NORMALIZATION norm = 0;
+-            if(g_ascii_strcasecmp(optarg, "aggressive") == 0) {
+-                norm = GLYR_NORMALIZE_AGGRESSIVE;
+-            } else if(g_ascii_strcasecmp(optarg, "moderate") == 0) {
+-                norm = GLYR_NORMALIZE_MODERATE;
+-            } else if(g_ascii_strcasecmp(optarg, "none") == 0) {
+-                norm = GLYR_NORMALIZE_NONE;
+-            } else {
+-                cprint(RED, -1, NULL, "No valid normalization level: '%s'\n", optarg);
+-                exit(-1);
+-            }
++            enable_color (false);
++            break;
++        case 'N':
++            {
++                GLYR_NORMALIZATION norm = 0;
++                if (g_ascii_strcasecmp (optarg, "aggressive") == 0)
++                    norm = GLYR_NORMALIZE_AGGRESSIVE;
++                else if (g_ascii_strcasecmp (optarg, "moderate") == 0)
++                    norm = GLYR_NORMALIZE_MODERATE;
++                else if (g_ascii_strcasecmp (optarg, "none") == 0)
++                    norm = GLYR_NORMALIZE_NONE;
++                else 
++                {
++                    cprint (RED,-1,NULL,"No valid normalization level: '%s'\n", optarg);
++                    exit(-1);
++                }
+ 
+-            norm |= GLYR_NORMALIZE_ALL;
++                norm |= GLYR_NORMALIZE_ALL;
+ 
+-            glyr_opt_normalize(glyrs, norm);
+-        }
+-        break;
++                glyr_opt_normalize(glyrs, norm);
++            }
++            break;
+         case '?':
+-            cprint(RED, -1, NULL, "Option \"%s\" is not known\n", argv[optind - 1]);
+-            exit(-1);
++            cprint (RED,-1,NULL,"Option \"%s\" is not known\n",argv[optind-1]);
++            exit (-1);
+             break;
+         default:
+-            cprint(RED, -1, NULL, "Unknown Error while parsing commandline arguments.\n");
+-            exit(-1);
++            cprint (RED,-1,NULL,"Unknown Error while parsing commandline arguments.\n");
++            exit (-1);
+         } // end switch()
+     } // end while()
+ }
+@@ -584,67 +604,79 @@ static void parse_commandline_general(int argc, char *const *argv, GlyrQuery *gl
+ // --------------------------------------------------------- //
+ ////////////////////////////////////////////////////////////////
+ 
+-static GLYR_ERROR callback(GlyrMemCache *c, GlyrQuery *s)
++static GLYR_ERROR callback (GlyrMemCache * c, GlyrQuery * s)
+ {
+-    callback_data_t *CBQueryData = s->callback.user_pointer;
+-    g_assert(CBQueryData);
++    callback_data_t * CBQueryData = s->callback.user_pointer;
++    g_assert (CBQueryData);
+ 
+-    char *write_to_path = NULL;
++    char * write_to_path = NULL;
+ 
+     increment_item_counter();
+ 
+     /* write out 'live' */
+-    if(CBQueryData->output_path != NULL) {
+-        gsize write_len = strlen(CBQueryData->output_path);
+-        if(g_ascii_strncasecmp(CBQueryData->output_path, "stdout", write_len) == 0 ||
+-                g_ascii_strncasecmp(CBQueryData->output_path, "stderr", write_len) == 0 ||
+-                g_ascii_strncasecmp(CBQueryData->output_path, "null",  write_len) == 0) {
+-            glyr_cache_write(c, CBQueryData->output_path);
+-        } else {
+-            if(g_file_test(CBQueryData->output_path, G_FILE_TEST_IS_DIR) == TRUE) {
+-                char *filename  = escape_colon_expr(":artist:_:album:_:title:_:type:_:number:.:format:", s, c);
+-                char *directory = escape_colon_expr(CBQueryData->output_path, s, c);
+-                write_to_path = g_strdup_printf("%s%s%s", directory,
+-                                                g_str_has_suffix(directory, G_DIR_SEPARATOR_S) ? "" : G_DIR_SEPARATOR_S,
+-                                                filename);
+-
+-                g_free(filename);
+-                g_free(directory);
+-            } else {
+-                write_to_path = escape_colon_expr(CBQueryData->output_path, s, c);
++    if (CBQueryData->output_path != NULL)
++    {
++        gsize write_len = strlen (CBQueryData->output_path);
++        if (g_ascii_strncasecmp (CBQueryData->output_path,"stdout",write_len) == 0 ||
++            g_ascii_strncasecmp (CBQueryData->output_path,"stderr",write_len) == 0 ||
++            g_ascii_strncasecmp (CBQueryData->output_path,"null",  write_len) == 0)
++        {
++            glyr_cache_write (c,CBQueryData->output_path);
++        }
++        else
++        {
++            if (g_file_test (CBQueryData->output_path,G_FILE_TEST_IS_DIR) == TRUE)
++            {
++                char * filename  = escape_colon_expr (":artist:_:album:_:title:_:type:_:number:.:format:",s,c);
++                char * directory = escape_colon_expr (CBQueryData->output_path,s,c);
++                write_to_path = g_strdup_printf ("%s%s%s",directory,
++                                                 g_str_has_suffix (directory,G_DIR_SEPARATOR_S) ? "" : G_DIR_SEPARATOR_S,
++                                                 filename);
++
++                g_free (filename);
++                g_free (directory);
++            }
++            else
++            {
++                write_to_path = escape_colon_expr (CBQueryData->output_path,s,c);
+             }
+ 
+-            if(glyr_cache_write(c, write_to_path) == -1) {
+-                cprint(RED, 1, s, "Error: Writing data to <%s> failed.\n", write_to_path);
++            if (glyr_cache_write (c,write_to_path) == -1)
++            {
++                cprint (RED,1,s,"Error: Writing data to <%s> failed.\n",write_to_path);
+             }
+ 
+-            set_write_path(write_to_path);
++            set_write_path (write_to_path);
+ 
+             /* call a program if any specified */
+-            if(CBQueryData->exec_on_call != NULL) {
+-                char *command = escape_colon_expr(CBQueryData->exec_on_call, s, c);
++            if (CBQueryData->exec_on_call != NULL)
++            {
++                char * command = escape_colon_expr (CBQueryData->exec_on_call,s,c);
+ 
+                 /* Call that command */
+-                int exitVal = system(command);
+-                if(exitVal != EXIT_SUCCESS) {
+-                    cprint(YELLOW, 3, s, "Warning: cmd returned a value != EXIT_SUCCESS\n");
++                int exitVal = system (command);
++                if (exitVal != EXIT_SUCCESS)
++                {
++                    cprint (YELLOW,3,s,"Warning: cmd returned a value != EXIT_SUCCESS\n");
+                 }
+-                g_free(command);
++                g_free (command);
+             }
+         }
+     }
+ 
+     /* Text Represantation of this item */
+-    cprint(BLUE, 1, s, "\n///// ITEM #%d /////\n", get_item_counter());
+-    if(write_to_path != NULL) {
+-        cprint(DEFAULT, 1, s, "WRITE to '%s'\n", write_to_path);
++    cprint (BLUE,1,s,"\n///// ITEM #%d /////\n",get_item_counter() );
++    if (write_to_path != NULL)
++    {
++        cprint (DEFAULT,1,s,"WRITE to '%s'\n",write_to_path);
+         //g_free(write_to_path);
+     }
+ 
+-    if(s->verbosity > 0) {
+-        glyr_cache_print(c);
++    if (s->verbosity > 0)
++    {
++        glyr_cache_print (c);
+     }
+-    cprint(BLUE, 1, s, "\n////////////////////\n");
++    cprint (BLUE,1,s,"\n////////////////////\n");
+ 
+     return GLYRE_OK;
+ }
+@@ -653,25 +685,29 @@ static GLYR_ERROR callback(GlyrMemCache *c, GlyrQuery *s)
+ // --------------------------------------------------------- //
+ ////////////////////////////////////////////////////////////////
+ 
+-GLYR_GET_TYPE get_type_from_string(const char *string)
++GLYR_GET_TYPE get_type_from_string (const char * string)
+ {
+     GLYR_GET_TYPE result = GLYR_GET_UNKNOWN;
+-    if(g_ascii_strncasecmp(string, "none", 4) == 0) {
++    if (g_ascii_strncasecmp (string,"none",4) == 0)
+         return GLYR_GET_ANY;
+-    }
+ 
+-    GlyrFetcherInfo *info = glyr_info_get();
+-    if(info != NULL) {
+-        for(GlyrFetcherInfo *elem = info; elem; elem = elem->next) {
+-            if(g_ascii_strncasecmp(elem->name, string, strlen(elem->name)) == 0) {
++    GlyrFetcherInfo * info = glyr_info_get();
++    if (info != NULL)
++    {
++        for (GlyrFetcherInfo * elem = info; elem; elem = elem->next)
++        {
++            if (g_ascii_strncasecmp (elem->name,string,strlen (elem->name) ) == 0)
++            {
+                 result = elem->type;
+                 break;
+             }
+         }
+-    } else {
+-        cprint(DEFAULT, -1, NULL, "Warning: Can't get type information. Probably a bug.\n");
+     }
+-    glyr_info_free(info);
++    else
++    {
++        cprint (DEFAULT,-1,NULL,"Warning: Can't get type information. Probably a bug.\n");
++    }
++    glyr_info_free (info);
+     return result;
+ }
+ 
+@@ -679,71 +715,75 @@ GLYR_GET_TYPE get_type_from_string(const char *string)
+ // --------------------------------------------------------- //
+ ////////////////////////////////////////////////////////////////
+ 
+-static gint db_foreach_callback(GlyrQuery *q, GlyrMemCache *c, void *p)
++static gint db_foreach_callback (GlyrQuery * q, GlyrMemCache * c, void * p)
+ {
+-    puts("\n////////////////////////////////////\n");
+-    cprint(DEFAULT, -1, NULL, "%s :: %s :: %s :: %s\n", q->artist, q->album, q->title, glyr_get_type_to_string(q->type));
+-    glyr_cache_print(c);
++    puts ("\n////////////////////////////////////\n");
++    cprint (DEFAULT,-1,NULL,"%s :: %s :: %s :: %s\n",q->artist,q->album,q->title,glyr_get_type_to_string (q->type) );
++    glyr_cache_print (c);
+ 
+-    int *i = p;
++    int * i = p;
+     *i += 1;
+     return 0;
+ }
+ 
+ //////////////////////////////////////
+ 
+-static void do_iterate_over_db(GlyrDatabase *db)
++static void do_iterate_over_db (GlyrDatabase * db)
+ {
+     gint db_item_counter = 0;
+-    glyr_db_foreach(db, db_foreach_callback, &db_item_counter);
+-    cprint(DEFAULT, -1, NULL, "\n-----------------------------------\n");
+-    cprint(DEFAULT, -1, NULL, "=> In total %d items in database.", db_item_counter);
+-    cprint(DEFAULT, -1, NULL, "\n-----------------------------------\n");
+-    cprint(DEFAULT, -1, NULL, "\n");
++    glyr_db_foreach (db,db_foreach_callback,&db_item_counter);
++    cprint (DEFAULT,-1,NULL,"\n-----------------------------------\n");
++    cprint (DEFAULT,-1,NULL,"=> In total %d items in database.",db_item_counter);
++    cprint (DEFAULT,-1,NULL,"\n-----------------------------------\n");
++    cprint (DEFAULT,-1,NULL,"\n");
+ }
+ 
+ //////////////////////////////////////
+ 
+-static int do_cache_interface(const char *operation, GlyrQuery *q, GlyrDatabase *db, callback_data_t *cbdata)
++static int do_cache_interface (const char * operation, GlyrQuery * q, GlyrDatabase * db, callback_data_t * cbdata)
+ {
+     const char list_op[] = "list";
+     const char slct_op[] = "select";
+     const char dele_op[] = "delete";
+ 
+-    g_assert(q);
++    g_assert (q);
+ 
+-    if(db == NULL) {
+-        cvprint(RED, "No database specified. Use --cache.\n");
++    if (db == NULL)
++    {
++        cvprint (RED,"No database specified. Use --cache.\n");
+         return EXIT_FAILURE;
+     }
+ 
+     ////////////////////////////////
+ 
+-    if(g_ascii_strncasecmp(operation, list_op, sizeof(list_op) - 1) == 0) {
+-        do_iterate_over_db(db);
++    if (g_ascii_strncasecmp (operation,list_op,sizeof (list_op) - 1) == 0)
++    {
++        do_iterate_over_db (db);
+         return EXIT_SUCCESS;
+     }
+ 
+     ////////////////////////////////
+ 
+-    if(g_ascii_strncasecmp(operation, dele_op, sizeof(dele_op) - 1) == 0) {
+-        int killed_items = glyr_db_delete(db, q);
+-        cvprint(BLUE, "Deleted %d items from the db.", killed_items);
++    if (g_ascii_strncasecmp (operation,dele_op,sizeof (dele_op) - 1) == 0)
++    {
++        int killed_items = glyr_db_delete (db,q);
++        cvprint (BLUE,"Deleted %d items from the db.",killed_items);
+         return killed_items > 0;
+     }
+ 
+     ////////////////////////////////
+ 
+-    if(g_ascii_strncasecmp(operation, slct_op, sizeof(slct_op) - 1) == 0) {
+-        GlyrMemCache *list = glyr_db_lookup(db, q);
+-        GlyrMemCache *iter = list;
++    if (g_ascii_strncasecmp (operation,slct_op,sizeof (slct_op) - 1) == 0)
++    {
++        GlyrMemCache * list = glyr_db_lookup (db,q);
++        GlyrMemCache * iter = list;
+ 
+         if(iter == NULL)  {
+             return EXIT_FAILURE;
+         }
+ 
+         q->callback.user_pointer = cbdata;
+-        while(iter != NULL) {
++        while (iter != NULL) {
+             callback(iter, q);
+             iter = iter->next;
+         }
+@@ -757,31 +797,36 @@ static int do_cache_interface(const char *operation, GlyrQuery *q, GlyrDatabase
+ 
+ //////////////////////////////////////
+ 
+-static bool parse_type_argument(const char *argvi, GlyrQuery *qp)
++static bool parse_type_argument (const char * argvi, GlyrQuery * qp)
+ {
+     bool retv = false;
+ 
+-    g_assert(qp);
+-
+-    if(argvi != NULL) {
+-        GLYR_GET_TYPE type = get_type_from_string(argvi);
+-        if(type == GLYR_GET_UNKNOWN) {
+-            cvprint(RED, "Error: \"%s\" is not a know getter.\n", argvi);
+-            cvprint(DEFAULT, "Currently available are:\n");
+-            GlyrFetcherInfo *info = glyr_info_get();
+-            GlyrFetcherInfo *iter = info;
+-            while(iter != NULL) {
+-                cvprint(BLUE, "  * %s\n", iter->name);
++    g_assert (qp);
++
++    if (argvi != NULL)
++    {
++        GLYR_GET_TYPE type = get_type_from_string (argvi);
++        if (type == GLYR_GET_UNKNOWN)
++        {
++            cvprint (RED,"Error: \"%s\" is not a know getter.\n",argvi);
++            cvprint (DEFAULT,"Currently available are:\n");
++            GlyrFetcherInfo * info = glyr_info_get();
++            GlyrFetcherInfo * iter = info;
++            while (iter != NULL)
++            {
++                cvprint (BLUE,"  * %s\n",iter->name);
+                 iter = iter->next;
+             }
+-            glyr_info_free(info);
++            glyr_info_free (info);
+ 
+-            suggest_other_getter(qp, argvi);
+-            cvprint(DEFAULT, "\nSee `glyrc -L` for a detailed list\n");
++            suggest_other_getter (qp,argvi);
++            cvprint (DEFAULT,"\nSee `glyrc -L` for a detailed list\n");
+             retv = false;
+ 
+-        } else {
+-            glyr_opt_type(qp, type);
++        }
++        else
++        {
++            glyr_opt_type (qp,type);
+             retv = true;
+         }
+     }
+@@ -791,21 +836,21 @@ static bool parse_type_argument(const char *argvi, GlyrQuery *qp)
+ 
+ //////////////////////////////////////
+ 
+-static GlyrMemCache *concatenate_list(GlyrMemCache *list)
++static GlyrMemCache * concatenate_list (GlyrMemCache * list)
+ {
+-    if(list == NULL) {
++    if (list == NULL)
+         return NULL;
+-    }
+ 
+-    GlyrMemCache *iter = list;
+-    GlyrMemCache *retv = glyr_cache_copy(list);
+-    gchar *concat_data = g_strdup("");
++    GlyrMemCache * iter = list;
++    GlyrMemCache * retv = glyr_cache_copy (list);
++    gchar * concat_data = g_strdup ("");
+ 
+     retv->duration = 0;
+ 
+-    while(iter != NULL) {
+-        gchar *tmp = g_strdup_printf("%s%s\n", concat_data, iter->data);
+-        g_free(concat_data);
++    while (iter != NULL)
++    {
++        gchar * tmp = g_strdup_printf ("%s%s\n",concat_data,iter->data);
++        g_free (concat_data);
+         concat_data = tmp;
+         retv->duration += iter->duration;
+         iter = iter->next;
+@@ -814,30 +859,30 @@ static GlyrMemCache *concatenate_list(GlyrMemCache *list)
+     retv->next = NULL;
+     retv->prev = NULL;
+ 
+-    glyr_cache_set_data(retv, concat_data, -1);
+-    glyr_free_list(list);
++    glyr_cache_set_data (retv,concat_data,-1);
++    glyr_free_list (list);
+     return retv;
+ }
+ 
+ //////////////////////////////////////
+ 
+-static void global_cleanup(void)
++static void global_cleanup (void)
+ {
+-    set_write_path(NULL);
++    set_write_path (NULL);
+ }
+ 
+ //////////////////////////////////////
+ 
+-int main(int argc, char *argv[])
++int main (int argc, char * argv[])
+ {
+-    /* Set the loghandler (used by cprint(DEFAULT, ) */
+-    g_log_set_handler(LOG_DOMAIN ,
+-                      G_LOG_LEVEL_MASK |
+-                      G_LOG_FLAG_FATAL |
+-                      G_LOG_FLAG_RECURSION,
+-                      log_func, NULL);
+-
+-    atexit(global_cleanup);
++    /* Set the loghandler (used by cprint(DEFAULT,)) */
++    g_log_set_handler (LOG_DOMAIN ,
++                       G_LOG_LEVEL_MASK |
++                       G_LOG_FLAG_FATAL |
++                       G_LOG_FLAG_RECURSION,
++                       log_func, NULL);
++
++    atexit (global_cleanup);
+     init_signals();
+ 
+     /* Assume failure, as always in life */
+@@ -848,87 +893,112 @@ int main(int argc, char *argv[])
+      * Both functions are not threadsafe!
+      * */
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+-    if(argc >= 2 && argv[1][0] != '-' && strcmp(argv[1], "cache") != 0) {
++    if (argc >= 2 && argv[1][0] != '-' && strcmp (argv[1],"cache") != 0)
++    {
+         callback_data_t CBQueryData = INIT_CALLBACK_DATA;
+-        GlyrDatabase *db = NULL;
++        GlyrDatabase * db = NULL;
+         GlyrQuery my_query;
+ 
+-        glyr_query_init(&my_query);
+-        glyr_opt_verbosity(&my_query, 2);
++        glyr_query_init (&my_query);
++        glyr_opt_verbosity (&my_query,2);
+ 
+-        init_cancel_handler(&my_query);
++        init_cancel_handler (&my_query);
+ 
+-        if(parse_type_argument(argv[1], &my_query)) {
++        if (parse_type_argument (argv[1],&my_query) )
++        {
+             int length = -1;
+             GLYR_ERROR get_error = GLYRE_OK;
+ 
+-            parse_commandline_general(argc - 1, argv + 1, &my_query, &CBQueryData, &db);
+-            SET_IF_NULL(CBQueryData.output_path, ".");
++            parse_commandline_general (argc-1, argv+1, &my_query,&CBQueryData,&db);
++            SET_IF_NULL (CBQueryData.output_path,".");
+ 
+-            if(CBQueryData.as_one == false || glyr_type_is_image(my_query.type)) {
+-                glyr_opt_dlcallback(&my_query, callback, &CBQueryData);
++            if (CBQueryData.as_one == false || glyr_type_is_image (my_query.type) )
++            {
++                glyr_opt_dlcallback (&my_query, callback, &CBQueryData);
+             }
+ 
+             /* Doing the 'hard' work here. */
+-            GlyrMemCache *my_list = glyr_get(&my_query, &get_error, &length);
++            GlyrMemCache * my_list = glyr_get (&my_query, &get_error, &length);
+ 
+-            if(my_list != NULL) {
++            if (my_list != NULL)
++            {
+                 exit_code = EXIT_SUCCESS;
+ 
+-                if(CBQueryData.as_one && glyr_type_is_image(my_query.type) == false) {
+-                    GlyrMemCache *concat = concatenate_list(my_list);
+-                    glyr_opt_dlcallback(&my_query, callback, &CBQueryData);
+-                    callback(concat, &my_query);
++                if (CBQueryData.as_one && glyr_type_is_image (my_query.type) == false)
++                {
++                    GlyrMemCache * concat = concatenate_list (my_list);
++                    glyr_opt_dlcallback (&my_query, callback, &CBQueryData);
++                    callback (concat,&my_query);
+ 
+-                    glyr_cache_free(concat);
+-                } else {
++                    glyr_cache_free (concat);
++                }
++                else
++                {
+                     /* Free all downloaded buffers */
+-                    glyr_free_list(my_list);
+-                    cprint(YELLOW, 2, &my_query, "# => %d item%s in total.\n", length, length == 1 ? "" : "s");
++                    glyr_free_list (my_list);
++                    cprint (YELLOW,2,&my_query,"# => %d item%s in total.\n",length,length == 1 ? "" : "s");
+                 }
+-            } else if(get_error == GLYRE_NO_PROVIDER) {
+-                cvprint(RED, "Error `--from %s` does not contain any valid provider.\n", my_query.from);
+-                cvprint(RED, "      See `glyrc -L` for a list.\n");
+-                suggest_other_provider(&my_query, my_query.from);
+-            } else if(get_error != GLYRE_OK) {
+-                cprint(RED, 1, &my_query, "Error: %s\n", glyr_strerror(get_error));
++            }
++            else if (get_error == GLYRE_NO_PROVIDER)
++            {
++                cvprint (RED,"Error `--from %s` does not contain any valid provider.\n",my_query.from);
++                cvprint (RED,"      See `glyrc -L` for a list.\n");
++                suggest_other_provider (&my_query,my_query.from);
++            }
++            else if (get_error != GLYRE_OK)
++            {
++                cprint (RED,1,&my_query,"Error: %s\n",glyr_strerror (get_error) );
+             }
+         }
+ 
+-        glyr_db_destroy(db);
+-        glyr_query_destroy(&my_query);
+-    } else if(argc >= 2 && strcmp(argv[1], "cache") == 0) {
+-        if(argc >= 3) {
++        glyr_db_destroy (db);
++        glyr_query_destroy ( &my_query);
++    }
++    else if (argc >= 2 && strcmp (argv[1],"cache") == 0)
++    {
++        if (argc >= 3)
++        {
+             GlyrQuery db_query;
+-            GlyrDatabase *db = NULL;
++            GlyrDatabase * db = NULL;
+             callback_data_t CBQueryData = INIT_CALLBACK_DATA;
+-            SET_IF_NULL(CBQueryData.output_path, ".");
++            SET_IF_NULL (CBQueryData.output_path,".");
+ 
+-            glyr_query_init(&db_query);
+-            glyr_opt_verbosity(&db_query, 2);
++            glyr_query_init (&db_query);
++            glyr_opt_verbosity (&db_query,2);
+ 
+-            if(argc >= 4 && strcmp("list", argv[2]) != 0) {
+-                parse_type_argument(argv[3], &db_query);
++            if (argc >= 4 && strcmp("list", argv[2]) != 0)
++            {
++                parse_type_argument (argv[3],&db_query);
+             }
+ 
+-            parse_commandline_general(argc - 2, argv + 2, &db_query, &CBQueryData, &db);
+-            do_cache_interface(argv[2], &db_query, db, &CBQueryData);
+-        } else {
+-            cvprint(RED, "Error: 'cache': needs another argument:\n");
+-            cvprint(RED, "  * select [opts]\n");
+-            cvprint(RED, "  * delete [opts]\n");
+-            cvprint(RED, "  * list\n");
++            parse_commandline_general (argc-2, argv+2,&db_query,&CBQueryData,&db);
++            do_cache_interface (argv[2],&db_query,db, &CBQueryData);
++        }
++        else
++        {
++            cvprint (RED,"Error: 'cache': needs another argument:\n");
++            cvprint (RED,"  * select [opts]\n");
++            cvprint (RED,"  * delete [opts]\n");
++            cvprint (RED,"  * list\n");
+         }
+-    } else if(argc >= 2 && (!strcmp(argv[1], "-U") || !strcmp(argv[1], "--update"))) {
++    }
++    else if (argc >= 2 && (!strcmp (argv[1],"-U") || !strcmp (argv[1],"--update") ) )
++    {
+         update();
+-    } else if(argc >= 2 && (!strcmp(argv[1], "-V") || !strcmp(argv[1], "--version"))) {
+-        print_version(NULL);
+-    } else if(argc >= 2 && (!strcmp(argv[1], "-L") || !strcmp(argv[1], "--list"))) {
++    }
++    else if (argc >= 2 && (!strcmp (argv[1],"-V") || !strcmp (argv[1],"--version") ) )
++    {
++        print_version (NULL);
++    }
++    else if (argc >= 2 && (!strcmp (argv[1],"-L") || !strcmp (argv[1],"--list") ) )
++    {
+         visualize_from_options();
+-    } else {
+-        help_short(NULL);
++    }
++    else
++    {
++        help_short (NULL);
+     }
+ 
+     return exit_code;
+diff --git a/src/glyrc/update.c b/src/glyrc/update.c
+index 2651638..e8f2bb7 100644
+--- a/src/glyrc/update.c
++++ b/src/glyrc/update.c
+@@ -30,23 +30,26 @@
+ 
+ /////////////////////////////////
+ 
+-static gboolean check_version(gboolean *errord)
++static gboolean check_version (gboolean * errord)
+ {
+     gboolean result = FALSE;
+     GlyrQuery q;
+-    glyr_query_init(&q);
+-    glyr_opt_verbosity(&q, 3);
++    glyr_query_init (&q);
++    glyr_opt_verbosity (&q,3);
+ 
+-    GlyrMemCache *version_page = glyr_download(GLYR_VERSION_URL, &q);
+-    if(version_page != NULL && version_page->data != NULL) {
+-        glong version = strtol(version_page->data, NULL, 10);
++    GlyrMemCache * version_page = glyr_download (GLYR_VERSION_URL,&q);
++    if (version_page != NULL && version_page->data != NULL)
++    {
++        glong version = strtol (version_page->data,NULL,10);
+         glong current = GLYR_VERSION_MAJOR_INT * 100 + GLYR_VERSION_MINOR_INT * 10 + GLYR_VERSION_MICRO_INT;
+         result = (version > current);
+-    } else {
++    }
++    else
++    {
+         *errord = TRUE;
+     }
+ 
+-    glyr_query_destroy(&q);
++    glyr_query_destroy (&q);
+     return result;
+ }
+ 
+@@ -78,18 +81,24 @@ static gboolean check_version(gboolean *errord)
+ /********************************************************************/
+ 
+ 
+-void update(void)
++void update (void)
+ {
+     gboolean error = FALSE;
+-    if(check_version(&error)) {
+-        g_printerr("Updating:\n");
+-        if(system(UPDATE_SCRIPT) == -1) {
+-            g_printerr("Warning: the script returned a bad exitstatus.\n");
++    if (check_version (&error) )
++    {
++        g_printerr ("Updating:\n");
++        if (system (UPDATE_SCRIPT) == -1)
++        {
++            g_printerr ("Warning: the script returned a bad exitstatus.\n");
+         }
+-    } else if(error) {
+-        g_printerr("Error while updating.\n");
+-    } else {
+-        g_printerr("No updates found.\n");
++    }
++    else if (error)
++    {
++        g_printerr ("Error while updating.\n");
++    }
++    else
++    {
++        g_printerr ("No updates found.\n");
+     }
+ }
+ 
+diff --git a/src/utils/clean_db.c b/src/utils/clean_db.c
+index 5e6a260..45485d2 100644
+--- a/src/utils/clean_db.c
++++ b/src/utils/clean_db.c
+@@ -6,47 +6,56 @@
+ 
+ static bool do_delete = false;
+ 
+-static int foreach_callback(GlyrQuery *q, GlyrMemCache *item, void *userptr)
++static int foreach_callback (GlyrQuery *q, GlyrMemCache *item, void *userptr)
+ {
+-    GlyrDatabase *db = (GlyrDatabase *) userptr;
++    GlyrDatabase * db = (GlyrDatabase*) userptr;
+ 
+-    g_assert(item);
+-    g_assert(db);
++    g_assert (item);
++    g_assert (db);
+ 
+-    if(item->rating == -1) {
+-        g_printerr("----------------\n");
+-        glyr_cache_print(item);
++    if (item->rating == -1)
++    {
++        g_printerr ("----------------\n");
++        glyr_cache_print (item);
+ 
+-        if(do_delete) {
+-            glyr_db_delete(db, q);
++        if (do_delete)
++        {
++            glyr_db_delete (db,q);
+         }
+     }
+ 
+     return 0;
+ }
+ 
+-int main(int argc, char const *argv[])
++int main (int argc, char const *argv[])
+ {
+ 
+     glyr_init();
+-    atexit(glyr_cleanup);
++    atexit (glyr_cleanup);
+ 
+-    if(argc > 1) {
++    if (argc > 1)
++    {
+ 
+-        GlyrDatabase *db = glyr_db_init(argv[1]);
+-        if(db != NULL) {
++        GlyrDatabase * db = glyr_db_init (argv[1]);
++        if (db != NULL)
++        {
+ 
+-            if(argv[2] != NULL && strcmp(argv[2], "delete") == 0) {
++            if (argv[2] != NULL && strcmp (argv[2],"delete") == 0)
++            {
+                 do_delete = true;
+             }
+ 
+-            glyr_db_foreach(db, foreach_callback, db);
+-        } else {
+-            g_message("Could not open DB at %s", argv[1]);
++            glyr_db_foreach (db,foreach_callback,db);
+         }
+-    } else {
++        else
++        {
++            g_message ("Could not open DB at %s",argv[1]);
++        }
++    }
++    else
++    {
+ 
+-        g_message("Usage: %s /path/to/db/directory [delete]", argv[0]);
++        g_message ("Usage: %s /path/to/db/directory [delete]",argv[0]);
+     }
+     return EXIT_SUCCESS;
+ }
+diff --git a/src/utils/guess_lang.c b/src/utils/guess_lang.c
+index 06dabf2..2fe72a5 100644
+--- a/src/utils/guess_lang.c
++++ b/src/utils/guess_lang.c
+@@ -23,73 +23,82 @@
+ #include <glib.h>
+ #include <string.h>
+ 
+-const gchar *map_language[][2] = {
+-    {"en_US", "us"},
+-    {"en_CA", "ca"},
+-    {"en_UK", "uk"}
++const gchar * map_language[][2] =
++{
++    {"en_US","us"},
++    {"en_CA","ca"},
++    {"en_UK","uk"}
+ };
+ 
+-#define END_STRING(STR, HAR) {gchar * term = strchr(STR, HAR); if(term) *term = 0;}
++#define END_STRING(STR,CHAR) {gchar * term = strchr(STR,CHAR); if(term) *term = 0;}
+ 
+ /**
+ * @brief Guesses the users language (in ISO639-1 codes like 'de') by the system locale
+ *
+ * @return a newly allocated language code. Free.
+ */
+-gchar *guess_lang(void)
++gchar * guess_lang (void)
+ {
+     /* Default to 'en' in any case */
+-    gchar *result_lang = g_strdup("en");
++    gchar * result_lang = g_strdup ("en");
+ 
+-#if GLIB_CHECK_VERSION(2, 8, )
++#if GLIB_CHECK_VERSION(2,28,0)
+     gboolean break_out = FALSE;
+ 
+     /* Please never ever free this */
+-    const gchar *const *languages = g_get_language_names();
++    const gchar * const * languages = g_get_language_names();
+ 
+-    for(gint i = 0; languages[i] && break_out == FALSE; i++) {
+-        gchar **variants = g_get_locale_variants(languages[i]);
+-        for(gint j = 0; variants[j] && !break_out; j++) {
++    for (gint i = 0; languages[i] && break_out == FALSE; i++)
++    {
++        gchar ** variants = g_get_locale_variants (languages[i]);
++        for (gint j = 0; variants[j] && !break_out; j++)
++        {
+             /* Look up if we need to map a language */
+-            gchar *to_investigate = variants[j];
+-            gint map_size = (sizeof(map_language) / (2 * sizeof(char *)));
+-            for(gint map = 0; map < map_size; map++) {
+-                const gchar *to_map = map_language[map][0];
+-                gsize map_len  = strlen(to_map);
+-                if(g_ascii_strncasecmp(to_map, to_investigate, map_len) == 0) {
+-                    to_investigate = (gchar *) map_language[map][1];
+-                    g_print("Mapping language to %s\n", to_investigate);
++            gchar * to_investigate = variants[j];
++            gint map_size = (sizeof (map_language) / (2 * sizeof (char*) ) );
++            for (gint map = 0; map < map_size; map++)
++            {
++                const gchar * to_map = map_language[map][0];
++                gsize map_len  = strlen (to_map);
++                if (g_ascii_strncasecmp (to_map,to_investigate,map_len) == 0)
++                {
++                    to_investigate = (gchar*) map_language[map][1];
++                    g_print ("Mapping language to %s\n",to_investigate);
+                     break;
+                 }
+             }
+ 
+             gboolean allowed_lang = TRUE;
+ 
+-            if(allowed_lang &&
+-                    g_ascii_strncasecmp("en", to_investigate, 2) != 0 &&
+-                    g_ascii_strncasecmp("C", to_investigate, 1) != 0 &&
+-                    !strchr(to_investigate, '@') && !strchr(to_investigate, '.')) {
+-                g_free(result_lang);
+-                result_lang = g_strdup(to_investigate);
++            if (allowed_lang &&
++                    g_ascii_strncasecmp ("en",to_investigate,2) != 0 &&
++                    g_ascii_strncasecmp ("C", to_investigate,1) != 0 &&
++                    !strchr (to_investigate,'@') && !strchr (to_investigate,'.') )
++            {
++                g_free (result_lang);
++                result_lang = g_strdup (to_investigate);
+                 break_out = TRUE;
+             }
+         }
+-        g_strfreev(variants);
++        g_strfreev (variants);
+     }
+ 
+-#elif GLIB_CHECK_VERSION(2, 6, )
++#elif GLIB_CHECK_VERSION(2,26,0)
+ 
+     /* Fallback to simpler version of the above,
+          * g_get_locale_variants is not there in this version
+          */
+-    const gchar *const *possible_locales = g_get_language_names();
+-    if(possible_locales != NULL) {
++    const gchar * const * possible_locales = g_get_language_names();
++    if (possible_locales != NULL)
++    {
+         /* might be a bit weird */
+-        for(gint i = 0; possible_locales[i]; i++) {
+-            if(g_ascii_strncasecmp("en", possible_locales[i], 2) != 0 &&
+-                    g_ascii_strncasecmp("C", possible_locales[i], 1) != 0) {
+-                g_free(result_lang);
+-                result_lang = g_strdup(possible_locales[i]);
++        for (gint i = 0; possible_locales[i]; i++)
++        {
++            if (g_ascii_strncasecmp ("en",possible_locales[i],2) != 0 &&
++                    g_ascii_strncasecmp ("C", possible_locales[i],1) != 0)
++            {
++                g_free (result_lang);
++                result_lang = g_strdup (possible_locales[i]);
+                 break;
+             }
+         }
+@@ -99,13 +108,13 @@ gchar *guess_lang(void)
+      * Fallback to "en" always.
+      * Gaaah... shame on you if this happens to you ;-)
+      */
+-    puts("GLib version 2.28 is needed to execute this properly.");
++    puts ("GLib version 2.28 is needed to execute this properly.");
+ #endif
+ 
+     /* Properly terminate string */
+-    END_STRING(result_lang, '_');
+-    END_STRING(result_lang, '@');
+-    END_STRING(result_lang, '.');
++    END_STRING (result_lang,'_');
++    END_STRING (result_lang,'@');
++    END_STRING (result_lang,'.');
+ 
+     /* We don't need it anymore */
+ #undef END_STRING
+@@ -113,12 +122,13 @@ gchar *guess_lang(void)
+     return result_lang;
+ }
+ 
+-int main(int argc, const char *argv[])
++int main (int argc, const char *argv[])
+ {
+-    gchar *lang = guess_lang();
+-    if(lang != NULL) {
+-        puts(lang);
+-        g_free(lang);
++    gchar * lang = guess_lang();
++    if (lang != NULL)
++    {
++        puts (lang);
++        g_free (lang);
+     }
+     return 0;
+ }
+diff --git a/src/utils/ping_url.c b/src/utils/ping_url.c
+index 088deff..52f6e3c 100644
+--- a/src/utils/ping_url.c
++++ b/src/utils/ping_url.c
+@@ -28,58 +28,68 @@
+ 
+ /* Simple testprogram to check the content-type header of any website given on the cmd. */
+ 
+-struct header_data {
+-    gchar *type;
+-    gchar *format;
+-    gchar *extra;
++struct header_data
++{
++    gchar * type;
++    gchar * format;
++    gchar * extra;
+ };
+ 
+ /* Parse header file. Get Contenttype from it and save it in the header_data struct */
+-gsize header_cb(void *ptr, gsize size, gsize nmemb, void *userdata)
++gsize header_cb (void *ptr, gsize size, gsize nmemb, void *userdata)
+ {
+     gsize bytes = size * nmemb;
+-    if(ptr != NULL && userdata != NULL) {
++    if (ptr != NULL && userdata != NULL)
++    {
+         /* Transform safely into string */
+         gchar nulbuf[bytes + 1];
+-        memcpy(nulbuf, ptr, bytes);
++        memcpy (nulbuf,ptr,bytes);
+         nulbuf[bytes] = '\0';
+ 
+         /* We're only interested in the content type */
+-        gchar *cttp  = "Content-Type: ";
+-        gsize ctt_len = strlen(cttp);
+-        if(ctt_len < bytes && g_ascii_strncasecmp(cttp, nulbuf, ctt_len) == 0) {
+-            gchar **content_type = g_strsplit_set(nulbuf + ctt_len, " /;", 0);
+-            if(content_type != NULL) {
++        gchar * cttp  = "Content-Type: ";
++        gsize ctt_len = strlen (cttp);
++        if (ctt_len < bytes && g_ascii_strncasecmp (cttp,nulbuf,ctt_len) == 0)
++        {
++            gchar ** content_type = g_strsplit_set (nulbuf + ctt_len," /;",0);
++            if (content_type != NULL)
++            {
+                 gsize set_at = 0;
+-                gchar **elem = content_type;
+-                struct header_data *info = userdata;
++                gchar ** elem = content_type;
++                struct header_data * info = userdata;
+ 
+                 /* Set fields..  */
+-                while(elem[0] != NULL) {
+-                    if(elem[0][0] != '\0') {
+-                        switch(set_at) {
++                while (elem[0] != NULL)
++                {
++                    if (elem[0][0] != '\0')
++                    {
++                        switch (set_at)
++                        {
+                         case 0:
+-                            g_free(info->type);
+-                            info->type   = g_strdup(elem[0]);
++                            g_free (info->type);
++                            info->type   = g_strdup (elem[0]);
+                             break;
+                         case 1:
+-                            g_free(info->format);
+-                            if(g_ascii_strncasecmp(elem[0], "octet-stream", 12) == 0) {
+-                                info->format = g_strdup("jpeg");
+-                            } else {
+-                                info->format = g_strdup(elem[0]);
++                            g_free (info->format);
++                            if (g_ascii_strncasecmp (elem[0],"octet-stream",12) == 0)
++                            {
++                                info->format = g_strdup ("jpeg");
++                            }
++                            else
++                            {
++                                info->format = g_strdup (elem[0]);
+                             }
+                             break;
+                         case 2:
+-                            g_free(info->extra);
+-                            info->extra  = g_strdup(elem[0]);
++                            g_free (info->extra);
++                            info->extra  = g_strdup (elem[0]);
+                             break;
+                         }
+                         set_at++;
+                     }
+                     elem++;
+                 }
+-                g_strfreev(content_type);
++                g_strfreev (content_type);
+             }
+         }
+     }
+@@ -87,18 +97,21 @@ gsize header_cb(void *ptr, gsize size, gsize nmemb, void *userdata)
+ }
+ 
+ /* just prevent writing header to stdout */
+-gsize empty_cb(void *p, gsize s, gsize n, void *u)
++gsize empty_cb (void * p, gsize s, gsize n, void * u)
+ {
+-    return s * n;
++    return s*n;
+ };
+ 
+ 
+-void chomp_breakline(gchar *string)
++void chomp_breakline (gchar * string)
+ {
+-    if(string != NULL) {
+-        gsize len = strlen(string);
+-        while(--len != 0) {
+-            if(string[len] == '\n') {
++    if (string != NULL)
++    {
++        gsize len = strlen (string);
++        while (--len != 0)
++        {
++            if (string[len] == '\n')
++            {
+                 string[len] = '\0';
+                 break;
+             }
+@@ -106,61 +119,69 @@ void chomp_breakline(gchar *string)
+     }
+ }
+ 
+-static struct header_data *url_is_gettable(gchar *url)
++static struct header_data * url_is_gettable (gchar * url)
+ {
+-    struct header_data *info = NULL;
+-    if(url != NULL) {
+-        CURL *eh = curl_easy_init();
++    struct header_data * info = NULL;
++    if (url != NULL)
++    {
++        CURL * eh = curl_easy_init();
+         CURLcode rc = CURLE_OK;
+ 
+-        info = g_malloc0(sizeof(struct header_data));
++        info = g_malloc0 (sizeof (struct header_data) );
+ 
+-        curl_easy_setopt(eh, CURLOPT_TIMEOUT, 3);
+-        curl_easy_setopt(eh, CURLOPT_NOSIGNAL, 1L);
+-        curl_easy_setopt(eh, CURLOPT_USERAGENT, GLYR_DEFAULT_USERAGENT"/linkvalidator");
+-        curl_easy_setopt(eh, CURLOPT_URL, url);
+-        curl_easy_setopt(eh, CURLOPT_FOLLOWLOCATION, TRUE);
+-        curl_easy_setopt(eh, CURLOPT_HEADER, TRUE);
+-        curl_easy_setopt(eh, CURLOPT_NOBODY, TRUE);
+-        curl_easy_setopt(eh, CURLOPT_HEADERFUNCTION, header_cb);
+-        curl_easy_setopt(eh, CURLOPT_WRITEFUNCTION, empty_cb);
+-        curl_easy_setopt(eh, CURLOPT_WRITEHEADER, info);
++        curl_easy_setopt (eh, CURLOPT_TIMEOUT, 3);
++        curl_easy_setopt (eh, CURLOPT_NOSIGNAL, 1L);
++        curl_easy_setopt (eh, CURLOPT_USERAGENT, GLYR_DEFAULT_USERAGENT"/linkvalidator");
++        curl_easy_setopt (eh, CURLOPT_URL,url);
++        curl_easy_setopt (eh, CURLOPT_FOLLOWLOCATION, TRUE);
++        curl_easy_setopt (eh, CURLOPT_HEADER,TRUE);
++        curl_easy_setopt (eh, CURLOPT_NOBODY,TRUE);
++        curl_easy_setopt (eh, CURLOPT_HEADERFUNCTION, header_cb);
++        curl_easy_setopt (eh, CURLOPT_WRITEFUNCTION, empty_cb);
++        curl_easy_setopt (eh, CURLOPT_WRITEHEADER, info);
+ 
+-        curl_easy_setopt(eh, CURLOPT_VERBOSE, TRUE);
++        curl_easy_setopt (eh, CURLOPT_VERBOSE,TRUE);
+ 
+-        rc = curl_easy_perform(eh);
+-        curl_easy_cleanup(eh);
++        rc = curl_easy_perform (eh);
++        curl_easy_cleanup (eh);
+ 
+-        if(rc != CURLE_OK) {
+-            g_printerr("glyr: ping: E: %s [%d]\n", curl_easy_strerror(rc), rc);
+-            g_free(info);
++        if (rc != CURLE_OK)
++        {
++            g_printerr ("glyr: ping: E: %s [%d]\n",curl_easy_strerror (rc),rc);
++            g_free (info);
+             info = NULL;
+ 
+-        } else {
+-            chomp_breakline(info->type);
+-            chomp_breakline(info->format);
+-            chomp_breakline(info->extra);
++        }
++        else
++        {
++            chomp_breakline (info->type);
++            chomp_breakline (info->format);
++            chomp_breakline (info->extra);
+         }
+     }
+     return info;
+ }
+ 
+-int main(int argc, char *argv[])
++int main (int argc, char * argv[])
+ {
+-    curl_global_init(CURL_GLOBAL_ALL);
+-    if(argc > 1) {
+-        struct header_data *info;
+-        if((info = url_is_gettable(argv[1])) != NULL) {
+-            g_print("Type  :  %s\n", info->type);
+-            g_print("Format:  %s\n", info->format);
+-            g_print("Extra :  %s\n", info->extra);
+-
+-            g_free(info->type);
+-            g_free(info->format);
+-            g_free(info->extra);
+-            g_free(info);
+-        } else {
+-            g_print("Unexists.\n");
++    curl_global_init (CURL_GLOBAL_ALL);
++    if (argc > 1)
++    {
++        struct header_data * info;
++        if ( (info = url_is_gettable (argv[1]) ) != NULL)
++        {
++            g_print ("Type  :  %s\n",info->type);
++            g_print ("Format:  %s\n",info->format);
++            g_print ("Extra :  %s\n",info->extra);
++
++            g_free (info->type);
++            g_free (info->format);
++            g_free (info->extra);
++            g_free (info);
++        }
++        else
++        {
++            g_print ("Unexists.\n");
+         }
+     }
+     curl_global_cleanup();

-- 
glyr packaging



More information about the pkg-multimedia-commits mailing list