Mercurial > hg > octave-lojdl > gnulib-hg
changeset 6871:3f3ba5c21147
* base64.c (B64): Use _ as the formal parameter, not x, to avoid
bug in IBM C V6 for AIX.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Mon, 26 Jun 2006 21:30:03 +0000 |
parents | 26528749c48b |
children | ed4106144765 |
files | lib/ChangeLog lib/base64.c |
diffstat | 2 files changed, 75 insertions(+), 66 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2006-06-26 Paul Eggert <eggert@cs.ucla.edu> + + * base64.c (B64): Use _ as the formal parameter, not x, to avoid + bug in IBM C V6 for AIX. Problem reported by Larry Jones in + <http://lists.gnu.org/archive/html/bug-gnulib/2006-06/msg00181.html>. + 2006-06-26 Bruno Haible <bruno@clisp.org> * stdlib_.h: Include <wchar.h> if necessary for WCHAR_MIN or
--- a/lib/base64.c +++ b/lib/base64.c @@ -149,72 +149,75 @@ Base64 alphabet (A-Za-z0-9+/) are encoded in 0..255. POSIX 1003.1-2001 require that char and unsigned char are 8-bit quantities, though, taking care of that problem. But this may be a - potential problem on non-POSIX C99 platforms. */ -#define B64(x) \ - ((x) == 'A' ? 0 \ - : (x) == 'B' ? 1 \ - : (x) == 'C' ? 2 \ - : (x) == 'D' ? 3 \ - : (x) == 'E' ? 4 \ - : (x) == 'F' ? 5 \ - : (x) == 'G' ? 6 \ - : (x) == 'H' ? 7 \ - : (x) == 'I' ? 8 \ - : (x) == 'J' ? 9 \ - : (x) == 'K' ? 10 \ - : (x) == 'L' ? 11 \ - : (x) == 'M' ? 12 \ - : (x) == 'N' ? 13 \ - : (x) == 'O' ? 14 \ - : (x) == 'P' ? 15 \ - : (x) == 'Q' ? 16 \ - : (x) == 'R' ? 17 \ - : (x) == 'S' ? 18 \ - : (x) == 'T' ? 19 \ - : (x) == 'U' ? 20 \ - : (x) == 'V' ? 21 \ - : (x) == 'W' ? 22 \ - : (x) == 'X' ? 23 \ - : (x) == 'Y' ? 24 \ - : (x) == 'Z' ? 25 \ - : (x) == 'a' ? 26 \ - : (x) == 'b' ? 27 \ - : (x) == 'c' ? 28 \ - : (x) == 'd' ? 29 \ - : (x) == 'e' ? 30 \ - : (x) == 'f' ? 31 \ - : (x) == 'g' ? 32 \ - : (x) == 'h' ? 33 \ - : (x) == 'i' ? 34 \ - : (x) == 'j' ? 35 \ - : (x) == 'k' ? 36 \ - : (x) == 'l' ? 37 \ - : (x) == 'm' ? 38 \ - : (x) == 'n' ? 39 \ - : (x) == 'o' ? 40 \ - : (x) == 'p' ? 41 \ - : (x) == 'q' ? 42 \ - : (x) == 'r' ? 43 \ - : (x) == 's' ? 44 \ - : (x) == 't' ? 45 \ - : (x) == 'u' ? 46 \ - : (x) == 'v' ? 47 \ - : (x) == 'w' ? 48 \ - : (x) == 'x' ? 49 \ - : (x) == 'y' ? 50 \ - : (x) == 'z' ? 51 \ - : (x) == '0' ? 52 \ - : (x) == '1' ? 53 \ - : (x) == '2' ? 54 \ - : (x) == '3' ? 55 \ - : (x) == '4' ? 56 \ - : (x) == '5' ? 57 \ - : (x) == '6' ? 58 \ - : (x) == '7' ? 59 \ - : (x) == '8' ? 60 \ - : (x) == '9' ? 61 \ - : (x) == '+' ? 62 \ - : (x) == '/' ? 63 \ + potential problem on non-POSIX C99 platforms. + + IBM C V6 for AIX mishandles "#define B64(x) ...'x'...", so use "_" + as the formal parameter rather than "x". */ +#define B64(_) \ + ((_) == 'A' ? 0 \ + : (_) == 'B' ? 1 \ + : (_) == 'C' ? 2 \ + : (_) == 'D' ? 3 \ + : (_) == 'E' ? 4 \ + : (_) == 'F' ? 5 \ + : (_) == 'G' ? 6 \ + : (_) == 'H' ? 7 \ + : (_) == 'I' ? 8 \ + : (_) == 'J' ? 9 \ + : (_) == 'K' ? 10 \ + : (_) == 'L' ? 11 \ + : (_) == 'M' ? 12 \ + : (_) == 'N' ? 13 \ + : (_) == 'O' ? 14 \ + : (_) == 'P' ? 15 \ + : (_) == 'Q' ? 16 \ + : (_) == 'R' ? 17 \ + : (_) == 'S' ? 18 \ + : (_) == 'T' ? 19 \ + : (_) == 'U' ? 20 \ + : (_) == 'V' ? 21 \ + : (_) == 'W' ? 22 \ + : (_) == 'X' ? 23 \ + : (_) == 'Y' ? 24 \ + : (_) == 'Z' ? 25 \ + : (_) == 'a' ? 26 \ + : (_) == 'b' ? 27 \ + : (_) == 'c' ? 28 \ + : (_) == 'd' ? 29 \ + : (_) == 'e' ? 30 \ + : (_) == 'f' ? 31 \ + : (_) == 'g' ? 32 \ + : (_) == 'h' ? 33 \ + : (_) == 'i' ? 34 \ + : (_) == 'j' ? 35 \ + : (_) == 'k' ? 36 \ + : (_) == 'l' ? 37 \ + : (_) == 'm' ? 38 \ + : (_) == 'n' ? 39 \ + : (_) == 'o' ? 40 \ + : (_) == 'p' ? 41 \ + : (_) == 'q' ? 42 \ + : (_) == 'r' ? 43 \ + : (_) == 's' ? 44 \ + : (_) == 't' ? 45 \ + : (_) == 'u' ? 46 \ + : (_) == 'v' ? 47 \ + : (_) == 'w' ? 48 \ + : (_) == 'x' ? 49 \ + : (_) == 'y' ? 50 \ + : (_) == 'z' ? 51 \ + : (_) == '0' ? 52 \ + : (_) == '1' ? 53 \ + : (_) == '2' ? 54 \ + : (_) == '3' ? 55 \ + : (_) == '4' ? 56 \ + : (_) == '5' ? 57 \ + : (_) == '6' ? 58 \ + : (_) == '7' ? 59 \ + : (_) == '8' ? 60 \ + : (_) == '9' ? 61 \ + : (_) == '+' ? 62 \ + : (_) == '/' ? 63 \ : -1) static const signed char b64[0x100] = {