Add double type for terminal write in anticipation of future avr-libc extension

This commit is contained in:
Stefan Rueger 2022-07-12 11:36:57 +01:00
parent feda75b60a
commit 9fe6820236
1 changed files with 12 additions and 5 deletions

View File

@ -417,6 +417,7 @@ static int cmd_write(PROGRAMMER * pgm, struct avrpart * p,
// Data union // Data union
union { union {
float f; float f;
double d;
int64_t ll; int64_t ll;
uint64_t ull; uint64_t ull;
uint8_t a[8]; uint8_t a[8];
@ -524,12 +525,19 @@ static int cmd_write(PROGRAMMER * pgm, struct avrpart * p,
} }
} }
if(!data.size) { // Data item was not recognised as integer if(!data.size) { // Try float
// Try float
data.f = strtof(argi, &end_ptr); data.f = strtof(argi, &end_ptr);
if (end_ptr != argi && toupper(*end_ptr) == 'F' && end_ptr[1] == 0) { if (end_ptr != argi && toupper(*end_ptr) == 'F' && end_ptr[1] == 0)
data.size = 4; data.size = 4;
} else { }
if(!data.size) { // Try double
data.d = strtod(argi, &end_ptr);
if (end_ptr != argi && *end_ptr == 0)
data.size = 8;
}
if(!data.size) {
// Try single character // Try single character
if (argi[0] == '\'' && argi[2] == '\'') { if (argi[0] == '\'' && argi[2] == '\'') {
data.ll = argi[1]; data.ll = argi[1];
@ -553,7 +561,6 @@ static int cmd_write(PROGRAMMER * pgm, struct avrpart * p,
return -1; return -1;
} }
} }
}
} }
} }
if(data.str_ptr) { if(data.str_ptr) {