Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
John McEleney
/
mailutils
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
9e7d23ac
...
9e7d23acce37814dd0e21b0acf80aee9bc5dc615
authored
2006-05-23 12:47:33 +0000
by
Sergey Poznyakoff
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Allow to change encoding and charset at runtime
1 parent
a087397f
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
6 deletions
examples/encode2047.c
examples/encode2047.c
View file @
9e7d23a
...
...
@@ -28,38 +28,72 @@ main (int argc, char *argv[])
{
int
c
;
char
buf
[
256
];
char
*
charset
=
"iso-8859-1"
;
char
*
encoding
=
"quoted-printable"
;
char
*
charset
=
strdup
(
"iso-8859-1"
)
;
char
*
encoding
=
strdup
(
"quoted-printable"
)
;
while
((
c
=
getopt
(
argc
,
argv
,
"c:e:h"
))
!=
EOF
)
switch
(
c
)
{
case
'c'
:
charset
=
optarg
;
free
(
charset
);
charset
=
strdup
(
optarg
);
break
;
case
'e'
:
encoding
=
optarg
;
free
(
encoding
);
encoding
=
strdup
(
optarg
);
break
;
case
'h'
:
printf
(
"usage: %s [-c charset] [-e encoding]
\n
"
,
argv
[
0
]);
exit
(
0
);
default:
exit
(
1
);
}
while
(
fgets
(
buf
,
sizeof
(
buf
),
stdin
))
{
int
len
;
char
*
p
=
NULL
;
int
rc
,
len
;
len
=
strlen
(
buf
);
if
(
len
>
0
&&
buf
[
len
-
1
]
==
'\n'
)
buf
[
len
-
1
]
=
0
;
rc
=
mu_rfc2047_encode
(
charset
,
encoding
,
buf
,
&
p
);
if
(
buf
[
0
]
==
'\\'
)
{
if
(
buf
[
1
]
==
0
)
{
fprintf
(
stderr
,
"Unfinished command
\n
"
);
continue
;
}
for
(
p
=
buf
+
2
;
*
p
&&
*
p
==
' '
;
p
++
)
;
switch
(
buf
[
1
])
{
case
'c'
:
free
(
charset
);
charset
=
strdup
(
p
);
break
;
case
'e'
:
free
(
encoding
);
encoding
=
strdup
(
p
);
break
;
default:
fprintf
(
stderr
,
"Unknown command
\n
"
);
}
}
else
{
int
rc
=
mu_rfc2047_encode
(
charset
,
encoding
,
buf
,
&
p
);
printf
(
"%s=> %s
\n
"
,
buf
,
mu_strerror
(
rc
));
if
(
p
)
printf
(
"%s
\n
"
,
p
);
free
(
p
);
}
}
return
0
;
}
...
...
Please
register
or
sign in
to post a comment