+
+#define FADE_ERRORS \
+ PARA_ERROR(FADE_SYNTAX, "fade syntax error"), \
+
+
+#define CLIENT_ERRORS \
+ PARA_ERROR(TASK_STARTED, "task started"), \
+
+
+#define AFH_ERRORS \
+ PARA_ERROR(AFH_SYNTAX, "afh syntax error"), \
+ PARA_ERROR(AFH_SHORT_WRITE, "afh short write"), \
+
+
+#define AFH_COMMON_ERRORS \
+ PARA_ERROR(AUDIO_FORMAT, "audio format not recognized"), \
+
+
+#define ACL_ERRORS \
+ PARA_ERROR(ACL_PERM, "access denied by acl"), \
+
+
+#define FSCK_ERRORS \
+ PARA_ERROR(FSCK_SYNTAX, "fsck syntax error"), \
+ PARA_ERROR(RANGE_VIOLATION, "range violation detected, very bad"), \
+ PARA_ERROR(NOT_A_REGULAR_FILE, "not a regular file"), \
+
+
+#define OSL_ERRORS \
+ PARA_ERROR(BAD_DB_DIR, "invalid database directory"), \
+ PARA_ERROR(NO_COLUMN_DESC, "missing column description"), \
+ PARA_ERROR(BAD_NAME, "invalid name for a column/table"), \
+ PARA_ERROR(BAD_STORAGE_TYPE, "invalid storage type"), \
+ PARA_ERROR(BAD_STORAGE_FLAGS, "invalid storage flags"), \
+ PARA_ERROR(NO_COLUMN_NAME, "missing column name"), \
+ PARA_ERROR(NO_COLUMNS, "at least one column required"), \
+ PARA_ERROR(BAD_COLUMN_NAME, "invalid name for a table column"), \
+ PARA_ERROR(NO_UNIQUE_RBTREE_COLUMN, "need at least one mapped column with OSL_UNIQE and OSL_RBTREE OSL"), \
+ PARA_ERROR(NO_RBTREE_COL, "at least one column needs an rbtree"), \
+ PARA_ERROR(DUPLICATE_COL_NAME, "column name given twice"), \
+ PARA_ERROR(BAD_STORAGE_SIZE, "invalid storage size"), \
+ PARA_ERROR(NO_COMPARE_FUNC, "missing compare function"), \
+ PARA_ERROR(BAD_DATA_SIZE, "wrong data size for fixed-size column"), \
+ PARA_ERROR(NOT_MAPPED, "file not mapped"), \
+ PARA_ERROR(ALREADY_MAPPED, "file already mapped"), \
+ PARA_ERROR(BAD_SIZE, "invalid size specified"), \
+ PARA_ERROR(TRUNC, "failed to truncate file"), \
+ PARA_ERROR(BAD_TABLE, "table not open"), \
+ PARA_ERROR(BAD_TABLE_DESC, "invalid table description"), \
+ PARA_ERROR(RB_KEY_EXISTS, "key already exists in rbtree"), \
+ PARA_ERROR(RB_KEY_NOT_FOUND, "key not found in rbtree"), \
+ PARA_ERROR(BAD_ROW_NUM, "invalid row number"), \
+ PARA_ERROR(INDEX_CORRUPTION, "index corruption detected"), \
+ PARA_ERROR(INVALID_OBJECT, "reference to invalid object"), \
+ PARA_ERROR(STAT, "can not stat file"), \
+ PARA_ERROR(WRITE, "write error"), \
+ PARA_ERROR(LSEEK, "lseek error"), \
+ PARA_ERROR(BUSY, "table is busy"), \
+ PARA_ERROR(SHORT_TABLE, "table too short"), \
+ PARA_ERROR(NO_MAGIC, "missing table header magic"), \
+ PARA_ERROR(VERSION_MISMATCH, "table version not supported"), \
+ PARA_ERROR(BAD_COLUMN_NUM, "invalid column number"), \
+ PARA_ERROR(BAD_TABLE_FLAGS, "invalid flags in table description"), \
+ PARA_ERROR(BAD_ROW, "invalid row"), \
+
+
+
+#define AFS_ERRORS \
+ PARA_ERROR(BAD_TABLE_NAME, "invalid table"), \
+ PARA_ERROR(INPUT_TOO_LARGE, "input too large for stdin command"), \
+ PARA_ERROR(AFS_SYNTAX, "afs syntax error"), \
+ PARA_ERROR(AFS_SIGNAL, "afs caught deadly signal"), \
+ PARA_ERROR(AFS_SOCKET, "afs socket not writable"), \
+ PARA_ERROR(AFS_SHORT_READ, "short read from afs socket"), \
+
+
+#define MOOD_ERRORS \
+ PARA_ERROR(MOOD_SYNTAX, "mood syntax error"), \
+ PARA_ERROR(NO_MOOD, "no mood available"), \
+ PARA_ERROR(NOT_ADMISSIBLE, "file is not admissible"), \
+
+
+#define ATTRIBUTE_ERRORS \
+ PARA_ERROR(ATTR_SYNTAX, "attribute syntax error"), \
+ PARA_ERROR(NO_ATTRIBUTES, "no attributes defined yet"), \
+ PARA_ERROR(ATT_TABLE_FULL, "no more space left in attribute table"), \
+
+
+#define BLOB_ERRORS \
+ PARA_ERROR(BLOB_SYNTAX, "blob syntax error"), \
+ PARA_ERROR(DUMMY_ROW, "attempted to access blob dummy object"), \
+
+
+#define PLAYLIST_ERRORS \
+ PARA_ERROR(PLAYLIST_LOADED, ""), /* not really an error */ \
+ PARA_ERROR(PATH_FOUND, ""), /* not really an error */ \
+ PARA_ERROR(PLAYLIST_EMPTY, "attempted to load empty playlist"), \
+
+
+#define AFT_ERRORS \
+ PARA_ERROR(BAD_AFSI, "invaiid afs info"), \
+ PARA_ERROR(LOCALTIME, "localtime() failed"), \
+ PARA_ERROR(STRFTIME, "strftime() failed"), \
+ PARA_ERROR(BAD_PATH, "invalid path"), \
+ PARA_ERROR(BAD_SORT, "invalid sorting method"), \
+ PARA_ERROR(FNMATCH, "fnmatch error"), \
+ PARA_ERROR(NO_MATCH, "no matches"), \
+ PARA_ERROR(NO_AFHI, "audio format handler info required"), \
+ PARA_ERROR(AFT_SYNTAX, "audio file table syntax error"), \
+ PARA_ERROR(HASH_MISMATCH, "hash mismatch, consider re-add"), \
+