Skip to content
Snippets Groups Projects
Commit ebed3471 authored by Niels Möller's avatar Niels Möller
Browse files

Copied \r-fixes from pike-0.7

Rev: lib/modules/Tools.pmod/PEM.pmod:1.4
Rev: lib/modules/Tools.pmod/_PEM.pmod:1.2
parent 8d0623df
No related branches found
No related tags found
No related merge requests found
......@@ -98,6 +98,9 @@ class rfc934 {
for(; i < sizeof(parts); i++)
{
#ifdef PEM_DEBUG
werror(sprintf("parts[%d] = '%s'\n", i, parts[i]));
#endif
if (sizeof(parts[i]) && (parts[i][0] == ' '))
{
/* Escape, just remove the "- " prefix */
......@@ -126,6 +129,16 @@ class rfc934 {
{
boundary = "-" + parts[i][..end-1];
current = parts[i][end..];
} else {
/* This is a special case that happens if the input data had
* no terminating newline after the final boundary. */
#ifdef PEM_DEBUG
werror(sprintf("Final boundary, with no terminating newline.\n"
" boundary='%s'\n", boundary));
#endif
boundary = "-" + parts[i];
break;
}
}
final_text = current;
......
......@@ -10,9 +10,13 @@ object rfc822_start_re = Regexp("^([-a-zA-Z][a-zA-Z0-9]*[ \t]*:|[ \t]*\n\n)");
/* Regexp used to extract the interesting part of an encapsulation
* boundary. Also strips spaces, and requires that the string in the
* middle between ---foo --- is at least two characters long. */
* middle between ---foo --- is at least two characters long. Also
* allow a trailing \r or other white space characters. */
object rfc934_eb_re = Regexp("^-*[ \t]*([^- \t].*[^- \t])[ \t]*-*$");
object rfc934_eb_re = Regexp(
"^-*[ \r\t]*([^- \r\t]" /* First non dash-or-space character */
".*[^- \r\t])" /* Last non dash-or-space character */
"[ \r\t]*-*[ \r\t]*$"); /* Trailing space, dashes and space */
/* Start and end markers for PEM */
......@@ -44,6 +48,15 @@ string dash_stuff(string msg)
return parts * "- -";
}
#if 0
string chop_cr(string s)
{
return (strlen(s) && (s[-1] == '\r'))
? s[..strlen(s) - 2]
: s;
}
#endif
/* Strip dashes */
string extract_boundary(string s)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment