diff options
author | steve <steve@FreeBSD.org> | 1998-07-13 07:04:33 +0800 |
---|---|---|
committer | steve <steve@FreeBSD.org> | 1998-07-13 07:04:33 +0800 |
commit | f716180a230206ce7b2e9d224911f1ac119e11b8 (patch) | |
tree | 84ac43f64258fca094b4c319138c78e692382ac1 /mail/coolmail/files | |
parent | e3b553fee280bac056847b2a0282404386031fb5 (diff) | |
download | freebsd-ports-gnome-f716180a230206ce7b2e9d224911f1ac119e11b8.tar.gz freebsd-ports-gnome-f716180a230206ce7b2e9d224911f1ac119e11b8.tar.zst freebsd-ports-gnome-f716180a230206ce7b2e9d224911f1ac119e11b8.zip |
Initial import of coolmail version 1.3.
An xbiff-like mail tool with animated 3D graphics.
PR: 7186
Submitted by: Udo Schweigert <Udo.Schweigert@mchp.siemens.de>
Diffstat (limited to 'mail/coolmail/files')
-rw-r--r-- | mail/coolmail/files/patch-aa | 382 |
1 files changed, 382 insertions, 0 deletions
diff --git a/mail/coolmail/files/patch-aa b/mail/coolmail/files/patch-aa new file mode 100644 index 000000000000..85af19d705fa --- /dev/null +++ b/mail/coolmail/files/patch-aa @@ -0,0 +1,382 @@ +diff -rc coolmail-1.3.org/Makefile coolmail-1.3/Makefile +*** coolmail-1.3.org/Makefile Thu Jan 11 18:55:40 1996 +--- coolmail-1.3/Makefile Fri Jul 3 09:02:25 1998 +*************** +*** 22,52 **** + # your linker where to find the libraries it will need, and BINDIR and + # MANDIR specify the places to install the binary executable and manpage + # files for coolmail when you type `make install'. +! CFLAGS = + LINK = $(CC) +! INCLUDES = -I/usr/X11R5/include +! LIB_DIRS = -L/usr/X11R5/lib + BINDIR = /usr/local/bin + MANDIR = /usr/local/man/man1 + + # Comment these out if you can't or don't want to use the digitized audio + # feature. +! AUDIO = -DAUDIO +! AUDIO_MODULE = audio.o + + #### You really don't need to read past this point. #### + + LIBS = $(LIB_DIRS) -lXt -lX11 -lm -lXext +! COPTS = $(CFLAGS) $(AUDIO) + + all: coolmail + # Done. + +! new: +! rm -f *.o coolmail core + + clean: +! rm -f *.o core + + install: + @if [ -w $(BINDIR) ] ; then \ +--- 22,58 ---- + # your linker where to find the libraries it will need, and BINDIR and + # MANDIR specify the places to install the binary executable and manpage + # files for coolmail when you type `make install'. +! CFLAGS = -DNO_CUSERID + LINK = $(CC) +! INCLUDES = -I/usr/X11R6/include +! LIB_DIRS = -L/usr/X11R6/lib + BINDIR = /usr/local/bin + MANDIR = /usr/local/man/man1 + + # Comment these out if you can't or don't want to use the digitized audio + # feature. +! # AUDIO = -DAUDIO +! # AUDIO_MODULE = audio.o +! +! # Comment these out if you don't want Maildir support +! MAILDIR = -DSUPPORT_MAILDIR +! # for debugging: +! #MAILDIR = $(MAILDIR) -DSUPPORT_MAILDIR_DEBUG +! # normally ignores non-regular files in the Maildir; uncomment to change +! #MAILDIR = $(MAILDIR) -DSUPPORT_MAILDIR_STRICTER + + #### You really don't need to read past this point. #### + + LIBS = $(LIB_DIRS) -lXt -lX11 -lm -lXext +! COPTS = $(CFLAGS) $(AUDIO) $(MAILDIR) + + all: coolmail + # Done. + +! new: clean all + + clean: +! rm -f *.o core coolmail + + install: + @if [ -w $(BINDIR) ] ; then \ +diff -rc coolmail-1.3.org/audio.c coolmail-1.3/audio.c +*** coolmail-1.3.org/audio.c Thu Jan 11 18:56:40 1996 +--- coolmail-1.3/audio.c Fri Jul 3 08:47:51 1998 +*************** +*** 128,133 **** +--- 128,134 ---- + INIT_FD; + audiofd = open( "/dev/audio", O_WRONLY | O_NDELAY ); + if (audiofd < 0) { ++ perror("/dev/audio"); + fprintf(stderr, "%s: Problem opening /dev/audio.\n", + "Coolmail"); + END_FD; +diff -rc coolmail-1.3.org/coolmail.c coolmail-1.3/coolmail.c +*** coolmail-1.3.org/coolmail.c Thu Jan 11 18:57:24 1996 +--- coolmail-1.3/coolmail.c Fri Jul 3 09:01:05 1998 +*************** +*** 25,32 **** +--- 25,34 ---- + #include <sys/wait.h> + #include <sys/types.h> + #include <sys/stat.h> ++ #include <dirent.h> + #include <fcntl.h> + ++ + #ifdef AUDIO + #include <string.h> + #endif +*************** +*** 34,41 **** + #include "render1.h" + #include "mailbox.h" + +! #define DEFAULT_MAIL_DIR "/var/spool/mail/" +! #define DEFAULT_COMMAND "xterm -n Elm -e mail\0" + #define DEFAULT_INTERVAL 30 + #define DEFAULT_FRAMES 15 + +--- 36,44 ---- + #include "render1.h" + #include "mailbox.h" + +! #define DEFAULT_MAIL_DIR "/var/mail/" +! +! #define DEFAULT_COMMAND "xterm -n Elm -e elm\0" + #define DEFAULT_INTERVAL 30 + #define DEFAULT_FRAMES 15 + +*************** +*** 96,102 **** +--- 99,107 ---- + int main(int argc, char *argv[]) + { + int reason; ++ #ifndef NO_CUSERID + char username[L_cuserid]; ++ #endif + + /* Quickly scan for the -h option -- if it is present don't do anything + * but print out some help and exit. */ +*************** +*** 104,110 **** + return(0); + + /* Get the username and use it to create a default mailfile name */ +! strcat(mailfile_str, cuserid(username)); + + /* Initialize the renderer */ + rend_init(&argc, argv, (float)150.0); +--- 109,126 ---- + return(0); + + /* Get the username and use it to create a default mailfile name */ +! #ifdef SUPPORT_MAILDIR +! if (getenv("MAILDIR") && strlen(getenv("MAILDIR"))) { +! strcpy(mailfile_str,getenv("MAILDIR")); +! } else if (getenv("MAIL") && strlen(getenv("MAIL"))) { +! strcpy(mailfile_str,getenv("MAIL")); +! } else +! #endif +! #ifndef NO_CUSERID +! strcat(mailfile_str, cuserid(username)); +! #else +! strcat(mailfile_str, getlogin()); +! #endif + + /* Initialize the renderer */ + rend_init(&argc, argv, (float)150.0); +*************** +*** 432,438 **** + printf(" -e command Specifies a command (usually in quotes) which\n"); + printf(" is used to invoke your favorite mail-reading\n"); + printf(" program.\n\n"); +! printf(" -f filename Watch filename, instead of the default mail\n"); + printf(" file, %s<username>.\n\n", DEFAULT_MAIL_DIR); + printf(" -fr n Number of frames to generate for each animation.\n"); + printf(" Set to an appropriate value for your machine's.\n"); +--- 448,454 ---- + printf(" -e command Specifies a command (usually in quotes) which\n"); + printf(" is used to invoke your favorite mail-reading\n"); + printf(" program.\n\n"); +! printf(" -f filename Watch filename/maildir, instead of the default mail\n"); + printf(" file, %s<username>.\n\n", DEFAULT_MAIL_DIR); + printf(" -fr n Number of frames to generate for each animation.\n"); + printf(" Set to an appropriate value for your machine's.\n"); +*************** +*** 626,631 **** +--- 642,680 ---- + + /* Get file modification time */ + ++ ++ /* Maildir notes (aqua@sonoma.net, Sun Jan 18 19:42:27 PST 1998): ++ * ++ * The maildir mail-storage standard is a replacement for the traditional ++ * 'mbox' format, intended to remove problems with file contention, locking, ++ * reduce corruption in the case of a program or system crash, etc, etc. ++ * Fairly detailed description of it can be had as part of the Qmail MTA ++ * documentation, http://www.qmail.org/qmail-manual-html/man5/maildir.html. ++ * ++ * The general gist of the maildir approach is that mail is stored, one ++ # message per file, in a subtree of ~/Maildir. New mail goes in /new, ++ * the "spool" goes in /cur, and /tmp is available to MUAs &c. Mail is ++ * theoretically supposed to be removed from /new immediately by the ++ * MUA, but I've observed that with mutt 0.88, at least, it isn't if ++ * the mailfile was generated by an import script (e.g. mbox2maildir) ++ * rather than the normal delivery agent, presumably due to naming ++ * differences. ++ * ++ * Checking for new mail mostly entails checking the mtime vs. atime of ++ * every file in /new, and the number of messages in /new; if the latter ++ * increases, new mail was delivered -- if not, but the files' atimes ++ * are all later than their mtimes, the MUA read the /new spool. ++ * ++ * The specifications suggest skipping over every .file, but reading all ++ * the others -- I've extended this to include skipping of all non-regular ++ * files, which seemed to make sense -- define SUPPORT_MAILDIR_STRICTER to ++ * override this behavior. ++ * ++ * This process is more resource-intensive than the old scheme of merely ++ * calling stat() for a single file -- it's an O(n) rather than O(1) ++ * operation. ++ * ++ */ + void cool_get_inboxstatus(char *filename, int *anymail, int *unreadmail, + int *newmail) + { +*************** +*** 633,670 **** + off_t newsize; + struct stat st; + int fd; + +- fd = open (filename, O_RDONLY, 0); +- if (fd < 0) +- { +- *anymail = 0; +- *newmail = 0; +- *unreadmail = 0; +- newsize = 0; +- } +- else +- { +- fstat(fd, &st); +- close(fd); +- newsize = st.st_size; +- +- if (newsize > 0) +- *anymail = 1; +- else +- *anymail = 0; +- +- if (st.st_mtime >= st.st_atime && newsize > 0) +- *unreadmail = 1; +- else +- *unreadmail = 0; + +! if (newsize > oldsize && *unreadmail) +! *newmail = 1; +! else +! *newmail = 0; +! } +! +! oldsize = newsize; + } + + /*---------------------------------------------------------------------------*/ +--- 682,800 ---- + off_t newsize; + struct stat st; + int fd; ++ #ifdef SUPPORT_MAILDIR ++ DIR *d; ++ struct dirent *de; ++ char maildir[256],mfn[256]; ++ #endif + + +! #ifdef SUPPORT_MAILDIR_DEBUG +! printf("B anymail=%d, newmail=%d, unreadmail=%d, oldsize=%d, newsize=%d\n", +! *anymail,*newmail,*unreadmail,oldsize,newsize); +! #endif +! #ifdef SUPPORT_MAILDIR +! if (stat(filename,&st)==-1) { +! *anymail = *newmail = *unreadmail = 0; +! newsize = oldsize = 0; +! perror(filename); +! return; +! } +! if (S_ISDIR(st.st_mode)) { +! /* likely a maildir */ +! strcpy(maildir,filename); +! if (maildir[strlen(maildir)-1]!='/') +! strcat(maildir,"/"); +! strcat(maildir,"new"); +! if (stat(maildir,&st)==-1) { +! perror(maildir); +! printf("%s is not a maildir (missing/inaccessible %s)\n",filename,maildir); +! *anymail = *newmail = *unreadmail = 0; +! newsize = oldsize = 0; +! return; +! } +! if (!S_ISDIR(st.st_mode)) { +! printf("%s is not a directory (mode %d)\n",maildir,st.st_mode); +! *anymail = *newmail = *unreadmail = 0; +! newsize = oldsize = 0; +! return; +! } +! d=opendir(maildir); +! newsize=0; +! *unreadmail = 0; +! while ((de=readdir(d))) { +! if (de->d_name[0]=='.') /* dotfiles ignored per the maildir specs */ +! continue; +! strcpy(mfn,maildir); +! if (mfn[strlen(mfn)-1]!='/') +! strcat(mfn,"/"); +! strcat(mfn,de->d_name); +! if (stat(mfn,&st)==-1) { +! perror(mfn); +! continue; +! } +! #ifndef SUPPORT_MAILDIR_STRICTER +! if (S_ISREG(st.st_mode)) +! #endif +! newsize++; +! if (st.st_mtime>=st.st_atime) { +! #ifdef SUPPORT_MAILDIR_DEBUG +! printf("unread: %s mtime = %d, atime = %d\n",de->d_name,st.st_mtime,st.st_atime); +! #endif +! *unreadmail = 1; +! } +! } +! closedir(d); +! if (newsize) { +! *anymail = 1; +! if (newsize>oldsize && *unreadmail) +! *newmail = 1; +! else +! *newmail = 0; +! } else { +! *anymail = *newmail = *unreadmail = 0; +! newsize = 0; +! } +! #ifdef SUPPORT_MAILDIR_DEBUG +! printf("A anymail=%d, newmail=%d, unreadmail=%d, oldsize=%d, newsize=%d\n", +! *anymail,*newmail,*unreadmail,oldsize,newsize); +! #endif +! oldsize=newsize; +! } else { +! #endif /* SUPPORT_MAILDIR */ +! fd = open (filename, O_RDONLY, 0); +! if (fd < 0) +! { +! *anymail = 0; +! *newmail = 0; +! *unreadmail = 0; +! newsize = 0; +! } +! else +! { +! fstat(fd, &st); +! close(fd); +! newsize = st.st_size; +! +! if (newsize > 0) +! *anymail = 1; +! else +! *anymail = 0; +! +! if (st.st_mtime >= st.st_atime && newsize > 0) +! *unreadmail = 1; +! else +! *unreadmail = 0; +! +! if (newsize > oldsize && *unreadmail) +! *newmail = 1; +! else +! *newmail = 0; +! } +! #ifdef SUPPORT_MAILDIR +! } +! #endif +! oldsize = newsize; + } + + /*---------------------------------------------------------------------------*/ |