/* string_extras.c */
/*
This file is part of the ARM-Crypto-Lib.
- Copyright (C) 2006-2010 Daniel Otte (daniel.otte@rub.de)
+ Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <ctype.h>
#include <string.h>
+#include "cli.h"
+
uint32_t stridentcnt(const char* a, const char* b){
uint16_t i=0;
for(;;){
a++;
b++;
}
+ return 0;
}
uint16_t firstword_length(const char* s){
uint16_t ret=0;
- while(isgraph((uint8_t)(*s++)))
+ if(!s){
+ return 0;
+ }
+ int c;
+ while(c=*s++, isgraph(c)){
ret++;
+ }
return ret;
}
return buffer;
}
while(a){
+ /* toolchain bug??
result = div(a, radix);
+ */
+ result.quot = a/radix;
+ result.rem = a%radix;
*ptr = result.rem;
if(result.rem<10){
*ptr += '0';
return buffer;
}
+
char* ulltoa(unsigned long long a, char* buffer, uint8_t radix){
if(radix<2 || radix>36){
return NULL;
}
char* ptr=buffer;
uint8_t rem;
+ unsigned long long quot;
if(a==0){
ptr[0] = '0';
ptr[1] = '\0';
}
while(a){
rem = a % radix;
- a = a / radix;
- *ptr = rem;
+ quot = a / radix;
if(rem<10){
- *ptr += '0';
+ rem += '0';
}else{
- *ptr += 'a'-10;
+ rem += 'a'-10;
}
- ++ptr;
+ *ptr++ =rem;
+ a = quot;
}
*ptr = '\0';
str_reverse(buffer);
}
}
*/
+
+char* utoa(unsigned a, char* buffer, uint8_t radix){
+ return ultoa((unsigned)a, buffer, radix);
+}
+
+char* itoa(int a, char* buffer, uint8_t radix){
+ if(a<0){
+ *buffer = '-';
+ a = -a;
+ }
+ ultoa(a, buffer + 1, radix);
+ return buffer;
+}