aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2006-07-30 08:47:50 +0000
committerEric Wong <normalperson@yhbt.net>2006-07-30 08:47:50 +0000
commite86fd65c81be319c8f4848d42053084ceab9afc8 (patch)
treee31337fe239384bab16b7b889b90075fa3f8b5b9
parenta0c8e3656ba1c7c796f47f7d020f448961b1b3c5 (diff)
commandError() cleanups, fixup gcc checks
stripped binary size reduced by 9k on my machine from making commandError a function. We'll print out error messages slightly slower before, but the smaller binary is more than worth it. git-svn-id: https://svn.musicpd.org/mpd/trunk@4488 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r--src/command.c58
-rw-r--r--src/command.h16
-rw-r--r--src/directory.c10
-rw-r--r--src/gcc.h10
-rw-r--r--src/player.c2
-rw-r--r--src/playlist.c7
-rw-r--r--src/stats.c4
-rw-r--r--src/volume.c8
8 files changed, 58 insertions, 57 deletions
diff --git a/src/command.c b/src/command.c
index b56956e7..b4388217 100644
--- a/src/command.c
+++ b/src/command.c
@@ -31,6 +31,7 @@
#include "dbUtils.h"
#include "tag.h"
+#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -182,7 +183,7 @@ static int handlePlay(int fd, int *permission, int argc,
song = strtol(argv[1], &test, 10);
if (*test != '\0') {
commandError(fd, ACK_ERROR_ARG,
- "need a positive integer", NULL);
+ "need a positive integer");
return -1;
}
}
@@ -199,7 +200,7 @@ static int handlePlayId(int fd, int *permission, int argc,
id = strtol(argv[1], &test, 10);
if (*test != '\0') {
commandError(fd, ACK_ERROR_ARG,
- "need a positive integer", NULL);
+ "need a positive integer");
return -1;
}
}
@@ -284,7 +285,7 @@ static int commandStatus(int fd, int *permission, int argc,
fdprintf(fd, "%s: %i:%i\n", COMMAND_STATUS_TIME,
getPlayerElapsedTime(), getPlayerTotalTime());
fdprintf(fd, "%s: %li\n", COMMAND_STATUS_BITRATE,
- getPlayerBitRate(), getPlayerTotalTime());
+ getPlayerBitRate());
fdprintf(fd, "%s: %u:%i:%i\n", COMMAND_STATUS_AUDIO,
getPlayerSampleRate(), getPlayerBits(),
getPlayerChannels());
@@ -341,7 +342,7 @@ static int handleDelete(int fd, int *permission, int argc,
song = strtol(argv[1], &test, 10);
if (*test != '\0') {
commandError(fd, ACK_ERROR_ARG,
- "need a positive integer", NULL);
+ "need a positive integer");
return -1;
}
return deleteFromPlaylist(fd, song);
@@ -356,7 +357,7 @@ static int handleDeleteId(int fd, int *permission, int argc,
id = strtol(argv[1], &test, 10);
if (*test != '\0') {
commandError(fd, ACK_ERROR_ARG,
- "need a positive integer", NULL);
+ "need a positive integer");
return -1;
}
return deleteFromPlaylistById(fd, id);
@@ -434,8 +435,7 @@ static int handlePlaylistChanges(int fd, int *permission,
version = strtoul(argv[1], &test, 10);
if (*test != '\0') {
- commandError(fd, ACK_ERROR_ARG, "need a positive integer",
- NULL);
+ commandError(fd, ACK_ERROR_ARG, "need a positive integer");
return -1;
}
return playlistChanges(fd, version);
@@ -449,8 +449,7 @@ static int handlePlaylistChangesPosId(int fd, int *permission,
version = strtoul(argv[1], &test, 10);
if (*test != '\0') {
- commandError(fd, ACK_ERROR_ARG, "need a positive integer",
- NULL);
+ commandError(fd, ACK_ERROR_ARG, "need a positive integer");
return -1;
}
return playlistChangesPosId(fd, version);
@@ -466,7 +465,7 @@ static int handlePlaylistInfo(int fd, int *permission,
song = strtol(argv[1], &test, 10);
if (*test != '\0') {
commandError(fd, ACK_ERROR_ARG,
- "need a positive integer", NULL);
+ "need a positive integer");
return -1;
}
}
@@ -483,7 +482,7 @@ static int handlePlaylistId(int fd, int *permission,
id = strtol(argv[1], &test, 10);
if (*test != '\0') {
commandError(fd, ACK_ERROR_ARG,
- "need a positive integer", NULL);
+ "need a positive integer");
return -1;
}
}
@@ -501,7 +500,7 @@ static int handleFind(int fd, int *permission, int argc,
&items);
if (numItems <= 0) {
- commandError(fd, ACK_ERROR_ARG, "incorrect arguments", NULL);
+ commandError(fd, ACK_ERROR_ARG, "incorrect arguments");
return -1;
}
@@ -523,7 +522,7 @@ static int handleSearch(int fd, int *permission, int argc,
&items);
if (numItems <= 0) {
- commandError(fd, ACK_ERROR_ARG, "incorrect arguments", NULL);
+ commandError(fd, ACK_ERROR_ARG, "incorrect arguments");
return -1;
}
@@ -609,7 +608,7 @@ static int handleVolume(int fd, int *permission, int argc,
change = strtol(argv[1], &test, 10);
if (*test != '\0') {
- commandError(fd, ACK_ERROR_ARG, "need an integer", NULL);
+ commandError(fd, ACK_ERROR_ARG, "need an integer");
return -1;
}
return changeVolumeLevel(fd, change, 1);
@@ -623,7 +622,7 @@ static int handleSetVol(int fd, int *permission, int argc,
level = strtol(argv[1], &test, 10);
if (*test != '\0') {
- commandError(fd, ACK_ERROR_ARG, "need an integer", NULL);
+ commandError(fd, ACK_ERROR_ARG, "need an integer");
return -1;
}
return changeVolumeLevel(fd, level, 0);
@@ -637,7 +636,7 @@ static int handleRepeat(int fd, int *permission, int argc,
status = strtol(argv[1], &test, 10);
if (*test != '\0') {
- commandError(fd, ACK_ERROR_ARG, "need an integer", NULL);
+ commandError(fd, ACK_ERROR_ARG, "need an integer");
return -1;
}
return setPlaylistRepeatStatus(fd, status);
@@ -651,7 +650,7 @@ static int handleRandom(int fd, int *permission, int argc,
status = strtol(argv[1], &test, 10);
if (*test != '\0') {
- commandError(fd, ACK_ERROR_ARG, "need an integer", NULL);
+ commandError(fd, ACK_ERROR_ARG, "need an integer");
return -1;
}
return setPlaylistRandomStatus(fd, status);
@@ -703,7 +702,7 @@ static int handleList(int fd, int *permission, int argc,
if (numConditionals < 0) {
commandError(fd, ACK_ERROR_ARG,
- "not able to parse args", NULL);
+ "not able to parse args");
return -1;
}
}
@@ -868,8 +867,7 @@ static int handlePassword(int fd, int *permission, int argc,
char *argv[])
{
if (getPermissionFromPassword(argv[1], permission) < 0) {
- commandError(fd, ACK_ERROR_PASSWORD, "incorrect password",
- NULL);
+ commandError(fd, ACK_ERROR_PASSWORD, "incorrect password");
return -1;
}
@@ -1212,3 +1210,23 @@ int processCommand(int fd, int *permission, char *commandString)
{
return processCommandInternal(fd, permission, commandString, NULL);
}
+
+mpd_fprintf_ void commandError(int fd, int error, const char *fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+
+ if (current_command) {
+ fdprintf(fd, "ACK [%i@%i] {%s} ",
+ (int)error, command_listNum, current_command);
+ current_command = NULL;
+ } else
+ fdprintf(STDERR_FILENO, "ACK [%i@%i] ",
+ (int)error, command_listNum);
+
+ vfdprintf(fd, fmt, args);
+ va_end(args);
+ fdprintf(fd,"\n");
+}
+
+
diff --git a/src/command.h b/src/command.h
index cab6562d..fdb1e086 100644
--- a/src/command.h
+++ b/src/command.h
@@ -48,18 +48,6 @@ void finishCommands();
#define commandSuccess(fd) fdprintf(fd, "OK\n")
-#define commandError(fd, error, format, ... ) do \
- {\
- if (current_command) { \
- fdprintf(fd, "ACK [%i@%i] {%s} " format "\n", \
- (int)error, command_listNum, \
- current_command, __VA_ARGS__); \
- current_command = NULL; \
- } \
- else { \
- fdprintf(STDERR_FILENO, "ACK [%i@%i] " format "\n", \
- (int)error, command_listNum, \
- __VA_ARGS__); \
- } \
- } while (0)
+mpd_fprintf_ void commandError(int fd, int error, const char *fmt, ...);
+
#endif
diff --git a/src/directory.c b/src/directory.c
index 0bf2b645..fe98ec67 100644
--- a/src/directory.c
+++ b/src/directory.c
@@ -162,8 +162,7 @@ void readDirectoryDBIfUpdateIsFinished()
int updateInit(int fd, List * pathList)
{
if (directory_updatePid > 0) {
- commandError(fd, ACK_ERROR_UPDATE_ALREADY, "already updating",
- NULL);
+ commandError(fd, ACK_ERROR_UPDATE_ALREADY, "already updating");
return -1;
}
@@ -217,7 +216,7 @@ int updateInit(int fd, List * pathList)
unblockSignals();
ERROR("updateInit: Problems forking()'ing\n");
commandError(fd, ACK_ERROR_SYSTEM,
- "problems trying to update", NULL);
+ "problems trying to update");
directory_updatePid = 0;
return -1;
}
@@ -891,8 +890,7 @@ int printDirectoryInfo(int fd, char *name)
Directory *directory;
if ((directory = getDirectory(name)) == NULL) {
- commandError(fd, ACK_ERROR_NO_EXIST, "directory not found",
- NULL);
+ commandError(fd, ACK_ERROR_NO_EXIST, "directory not found");
return -1;
}
@@ -1288,7 +1286,7 @@ int traverseAllIn(int fd, char *name,
return forEachSong(fd, song, data);
}
commandError(fd, ACK_ERROR_NO_EXIST,
- "directory or file not found", NULL);
+ "directory or file not found");
return -1;
}
diff --git a/src/gcc.h b/src/gcc.h
index 62c78e73..4b4fe4cd 100644
--- a/src/gcc.h
+++ b/src/gcc.h
@@ -8,7 +8,7 @@
*/
/* disabled (0) until I fix all the warnings :) */
-#if (0 && __GNUC__ >= 3)
+#if __GNUC__ >= 3
# define mpd_const __attribute__ ((const))
# define mpd_deprecated __attribute__ ((deprecated))
# define mpd_malloc __attribute__ ((malloc))
@@ -25,8 +25,8 @@
# define mpd_used __attribute__ ((used))
/* # define inline inline __attribute__ ((always_inline)) */
# define mpd_noinline __attribute__ ((noinline))
-# define likely(x) __builtin_expect (!!(x), 1)
-# define unlikely(x) __builtin_expect (!!(x), 0)
+# define mpd_likely(x) __builtin_expect (!!(x), 1)
+# define mpd_unlikely(x) __builtin_expect (!!(x), 0)
#else
# define mpd_const
# define mpd_deprecated
@@ -43,8 +43,8 @@
# define mpd_used
/* # define inline */
# define mpd_noinline
-# define likely(x) (x)
-# define unlikely(x) (x)
+# define mpd_likely(x) (x)
+# define mpd_unlikely(x) (x)
#endif
#endif /* MPD_GCC_H */
diff --git a/src/player.c b/src/player.c
index 5ebf22f7..2ffe66e7 100644
--- a/src/player.c
+++ b/src/player.c
@@ -396,7 +396,7 @@ int playerSeek(int fd, Song * song, float time)
if (pc->state == PLAYER_STATE_STOP) {
commandError(fd, ACK_ERROR_PLAYER_SYNC,
- "player not currently playing", NULL);
+ "player not currently playing");
return -1;
}
diff --git a/src/playlist.c b/src/playlist.c
index 288848fb..374de976 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -671,7 +671,7 @@ int addSongToPlaylist(int fd, Song * song, int printId)
if (playlist.length == playlist_max_length) {
commandError(fd, ACK_ERROR_PLAYLIST_MAX,
- "playlist is at the max size", NULL);
+ "playlist is at the max size");
return -1;
}
@@ -1360,7 +1360,7 @@ int deletePlaylist(int fd, char *utf8file)
if (unlink(actualFile) < 0) {
commandError(fd, ACK_ERROR_SYSTEM,
- "problems deleting file", NULL);
+ "problems deleting file");
return -1;
}
@@ -1407,8 +1407,7 @@ int savePlaylist(int fd, char *utf8file)
while (!(fileP = fopen(actualFile, "w")) && errno == EINTR) ;
if (fileP == NULL) {
- commandError(fd, ACK_ERROR_SYSTEM, "problems opening file",
- NULL);
+ commandError(fd, ACK_ERROR_SYSTEM, "problems opening file");
return -1;
}
diff --git a/src/stats.c b/src/stats.c
index 32a7804c..d4b69953 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -36,8 +36,8 @@ void initStats(void)
int printStats(int fd)
{
- fdprintf(fd, "artists: %li\n", getNumberOfTagItems(TAG_ITEM_ARTIST));
- fdprintf(fd, "albums: %li\n", getNumberOfTagItems(TAG_ITEM_ALBUM));
+ fdprintf(fd, "artists: %i\n", getNumberOfTagItems(TAG_ITEM_ARTIST));
+ fdprintf(fd, "albums: %i\n", getNumberOfTagItems(TAG_ITEM_ALBUM));
fdprintf(fd, "songs: %i\n", stats.numberOfSongs);
fdprintf(fd, "uptime: %li\n", time(NULL) - stats.daemonStart);
fdprintf(fd, "playtime: %li\n",
diff --git a/src/volume.c b/src/volume.c
index adff103a..7d4fce58 100644
--- a/src/volume.c
+++ b/src/volume.c
@@ -178,7 +178,7 @@ static int changeOssVolumeLevel(int fd, int change, int rel)
if (rel) {
if ((current = getOssVolumeLevel()) < 0) {
commandError(fd, ACK_ERROR_SYSTEM,
- "problem getting current volume", NULL);
+ "problem getting current volume");
return -1;
}
@@ -198,8 +198,7 @@ static int changeOssVolumeLevel(int fd, int change, int rel)
if (ioctl(volume_ossFd, MIXER_WRITE(volume_ossControl), &level) < 0) {
closeOssMixer();
- commandError(fd, ACK_ERROR_SYSTEM, "problems setting volume",
- NULL);
+ commandError(fd, ACK_ERROR_SYSTEM, "problems setting volume");
return -1;
}
@@ -361,8 +360,7 @@ static int changeAlsaVolumeLevel(int fd, int change, int rel)
if ((err =
snd_mixer_selem_set_playback_volume_all(volume_alsaElem,
level)) < 0) {
- commandError(fd, ACK_ERROR_SYSTEM, "problems setting volume",
- NULL);
+ commandError(fd, ACK_ERROR_SYSTEM, "problems setting volume");
WARNING("problems setting alsa volume: %s\n",
snd_strerror(err));
closeAlsaMixer();