diff options
| author | kolla <kolla@uninett.no> | 2005-08-02 15:11:20 +0000 |
|---|---|---|
| committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-08-02 15:11:20 +0000 |
| commit | 2c2c957d5b8a09b6bbe1046d802eabf1fc621f59 (patch) | |
| tree | 997f21b2ac599aca8ac34b0d66a33581d328efe5 | |
| parent | eea91968ada14180c77ade6d1a906fdb5ee73d90 (diff) | |
Pine - A tool for reading, sending and managing electronic messages.
With chappa-patches, transparent and more. LDAP- and SSL-support.
| -rw-r--r-- | packages/pine/.mtn2git_empty | 0 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/.mtn2git_empty | 0 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/imap-2000-time.patch | 56 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-4.30-ldap.patch | 11 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-4.31-segfix.patch | 17 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-4.40-lockfile-perm.patch | 22 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-4.56-passfile.patch | 12 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-4.61-largeterminal.patch | 14 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-4.61-subjectlength.patch | 59 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-4.62-spooldir-permissions.patch | 12 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-4.63-r2-chappa-all.patch | 21900 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/pine-ldap3.patch | 11 | ||||
| -rw-r--r-- | packages/pine/pine-4.63/transparency.patch | 14 | ||||
| -rw-r--r-- | packages/pine/pine_4.63.bb | 82 |
14 files changed, 22210 insertions, 0 deletions
diff --git a/packages/pine/.mtn2git_empty b/packages/pine/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/pine/.mtn2git_empty diff --git a/packages/pine/pine-4.63/.mtn2git_empty b/packages/pine/pine-4.63/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/pine/pine-4.63/.mtn2git_empty diff --git a/packages/pine/pine-4.63/imap-2000-time.patch b/packages/pine/pine-4.63/imap-2000-time.patch new file mode 100644 index 0000000000..751d1ff506 --- /dev/null +++ b/packages/pine/pine-4.63/imap-2000-time.patch @@ -0,0 +1,56 @@ +--- pine4.33/imap/src/osdep/unix/os_lnx.c.time Wed Feb 14 12:25:06 2001 ++++ pine4.33/imap/src/osdep/unix/os_lnx.c Wed Feb 14 12:25:16 2001 +@@ -23,6 +23,7 @@ + #include "osdep.h" + #include <stdio.h> + #include <sys/time.h> ++#include <time.h> + #include <sys/stat.h> + #include <sys/socket.h> + #include <netinet/in.h> +--- pine4.33/imap/src/osdep/unix/news.c.time Thu Jan 18 21:28:33 2001 ++++ pine4.33/imap/src/osdep/unix/news.c Wed Feb 14 12:24:34 2001 +@@ -21,7 +21,7 @@ + #include <stdio.h> + #include <ctype.h> + #include <errno.h> +-extern int errno; /* just in case */ ++#include <time.h> + #include "mail.h" + #include "osdep.h" + #include <sys/stat.h> +--- pine4.33/imap/src/osdep/unix/phile.c.time Thu Jan 18 21:31:20 2001 ++++ pine4.33/imap/src/osdep/unix/phile.c Wed Feb 14 12:24:34 2001 +@@ -21,8 +21,8 @@ + #include <stdio.h> + #include <ctype.h> + #include <errno.h> +-extern int errno; /* just in case */ + #include <signal.h> ++#include <time.h> + #include "mail.h" + #include "osdep.h" + #include <pwd.h> +--- pine4.33/imap/src/osdep/unix/mh.c.time Thu Jan 18 21:27:37 2001 ++++ pine4.33/imap/src/osdep/unix/mh.c Wed Feb 14 12:24:34 2001 +@@ -21,7 +21,8 @@ + #include <stdio.h> + #include <ctype.h> + #include <errno.h> +-extern int errno; /* just in case */ ++#include <time.h> ++ + #include "mail.h" + #include "osdep.h" + #include <pwd.h> +--- pine4.33/imap/src/osdep/unix/mx.c.time Thu Jan 18 21:28:09 2001 ++++ pine4.33/imap/src/osdep/unix/mx.c Wed Feb 14 12:24:34 2001 +@@ -21,7 +21,7 @@ + #include <stdio.h> + #include <ctype.h> + #include <errno.h> +-extern int errno; /* just in case */ ++#include <time.h> + #include "mail.h" + #include "osdep.h" + #include <pwd.h> diff --git a/packages/pine/pine-4.63/pine-4.30-ldap.patch b/packages/pine/pine-4.63/pine-4.30-ldap.patch new file mode 100644 index 0000000000..6b920ade51 --- /dev/null +++ b/packages/pine/pine-4.63/pine-4.30-ldap.patch @@ -0,0 +1,11 @@ +--- pine4.30/build.ldap Fri Oct 27 12:48:05 2000 ++++ pine4.30/build Fri Oct 27 12:49:00 2000 +@@ -249,7 +249,7 @@ + case "$?" in + 1) if [ "$LLIBS" != "1" ] + then +- L1="'LDAPLIBS=../ldap/libraries/libldap.a ../ldap/libraries/liblber.a'" ++ L1="'LDAPLIBS=../ldap/libraries/libldap.so ../ldap/libraries/liblber.so ../ldap/libraries/libresolv.so'" + fi + if [ "$LFLAGS" != "1" ] + then diff --git a/packages/pine/pine-4.63/pine-4.31-segfix.patch b/packages/pine/pine-4.63/pine-4.31-segfix.patch new file mode 100644 index 0000000000..f65aa60294 --- /dev/null +++ b/packages/pine/pine-4.63/pine-4.31-segfix.patch @@ -0,0 +1,17 @@ +diff -urN pine4.31.orig/pine/osdep/lstcmpnt pine4.31/pine/osdep/lstcmpnt +--- pine4.31.orig/pine/osdep/lstcmpnt Mon Oct 30 17:45:08 2000 ++++ pine4.31/pine/osdep/lstcmpnt Tue Dec 12 06:33:53 2000 +@@ -9,10 +9,10 @@ + last_cmpnt(filename) + char *filename; + { +- register char *p = NULL, *q = filename; ++ char *p = NULL, *q = filename; + +- if(!q) +- return(q); ++ if(filename == 0) ++ return 0; + + while(q = strchr(q, '/')) + if(*++q) diff --git a/packages/pine/pine-4.63/pine-4.40-lockfile-perm.patch b/packages/pine/pine-4.63/pine-4.40-lockfile-perm.patch new file mode 100644 index 0000000000..f2cb434de2 --- /dev/null +++ b/packages/pine/pine-4.63/pine-4.40-lockfile-perm.patch @@ -0,0 +1,22 @@ +--- pine4.40/imap/src/osdep/unix/env_unix.h.lock_protection_fix Thu Oct 4 05:26:33 2001 ++++ pine4.40/imap/src/osdep/unix/env_unix.h Thu Oct 4 05:30:33 2001 +@@ -46,12 +46,15 @@ + + + /* +- * Attention: all sorcerer's apprentices who think that 0666 is a mistake. +- * You are wrong. Read the FAQ. Do not meddle in the affairs of wizards, +- * for they are subtle and quick to anger. ++ * Attention: all people who do not care about OS security, and think that ++ * mode 0666 is a correct. You are wrong. In modern multiuser systems, ++ * both remote and local security is critically important. Allowing 0666 ++ * lockfiles, allows all sorts of security problems to occur. Feel free to ++ * meddle with it however, if you do not care about local security. + */ + +-#define MANDATORYLOCKPROT 0666 /* don't change this */ ++/* Change this only if you do not want a secure multiuser system */ ++#define MANDATORYLOCKPROT 0600 + + /* Function prototypes */ + diff --git a/packages/pine/pine-4.63/pine-4.56-passfile.patch b/packages/pine/pine-4.63/pine-4.56-passfile.patch new file mode 100644 index 0000000000..bb9813f7c6 --- /dev/null +++ b/packages/pine/pine-4.63/pine-4.56-passfile.patch @@ -0,0 +1,12 @@ +--- pine4.56/pine/osdep/os-lnx.h.orig 2003-07-23 07:23:26.000000000 -0700 ++++ pine4.56/pine/osdep/os-lnx.h 2003-07-23 07:23:30.000000000 -0700 +@@ -295,5 +295,9 @@ + #define MAX_ADDR_EXPN (1000) /* Longest expanded addr */ + #define MAX_ADDR_FIELD (10000) /* Longest fully-expanded addr field */ + ++/*---------------------------------------------------------------------- ++ Allow for caching of passwords between connections. ++ ----*/ ++#define PASSFILE ".pinepw" + + #endif /* _OS_INCLUDED */ diff --git a/packages/pine/pine-4.63/pine-4.61-largeterminal.patch b/packages/pine/pine-4.63/pine-4.61-largeterminal.patch new file mode 100644 index 0000000000..c046546dba --- /dev/null +++ b/packages/pine/pine-4.63/pine-4.61-largeterminal.patch @@ -0,0 +1,14 @@ +diff -Nur pine4.61.orig/pine/osdep/os-lnx.h pine4.61/pine/osdep/os-lnx.h +--- pine4.61.orig/pine/osdep/os-lnx.h 2004-12-18 00:33:46.162401405 +0100 ++++ pine4.61/pine/osdep/os-lnx.h 2004-12-18 00:34:14.473012057 +0100 +@@ -247,8 +247,8 @@ + + + /*-- Max screen pine will display on. Used to define some array sizes --*/ +-#define MAX_SCREEN_COLS (170) +-#define MAX_SCREEN_ROWS (200) ++#define MAX_SCREEN_COLS (340) ++#define MAX_SCREEN_ROWS (400) + + + /*---------------------------------------------------------------------- diff --git a/packages/pine/pine-4.63/pine-4.61-subjectlength.patch b/packages/pine/pine-4.63/pine-4.61-subjectlength.patch new file mode 100644 index 0000000000..b7a9cdf7b7 --- /dev/null +++ b/packages/pine/pine-4.63/pine-4.61-subjectlength.patch @@ -0,0 +1,59 @@ +--- pine4.61/pine/strings.c_orig 2004-03-12 10:48:17.783992528 +0100 ++++ pine4.61/pine/strings.c 2004-03-12 11:01:37.929351944 +0100 +@@ -2912,7 +2912,7 @@ int rfc1522_token PROTO((char *, + char **)); + int rfc1522_valtok PROTO((int)); + int rfc1522_valenc PROTO((int)); +-int rfc1522_valid PROTO((char *, char **, char **, char **, ++int rfc1522_valid PROTO((char *, int, char **, char **, char **, + char **)); + char *rfc1522_8bit PROTO((void *, int)); + char *rfc1522_binary PROTO((void *, int)); +@@ -2949,7 +2949,7 @@ rfc1522_decode(d, len, s, charset) + + while(s && (sw = strstr(s, RFC1522_INIT))){ + /* validate the rest of the encoded-word */ +- if(rfc1522_valid(sw, &cset, &enc, &txt, &ew)){ ++ if(rfc1522_valid(sw, 1, &cset, &enc, &txt, &ew)){ + if(!rv) + rv = d; /* remember start of dest */ + +@@ -3222,10 +3222,15 @@ rfc1522_valenc(c) + + /* + * rfc1522_valid - validate the given string as to it's rfc1522-ness ++ * if relaxchk is true, double the maximum length of an encoded word. ++ * this is necessary to decode overlong encoded words generated by ++ * numerous incompliant implementations of RFC 2047 (1522). ++ + */ + int +-rfc1522_valid(s, charset, enc, txt, endp) ++rfc1522_valid(s, relaxchk, charset, enc, txt, endp) + char *s; ++ int relaxchk; + char **charset; + char **enc; + char **txt; +@@ -3237,7 +3242,11 @@ rfc1522_valid(s, charset, enc, txt, endp + rv = rfc1522_token(c = s+RFC1522_INIT_L, rfc1522_valtok, RFC1522_DLIM, &e) + && rfc1522_token(++e, rfc1522_valtok, RFC1522_DLIM, &t) + && rfc1522_token(++t, rfc1522_valenc, RFC1522_TERM, &p) +- && p - s <= RFC1522_MAXW; ++ && p - s <= RFC1522_MAXW * (relaxchk ? 2 : 1); ++ /* ++ * relax the length condition by doubling the max length of an ++ * encoded word. It's is needed for some longer encoded words. ++ */ + + if(charset) + *charset = c; +@@ -3288,7 +3297,7 @@ rfc1522_encode(d, len, s, charset) + } + else if(*p == RFC1522_INIT[0] + && !strncmp((char *) p, RFC1522_INIT, RFC1522_INIT_L)){ +- if(rfc1522_valid((char *) p, NULL, NULL, NULL, (char **) &q)) ++ if(rfc1522_valid((char *) p, 0, NULL, NULL, NULL, (char **) &q)) + p = q + RFC1522_TERM_L - 1; /* advance past encoded gunk */ + } + else if(*p == ESCAPE && match_escapes((char *)(p+1))){ diff --git a/packages/pine/pine-4.63/pine-4.62-spooldir-permissions.patch b/packages/pine/pine-4.63/pine-4.62-spooldir-permissions.patch new file mode 100644 index 0000000000..eb8c2f3eee --- /dev/null +++ b/packages/pine/pine-4.63/pine-4.62-spooldir-permissions.patch @@ -0,0 +1,12 @@ +diff -bur pine4.62/imap/src/osdep/unix/env_unix.c pine4.62-gentoo/imap/src/osdep/unix/env_unix.c +--- pine4.62/imap/src/osdep/unix/env_unix.c 2004-09-13 23:32:11.000000000 +0200 ++++ pine4.62-gentoo/imap/src/osdep/unix/env_unix.c 2005-03-24 23:38:13.000000000 +0100 +@@ -106,7 +106,7 @@ + * on the mail spool, or install mlock. + */ + /* disable warning if can't make .lock file */ +-static short disableLockWarning = NIL; ++static short disableLockWarning = 1; + + /* UNIX namespaces */ + diff --git a/packages/pine/pine-4.63/pine-4.63-r2-chappa-all.patch b/packages/pine/pine-4.63/pine-4.63-r2-chappa-all.patch new file mode 100644 index 0000000000..313d4544ef --- /dev/null +++ b/packages/pine/pine-4.63/pine-4.63-r2-chappa-all.patch @@ -0,0 +1,21900 @@ +diff -rc pine4.63/README.maildir pine4.63.I.USE/README.maildir +*** pine4.63/README.maildir Thu May 19 19:59:15 2005 +--- pine4.63.I.USE/README.maildir Thu May 19 19:57:24 2005 +*************** +*** 0 **** +--- 1,244 ---- ++ ------------------------------------------------------------------------------- ++ ++ Maildir Driver for Pine4.63 ++ By Eduardo Chappa <chappa@math.washington.edu> ++ http://www.math.washington.edu/~chappa/pine/ ++ ++ ------------------------------------------------------------------------------- ++ 1. General Information About This Patch ++ --------------------------------------- ++ ++ This patch adds support for the maildir format to Pine. We take the ++ approach that this patch is one more driver among the number of formats ++ supported by Pine (more generally c-client). This approach differs from ++ older versions of similar patches, in that once a maildir patch was ++ applied, it was assumed that all your folders would be created in the ++ maildir format. ++ ++ This patch does not assume that maildir is a preferred format, instead ++ puts maildir in equal footing with other formats (mbox, mbx, etc), and so ++ a maildir folder in the mail/ collection is treated in the same way as any ++ other folder in any other format. In another words, just by reading the ++ name of a folder, or opening it, or doing any operation with it, you can ++ not know in which format the folder is. ++ ++ This implies that if you want to add a folder in the maildir format to the ++ mail/ collection, then you must add by pressing "A" in the folder list ++ collection and enter "#driver.md/mail/name_maildir_folder". ++ ++ If you only want to use maildir, however, you can do so too. In this case, ++ you must create a maildir collection. In that collection, only maildir ++ folders will be listed. If there is any folder in any other format, that ++ folder will be ignored. In another words, any folder listed there is in ++ maildir format and can be accessed through that collection, conversely, ++ any folder not listed there is not in maildir format and there is no way ++ to access it using this collection. ++ ++ In order to create a maildir collection, you could press M S L, and "A" to ++ add a collection. Fill in the required fields as follows: ++ ++ Nickname : Anything ++ Server : ++ Path : #md/relative/path/to/maildir/collection/ ++ View : ++ ++ For example, if "path" is set to "#md/mail/", then Pine will look for your ++ maildir folders that are in ~/mail/. ++ ++ The code in this patch is mostly based in code for the unix driver plus ++ some combinations of the mh, mbx and nntp drivers for the c-client ++ library. Those drivers were designed by Mark Crispin, and bugs in this ++ code are not his bugs, but my own. ++ ++ I got all the specification for this patch from ++ http://cr.yp.to/proto/maildir.html. If you know of a place with a better ++ specification for maildir format please let me know. The method this patch ++ uses to create a unique filename for a message is one of the "old ++ fashioned" methods. I realize that this is old fashioned, but it is ++ portable, and portability is the main reason why I decided to use an old ++ fashioned method (most methods are not portable. See the word ++ "Unfortunately" in that document). ++ ++ -------------- ++ 2. Other Goals ++ -------------- ++ ++ It is intended that this code will work well with any application ++ written using the c-client library. Of paramount importance is to make the ++ associated imap server work well when the server accesses a folder in ++ Maildir format. The program mailutil should also work flawlessly with this ++ implemetation of the driver. ++ ++ It is intended that this driver be fast and stable. We intend not to ++ patch Pine to make this driver do its work, unless such patching is for ++ fixing bugs in Pine or to pass parameters to the driver. ++ ++ ---------------------------------------- ++ 3. One sided comparison to other patches ++ ---------------------------------------- ++ ++ There are two other maildir patches that could be easily adapted for ++ version 4.63. ++ ++ The first one is the patch distributed by SuSe which can be downloaded ++ from http://hico.fphil.uniba.sk/pine-patches.html. This patch was last ++ updated for version 4.58. Several hunks fail to be applied when you try to ++ apply it to Pine 4.63. Even if you apply those hunks manually there will ++ still be the following bugs: ++ ++ * You can not save between any two storage systems. The old patch did ++ not do this well, because it had to modify the mailcmd.c file in order ++ to save messages to a unix style mailbox, and this is undesirable, ++ because the mailutil application associated to this patch would fail ++ to save messages. ++ * It corrupts messages when it saves them to a mbx format folder. ++ * It could not save messages to the INBOX folder. ++ * It crashes when two different clients are accessing the same mailbox: ++ For example, if a message is marked deleted in one session, then it ++ should be marked deleted in any other session too, but instead it ++ crashes the second session. ++ * Pine crashes when saving several messages to a maildir (not even the ++ prototype of the function is correctly defined). ++ * Pine crashes when checking for the STATUS of a maildir mailbox. ++ * Pine could not delete a maildir folder. ++ * Pine could not rename a maildir folder. ++ ++ The other patch is available from Glue Logic (GL), was last updated for ++ version 4.61 and fails to apply a hunk in version 4.63, which must be ++ manually applied. There are, however, several problems and bugs. The patch ++ can be found at http://www.gluelogic.com/code/PINE-maildir/ ++ ++ * [Bug] It changes the default sort by arrival into sort by Date in ++ every folder. This makes Pine sort incorrectly any folder (no matter ++ in which format such folder is). ++ ++ * [Missing Important Feature] Lacks support for dual folder use. You can ++ not create a directory with the same name than a given folder and use ++ it! ++ ++ * [Bug] It confuses Unseen and Recent messages. Unseen messages are ++ reported as Recent. An Unseen message is a message that had not been ++ read the last time the folder was closed (or had been read but marked ++ Unseen in an earlier session). A Recent message is one which was not ++ in the folder the last time it was closed. Recent messages are your ++ real new messages, but Unseen are not. In GL patch, every Unseen ++ message is treated as Recent!. ++ ++ * [Problem] Large folders take long time to be opened for the first ++ time. ++ ++ * [Bug] Reported sizes are the number of bytes in the message and not ++ the "on the wire" size. If you were to manually edit a message and ++ either add or remove information from it, the size reported by Pine ++ would not be affected by this change. ++ ++ * [Bug] Crashes when two sessions access the same mailbox and one ++ deletes and expunges a message while the other tries to read that ++ message. (explicitly, if session A uses the GL patch, and session B ++ uses my patch, then the following procedure crashes session A: ++ ++ - In session B delete and expunge a message. ++ - Open that message in session A. Session A will notice it is gone ++ and will not crash. ++ - In session A delete and expunge a message. ++ - Open that message in session B. Session B will print a message ++ about no such message, then it will go back to the index screen ++ telling you that the message your were viewing was gone. ++ - Now in session B delete and expunge a message. ++ - Open that message in session A, Pine will crash). ++ ++ * [Bug] The patch changes the name of a message-file by adding a place ++ for the size in the name of the message-file. By doing so it breaks ++ the maildir specification which only allows you to change the name by ++ changing flags. If there is another client reading that mailbox, there ++ is a chance that the other client will fail finding messages due to ++ changes made by the GL patch. ++ ++ * [Bug] Any patch for Maildir support is NOT a patch for Pine (despite ++ the fact that you have read many times that the patch is for Pine), ++ but a patch for the C-Client library. As such it should work well with ++ any application that can be built with such library, like the UW-IMAP ++ server. The GL patch has a self proclaimed message stating not to use ++ the associated IMAP server to read Maildirs. This restriction does not ++ apply to my patch. I encourage you to use the server built with my ++ patch to access Maildirs. ++ ++ ------------------------------------------------------------------------ ++ 4. What are the known bugs of this implementation of the Maildir driver? ++ ------------------------------------------------------------------------ ++ ++ I don't know any at this time. There have been bugs before, though, but ++ I try to fix bugs as soon as they are reported. All bugs of the other ++ patches have been reported but not fixed, either because there was no one ++ maintaining the patch, or the maintainer has not fixed them yet (all these ++ reports were made as late as November 2004). A very complete list of ++ updates for this patch, which includes bug fixes, improvements and ++ addition of new features can be found at ++ ++ http://www.math.washington.edu/~chappa/pine/updates/maildir.html ++ ++ ---------- ++ 5. On UIDs ++ ---------- ++ ++ This patch does not keep UIDs between sessions, but hopefully it does ++ keep consistent UIDs during one session. This is not a bug of the driver, ++ instead it is a shortcoming of the maildir specification. The main point ++ of the maildir configuration is that you should never (read my lips) ever ++ edit the message, but edit the filename associated to the message. Well, I ++ could not find any single place in the web where it was told how to save ++ the UID of a message, if there is one please let me know and I will add ++ UID support for this driver. ++ ++ -------------------------------------------- ++ 6. Configuring Pine and Setting up a Maildir ++ -------------------------------------------- ++ ++ Once this approach was chosen, it implied the following: ++ ++ * This patch assumes that your INBOX is located at "$HOME/Maildir". ++ This is a directory which should have three subdirectories "cur", ++ "tmp" and "new". Mail is delivered to 'new' and read from 'cur'. I ++ have added a configuration option "maildir-location" which can be ++ used to tell Pine where your Maildir inbox is, in case your system ++ do not use the above directory (e.g. your system may use ++ "~/.maildir"). In this case define that variable to be the name of ++ the directory where your e-mail is being delivered (e.g. ++ ".maildir"). ++ ++ * If you want to use the above configuration as your inbox, you must ++ define your inbox-path as "#md/inbox" (no quotes). You can define ++ the inbox-path like above even if you have changed the ++ maildir-location variable. That's the whole point of that variable. ++ ++ ----------------------------------- ++ 7. What about Courier file systems? ++ ----------------------------------- ++ ++ In a courier file system all folders are subfolders of a root folder ++ called INBOX. Normally INBOX is located at ~/Maildir and subfolders are ++ "dot" directories in ~/Maildir. For example ~/Maildir/.Trash is a ++ subfolder of INBOX and is accessed with the nickname "INBOX.Trash". ++ ++ You can not access folders in this way unless you preceed them with the ++ string "#mc/". The purpose of the string "#mc/" is to warn Pine that a ++ collection in the Courier format is going to be accessed, so you can ++ SELECT a folder like "#mc/INBOX.Trash", but not "INBOX.Trash" ++ ++ You can access a collection through a server, but if you want to access a ++ collection of folders created using the Courier server, you MUST edit your ++ ".pinerc" file and enter the definition of the collection as follows: ++ ++ folder-collections="Anything you want" #mc/INBOX.[] ++ ++ You can replace the string "#mc/INBOX." by something different, for example ++ "#mc/Courier/." will make Pine search for your collection in ~/Courier. ++ ++ You can not add this directly into Pine because Pine fails to accept this ++ value from its input, but it takes it correctly when it is added through ++ the ".pinerc" file. ++ ++ You can access your inbox as "#mc/INBOX" or "#md/INBOX". Both definitions ++ point to the same place. ++ ++ Last Updated April 29, 2005 +diff -rc pine4.63/imap/src/c-client/imap4r1.c pine4.63.I.USE/imap/src/c-client/imap4r1.c +*** pine4.63/imap/src/c-client/imap4r1.c Fri Apr 8 16:44:01 2005 +--- pine4.63.I.USE/imap/src/c-client/imap4r1.c Thu May 19 19:57:33 2005 +*************** +*** 4396,4401 **** +--- 4396,4402 ---- + if (*env) { /* need to merge this header into envelope? */ + if (!(*env)->newsgroups) { /* need Newsgroups? */ + (*env)->newsgroups = nenv->newsgroups; ++ (*env)->ngpathexists = nenv->ngpathexists; + nenv->newsgroups = NIL; + } + if (!(*env)->followup_to) { /* need Followup-To? */ +*************** +*** 4450,4455 **** +--- 4451,4457 ---- + if (oenv) { /* need to merge old envelope? */ + (*env)->newsgroups = oenv->newsgroups; + oenv->newsgroups = NIL; ++ (*env)->ngpathexists = oenv->ngpathexists; + (*env)->followup_to = oenv->followup_to; + oenv->followup_to = NIL; + (*env)->references = oenv->references; +diff -rc pine4.63/imap/src/c-client/mail.c pine4.63.I.USE/imap/src/c-client/mail.c +*** pine4.63/imap/src/c-client/mail.c Wed Mar 16 16:12:17 2005 +--- pine4.63.I.USE/imap/src/c-client/mail.c Thu May 19 19:57:24 2005 +*************** +*** 977,982 **** +--- 977,983 ---- + (((*mailbox == '{') || (*mailbox == '#')) && + (stream = mail_open (NIL,mailbox,OP_PROTOTYPE | OP_SILENT)))) + d = stream->dtb; ++ else if (maildir_valid_name(mailbox)) return maildir_create(stream, mailbox); + else if ((*mailbox != '{') && (ts = default_proto (NIL))) d = ts->dtb; + else { /* failed utterly */ + sprintf (tmp,"Can't create mailbox %.80s: indeterminate format",mailbox); +diff -rc pine4.63/imap/src/c-client/mail.h pine4.63.I.USE/imap/src/c-client/mail.h +*** pine4.63/imap/src/c-client/mail.h Tue Feb 8 15:44:54 2005 +--- pine4.63.I.USE/imap/src/c-client/mail.h Thu May 19 19:57:33 2005 +*************** +*** 149,154 **** +--- 149,156 ---- + #define SET_LOGOUTHOOK (long) 226 + #define GET_LOGOUTDATA (long) 227 + #define SET_LOGOUTDATA (long) 228 ++ #define SET_PASSWORDFILE 229 ++ #define GET_PASSWORDFILE 230 + + /* 3xx: TCP/IP */ + #define GET_OPENTIMEOUT (long) 300 +*************** +*** 311,316 **** +--- 313,320 ---- + #define SET_SNARFPRESERVE (long) 567 + #define GET_INBOXPATH (long) 568 + #define SET_INBOXPATH (long) 569 ++ #define GET_COURIERSTYLE (long) 570 ++ #define SET_COURIERSTYLE (long) 571 + + /* Driver flags */ + +*************** +*** 622,627 **** +--- 626,632 ---- + /* Message envelope */ + + typedef struct mail_envelope { ++ unsigned int ngpathexists : 1; /* newsgroups may be bogus */ + unsigned int incomplete : 1; /* envelope may be incomplete */ + unsigned int imapenvonly : 1; /* envelope only has IMAP envelope */ + char *remail; /* remail header if any */ +*************** +*** 790,795 **** +--- 795,801 ---- + unsigned int spare7 : 1; /* seventh spare bit */ + unsigned int spare8 : 1; /* eighth spare bit */ + void *sparep; /* spare pointer */ ++ void *maildirp; /* for the Maildir driver, can't use sparep */ + unsigned long user_flags; /* user-assignable flags */ + } MESSAGECACHE; + +diff -rc pine4.63/imap/src/c-client/rfc822.c pine4.63.I.USE/imap/src/c-client/rfc822.c +*** pine4.63/imap/src/c-client/rfc822.c Tue Jan 18 12:41:09 2005 +--- pine4.63.I.USE/imap/src/c-client/rfc822.c Thu May 19 19:57:33 2005 +*************** +*** 354,359 **** +--- 354,360 ---- + ENVELOPE *env = (*en = mail_newenvelope ()); + BODY *body = bdy ? (*bdy = mail_newbody ()) : NIL; + long MIMEp = -1; /* flag that MIME semantics are in effect */ ++ long PathP = NIL; /* flag that a Path: was seen */ + parseline_t pl = (parseline_t) mail_parameters (NIL,GET_PARSELINE,NIL); + if (!host) host = BADHOST; /* make sure that host is non-null */ + while (i && *s != '\n') { /* until end of header */ +*************** +*** 443,448 **** +--- 444,452 ---- + *t++ = '\0'; + } + break; ++ case 'P': /* possible Path: */ ++ if (!strcmp (tmp+1,"ATH")) env->ngpathexists = T; ++ break; + case 'R': /* possible Reply-To: */ + if (!strcmp (tmp+1,"EPLY-TO")) + rfc822_parse_adrlist (&env->reply_to,d,host); +diff -rc pine4.63/imap/src/mailutil/mailutil.c pine4.63.I.USE/imap/src/mailutil/mailutil.c +*** pine4.63/imap/src/mailutil/mailutil.c Tue Feb 8 15:50:49 2005 +--- pine4.63.I.USE/imap/src/mailutil/mailutil.c Thu May 19 19:57:33 2005 +*************** +*** 29,34 **** +--- 29,35 ---- + + /* Globals */ + ++ int passfile = NIL; /* password file supplied ? */ + int debugp = NIL; /* flag saying debug */ + int verbosep = NIL; /* flag saying verbose */ + int rwcopyp = NIL; /* flag saying readwrite copy (for POP) */ +*************** +*** 159,164 **** +--- 160,166 ---- + for (nargs = argc ? argc - 1 : 0,args = argv + 1; nargs; args++,nargs--) { + if (*(s = *args) == '-') { /* parse switches */ + if (!strcmp (s,"-debug") || !strcmp (s,"-d")) debugp = T; ++ else if (!strcmp (s,"-passfile")) passfile = T; + else if (!strcmp (s,"-verbose") || !strcmp (s,"-v")) verbosep = T; + else if (!strcmp (s,"-rwcopy") || !strcmp (s,"-rw")) rwcopyp = T; + else if ((nargs > 1) && (!strcmp (s,"-merge") || !strcmp (s,"-m"))) { +*************** +*** 179,184 **** +--- 181,190 ---- + exit (ret); + } + } ++ else if (passfile) { ++ env_parameters(SET_PASSWORDFILE, (void *)s); ++ passfile = NIL; ++ } + else if (!cmd) cmd = s; /* first non-switch is command */ + else if (!src) src = s; /* second non-switch is source */ + else if (!dst) dst = s; /* third non-switch is destination */ +*************** +*** 665,671 **** + username[NETMAXUSER-1] = '\0'; + if (s = strchr (username,'\n')) *s = '\0'; + } +! strcpy (password,getpass ("password: ")); + } + + +--- 671,679 ---- + username[NETMAXUSER-1] = '\0'; + if (s = strchr (username,'\n')) *s = '\0'; + } +! mm_userpwd(mb, &username, &password); +! if (!password || !*password) +! strcpy (password,getpass ("password: ")); + } + + +diff -rc pine4.63/imap/src/osdep/unix/Makefile pine4.63.I.USE/imap/src/osdep/unix/Makefile +*** pine4.63/imap/src/osdep/unix/Makefile Wed Apr 20 17:49:08 2005 +--- pine4.63.I.USE/imap/src/osdep/unix/Makefile Thu May 19 19:57:24 2005 +*************** +*** 119,125 **** + # Standard distribution build parameters + + DEFAULTAUTHENTICATORS=md5 pla log +! DEFAULTDRIVERS=imap nntp pop3 mh mx mbx tenex mtx mmdf unix news phile + + + # Normally no need to change any of these +--- 119,125 ---- + # Standard distribution build parameters + + DEFAULTAUTHENTICATORS=md5 pla log +! DEFAULTDRIVERS=maildir courier imap nntp pop3 mh mx mbx tenex mtx mmdf unix news phile + + + # Normally no need to change any of these +*************** +*** 128,134 **** + BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o siglocal.o \ + dummy.o pseudo.o netmsg.o flstring.o fdstring.o \ + rfc822.o nntp.o smtp.o imap4r1.o pop3.o \ +! unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o + CFLAGS=-g + + CAT=cat +--- 128,134 ---- + BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o siglocal.o \ + dummy.o pseudo.o netmsg.o flstring.o fdstring.o \ + rfc822.o nntp.o smtp.o imap4r1.o pop3.o \ +! unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o maildir.o + CFLAGS=-g + + CAT=cat +*************** +*** 257,263 **** + + cyg: # Cygwin - note that most local file drivers don't work!! + $(BUILD) `$(CAT) SPECIALS` OS=$@ \ +! DEFAULTDRIVERS="imap nntp pop3 mbx unix phile" \ + SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \ + SPOOLDIR=/var \ + ACTIVEFILE=/usr/local/news/lib/active \ +--- 257,263 ---- + + cyg: # Cygwin - note that most local file drivers don't work!! + $(BUILD) `$(CAT) SPECIALS` OS=$@ \ +! DEFAULTDRIVERS="imap nntp pop3 mbx unix maildir phile" \ + SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \ + SPOOLDIR=/var \ + ACTIVEFILE=/usr/local/news/lib/active \ +*************** +*** 846,852 **** + tenex.o: mail.h misc.h osdep.h dummy.h + unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h + utf8.o: mail.h misc.h osdep.h utf8.h +! + + # OS-dependent + +--- 846,852 ---- + tenex.o: mail.h misc.h osdep.h dummy.h + unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h + utf8.o: mail.h misc.h osdep.h utf8.h +! maildir.o: mail.h misc.h osdep.h maildir.h dummy.h + + # OS-dependent + +diff -rc pine4.63/imap/src/osdep/unix/dummy.c pine4.63.I.USE/imap/src/osdep/unix/dummy.c +*** pine4.63/imap/src/osdep/unix/dummy.c Wed Nov 10 16:16:23 2004 +--- pine4.63.I.USE/imap/src/osdep/unix/dummy.c Thu May 19 19:57:24 2005 +*************** +*** 104,109 **** +--- 104,110 ---- + { + char *s,tmp[MAILTMPLEN]; + struct stat sbuf; ++ maildir_remove_root(&name); + /* must be valid local mailbox */ + if (name && *name && (*name != '{') && (s = mailboxfile (tmp,name))) { + /* indeterminate clearbox INBOX */ +*************** +*** 364,370 **** + char *s,tmp[MAILTMPLEN]; + /* don't \NoSelect dir if it has a driver */ + if ((attributes & LATT_NOSELECT) && (d = mail_valid (NIL,name,NIL)) && +! (d != &dummydriver)) attributes &= ~LATT_NOSELECT; + if (!contents || /* notify main program */ + (!(attributes & LATT_NOSELECT) && (csiz = strlen (contents)) && + (s = mailboxfile (tmp,name)) && +--- 365,374 ---- + char *s,tmp[MAILTMPLEN]; + /* don't \NoSelect dir if it has a driver */ + if ((attributes & LATT_NOSELECT) && (d = mail_valid (NIL,name,NIL)) && +! (d != &dummydriver)){ +! attributes &= ~LATT_NOSELECT; +! attributes |= LATT_NOINFERIORS; +! } + if (!contents || /* notify main program */ + (!(attributes & LATT_NOSELECT) && (csiz = strlen (contents)) && + (s = mailboxfile (tmp,name)) && +*************** +*** 385,390 **** +--- 389,396 ---- + { + char *s,tmp[MAILTMPLEN]; + long ret = NIL; ++ if(!strncmp(mailbox,"#md/",4) || !strncmp(mailbox,"#mc/", 4)) ++ return maildir_create(stream, mailbox); + /* validate name */ + if (!(compare_cstring (mailbox,"INBOX") && (s = dummy_file (tmp,mailbox)))) { + sprintf (tmp,"Can't create %.80s: invalid name",mailbox); +*************** +*** 450,455 **** +--- 456,469 ---- + { + struct stat sbuf; + char *s,tmp[MAILTMPLEN]; ++ if (!strncmp(mailbox,"#md/",4) || !strncmp(mailbox,"#mc/", 4) ++ || is_valid_maildir(&mailbox)){ ++ char tmp[MAILTMPLEN] = {'\0'}; ++ strcpy(tmp, mailbox); ++ if(tmp[strlen(tmp) - 1] != '/') ++ tmp[strlen(tmp)] = '/'; ++ return maildir_delete(stream, tmp); ++ } + if (!(s = dummy_file (tmp,mailbox))) { + sprintf (tmp,"Can't delete - invalid name: %.80s",s); + MM_LOG (tmp,ERROR); +*************** +*** 476,481 **** |
