mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-10 14:58:01 +00:00
util.c str_text make a fully text readable version of str
This commit is contained in:
parent
179cc524f5
commit
863c9e27df
34
util.c
34
util.c
@ -1818,6 +1818,40 @@ void *realloc_strcat(char *ptr, char *s)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Make a text readable version of a string using 0xNN for < ' ' or > '~'
|
||||||
|
* Including 0x00 at the end
|
||||||
|
* You must free the result yourself */
|
||||||
|
void *str_text(char *ptr)
|
||||||
|
{
|
||||||
|
unsigned char *uptr;
|
||||||
|
char *ret, *txt;
|
||||||
|
|
||||||
|
if (ptr == NULL) {
|
||||||
|
ret = strdup("(null)");
|
||||||
|
|
||||||
|
if (unlikely(!ret))
|
||||||
|
quit(1, "Failed to malloc in text_str null");
|
||||||
|
}
|
||||||
|
|
||||||
|
uptr = (unsigned char *)ptr;
|
||||||
|
|
||||||
|
ret = txt = malloc(strlen(ptr)*4+5); // Guaranteed >= needed
|
||||||
|
if (unlikely(!txt))
|
||||||
|
quit(1, "Failed to malloc in text_str txt");
|
||||||
|
|
||||||
|
do {
|
||||||
|
if (*uptr < ' ' || *uptr > '~') {
|
||||||
|
sprintf(txt, "0x%02x", *uptr);
|
||||||
|
txt += 4;
|
||||||
|
} else
|
||||||
|
*(txt++) = *uptr;
|
||||||
|
} while (*(uptr++));
|
||||||
|
|
||||||
|
*txt = '\0';
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
void RenameThread(const char* name)
|
void RenameThread(const char* name)
|
||||||
{
|
{
|
||||||
#if defined(PR_SET_NAME)
|
#if defined(PR_SET_NAME)
|
||||||
|
1
util.h
1
util.h
@ -77,6 +77,7 @@ bool restart_stratum(struct pool *pool);
|
|||||||
void suspend_stratum(struct pool *pool);
|
void suspend_stratum(struct pool *pool);
|
||||||
void dev_error(struct cgpu_info *dev, enum dev_reason reason);
|
void dev_error(struct cgpu_info *dev, enum dev_reason reason);
|
||||||
void *realloc_strcat(char *ptr, char *s);
|
void *realloc_strcat(char *ptr, char *s);
|
||||||
|
void *str_text(char *ptr);
|
||||||
void RenameThread(const char* name);
|
void RenameThread(const char* name);
|
||||||
|
|
||||||
/* Align a size_t to 4 byte boundaries for fussy arches */
|
/* Align a size_t to 4 byte boundaries for fussy arches */
|
||||||
|
Loading…
Reference in New Issue
Block a user