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:
parent
a0c8e3656b
commit
e86fd65c81
|
@ -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");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
10
src/gcc.h
10
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 */
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue