Example #1
0
File: add.c Project: 198767/cyy3
/* The base should be a integral between MIN_BASE~MAX_BASE
   return values: 
	-1: invalid base  
	-2: base is not in MIN_BASE~MAX_BASE
	else: the base coverted to int
*/
int test_base(const char* base)
{
	int i;
	const char* p;
	p=base;
	while(*p)
	{
		if(!isdigit(*p))
			return -1;
		p++;
	}

	//ignore leading zeros
	p=base;
	while(*p=='0' && *p)
		p++;

	// all zeros
	if(!*p)
		return -2;

	// >MAX_BASE
	if(strlen(p) > strlen(MACRO2STR(MAX_BASE)))
		return -2; 
	else if(strlen(p)==strlen(MACRO2STR(MAX_BASE)))
	{
		if(strcmp(p,MACRO2STR(MAX_BASE))>0)
			return -2; 
	}
	i=atoi(p);
	if(i<2)
		return -2;
	return i;
}
Example #2
0
static char* busStatToStr(const unsigned long flag) {
    char* tempStr = NULL;
    #define MACRO2STR(x) case x: tempStr = #x; break
    switch (flag) {
        MACRO2STR( CHIPSTAT_BUSOFF        );
        MACRO2STR( CHIPSTAT_ERROR_PASSIVE );
        MACRO2STR( CHIPSTAT_ERROR_WARNING );
        MACRO2STR( CHIPSTAT_ERROR_ACTIVE  );
        default: tempStr = ""; break;
    }
    #undef MACRO2STR
    return tempStr;
}