fix C99 stuff for commandError

also some slight optimizations to interfacePrintWithFD() and myfprintf()

git-svn-id: https://svn.musicpd.org/mpd/trunk@1503 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
Warren Dukes
2004-06-15 18:06:21 +00:00
parent 28d6bb796a
commit 80dd76db7f
9 changed files with 53 additions and 48 deletions

View File

@@ -37,8 +37,7 @@ FILE * myfprintf_err;
char * myfprintf_outFilename;
char * myfprintf_errFilename;
void blockingWrite(int fd, char * string) {
int len = strlen(string);
void blockingWrite(int fd, char * string, int len) {
int ret;
while(len) {
@@ -71,28 +70,26 @@ void myfprintf(FILE * fp, char * format, ... ) {
char buffer[BUFFER_LENGTH+1];
va_list arglist;
int fd = fileno(fp);
int fcntlret;
memset(buffer,0,BUFFER_LENGTH+1);
va_start(arglist,format);
while((fcntlret=fcntl(fd,F_GETFL))==-1 && errno==EINTR);
if(myfprintf_stdLogMode && (fd==1 || fd==2)) {
time_t t = time(NULL);
if(fd==1) fp = myfprintf_out;
else fp = myfprintf_err;
strftime(buffer,14,"%b %e %R",localtime(&t));
blockingWrite(fd,buffer);
blockingWrite(fd," : ");
blockingWrite(fd,buffer,strlen(buffer));
blockingWrite(fd," : ",3);
vsnprintf(buffer,BUFFER_LENGTH,format,arglist);
blockingWrite(fd,buffer);
blockingWrite(fd,buffer,strlen(buffer));
}
else {
int len;
vsnprintf(buffer,BUFFER_LENGTH,format,arglist);
if(!(fcntlret & O_NONBLOCK) ||
interfacePrintWithFD(fd,buffer)<0)
{
blockingWrite(fd,buffer);
len = strlen(buffer);
if(interfacePrintWithFD(fd,buffer,len)<0) {
blockingWrite(fd,buffer,len);
}
}