Mercurial > pidgin
changeset 9064:290a7213f9e4
[gaim-migrate @ 9840]
wing says this will fix some kind of blank yahoo mail notification bug.
I don't use Yahoo mail, so I encourge people who do to test this, just in
case.
committer: Tailor Script <tailor@pidgin.im>
author | Tim Ringenbach <marv@pidgin.im> |
---|---|
date | Tue, 25 May 2004 23:12:14 +0000 |
parents | 350c6845c792 |
children | 23547b9f8cec |
files | src/protocols/yahoo/yahoo.c |
diffstat | 1 files changed, 23 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/protocols/yahoo/yahoo.c Tue May 25 22:51:02 2004 +0000 +++ b/src/protocols/yahoo/yahoo.c Tue May 25 23:12:14 2004 +0000 @@ -911,10 +911,29 @@ for (p = text; p < end; p++, n++) { if (*p == '\\') { - k = 0; - sscanf(p + 1, "%3o%n\n", &i, &k); - *n = i; - p += k; + if (p[1] >= '0' && p[1] <= '7') { + p += 1; + for (i = 0, k = 0; k < 3; k += 1) { + char c = p[k]; + if (c < '0' || c > '7') break; + i *= 8; + i += c - '0'; + } + *n = i; + p += k - 1; + } else { /* bug 959248 */ + /* If we see a \ not followed by an octal number, + * it means that it is actually a \\ with one \ + * already eaten by some unknown function. + * This is arguably broken. + * + * I think wing is wrong here, there is no function + * called that I see that could have done it. I guess + * it is just really sending single \'s. That's yahoo + * for you. + */ + *n = *p; + } } else *n = *p;