Main Page | Data Structures | Directories | File List | Data Fields | Globals

mrss_edit.c File Reference

#include "mrss.h"
#include "mrss_internal.h"

Include dependency graph for mrss_edit.c:

Go to the source code of this file.

Defines

#define __MRSS_SET_STRING(x)
#define __MRSS_SET_INTEGER(x)   x=(int)value;
#define __MRSS_GET_STRING(x)
#define __MRSS_GET_INTEGER(x)

Functions

static mrss_error_t __mrss_set_channel (mrss_t *, va_list)
static mrss_error_t __mrss_set_item (mrss_item_t *, va_list)
static mrss_error_t __mrss_set_hour (mrss_hour_t *, va_list)
static mrss_error_t __mrss_set_day (mrss_day_t *, va_list)
static mrss_error_t __mrss_set_category (mrss_category_t *, va_list)
static mrss_error_t __mrss_get_channel (mrss_t *, va_list)
static mrss_error_t __mrss_get_item (mrss_item_t *, va_list)
static mrss_error_t __mrss_get_hour (mrss_hour_t *, va_list)
static mrss_error_t __mrss_get_day (mrss_day_t *, va_list)
static mrss_error_t __mrss_get_category (mrss_category_t *, va_list)
static mrss_error_t __mrss_new_subdata_channel (mrss_t *, mrss_element_t, mrss_generic_t)
static mrss_error_t __mrss_new_subdata_item (mrss_item_t *, mrss_element_t, mrss_generic_t)
static mrss_error_t __mrss_remove_subdata_channel (mrss_t *, mrss_generic_t)
static mrss_error_t __mrss_remove_subdata_item (mrss_item_t *, mrss_generic_t)
mrss_error_t mrss_new (mrss_t **data)
mrss_error_t mrss_set (mrss_generic_t data,...)
mrss_error_t mrss_get (mrss_generic_t data,...)
mrss_error_t mrss_new_subdata (mrss_generic_t data, mrss_element_t element, mrss_generic_t new)
mrss_error_t mrss_remove_subdata (mrss_generic_t data, mrss_generic_t subdata)


Define Documentation

#define __MRSS_GET_INTEGER  ) 
 

Value:

integer=(int *)value; \
                *integer=x;

Definition at line 62 of file mrss_edit.c.

Referenced by __mrss_get_channel(), and __mrss_get_item().

#define __MRSS_GET_STRING  ) 
 

Value:

string = (char **)value; \
                if (!x) *string = NULL; \
                else if(!(*string = strdup(x))) return MRSS_ERR_POSIX;

Definition at line 57 of file mrss_edit.c.

Referenced by __mrss_get_category(), __mrss_get_channel(), __mrss_get_day(), __mrss_get_hour(), and __mrss_get_item().

#define __MRSS_SET_INTEGER  )     x=(int)value;
 

Definition at line 54 of file mrss_edit.c.

Referenced by __mrss_set_channel(), and __mrss_set_item().

#define __MRSS_SET_STRING  ) 
 

Value:

if(x) free(x); \
                if(value && !(x=strdup(value))) return MRSS_ERR_POSIX; \
                else if(!value) x=NULL;

Definition at line 49 of file mrss_edit.c.

Referenced by __mrss_set_category(), __mrss_set_channel(), __mrss_set_day(), __mrss_set_hour(), and __mrss_set_item().


Function Documentation

static mrss_error_t __mrss_get_category mrss_category_t ,
va_list 
[static]
 

Definition at line 661 of file mrss_edit.c.

References __MRSS_GET_STRING, mrss_category_t::category, mrss_category_t::domain, MRSS_ERR_DATA, MRSS_FLAG_CATEGORY, MRSS_FLAG_CATEGORY_DOMAIN, and MRSS_OK.

Referenced by mrss_get().

00662 {
00663   mrss_flag_t flag;
00664   void *value;
00665   char **string;
00666 
00667   while ((flag = va_arg (va, mrss_flag_t)))
00668     {
00669       value = va_arg (va, void *);
00670 
00671       switch (flag)
00672         {
00673         case MRSS_FLAG_CATEGORY:
00674           __MRSS_GET_STRING (data->category);
00675           break;
00676 
00677         case MRSS_FLAG_CATEGORY_DOMAIN:
00678           __MRSS_GET_STRING (data->domain);
00679           break;
00680 
00681         default:
00682           return MRSS_ERR_DATA;
00683         }
00684     }
00685 
00686   return MRSS_OK;
00687 }

static mrss_error_t __mrss_get_channel mrss_t ,
va_list 
[static]
 

Definition at line 467 of file mrss_edit.c.

References __MRSS_GET_INTEGER, __MRSS_GET_STRING, mrss_t::cloud, mrss_t::cloud_domain, mrss_t::cloud_path, mrss_t::cloud_port, mrss_t::cloud_protocol, mrss_t::cloud_registerProcedure, mrss_t::copyright, mrss_t::description, mrss_t::docs, mrss_t::generator, mrss_t::image_description, mrss_t::image_height, mrss_t::image_link, mrss_t::image_title, mrss_t::image_url, mrss_t::image_width, mrss_t::language, mrss_t::lastBuildDate, mrss_t::link, mrss_t::managingeditor, MRSS_ERR_DATA, MRSS_FLAG_CLOUD, MRSS_FLAG_CLOUD_DOMAIN, MRSS_FLAG_CLOUD_PATH, MRSS_FLAG_CLOUD_PORT, MRSS_FLAG_CLOUD_PROTOCOL, MRSS_FLAG_CLOUD_REGISTERPROCEDURE, MRSS_FLAG_COPYRIGHT, MRSS_FLAG_DESCRIPTION, MRSS_FLAG_DOCS, MRSS_FLAG_GENERATOR, MRSS_FLAG_IMAGE_DESCRIPTION, MRSS_FLAG_IMAGE_HEIGHT, MRSS_FLAG_IMAGE_LINK, MRSS_FLAG_IMAGE_TITLE, MRSS_FLAG_IMAGE_URL, MRSS_FLAG_IMAGE_WIDTH, MRSS_FLAG_LANGUAGE, MRSS_FLAG_LASTBUILDDATE, MRSS_FLAG_LINK, MRSS_FLAG_MANAGINGEDITOR, MRSS_FLAG_PUBDATE, MRSS_FLAG_RATING, MRSS_FLAG_TEXTINPUT_DESCRIPTION, MRSS_FLAG_TEXTINPUT_LINK, MRSS_FLAG_TEXTINPUT_NAME, MRSS_FLAG_TEXTINPUT_TITLE, MRSS_FLAG_TITLE, MRSS_FLAG_TTL, MRSS_FLAG_VERSION, MRSS_FLAG_WEBMASTER, MRSS_OK, mrss_t::pubDate, mrss_t::rating, mrss_t::textinput_description, mrss_t::textinput_link, mrss_t::textinput_name, mrss_t::textinput_title, mrss_t::title, mrss_t::ttl, mrss_t::version, and mrss_t::webMaster.

Referenced by mrss_get().

00468 {
00469   mrss_flag_t flag;
00470   void *value;
00471   int *integer;
00472   mrss_version_t *version;
00473   char **string;
00474 
00475   while ((flag = va_arg (va, mrss_flag_t)))
00476     {
00477       value = va_arg (va, void *);
00478 
00479       switch (flag)
00480         {
00481         case MRSS_FLAG_VERSION:
00482           version = value;
00483           *version = data->version;
00484           break;
00485 
00486         case MRSS_FLAG_TITLE:
00487           __MRSS_GET_STRING (data->title);
00488           break;
00489 
00490         case MRSS_FLAG_DESCRIPTION:
00491           __MRSS_GET_STRING (data->description);
00492           break;
00493 
00494         case MRSS_FLAG_LINK:
00495           __MRSS_GET_STRING (data->link);
00496           break;
00497 
00498         case MRSS_FLAG_LANGUAGE:
00499           __MRSS_GET_STRING (data->language);
00500           break;
00501 
00502         case MRSS_FLAG_RATING:
00503           __MRSS_GET_STRING (data->rating);
00504           break;
00505 
00506         case MRSS_FLAG_COPYRIGHT:
00507           __MRSS_GET_STRING (data->copyright);
00508           break;
00509 
00510         case MRSS_FLAG_PUBDATE:
00511           __MRSS_GET_STRING (data->pubDate);
00512           break;
00513 
00514         case MRSS_FLAG_LASTBUILDDATE:
00515           __MRSS_GET_STRING (data->lastBuildDate);
00516           break;
00517 
00518         case MRSS_FLAG_DOCS:
00519           __MRSS_GET_STRING (data->docs);
00520           break;
00521 
00522         case MRSS_FLAG_MANAGINGEDITOR:
00523           __MRSS_GET_STRING (data->managingeditor);
00524           break;
00525 
00526         case MRSS_FLAG_WEBMASTER:
00527           __MRSS_GET_STRING (data->webMaster);
00528           break;
00529 
00530         case MRSS_FLAG_GENERATOR:
00531           __MRSS_GET_STRING (data->generator);
00532           break;
00533 
00534         case MRSS_FLAG_TTL:
00535           __MRSS_GET_INTEGER (data->ttl);
00536           break;
00537 
00538         case MRSS_FLAG_IMAGE_TITLE:
00539           __MRSS_GET_STRING (data->image_title);
00540           break;
00541 
00542         case MRSS_FLAG_IMAGE_URL:
00543           __MRSS_GET_STRING (data->image_url);
00544           break;
00545 
00546         case MRSS_FLAG_IMAGE_LINK:
00547           __MRSS_GET_STRING (data->image_link);
00548           break;
00549 
00550         case MRSS_FLAG_IMAGE_WIDTH:
00551           __MRSS_GET_INTEGER (data->image_width);
00552           break;
00553 
00554         case MRSS_FLAG_IMAGE_HEIGHT:
00555           __MRSS_GET_INTEGER (data->image_height);
00556           break;
00557 
00558         case MRSS_FLAG_IMAGE_DESCRIPTION:
00559           __MRSS_GET_STRING (data->image_description);
00560           break;
00561 
00562         case MRSS_FLAG_TEXTINPUT_TITLE:
00563           __MRSS_GET_STRING (data->textinput_title);
00564           break;
00565 
00566         case MRSS_FLAG_TEXTINPUT_DESCRIPTION:
00567           __MRSS_GET_STRING (data->textinput_description);
00568           break;
00569 
00570         case MRSS_FLAG_TEXTINPUT_NAME:
00571           __MRSS_GET_STRING (data->textinput_name);
00572           break;
00573 
00574         case MRSS_FLAG_TEXTINPUT_LINK:
00575           __MRSS_GET_STRING (data->textinput_link);
00576           break;
00577 
00578         case MRSS_FLAG_CLOUD:
00579           __MRSS_GET_STRING (data->cloud);
00580           break;
00581 
00582         case MRSS_FLAG_CLOUD_DOMAIN:
00583           __MRSS_GET_STRING (data->cloud_domain);
00584           break;
00585 
00586         case MRSS_FLAG_CLOUD_PORT:
00587           __MRSS_GET_INTEGER (data->cloud_port);
00588           break;
00589 
00590         case MRSS_FLAG_CLOUD_PATH:
00591           __MRSS_GET_STRING (data->cloud_path);
00592           break;
00593 
00594         case MRSS_FLAG_CLOUD_REGISTERPROCEDURE:
00595           __MRSS_GET_STRING (data->cloud_registerProcedure);
00596           break;
00597 
00598         case MRSS_FLAG_CLOUD_PROTOCOL:
00599           __MRSS_GET_STRING (data->cloud_protocol);
00600           break;
00601 
00602         default:
00603           return MRSS_ERR_DATA;
00604         }
00605     }
00606 
00607   return MRSS_OK;
00608 }

static mrss_error_t __mrss_get_day mrss_day_t ,
va_list 
[static]
 

Definition at line 636 of file mrss_edit.c.

References __MRSS_GET_STRING, mrss_day_t::day, MRSS_ERR_DATA, MRSS_FLAG_DAY, and MRSS_OK.

Referenced by mrss_get().

00637 {
00638   mrss_flag_t flag;
00639   void *value;
00640   char **string;
00641 
00642   while ((flag = va_arg (va, mrss_flag_t)))
00643     {
00644       value = va_arg (va, void *);
00645 
00646       switch (flag)
00647         {
00648         case MRSS_FLAG_DAY:
00649           __MRSS_GET_STRING (data->day);
00650           break;
00651 
00652         default:
00653           return MRSS_ERR_DATA;
00654         }
00655     }
00656 
00657   return MRSS_OK;
00658 }

static mrss_error_t __mrss_get_hour mrss_hour_t ,
va_list 
[static]
 

Definition at line 611 of file mrss_edit.c.

References __MRSS_GET_STRING, mrss_hour_t::hour, MRSS_ERR_DATA, MRSS_FLAG_HOUR, and MRSS_OK.

Referenced by mrss_get().

00612 {
00613   mrss_flag_t flag;
00614   void *value;
00615   char **string;
00616 
00617   while ((flag = va_arg (va, mrss_flag_t)))
00618     {
00619       value = va_arg (va, void *);
00620 
00621       switch (flag)
00622         {
00623         case MRSS_FLAG_HOUR:
00624           __MRSS_GET_STRING (data->hour);
00625           break;
00626 
00627         default:
00628           return MRSS_ERR_DATA;
00629         }
00630     }
00631 
00632   return MRSS_OK;
00633 }

static mrss_error_t __mrss_get_item mrss_item_t ,
va_list 
[static]
 

Definition at line 690 of file mrss_edit.c.

References __MRSS_GET_INTEGER, __MRSS_GET_STRING, mrss_item_t::author, mrss_item_t::comments, mrss_item_t::description, mrss_item_t::enclosure, mrss_item_t::enclosure_length, mrss_item_t::enclosure_type, mrss_item_t::enclosure_url, mrss_item_t::guid, mrss_item_t::guid_isPermaLink, mrss_item_t::link, MRSS_ERR_DATA, MRSS_FLAG_ITEM_AUTHOR, MRSS_FLAG_ITEM_COMMENTS, MRSS_FLAG_ITEM_DESCRIPTION, MRSS_FLAG_ITEM_ENCLOSURE, MRSS_FLAG_ITEM_ENCLOSURE_LENGTH, MRSS_FLAG_ITEM_ENCLOSURE_TYPE, MRSS_FLAG_ITEM_ENCLOSURE_URL, MRSS_FLAG_ITEM_GUID, MRSS_FLAG_ITEM_GUID_ISPERMALINK, MRSS_FLAG_ITEM_LINK, MRSS_FLAG_ITEM_PUBDATE, MRSS_FLAG_ITEM_SOURCE, MRSS_FLAG_ITEM_SOURCE_URL, MRSS_FLAG_ITEM_TITLE, MRSS_OK, mrss_item_t::pubDate, mrss_item_t::source, mrss_item_t::source_url, and mrss_item_t::title.

Referenced by mrss_get().

00691 {
00692   mrss_flag_t flag;
00693   void *value;
00694   char **string;
00695   int *integer;
00696 
00697   while ((flag = va_arg (va, mrss_flag_t)))
00698     {
00699       value = va_arg (va, void *);
00700 
00701       switch (flag)
00702         {
00703         case MRSS_FLAG_ITEM_TITLE:
00704           __MRSS_GET_STRING (data->title);
00705           break;
00706 
00707         case MRSS_FLAG_ITEM_LINK:
00708           __MRSS_GET_STRING (data->link);
00709           break;
00710 
00711         case MRSS_FLAG_ITEM_DESCRIPTION:
00712           __MRSS_GET_STRING (data->description);
00713           break;
00714 
00715         case MRSS_FLAG_ITEM_AUTHOR:
00716           __MRSS_GET_STRING (data->author);
00717           break;
00718 
00719         case MRSS_FLAG_ITEM_COMMENTS:
00720           __MRSS_GET_STRING (data->comments);
00721           break;
00722 
00723         case MRSS_FLAG_ITEM_PUBDATE:
00724           __MRSS_GET_STRING (data->pubDate);
00725           break;
00726 
00727         case MRSS_FLAG_ITEM_GUID:
00728           __MRSS_GET_STRING (data->guid);
00729           break;
00730 
00731         case MRSS_FLAG_ITEM_GUID_ISPERMALINK:
00732           __MRSS_GET_INTEGER (data->guid_isPermaLink);
00733           break;
00734 
00735         case MRSS_FLAG_ITEM_SOURCE:
00736           __MRSS_GET_STRING (data->source);
00737           break;
00738 
00739         case MRSS_FLAG_ITEM_SOURCE_URL:
00740           __MRSS_GET_STRING (data->source_url);
00741           break;
00742 
00743         case MRSS_FLAG_ITEM_ENCLOSURE:
00744           __MRSS_GET_STRING (data->enclosure);
00745           break;
00746 
00747         case MRSS_FLAG_ITEM_ENCLOSURE_URL:
00748           __MRSS_GET_STRING (data->enclosure_url);
00749           break;
00750 
00751         case MRSS_FLAG_ITEM_ENCLOSURE_LENGTH:
00752           __MRSS_GET_INTEGER (data->enclosure_length);
00753           break;
00754 
00755         case MRSS_FLAG_ITEM_ENCLOSURE_TYPE:
00756           __MRSS_GET_STRING (data->enclosure_type);
00757           break;
00758 
00759         default:
00760           return MRSS_ERR_DATA;
00761         }
00762     }
00763 
00764   return MRSS_OK;
00765 }

static mrss_error_t __mrss_new_subdata_channel mrss_t ,
mrss_element_t  ,
mrss_generic_t 
[static]
 

Definition at line 790 of file mrss_edit.c.

References mrss_t::category, mrss_t::item, MRSS_ELEMENT_CATEGORY, MRSS_ELEMENT_ITEM, MRSS_ELEMENT_SKIPDAYS, MRSS_ELEMENT_SKIPHOURS, MRSS_ERR_DATA, MRSS_ERR_POSIX, MRSS_OK, mrss_t::skipDays, and mrss_t::skipHours.

Referenced by mrss_new_subdata().

00792 {
00793   mrss_item_t **item;
00794   mrss_hour_t **hour;
00795   mrss_day_t **day;
00796   mrss_category_t **category;
00797 
00798   switch (element)
00799     {
00800     case MRSS_ELEMENT_ITEM:
00801       item = (mrss_item_t **) data;
00802 
00803       if (!*item && !(*item = (mrss_item_t *) malloc (sizeof (mrss_item_t))))
00804         return MRSS_ERR_POSIX;
00805 
00806       memset (*item, 0, sizeof (mrss_item_t));
00807 
00808       (*item)->element = MRSS_ELEMENT_ITEM;
00809       (*item)->next = mrss->item;
00810       mrss->item = (*item);
00811 
00812       break;
00813 
00814     case MRSS_ELEMENT_SKIPHOURS:
00815       hour = (mrss_hour_t **) data;
00816 
00817       if (!*hour && !(*hour = (mrss_hour_t *) malloc (sizeof (mrss_hour_t))))
00818         return MRSS_ERR_POSIX;
00819 
00820       memset (*hour, 0, sizeof (mrss_hour_t));
00821 
00822       (*hour)->element = MRSS_ELEMENT_SKIPHOURS;
00823       (*hour)->next = mrss->skipHours;
00824       mrss->skipHours = (*hour);
00825 
00826       break;
00827 
00828     case MRSS_ELEMENT_SKIPDAYS:
00829       day = (mrss_day_t **) data;
00830 
00831       if (!*day && !(*day = (mrss_day_t *) malloc (sizeof (mrss_day_t))))
00832         return MRSS_ERR_POSIX;
00833 
00834       memset (*day, 0, sizeof (mrss_day_t));
00835 
00836       (*day)->element = MRSS_ELEMENT_SKIPDAYS;
00837       (*day)->next = mrss->skipDays;
00838       mrss->skipDays = (*day);
00839 
00840       break;
00841 
00842     case MRSS_ELEMENT_CATEGORY:
00843       category = (mrss_category_t **) data;
00844 
00845       if (!*category
00846           && !(*category =
00847                (mrss_category_t *) malloc (sizeof (mrss_category_t))))
00848         return MRSS_ERR_POSIX;
00849 
00850       memset (*category, 0, sizeof (mrss_category_t));
00851 
00852       (*category)->element = MRSS_ELEMENT_CATEGORY;
00853       (*category)->next = mrss->category;
00854       mrss->category = (*category);
00855 
00856       break;
00857 
00858     default:
00859       return MRSS_ERR_DATA;
00860     }
00861 
00862   return MRSS_OK;
00863 }

static mrss_error_t __mrss_new_subdata_item mrss_item_t ,
mrss_element_t  ,
mrss_generic_t 
[static]
 

Definition at line 866 of file mrss_edit.c.

References mrss_item_t::category, MRSS_ELEMENT_CATEGORY, MRSS_ERR_DATA, MRSS_ERR_POSIX, and MRSS_OK.

Referenced by mrss_new_subdata().

00868 {
00869   mrss_category_t **category;
00870 
00871   switch (element)
00872     {
00873     case MRSS_ELEMENT_CATEGORY:
00874       category = (mrss_category_t **) data;
00875 
00876       if (!*category
00877           && !(*category =
00878                (mrss_category_t *) malloc (sizeof (mrss_category_t))))
00879         return MRSS_ERR_POSIX;
00880 
00881       memset (*category, 0, sizeof (mrss_category_t));
00882 
00883       (*category)->element = MRSS_ELEMENT_CATEGORY;
00884       (*category)->next = item->category;
00885       item->category = (*category);
00886 
00887       break;
00888 
00889     default:
00890       return MRSS_ERR_DATA;
00891     }
00892 
00893   return MRSS_OK;
00894 }

static mrss_error_t __mrss_remove_subdata_channel mrss_t ,
mrss_generic_t 
[static]
 

Definition at line 918 of file mrss_edit.c.

References mrss_t::category, mrss_t::element, mrss_t::item, MRSS_ELEMENT_CATEGORY, MRSS_ELEMENT_ITEM, MRSS_ELEMENT_SKIPDAYS, MRSS_ELEMENT_SKIPHOURS, MRSS_ERR_DATA, MRSS_OK, mrss_category_t::next, mrss_day_t::next, mrss_hour_t::next, mrss_item_t::next, mrss_t::skipDays, and mrss_t::skipHours.

Referenced by mrss_remove_subdata().

00919 {
00920   mrss_hour_t *hour, *hour_tmp, *hour_old;
00921   mrss_day_t *day, *day_tmp, *day_old;
00922   mrss_category_t *category, *category_tmp, *category_old;
00923   mrss_item_t *item, *item_tmp, *item_old;
00924 
00925   int found = 0;
00926 
00927   mrss_t *tmp = (mrss_t *) subdata;
00928 
00929   switch (tmp->element)
00930     {
00931     case MRSS_ELEMENT_ITEM:
00932       item = (mrss_item_t *) subdata;
00933 
00934       item_tmp = data->item;
00935       item_old = NULL;
00936 
00937       while (item_tmp)
00938         {
00939           if (item_tmp == item)
00940             {
00941               found++;
00942 
00943               if (item_old)
00944                 item_old->next = item_tmp->next;
00945               else
00946                 data->item = item_tmp->next;
00947 
00948               break;
00949             }
00950 
00951           item_old = item_tmp;
00952           item_tmp = item_tmp->next;
00953         }
00954 
00955       if (!found)
00956         return MRSS_ERR_DATA;
00957 
00958       break;
00959 
00960     case MRSS_ELEMENT_SKIPHOURS:
00961       hour = (mrss_hour_t *) subdata;
00962 
00963       hour_tmp = data->skipHours;
00964       hour_old = NULL;
00965 
00966       while (hour_tmp)
00967         {
00968           if (hour_tmp == hour)
00969             {
00970               found++;
00971 
00972               if (hour_old)
00973                 hour_old->next = hour_tmp->next;
00974               else
00975                 data->skipHours = hour_tmp->next;
00976 
00977               break;
00978             }
00979 
00980           hour_old = hour_tmp;
00981           hour_tmp = hour_tmp->next;
00982         }
00983 
00984       if (!found)
00985         return MRSS_ERR_DATA;
00986 
00987       break;
00988 
00989     case MRSS_ELEMENT_SKIPDAYS:
00990       day = (mrss_day_t *) subdata;
00991 
00992       day_tmp = data->skipDays;
00993       day_old = NULL;
00994 
00995       while (day_tmp)
00996         {
00997           if (day_tmp == day)
00998             {
00999               found++;
01000 
01001               if (day_old)
01002                 day_old->next = day_tmp->next;
01003               else
01004                 data->skipDays = day_tmp->next;
01005 
01006               break;
01007             }
01008 
01009           day_old = day_tmp;
01010           day_tmp = day_tmp->next;
01011         }
01012 
01013       if (!found)
01014         return MRSS_ERR_DATA;
01015 
01016       break;
01017 
01018     case MRSS_ELEMENT_CATEGORY:
01019       category = (mrss_category_t *) subdata;
01020 
01021       category_tmp = data->category;
01022       category_old = NULL;
01023 
01024       while (category_tmp)
01025         {
01026           if (category_tmp == category)
01027             {
01028               found++;
01029 
01030               if (category_old)
01031                 category_old->next = category_tmp->next;
01032               else
01033                 data->category = category_tmp->next;
01034 
01035               break;
01036             }
01037 
01038           category_old = category_tmp;
01039           category_tmp = category_tmp->next;
01040         }
01041 
01042       if (!found)
01043         return MRSS_ERR_DATA;
01044 
01045       break;
01046 
01047     default:
01048       return MRSS_ERR_DATA;
01049     }
01050 
01051   return MRSS_OK;
01052 }

static mrss_error_t __mrss_remove_subdata_item mrss_item_t ,
mrss_generic_t 
[static]
 

Definition at line 1055 of file mrss_edit.c.

References mrss_item_t::category, mrss_t::element, MRSS_ELEMENT_CATEGORY, MRSS_ERR_DATA, MRSS_OK, and mrss_category_t::next.

Referenced by mrss_remove_subdata().

01056 {
01057   mrss_category_t *category, *category_tmp, *category_old;
01058 
01059   int found = 0;
01060 
01061   mrss_t *tmp = (mrss_t *) subdata;
01062 
01063   switch (tmp->element)
01064     {
01065     case MRSS_ELEMENT_CATEGORY:
01066       category = (mrss_category_t *) subdata;
01067 
01068       category_tmp = data->category;
01069       category_old = NULL;
01070 
01071       while (category_tmp)
01072         {
01073           if (category_tmp == category)
01074             {
01075               found++;
01076 
01077               if (category_old)
01078                 category_old->next = category_tmp->next;
01079               else
01080                 data->category = category_tmp->next;
01081 
01082               break;
01083             }
01084 
01085           category_old = category_tmp;
01086           category_tmp = category_tmp->next;
01087         }
01088 
01089       if (!found)
01090         return MRSS_ERR_DATA;
01091 
01092       break;
01093 
01094     default:
01095       return MRSS_ERR_DATA;
01096     }
01097 
01098   return MRSS_OK;
01099 }

static mrss_error_t __mrss_set_category mrss_category_t ,
va_list 
[static]
 

Definition at line 319 of file mrss_edit.c.

References __MRSS_SET_STRING, mrss_category_t::category, mrss_category_t::domain, MRSS_ERR_DATA, MRSS_FLAG_CATEGORY, MRSS_FLAG_CATEGORY_DOMAIN, and MRSS_OK.

Referenced by mrss_set().

00320 {
00321   mrss_flag_t flag;
00322   void *value;
00323 
00324   while ((flag = va_arg (va, mrss_flag_t)))
00325     {
00326       value = va_arg (va, void *);
00327 
00328       switch (flag)
00329         {
00330         case MRSS_FLAG_CATEGORY:
00331           __MRSS_SET_STRING (data->category);
00332           break;
00333 
00334         case MRSS_FLAG_CATEGORY_DOMAIN:
00335           __MRSS_SET_STRING (data->domain);
00336           break;
00337 
00338         default:
00339           return MRSS_ERR_DATA;
00340         }
00341     }
00342 
00343   return MRSS_OK;
00344 }

static mrss_error_t __mrss_set_channel mrss_t ,
va_list 
[static]
 

Definition at line 126 of file mrss_edit.c.

References __MRSS_SET_INTEGER, __MRSS_SET_STRING, mrss_t::cloud, mrss_t::cloud_domain, mrss_t::cloud_path, mrss_t::cloud_port, mrss_t::cloud_protocol, mrss_t::cloud_registerProcedure, mrss_t::copyright, mrss_t::description, mrss_t::docs, mrss_t::generator, mrss_t::image_description, mrss_t::image_height, mrss_t::image_link, mrss_t::image_title, mrss_t::image_url, mrss_t::image_width, mrss_t::language, mrss_t::lastBuildDate, mrss_t::link, mrss_t::managingeditor, MRSS_ERR_DATA, MRSS_FLAG_CLOUD, MRSS_FLAG_CLOUD_DOMAIN, MRSS_FLAG_CLOUD_PATH, MRSS_FLAG_CLOUD_PORT, MRSS_FLAG_CLOUD_PROTOCOL, MRSS_FLAG_CLOUD_REGISTERPROCEDURE, MRSS_FLAG_COPYRIGHT, MRSS_FLAG_DESCRIPTION, MRSS_FLAG_DOCS, MRSS_FLAG_GENERATOR, MRSS_FLAG_IMAGE_DESCRIPTION, MRSS_FLAG_IMAGE_HEIGHT, MRSS_FLAG_IMAGE_LINK, MRSS_FLAG_IMAGE_TITLE, MRSS_FLAG_IMAGE_URL, MRSS_FLAG_IMAGE_WIDTH, MRSS_FLAG_LANGUAGE, MRSS_FLAG_LASTBUILDDATE, MRSS_FLAG_LINK, MRSS_FLAG_MANAGINGEDITOR, MRSS_FLAG_PUBDATE, MRSS_FLAG_RATING, MRSS_FLAG_TEXTINPUT_DESCRIPTION, MRSS_FLAG_TEXTINPUT_LINK, MRSS_FLAG_TEXTINPUT_NAME, MRSS_FLAG_TEXTINPUT_TITLE, MRSS_FLAG_TITLE, MRSS_FLAG_TTL, MRSS_FLAG_VERSION, MRSS_FLAG_WEBMASTER, MRSS_OK, MRSS_VERSION_0_91, MRSS_VERSION_0_92, MRSS_VERSION_2_0, mrss_t::pubDate, mrss_t::rating, mrss_t::textinput_description, mrss_t::textinput_link, mrss_t::textinput_name, mrss_t::textinput_title, mrss_t::title, mrss_t::ttl, mrss_t::version, and mrss_t::webMaster.

Referenced by mrss_set().

00127 {
00128   mrss_flag_t flag;
00129   void *value;
00130 
00131   while ((flag = va_arg (va, mrss_flag_t)))
00132     {
00133       value = va_arg (va, void *);
00134 
00135       switch (flag)
00136         {
00137         case MRSS_FLAG_VERSION:
00138           if ((mrss_version_t) value != MRSS_VERSION_0_91 &&
00139               (mrss_version_t) value != MRSS_VERSION_0_92 &&
00140               (mrss_version_t) value != MRSS_VERSION_2_0)
00141             return MRSS_ERR_DATA;
00142 
00143           data->version = (mrss_version_t) value;
00144           break;
00145 
00146         case MRSS_FLAG_TITLE:
00147           __MRSS_SET_STRING (data->title);
00148           break;
00149 
00150         case MRSS_FLAG_DESCRIPTION:
00151           __MRSS_SET_STRING (data->description);
00152           break;
00153 
00154         case MRSS_FLAG_LINK:
00155           __MRSS_SET_STRING (data->link);
00156           break;
00157 
00158         case MRSS_FLAG_LANGUAGE:
00159           __MRSS_SET_STRING (data->language);
00160           break;
00161 
00162         case MRSS_FLAG_RATING:
00163           __MRSS_SET_STRING (data->rating);
00164           break;
00165 
00166         case MRSS_FLAG_COPYRIGHT:
00167           __MRSS_SET_STRING (data->copyright);
00168           break;
00169 
00170         case MRSS_FLAG_PUBDATE:
00171           __MRSS_SET_STRING (data->pubDate);
00172           break;
00173 
00174         case MRSS_FLAG_LASTBUILDDATE:
00175           __MRSS_SET_STRING (data->lastBuildDate);
00176           break;
00177 
00178         case MRSS_FLAG_DOCS:
00179           __MRSS_SET_STRING (data->docs);
00180           break;
00181 
00182         case MRSS_FLAG_MANAGINGEDITOR:
00183           __MRSS_SET_STRING (data->managingeditor);
00184           break;
00185 
00186         case MRSS_FLAG_WEBMASTER:
00187           __MRSS_SET_STRING (data->webMaster);
00188           break;
00189 
00190         case MRSS_FLAG_GENERATOR:
00191           __MRSS_SET_STRING (data->generator);
00192           break;
00193 
00194         case MRSS_FLAG_TTL:
00195           __MRSS_SET_INTEGER (data->ttl);
00196           break;
00197 
00198         case MRSS_FLAG_IMAGE_TITLE:
00199           __MRSS_SET_STRING (data->image_title);
00200           break;
00201 
00202         case MRSS_FLAG_IMAGE_URL:
00203           __MRSS_SET_STRING (data->image_url);
00204           break;
00205 
00206         case MRSS_FLAG_IMAGE_LINK:
00207           __MRSS_SET_STRING (data->image_link);
00208           break;
00209 
00210         case MRSS_FLAG_IMAGE_WIDTH:
00211           __MRSS_SET_INTEGER (data->image_width);
00212           break;
00213 
00214         case MRSS_FLAG_IMAGE_HEIGHT:
00215           __MRSS_SET_INTEGER (data->image_height);
00216           break;
00217 
00218         case MRSS_FLAG_IMAGE_DESCRIPTION:
00219           __MRSS_SET_STRING (data->image_description);
00220           break;
00221 
00222         case MRSS_FLAG_TEXTINPUT_TITLE:
00223           __MRSS_SET_STRING (data->textinput_title);
00224           break;
00225 
00226         case MRSS_FLAG_TEXTINPUT_DESCRIPTION:
00227           __MRSS_SET_STRING (data->textinput_description);
00228           break;
00229 
00230         case MRSS_FLAG_TEXTINPUT_NAME:
00231           __MRSS_SET_STRING (data->textinput_name);
00232           break;
00233 
00234         case MRSS_FLAG_TEXTINPUT_LINK:
00235           __MRSS_SET_STRING (data->textinput_link);
00236           break;
00237 
00238         case MRSS_FLAG_CLOUD:
00239           __MRSS_SET_STRING (data->cloud);
00240           break;
00241 
00242         case MRSS_FLAG_CLOUD_DOMAIN:
00243           __MRSS_SET_STRING (data->cloud_domain);
00244           break;
00245 
00246         case MRSS_FLAG_CLOUD_PORT:
00247           __MRSS_SET_INTEGER (data->cloud_port);
00248           break;
00249 
00250         case MRSS_FLAG_CLOUD_PATH:
00251           __MRSS_SET_STRING (data->cloud_path);
00252           break;
00253 
00254         case MRSS_FLAG_CLOUD_REGISTERPROCEDURE:
00255           __MRSS_SET_STRING (data->cloud_registerProcedure);
00256           break;
00257 
00258         case MRSS_FLAG_CLOUD_PROTOCOL:
00259           __MRSS_SET_STRING (data->cloud_protocol);
00260           break;
00261 
00262         default:
00263           return MRSS_ERR_DATA;
00264         }
00265     }
00266 
00267   return MRSS_OK;
00268 }

static mrss_error_t __mrss_set_day mrss_day_t ,
va_list 
[static]
 

Definition at line 295 of file mrss_edit.c.

References __MRSS_SET_STRING, mrss_day_t::day, MRSS_ERR_DATA, MRSS_FLAG_DAY, and MRSS_OK.

Referenced by mrss_set().

00296 {
00297   mrss_flag_t flag;
00298   void *value;
00299 
00300   while ((flag = va_arg (va, mrss_flag_t)))
00301     {
00302       value = va_arg (va, void *);
00303 
00304       switch (flag)
00305         {
00306         case MRSS_FLAG_DAY:
00307           __MRSS_SET_STRING (data->day);
00308           break;
00309 
00310         default:
00311           return MRSS_ERR_DATA;
00312         }
00313     }
00314 
00315   return MRSS_OK;
00316 }

static mrss_error_t __mrss_set_hour mrss_hour_t ,
va_list 
[static]
 

Definition at line 271 of file mrss_edit.c.

References __MRSS_SET_STRING, mrss_hour_t::hour, MRSS_ERR_DATA, MRSS_FLAG_HOUR, and MRSS_OK.

Referenced by mrss_set().

00272 {
00273   mrss_flag_t flag;
00274   void *value;
00275 
00276   while ((flag = va_arg (va, mrss_flag_t)))
00277     {
00278       value = va_arg (va, void *);
00279 
00280       switch (flag)
00281         {
00282         case MRSS_FLAG_HOUR:
00283           __MRSS_SET_STRING (data->hour);
00284           break;
00285 
00286         default:
00287           return MRSS_ERR_DATA;
00288         }
00289     }
00290 
00291   return MRSS_OK;
00292 }

static mrss_error_t __mrss_set_item mrss_item_t ,
va_list 
[static]
 

Definition at line 347 of file mrss_edit.c.

References __MRSS_SET_INTEGER, __MRSS_SET_STRING, mrss_item_t::author, mrss_item_t::comments, mrss_item_t::description, mrss_item_t::enclosure, mrss_item_t::enclosure_length, mrss_item_t::enclosure_type, mrss_item_t::enclosure_url, mrss_item_t::guid, mrss_item_t::guid_isPermaLink, mrss_item_t::link, MRSS_ERR_DATA, MRSS_FLAG_ITEM_AUTHOR, MRSS_FLAG_ITEM_COMMENTS, MRSS_FLAG_ITEM_DESCRIPTION, MRSS_FLAG_ITEM_ENCLOSURE, MRSS_FLAG_ITEM_ENCLOSURE_LENGTH, MRSS_FLAG_ITEM_ENCLOSURE_TYPE, MRSS_FLAG_ITEM_ENCLOSURE_URL, MRSS_FLAG_ITEM_GUID, MRSS_FLAG_ITEM_GUID_ISPERMALINK, MRSS_FLAG_ITEM_LINK, MRSS_FLAG_ITEM_PUBDATE, MRSS_FLAG_ITEM_SOURCE, MRSS_FLAG_ITEM_SOURCE_URL, MRSS_FLAG_ITEM_TITLE, MRSS_OK, mrss_item_t::pubDate, mrss_item_t::source, mrss_item_t::source_url, and mrss_item_t::title.

Referenced by mrss_set().

00348 {
00349   mrss_flag_t flag;
00350   void *value;
00351 
00352   while ((flag = va_arg (va, mrss_flag_t)))
00353     {
00354       value = va_arg (va, void *);
00355 
00356       switch (flag)
00357         {
00358         case MRSS_FLAG_ITEM_TITLE:
00359           __MRSS_SET_STRING (data->title);
00360           break;
00361 
00362         case MRSS_FLAG_ITEM_LINK:
00363           __MRSS_SET_STRING (data->link);
00364           break;
00365 
00366         case MRSS_FLAG_ITEM_DESCRIPTION:
00367           __MRSS_SET_STRING (data->description);
00368           break;
00369 
00370         case MRSS_FLAG_ITEM_AUTHOR:
00371           __MRSS_SET_STRING (data->author);
00372           break;
00373 
00374         case MRSS_FLAG_ITEM_COMMENTS:
00375           __MRSS_SET_STRING (data->comments);
00376           break;
00377 
00378         case MRSS_FLAG_ITEM_PUBDATE:
00379           __MRSS_SET_STRING (data->pubDate);
00380           break;
00381 
00382         case MRSS_FLAG_ITEM_GUID:
00383           __MRSS_SET_STRING (data->guid);
00384           break;
00385 
00386         case MRSS_FLAG_ITEM_GUID_ISPERMALINK:
00387           __MRSS_SET_INTEGER (data->guid_isPermaLink);
00388           break;
00389 
00390         case MRSS_FLAG_ITEM_SOURCE:
00391           __MRSS_SET_STRING (data->source);
00392           break;
00393 
00394         case MRSS_FLAG_ITEM_SOURCE_URL:
00395           __MRSS_SET_STRING (data->source_url);
00396           break;
00397 
00398         case MRSS_FLAG_ITEM_ENCLOSURE:
00399           __MRSS_SET_STRING (data->enclosure);
00400           break;
00401 
00402         case MRSS_FLAG_ITEM_ENCLOSURE_URL:
00403           __MRSS_SET_STRING (data->enclosure_url);
00404           break;
00405 
00406         case MRSS_FLAG_ITEM_ENCLOSURE_LENGTH:
00407           __MRSS_SET_INTEGER (data->enclosure_length);
00408           break;
00409 
00410         case MRSS_FLAG_ITEM_ENCLOSURE_TYPE:
00411           __MRSS_SET_STRING (data->enclosure_type);
00412           break;
00413 
00414         default:
00415           return MRSS_ERR_DATA;
00416         }
00417     }
00418 
00419   return MRSS_OK;
00420 }

mrss_error_t mrss_get mrss_generic_t  element,
  ...
 

This function returns the request arguments. The syntax is the same of mrss_set but the values of the list are pointer to data element (int *, char **). If the key needs a char **, the value will be allocated.

 mrss_get(category, MRSS_FLAG_CATEGORY_DOMAIN, &string, MRSS_FLAG_END);
 if(string) free(string);
Parameters:
element it is any type of mrss data struct.
Returns:
the error code

Definition at line 423 of file mrss_edit.c.

References __mrss_get_category(), __mrss_get_channel(), __mrss_get_day(), __mrss_get_hour(), __mrss_get_item(), mrss_t::element, MRSS_ELEMENT_CATEGORY, MRSS_ELEMENT_CHANNEL, MRSS_ELEMENT_ITEM, MRSS_ELEMENT_SKIPDAYS, MRSS_ELEMENT_SKIPHOURS, and MRSS_ERR_DATA.

00424 {
00425   va_list va;
00426   mrss_error_t err;
00427   mrss_t *tmp;
00428 
00429   if (!data)
00430     return MRSS_ERR_DATA;
00431 
00432   va_start (va, data);
00433 
00434   tmp = (mrss_t *) data;
00435   switch (tmp->element)
00436     {
00437     case MRSS_ELEMENT_CHANNEL:
00438       err = __mrss_get_channel ((mrss_t *) data, va);
00439       break;
00440 
00441     case MRSS_ELEMENT_ITEM:
00442       err = __mrss_get_item ((mrss_item_t *) data, va);
00443       break;
00444 
00445     case MRSS_ELEMENT_SKIPHOURS:
00446       err = __mrss_get_hour ((mrss_hour_t *) data, va);
00447       break;
00448 
00449     case MRSS_ELEMENT_SKIPDAYS:
00450       err = __mrss_get_day ((mrss_day_t *) data, va);
00451       break;
00452 
00453     case MRSS_ELEMENT_CATEGORY:
00454       err = __mrss_get_category ((mrss_category_t *) data, va);
00455       break;
00456 
00457     default:
00458       err = MRSS_ERR_DATA;
00459       break;
00460     }
00461 
00462   va_end (va);
00463   return err;
00464 }

Here is the call graph for this function:

mrss_error_t mrss_new mrss_t **  mrss  ) 
 

If you want create a new feed RSS from scratch, you need use this function as the first.

 mrss_t *d;
 mrss_error_t err;
 char *string;
 int integer;

 d=NULL; // ->this is important!
 mrss_new(&d);

 err=mrss_set (d,
                 MRSS_FLAG_VERSION, MRSS_VERSION_0_92,
                 MRSS_FLAG_TITLE, "the title!",
                 MRSS_FLAG_TTL, 12,
                 MRSS_FLAG_END);

 if(err!=MRSS_OK) printf("%s\n",mrss_strerror(err));

 err=mrss_get (d,
                 MRSS_FLAG_TITLE, &string,
                 MRSS_FLAG_TTL, &integer,
                 MRSS_FLAG_END);

 if(err!=MRSS_OK) printf("%s\n",mrss_strerror(err));
 printf("The title is: '%s'\n", string);
 printf("The ttl is: '%d'\n", integer);
 free(string);

Parameters:
mrss is the pointer to the new data struct
Returns:
the error code

Definition at line 67 of file mrss_edit.c.

References MRSS_ELEMENT_CHANNEL, MRSS_ERR_DATA, MRSS_ERR_POSIX, and MRSS_OK.

00068 {
00069   if (!data)
00070     return MRSS_ERR_DATA;
00071 
00072   if (!*data && !(*data = (mrss_t *) malloc (sizeof (mrss_t))))
00073     return MRSS_ERR_POSIX;
00074 
00075   memset (*data, 0, sizeof (mrss_t));
00076   (*data)->element = MRSS_ELEMENT_CHANNEL;
00077 
00078   return MRSS_OK;
00079 }

mrss_error_t mrss_new_subdata mrss_generic_t  element,
mrss_element_t  subelement,
mrss_generic_t  subdata
 

This function adds an element to another element. For example you can add a item to a channel, or a category to a item, and so on. Look this example:

  mrss_item_t *item = NULL;
 mrss_hour_t *hour = NULL;
 mrss_day_t day;              // If the element is no null, the function
 mrss_category_t category,    // does not alloc it

 mrss_new_subdata(mrss, MRSS_ELEMENT_ITEM, &item);
 mrss_new_subdata(mrss, MRSS_ELEMENT_SKIPHOURS, &hour);
 mrss_new_subdata(mrss, MRSS_ELEMENT_SKIPDAYS, &day);
 mrss_new_subdata(item, MRSS_ELEMENT_ITEM_CATEGORY, &category);
Parameters:
element it is the parent element
subelement it is the type of the child (MRSS_ELEMENT_ITEM, MRSS_ELEMENT_CATEGORY, ...)
subdata it is the pointer to the new struct. If the pointer of *subdata exists, it will no alloced, else yes.
Returns:
the error code
See also:
mrss_element_t

Definition at line 768 of file mrss_edit.c.

References __mrss_new_subdata_channel(), __mrss_new_subdata_item(), mrss_t::element, MRSS_ELEMENT_CHANNEL, MRSS_ELEMENT_ITEM, and MRSS_ERR_DATA.

00770 {
00771   mrss_t *tmp;
00772 
00773   if (!data || !new)
00774     return MRSS_ERR_DATA;
00775 
00776   tmp = (mrss_t *) data;
00777 
00778   switch (tmp->element)
00779     {
00780     case MRSS_ELEMENT_CHANNEL:
00781       return __mrss_new_subdata_channel ((mrss_t *) data, element, new);
00782     case MRSS_ELEMENT_ITEM:
00783       return __mrss_new_subdata_item ((mrss_item_t *) data, element, new);
00784     default:
00785       return MRSS_ERR_DATA;
00786     }
00787 }

Here is the call graph for this function:

mrss_error_t mrss_remove_subdata mrss_generic_t  element,
mrss_generic_t  subdata
 

This function remove a subdata element. As first argoment you must specify the parent, and second argoment the child.

 mrss_remove_subdata(mrss, item);
Parameters:
element it is the parent
subdata the child that you want remove. Remember: mrss_remove_subdata does not free the memory. So you can remove a item and reinsert it after.
Returns:
the error code

Definition at line 897 of file mrss_edit.c.

References __mrss_remove_subdata_channel(), __mrss_remove_subdata_item(), mrss_t::element, MRSS_ELEMENT_CHANNEL, MRSS_ELEMENT_ITEM, and MRSS_ERR_DATA.

00898 {
00899   mrss_t *tmp;
00900 
00901   if (!data || !subdata)
00902     return MRSS_ERR_DATA;
00903 
00904   tmp = (mrss_t *) data;
00905 
00906   switch (tmp->element)
00907     {
00908     case MRSS_ELEMENT_CHANNEL:
00909       return __mrss_remove_subdata_channel ((mrss_t *) data, subdata);
00910     case MRSS_ELEMENT_ITEM:
00911       return __mrss_remove_subdata_item ((mrss_item_t *) data, subdata);
00912     default:
00913       return MRSS_ERR_DATA;
00914     }
00915 }

Here is the call graph for this function:

mrss_error_t mrss_set mrss_generic_t  element,
  ...
 

For insert/replace/remove a flags use this function as this example:

Parameters:
element it is the mrss data that you want changes the the next list of elements. The list is composted by KEY - VALUES and as last element MRSS_FLAG_END. The variable of value depends from key.
See also:
mrss_flag_t
Returns:
the error code

Definition at line 82 of file mrss_edit.c.

References __mrss_set_category(), __mrss_set_channel(), __mrss_set_day(), __mrss_set_hour(), __mrss_set_item(), mrss_t::element, MRSS_ELEMENT_CATEGORY, MRSS_ELEMENT_CHANNEL, MRSS_ELEMENT_ITEM, MRSS_ELEMENT_SKIPDAYS, MRSS_ELEMENT_SKIPHOURS, and MRSS_ERR_DATA.

00083 {
00084   va_list va;
00085   mrss_error_t err;
00086   mrss_t *tmp;
00087 
00088   if (!data)
00089     return MRSS_ERR_DATA;
00090 
00091   va_start (va, data);
00092 
00093   tmp = (mrss_t *) data;
00094   switch (tmp->element)
00095     {
00096     case MRSS_ELEMENT_CHANNEL:
00097       err = __mrss_set_channel ((mrss_t *) data, va);
00098       break;
00099 
00100     case MRSS_ELEMENT_ITEM:
00101       err = __mrss_set_item ((mrss_item_t *) data, va);
00102       break;
00103 
00104     case MRSS_ELEMENT_SKIPHOURS:
00105       err = __mrss_set_hour ((mrss_hour_t *) data, va);
00106       break;
00107 
00108     case MRSS_ELEMENT_SKIPDAYS:
00109       err = __mrss_set_day ((mrss_day_t *) data, va);
00110       break;
00111 
00112     case MRSS_ELEMENT_CATEGORY:
00113       err = __mrss_set_category ((mrss_category_t *) data, va);
00114       break;
00115 
00116     default:
00117       err = MRSS_ERR_DATA;
00118       break;
00119     }
00120 
00121   va_end (va);
00122   return err;
00123 }

Here is the call graph for this function:


Generated on Thu Jul 28 12:15:06 2005 for libmrss by  doxygen 1.4.3-20050530