From 947bb0d9184dadff2dc0023c650b0ceda67f7836 Mon Sep 17 00:00:00 2001 From: Dominic Clifton Date: Thu, 15 Jan 2015 10:48:54 +0000 Subject: [PATCH] Minor code size reduction. Adding some const correctness. --- src/main/common/printf.c | 6 +++--- src/main/common/printf.h | 6 +++--- src/main/common/typeconversion.c | 2 +- src/main/common/typeconversion.h | 2 +- src/main/io/display.c | 10 +++++++--- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/main/common/printf.c b/src/main/common/printf.c index e558ff862..46e5b3902 100644 --- a/src/main/common/printf.c +++ b/src/main/common/printf.c @@ -69,7 +69,7 @@ static void putchw(void *putp, putcf putf, int n, char z, char *bf) putf(putp, ch); } -void tfp_format(void *putp, putcf putf, char *fmt, va_list va) +void tfp_format(void *putp, putcf putf, const char *fmt, va_list va) { char bf[12]; @@ -154,7 +154,7 @@ void init_printf(void *putp, void (*putf) (void *, char)) stdout_putp = putp; } -void tfp_printf(char *fmt, ...) +void tfp_printf(const char *fmt, ...) { va_list va; va_start(va, fmt); @@ -168,7 +168,7 @@ static void putcp(void *p, char c) *(*((char **) p))++ = c; } -void tfp_sprintf(char *s, char *fmt, ...) +void tfp_sprintf(char *s, const char *fmt, ...) { va_list va; diff --git a/src/main/common/printf.h b/src/main/common/printf.h index 410c867a5..bcb78bcbb 100644 --- a/src/main/common/printf.h +++ b/src/main/common/printf.h @@ -107,10 +107,10 @@ regs Kusti, 23.10.2004 void init_printf(void *putp, void (*putf) (void *, char)); -void tfp_printf(char *fmt, ...); -void tfp_sprintf(char *s, char *fmt, ...); +void tfp_printf(const char *fmt, ...); +void tfp_sprintf(char *s, const char *fmt, ...); -void tfp_format(void *putp, void (*putf) (void *, char), char *fmt, va_list va); +void tfp_format(void *putp, void (*putf) (void *, char), const char *fmt, va_list va); #define printf tfp_printf #define sprintf tfp_sprintf diff --git a/src/main/common/typeconversion.c b/src/main/common/typeconversion.c index 2b94ef5fe..e3e788d35 100644 --- a/src/main/common/typeconversion.c +++ b/src/main/common/typeconversion.c @@ -90,7 +90,7 @@ int a2d(char ch) return -1; } -char a2i(char ch, char **src, int base, int *nump) +char a2i(char ch, const char **src, int base, int *nump) { char *p = *src; int num = 0; diff --git a/src/main/common/typeconversion.h b/src/main/common/typeconversion.h index 659c8b834..62b437875 100644 --- a/src/main/common/typeconversion.h +++ b/src/main/common/typeconversion.h @@ -20,7 +20,7 @@ void uli2a(unsigned long int num, unsigned int base, int uc, char *bf); void li2a(long num, char *bf); void ui2a(unsigned int num, unsigned int base, int uc, char *bf); void i2a(int num, char *bf); -char a2i(char ch, char **src, int base, int *nump); +char a2i(char ch, const char **src, int base, int *nump); char *ftoa(float x, char *floatString); float fastA2F(const char *p); diff --git a/src/main/io/display.c b/src/main/io/display.c index 691dc546f..001615e87 100644 --- a/src/main/io/display.c +++ b/src/main/io/display.c @@ -378,24 +378,28 @@ void showBatteryPage(void) void showSensorsPage(void) { uint8_t rowIndex = PAGE_TITLE_LINE_COUNT; + static const char *format = "%c = %5d %5d %5d"; i2c_OLED_set_line(rowIndex++); i2c_OLED_send_string(" X Y Z"); + if (sensors(SENSOR_ACC)) { - tfp_sprintf(lineBuffer, "A = %5d %5d %5d", accSmooth[X], accSmooth[Y], accSmooth[Z]); + tfp_sprintf(lineBuffer, format, 'A', accSmooth[X], accSmooth[Y], accSmooth[Z]); padLineBuffer(); i2c_OLED_set_line(rowIndex++); i2c_OLED_send_string(lineBuffer); } + if (sensors(SENSOR_GYRO)) { - tfp_sprintf(lineBuffer, "G = %5d %5d %5d", gyroADC[X], gyroADC[Y], gyroADC[Z]); + tfp_sprintf(lineBuffer, format, 'G', gyroADC[X], gyroADC[Y], gyroADC[Z]); padLineBuffer(); i2c_OLED_set_line(rowIndex++); i2c_OLED_send_string(lineBuffer); } + #ifdef MAG if (sensors(SENSOR_MAG)) { - tfp_sprintf(lineBuffer, "M = %5d %5d %5d", magADC[X], magADC[Y], magADC[Z]); + tfp_sprintf(lineBuffer, format, 'M', magADC[X], magADC[Y], magADC[Z]); padLineBuffer(); i2c_OLED_set_line(rowIndex++); i2c_OLED_send_string(lineBuffer);