mirror of https://github.com/redis/redis.git
				
				
				
			Utils: added function to get radix 10 string length of signed integer.
This commit is contained in:
		
							parent
							
								
									7e6b4ea67b
								
							
						
					
					
						commit
						c95507881a
					
				
							
								
								
									
										12
									
								
								src/util.c
								
								
								
								
							
							
						
						
									
										12
									
								
								src/util.c
								
								
								
								
							| 
						 | 
				
			
			@ -251,6 +251,18 @@ uint32_t digits10(uint64_t v) {
 | 
			
		|||
    return 12 + digits10(v / 1000000000000UL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Like digits10() but for signed values. */
 | 
			
		||||
uint32_t sdigits10(int64_t v) {
 | 
			
		||||
    if (v < 0) {
 | 
			
		||||
        /* Abs value of LLONG_MIN requires special handling. */
 | 
			
		||||
        uint64_t uv = (v != LLONG_MIN) ?
 | 
			
		||||
                      -v : ((uint64_t) LLONG_MAX)+1;
 | 
			
		||||
        return digits10(uv)+1; /* +1 for the minus. */
 | 
			
		||||
    } else {
 | 
			
		||||
        return digits10(v);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Convert a long long into a string. Returns the number of
 | 
			
		||||
 * characters needed to represent the number.
 | 
			
		||||
 * If the buffer is not big enough to store the string, 0 is returned.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,6 +35,8 @@
 | 
			
		|||
int stringmatchlen(const char *p, int plen, const char *s, int slen, int nocase);
 | 
			
		||||
int stringmatch(const char *p, const char *s, int nocase);
 | 
			
		||||
long long memtoll(const char *p, int *err);
 | 
			
		||||
uint32_t digits10(uint64_t v);
 | 
			
		||||
uint32_t sdigits10(int64_t v);
 | 
			
		||||
int ll2string(char *s, size_t len, long long value);
 | 
			
		||||
int string2ll(const char *s, size_t slen, long long *value);
 | 
			
		||||
int string2l(const char *s, size_t slen, long *value);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue