# do not edit -- automatically generated by arch changelog
# tag: automatic-ChangeLog--angles@aminvestments.com--2002/anglemail--codehere--1.1
#

2002-10-24 GMT	Angles Puglisi <angles@aminvestments.com>	patch-65

    Summary:
      spead tweaks for large moves, including using refernces 
    Revision:
      anglemail--codehere--1.1--patch-65

    Spead tweaks for large moves, including using refernces to arg values. 
    Also made a simage move a param for pgpgw_delete in cases where we 
    are certain there is only one message to proces through the move command.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.bofolder.inc.php inc/class.bopreferences.inc.php
     inc/class.html_widgets.inc.php inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_display.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-24 GMT	Angles Puglisi <angles@aminvestments.com>	patch-64

    Summary:
      MASSIVE change to buffer similar moves and issue a single flush 
    Revision:
      anglemail--codehere--1.1--patch-64

    MASSIVE change to buffer similar moves and issue a single flush.
    
    Function "industrial_interacct_mail_move" is not a shell that just 
    recordes the desired move in an arg that each account has called 
    "buffered_move_commands". Only in boaction where total moved it known 
    to be 1 message, then that directly calls "single_interacct_mail_move" 
    which is substantially the same as the OLD "industrial_interacct_mail_move" 
    and is useful for a single move AND FOR moves between different accounts 
    which must happen one at a time. 
    
    Then, when the calling process calls "expunge_expungable_folders", as it 
    would have done before anyway, now that function first calls to 
    "flush_buffered_move_commands" which is a similar function to the 
    expunge code, it looks at one account at a time, for its "buffered_move_commands" 
    list. That list is constructed or URI type strings designed to group 
    moves as much as possible simply by calling sort. Then each move is 
    grouped with each similar move, until no more grouping is possible, 
    then the entire move is issued in a single command to the mailserver. 
    Note that extreme caching is ALWAYS flushed and turned off for the duration 
    of the flush move function.
    
    If moves do not match us for account and folder, then they are issues right 
    away and the loop continues looking for more similar moves to group, since 
    this is done by account we know immediately that the from account is 
    always the same right there. In such cases as moves between different 
    accounts this must be handed off to "single_interacct_mail_move" which 
    moves happenn one at a time. 
    
    Note that if using the trash folder, deleting mail that should be moved to 
    the trash folder will be grouped thru this same process, however 
    actuall deletes still occur one at a time.
    
    Code is not yet tested with filters althought the design for 
    non-limited moves and groupings should allow for filters to 
    work with this.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-24 GMT	Angles Puglisi <angles@aminvestments.com>	patch-63

    Summary:
      fix submit prefs not expiring all cached args
    Revision:
      anglemail--codehere--1.1--patch-63

    Fix submit prefs not expiring all cached args. There 
    was a bug where if you changed your pref setting for 
    "U-Wash Mail Folder", the setting would not take effect 
    until you logged out of phpgw then logged back in. This is 
    because the cached arg mailsvr_delimiter was not being expired 
    on the submitting of new prefs. Fixed now.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.bopreferences.inc.php


2002-10-23 GMT	Angles Puglisi <angles@aminvestments.com>	patch-62

    Summary:
      login immediately if not caching, reduce "big move" to 10
    Revision:
      anglemail--codehere--1.1--patch-62

    If not extreme caching, attempt login immediately. Fact is that 
    if you are not caching you are going to need to log in to the 
    mailserver, in all cases except for login NEVER such as is set 
    by the bopreferences page in its constructor, as an example for 
    this never login functionality.
    
    Reduce "big move" to 10, in file boaction, until it is proven that the 
    larger number, was 95, in fact makes things faster. This means that moving 
    or deleting 10 messages or more at once will clear the cache and reset 
    all that stuff, instead of manually adjusting the cache to reflect 
    the changes as they take place.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.mail_msg_base.inc.php


2002-10-23 GMT	Angles Puglisi <angles@aminvestments.com>	patch-61

    Summary:
      extend rh bug recovery to on-demand streams, start a 3 way login instruction logic
    Revision:
      anglemail--codehere--1.1--patch-61

    Extend rh bug recovery to on-demand streams. The recovery code actually uses a function 
    called "ensure_stream_and_folder" to do on-the-fly recovery. However, opening streams 
    "on demand" (as required) also uses that same function, so it had to be tweaked to 
    allow for the recursive calling from the recovery function, then a check by the first 
    process to see if the recursive call succeeded in recovering from the RH bug.
    
    This now extends the RH recovery fix to all attempts to open streams, not just the 
    initial login during the "begin_request" function. This now allows for the 
    filters edit page to work correctly, for example, since those streams, if needed, 
    are open on demand, and the RH recovery now works during that process.
    
    Start a 3 way login instruction logic. In cases of caching the simple boolean 
    do_login yes or no may be too simple. This requires the testing of 3 possibilities, 
    to NEVER login no matter what, such as with prefernces pages, to login in only 
    on demand, or to definatey login.
    
    Additionally, if it is decided to skip the the "begin_request" login sequence, there 
    are still 2 or 3 important vars that must be gathered before exiting the function, this 
    now happens in all cases when this initial login is skipped.
    
    Found an unwrapped call to "imap_last_error" in file mail_msg_base in the 
    RH recovery code. Trouble is, since there was an error there is no dcom object 
    available so no wrapped call is existing, so the bare php-imap extension call must 
    be used there if you do indeed want the server error string (which may not be necessary 
    anymore anyway) but that is now wrapped in a "function_exists" test for 
    installs without IMAP module compiled in.
    
    Now this commit works with caching enabled. After this needs to be tested with 
    caching turned off.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.bofilters.inc.php
     inc/class.bopreferences.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.msg_bootstrap.inc.php inc/hook_home.inc.php


2002-10-22 GMT	Angles Puglisi <angles@aminvestments.com>	patch-60

    Summary:
      fix qprint decoding, add some additional but minor utf7 capability
    Revision:
      anglemail--codehere--1.1--patch-60

    fix qprint decoding, for some reason the "qprint" function was doing 2 extra 
    things before using the php "quoted_printable_decode" command.  First, it would 
    change any underscores "_" to a space, and second, it would change the 
    sequence "=CRLF" to nothing, in other words erasing that. Now the function 
    simply returns the result of the php "quoted_printable_decode" like an alias 
    function, no modification to the input string takes place now.
    
    Add utf7 stuff that make have some corner case fixes. Added capability in the utf7_decode_string 
    function to handle foldernames coming from the server that are not fully qualified with 
    brackets and server name. It is possible that with sub folders this may happen, but generally 
    the mailserver only spits out folder names that are fully qualified. But just in case, this 
    handling has been added.
    
    Added 2 functions that are not used yet and may never be used, just testing the idea, called 
    "needs_utf7_encoding" and "needs_utf7_decoding" just to check for the need for even 
    calling the utf7 functions, however some degree of guessing is required for the decode test 
    so the only way to know for sure is to actually try to decode it. The "needs encoding" function 
    simply looks for char 37 (the ampersand) and any chars greater than or equal to 127, which 
    is the char range where utf7 encoding is required. According to RFC2060 the ampersand is 
    also required to be encoded because the modified utf7 scheme described there uses the 
    ampersand as a special token.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.mail_dcom_base.inc.php
     inc/class.mail_msg_base.inc.php


2002-10-21 GMT	Angles Puglisi <angles@aminvestments.com>	patch-59

    Summary:
      fix utf7 encoding for mail_move, now skips duplicate delmov_list elements
    Revision:
      anglemail--codehere--1.1--patch-59

    Fix utf7 encoding for mail_move. Most commands issued to the mailserver require 
    a fully qualified BRACKET_MAILSERVER_BRACKER_NAMESPACE_DELIMITED_FOLDERNAME 
    syntax, so the utf7 encoding code had been tuned for this. However, the 
    command to move mail to different folders within the same account does not 
    have the BRACKET_SERVER_BRACKET part in the folder name string. Now the 
    utf7 encoding function can handle this syntax too. Thus moving or deleting 
    mail to or from folders having names requiring utf7 modifications not 
    work as expected.
    
    Now skips duplicate delmov_list elements. Apache2 on a test install on RH8.0 
    was submitting duplicate items in the delmov_list that gets submitted from 
    the index page. It seemed like a good thing to check for duplicates anyway, 
    so that part of the GPC arg collection routine checks for duplicate items in 
    the submitted delmov_list array.

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.mail_dcom_base.inc.php
     inc/class.mail_dcom_imap.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-21 GMT	Angles Puglisi <angles@aminvestments.com>	patch-58

    Summary:
      trash folder now handled by arg "veified_trash_folder_long", fix dup "javascript" string in boindex
    Revision:
      anglemail--codehere--1.1--patch-58

    Trash folder now handled by arg "veified_trash_folder_long". Code to obtain verified 
    long name for trash folder, or to create it if necessary, moved to function called 
    "get_verified_trash_folder_long" which is a "special handler" that is used when you 
    call ->get_arg_value("verified_trash_folder_long"). The result is cached in L1 class 
    var cache (not appsession cache, [not yet at least]), which is a good thing because the 
    delete function may be called many times in a row, now the trash folder stuff happens 
    only once.
    
    It checks for preference to use the trash folder also, because if user pref to 
    use trash folder is false we can not, in that case, obtain a "verified" name for 
    it then. NOTE THIS REPLACES your need to call get_pref_value("trash_folder_name"), 
    this new capability to use get_arg_value("verified_trash_folder_long") handles 
    for you all the logic of obtaining the trash folder name in official long name form, 
    or even will try to attempt to create it if it does not already exist (and if user 
    pref is in fact to use the trash folder).
    
    Fix duplicate "javascript" string in boindex, resulting in delete button with string 
    "javascript:javascript:do_something(delall)" as an href. I actually noticed no 
    functional difference for the browser when this was fixed, maybe js checks for 
    that anyway.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boindex.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-20 GMT	Angles Puglisi <angles@aminvestments.com>	patch-57

    Summary:
      fix disallow logins if do_login is false, and add link to login err msg
    Revision:
      anglemail--codehere--1.1--patch-57

    Fix disallow logins if do_login is false. The caching was 
    still testing the cache even if do_login was false, which is 
    bad because testing the cache may require a login itself. So 
    not do_login set to False disallows any attempt to login, 
    which is needed for preferences pages or other places where 
    we do not want a login, may not have enough info for a login, 
    or simply have no need for a login anyway.
    
    Also added a link to the login error message to return to 
    the users "home" page.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.mail_msg_base.inc.php


2002-10-20 GMT	Angles Puglisi <angles@aminvestments.com>	patch-56

    Summary:
      better memory handling of prefs, fixes for prefs handling for new acctname
    Revision:
      anglemail--codehere--1.1--patch-56

    Better memory handling of prefs, previously there were several copies of prefs 
    data in memory at the same time, this has been eliminated.
    
    Msg object now has a var "raw_filters" which is the unprocessed filter 
    data from the prefs as collected by the msg object during initialization.
    
    Fixes for prefs handling for new acctname, default value is NO value, previously 
    was a one char empty string. The no value will cause (hopefully) the value to be 
    picked up from the more generic name handling from before, if the new 
    acctname pref is not specified.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.bofilters.inc.php inc/class.bopreferences.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.ui_mail_debug.inc.php templates/default/debug.tpl


2002-10-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-55

    Summary:
      fix prefs handling of addybook, js of old addybook, remove VFS strings
    Revision:
      anglemail--codehere--1.1--patch-55

    fix prefs handling of addybook, it needed to use the OOP prefs access 
    functions.
    
    js of old addybook was broken since the link has no GET args, this 
    cause the js in the compose page to fail if "extraparam" was not 
    filled, so I added a bogus arg to the URI just to make that happy.
    
    remove "VFS" string that was a reminder for me, just a placeholder.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.bocompose.inc.php
     inc/class.bomessage.inc.php


2002-10-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-54

    Summary:
      reverse update trick syncing codehere to ryan on 021017
    Revision:
      anglemail--codehere--1.1--patch-54

    reverse update trick syncing codehere to ryan on 021017
    
    These 2 commands failed:
    > larch star-merge ./anglemail-codehere anglemail--codehere--1.1 anglemail--ryan--1.1 ./anglemail-codestar
    > larch star-merge anglemail--codehere--1.1 ./anglemail-codehere anglemail--ryan--1.1 ./anglemail-codestar
    because branch codehere had no patchlog for branch ryan.
    
    Solution, reverse update trick:
    > larch update --force ./anglemail-ryan ./anglemail-ryanupdated anglemail--codehere--1.1
    Update codehere INTO ryan into a new dir, copy differences from that temp dir  
    to codehere, trick is done. Also note any file removals, but do not remove any other 
    than those files removed via development, i.e. different trees will have certain arch 
    control files different no matter what.
    
    Note that all of ryan's changelogs, and some others, were copied to codehere in the process, 
    thus increasing codehere's patchlog awareness, assuming this trick preserves merge integriry 
    down the road. 
    

    new files:
     ChangeLog.core--1.1 ChangeLog.ryan--1.1 {arch}/=tagging-method
     {arch}/anglemail/anglemail--core/anglemail--core--1.1/angles@aminvestments.com--2002/patch-log/patch-1
     {arch}/anglemail/anglemail--core/anglemail--core--1.1/angles@aminvestments.com--2002/patch-log/patch-2
     {arch}/anglemail/anglemail--core/anglemail--core--1.1/angles@aminvestments.com--2002/patch-log/patch-3
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-18
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-19
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-20
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-21
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-22
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/base-0
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-1
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-10
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-11
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-12
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-2
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-3
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-4
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-5
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-6
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-7
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-8
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-9

    removed files:
     brother1.html brother2.html data1.html frameset.html

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     addressbook-js.changelog.txt inc/class.bocompose.inc.php
     inc/class.boindex.inc.php inc/class.bojsaddressbook.inc.php
     inc/class.bopreferences.inc.php inc/class.html_widgets.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_display.inc.php
     inc/class.mail_msg_wrappers.inc.php inc/class.spell.inc.php
     inc/class.ui_mail_debug.inc.php inc/class.uicompose.inc.php
     inc/class.uiindex.inc.php inc/class.uijsaddressbook.inc.php
     inc/class.uipreferences.inc.php inc/hook_home.inc.php
     inc/selectboxes.js templates/default/addressbook-js-bits.tpl
     templates/default/addressbook-js-frameset.tpl
     templates/default/addressbook-js.tpl
     templates/default/addressbook-real-plain.tpl-UNUSED
     templates/default/addressbook.tpl
     templates/default/addressbook.tpl-BAD
     templates/default/addressbook.tpl-ORIG
     templates/default/compose.tpl
     templates/default/index_main_b0_l2.tpl

    new directories:
     {arch}/anglemail/anglemail--ryan
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log

    new patches:
     angles@aminvestments.com--2002/anglemail--core--1.1--patch-1
     angles@aminvestments.com--2002/anglemail--core--1.1--patch-2
     angles@aminvestments.com--2002/anglemail--core--1.1--patch-3
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-18
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-19
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-20
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-21
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-22
     angles@aminvestments.com--2002/anglemail--ryan--1.1--base-0
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-1
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-10
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-11
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-12
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-2
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-3
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-4
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-5
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-6
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-7
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-8
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-9


2002-11-01 GMT	Angles Puglisi <angles@aminvestments.com>	patch-71

    Summary:
      add auto refresh widget, deal with parse_str always adding slashes
    Revision:
      anglemail--codehere--1.1--patch-71

    Add auto refresh widget. Html widgets now has some code to generate an 
    auto refresh javascript block based on certain args you give it. Hard 
    coded to 4 minutes for the layout 2 index page right now, it is 
    designed to eventually pull the refresh time from prefs database. It 
    uses javascript delay to reload the page in such a way the the browser 
    will use the images in cache, as opposed to the "meta refresh" command 
    which instructs the browser to re download the images, which is not 
    what we want here.
    
    Deal with parse_str always adding slashes. Turns out that parse_str command 
    will always add slashes to escape quotes, just like GPC magic quotes, except that 
    parse_str always does it no matter what the setting for magic quotes is. Therefor 
    in several places "stripslashes" must be done to remove any such slashes from 
    folder names because add such slashes b0rks the name of the folder if it has quotes 
    in it, which is allowed for IMAP folders. There probably needs to be more handling 
    for this added elsewhere, but this is a start.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boindex.inc.php
     inc/class.html_widgets.inc.php inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php inc/class.uiindex.inc.php
     templates/default/index_main_b0_l2.tpl


2002-10-30 GMT	Angles Puglisi <angles@aminvestments.com>	patch-70

    Summary:
      deletes buffered, fix expiring folder status info handler, fix buffer series string 
    Revision:
      anglemail--codehere--1.1--patch-70

    Fix buffer series string. This BUGFIX is for some occasions when the 
    assembly of the string holding the collection of msgnums to move 
    or delete was not adding a comma or colon in certain circumstances.
    
    Deletes buffered. Deletes not use the same buffering code that moves 
    do, therefor block deletes are sent to the server in one command 
    if possible.
    
    Fix expiring folder status info handler. In examining extreme mode 
    step 3b where the TARGET folder of a move has its folder_status_info 
    expired, (because we know we are moving mail INTO that folder thus 
    chaging in its folder status info in a way that is hard to imitate), 
    it was observed that expiring said data did not have the correct handler 
    in "expire_session_cache" for this item, resulting in the expiring 
    of ALL folder status info for that account, not just the info 
    for the target folder only! Any cached data whose extraction 
    requires what is referred to as a "specific key" or "extra special stuff" 
    must have an expiring handler that also uses that, so sub data is 
    expited, not an entire superstructire of data.
    
    That last fix should mean "extrame caching" should be able to 
    handle the large moves and deletes without having to 
    get additional info from the mail server but still the 
    "large move" threshold is 3 or more moves or deletes at a time, 
    less than such "large move" use the "extreme cache" tracking of moves and 
    deletes which manually alters cache to imitate what data the 
    mailserver would have after such moves are done, except for the 
    target folder which we will not guess about due to the complexity of 
    guessing about messages numbers used for mail moved INTO a folder.
    
    However, over such a "big move" threshold, the extreme caching is 
    disabled for the duration of the move and the cache is flushed so 
    that the data after the move will definately be fresh data just 
    obtained from the mailserver itself.
    
    All that is not new, it is just reviewing what was impacted by the 
    incorrect handler for the folder_status_info target folder expiring 
    all account folder_status_data. This means no "extreme cache" tracking 
    of moves or deletes was possible because this crucial info was 
    wiped out needlessly during every move, requiring the data to be 
    obtained from the server and slowing down the entire process, so 
    that data could not be manually altered and saved in step2 because 
    step 3b was wiping it out every time. IF extreme caching was on 
    and IF the "big move threshold" was not exceeded, and IF the codebase 
    was before this fix, this part of extreme caching was not operational, 
    HOWEVER the other parts of extreme caching NOT the parts that track 
    moves and deletes were probably not effected except perhaps every 
    4 minutes when fresh folder_status_data was obtained, and only 
    for the script run when that happened.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-69

    Summary:
      fixes: msgball_list handling extreme and non, comma for last 2 series msgnuns 
    Revision:
      anglemail--codehere--1.1--patch-69

    Fix comma for last 2 series msgnums, this bug was for when the final 2 numbers in a 
    msgnum grouping string were continuous, yet still need a comma because the series 
    is ended with the end of the buffered_move_commands array.
    
    Caching (and specifically msgball_list handling extreme and non-extreme mode), totally 
    examined and extra or redundant calls removed and previously unhandled situations 
    now handled (that I could find).
    
    Straight delete (not a move to trash) code streamlined in preparation for 
    migrating straight deletes to a buffered list regime.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-68

    Summary:
      remember "no_fmt" value across pageviews and moves / deletes
    Revision:
      anglemail--codehere--1.1--patch-68

    Remember "no_fmt" value across pageviews and moves / deletes. If you 
    are viewing a message and you click on "View Unformatted" you get the 
    fixed font version of the text. Now this is remembered so when you view 
    the next message it will also be in the "view unformatted" look. This 
    is remembered while going to the next or previous message, and also 
    when clicking delete or moving the message from the uimessage page. 
    Any other activity, like going back to the INDEX page, or composing mail, 
    these things do not preserve the "no_fmt" value.
    
    This is instead of making this a preference, because I can see people 
    wanting to switch back and forth between formatted and fixed font, which 
    would be a PITA to gave to goto the settings page each time to change this.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.bomessage.inc.php


2002-10-25 GMT	Angles Puglisi <angles@aminvestments.com>	patch-67

    Summary:
      more streamlining of moves 
    Revision:
      anglemail--codehere--1.1--patch-67

    More streamlining of moves. Moves are collected in a single class var 
    instead of account by account. Track expungable folders not uses reference 
    if possible.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-24 GMT	Angles Puglisi <angles@aminvestments.com>	patch-66

    Summary:
      fix msgnum series bug and speed up trash logic
    Revision:
      anglemail--codehere--1.1--patch-66

    Fix msgnum series bug and speed up trash logic. Also 
    removed some commented out code twas no longer needed.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.mail_msg_wrappers.inc.php


2002-10-24 GMT	Angles Puglisi <angles@aminvestments.com>	patch-65

    Summary:
      spead tweaks for large moves, including using refernces 
    Revision:
      anglemail--codehere--1.1--patch-65

    Spead tweaks for large moves, including using refernces to arg values. 
    Also made a simage move a param for pgpgw_delete in cases where we 
    are certain there is only one message to proces through the move command.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.bofolder.inc.php inc/class.bopreferences.inc.php
     inc/class.html_widgets.inc.php inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_display.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-24 GMT	Angles Puglisi <angles@aminvestments.com>	patch-64

    Summary:
      MASSIVE change to buffer similar moves and issue a single flush 
    Revision:
      anglemail--codehere--1.1--patch-64

    MASSIVE change to buffer similar moves and issue a single flush.
    
    Function "industrial_interacct_mail_move" is not a shell that just 
    recordes the desired move in an arg that each account has called 
    "buffered_move_commands". Only in boaction where total moved it known 
    to be 1 message, then that directly calls "single_interacct_mail_move" 
    which is substantially the same as the OLD "industrial_interacct_mail_move" 
    and is useful for a single move AND FOR moves between different accounts 
    which must happen one at a time. 
    
    Then, when the calling process calls "expunge_expungable_folders", as it 
    would have done before anyway, now that function first calls to 
    "flush_buffered_move_commands" which is a similar function to the 
    expunge code, it looks at one account at a time, for its "buffered_move_commands" 
    list. That list is constructed or URI type strings designed to group 
    moves as much as possible simply by calling sort. Then each move is 
    grouped with each similar move, until no more grouping is possible, 
    then the entire move is issued in a single command to the mailserver. 
    Note that extreme caching is ALWAYS flushed and turned off for the duration 
    of the flush move function.
    
    If moves do not match us for account and folder, then they are issues right 
    away and the loop continues looking for more similar moves to group, since 
    this is done by account we know immediately that the from account is 
    always the same right there. In such cases as moves between different 
    accounts this must be handed off to "single_interacct_mail_move" which 
    moves happenn one at a time. 
    
    Note that if using the trash folder, deleting mail that should be moved to 
    the trash folder will be grouped thru this same process, however 
    actuall deletes still occur one at a time.
    
    Code is not yet tested with filters althought the design for 
    non-limited moves and groupings should allow for filters to 
    work with this.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-24 GMT	Angles Puglisi <angles@aminvestments.com>	patch-63

    Summary:
      fix submit prefs not expiring all cached args
    Revision:
      anglemail--codehere--1.1--patch-63

    Fix submit prefs not expiring all cached args. There 
    was a bug where if you changed your pref setting for 
    "U-Wash Mail Folder", the setting would not take effect 
    until you logged out of phpgw then logged back in. This is 
    because the cached arg mailsvr_delimiter was not being expired 
    on the submitting of new prefs. Fixed now.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.bopreferences.inc.php


2002-10-23 GMT	Angles Puglisi <angles@aminvestments.com>	patch-62

    Summary:
      login immediately if not caching, reduce "big move" to 10
    Revision:
      anglemail--codehere--1.1--patch-62

    If not extreme caching, attempt login immediately. Fact is that 
    if you are not caching you are going to need to log in to the 
    mailserver, in all cases except for login NEVER such as is set 
    by the bopreferences page in its constructor, as an example for 
    this never login functionality.
    
    Reduce "big move" to 10, in file boaction, until it is proven that the 
    larger number, was 95, in fact makes things faster. This means that moving 
    or deleting 10 messages or more at once will clear the cache and reset 
    all that stuff, instead of manually adjusting the cache to reflect 
    the changes as they take place.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.mail_msg_base.inc.php


2002-10-23 GMT	Angles Puglisi <angles@aminvestments.com>	patch-61

    Summary:
      extend rh bug recovery to on-demand streams, start a 3 way login instruction logic
    Revision:
      anglemail--codehere--1.1--patch-61

    Extend rh bug recovery to on-demand streams. The recovery code actually uses a function 
    called "ensure_stream_and_folder" to do on-the-fly recovery. However, opening streams 
    "on demand" (as required) also uses that same function, so it had to be tweaked to 
    allow for the recursive calling from the recovery function, then a check by the first 
    process to see if the recursive call succeeded in recovering from the RH bug.
    
    This now extends the RH recovery fix to all attempts to open streams, not just the 
    initial login during the "begin_request" function. This now allows for the 
    filters edit page to work correctly, for example, since those streams, if needed, 
    are open on demand, and the RH recovery now works during that process.
    
    Start a 3 way login instruction logic. In cases of caching the simple boolean 
    do_login yes or no may be too simple. This requires the testing of 3 possibilities, 
    to NEVER login no matter what, such as with prefernces pages, to login in only 
    on demand, or to definatey login.
    
    Additionally, if it is decided to skip the the "begin_request" login sequence, there 
    are still 2 or 3 important vars that must be gathered before exiting the function, this 
    now happens in all cases when this initial login is skipped.
    
    Found an unwrapped call to "imap_last_error" in file mail_msg_base in the 
    RH recovery code. Trouble is, since there was an error there is no dcom object 
    available so no wrapped call is existing, so the bare php-imap extension call must 
    be used there if you do indeed want the server error string (which may not be necessary 
    anymore anyway) but that is now wrapped in a "function_exists" test for 
    installs without IMAP module compiled in.
    
    Now this commit works with caching enabled. After this needs to be tested with 
    caching turned off.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.bofilters.inc.php
     inc/class.bopreferences.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.msg_bootstrap.inc.php inc/hook_home.inc.php


2002-10-22 GMT	Angles Puglisi <angles@aminvestments.com>	patch-60

    Summary:
      fix qprint decoding, add some additional but minor utf7 capability
    Revision:
      anglemail--codehere--1.1--patch-60

    fix qprint decoding, for some reason the "qprint" function was doing 2 extra 
    things before using the php "quoted_printable_decode" command.  First, it would 
    change any underscores "_" to a space, and second, it would change the 
    sequence "=CRLF" to nothing, in other words erasing that. Now the function 
    simply returns the result of the php "quoted_printable_decode" like an alias 
    function, no modification to the input string takes place now.
    
    Add utf7 stuff that make have some corner case fixes. Added capability in the utf7_decode_string 
    function to handle foldernames coming from the server that are not fully qualified with 
    brackets and server name. It is possible that with sub folders this may happen, but generally 
    the mailserver only spits out folder names that are fully qualified. But just in case, this 
    handling has been added.
    
    Added 2 functions that are not used yet and may never be used, just testing the idea, called 
    "needs_utf7_encoding" and "needs_utf7_decoding" just to check for the need for even 
    calling the utf7 functions, however some degree of guessing is required for the decode test 
    so the only way to know for sure is to actually try to decode it. The "needs encoding" function 
    simply looks for char 37 (the ampersand) and any chars greater than or equal to 127, which 
    is the char range where utf7 encoding is required. According to RFC2060 the ampersand is 
    also required to be encoded because the modified utf7 scheme described there uses the 
    ampersand as a special token.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.mail_dcom_base.inc.php
     inc/class.mail_msg_base.inc.php


2002-10-21 GMT	Angles Puglisi <angles@aminvestments.com>	patch-59

    Summary:
      fix utf7 encoding for mail_move, now skips duplicate delmov_list elements
    Revision:
      anglemail--codehere--1.1--patch-59

    Fix utf7 encoding for mail_move. Most commands issued to the mailserver require 
    a fully qualified BRACKET_MAILSERVER_BRACKER_NAMESPACE_DELIMITED_FOLDERNAME 
    syntax, so the utf7 encoding code had been tuned for this. However, the 
    command to move mail to different folders within the same account does not 
    have the BRACKET_SERVER_BRACKET part in the folder name string. Now the 
    utf7 encoding function can handle this syntax too. Thus moving or deleting 
    mail to or from folders having names requiring utf7 modifications not 
    work as expected.
    
    Now skips duplicate delmov_list elements. Apache2 on a test install on RH8.0 
    was submitting duplicate items in the delmov_list that gets submitted from 
    the index page. It seemed like a good thing to check for duplicates anyway, 
    so that part of the GPC arg collection routine checks for duplicate items in 
    the submitted delmov_list array.

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.mail_dcom_base.inc.php
     inc/class.mail_dcom_imap.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-21 GMT	Angles Puglisi <angles@aminvestments.com>	patch-58

    Summary:
      trash folder now handled by arg "veified_trash_folder_long", fix dup "javascript" string in boindex
    Revision:
      anglemail--codehere--1.1--patch-58

    Trash folder now handled by arg "veified_trash_folder_long". Code to obtain verified 
    long name for trash folder, or to create it if necessary, moved to function called 
    "get_verified_trash_folder_long" which is a "special handler" that is used when you 
    call ->get_arg_value("verified_trash_folder_long"). The result is cached in L1 class 
    var cache (not appsession cache, [not yet at least]), which is a good thing because the 
    delete function may be called many times in a row, now the trash folder stuff happens 
    only once.
    
    It checks for preference to use the trash folder also, because if user pref to 
    use trash folder is false we can not, in that case, obtain a "verified" name for 
    it then. NOTE THIS REPLACES your need to call get_pref_value("trash_folder_name"), 
    this new capability to use get_arg_value("verified_trash_folder_long") handles 
    for you all the logic of obtaining the trash folder name in official long name form, 
    or even will try to attempt to create it if it does not already exist (and if user 
    pref is in fact to use the trash folder).
    
    Fix duplicate "javascript" string in boindex, resulting in delete button with string 
    "javascript:javascript:do_something(delall)" as an href. I actually noticed no 
    functional difference for the browser when this was fixed, maybe js checks for 
    that anyway.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boindex.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-10-20 GMT	Angles Puglisi <angles@aminvestments.com>	patch-57

    Summary:
      fix disallow logins if do_login is false, and add link to login err msg
    Revision:
      anglemail--codehere--1.1--patch-57

    Fix disallow logins if do_login is false. The caching was 
    still testing the cache even if do_login was false, which is 
    bad because testing the cache may require a login itself. So 
    not do_login set to False disallows any attempt to login, 
    which is needed for preferences pages or other places where 
    we do not want a login, may not have enough info for a login, 
    or simply have no need for a login anyway.
    
    Also added a link to the login error message to return to 
    the users "home" page.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.mail_msg_base.inc.php


2002-10-20 GMT	Angles Puglisi <angles@aminvestments.com>	patch-56

    Summary:
      better memory handling of prefs, fixes for prefs handling for new acctname
    Revision:
      anglemail--codehere--1.1--patch-56

    Better memory handling of prefs, previously there were several copies of prefs 
    data in memory at the same time, this has been eliminated.
    
    Msg object now has a var "raw_filters" which is the unprocessed filter 
    data from the prefs as collected by the msg object during initialization.
    
    Fixes for prefs handling for new acctname, default value is NO value, previously 
    was a one char empty string. The no value will cause (hopefully) the value to be 
    picked up from the more generic name handling from before, if the new 
    acctname pref is not specified.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.boaction.inc.php
     inc/class.bofilters.inc.php inc/class.bopreferences.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.ui_mail_debug.inc.php templates/default/debug.tpl


2002-10-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-55

    Summary:
      fix prefs handling of addybook, js of old addybook, remove VFS strings
    Revision:
      anglemail--codehere--1.1--patch-55

    fix prefs handling of addybook, it needed to use the OOP prefs access 
    functions.
    
    js of old addybook was broken since the link has no GET args, this 
    cause the js in the compose page to fail if "extraparam" was not 
    filled, so I added a bogus arg to the URI just to make that happy.
    
    remove "VFS" string that was a reminder for me, just a placeholder.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.core--1.1 ChangeLog.lex--1.1
     ChangeLog.ryan--1.1 inc/class.bocompose.inc.php
     inc/class.bomessage.inc.php


2002-10-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-54

    Summary:
      reverse update trick syncing codehere to ryan on 021017
    Revision:
      anglemail--codehere--1.1--patch-54

    reverse update trick syncing codehere to ryan on 021017
    
    These 2 commands failed:
    > larch star-merge ./anglemail-codehere anglemail--codehere--1.1 anglemail--ryan--1.1 ./anglemail-codestar
    > larch star-merge anglemail--codehere--1.1 ./anglemail-codehere anglemail--ryan--1.1 ./anglemail-codestar
    because branch codehere had no patchlog for branch ryan.
    
    Solution, reverse update trick:
    > larch update --force ./anglemail-ryan ./anglemail-ryanupdated anglemail--codehere--1.1
    Update codehere INTO ryan into a new dir, copy differences from that temp dir  
    to codehere, trick is done. Also note any file removals, but do not remove any other 
    than those files removed via development, i.e. different trees will have certain arch 
    control files different no matter what.
    
    Note that all of ryan's changelogs, and some others, were copied to codehere in the process, 
    thus increasing codehere's patchlog awareness, assuming this trick preserves merge integriry 
    down the road. 
    

    new files:
     ChangeLog.core--1.1 ChangeLog.ryan--1.1 {arch}/=tagging-method
     {arch}/anglemail/anglemail--core/anglemail--core--1.1/angles@aminvestments.com--2002/patch-log/patch-1
     {arch}/anglemail/anglemail--core/anglemail--core--1.1/angles@aminvestments.com--2002/patch-log/patch-2
     {arch}/anglemail/anglemail--core/anglemail--core--1.1/angles@aminvestments.com--2002/patch-log/patch-3
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-18
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-19
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-20
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-21
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-22
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/base-0
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-1
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-10
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-11
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-12
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-2
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-3
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-4
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-5
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-6
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-7
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-8
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log/patch-9

    removed files:
     brother1.html brother2.html data1.html frameset.html

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     addressbook-js.changelog.txt inc/class.bocompose.inc.php
     inc/class.boindex.inc.php inc/class.bojsaddressbook.inc.php
     inc/class.bopreferences.inc.php inc/class.html_widgets.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_display.inc.php
     inc/class.mail_msg_wrappers.inc.php inc/class.spell.inc.php
     inc/class.ui_mail_debug.inc.php inc/class.uicompose.inc.php
     inc/class.uiindex.inc.php inc/class.uijsaddressbook.inc.php
     inc/class.uipreferences.inc.php inc/hook_home.inc.php
     inc/selectboxes.js templates/default/addressbook-js-bits.tpl
     templates/default/addressbook-js-frameset.tpl
     templates/default/addressbook-js.tpl
     templates/default/addressbook-real-plain.tpl-UNUSED
     templates/default/addressbook.tpl
     templates/default/addressbook.tpl-BAD
     templates/default/addressbook.tpl-ORIG
     templates/default/compose.tpl
     templates/default/index_main_b0_l2.tpl

    new directories:
     {arch}/anglemail/anglemail--ryan
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002
     {arch}/anglemail/anglemail--ryan/anglemail--ryan--1.1/angles@aminvestments.com--2002/patch-log

    new patches:
     angles@aminvestments.com--2002/anglemail--core--1.1--patch-1
     angles@aminvestments.com--2002/anglemail--core--1.1--patch-2
     angles@aminvestments.com--2002/anglemail--core--1.1--patch-3
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-18
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-19
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-20
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-21
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-22
     angles@aminvestments.com--2002/anglemail--ryan--1.1--base-0
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-1
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-10
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-11
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-12
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-2
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-3
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-4
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-5
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-6
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-7
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-8
     angles@aminvestments.com--2002/anglemail--ryan--1.1--patch-9


2002-10-08 GMT	Angles Puglisi <angles@aminvestments.com>	patch-53

    Summary:
      star merge in changes from lex banch on 021008
    Revision:
      anglemail--codehere--1.1--patch-53

    star merge in changes from lex banch on 021008
    >larch star-merge anglemail--codehere--1.1 anglemail--lex--1.1 ./anglemail-codehere
    
    Lex has made major changes to lex addressbook and fixes extreme caching bugs.
    
    This is the first use if star-merge for what I used to use update merge for.
    
    This was produced by arch command log-for-merge:
    
    Patches applied:
    
      * angles@aminvestments.com--2002/anglemail--beta1final--1.0--base-0
         import AngleMail beta1 final into new ARCH setup
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-17
         commit "pre4-12lex-edge3" to lex
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-16
         commit "pre4-12lex-edge", adressbook now bo and ui, small cache change
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-15
         restore lex patchlogs 0 to 5 from backup location
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-14
         commit anglemail-1.1-pre4-12lex to lex branch 021003
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-13
         star merge makes lex same as codehere
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-12
         this is a test commit of nothing changed maybe fixes mrege rej files
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-5
         merge lex chnanges that should unify the branch
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-4
         update merge anglemail-codehere latest changes into anglemail-lex branch
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-3
         merge in superglobals GPC fix from branch "codehere" into "lex"
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-2
         OOPS, that update style copy missed these lex files
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-1
         commit lex code 020913 "adressbook beta2"
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-10
         merge from lex "pre4-10lex.tar.gz"
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-11
         merge from lex "pre4-011lex-1.tar.bz2"
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-12
         this is a test commit of nothing changed maybe fixes mrege rej files
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-13
         star merge makes lex same as codehere
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-14
         commit anglemail-1.1-pre4-12lex to lex branch 021003
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-15
         restore lex patchlogs 0 to 5 from backup location
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-16
         commit "pre4-12lex-edge", adressbook now bo and ui, small cache change
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-17
         commit "pre4-12lex-edge3" to lex
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--base-0
         make continuation branch for anglemail-lex
    

    new files:
     brother1.html brother2.html data1.html frameset.html
     inc/class.bojsaddressbook.inc.php
     inc/class.uijsaddressbook.inc.php
     templates/default/addressbook-js-frameset.tpl
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/base-0
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-1
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-12
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-13
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-14
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-15
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-16
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-17
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-2
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-3
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-4
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-5

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1 addressbook-js.php
     inc/class.boaction.inc.php inc/class.bocompose.inc.php
     inc/class.mail_msg_base.inc.php inc/selectboxes.js
     templates/default/addressbook-js-bits.tpl
     templates/default/addressbook-js.tpl

    new patches:
     angles@aminvestments.com--2002/anglemail--lex--1.1--base-0
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-1
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-12
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-13
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-14
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-15
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-16
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-17
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-2
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-3
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-4
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-5


2002-10-06 GMT	Angles Puglisi <angles@aminvestments.com>	patch-52

    Summary:
      standardize and lang "warn" strings, some updates to license blocks
    Revision:
      anglemail--codehere--1.1--patch-52

    Standardize and lang "warn" strings. File bomessage identifies certain "bad things" 
    that the user could be warned about. These "warn_" strings have been standardized 
    and langed so that the lang files can have appropriate and language specific 
    strings to show the user.
    
    Some updates to license blocks. I think the API type code should be LGPL. 
    In the early days of my (Angles) maintaining the files at phpGroupWare, few of 
    the email files were considered "API", thus they had GPL (not LGPL) license 
    blocks. As these files became 3 tier and generally API-ized, the license block 
    at the top of the file was not changed to reflect the LGPL nature of the API files. 
    I'm a coder not a lawyer, I forgot to change these blocks.
    
    There are many files in AngleMail that appear to need the license block updated 
    with the LGPL language. This commit has some initial attempts at this, 
    mostly using the phpGroupWare API LGPL license blocks language as a guideline.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     inc/class.bocompose.inc.php inc/class.boindex.inc.php
     inc/class.bomessage.inc.php inc/class.mail_dcom_base.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_display.inc.php
     inc/class.ui_mail_debug.inc.php inc/class.uimessage.inc.php


2002-10-02 GMT	Angles Puglisi <angles@aminvestments.com>	patch-51

    Summary:
      add one moz image and change some file perms
    Revision:
      anglemail--codehere--1.1--patch-51

    Added missing image "moz-address-conduit-24.gif" which is 
    used on the compose page as the addressbook image.
    
    Change some file perms in the images dir, 0644 for all.
    

    new files:
     templates/default/images/moz-address-conduit-24.gif
     templates/idsociety/images/moz-address-conduit-24.gif

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     templates/default/images/evo-add-attachment-16.gif
     templates/default/images/evo-add-attachment-24.gif
     templates/default/images/evo-address-conduit-24.gif
     templates/default/images/evo-send-16.gif
     templates/default/images/evo-spellcheck-16.gif
     templates/default/images/evo-spellcheck-24.gif
     templates/default/images/evo-trash-16.gif
     templates/default/images/evo-trash-24.gif
     templates/default/images/moz-add-attachment-16.gif
     templates/default/images/moz-add-attachment-24.gif
     templates/default/images/moz-spellcheck-16.gif
     templates/default/images/moz-spellcheck-24.gif
     templates/default/images/moz-trash-16.gif
     templates/default/images/moz-trash-24.gif
     templates/idsociety/images/evo-add-attachment-16.gif
     templates/idsociety/images/evo-add-attachment-24.gif
     templates/idsociety/images/evo-address-conduit-24.gif
     templates/idsociety/images/evo-send-16.gif
     templates/idsociety/images/evo-spellcheck-16.gif
     templates/idsociety/images/evo-spellcheck-24.gif
     templates/idsociety/images/evo-trash-16.gif
     templates/idsociety/images/evo-trash-24.gif
     templates/idsociety/images/moz-add-attachment-16.gif
     templates/idsociety/images/moz-add-attachment-24.gif
     templates/idsociety/images/moz-spellcheck-16.gif
     templates/idsociety/images/moz-spellcheck-24.gif
     templates/idsociety/images/moz-trash-16.gif
     templates/idsociety/images/moz-trash-24.gif


2002-10-02 GMT	Angles Puglisi <angles@aminvestments.com>	patch-50

    Summary:
      merge from Ryan Bonham "Pre4-012-1rcb", folder page changes
    Revision:
      anglemail--codehere--1.1--patch-50

    Ryan notes:
    Merged "view short or view long" folder changes back into Angles Pre4-12 release.
    
    (Angles) This third commit completes Ryan's first huge contribution. He made nice layout 
    changes to several pages, then the massive image adding merge, Ryan added 
    some 16 new images over two commits, completely "image-izing" the compose page, 
    and adding images to other pages as well, also replacing straight button code 
    with JS where needed. This was no small task, to say the least. Thanks Ryan.
    
    I think these are all of the images, I hope I did not miss any:
    
    > evo-add-attachment-16.gif
    > evo-add-attachment-24.gif
    > evo-address-conduit-24.gif
    > evo-send-16.gif
    > evo-spellcheck-16.gif
    > evo-spellcheck-24.gif
    > evo-trash-16.gif
    > evo-trash-24.gif
    > moz-add-attachment-16.gif
    > moz-add-attachment-24.gif
    > moz-send-16.gif
    > moz-send-24.gif
    > moz-spellcheck-16.gif
    > moz-spellcheck-24.gif
    > moz-trash-16.gif
    > moz-trash-24.gif
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     inc/class.bofolder.inc.php inc/class.uifolder.inc.php
     templates/default/folder.tpl


2002-10-02 GMT	Angles Puglisi <angles@aminvestments.com>	patch-49

    Summary:
      more OOP in boattach_file for better future flexibility
    Revision:
      anglemail--codehere--1.1--patch-49

    more OOP in boattach_file for better future flexibility. Class now has 
    vars file_data and control_data which are arrays that get filled with 
    the needed GPC data but could be filled from anywhere.
    
    Common code blocks are being made into their own functions so that 
    thay can later be called externally like API procedures and also 
    modularly replaced to, for example, change the location that the 
    files get uploaded to.
    
    Slight beginning of code to make the UI template method selectable 
    or to simple hold data for return to an external caller.
    

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     inc/class.boattach_file.inc.php
     inc/class.uiattach_file.inc.php


2002-10-01 GMT	Angles Puglisi <angles@aminvestments.com>	patch-48

    Summary:
      attach_file now bo and ui class, fixed delete not working
    Revision:
      anglemail--codehere--1.1--patch-48

    Aattach_file now bo and ui class. This is part of API-izing the 
    uploading and file handling code.
    
    Also, the GPC var "delete" was not being collected in "get_gpc_vars" 
    so the button to delete an attached file was b0rked. Fixes now. 
    
    Also, the delete loop now checks the the file actually exists. The 
    POSTed delete array may have the same file name listed 2 times, 
    so this check is really just to save admin's log files from 
    the error message this would produce. Fixes now.
    

    new files:
     inc/class.uiattach_file.inc.php

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     inc/class.boattach_file.inc.php inc/class.bocompose.inc.php


2002-09-27 GMT	Angles Puglisi <angles@aminvestments.com>	patch-47

    Summary:
      merge from Ryan's "anglemail-1.1-pre4-011rcb-5.tar.gz"
    Revision:
      anglemail--codehere--1.1--patch-47

    SELECTIVE merge from Ryan's "anglemail-1.1-pre4-011rcb-5.tar.gz".
    
    Everything except files bofolder, uifolder, and folder.tpl because 
    whitespace differences made actual code changes too hard to find in 
    the "folder" code. All other changes, including MANY! new images, 
    were merged.
    
    Ryan Bonham <ryan@ryanbonham.com> comments:
    
    I just completed making all the missing images for the moz theme.. Lex and I are
    both using this new tarball for development to simplify patching both our changes in
    the end...
    

    new files:
     templates/default/images/evo-trash-16.gif
     templates/default/images/evo-trash-24.gif
     templates/default/images/moz-add-attachment-16.gif
     templates/default/images/moz-add-attachment-24.gif
     templates/default/images/moz-send-16.gif
     templates/default/images/moz-send-24.gif
     templates/default/images/moz-spellcheck-16.gif
     templates/default/images/moz-spellcheck-24.gif
     templates/default/images/moz-trash-16.gif
     templates/default/images/moz-trash-24.gif
     templates/idsociety/images/evo-trash-16.gif
     templates/idsociety/images/evo-trash-24.gif
     templates/idsociety/images/moz-add-attachment-16.gif
     templates/idsociety/images/moz-add-attachment-24.gif
     templates/idsociety/images/moz-send-16.gif
     templates/idsociety/images/moz-send-24.gif
     templates/idsociety/images/moz-spellcheck-16.gif
     templates/idsociety/images/moz-spellcheck-24.gif
     templates/idsociety/images/moz-trash-16.gif
     templates/idsociety/images/moz-trash-24.gif

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     inc/class.bocompose.inc.php inc/class.boindex.inc.php
     inc/class.html_widgets.inc.php inc/class.uifolder.inc.php
     inc/class.uiindex.inc.php templates/default/compose.tpl
     templates/default/index_main_b0_l1.tpl
     templates/default/index_main_b0_l2.tpl


2002-09-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-46

    Summary:
      Ryan Bonham contributed images and changes for additional images
    Revision:
      anglemail--codehere--1.1--patch-46

    Ryan Bonham comments on these changes:
    
    I just finished patching the compose files, so that we no longer have any plain form
    buttons. They have been replaced my images and text, like in the widget_toolbar. I
    created/resized images for the evolution theme, i have not got Mozilla theme done
    yet,  i will try and do them tomorrow. I also cleaded up the widget_toolbar some,
    this is the same patch i sent angles and lex earlier. I also did a little
    reformating to the Attach signature and notify on delivery checkboxes to line them
    up with everything else some. I hope everyone likes the changes, let me know. I plan
    on replacing more of the form buttons now that i have figured the template system
    out some.
    

    new files:
     templates/default/images/evo-add-attachment-16.gif
     templates/default/images/evo-add-attachment-24.gif
     templates/default/images/evo-address-conduit-24.gif
     templates/default/images/evo-send-16.gif
     templates/default/images/evo-spellcheck-16.gif
     templates/default/images/evo-spellcheck-24.gif
     templates/idsociety/images/evo-add-attachment-16.gif
     templates/idsociety/images/evo-add-attachment-24.gif
     templates/idsociety/images/evo-address-conduit-24.gif
     templates/idsociety/images/evo-send-16.gif
     templates/idsociety/images/evo-spellcheck-16.gif
     templates/idsociety/images/evo-spellcheck-24.gif

    modified files:
     ChangeLog.codehere--1.1 ChangeLog.lex--1.1
     inc/class.bocompose.inc.php inc/class.uicompose.inc.php
     templates/default/compose.tpl
     templates/default/widget_toolbar.tpl


2002-09-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-45

    Summary:
      update merge INTO codehere branch FROM lex branch
    Revision:
      anglemail--codehere--1.1--patch-45

    This is the fist update merge FROM lex (a child branch) 
    into codehere branch, the parent branch. Originally got 
    a "no patch log" error but used "larch add-log anglemail--lex--1.1" 
    and then manually copied "patch-6" from lex into the empty 
    lex patchlog dir IN codehere that was made with the "add-log" 
    command.
    
    That "patch-6" was a "make-sync-tree" commit in the lex branch 
    so that was the last time the branches were identical, hence a 
    good patch level to inform codehere about.
    
    The lex patch are pretty substantial, covering addressbook, 
    inline forwarding, and caching, and more.
    
    The following paragraph was generated by arch command log-for-merge.
    
    Patches applied:
    
      * angles@aminvestments.com--2002/anglemail--beta1final--1.0--base-0
         import AngleMail beta1 final into new ARCH setup
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-11
         merge from lex "pre4-011lex-1.tar.bz2"
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-10
         merge from lex "pre4-10lex.tar.gz"
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-9
         merge from lex "pre4-09lex.tar.bz2"
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-8
         oops, put file perms back to 0644 for two files
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-7
         three changes from lex, 020922
    
      * angles@aminvestments.com--2002/anglemail--lex--1.1--patch-6
         make-sync-tree so lex branch is identical to codehere branch now
    

    new files:
     ChangeLog.lex--1.1 addressbook-js.changelog.txt
     templates/default/addressbook-js-smaller.tpl
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-10
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-11
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-6
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-7
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-8
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log/patch-9

    removed files:
     addressbook-chnagelog.txt

    modified files:
     ChangeLog.codehere--1.1 addressbook-js.php
     inc/class.boaction.inc.php inc/class.bocompose.inc.php
     inc/class.bopreferences.inc.php
     inc/class.mail_msg_base.inc.php inc/class.uicompose.inc.php
     inc/selectboxes.js templates/default/addressbook-js-bits.tpl
     templates/default/addressbook-js.tpl
     templates/default/compose.tpl

    new directories:
     {arch}/anglemail/anglemail--lex
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002
     {arch}/anglemail/anglemail--lex/anglemail--lex--1.1/angles@aminvestments.com--2002/patch-log

    new patches:
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-10
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-11
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-6
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-7
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-8
     angles@aminvestments.com--2002/anglemail--lex--1.1--patch-9


2002-09-25 GMT	Angles Puglisi <angles@aminvestments.com>	patch-44

    Summary:
      no echo error on RH login recovery, and commit patch 530
    Revision:
      anglemail--codehere--1.1--patch-44

    No echo error on RH login recovery. In function "loginerr_tryagain_buggy_cert" 
    its local var $show_recover_msg is now default false, so no anglemail generated 
    error message will be echo'd out. NOTE the actual PHP error string is a 
    seperate issue, and may still be shown if your php ini file settings 
    regarding error reporting is set to show such errors.
    
    Also commit patch 530 from Savannah tracker, makes some "dcom" class 
    (that is the data communications classes) error messages more user 
    friendly, including a href to home.php.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_dcom_base_sock.inc.php
     inc/class.mail_dcom_imap_sock.inc.php
     inc/class.mail_dcom_pop3_sock.inc.php
     inc/class.mail_msg_base.inc.php


2002-09-25 GMT	Angles Puglisi <angles@aminvestments.com>	patch-43

    Summary:
      replay merge from brubaker to codehere also gives brubaker log to codehere tree
    Revision:
      anglemail--codehere--1.1--patch-43

    Replay merge from brubaker to codehere also gives brubaker log to codehere tree.
    
    The actual code change is a small toolbar cleanup patch by Ryan Bonham. I put that 
    in the new brubaker branch so I could then do this replay merge. Right now, the best 
    (and only) way I know of to give codehere the log awareness of the brubaker tree is to 
    do a replay merge back into the codehere tree. So I chose a small patch to do this.
    
    Such 2 way awareness allows for more esoteric merging in the future.
    Note that part of the replay was the addition of the brubaker auto 
    changelog to its tree, which was not necesary to actually replay 
    into codehere, so I deleted that file before the commit.
    
    What follows is from arch command log-for-merge:
    
    Patches applied:
    
      * angles@aminvestments.com--2002/anglemail--beta1final--1.0--base-0
         import AngleMail beta1 final into new ARCH setup
    
      * angles@aminvestments.com--2002/anglemail--brubaker--1.1--patch-1
         small toolbar cleanup patch by Ryan Bonham
    

    new files:
     {arch}/anglemail/anglemail--brubaker/anglemail--brubaker--1.1/angles@aminvestments.com--2002/patch-log/patch-1

    modified files:
     ChangeLog.codehere--1.1 templates/default/widget_toolbar.tpl

    new directories:
     {arch}/anglemail/anglemail--brubaker
     {arch}/anglemail/anglemail--brubaker/anglemail--brubaker--1.1
     {arch}/anglemail/anglemail--brubaker/anglemail--brubaker--1.1/angles@aminvestments.com--2002
     {arch}/anglemail/anglemail--brubaker/anglemail--brubaker--1.1/angles@aminvestments.com--2002/patch-log

    new patches:
     angles@aminvestments.com--2002/anglemail--brubaker--1.1--patch-1


2002-09-20 GMT	Angles Puglisi <angles@aminvestments.com>	patch-42

    Summary:
      merge in addressbook code by lex, original one is optional, manual merge.
    Revision:
      anglemail--codehere--1.1--patch-42

    Merge in addressbook code by lex, original one is optional, manual merge. File 
    addressbook.tpl was reverted to version 1.1-pre04-02 code, so original addressbook 
    looks as it did before, while the new addressbook is hard coded default for now, 
    this can be made optional.
    
    Much thanks to Alex for this work, this is an enterprise type addressbook with 
    even more possibilities for the future.
    

    new files:
     addressbook-chnagelog.txt addressbook-js.php
     inc/selectboxes.js templates/default/addressbook-js-bits.tpl
     templates/default/addressbook-js.tpl
     templates/default/addressbook-real-plain.tpl-UNUSED

    modified files:
     ChangeLog.codehere--1.1 inc/class.bocompose.inc.php


2002-09-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-41

    Summary:
      fix object call redirects, attach_file is now class.boattach_files.attach
    Revision:
      anglemail--codehere--1.1--patch-41

    Fix object call redirects, but also added ability to use old style redirects 
    if necessary. In file class.boaction.inc.php, after a move or delete, the 
    user must be taken to the next page. The old method was "location" redirects, 
    which requires an entire new script run to show the next page. The newer method 
    in testing uses thhe "redirect" string to make a new "args enviornment" then 
    creates the ui object of the next page and displays it directly via OOP call.
    
    However, there was an error in the code which collects the menuaction of 
    the new redirect string. The expected "key", which is in fact the first part 
    of the string produced by phpgw api "link", was hard coded for a single test 
    box's setup option. In other words it would not pick up the menuaction from a 
    box with another value for it's "path to your server". This is correctred
    
    Additionally, it is entirely not recommended, but in file class.boaction, setting 
    the var "old_style_redirect" to true will actually use the older "loaction" redirect 
    method, use only if the newer method does not work.
    
    
    File email/attach_file.php is now menuaction class.boattach_files.attach, the 
    original file has been depreciated. Note the "bo" file has both UI and BO code, 
    but they are clearly seperated in that file, thus no superflous UI file 
    was needed.
    

    modified files:
     ChangeLog.codehere--1.1 attach_file.php
     inc/class.boaction.inc.php inc/class.boattach_file.inc.php
     inc/class.bocompose.inc.php inc/class.uicompose.inc.php
     index.php


2002-09-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-40

    Summary:
      fix the fix to the FILES data in attach_file.php
    Revision:
      anglemail--codehere--1.1--patch-40

    Fix the fix to the FILES data in attach_file.php, thanks 
    to Dave Hall for the code snippet.
    

    modified files:
     ChangeLog.codehere--1.1 attach_file.php


2002-09-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-39

    Summary:
      fix FILES upload vars and 0k file size, and properly redirect and kill script after sending mail
    Revision:
      anglemail--codehere--1.1--patch-39

    Fix FILES upload vars, in changing to the php > 4.2 superglobal $_FILES, 
    the php versions 4.1+ were supposed to have $HTTP_POST_FILES but I could not 
    get it to work. Fix was php versions >= 4.1 use the superglobal, and php 
    versions < 4.1 use the really old style $uploadedfile_size (example) style 
    of variables. At least it works.
    
    Also, in the "attach_files" form, a file size of < 1024 was likely to be displayed 
    as "0k" to the user. To reduce user confusion about their uploaded file being 
    size "0k", any size less then 1024 will report as "1k" to the user. This only 
    changes what size is shown to the user after the file is uploaded, it is a 
    UI change, other code dealing with the actual upload and the possibility of 
    no file specified or an actual 0 size file, is seperate code and was unchanged.
    
    Properly redirect and kill script after sending mail. File class.bosend.inc.php 
    will redirect the user back to previous screen after mail send. The actual redirect 
    was now uses the phpGW api "redirect" function, AND the script properly terminates 
    itself after the redirect. This eliminates a PHP warning message about "call to 
    undefined function in footer.inc.php" which used to show up at that point.
    

    modified files:
     ChangeLog.codehere--1.1 attach_file.php
     inc/class.bosend.inc.php inc/class.mail_msg_base.inc.php


2002-09-17 GMT	Angles Puglisi <angles@aminvestments.com>	patch-38

    Summary:
      base64 encode 57 bytes at a time, and clear lines after sending
    Revision:
      anglemail--codehere--1.1--patch-38

    PHP base64_encode is wasteful with memory, so that is now handled as such: 
    base64 encoded data should be split into lines of 76 chars for the outgoing message (not including the CRLF) 
    reading 3 bytes from the file makes 4 bytes of encoded data 
    76 encoded chars = (19 x 4 byte groups) per line 
    data must be fed in [bytes div 3] chunks (i.e. 30 bytes is divisible by 3 so is good) to avoid string padding 
    reading 19 x 3 bytes (57 chars) from source file produces the 76 char encoded single line of data 
    57 is, of course, divisible by 3, so the resulting encoded line will not be padded with "=" chars (good) 
    
    So the uploaded file is read and encoded 57 bytes at a time. 
    This probably needs to be chunked to a larger size, but at 
    least this saves memory over base64 encoding the entire file at one time.
    
    Also for memory conservation, in class.mail_send, clear lines 
    from the sending array after sending them via msg2socket, 
    and putting the line in the "assembled_copy" variable. This eliminates
    any duplication between said array and "assenbled_copy", which is a glob.
    
    Also added some minor documentation, also removed obsoleted php3 stuff 
    from attach_file.php, and added some debug stuff to some files.
    

    modified files:
     ChangeLog.codehere--1.1 attach_file.php
     inc/class.bosend.inc.php inc/class.mail_dcom_base_sock.inc.php
     inc/class.mail_dcom_pop3_sock.inc.php
     inc/class.mail_send.inc.php


2002-09-14 GMT	Angles Puglisi <angles@aminvestments.com>	patch-37

    Summary:
      fix for php v4.2 and greater Superglobals issue
    Revision:
      anglemail--codehere--1.1--patch-37

    Fix for php v4.2 and greater Superglobals issue. Mail msg 
    base checks php version then makes a class var reference 
    the correct GPC item for php versions less then 4.2 versus 
    php versions equal to or greater than 4.2.
    

    modified files:
     ChangeLog.codehere--1.1 attach_file.php
     inc/class.bofilters.inc.php inc/class.bopreferences.inc.php
     inc/class.bosend.inc.php inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php inc/class.spell.inc.php
     inc/class.svc_nextmatches.inc.php
     inc/class.ui_mail_debug.inc.php inc/class.uimessage.inc.php
     inc/class.uipreferences.inc.php


2002-09-14 GMT	Angles Puglisi <angles@aminvestments.com>	patch-36

    Summary:
      merge in lex changes for non-aadybook files
    Revision:
      anglemail--codehere--1.1--patch-36

    merge in lex changes for non-aadybook files. Lex has 
    his own branch with the beta addressbook code, but this 
    merge is for other files, fixes for the attach file 
    javascript and fixes for the redirect after delete 
    code in file boaction.
    
    Note that since this was a selective merge. I "hand" 
    merged these changes using XEMACS ediff for directories 
    and files.
    

    modified files:
     ChangeLog.codehere--1.1 attach_file.php
     inc/class.boaction.inc.php inc/class.bocompose.inc.php
     inc/class.ui_mail_debug.inc.php
     templates/default/attach_file_blocks.tpl
     templates/default/compose.tpl


2002-08-29 GMT	Angles Puglisi <angles@aminvestments.com>	patch-35

    Summary:
      prep_folder_in checks for UWash foldername of "bare slash"
    Revision:
      anglemail--codehere--1.1--patch-35

    Function prep_folder_in checks for UWash foldername of "bare slash". 
    Such a folder name is not valid and could possible result in undesirable 
    information being shown to the client browser. Note that UWash 
    folder names were previously checked for the "dot slash" char 
    sequence. This new check is in addition to that.
    
    Also note that UWash user-supplied namespaces are already checked 
    for similar unusual and erronious chars. User has the option to supply 
    a UWash namespace in the settings for an email account, but the help 
    notes clearly state how and what kind of name spaces are valid, and 
    if it is even necessary to specify one at all.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_base.inc.php


2002-08-29 GMT	Angles Puglisi <angles@aminvestments.com>	patch-34

    Summary:
      better RH login "recovering" message, and always try that recovery
    Revision:
      anglemail--codehere--1.1--patch-34

    These changes are to the handling of the RH 7.3+ PHP quirk where the 
    RedHat provided PHP IMAP module (as compiled by RedHat) will attempt 
    a TLS encoded mail session with the mail server if that server advertises 
    its STARTTLS capability in its hello message. What is unusual is that 
    the email code using the IMAP module did not specifically request STARTTLS, 
    it was done anyway.
    
    AngleMail already has a workaround that recovers from 
    this situation, but the details of the "recovering" message and when it 
    is attempted are the subject of this commit.
    
    A message was echo'd out on this "recovery" attempt but it was bold and 
    was not understood by the average user. Now the message text is smaller 
    and more "user friendly" so the user should now ignore it.
    
    Also, showing that "recovering..." message can be turned off by 
    setting $show_recover_msg = False in file class.mail_msg_base.inc.php 
    around line 1380. Note that there still may be a PHP generated error 
    message about the initial login failure if you have php.ini set to 
    output errors to the browser.
    
    Additionally, now AngleMail always tries that recovery code before 
    giving up. Previously that recovery was only tried if the mail server 
    returned an error about a "certificate" failure. However, RH beta 
    7.3.94 testing showed that the IMAP module simple reset the connection 
    without allowing the mail server to return an error. Therefor, the 
    said recovery code is always attempted on an initial login error.
    
    This "always attempt" can be toggled by setting variable $always_try_recover 
    around line 1337 in file class.mail_msg_base.inc.php.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_base.inc.php


2002-08-29 GMT	Angles Puglisi <angles@aminvestments.com>	patch-33

    Summary:
      update email lang files from Savannah CVS sources
    Revision:
      anglemail--codehere--1.1--patch-33

    Update email lang files from Savannah CVS sources. Files are 
    located in email/setup and are from phpGW 0.9.14 branch.
    

    modified files:
     ChangeLog.codehere--1.1 setup/phpgw_da.lang
     setup/phpgw_fr.lang setup/phpgw_pt.lang


2002-08-29 GMT	Angles Puglisi <angles@aminvestments.com>	patch-32

    Summary:
      fix decode rfc2047 encoded attachment name MIME headers with download
    Revision:
      anglemail--codehere--1.1--patch-32

    Fix decode rfc2047 encoded attachment name MIME headers when the user clicks 
    on the file for download. The file name is correctly displayed in the message 
    window because the headers are decode before displaying said attachment name. 
    
    However, when the user requests download of that attachment, the MIME part 
    headers which contain that attachments name may be rfc2047 encoded if 
    the message deemed it necessary to encode non US-ASCII chars, such as 
    with messages that have 7bit top level Content Transfer Encoding.
    
    In that case, that attachment name header muct be decoded before 
    sending said name to the coient browser via the headers that preceed 
    a file transfer of that type, i.e. the client browser aquires the file 
    name from AngleMail via the headers that typically indicate the 
    attachmeht name and the MIME type/subtype (although certain IE 
    browsers require very special hendling in this regard).
    
    Reference is RFC2047 "Message Header Extensions for Non-ASCII Text"
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php


2002-08-09 GMT	Angles Puglisi <angles@aminvestments.com>	patch-31

    Summary:
      feature additions from Alex Borges
    Revision:
      anglemail--codehere--1.1--patch-31

    Big merge with code contributed by Alex Borges. This is a 
    quote from his email dated Jul 2, 2002:
    
    Im sending you patches for some thingies we found usefull:
    1.- A dumb but effective way to show files you attach in a textbox (only
    layout 2)
    2.- Notify message delivery
    	1.- It attaches notify headers both for sendmail and qmail style
    	2.- It modifies templates to show a textbox to choose for this
    	3.- Shouldve made an email preference for this but i didunt...:P
    
    Excellent feature additions. Thanks Alex.
    

    new files:
     templates/default/addressbook.tpl-BAD
     templates/default/addressbook.tpl-ORIG

    modified files:
     ChangeLog.codehere--1.1 attach_file.php
     inc/class.bocompose.inc.php inc/class.bosend.inc.php
     inc/class.mail_msg_base.inc.php inc/class.uicompose.inc.php
     templates/default/addressbook.tpl
     templates/default/attach_file.tpl
     templates/default/compose.tpl


2002-08-09 GMT	Angles Puglisi <angles@aminvestments.com>	patch-30

    Summary:
      patch to hook_notifywindow, thanks Dave Hall
    Revision:
      anglemail--codehere--1.1--patch-30

    Patch to hook_notifywindow, thanks Dave Hall. Improvements 
    include an image, layout tweaking, and additional info about 
    the mailbox status.
    

    modified files:
     ChangeLog.codehere--1.1 inc/hook_notifywindow.inc.php


2002-08-09 GMT	Angles Puglisi <angles@aminvestments.com>	patch-29

    Summary:
      added debugging output to utf7 en/decode, verified working as per RFC
    Revision:
      anglemail--codehere--1.1--patch-29

    Added debugging output to utf7 en/decode, verified working as per RFC. 
    To test the "modified" UTF-7 foldername encoding which is used as per 
    RFC 2060 for the encoding of foldernames, which may reside on a filesytem 
    of the IMAP server, which filesystem can not accept but a limited set 
    of chars, but for which "un-modified" UTF-7 was not appropriate because 
    certain important chars such as the slash and the tilde were encoded. 
    
    Anyway, php's IMAP extension has functions to handle this, which AngleMail 
    uses. I tested with chars above the 128 sub-US-ASCII including chars 
    outside the 255 common chars. In all cases the folders were encoded 
    correctly, as verified by actually inspecting the UWash filesystem 
    on the server, which has the UTF-7 version of the foldernames I created. 
    
    Additionally, AngleMail shows the user the actual chars (if the browser 
    can handle it), so this is all transparent to the user.
    
    In summary, no new code, only added new debugging statements. UTF-7 folder 
    name handling in AngleMail is verified working, and has been for some time.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_dcom_base.inc.php


2002-08-09 GMT	Angles Puglisi <angles@aminvestments.com>	patch-28

    Summary:
      patch to attach_file to show file size, thanks Dave Hall
    Revision:
      anglemail--codehere--1.1--patch-28

    Patch to attach_file to show file size, thanks Dave Hall.
    

    modified files:
     ChangeLog.codehere--1.1 attach_file.php


2002-08-08 GMT	Angles Puglisi <angles@aminvestments.com>	patch-27

    Summary:
      validate UWash namespace does not contain "bad" stuff
    Revision:
      anglemail--codehere--1.1--patch-27

    Validate UWash namespace does not contain "bad" stuff, since 
    UWash IMAP is filesystem based, chars like the bare forward 
    slash, or dot dot slash, for example, should not be allowed 
    in the folder string. This function "uwash_string_ok" currently 
    only tests a user specified UWash namespace, but it could be used 
    to validate any UWash IMAP folder string.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_base.inc.php
     inc/class.svc_nextmatches.inc.php


2002-07-13 GMT	Angles Puglisi <angles@aminvestments.com>	patch-26

    Summary:
      fix mail svc_nextmatches to work with the redirect replacement
    Revision:
      anglemail--codehere--1.1--patch-26

    Fix mail svc_nextmatches to work with the redirect replacement. It was 
    using the incorrect menuaction from the initial URL which still 
    exists unchanged when we call the next page thru code instead of 
    via a redirect. Now uses the correct menuaction.

    modified files:
     ChangeLog.codehere--1.1 inc/class.boindex.inc.php
     inc/class.svc_nextmatches.inc.php


2002-07-12 GMT	Angles Puglisi <angles@aminvestments.com>	patch-25

    Summary:
      made generalized make new env functions in boaction for public use
    Revision:
      anglemail--codehere--1.1--patch-25

    Made generalized make new env functions in boaction for public use. 
    Based on the code of the last few commits, which clears the current 
    class args and sets new values for use in the next pageview, and 
    which is a fast replacement for the redirect. That functionality has been 
    split into three OOP like functions which any calling process can use 
    by creating the boaction object and using those functions.
    
    The calling process is still responsible for actually creating the "next_obj" 
    and calling the function that menuaction would have invoked. It seemed 
    unnecessary than rewritting the code that evals the menuaction str and all that. 
    That is best left to the api. The programmer can easily imitate the call without 
    needing all that.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php
     inc/class.ui_mail_debug.inc.php templates/default/debug.tpl


2002-07-11 GMT	Angles Puglisi <angles@aminvestments.com>	patch-24

    Summary:
      expande no-redirect, handle curley braces, increase big threshhold to 95
    Revision:
      anglemail--codehere--1.1--patch-24

    Expanding upon the concept of not doing a redirect if a direct object call 
    to the next pageview is possible, I added a more generic goto next pageview 
    code block much like the one from last commit but designed to be generic 
    enough to work for all deleted and moved conducted in boaction.delmov, 
    curently used after deleting a single message, or moving any number of messages. 
    Last commits code is still used for post delete multiple messages, but it 
    should soon migrate to the more generic code.
    
    Added encoding and decoding of curley braces to the items handles in 
    mail_msg_base functions htmlspecialchars_decode and htmlspecialchars_decode. 
    The template system did not like a message with curley brases, so make them 
    html entities before the template class can get confused.
    
    The threshhold for a "big move" in boaction.delmov is not 95 messages being 
    mnoved or deleted. It is still faster to use smart caching for large moves 
    compared to turning off extreme (smart) caching for them, at least up to 
    the 95 message threshhold.

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-07-10 GMT	Angles Puglisi <angles@aminvestments.com>	patch-23

    Summary:
      post-multi-delete redirect replaced with a direct object call
    Revision:
      anglemail--codehere--1.1--patch-23

    In file boaction, when the "delete multiple messages" code is run (usually 
    called from the uiindex page), previously the transaction was shutdown 
    and a redirect was issued to the clients browser. This resulted in 
    an additional script run for the user to actually get that new page.
    
    This was a waste of time, the code is already in a fully initialized 
    session, no need to end it just to start another on the browser 
    redirect page request.
    
    The alternative is to gather the information we would use previously 
    for the redirect. Then, unset all class args that we know are used 
    in the delete multiple messages code block, we do not want them 
    hanging around for the next page view. Note we leave the "internal 
    args" unmolested (ex. mailsvr_callstr) because they apply regardless 
    of the page view (I THINK).
    
    Then, we set all the args we want to be present in the next page 
    view, trying to exactly imitate what the class args enviornment 
    would be if a fresh page view via that redirect had been issued. 
    This way we have the same conditions (arg values) that would 
    prevail during a fresh redirect page request. 
    
    Then, still in file boaction, we use a class var "next_obj" 
    and create an "email.uiindex" object assigned to it. Then 
    we call the function next_object->index(), which initiates the 
    next page view just as if the redirect "menuaction" had called 
    that function.
    
    In this way we skip alot of overhead and get the same "next page" 
    functionality as the redirect.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-07-09 GMT	Angles Puglisi <angles@aminvestments.com>	patch-22

    Summary:
      add docs, fix comment in index tpl file
    Revision:
      anglemail--codehere--1.1--patch-22

    NO CODE CHANGES. Added docs to files msg_bootstrap and 
    boaction. Also put correct filenames in index page 
    comments at the top and botton of the 2 tpl files.

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php
     inc/class.msg_bootstrap.inc.php
     inc/class.ui_mail_debug.inc.php
     templates/default/index_main_b0_l1.tpl
     templates/default/index_main_b0_l2.tpl


2002-06-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-21

    Summary:
      added docs for move, delete, and expunge functions. DOCS ONLY.
    Revision:
      anglemail--codehere--1.1--patch-21

    added docs for move, delete, and expunge functions.
    DOCS ONLY.
    NO CODE CHANGES.

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_wrappers.inc.php
     inc/class.ui_mail_debug.inc.php


2002-06-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-20

    Summary:
      fix append to sent items folder
    Revision:
      anglemail--codehere--1.1--patch-20

    Fix append to sent items folder. File bosend was checking 
    for a mailsvr_stream before calling for an append. This is 
    stupid because append will take care of opening the stream 
    if necessary. Once that mailsvr_stream check in 
    file bosend was removed, append to sent folder again 
    worked as expected.

    modified files:
     ChangeLog.codehere--1.1 inc/class.bosend.inc.php


2002-06-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-19

    Summary:
      migrate to "industrial_interacct_mail_move", track what needs expunging, only expunge when done
    Revision:
      anglemail--codehere--1.1--patch-19

    Any message move or delete code that I could find has been migrated to use 
    function "industrial_interacct_mail_move", and the delete code, if a move to 
    trash occurs, uses the same. Files boaction and bofilter seem to be 
    totally migrated, and phpgw_delete, if it makes a move to trash, 
    also is migrated.
    
    Now "phpgw_delete" and "industrial_interacct_mail_move" 
    call a function which tracks what folders for what accounts will 
    need to be expunged, via a function called 
    "track_expungable_folders". Note this*tracking* is taken care of by the 
    mail_msg objects "phpgw_delete" and "industrial_interacct_mail_move" 
    functions, the calling process need not be concerned with 
    "track_expungable_folders".
    
    Then, when the calling function is done looping through the 
    moves or deletes, the CALLING FUNCTION is responsible to 
    make a single call to function "expunge_expungable_folders" 
    will expunge only what needs it, and only once.
    
    Previously there was an expunge following EVERY move or delete, 
    this was not necessary. Now the expunge happens only once, and 
    is tracked automatically, the calling process DOES have 
    to remember to call "expunge_expungable_folders" though, 
    and ONLY when done with ALL moves and or deletes.

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php
     inc/class.bofilters.inc.php inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-06-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-18

    Summary:
      bugfixs for extreme caching being on or off
    Revision:
      anglemail--codehere--1.1--patch-18

    Previously, if session_cache_extreme was FALSE, the code 
    was never running through the login sequence in "begin_request" 
    eventhough it should. Problem was msg_bootstrap was calling 
    "begin_request" with do_login value set to FALSE, which is 
    wrong, there is logic elsewhere in "begin_request" which 
    determines if an immediate login needs to occur.
    
    Once msg_bootstrap "do_login" was changed to true, 
    the login sequence in "begin_request" would run if 
    session_cache_extreme was FALSE, which is correct. 
    However, now when session_cache_extreme is TRUE, 
    the calling function is going to expect *something* 
    to be returned from begin_request, since it was called 
    with "do_login" as TRUE, even if extreme cache 
    determined no login was needed so the login 
    sequence in "begin_request" was skipped.
    
    So now we return whatever the value of the "do_login" 
    arg is in "begin_request" in cases where extreme 
    caching was able to bypass the immediate login, 
    so the calling function does not think an erronious 
    error occured.

    modified files:
     ChangeLog.codehere--1.1 inc/class.boindex.inc.php
     inc/class.html_widgets.inc.php inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php
     inc/class.msg_bootstrap.inc.php


2002-06-26 GMT	Angles Puglisi <angles@aminvestments.com>	patch-17

    Summary:
      wrap all new "extreme" caching in conditionals so it can be turned off
    Revision:
      anglemail--codehere--1.1--patch-17

    Wrap all new "extreme" caching in conditional, if .. then statements 
    checking for first, "session_cache_enabled",  which wraps the previousy 
    chached items, and then "session_cache_enabled", which wraps ALL 
    new "extreme" caching methods, this includes appsession caching of 
    "msg_structure", "phpgw_header", "folder_status_info", the timestamp 
    "freshness" check, the "events" which modify cached "folder_status_info" 
    and "phpgw_header" items to reflect changes in flags "unseen" or "recent", 
    and to decrease the "number_all" in cached "folder_status_info" and cached 
    "msgball_list" during the X minutes of assumed "freshness", and also 
    the "number_new" element of "folder_status_info", and which events 
    also pop off individual msgball items from the cached "msgball_list" as 
    messages are deleted or moved out of a folder. Additionally, "extreme" 
    mode will not blindly log into the mailserver unless it needs something. 
    
    Simply, if "session_cache_extreme" is False, none of that happens. 
    Instead, the code acts like it did before: always logging into the mailserver 
    during "begin_request", caching a small number of things, getting new 
    "folder_status_info" at the start of each script run, and 
    checking on each page view for the "freshness" of the "msgball_list", 
    there is no assumed "fresh" for X minutes, "folder_status_info" is not 
    cached in appsession, neither "msg_structure" nor "phpgw_header" 
    are cached, (i.e. there is NO caching whatsoever for "msg_structure" 
    and "phpgw_header"), and the "events" which are used to manually 
    adjust cached data in "extreme mode" do not do anything.
    
    So by wrapping all new caching code that is part of the "extreme" 
    caching in conditional statements checking for the "session_cache_extreme" 
    var to be TRUE or FALSE, then the "extreme" caching can be turned off.
    
    This may be desirable in these situations: an installation on a production 
    server wishes to try the new caching on a limited basis; an installation 
    needs to conserve memory (although the cached items are not that big); 
    or some future PHP change makes the caching unstable; then it can simply 
    be turned off. On the other hand, the "extreme" caching is actually 
    very simple in concept, but I call it extreme because it introduces 
    the concept of logging in to the mailserver ONLY when needed, 
    whereas before, the script almost always logged in on each script run.

    modified files:
     ChangeLog.codehere--1.1 inc/class.bofilters.inc.php
     inc/class.html_widgets.inc.php inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_display.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-06-20 GMT	Angles Puglisi <angles@aminvestments.com>	patch-16

    Summary:
      add function to clear all "extreme" cache items, and not be "extreme" for big moves
    Revision:
      anglemail--codehere--1.1--patch-16

    Add function to clear all "extreme" cache items, msg_structure, phpgw_header, msgball_list, 
    and folder_status_info (appsession version). Loops thru all "active" accounts and expires 
    those items. This is used for the following thing.
    
    "Extreme" caching manipulates a lot of locally cached items so we do not have to ask the 
    mail server for data we can reasonably figure out ourselves, BUT doing that douring bulk 
    move or delete operations is overkill and unnecessary. So there is now an event to act 
    as a "notice of impending big move or delete" which is called just before filtering 
    operations begin, and also if more than 15 messages are to be moved or deleted in boaction, 
    it is called then too. 
    
    This event calls the function to clear all "extreme" cached items for all active accounts, 
    then this event makes FALSE the "enable_session_extreme" flag, so for the rest of that 
    script run, "extreme" fancy stuff is not even attempted. Then, when the next oage view occurs, 
    "enable_session_extreme" goes back to its default value (TRUE) and "extreme" caching is resumed.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php
     inc/class.bofilters.inc.php inc/class.mail_msg_base.inc.php


2002-06-19 GMT	Angles Puglisi <angles@aminvestments.com>	patch-15

    Summary:
      fix moves, deleted, and expunging in extreme caching mode
    Revision:
      anglemail--codehere--1.1--patch-15

    Fix moves, deleted, and expunging in extreme caching mode. 
    The combination of the nasty "when is a folder name urlencoded" 
    issue, and the need to nail down expiring folder stats for the 
    target folder of a move, even a delete that is really a move to 
    the trash folder, took some time to work out.
    
    That involved automatically opening needed streams, manually 
    altering some cached data to keep it "fresh" without asking the 
    mailserver, expiring stats data for the target folder, so it 
    would indeed get its info from the mailserver when the user 
    switches to it.
    
    We will not guess stuff about appends to a target folder, the 
    issue of what UID msgnum a message will get when it is appended 
    there is too much effort and guessing for very little gain. So 
    we straight expire data regarding the target of an append.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php
     inc/class.boindex.inc.php inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-06-19 GMT	Angles Puglisi <angles@aminvestments.com>	patch-14

    Summary:
      first try at no logins unless absolutely necessary
    Revision:
      anglemail--codehere--1.1--patch-14

    first try at no logins unless absolutely necessary. 
    EXTREMELY rough at the moment, particularily the issue if 
    how "folder" is passed arounnd, urlencoded or not, and when should 
    it be urlencoded or not.
    
    Relies heavily on ensure_stream_and_folder, because if "extreme" 
    caching is in use, it will not log in during "begin_request" unless 
    we detect that we need something that we do not have in cache.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php
     inc/class.msg_bootstrap.inc.php


2002-06-19 GMT	Angles Puglisi <angles@aminvestments.com>	patch-13

    Summary:
      folder stats now cached and assumed valid for X time, events keep it current
    Revision:
      anglemail--codehere--1.1--patch-13

    Folder stats now cached and assumed valid for X time, GET right now I use 240 seconds. 
    During that time we do not ask the mail server for folder status info. Events are coded 
    for mail being read or moved out of the folder and the folder stats number_new and 
    number_all are adjusted accordingly and resaved to cache, with out asking the mailserver 
    for any stats info.
    
    NOTE that folder "size" is not cached nor manually updated, and if mail is moved, 
    the TARGET FOLDER, if it has cached folder stats, will have its folder stats expired. 
    In other words, currently we so not manually alter TARGET folder stats, but the stats 
    for the folder for which the mail is being moved out of DOES have its stats manually 
    updated and resaved to cache. If and when the user switches to the target folder, only 
    then will that folders atats be updated by querying the mailserver. 
    
    When folder stats are first saved to appsession cache, they get a timestamp which is used 
    to measure when the X minutes of assumed "validity" is over, at which point we do ask 
    the mailserver for fresh stats, which will ONLY THEN pick up any new mail info that may 
    have arrived during the "assumed valid" period when we do not ask the server for new stats. 
    
    Currently, we still log in even if it is not really needed, but this may change soon.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-06-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-12

    Summary:
      implement "extreme" cache management with option in not using it
    Revision:
      anglemail--codehere--1.1--patch-12

    Implement "extreme" cache management with option in not using it. This 
    "extreme mode" is the implementation of the concept that the caching 
    system can "update" itself based on known behavior, and therefor 
    keep the cache "valid" and "not stale" without having to re-request 
    data from the mailserver anytime a change is made.
    
    Example is msgball_list. When mail leaves a folder, in "extreme" mode 
    the cached msgball_list is directly altered, (a) popping off the msgball 
    that is leaving the folder, (b) reduce msgball_list valitity checking 
    item "number_all" be one, (c) expire from cache the "msg_structure" 
    and "phpgw_header" data for ONLY the message leaving the folder. 
    
    Then, when the next page view comes up, our cached data is in sync 
    with the mailserver, with respect to the changes that we made, (i.e. 
    not for new mail arriving, we are not clairvoyant), without having 
    to ask the mail server for anything.
    
    In "non-extreme" mode, if mail is leaving the folder, the msgball_list 
    is simply expired, removed from cache, and we have to get a new one
    from the server on the next pageview. Also, in "non-extreme" mode, 
    if a mail has flags for "Unseen" or "Recent", but the mail is being read, 
    the non-extreme handler expires the "phpgw_header" for this mail, while 
    the "extreme" handler adjusts the cached "phphw_header" to match this 
    seen mail state.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-06-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-11

    Summary:
      Skeleton code for recycling on msgball_list cache
    Revision:
      anglemail--codehere--1.1--patch-11

    Skeleton code for recycling on msgball_list cache. The code 
    for msgball_lists recycling is for then mail is moved out 
    of a folder, the cached msgball_list has just those gone 
    magballs poped out and the magball_list is resaved to cache, 
    instead of the whole list being expired.
    
    However, it still needs to alter the folder_status_info 
    to match the changed state, and a timestamp enforcing a 
    X minute "assume not-stale" is still needed.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-06-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-10

    Summary:
      First code for "events" triggers used to alter cached data.
    Revision:
      anglemail--codehere--1.1--patch-10

    First code for "events" triggers used to alter cached data. The first 
    event implemented is "event_msg_seen" which is called from "phpgw_body" 
    and "phpgw_fetchbody". This event code will directly alter cached 
    "phpgw_header" data to clear the Recent or Unseen flags if necessary, 
    then save that altered "phpgw_header" data back into cache.
    
    This eliminates the need to contact the mailserver again for "fresh" 
    phpgw_header data for occasions when we KNOW how to alter the cached 
    data ourselves, to mimic how the data looks on the mailserver without 
    actually having to get it from the mailserver.
    
    It is anticipated that other events, such as for messages being moved 
    out of, or deleted from, a folder, will also have cache altering 
    code that will futher eliminate the need to get fresh data from the 
    mail server when we can emulate the data change ourselves.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.bomessage.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-06-18 GMT	Angles Puglisi <angles@aminvestments.com>	patch-9

    Summary:
      added docs for caching 
    Revision:
      anglemail--codehere--1.1--patch-9

    Added docs for caching, no code changes of any substance.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_wrappers.inc.php


2002-06-16 GMT	Angles Puglisi <angles@aminvestments.com>	patch-8

    Summary:
      fix non-contiguous Received filter b0rk, decode rfc headers can handle multiline now
    Revision:
      anglemail--codehere--1.1--patch-8

    Fix non-contiguous Received filter b0rk. It is common in the Debian list 
    to have message Received headers be interrupted with an a header called 
    "X-Envelope-Sender". This caused the filter logic to think it reached the 
    last Received header when in fact there were more. This fix is a hack but 
    it works for now, it makes any "X-Envelope-Sender" header look like a
    Received header.
    
    Decode rfc headers can handle multiline now. That logic can be b0rked by 
    large strings with possibly multiple encoded items in that largs glob 
    data. Added a function called "decode_rfc_header_glob" which will 
    feed function "decode_rfc_header" a single line at a time.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.bofilters.inc.php
     inc/class.bomessage.inc.php inc/class.mail_filters.inc.php
     inc/class.mail_msg_base.inc.php inc/class.uifilters.inc.php


2002-06-16 GMT	Angles Puglisi <angles@aminvestments.com>	patch-7

    Summary:
      expire single "phpgw_header" element for unseen message we are going to view
    Revision:
      anglemail--codehere--1.1--patch-7

    Expire single "phpgw_header" element for unseen message we are going 
    to view. In file class.bomessage we get "phphw_header" data, just 
    doing that will cache that data if it was not cached before. However, 
    "phpgw_header" is the structure that contains the flags for the message. 
    Since we are about to display the message body to the user, if the 
    "phpgw_header" has flags indicating the message is UNSEEN or RECENT, 
    then that flag info will be STALE by the end of the page view.
    
    So now we expire the individual "phpgw_header" for that message, 
    which now has a special handler in function "expire_session_cache_item", 
    if param $extra_special_stuff is passed, it will be the "specific_key" 
    for that individual messages "phpgw_header" data, which will be 
    unset if it exists.
    
    Already the expiration function "expire_session_cache_item" will 
    ALSO expire the "folder_status_info" cached data, because it is 
    understood that is we are expiring cached data, usually it is 
    because messages have been moved or deleted, which makes STALE 
    some or all of the "folder_status_info" for number all, 
    number new, uidnext, and uidvalidity.
    
    In the case of an unread message becoming read, this makes STALE 
    the number of new messages in the folder, so in this case the 
    "folder_status_info" will be expired for that reason.
    
    NOTE it *could* be possible to to some simple math on 
    the "folder_status_info" cached data for number NEW, 
    and not expire it, but modify it to match what we think the 
    adjusted folder status should be. Because changing a flag will 
    not effect number all, uidnext, and uidvalidity. HOWEVER 
    we do NOT do this at this time, we bluntly expire the 
    "folder_status_info" data.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.bomessage.inc.php
     inc/class.mail_msg_wrappers.inc.php


2002-06-16 GMT	Angles Puglisi <angles@aminvestments.com>	patch-6

    Summary:
      Added phpgw_header data to appsession cache
    Revision:
      anglemail--codehere--1.1--patch-6

    Added phpgw_header data to appsession cache, using the same code 
    as used in caching the "msg_envelope" data, the data is is 
    a structure serialized for database storage. Interestingly, 
    the appsesssion seems to be able to take this data without 
    needing any special "database defanging".
    
    This "pgpgw_header" and "msg_envelope" data are stored in and 
    read from cache, but not expired until the user logs out, when 
    the entire appsession cache is ereased. Some event functions 
    may need to hook into message moving and deleting functions 
    to expire individual cached items in these stored "phpgw_header" 
    and "msg_envelope" data arrays.
    
    Only the data for the individual message data for the moved or
    deleted messages will need to be expired, the other data 
    elements would remain valid. This has yet to be handled.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.mail_msg_wrappers.inc.php


2002-06-15 GMT	Angles Puglisi <angles@aminvestments.com>	patch-5

    Summary:
      sleep 1 sec in end_request, phpgw_fetchstructure data now cached in appsession
    Revision:
      anglemail--codehere--1.1--patch-5

    Sleep 1 sec in end_request, tcpdump analysis showed that the mail server 
    did not have enough time to send the "OK logout succeeded" message back 
    to AngleMail unless a 1 sec delay is added in the end_request function 
    just before the actual close command is issued. If this actually makes 
    a difference I do not know, IMAP logs still show a sucessful logout 
    no matter what.
    
    phpgw_fetchstructure data now cached in appsession. Problem is that there 
    is still too much client - server data transfer going on, trying to track 
    it all down, particularly a FETCH command that asks for a series of 
    message structures all at once. I do not think AngleMail issues any 
    command with a series of message numbers, outside of the move and delete 
    functions.
    
    So this fetchstructure caching works but it did not reduce the server 
    chat by very much. Still, the code can be applied to other server 
    supplied data, but it may not do too much of php builtin IMAP 
    needs to issue commands I have little control over, in order 
    to get the data it thinks it needs.
    

    modified files:
     ChangeLog.codehere--1.1 inc/class.boaction.inc.php
     inc/class.bofolder.inc.php inc/class.bomessage.inc.php
     inc/class.mail_msg_base.inc.php
     inc/class.mail_msg_wrappers.inc.php inc/class.uifolder.inc.php
     inc/class.uiindex.inc.php inc/class.uimessage.inc.php


2002-06-13 GMT	Angles Puglisi <angles@aminvestments.com>	patch-4

    Summary:
      better detection of "bad" attachments, make compose box 78 chars wide
    Revision:
      anglemail--codehere--1.1--patch-4

    Better detection of "bad" attachments, used regex to make sure that strings like .exe 
    are actually the file extension and not just any string within the attachment name. 
    
    Make compose box 78 chars wide, it was 84 columns wide. By making it 78 column 
    wide, and keeping the wrap="hard" tag, we end up with 78 chars + CR + LF = 80 chars 
    per line which conforms with the old RFC822 line limit recomendation. Even though 
    RFC2822 and RFC 2045 to 2049 allow for a line length limit of 998 chars + CR + LF, 
    since the body was being hard wrapped anyway, we might as well use 80 chars, 
    instead of 86 chars as before.
    
    Did some experimentation with NO hard wraps, but this will require more work.

    modified files:
     ChangeLog.codehere--1.1 inc/class.bomessage.inc.php
     inc/class.html_widgets.inc.php inc/class.mail_msg_base.inc.php
     inc/class.ui_mail_debug.inc.php templates/default/compose.tpl


2002-06-11 GMT	Angles Puglisi <angles@aminvestments.com>	patch-3

    Summary:
      Addressbook fix by dave.hall@mbox.com.au, more work on IMAP sockets class
    Revision:
      anglemail--codehere--1.1--patch-3

    Addressbook fix by dave.hall@mbox.com.au, fixing drop down list filtering by categories. 
    Also, Dave Hall provided code to add company to the addressbook used by email. Thanks. 
    
    Continued work on IMAP sockets class, still very incomplete.

    modified files:
     ChangeLog.codehere--1.1 addressbook.php
     inc/class.mail_dcom.inc.php
     inc/class.mail_dcom_base_sock.inc.php
     inc/class.mail_dcom_imap_sock.inc.php
     inc/class.ui_mail_debug.inc.php
     templates/default/addressbook.tpl templates/default/debug.tpl
     templates/default/index_main_b0_l2.OLD.tpl


2002-06-07 GMT	Angles Puglisi <angles@aminvestments.com>	patch-2

    Summary:
      fix view as html as reference, give basic warnings for nefarious parts
    Revision:
      anglemail--codehere--1.1--patch-2

    Fix view as html as reference. One of two cases when the user gets a button 
    to view an html part, instead of seeing the part, is when the part has 
    CSS, script, or iframe tags. This button now submits directly to "get attach" 
    instead of first going through "view_html" which is only needed for 
    html RELATED, whick is the second of the two cases when the user gets 
    that button. So now the browser correctly gets the html part for 
    html references.
    
    Give basic warnings for nefarious parts. Added warning string in bomessage 
    for typically bad things, such as IFRAME tags, base64 encoded presentables, 
    attachments with typically bad extensions for win32, .bat, .exe and such. 
    
    The MAJOR change here is that the presence of IFRAME tags in the message 
    part will NOT show the part, instead the iframe tags were added to the list 
    of things about an HTML part that causes the user to get a "view as html" 
    button, AND a bold warning string will be displayed below the button 
    explaining why the user must click a button (not user friendly warning 
    messages at this time) to see the HTML part, instead of just seeing the part.

    modified files:
     ChangeLog.codehere--1.1 inc/class.bomessage.inc.php


2002-06-06 GMT	Angles Puglisi <angles@aminvestments.com>	patch-1

    Summary:
      first commit to codehere, add docs and alias decode headers to a better function
    Revision:
      anglemail--codehere--1.1--patch-1

    fFrst commit to branch anglemail--codehere--1.1, this is a development branch to 
    be merged into anglemail--core--1.1 at significant intervals.
    
    Code changes, very little, function decode_headers has become somewhat dated so 
    I aliased it to a more modern regex function decode_rfc_header. Unknown if 
    this actually improves anything, filters had been missing messages with 
    unusual header charset encodings, so testing will show if this change helps 
    solve that or not.
    
    Also, added more documentation to class.mail_msg_base. Now all functions 
    should at least show up in the inline docs.

    new files:
     ChangeLog.codehere--1.1

    modified files:
     inc/class.mail_msg_base.inc.php
     inc/class.ui_mail_debug.inc.php


2002-06-05 GMT	Angles Puglisi <angles@aminvestments.com>	base-0

    Summary:
      first tree FROM anglemail core 1.1 FOR coding new stuff, merge back when ready
    Revision:
      anglemail--codehere--1.1--base-0

    branched from angles@aminvestments.com--2002/anglemail--core--1.1--base-0
    
    This branch is a "working direcory" place for coding experimental stuff for anglemail 
    version 1.1, this branch was sourced from anglemail--core--1.1 and is called 
    anglemail--codehere--1.1, and when code here is ready, it should be star merged 
    back into anglemail-core.
    
    So far, anglemail--beta1final--1.0 -> continuation -> anglemail--core--1.1 
    and now -> continuation -> anglemail--codehere--1.1
    
    SO FAR ALL THESE BRANCHES ARE IDENTICAL. This is just setting the coding 
    structure for next phase of development, no changes have yet been made 
    to anglemail--core--1.1 and this branch anglemail--codehere--1.1 has no 
    changes yet as we are just now making it, and of course "beta1final" 
    is CLOSED, no more coding in that branch.

    new directories:
     {arch}/anglemail/anglemail--codehere
     {arch}/anglemail/anglemail--codehere/anglemail--codehere--1.1
     {arch}/anglemail/anglemail--codehere/anglemail--codehere--1.1/angles@aminvestments.com--2002
     {arch}/anglemail/anglemail--codehere/anglemail--codehere--1.1/angles@aminvestments.com--2002/patch-log


