mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-19 21:03:23 -07:00
added PrintAndLogEx for merge commits between repo easier than now
This commit is contained in:
parent
a6e2ec60ff
commit
d535391708
4 changed files with 117 additions and 0 deletions
|
@ -16,6 +16,7 @@
|
|||
#include "emv/dump.h"
|
||||
#include "asn1dump.h"
|
||||
#include "util.h"
|
||||
#include "ui.h" // PrintAndLog
|
||||
|
||||
int ecdsa_asn1_get_signature(uint8_t *signature, size_t signaturelen, uint8_t *rval, uint8_t *sval) {
|
||||
if (!signature || !signaturelen || !rval || !sval)
|
||||
|
|
72
client/ui.c
72
client/ui.c
|
@ -16,6 +16,7 @@
|
|||
#include <stdarg.h>
|
||||
#include <readline/readline.h>
|
||||
#include <pthread.h>
|
||||
#include "util.h"
|
||||
#endif
|
||||
|
||||
#include "ui.h"
|
||||
|
@ -32,6 +33,77 @@ static char *logfilename = "proxmark3.log";
|
|||
#ifndef EXTERNAL_PRINTANDLOG
|
||||
static pthread_mutex_t print_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
void PrintAndLogEx(logLevel_t level, char *fmt, ...) {
|
||||
|
||||
// skip debug messages if client debugging is turned off i.e. 'DATA SETDEBUG 0'
|
||||
// if (g_debugMode == 0 && level == DEBUG)
|
||||
// return;
|
||||
|
||||
char buffer[MAX_PRINT_BUFFER] = {0};
|
||||
char buffer2[MAX_PRINT_BUFFER] = {0};
|
||||
char prefix[20] = {0};
|
||||
char *token = NULL;
|
||||
int size = 0;
|
||||
// {NORMAL, SUCCESS, INFO, FAILED, WARNING, ERR, DEBUG}
|
||||
static char *prefixes[7] = { "", "", "INFO: ", "FAILED: ", "WARNING: ", "ERROR: ", "#: "};
|
||||
|
||||
switch( level ) {
|
||||
case FAILED:
|
||||
strncpy(prefix,_RED_(FAILED: ), sizeof(prefix)-1);
|
||||
break;
|
||||
case DEBUG:
|
||||
strncpy(prefix,_BLUE_(#: ), sizeof(prefix)-1);
|
||||
break;
|
||||
case SUCCESS:
|
||||
strncpy(prefix,_GREEN_( ), sizeof(prefix)-1);
|
||||
break;
|
||||
case WARNING:
|
||||
strncpy(prefix,_CYAN_(WARNING: ), sizeof(prefix)-1);
|
||||
break;
|
||||
default:
|
||||
strncpy(prefix, prefixes[level], sizeof(prefix)-1);
|
||||
break;
|
||||
}
|
||||
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
vsnprintf(buffer, sizeof(buffer), fmt, args);
|
||||
va_end(args);
|
||||
|
||||
// no prefixes for normal
|
||||
if ( level == NORMAL ) {
|
||||
PrintAndLog(buffer);
|
||||
return;
|
||||
}
|
||||
|
||||
if (strchr(buffer, '\n')) {
|
||||
|
||||
const char delim[2] = "\n";
|
||||
|
||||
// line starts with newline
|
||||
if (buffer[0] == '\n')
|
||||
PrintAndLog("");
|
||||
|
||||
token = strtok(buffer, delim);
|
||||
|
||||
while (token != NULL) {
|
||||
|
||||
size = strlen(buffer2);
|
||||
|
||||
if (strlen(token))
|
||||
snprintf(buffer2+size, sizeof(buffer2)-size, "%s%s\n", prefix, token);
|
||||
else
|
||||
snprintf(buffer2+size, sizeof(buffer2)-size, "\n");
|
||||
|
||||
token = strtok(NULL, delim);
|
||||
}
|
||||
PrintAndLog(buffer2);
|
||||
} else {
|
||||
snprintf(buffer2, sizeof(buffer2), "%s%s", prefix, buffer);
|
||||
PrintAndLog(buffer2);
|
||||
}
|
||||
}
|
||||
|
||||
void PrintAndLog(char *fmt, ...)
|
||||
{
|
||||
char *saved_line;
|
||||
|
|
|
@ -14,11 +14,15 @@
|
|||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define MAX_PRINT_BUFFER 2048
|
||||
typedef enum logLevel {NORMAL, SUCCESS, INFO, FAILED, WARNING, ERR, DEBUG} logLevel_t;
|
||||
|
||||
void ShowGui(void);
|
||||
void HideGraphWindow(void);
|
||||
void ShowGraphWindow(void);
|
||||
void RepaintGraphWindow(void);
|
||||
void PrintAndLog(char *fmt, ...);
|
||||
void PrintAndLogEx(logLevel_t level, char *fmt, ...);
|
||||
void SetLogFilename(char *fn);
|
||||
void SetFlushAfterWrite(bool flush_after_write);
|
||||
|
||||
|
|
|
@ -35,6 +35,46 @@
|
|||
#define FILE_PATH_SIZE 2000
|
||||
#endif
|
||||
|
||||
#ifndef ARRAYLEN
|
||||
# define ARRAYLEN(x) (sizeof(x)/sizeof((x)[0]))
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || (__APPLE__)
|
||||
# define _BLUE_(s) "\x1b[34m" #s "\x1b[0m "
|
||||
#else
|
||||
# define _BLUE_(s) #s " "
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || (__APPLE__)
|
||||
# define _RED_(s) "\x1b[31m" #s "\x1b[0m "
|
||||
#else
|
||||
# define _RED_(s) #s " "
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || (__APPLE__)
|
||||
# define _GREEN_(s) "\x1b[32m" #s "\x1b[0m "
|
||||
#else
|
||||
# define _GREEN_(s) #s " "
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || (__APPLE__)
|
||||
# define _YELLOW_(s) "\x1b[33m" #s "\x1b[0m "
|
||||
#else
|
||||
# define _YELLOW_(s) #s " "
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || (__APPLE__)
|
||||
# define _MAGENTA_(s) "\x1b[35m" #s "\x1b[0m "
|
||||
#else
|
||||
# define _MAGENTA_(s) #s " "
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || (__APPLE__)
|
||||
# define _CYAN_(s) "\x1b[36m" #s "\x1b[0m "
|
||||
#else
|
||||
# define _CYAN_(s) #s " "
|
||||
#endif
|
||||
|
||||
extern int ukbhit(void);
|
||||
|
||||
extern void AddLogLine(char *fileName, char *extData, char *c);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue