Skip to content

Commit

Permalink
DRY list of integer formats
Browse files Browse the repository at this point in the history
  • Loading branch information
Chip Salzenberg committed Dec 20, 2011
1 parent 1d5e27f commit 56ae8aa
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions hiredis.c
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) {
default:
/* Try to detect printf format */
{
static const char intfmts[] = "diouxX";
char _format[16];
const char *_p = c+1;
size_t _l = 0;
Expand All @@ -774,7 +775,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) {
va_copy(_cpy,ap);

/* Integer conversion (without modifiers) */
if (strchr("diouxX",*_p) != NULL) {
if (strchr(intfmts,*_p) != NULL) {
va_arg(ap,int);
goto fmt_valid;
}
Expand All @@ -788,7 +789,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) {
/* Size: char */
if (_p[0] == 'h' && _p[1] == 'h') {
_p += 2;
if (*_p != '\0' && strchr("diouxX",*_p) != NULL) {
if (*_p != '\0' && strchr(intfmts,*_p) != NULL) {
va_arg(ap,int); /* char gets promoted to int */
goto fmt_valid;
}
Expand All @@ -798,7 +799,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) {
/* Size: short */
if (_p[0] == 'h') {
_p += 1;
if (*_p != '\0' && strchr("diouxX",*_p) != NULL) {
if (*_p != '\0' && strchr(intfmts,*_p) != NULL) {
va_arg(ap,int); /* short gets promoted to int */
goto fmt_valid;
}
Expand All @@ -808,7 +809,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) {
/* Size: long long */
if (_p[0] == 'l' && _p[1] == 'l') {
_p += 2;
if (*_p != '\0' && strchr("diouxX",*_p) != NULL) {
if (*_p != '\0' && strchr(intfmts,*_p) != NULL) {
va_arg(ap,long long);
goto fmt_valid;
}
Expand All @@ -818,7 +819,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) {
/* Size: long */
if (_p[0] == 'l') {
_p += 1;
if (*_p != '\0' && strchr("diouxX",*_p) != NULL) {
if (*_p != '\0' && strchr(intfmts,*_p) != NULL) {
va_arg(ap,long);
goto fmt_valid;
}
Expand Down

0 comments on commit 56ae8aa

Please sign in to comment.