mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-26 23:11:19 +01:00
Merge pull request #3447 from OlegHahm/fix_unsigned_char_in_od
od: signedness and constantness of input parameter
This commit is contained in:
commit
f10cd90b31
@ -136,7 +136,7 @@ extern "C" {
|
||||
* @param[in] flags Flags as defined in @ref od_flags_address and
|
||||
* @ref od_flags_bytes
|
||||
*/
|
||||
void od(void *data, size_t data_len, uint8_t width, uint16_t flags);
|
||||
void od(const void *data, size_t data_len, uint8_t width, uint16_t flags);
|
||||
|
||||
/**
|
||||
* @brief Dumps memory stored at *data* up to *data_len* in octal, decimal, or
|
||||
@ -148,7 +148,7 @@ void od(void *data, size_t data_len, uint8_t width, uint16_t flags);
|
||||
* @param[in] width Number of bytes per line. If *width* is 0,
|
||||
* @ref OD_WIDTH_DEFAULT is assumed as a default value.
|
||||
*/
|
||||
static inline void od_hex_dump(void *data, size_t data_len, uint8_t width)
|
||||
static inline void od_hex_dump(const void *data, size_t data_len, uint8_t width)
|
||||
{
|
||||
od(data, data_len, width, OD_FLAGS_ADDRESS_HEX | OD_FLAGS_BYTES_HEX | OD_FLAGS_LENGTH_1);
|
||||
}
|
||||
|
||||
10
sys/od/od.c
10
sys/od/od.c
@ -178,13 +178,13 @@ static inline void _bytes_format(char *format, uint16_t flags)
|
||||
}
|
||||
}
|
||||
|
||||
static void _print_date(void *data, size_t offset, char *format, uint8_t length,
|
||||
static void _print_date(const void *data, size_t offset, char *format, uint8_t length,
|
||||
uint16_t flags)
|
||||
{
|
||||
switch (length) {
|
||||
case 1:
|
||||
if (flags & OD_FLAGS_BYTES_CHAR) {
|
||||
switch (((char *)data)[offset]) {
|
||||
switch (((signed char *)data)[offset]) {
|
||||
case '\0':
|
||||
printf(" \\0");
|
||||
return;
|
||||
@ -218,11 +218,11 @@ static void _print_date(void *data, size_t offset, char *format, uint8_t length,
|
||||
return;
|
||||
|
||||
default:
|
||||
if (((char *)data)[offset] < 0) {
|
||||
if (((signed char *)data)[offset] < 0) {
|
||||
printf(" %03o", ((unsigned char *)data)[offset]);
|
||||
return;
|
||||
}
|
||||
else if (((char *)data)[offset] < 32) {
|
||||
else if (((signed char *)data)[offset] < 32) {
|
||||
printf(" %03o", ((char *)data)[offset]);
|
||||
return;
|
||||
}
|
||||
@ -287,7 +287,7 @@ static int _log10(uint8_t a)
|
||||
return ++res;
|
||||
}
|
||||
|
||||
void od(void *data, size_t data_len, uint8_t width, uint16_t flags)
|
||||
void od(const void *data, size_t data_len, uint8_t width, uint16_t flags)
|
||||
{
|
||||
char address_format[5];
|
||||
uint8_t date_length = _length(flags);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user