From 19d7cb724c15151d161923cafaa76d9801437be7 Mon Sep 17 00:00:00 2001 From: Peter De Wachter Date: Sat, 23 Jan 2016 17:48:33 +0100 Subject: [PATCH] Convert macross listing functions to varargs --- listing.c | 60 +++++++++++++++++++++++++++---------------------------- listing.h | 8 ++++---- 2 files changed, 33 insertions(+), 35 deletions(-) diff --git a/listing.c b/listing.c index 874374b..983ad96 100644 --- a/listing.c +++ b/listing.c @@ -31,6 +31,7 @@ #include "macrossGlobals.h" #include "listing.h" +#include #include static char lineBuffer1[LINE_BUFFER_SIZE]; @@ -504,42 +505,40 @@ labeledLine() } void -addText(buffer, bufferPtr, format, arg1, arg2, arg3) - char *buffer; - char **bufferPtr; - char *format; - int arg1; - int arg2; - int arg3; +vaddText(char *buffer, char **bufferPtr, char *format, va_list ap) { - sprintf(*bufferPtr, format, arg1, arg2, arg3); - *bufferPtr = buffer + strlen(buffer); + vsprintf(*bufferPtr, format, ap); + *bufferPtr = buffer = strlen(buffer); } void -moreTextOptional(buffer, bufferPtr, format, arg1, arg2, arg3) - char *buffer; - char **bufferPtr; - char *format; - int arg1; - int arg2; - int arg3; +addText(char *buffer, char **bufferPtr, char *format, ...) { + 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) - addText(expansionString, &expansionStringPtr, format, arg1, - arg2, arg3); + vaddText(expansionString, &expansionStringPtr, format, ap); else - addText(buffer, bufferPtr, format, arg1, arg2, arg3); + vaddText(buffer, bufferPtr, format, ap); + va_end(ap); } void -moreText(format, arg1, arg2, arg3) - char *format; - int arg1; - int arg2; - int arg3; +moreText(char *format, ...) { - addText(expansionString, &expansionStringPtr, format, arg1,arg2,arg3); + va_list ap; + va_start(ap, format); + addText(expansionString, &expansionStringPtr, format, ap); + va_end(ap); } void @@ -634,13 +633,12 @@ expandLabel() } void -moreExpression(format, arg1, arg2, arg3) - char *format; - int arg1; - int arg2; - int arg3; +moreExpression(char *format, ...) { - sprintf(expressionStringPtr, format, arg1, arg2, arg3); + va_list ap; + va_start(ap, format); + vsprintf(expressionStringPtr, format, ap); + va_end(ap); expressionStringPtr = expressionString + strlen(expressionString); } diff --git a/listing.h b/listing.h index 0721910..3e94aa7 100644 --- a/listing.h +++ b/listing.h @@ -19,9 +19,9 @@ void tabPrint(stringType *text); void printNTimes (char aChar, int times); void tabIndent(); bool labeledLine(); -void addText(char *buffer, char **bufferPtr, char *format, int arg1, int arg2, int arg3); -void moreTextOptional(char *buffer, char **bufferPtr, char *format, int arg1, int arg2, int arg3); -void moreText(char *format, int arg1, int arg2, int arg3); +void addText(char *buffer, char **bufferPtr, char *format, ...); +void moreTextOptional(char *buffer, char **bufferPtr, char *format, ...); +void moreText(char *format, ...); void moreLabel(char *format, int arg1); void startLine(); void endLine(); @@ -31,7 +31,7 @@ void expandNum(char *buffer, char **bufferPtr, int n); void flushOperand(int n); void expandOperands(int op); void expandLabel(); -void moreExpression(char *format, int arg1, int arg2, int arg3); +void moreExpression(char *format, ...); void startLineMarked(); bool notListable(statementKindType statementKind);