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
This commit is contained in:
Eric Wong 2006-07-30 08:47:50 +00:00
parent a0c8e3656b
commit e86fd65c81
8 changed files with 58 additions and 57 deletions

View File

@ -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");
}

View File

@ -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

View File

@ -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;
}

View File

@ -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 */

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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",

View File

@ -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();