You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
732 B
40 lines
732 B
#include <stdio.h>
|
|
#include "format.h"
|
|
|
|
/**
|
|
* @brief Format a version element
|
|
* @param s
|
|
* @param version
|
|
* @param len
|
|
* @return number of bytes written
|
|
*/
|
|
int cw_format_version(char *s, const uint8_t * version, int len)
|
|
{
|
|
int dot,rs,i;;
|
|
|
|
rs = 0;
|
|
|
|
if (format_is_utf8(version, len)) {
|
|
if (len != 0)
|
|
rs += sprintf(s + rs, "%.*s", len, version);
|
|
else
|
|
rs += sprintf(s + rs, "''");
|
|
} else {
|
|
for (i = 0; i < len && i < 20; i++) {
|
|
rs += sprintf(s + rs, "%02X", version[i]);
|
|
}
|
|
|
|
dot = 0;
|
|
|
|
rs += sprintf(s + rs, " (");
|
|
for (i = 0; i < len && i < 20; i++) {
|
|
if (dot)
|
|
rs += sprintf(s + rs, ".");
|
|
dot = 1;
|
|
rs += sprintf(s + rs, "%d", version[i]);
|
|
}
|
|
rs += sprintf(s + rs, ")");
|
|
}
|
|
return rs;
|
|
}
|
|
|
|
|