minor update

This commit is contained in:
Blaise Tine 2024-05-27 16:01:24 -07:00
parent c1000f6a3b
commit 319c18158a
2 changed files with 18 additions and 19 deletions

View file

@ -1,10 +1,10 @@
// Copyright © 2019-2023
//
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@ -21,7 +21,15 @@ extern "C" {
#endif
int vx_vprintf(const char* format, va_list va);
int vx_printf(const char * format, ...);
inline int vx_printf(const char * format, ...) {
int ret;
va_list va;
va_start(va, format);
ret = vx_vprintf(format, va);
va_end(va);
return ret;
}
void vx_putchar(int c);
void vx_putint(int value, int base);

View file

@ -1,10 +1,10 @@
// Copyright © 2019-2023
//
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@ -27,8 +27,8 @@ extern "C" {
typedef struct {
const char* format;
va_list* va;
int ret;
va_list* va;
int ret;
} printf_arg_t;
typedef struct {
@ -41,14 +41,14 @@ typedef struct {
int precision;
} putfloat_arg_t;
static void __putint_cb(const putint_arg_t* arg) {
static void __putint_cb(const putint_arg_t* arg) {
char tmp[33];
float value = arg->value;
int base = arg->base;
itoa(value, tmp, base);
for (int i = 0; i < 33; ++i) {
int c = tmp[i];
if (!c)
if (!c)
break;
vx_putchar(c);
}
@ -62,7 +62,7 @@ static void __putfloat_cb(const putfloat_arg_t* arg) {
if (precision != 0) {
vx_putchar('.');
float frac = value - (float)ipart;
float fscaled = frac * pow(10, precision);
float fscaled = frac * pow(10, precision);
vx_putint((int)fscaled, 10);
}
}
@ -93,15 +93,6 @@ int vx_vprintf(const char* format, va_list va) {
return arg.ret;
}
int vx_printf(const char * format, ...) {
int ret;
va_list va;
va_start(va, format);
ret = vx_vprintf(format, va);
va_end(va);
return ret;
}
#ifdef __cplusplus
}
#endif