From: Thierry G. <mel...@ya...> - 2008-02-04 09:36:15
|
--- Paul Lesniewski <pa...@sq...> wrote: > On Jan 31, 2008 7:28 AM, Thierry Godefroy <mel...@ya...> wrote: > > > > .../... > > > > I hope this clears it all... :-) > > Well, no, this does not explain why my comment above is wrong. You > introduced some different patches in this email, but for now, I am > addressing the ones you started this thread with. First, this one, > which I think is not needed: > > diff -urN squirrelmail/functions/imap_messages.php > squirrelmail-melinda/functions/imap_messages.php > --- squirrelmail/functions/imap_messages.php 2008-01-15 16:34:31.000000000 > +0100 > +++ squirrelmail-melinda/functions/imap_messages.php 2008-01-18 > 11:09:20.000000000 +0100 > @@ -700,6 +700,8 @@ > $aMsg['date'] = > trim(str_replace(' ', ' ', $value)); > break; > case 'x-priority': > $aMsg['x-priority'] = ($value) ? (int) $value{0} : 3; break; > + case 'x-p772-primary-precedence': > + > $aMsg['x-p772-primary-precedence'] = $value; > case 'priority': > case 'importance': > // duplicate code with > Rfc822Header.cls:parsePriority() > > This is not needed because the default case just below looks like this: > > default: > $aMsg[$field] = $value; > break; > > So in the end, $aMsg has the very same value added to it. Now what I > am seeing that may be key to your patch is that > x-p772-primary-precedence does not have a "break;" so it also triggers > the execution of the code block that sets the priority > ($aMsg['x-priority']). Are you claiming that at the time that you are > using this code that you need that block to be executed? Of course yes ! Please, do read carefully the explanations I gave into my email: I need this so that mailbox_display.php does set properly the priority flag in the message list: because this flag is parsed/set at a "random" time (in fact, it depends on the order configured by the user for the messages list fields), I cannot rely on the only available hook in prepareMessageList() (functions/mailbox_display.php), which is the subject_link hook, to adjust the priority value before the SQM_COL_PRIO case is executed. > I do not like adding more headers to this switch block. The alternative is to add a hook in prepareMessageList(), for the SQM_COL_PRIO case... A bit of an overkill (in term of required processing power) when compared to my patch (two lines of code added)... > Do you think you could fetch the importance, priority, or x-priority > header(s) instead to trigger this block's execution? No, because those fields are not used (and they are always absent) in formal messages. Formal messages make a distinction between primary (for 'To' adressees) and copy (for 'Info' addressees = 'Cc') precedences. > The second patch that I don't think is needed: > > diff -urN squirrelmail/class/mime/Rfc822Header.class.php > squirrelmail-melinda/class/mime/Rfc822Header.class.php > --- squirrelmail/class/mime/Rfc822Header.class.php 2008-01-15 > 16:34:17.000000000 +0100 > +++ squirrelmail-melinda/class/mime/Rfc822Header.class.php 2008-01-15 > 16:09:56.000000000 +0100 > @@ -312,6 +312,8 @@ > case 'x-mailer': > $this->xmailer = $value; > break; > + case 'x-p772-primary-precedence': > + $this->more_headers[$field] = $value; > case 'x-priority': > case 'importance': > case 'priority': > > This is not needed for the same reason - because I think the one part > of your patch that SHOULD be added will result in $this->more_headers > having the very same information added to it anyway: But again, if you remove this patch, the priority of the message (in the header array) will not be properly set for formal messages... There -is- a reason for the absence of a break, as I do need the code in 'priority' case to be executed. Here again, the only alternative is to add a hook somewhere, excepted that this class being called in various places, this would involve adding a hook to the class itself (in the default: case)... I again see this as a waste of processing power, really... Another possibility, which I suggested already in a previous reply to your objections, would be to make the priority field names configurable: for example by putting 'X-Priority' (which is already an extension to the RFC-822 anyway) into an array and processing all fields in that array in the same way: adding more fields to this array (such as X-P772-Primary-Precedence) should then be made possible via a site-wide configuration option (in config/config_default.php, for example)... Regards, Thierry Godefroy. ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ |