--- libcddb-1.3.2/include/cddb/cddb_conn.h.orig	2013-04-07 03:11:45 +0400
+++ libcddb-1.3.2/include/cddb/cddb_conn.h	2013-04-07 03:33:25 +0400
@@ -60,12 +60,12 @@
  * more of the constants below.
  */
 typedef enum {
-    SEARCH_NONE = 0,            /**< no fields */
-    SEARCH_ARTIST = 1,          /**< artist name field */
-    SEARCH_TITLE = 2,           /**< disc title field */
-    SEARCH_TRACK = 4,           /**< track title field */
-    SEARCH_OTHER = 8,           /**< other fields */
-    SEARCH_ALL = ~0,            /**< all fields */
+    CDDB_SEARCH_NONE = 0,            /**< no fields */
+    CDDB_SEARCH_ARTIST = 1,          /**< artist name field */
+    CDDB_SEARCH_TITLE = 2,           /**< disc title field */
+    CDDB_SEARCH_TRACK = 4,           /**< track title field */
+    CDDB_SEARCH_OTHER = 8,           /**< other fields */
+    CDDB_SEARCH_ALL = ~0,            /**< all fields */
 } cddb_search_t;
 
 /**
@@ -539,14 +539,14 @@
  * Set the bit-string specifying which categories to examine when
  * performing a text search.  The #SEARCHCAT macro needs to be used to
  * build the actual bit-string from individual categories.  The
- * #cddb_search_t values #SEARCH_NONE and #SEARCH_ALL are also valid.
+ * #cddb_search_t values #CDDB_SEARCH_NONE and #CDDB_SEARCH_ALL are also valid.
  * The example below shows some possible combinations.  By default all
  * categories are searched.
  *
  * @code
  * unsigned int cats = SEARCHCAT(CDDB_CAT_ROCK) | SEARCHCAT(CDDB_CAT_MISC);
- * unsigned int cats = SEARCH_ALL;
- * unsigned int cats = SEARCH_NONE;
+ * unsigned int cats = CDDB_SEARCH_ALL;
+ * unsigned int cats = CDDB_SEARCH_NONE;
  * @endcode
  *
  * @param c The connection structure.
--- libcddb-1.3.2/lib/cddb_conn.c.orig	2013-04-07 03:11:45 +0400
+++ libcddb-1.3.2/lib/cddb_conn.c	2013-04-07 03:34:09 +0400
@@ -118,8 +118,8 @@
         c->charset->cd_to_freedb = NULL;
         c->charset->cd_from_freedb = NULL;
 
-        c->srch.fields = SEARCH_ARTIST | SEARCH_TITLE;
-        c->srch.cats = SEARCH_ALL;
+        c->srch.fields = CDDB_SEARCH_ARTIST | CDDB_SEARCH_TITLE;
+        c->srch.cats = CDDB_SEARCH_ALL;
     } else {
         cddb_log_crit(cddb_error_str(CDDB_ERR_OUT_OF_MEMORY));
     }
--- libcddb-1.3.2/lib/cddb_cmd.c.orig	2013-04-07 03:11:45 +0400
+++ libcddb-1.3.2/lib/cddb_cmd.c	2013-04-07 03:34:04 +0400
@@ -1256,25 +1256,25 @@
 
     /* XXX: to buffer overflow checking */
     strcpy(p, "&allfields="); p += 11;
-    if (params->fields == SEARCH_ALL) {
+    if (params->fields == CDDB_SEARCH_ALL) {
         strcpy(p, "YES"); p += 3;
     } else {
         strcpy(p, "NO"); p += 2;
-        if (params->fields & SEARCH_ARTIST) {
+        if (params->fields & CDDB_SEARCH_ARTIST) {
             strcpy(p, "&fields=artist"); p += 14;
         }
-        if (params->fields & SEARCH_TITLE) {
+        if (params->fields & CDDB_SEARCH_TITLE) {
             strcpy(p, "&fields=title"); p += 13;
         }
-        if (params->fields & SEARCH_TRACK) {
+        if (params->fields & CDDB_SEARCH_TRACK) {
             strcpy(p, "&fields=track"); p += 13;
         }
-        if (params->fields & SEARCH_OTHER) {
+        if (params->fields & CDDB_SEARCH_OTHER) {
             strcpy(p, "&fields=rest"); p += 12;
         }
     }
     strcpy(p, "&allcats="); p += 9;
-    if (params->cats == SEARCH_ALL) {
+    if (params->cats == CDDB_SEARCH_ALL) {
         strcpy(p, "YES"); p += 3;
     } else {
         strcpy(p, "NO"); p += 2;
