iconv: Always encode "optional direct" UTF-7 characters

Signed-off-by: Max Gautier <mg@max.gautier.name>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Max Gautier 2021-12-09 10:31:49 +01:00 committed by Adhemerval Zanella
parent 59c30d5708
commit cd08388523

View File

@ -29,14 +29,6 @@
#include <stdlib.h> #include <stdlib.h>
/* Define this to 1 if you want the so-called "optional direct" characters
! " # $ % & * ; < = > @ [ ] ^ _ ` { | }
to be encoded. Define to 0 if you want them to be passed straight
through, like the so-called "direct" characters.
We set this to 1 because it's safer.
*/
#define UTF7_ENCODE_OPTIONAL_CHARS 1
/* The set of "direct characters": /* The set of "direct characters":
A-Z a-z 0-9 ' ( ) , - . / : ? space tab lf cr A-Z a-z 0-9 ' ( ) , - . / : ? space tab lf cr
@ -323,7 +315,7 @@ base64 (unsigned int i)
if ((statep->__count & 0x18) == 0) \ if ((statep->__count & 0x18) == 0) \
{ \ { \
/* base64 encoding inactive */ \ /* base64 encoding inactive */ \
if (UTF7_ENCODE_OPTIONAL_CHARS ? isdirect (ch) : isxdirect (ch)) \ if (isdirect (ch)) \
{ \ { \
*outptr++ = (unsigned char) ch; \ *outptr++ = (unsigned char) ch; \
} \ } \
@ -375,7 +367,7 @@ base64 (unsigned int i)
else \ else \
{ \ { \
/* base64 encoding active */ \ /* base64 encoding active */ \
if (UTF7_ENCODE_OPTIONAL_CHARS ? isdirect (ch) : isxdirect (ch)) \ if (isdirect (ch)) \
{ \ { \
/* deactivate base64 encoding */ \ /* deactivate base64 encoding */ \
size_t count; \ size_t count; \