diff options
author | Holger Freyther <zecke@selfish.org> | 2007-05-19 19:17:02 +0000 |
---|---|---|
committer | Holger Freyther <zecke@selfish.org> | 2007-05-19 19:17:02 +0000 |
commit | bf2a3a665167e5b25f8d47d013b5a6170e4c166b (patch) | |
tree | ddf0092a2a2d4f0f025777f01ce536fe31f5661a /packages/libmrss/files | |
parent | 805bb294632a8ace210dfc82e5c99488c95ecc05 (diff) |
packages/libmrss: Update to mrss 0.17.2
- Drop the atom-right-date.patch as this was applied upstream
- Add a new method that helps the OpenMoko RSS Reader to cache
feeds.
- Update the checksum, the diff of 0.17.1 to 0.17.2 looked sane
Diffstat (limited to 'packages/libmrss/files')
-rw-r--r-- | packages/libmrss/files/atom-right-date.patch | 15 | ||||
-rw-r--r-- | packages/libmrss/files/better-parse-url-r0.patch | 90 |
2 files changed, 90 insertions, 15 deletions
diff --git a/packages/libmrss/files/atom-right-date.patch b/packages/libmrss/files/atom-right-date.patch deleted file mode 100644 index ba231b2ab4..0000000000 --- a/packages/libmrss/files/atom-right-date.patch +++ /dev/null @@ -1,15 +0,0 @@ -tm_mon goes from 0-11 written dates from 1-12. It is too late to consider security -here. The worst that can happen is that tm_mon == 0 gets negative but I assume -glibc to do range checking. -Index: libmrss-0.17.1/src/mrss_parser.c -=================================================================== ---- libmrss-0.17.1.orig/src/mrss_parser.c 2007-04-08 02:42:23.000000000 +0200 -+++ libmrss-0.17.1/src/mrss_parser.c 2007-04-08 02:43:37.000000000 +0200 -@@ -150,6 +150,7 @@ - { - char datebuf[256]; - stm.tm_year -= 1900; -+ stm.tm_mon -= 1; - - if (!data->c_locale - && !(data->c_locale = newlocale (LC_ALL_MASK, "C", NULL))) diff --git a/packages/libmrss/files/better-parse-url-r0.patch b/packages/libmrss/files/better-parse-url-r0.patch new file mode 100644 index 0000000000..94a78110a2 --- /dev/null +++ b/packages/libmrss/files/better-parse-url-r0.patch @@ -0,0 +1,90 @@ +Index: libmrss-0.17.2/src/mrss.h +=================================================================== +--- libmrss-0.17.2.orig/src/mrss.h 2007-04-02 14:42:55.000000000 +0200 ++++ libmrss-0.17.2/src/mrss.h 2007-05-19 20:56:08.000000000 +0200 +@@ -523,6 +523,22 @@ + mrss_t ** mrss, + mrss_options_t * options); + ++/** ++ * Like the previous function but you take ownership of the downloaded buffer in case of success ++ * \param url The url to be parsed ++ * \param mrss the pointer to your data struct ++ * \param options a pointer to a options data struct ++ * \param feed_content a pointer to the buffer with the document. This is not NULL terminated ++ * \param feed_size the size of the buffer above ++ * \return the error code ++ */ ++mrss_error_t mrss_parse_url_and_transfer_buffer ++ (char * url, ++ mrss_t ** mrss, ++ mrss_options_t * options, ++ char ** feed_content, ++ int * feed_size); ++ + /** + * Parses a file and creates the data struct of the feed RSS url + * \param file The file to be parsed +Index: libmrss-0.17.2/src/mrss_parser.c +=================================================================== +--- libmrss-0.17.2.orig/src/mrss_parser.c 2007-05-19 20:47:08.000000000 +0200 ++++ libmrss-0.17.2/src/mrss_parser.c 2007-05-19 20:56:37.000000000 +0200 +@@ -1075,13 +1075,20 @@ + mrss_error_t + mrss_parse_url (char *url, mrss_t ** ret) + { +- return mrss_parse_url_with_options (url, ret, NULL); ++ return mrss_parse_url_and_transfer_buffer (url, ret, NULL, NULL, NULL); + } + + mrss_error_t + mrss_parse_url_with_options (char *url, mrss_t ** ret, + mrss_options_t * options) + { ++ return mrss_parse_url_and_transfer_buffer (url, ret, options, NULL, NULL); ++} ++ ++mrss_error_t ++mrss_parse_url_and_transfer_buffer (char *url, mrss_t ** ret, ++ mrss_options_t * options, char **download_buffer, int *download_size) ++{ + nxml_t *doc; + mrss_error_t err; + char *buffer; +@@ -1117,7 +1124,8 @@ + + if (nxml_parse_buffer (doc, buffer, size) != NXML_OK) + { +- free (buffer); ++ if (!download_buffer) ++ free (buffer); + nxml_free (doc); + + return MRSS_ERR_PARSER; +@@ -1127,7 +1135,8 @@ + { + if (!((*ret)->file = strdup (url))) + { +- free (buffer); ++ if (!download_buffer) ++ free (buffer); + + mrss_free (*ret); + nxml_free (doc); +@@ -1138,9 +1147,15 @@ + (*ret)->size = size; + } + +- free (buffer); ++ if (!download_buffer) ++ free (buffer); + nxml_free (doc); + ++ /* transfer ownership */ ++ if (download_buffer) ++ *download_buffer = buffer; ++ if (download_size) ++ *download_size = size; + return err; + } + |