--- pine4.64/README.SuSE +++ pine4.64/README.SuSE @@ -0,0 +1,236 @@ +This is a modified version of pine, distributed under a mutual agreement. + +Comprehensive overview of patches/changes applied to Pine 4.64: + + all.patch + +Patches provided by Eduardo Chappa: + * Maildir patch for Pine + * Enhanced Fancy Thread Interface + * Cygwin Version of Pine + * Reflow, paint different quote levels and remove quoted text in Pine. + * Automatic notification of new mail in incoming folders + * Use Pine to send e-mail from the command line + * Define your own rules and make pine flexible! + * Write accents in pine + * Build Pine with minimal disk space + * Cancel opening a connection when pressing ^C + * Get the quota report from an IMAP server + * Select messages by the content of an arbitrary header + * Paint special text in the body of the message in any custom color + * Choose a role when composing a message from a mailto: link + * Change your From Header without any effort! + * Get the number of new messages upon opening a folder + * New Menu for the Reply Command + * Tab checks for new mail in cycles + * Update the status line information + * Reinsert the pattern in search + * Delete Until the end of file + * Fix a bug which makes Pine crash when you add a filter + * Fix a bug that makes Pine not to return to a top level directory + * Fix a bug that makes Pine crash when you edit an address in the composer + * Fix a bug that makes Pine crash if you search from a LDAP server + * Allow redirection of input for urls + + charset-editorial.diff + +If the pine's terminal charset is UTF-8, it disables the charset editoral which +otherwise warns that the mail is converted from a different charset and says +that some or some special characters may be displayed wrongly. Reason: Since +UTF-8 can encode all characters, there is no loss in conversion, hence no +wrongly displayed characters. + + config-options.patch + +Adds the config options which are used for extended mail charset aliasing +which is sometimes neccessary when mails are not labelled with the correct +charset tags, used by the extended charset conversion filters which are +used by the UTF-8 patches. + + filter-iconv.patch + +Implementation of a mail display, printing and export filter which can convert +between any charset encodings (non-multibyte and multibyte) which the +iconv POSIX/Single Unix Standard API implementation which it uses supports. + + gf_wrap-UTF8.patch + +If pine is processing non-ASCII mails as UTF-8, it changes the function of +the gf_wrap message text wrapping display, printing and export filter to +wrap long lines in an UTF-8-aware manner, which means that it takes the +length of the characters as they are shown on a output device into account +and does not split UTF-8 sequences apart as this would corrupt them. + + iconv-no-explain.patch + +Changes rfc1522_decode() to not output a explanatory tag which includes +the charset info if no charset tag was found other patches which are +added cause rfc1522_decode() to use conversion functions which use an +"assumed-charset" when there is not charset information given, hence +conversion is happending and it's not correct anymore to indicate that +these characters were not converted as it would be in normal pine4.64. + + mailindx-plusdraw.patch + +If pine is drawing the mailbox index using UTF-8 strings, it changes the +mailbox index drawing function paint_index_line() to not draw the plus +character ('+') into a fixed byte position into the line but make it +calculate the correct bye position in the string to make all plus ('+') +characters appear at the same visible screen column. Reason: Characters +often need more than one byte per screen column, so to find the right +byte position where the plus ('+') marker for threaded mail view has +to be put, all UTF-8 sequences and their width on screen have to be +taken into account. + + multipart-alternative-conversion.patch + +When forwarding mails of MIME type multipart/alternative, pine did not +pass the mail body's parameter list to the function get_body_part_text() +and so in this situation, it was prevented from finding the charset tag +of the forwarded body part of the multipart/alternative mail, and so it +could not apply correct charset conversion. This bugfix also applies to +plain pine 4.64, but is usually less visible if no conversion is needed +between display and mail charset when forwarding such mails. + + optionally_enter.patch + +UTF-8 support for the function optionally_enter() which handles all +single-line text editing which happens when editing file names of +attachments, passwords, search strings and so on. Uses UCS-4 Unicode +characters internally. + + pico-ucs4all.patch + +UTF-8 support for pico: When pico is started standalone in a UTF-8 +locale environment ("locale charmap" prints "UTF-8"), pico changes +to use UTF-8 as charset for all I/O (terminal and files) and it +does the same when it runs within a pine which is setup to run +in an UTF-8 environment. It uses UCS-4 Unicode characters internally. +The first 76 lines of the patch file itself contain complete information +about the implementation. + + pico-ucs4doublewidthchars.diff + +Adds support for double-width characters to UTF-8-aware pico. + + pico-ucs4GetKey.patch + +The ESC ESC command working in pico if even when it's +running in UTF-8 mode. Documentation is found int the first +lines of the patch file. + + pico-ucs4isspace.patch + +Update the space detection to support Unicode, otherwise pico +might wrongly identify some non-space unicode characters as spaces. + + pine4.61.dif + +Changes the paths for the mail spool dirs and other paths and +some other small assorted changes. + + pine-body.patch + +Indicate that mail search can also search the mail body specifically. + + pine-few_arguments.patch + +Fixes two places where sprintf was called with too few arguments. + + pine-gcc4.patch + +Nitpicking to make the code compile with GCC version 4. + + pine-ldap_auth.patch + +allow connect to LDAP servers which need authentication (#158653), +documentation also in the first pages of the patch file. + + pine-missing-protos.patch + +Add a missing #include + + pine-no-stripwhitespace.patch + +Remove an orphaned function (not used) + + pine-passfile.patch + +Enable passfile support (see the patch for details). + + pine-talk_disallow.patch + +This patch rips out the whole talk protection stuff as it can leave +the terminal in 600 mode. Who uses talk anyways these days? + + pine-urlquote.patch + +This patch changes pine's URL passing for external programs to not use +_URL_ in the argument string but use the environment variable "URL" for +that. Certainly SUSE-specific now. + + pine-use-rpm_opt_flags.patch + +make pine use EXTRACFLAGS at all places + + pine-utf8-1a-GFHP_HANDLES.patch + +Removes the orphaned GFHP_HANDLES code (not used) + + pine-utf8-1a-pine.h.patch + +Header changes for UTF-8 support + + pine-utf8-1b.patch + +UTF-8 support for pine's message header editor and generic +character-set conversion functions for the UTF-8 patch + + quell-displaying-flowed-text.patch.4.60 + +Adds new pine config option quell-displaying-flowed-text complete +with help text. + + quell-flowed-text-default.patch + +Turns on quell-displaying-flowed-text by default (can be turned off) + + rfc1522_decode.patch + +Make rfc1522_decode() use conv_sstrncpy for conversion +(used for converting mail headers in an UTF-8 aware way) + + rfc1522_valid.patch + +since asian character sets use at least twice the number of bytes +for one character, it often happens that such encoded strings are +also twice as long as RFC 1522/2047 say and it's not dangerous to +support that as well. Documentation in the patch. + + send-charset.patch + +Formerly used for allowing to send mails which are converted to +a differente encoding during sending, but this function is not +fully updated to pine 4.64 and very few people would actually +need it. But it contains two active patches sending mails with +non-ASCII charsets. Documentation in the patch. + + strings-iconv.patch + +Low level functions for handling charset conversion beween +arbitrary charactersets using the iconv POSIX/Single Unix API. + + utf8-mailindx.patch + +UTF-8 aware mail folder message index + + warnings.patch + +Makes the compiler silent on some otherwise correct places + +For any updated information and patches have a look at this page: + +http://www.suse.de/~bk/pine/FAQ.html + +Best Regards, +Bernhard Kaindl --- pine4.64/doc/pine.1 +++ pine4.64/doc/pine.1 @@ -309,7 +309,7 @@ .if n .ta 2.8i .if t .ta 2.1i -/usr/spool/mail/xxxx Default folder for incoming mail. +/var/spool/mail/xxxx Default folder for incoming mail. .br ~/mail Default directory for mail folders. .br @@ -333,13 +333,13 @@ .br /etc/mime.types System-wide file ext. to MIME type mapping .br -/usr/local/lib/pine.info Local pointer to system administrator. +/usr/lib/pine.info Local pointer to system administrator. .br -/usr/local/lib/pine.conf System-wide configuration file. +/etc/pine.conf System-wide configuration file. .br -/usr/local/lib/pine.conf.fixed Non-overridable configuration file. +/etc/pine.conf.fixed Non-overridable configuration file. .br -/tmp/.\\usr\\spool\\mail\\xxxx Per-folder mailbox lock files. +/tmp/.\\var\\spool\\mail\\xxxx Per-folder mailbox lock files. .br ~/.pine-interrupted-mail Message which was interrupted. .br --- pine4.64/imap/src/osdep/unix/Makefile +++ pine4.64/imap/src/osdep/unix/Makefile @@ -83,11 +83,11 @@ LOGINPW=std SIGTYPE=bsd CRXTYPE=std -ACTIVEFILE=/usr/lib/news/active -SPOOLDIR=/usr/spool -MAILSPOOL=$(SPOOLDIR)/mail +ACTIVEFILE=/var/lib/news/active +SPOOLDIR=/var/spool +MAILSPOOL=/var/spool/mail NEWSSPOOL=$(SPOOLDIR)/news -RSHPATH=/usr/ucb/rsh +RSHPATH=/usr/bin/rsh LOCKPGM=/etc/mlock --- pine4.64/imap/src/osdep/unix/mh.c +++ pine4.64/imap/src/osdep/unix/mh.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "mh.h" #include "misc.h" #include "dummy.h" --- pine4.64/imap/src/osdep/unix/mx.c +++ pine4.64/imap/src/osdep/unix/mx.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "mx.h" #include "misc.h" #include "dummy.h" --- pine4.64/imap/src/osdep/unix/news.c +++ pine4.64/imap/src/osdep/unix/news.c @@ -27,6 +27,7 @@ #include "osdep.h" #include #include +#include #include "misc.h" #include "newsrc.h" --- pine4.64/imap/src/osdep/unix/os_slx.c +++ pine4.64/imap/src/osdep/unix/os_slx.c @@ -33,6 +33,7 @@ extern int errno; /* just in case */ #include #include +#include #include "misc.h" --- pine4.64/imap/src/osdep/unix/phile.c +++ pine4.64/imap/src/osdep/unix/phile.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "rfc822.h" #include "misc.h" #include "dummy.h" --- pine4.64/pico/main.c +++ pine4.64/pico/main.c @@ -247,7 +247,7 @@ curwp->w_flag |= WFMODE; /* and force an update */ if(timeoutset) - emlwrite("Checking for new mail every %D seconds", (void *)timeo); + emlwrite("Checking for new mail every %d seconds", (void *)timeo); forwline(0, starton - 1); /* move dot to specified line */ --- pine4.64/pico/makefile.lnx +++ pine4.64/pico/makefile.lnx @@ -36,7 +36,7 @@ RM= rm -f LN= ln -s MAKE= make -OPTIMIZE= # -O +OPTIMIZE= -pipe PROFILE= # -pg DEBUG= -g -DDEBUG --- pine4.64/pico/osdep/os-lnx.h +++ pine4.64/pico/osdep/os-lnx.h @@ -25,6 +25,9 @@ #include #include +/* Added for GLIBC port */ +#include + #define USE_DIRENT #include #include @@ -187,8 +190,10 @@ /* * Make sys_errlist visible */ -/* extern char *sys_errlist[]; */ -/* extern int sys_nerr; */ +#ifndef __GLIBC__ +extern char *sys_errlist[]; +extern int sys_nerr; +#endif #endif /* _PICO_OS_INCLUDED */ --- pine4.64/pico/pilot.c +++ pine4.64/pico/pilot.c @@ -131,7 +131,7 @@ curbp->b_mode |= gmode; /* and set default modes*/ if(timeo) - emlwrite("Checking for new mail every %D seconds", (void *) timeo); + emlwrite("Checking for new mail every %d seconds", (void *) timeo); set_browser_title(PILOT_VERSION); FileBrowse(filedir, NSTRING, filename, NSTRING, NULL, 0, NULL); --- pine4.64/pine/mailcap.c +++ pine4.64/pine/mailcap.c @@ -1,3 +1,4 @@ + #if !defined(lint) && !defined(DOS) static char rcsid[] = "$Id: mailcap.c 13858 2004-11-03 20:11:00Z hubert $"; #endif @@ -993,14 +994,18 @@ * have to put those outside of the single quotes. * (The parm+1000 nonsense is to protect against * malicious mail trying to overlow our buffer.) + * + * TCH - Change 2/8/1999 + * Also quote the ` slash to prevent execution of arbirtrary code */ for(p = parm; *p && p < parm+1000; p++){ - if(*p == '\''){ + if((*p == '\'')||(*p=='`')){ *to++ = '\''; /* closing quote */ *to++ = '\\'; - *to++ = '\''; /* below will be opening quote */ - } - *to++ = *p; + *to++ = *p; /* quoted character */ + *to++ = '\''; /* opening quote */ + } else + *to++ = *p; } fs_give((void **) &parm); @@ -1042,7 +1047,7 @@ */ if(!used_tmp_file && tmp_file) sprintf(to, MC_ADD_TMP, tmp_file); - + return(cpystr(tmp_20k_buf)); } --- pine4.64/pine/makefile.lnx +++ pine4.64/pine/makefile.lnx @@ -45,9 +45,9 @@ RM= rm -f LN= ln -s MAKE= make -OPTIMIZE= # -O2 +OPTIMIZE= -O2 -pipe PROFILE= # -pg -DEBUG= -g -DDEBUG -DDEBUGJOURNAL +DEBUG= -g # -DDEBUG -DDEBUGJOURNAL CCLIENTDIR= ../c-client PICODIR= ../pico --- pine4.64/pine/osdep/os-lnx.h +++ pine4.64/pine/osdep/os-lnx.h @@ -163,10 +163,10 @@ /*----- System-wide config file ----------------------------------------*/ #ifndef SYSTEM_PINERC -#define SYSTEM_PINERC "/usr/local/lib/pine.conf" +#define SYSTEM_PINERC "/etc/pine.conf" #endif #ifndef SYSTEM_PINERC_FIXED -#define SYSTEM_PINERC_FIXED "/usr/local/lib/pine.conf.fixed" +#define SYSTEM_PINERC_FIXED "/etc/pine.conf.fixed" #endif