- /*
- ** Here's where we differ from
- ** seq_public: if it's in a
- ** sequence we want, save the list
- ** of messages.
- */
- if (seq_in_list(name, sequences)) {
- this_msgnums = trimcpy(cp);
- if (msgnums == NULL) {
- msgnums = this_msgnums;
- } else {
- old_msgnums = msgnums;
- msgnums = concat(old_msgnums, " ", this_msgnums, (void *)NULL);
- free(old_msgnums);
- free(this_msgnums);
- }
- }
- free(cp);
- } else {
- /* and here */
- if (seq_in_list(name, sequences)) {
- this_msgnums = trimcpy(field);
- if (msgnums == NULL) {
- msgnums = this_msgnums;
- } else {
- old_msgnums = msgnums;
- msgnums = concat(old_msgnums, " ", this_msgnums, (void *)NULL);
- free(old_msgnums);
- free(this_msgnums);
- }
+ case FLD2:
+ /*
+ ** if it's in a sequence we want,
+ ** save the list of messages.
+ */
+ if (seq_in_list(f.name, sequences)) {
+ this_msgnums = trimcpy(f.value);
+ if (strlen(this_msgnums) == 0) {
+ free(this_msgnums);
+ continue;
+ } else if (msgnums == NULL) {
+ msgnums = this_msgnums;
+ } else {
+ old_msgnums = msgnums;
+ msgnums = concat(old_msgnums, " ",
+ this_msgnums,
+ NULL);
+ mh_free0(&old_msgnums);
+ mh_free0(&this_msgnums);