File coolmail-1.3.dif of Package coolmail
--- Makefile
+++ Makefile 2011-06-22 00:00:00.000000000 +0000
@@ -24,7 +24,7 @@
# files for coolmail when you type `make install'.
CFLAGS =
LINK = $(CC)
-INCLUDES = -I/usr/X11R5/include
+INCLUDES = -I/usr/X11R6/include
LIB_DIRS = -L/usr/X11R6/lib
BINDIR = /usr/local/bin
MANDIR = /usr/local/man/man1
@@ -34,10 +34,17 @@ MANDIR = /usr/local/man/man1
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)
+COPTS = $(CFLAGS) $(AUDIO) $(MAILDIR)
all: coolmail
# Done.
--- audio.c
+++ audio.c 2011-06-22 13:13:21.399926836 +0000
@@ -37,14 +37,19 @@
#include <sys/signal.h> /* for signal() */
#include <stdio.h> /* for printing error messages */
#include <pwd.h> /* for getting username */
+#include <stdio.h> /* for getenv() */
#include <stdlib.h> /* for getenv() */
#include <string.h>
#include <sys/file.h>
#include <sys/fcntl.h>
#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <unistd.h>
#include <errno.h>
+#include <arpa/inet.h>
+
extern int cool_vol;
extern char *sndfile;
@@ -63,8 +68,13 @@ typedef struct {
u_32 channels; /* number of interleaved channels */
} Audio_filehdr;
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD_kernel__)
+
+#if defined(linux)
#include <linux/soundcard.h>
+#else
+#include <sys/soundcard.h>
+#endif
#define DEV_MIXER "/dev/mixer"
#define MAX_VOLUME 100
@@ -101,7 +111,7 @@ void setvolume(int which, unsigned char
#define CLOSE_FD(afd) { if (afd > -1) close(afd); afd = -1; }
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD_kernel__)
#define INIT_FD { audiofd = filefd = mixer_fd = -1; }
#define END_FD { CLOSE_FD(audiofd); CLOSE_FD(filefd); CLOSE_FD(mixer_fd); return; }
#else
@@ -117,7 +127,7 @@ void audio_beep (void)
unsigned char buf[256];
Audio_filehdr *au_hdr;
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD_kernel__)
StereoVolume origVol, volume;
int mixer_fd;
#else
@@ -125,14 +135,18 @@ void audio_beep (void)
int origVol;
#endif
+ /* NOP if requested volume is zero. */
+ if (cool_vol <= 0) return;
+
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;
}
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD_kernel__)
if ( (mixer_fd=open(DEV_MIXER, O_RDWR, 0)) < 0 ) {
fprintf(stderr, "Can't open %s: ", DEV_MIXER);
END_FD;
@@ -185,7 +199,7 @@ void audio_beep (void)
/* Strip the header */
au_hdr = (Audio_filehdr *)buf;
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD_kernel__)
rn = ntohl(au_hdr->hdr_size) - sizeof(Audio_filehdr);
#else
rn = au_hdr->hdr_size - sizeof(Audio_filehdr);
@@ -217,7 +231,7 @@ void audio_beep (void)
usleep(1000);
}
}
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD_kernel__)
CLOSE_FD(audiofd);
if ( ioctl(mixer_fd, MIXER_WRITE(SOUND_MIXER_VOLUME), &origVol) < 0 ) {
--- coolmail.c
+++ coolmail.c 2011-06-22 12:57:51.439926019 +0000
@@ -26,6 +26,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <pwd.h>
#ifdef AUDIO
#include <string.h>
@@ -33,6 +34,7 @@
#include "render1.h"
#include "mailbox.h"
+#include "display_list.h"
#define DEFAULT_MAIL_DIR "/var/spool/mail/"
#define DEFAULT_COMMAND "xterm -n Elm -e mail\0"
@@ -96,7 +98,7 @@ void cool_usage(void);
int main(int argc, char *argv[])
{
int reason;
- char username[L_cuserid];
+ struct passwd *uid;
/* Quickly scan for the -h option -- if it is present don't do anything
* but print out some help and exit. */
@@ -104,7 +106,11 @@ int main(int argc, char *argv[])
return(0);
/* Get the username and use it to create a default mailfile name */
- strcat(mailfile_str, cuserid(username));
+ if (!(uid = getpwuid(geteuid()))) {
+ printf("Couldn't determine your username. Exiting.\n");
+ return 1;
+ }
+ strcat(mailfile_str, uid->pw_name);
/* Initialize the renderer */
rend_init(&argc, argv, (float)150.0);
--- render1.c
+++ render1.c 2011-06-22 12:58:48.100426761 +0000
@@ -13,6 +13,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include <math.h>
#include <assert.h>
--- system/X11/display_list.c
+++ system/X11/display_list.c 2011-06-22 00:00:00.000000000 +0000
@@ -306,9 +306,9 @@ void disp_bell(void)
/* play the soundfile */
audio_beep();
else /* no sound file chosen then use system bell */
- XBell(XtDisplay(main_gfx_w), cool_vol);
+ XBell(XtDisplay(main_gfx_w), (2*cool_vol)-100);
#else
- XBell(XtDisplay(main_gfx_w), 50);
+ XBell(XtDisplay(main_gfx_w), 0);
#endif
}