Hello community, here is the log from the commit of package alpine for openSUSE:Factory checked in at Wed Jul 29 17:43:14 CEST 2009. -------- --- alpine/alpine.changes 2009-06-20 14:15:33.000000000 +0200 +++ /mounts/work_src_done/STABLE/alpine/alpine.changes 2009-07-29 17:12:52.000000000 +0200 @@ -1,0 +2,16 @@ +Wed Jul 29 17:05:08 CEST 2009 - max@suse.de + +- Included the latest bugfix-patches from Eduardo Chappa: +- replacebug: Fix a bug in Pico which makes it not update the + screen. +- unixnullbug: Fix a bug that makes Alpine crash when opening a + unix type folder. +- streamlock: Fix a bug that makes Alpine crash when suspending it. +- filterflagbug: Fix a bug in Alpine that makes it not to set a + flag in a filtered message (bnc#342075). +- nlinfobug: Fix a bug in Pico and Pilot that makes them crash + for bad locale information. +- unverified: Fix a bug that makes Alpine not to give a warning + if the Newsgroup header is present + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- chappa-filterflagbug.patch.gz chappa-nlinfobug.patch.gz chappa-replacebug.patch.gz chappa-streamlock.patch.gz chappa-unixnullbug.patch.gz chappa-unverified.patch.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ alpine.spec ++++++ --- /var/tmp/diff_new_pack.IO1tGS/_old 2009-07-29 17:35:31.000000000 +0200 +++ /var/tmp/diff_new_pack.IO1tGS/_new 2009-07-29 17:35:31.000000000 +0200 @@ -50,7 +50,7 @@ %endif # Version: 2.00 -Release: 5 +Release: 6 License: Apache Software License .. Group: Productivity/Networking/Email/Clients AutoReqProv: on @@ -80,6 +80,12 @@ Patch604: chappa-maildir.patch.gz Patch605: chappa-searchheader.patch.gz Patch606: chappa-WrtAcc.patch.gz +Patch607: chappa-replacebug.patch.gz +Patch608: chappa-unixnullbug.patch.gz +Patch609: chappa-streamlock.patch.gz +Patch610: chappa-filterflagbug.patch.gz +Patch611: chappa-nlinfobug.patch.gz +Patch612: chappa-unverified.patch.gz %description Though originally designed for inexperienced email users, Alpine @@ -152,6 +158,12 @@ %patch604 -p1 %patch605 -p1 %patch606 -p1 +%patch607 -p1 +%patch608 -p1 +%patch609 -p1 +%patch610 -p1 +%patch611 -p1 +%patch612 -p1 # # SuSE patches - warning fixes, etc: # ++++++ chappa-filterflagbug.patch.gz ++++++ diff -rc alpine-2.00/pith/save.c alpine-2.00.filterflagbug/pith/save.c *** alpine-2.00/pith/save.c 2008-05-02 14:58:34.000000000 -0700 --- alpine-2.00.filterflagbug/pith/save.c 2008-11-11 09:36:43.000000000 -0800 *************** *** 421,426 **** --- 421,427 ---- { int rv, rc, j, our_stream = 0, cancelled = 0; int delete, filter, k, worry_about_keywords = 0; + int flags_for_save = F_ANS|F_FWD|F_FLAG|F_SEEN|F_KEYWORD; char *save_folder, *seq, *flags = NULL, date[64], tmp[MAILTMPLEN]; long i, nmsgs, rawno; size_t len; *************** *** 864,870 **** STRING msg; pkg.stream = stream; ! pkg.flags = NULL; pkg.date = date; pkg.msg = &msg; pkg.msgmap = msgmap; --- 865,871 ---- STRING msg; pkg.stream = stream; ! pkg.flags = flgs & SV_FIX_DELS ? NULL : cpystr("\DELETED"); pkg.date = date; pkg.msg = &msg; pkg.msgmap = msgmap; *************** *** 938,944 **** mc = (rawno > 0L && stream && rawno <= stream->nmsgs) ? mail_elt(stream, rawno) : NULL; ! flags = flag_string(stream, rawno, F_ANS|F_FWD|F_FLAG|F_SEEN|F_KEYWORD); if(mc && mc->day) mail_date(date, mc); --- 939,946 ---- mc = (rawno > 0L && stream && rawno <= stream->nmsgs) ? mail_elt(stream, rawno) : NULL; ! flags_for_save |= flgs & SV_FIX_DELS ? 0 : F_DEL; ! flags = flag_string(stream, rawno, flags_for_save); if(mc && mc->day) mail_date(date, mc); *************** *** 1043,1048 **** --- 1045,1051 ---- MESSAGECACHE *mc; char *fetch; int rc; + int flags_for_save = F_ANS|F_FWD|F_FLAG|F_SEEN|F_KEYWORD; unsigned long raw, hlen, tlen, mlen; if(pkg->so && (pkg->msgno > 0L)) { *************** *** 1051,1060 **** ? mail_elt(pkg->stream, raw) : NULL; if(mc){ size = mc->rfc822_size; ! if(pkg->flags) fs_give((void **) &pkg->flags); ! ! pkg->flags = flag_string(pkg->stream, raw, F_ANS|F_FWD|F_FLAG|F_SEEN|F_KEYWORD); } if(mc && mc->day) --- 1054,1065 ---- ? mail_elt(pkg->stream, raw) : NULL; if(mc){ size = mc->rfc822_size; ! if(pkg->flags){ ! if(strstr(pkg->flags,"\DELETED")) ! flags_for_save |= F_DEL; fs_give((void **) &pkg->flags); ! } ! pkg->flags = flag_string(pkg->stream, raw, flags_for_save); } if(mc && mc->day) ++++++ chappa-nlinfobug.patch.gz ++++++ diff -rc alpine-2.00/pico/main.c alpine-2.00.nlinfobug/pico/main.c *** alpine-2.00/pico/main.c 2008-04-02 15:09:20.000000000 -0700 --- alpine-2.00.nlinfobug/pico/main.c 2008-10-14 19:00:08.000000000 -0700 *************** *** 187,193 **** if(display_character_set) display_charmap = cpstr(display_character_set); #if HAVE_LANGINFO_H && defined(CODESET) ! else display_charmap = cpstr(nl_langinfo_codeset_wrapper()); #endif --- 187,193 ---- if(display_character_set) display_charmap = cpstr(display_character_set); #if HAVE_LANGINFO_H && defined(CODESET) ! else if (nl_langinfo_codeset_wrapper() != NULL) display_charmap = cpstr(nl_langinfo_codeset_wrapper()); #endif diff -rc alpine-2.00/pico/pilot.c alpine-2.00.nlinfobug/pico/pilot.c *** alpine-2.00/pico/pilot.c 2008-04-02 15:09:20.000000000 -0700 --- alpine-2.00.nlinfobug/pico/pilot.c 2008-10-14 19:00:38.000000000 -0700 *************** *** 142,148 **** if(display_character_set) display_charmap = cpstr(display_character_set); #if HAVE_LANGINFO_H && defined(CODESET) ! else display_charmap = cpstr(nl_langinfo_codeset_wrapper()); #endif --- 142,148 ---- if(display_character_set) display_charmap = cpstr(display_character_set); #if HAVE_LANGINFO_H && defined(CODESET) ! else if (nl_langinfo_codeset_wrapper() != NULL) display_charmap = cpstr(nl_langinfo_codeset_wrapper()); #endif ++++++ chappa-replacebug.patch.gz ++++++ diff -rc alpine-2.00/pico/search.c alpine-2.00.replacebug/pico/search.c *** alpine-2.00/pico/search.c 2008-01-04 14:49:15.000000000 -0800 --- alpine-2.00.replacebug/pico/search.c 2009-07-03 13:44:37.000000000 -0700 *************** *** 463,470 **** break; default: ! if(status == ABORT) emlwrite(_("Replacement Cancelled"), NULL); else{ mlerase(); chword(defpat, origpat); --- 463,472 ---- break; default: ! if(status == ABORT){ emlwrite(_("Replacement Cancelled"), NULL); + pico_refresh(FALSE, 1); + } else{ mlerase(); chword(defpat, origpat); ++++++ chappa-streamlock.patch.gz ++++++ diff -rc alpine-2.00/alpine/signal.c alpine-2.00.streamlock/alpine/signal.c *** alpine-2.00/alpine/signal.c 2008-04-07 15:58:40.000000000 -0700 --- alpine-2.00.streamlock/alpine/signal.c 2009-02-16 12:45:17.000000000 -0800 *************** *** 819,826 **** #else if(F_ON(F_SUSPEND_SPAWNS, ps_global)){ PIPE_S *syspipe; ! if((syspipe = open_system_pipe(NULL, NULL, NULL, PIPE_USER|PIPE_RESET, 0, pipe_callback, pipe_report_error)) != NULL){ suspend_notice("exit"); #ifndef SIGCHLD --- 819,828 ---- #else if(F_ON(F_SUSPEND_SPAWNS, ps_global)){ PIPE_S *syspipe; + int flag = some_stream_is_locked() ? PIPE_NONEWMAIL : 0; ! flag |= PIPE_USER|PIPE_RESET; ! if((syspipe = open_system_pipe(NULL, NULL, NULL, flag, 0, pipe_callback, pipe_report_error)) != NULL){ suspend_notice("exit"); #ifndef SIGCHLD *************** *** 867,873 **** _("Error loading "%s""), shell); #endif ! if(isremote && !pine_mail_ping(ps_global->mail_stream)) q_status_message(SM_ORDER | SM_DING, 4, 9, _("Suspended for too long, IMAP connection broken")); --- 869,876 ---- _("Error loading "%s""), shell); #endif ! if(isremote && !ps_global->mail_stream->lock ! && !pine_mail_ping(ps_global->mail_stream)) q_status_message(SM_ORDER | SM_DING, 4, 9, _("Suspended for too long, IMAP connection broken")); diff -rc alpine-2.00/pith/stream.c alpine-2.00.streamlock/pith/stream.c *** alpine-2.00/pith/stream.c 2008-03-25 11:57:53.000000000 -0700 --- alpine-2.00.streamlock/pith/stream.c 2009-02-16 12:36:34.000000000 -0800 *************** *** 3318,3323 **** --- 3318,3342 ---- } + /* Some stream is locked checks to see if there is any stream for which we + * are in a callback from c-client + */ + + int + some_stream_is_locked(void) + { + int rv = 0, i; + MAILSTREAM *m; + + for(i = 0; rv == 0 && i < ps_global->s_pool.nstream; i++){ + m = ps_global->s_pool.streams[i]; + if(m && m->lock) + rv++; + } + + return(rv); + } + /* * Very simple version of appenduid_cb until we need something * more complex. diff -rc alpine-2.00/pith/stream.h alpine-2.00.streamlock/pith/stream.h *** alpine-2.00/pith/stream.h 2007-06-15 16:23:02.000000000 -0700 --- alpine-2.00.streamlock/pith/stream.h 2009-02-16 12:37:13.000000000 -0800 *************** *** 460,465 **** --- 460,466 ---- int is_imap_stream(MAILSTREAM *); int modern_imap_stream(MAILSTREAM *); int streams_died(void); + int some_stream_is_locked(void); void appenduid_cb(char *mailbox,unsigned long uidvalidity, SEARCHSET *set); imapuid_t get_last_append_uid(void); MAILSTREAM *mail_cmd_stream(CONTEXT_S *, int *); ++++++ chappa-unixnullbug.patch.gz ++++++ diff -rc alpine-2.00/imap/src/c-client/mail.c alpine-2.00.unixnullbug/imap/src/c-client/mail.c *** alpine-2.00/imap/src/c-client/mail.c 2008-06-04 11:39:54.000000000 -0700 --- alpine-2.00.unixnullbug/imap/src/c-client/mail.c 2009-06-06 12:41:49.000000000 -0700 *************** *** 3352,3364 **** long flags) { STRINGLIST *hdrs; ! int notfound; unsigned long i; char c,*s,*e,*t,tmp[MAILTMPLEN]; char *src = text; char *dst = src; char *end = text + len; ! text[len] = '\012'; /* guard against running off buffer */ while (src < end) { /* process header */ /* slurp header line name */ for (s = src,e = s + MAILTMPLEN - 1,e = (e < end ? e : end),t = tmp; --- 3352,3364 ---- long flags) { STRINGLIST *hdrs; ! int notfound, fix = text[len - 1] == '\0'; unsigned long i; char c,*s,*e,*t,tmp[MAILTMPLEN]; char *src = text; char *dst = src; char *end = text + len; ! text[fix ? len - 1 : len] = '\012'; /* guard against running off buffer */ while (src < end) { /* process header */ /* slurp header line name */ for (s = src,e = s + MAILTMPLEN - 1,e = (e < end ? e : end),t = tmp; *************** *** 3397,3402 **** --- 3397,3406 ---- } } *dst = '\0'; /* tie off destination */ + if(fix){ + text[len] = '\012'; + text[len-1] = '\0'; + } return dst - text; } ++++++ chappa-unverified.patch.gz ++++++ diff -rc alpine-2.00/alpine/reply.c alpine-2.00.unverified/alpine/reply.c *** alpine-2.00/alpine/reply.c 2008-06-03 08:54:15.000000000 -0700 --- alpine-2.00.unverified/alpine/reply.c 2008-08-26 20:57:03.000000000 -0700 *************** *** 1164,1172 **** } else if(!outgoing->newsgroups) outgoing->newsgroups = cpystr(env->newsgroups); - if(!IS_NEWS(ps_global->mail_stream)) - q_status_message(SM_ORDER, 2, 3, - _("Replying to message that MAY or MAY NOT have been posted to newsgroup")); } return(ret); --- 1164,1169 ---- diff -rc alpine-2.00/imap/src/c-client/imap4r1.c alpine-2.00.unverified/imap/src/c-client/imap4r1.c *** alpine-2.00/imap/src/c-client/imap4r1.c 2008-06-04 11:39:54.000000000 -0700 --- alpine-2.00.unverified/imap/src/c-client/imap4r1.c 2008-08-26 20:57:03.000000000 -0700 *************** *** 4527,4532 **** --- 4527,4533 ---- if (*env) { /* need to merge this header into envelope? */ if (!(*env)->newsgroups) { /* need Newsgroups? */ (*env)->newsgroups = nenv->newsgroups; + (*env)->ngpathexists = nenv->ngpathexists; nenv->newsgroups = NIL; } if (!(*env)->followup_to) { /* need Followup-To? */ *************** *** 4581,4586 **** --- 4582,4588 ---- if (oenv) { /* need to merge old envelope? */ (*env)->newsgroups = oenv->newsgroups; oenv->newsgroups = NIL; + (*env)->ngpathexists = oenv->ngpathexists; (*env)->followup_to = oenv->followup_to; oenv->followup_to = NIL; (*env)->references = oenv->references; diff -rc alpine-2.00/imap/src/c-client/mail.h alpine-2.00.unverified/imap/src/c-client/mail.h *** alpine-2.00/imap/src/c-client/mail.h 2008-08-08 10:34:22.000000000 -0700 --- alpine-2.00.unverified/imap/src/c-client/mail.h 2008-08-26 20:57:03.000000000 -0700 *************** *** 685,690 **** --- 685,691 ---- /* Message envelope */ typedef struct mail_envelope { + unsigned int ngpathexists : 1; /* newsgroups may be bogus */ unsigned int incomplete : 1; /* envelope may be incomplete */ unsigned int imapenvonly : 1; /* envelope only has IMAP envelope */ char *remail; /* remail header if any */ diff -rc alpine-2.00/imap/src/c-client/rfc822.c alpine-2.00.unverified/imap/src/c-client/rfc822.c *** alpine-2.00/imap/src/c-client/rfc822.c 2008-06-04 11:46:10.000000000 -0700 --- alpine-2.00.unverified/imap/src/c-client/rfc822.c 2008-08-26 20:57:04.000000000 -0700 *************** *** 128,133 **** --- 128,134 ---- ENVELOPE *env = (*en = mail_newenvelope ()); BODY *body = bdy ? (*bdy = mail_newbody ()) : NIL; long MIMEp = -1; /* flag that MIME semantics are in effect */ + long PathP = NIL; /* flag that a Path: was seen */ parseline_t pl = (parseline_t) mail_parameters (NIL,GET_PARSELINE,NIL); if (!host) host = BADHOST; /* make sure that host is non-null */ while (i && *s != '\n') { /* until end of header */ *************** *** 230,235 **** --- 231,239 ---- *t++ = '\0'; } break; + case 'P': /* possible Path: */ + if (!strcmp (tmp+1,"ATH")) env->ngpathexists = T; + break; case 'R': /* possible Reply-To: */ if (!strcmp (tmp+1,"EPLY-TO")) rfc822_parse_adrlist (&env->reply_to,d,host); diff -rc alpine-2.00/pith/mailview.c alpine-2.00.unverified/pith/mailview.c *** alpine-2.00/pith/mailview.c 2008-07-11 16:20:32.000000000 -0700 --- alpine-2.00.unverified/pith/mailview.c 2008-08-26 20:57:04.000000000 -0700 *************** *** 2377,2384 **** format_addr_string(s, n, sect, "Return-Path: ", e->return_path, flags, oacs, pc); ! if((which & FE_NEWSGROUPS) && e->newsgroups) format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc); if((which & FE_FOLLOWUPTO) && e->followup_to) format_newsgroup_string("Followup-To: ", e->followup_to, flags, pc); --- 2377,2397 ---- format_addr_string(s, n, sect, "Return-Path: ", e->return_path, flags, oacs, pc); ! if((which & FE_NEWSGROUPS) && e->newsgroups){ ! int bogus = NIL; format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc); + if (!e->ngpathexists && e->message_id && + strncmp (e->message_id,"<alpine.",8) && + strncmp (e->message_id,"<Pine.",6) && + strncmp (e->message_id,"<MS-C.",6) && + strncmp (e->message_id,"<MailManager.",13) && + strncmp (e->message_id,"<EasyMail.",11) && + strncmp (e->message_id,"<ML-",4)) bogus = T; + + if(bogus) + q_status_message(SM_ORDER, 0, 3, + "Unverified Newsgroup header -- Message MAY or MAY NOT have been posted"); + } if((which & FE_FOLLOWUPTO) && e->followup_to) format_newsgroup_string("Followup-To: ", e->followup_to, flags, pc); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org