Convert macross listing functions to varargs

This commit is contained in:
Peter De Wachter 2016-01-23 17:48:33 +01:00
parent 0e03424ec1
commit 19d7cb724c
2 changed files with 33 additions and 35 deletions

View File

@ -31,6 +31,7 @@
#include "macrossGlobals.h" #include "macrossGlobals.h"
#include "listing.h" #include "listing.h"
#include <stdarg.h>
#include <string.h> #include <string.h>
static char lineBuffer1[LINE_BUFFER_SIZE]; static char lineBuffer1[LINE_BUFFER_SIZE];
@ -504,42 +505,40 @@ labeledLine()
} }
void void
addText(buffer, bufferPtr, format, arg1, arg2, arg3) vaddText(char *buffer, char **bufferPtr, char *format, va_list ap)
char *buffer;
char **bufferPtr;
char *format;
int arg1;
int arg2;
int arg3;
{ {
sprintf(*bufferPtr, format, arg1, arg2, arg3); vsprintf(*bufferPtr, format, ap);
*bufferPtr = buffer + strlen(buffer); *bufferPtr = buffer = strlen(buffer);
} }
void void
moreTextOptional(buffer, bufferPtr, format, arg1, arg2, arg3) addText(char *buffer, char **bufferPtr, char *format, ...)
char *buffer;
char **bufferPtr;
char *format;
int arg1;
int arg2;
int arg3;
{ {
va_list ap;
va_start(ap, format);
vaddText(buffer, bufferPtr, format, ap);
va_end(ap);
}
void
moreTextOptional(char *buffer, char **bufferPtr, char *format, ...)
{
va_list ap;
va_start(ap, format);
if (buffer == NULL) if (buffer == NULL)
addText(expansionString, &expansionStringPtr, format, arg1, vaddText(expansionString, &expansionStringPtr, format, ap);
arg2, arg3);
else else
addText(buffer, bufferPtr, format, arg1, arg2, arg3); vaddText(buffer, bufferPtr, format, ap);
va_end(ap);
} }
void void
moreText(format, arg1, arg2, arg3) moreText(char *format, ...)
char *format;
int arg1;
int arg2;
int arg3;
{ {
addText(expansionString, &expansionStringPtr, format, arg1,arg2,arg3); va_list ap;
va_start(ap, format);
addText(expansionString, &expansionStringPtr, format, ap);
va_end(ap);
} }
void void
@ -634,13 +633,12 @@ expandLabel()
} }
void void
moreExpression(format, arg1, arg2, arg3) moreExpression(char *format, ...)
char *format;
int arg1;
int arg2;
int arg3;
{ {
sprintf(expressionStringPtr, format, arg1, arg2, arg3); va_list ap;
va_start(ap, format);
vsprintf(expressionStringPtr, format, ap);
va_end(ap);
expressionStringPtr = expressionString + strlen(expressionString); expressionStringPtr = expressionString + strlen(expressionString);
} }

View File

@ -19,9 +19,9 @@ void tabPrint(stringType *text);
void printNTimes (char aChar, int times); void printNTimes (char aChar, int times);
void tabIndent(); void tabIndent();
bool labeledLine(); bool labeledLine();
void addText(char *buffer, char **bufferPtr, char *format, int arg1, int arg2, int arg3); void addText(char *buffer, char **bufferPtr, char *format, ...);
void moreTextOptional(char *buffer, char **bufferPtr, char *format, int arg1, int arg2, int arg3); void moreTextOptional(char *buffer, char **bufferPtr, char *format, ...);
void moreText(char *format, int arg1, int arg2, int arg3); void moreText(char *format, ...);
void moreLabel(char *format, int arg1); void moreLabel(char *format, int arg1);
void startLine(); void startLine();
void endLine(); void endLine();
@ -31,7 +31,7 @@ void expandNum(char *buffer, char **bufferPtr, int n);
void flushOperand(int n); void flushOperand(int n);
void expandOperands(int op); void expandOperands(int op);
void expandLabel(); void expandLabel();
void moreExpression(char *format, int arg1, int arg2, int arg3); void moreExpression(char *format, ...);
void startLineMarked(); void startLineMarked();
bool notListable(statementKindType statementKind); bool notListable(statementKindType statementKind);