Skip to content

Commit

Permalink
prf.c: implement the "hh" length modifier
Browse files Browse the repository at this point in the history
For completeness.

Signed-off-by: Nicolas Pitre <[email protected]>
  • Loading branch information
Nicolas Pitre authored and nashif committed Jul 15, 2019
1 parent e9b1cc5 commit e1d8c1f
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions lib/libc/minimal/source/stdout/prf.c
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,7 @@ int z_prf(int (*func)(), void *dest, const char *format, va_list vargs)
* This implementation only supports the following
* length modifiers:
* h: short
* hh: char
* l: long
* ll: long long
* z: size_t or ssize_t
Expand All @@ -560,6 +561,9 @@ int z_prf(int (*func)(), void *dest, const char *format, va_list vargs)
i == 'l' && c == 'l') {
i = 'L';
c = *format++;
} else if (i == 'h' && c == 'h') {
i = 'H';
c = *format++;
}
}

Expand Down Expand Up @@ -588,6 +592,7 @@ int z_prf(int (*func)(), void *dest, const char *format, va_list vargs)
val = va_arg(vargs, ssize_t);
break;
case 'h':
case 'H':
default:
val = va_arg(vargs, int);
break;
Expand Down Expand Up @@ -643,6 +648,9 @@ int z_prf(int (*func)(), void *dest, const char *format, va_list vargs)
case 'h':
*va_arg(vargs, short *) = count;
break;
case 'H':
*va_arg(vargs, char *) = count;
break;
case 'l':
*va_arg(vargs, long *) = count;
break;
Expand Down Expand Up @@ -705,6 +713,7 @@ int z_prf(int (*func)(), void *dest, const char *format, va_list vargs)
val = va_arg(vargs, size_t);
break;
case 'h':
case 'H':
default:
val = va_arg(vargs, unsigned int);
break;
Expand Down

0 comments on commit e1d8c1f

Please sign in to comment.