wmail: Add version 2.0 to repository.

From
http://http.debian.net/debian/pool/main/w/wmail/wmail_2.0.orig.tar.gz
This commit is contained in:
Doug Torrance 2016-11-27 22:51:04 -05:00 committed by Carlos R. Mafra
parent 54714024ef
commit 409aca138d
22 changed files with 5802 additions and 0 deletions

24
wmail/COPYING Normal file
View file

@ -0,0 +1,24 @@
Copyright 2000~2002, Sven Geisenhainer <sveng@informatik.uni-jena.de>.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions, and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

34
wmail/Makefile.in Normal file
View file

@ -0,0 +1,34 @@
# process this file with configure to create a Makefile from it
#
# Makefile for wmail.
# Toplevel Makefile.
# Usage: make ..........: creates the wmail binary.
# make install ..: installs the binary under your default user binary
# directory and the rc-file in your home, respectively.
# make uninstall : removes any installed wmail files.
# make clean ....: cleans the src directory.
@SET_MAKE@
default all target: wmail
wmail:
@cd src; $(MAKE) -f Makefile wmail
install:
@if ! test -f src/wmail; then $(MAKE) wmail; fi
@echo "Installing the binary under @bindir@."
@cp -f src/wmail @bindir@
@echo "Copying .wmailrc to your home directory - you may have a look into"
@echo "this file and change it appropriately to suit your personal needs."
@cp -f wmailrc-sample $(HOME)/.wmailrc
uninstall:
@echo "Removing wmail files from your system."
@rm -f @bindir@/wmail
@rm -f $(HOME)/.wmailrc
@rm -f $(HOME)/.wmail-cksums
clean:
@echo "Cleaning src directory."
@cd src; $(MAKE) -f Makefile clean

358
wmail/README Normal file
View file

@ -0,0 +1,358 @@
Name : wmail
Description : a enhanced Window Maker email flagging docklet
Current version : 2.0
Last updated : SEP 30 2002
Licence : see file COPYING for licencing details
Web/Home : www.informatik.uni-jena.de/~topical/sveng/wmail.html
Author : (c) 2000~2002 Sven Geisenhainer
Contact : sveng@informatik.uni-jena.de
Change Log:
v 2.0
- Autoconf based package configuration support added.
- Support for real X11 fonts when drawing the ticker.
Use the new option "-fn X11_FONT_NAME" or ~/.wmailrc-file statement
"Ticker.X11Font = X11_FONT_NAME" to enable it. If you wish to see latin1
characters not covered by the buildin font you MUST make use of this.
- Removed support of two buildin fonts (one seems enough when native
X11 font rendering is supported...) -> cmdline option "-bf" and
rcfile statement "Ticker.BoldFont" are no longer available
- added a window name when called with the -w option (libdockapp windowing
mode), this workarounds a dockapp library bug and makes wmail work docked
in Gnomes panel bar
- Fixed some reconfiguration memleaks
- Fixed button-keeps-up-when-pressed-and-empty-inbox bug
- Fixed Maildir file-parsing bug
- Fixed wmail-crash on dual-headed displays (Thanx to Michael Hocke!)
- Changed upper M@il symbol a bit ;-)
v 1.9
- Comment support added (by Juergen A. Erhard - thank you!)
- Status field content recognition enhanced: now you can supply the
content of the status field that markes you email as read. This is due
to different behaviour of different mbox readers - pine seems using "ro"
to mark a mail as read. The given value is substring-matched.
v 1.8
- Support for qmails Maildir format added: if you specify a directory
as your inbox then wmail assumes 'Maildir' functionality,
searches for the subdirectories "new" and "cur" and interprets all
files found directly under these directories as text-files containing
one single email message. When in Maildir-mode, checksums and the
file ~/.wmail-cksums are not used.
- Combining of equal sender-names before tickering them is not done
anymore - this hasn't worked if for example wmail shows only unread
emails and there are two emails from the same sender and one of them
is read, the other isn't.
v 1.72
- Now redrawing is done only if there are some changes to be drawn
(previous versions had redrawn the screen fps-times per sec. even if
the inbox was empty...)
v 1.71
- File parsing bug fixed: searching for "From"-directive is now
case-sensitive.
v 1.7
- Support for mail-header-field "Status" added: if this field
is set to "RO" the mail is assumed to be read. Turn this feature on
either by adding "Mail.UseStatusField = Yes" to your ~/.wmailrc-file
or using the new cmd-line option "-sf"
v 1.61
- Minor changes: signal-handling stuff reimplemented
- Included another set of xpms (thanx to delt!); to use it,
change the #includes in wmail.c to point to the xpm_delt dir
v 1.6
- Sender-skipping added: use this by adding some
"Mail.SkipSender = XYZ" to your ~/.wmailrc file. Note that you can
use the known wildcards here (i.e. "Mail.SkipSender = *Foo*" matches
all names containing "Foo")
- Support for execution of a custom command when receiving a new mail
added: either use the new option "-e" or a
"Mail.OnNew.Command = some-cmd" in the rc-file (for example this
makes it possible to play some sound file using the command
"/usr/bin/play some-sound.wav")
v 1.5
- Config-file support (~/.wmailrc), re-configuration of most options
during run-time is possible - a click on the docklets main-area
forces wmail to read its config-file. Note that this can also be
used to do a mailbox update...
- Bolder tickerfont added -> new option "-bf"
- Polling bug fixed (wmail has queried for new mail fps-times per
second...)
- Mailbox made configurable via cmdline -> new cmd-option "-mb"
- Color of inactive (off-switched) symbols made customizable -> new
cmd-option "-oc"
v 1.41
- Minor fixes, debugging-aid macro TRACE made more portable
v 1.4
- Made mails identifiable by a checksum to (hopefully) fix some
wrong behaviour of the recent-mails-only feature introduced with
v1.3 - this is also used to make wmail able to keep the current state
in mind, even after a restart. These checksums are written to the
file ".wmail-cksums" in the users home directory
v 1.3
- wmail is now able to show only recent mails in ticker and counter
(such ones you don't have read/opened yet since startup of wmail)
this is quite nice if you use your mail-file as an inbox storing
loads of mails there -> new cmd-option "-n"
- Solaris port got working (signal-handler bug fixed)
- Image of run-client-button changed
v 1.2
- Message counter now displays up to 3 digits
- Made ticker scroll-refresh customizable (30 fps by default)
-> new cmd-option "-fps"
v 1.1
- Parsing of from-header fixed/improved
- Added windowed mode support (only works with libdockapp v >0.4.0) and
support for a non-shaped window -> new cmd-options "-w" and "-ns"
- Made background color customizable (useful in windowed mode)
-> new cmd-option "-bg"
- Ticker either fullname, short-address-name or total-address
-> new cmd-option "-s"
- Changed pixmaps a bit
v 1.0
- Initial release
Description:
This is wmail - a nifty Window Maker docklet watching your inbox, which is
either a ordinary mbox or a directory conforming to qmails Maildir format.
It provides a nice little GUI displaying some useful pieces of information
about your inbox (as many other nice wm-apps doing nearly the same thing...).
Per default it uses the $MAIL environment-variable to locate the inbox you
are using, other mailing mechanisms like POP or IMAP are not supported - use
a tool like fetchmail to retrieve POP- or IMAP-based mail.
It displays the following:
- a mail-icon in the upper-left if your inbox contains some mails
- a frequently flashing "M@iL" in the upper-right if there are unread mails
- a ticker displaying either complete mail-address, it's name-part or the
full sender's name (without the "-n" option each sender found in the inbox
is tickered, else only the unread ones)
- the number of new and read emails found (or the number of unread messages
if invoked with the "-n" option)
In addition, the lower-right button allowes you to quickly launch your
preferred email user agent (xterm -e mail, mutt, pine, etc.)
wmail is highly customizable, both command-line and configuration-file support
is provided. The following list describes all customizable items,
their associated cmd-line options, config-file statements and default values:
item : X11 display
cmd-line option : -display <string>
rc-file statement: Window.Display = "<string>"
default value : <unset>
item : toggle nonshaped mode
cmd-line option : -ns
rc-file statement: Window.NonShaped = Yes|No
default value : No
item : button command to execute
cmd-line option : -c <string>
rc-file statement: Window.Button.Command = "<string>"
default value : "xterm -e mail"
item : your mailbox (file => mbox, directory => Maildir)
cmd-line option : -mb <string>
rc-file statement: Mail.MailBox = "<string>"
default value : <unset, $MAIL is used>
item : file to store the checksums used to identify mbox mails
cmd-line option : <no option>
rc-file statement: Mail.ChecksumFile = "<string>"
default value : "~/.wmail-cksums"
item : ticker (and count) only unread mails
cmd-line option : -n
rc-file statement: Mail.ShowOnlyNew = Yes|No
default value : No
item : mail check intervall (sec)
cmd-line option : -i <num>
rc-file statement: Mail.CheckIntervall = <num>
default value : 1
item : consider status-field (not used when in maildir mode)
cmd-line option : -sf
rc-file statement: Mail.UseStatusField = Yes|No
default value : No
item : custom status field content used for read mails
cmd-line option : -rs
rc-file statement: Mail.ReadStatus = "<string>"
default value : "O"
item : show nick names in the ticker (all before the @)
cmd-line option : -s
rc-file statement: Ticker.Mode = NickName
default value : Address
item : show family names in the ticker (if available)
cmd-line option : -f
rc-file statement: Ticker.Mode = FamilyName
default value : Address
item : how many ticker frames per sec
cmd-line option : -fps <num>
rc-file statement: Ticker.Frames = <num>
default value : 30
item : use a real X11 font when drawing the ticker
cmd-line option : -fn <string>
rc-file statement: Ticker.X11Font = "<string>"
default value : <unset, a buildin font is used>
item : command to execute when new mail has arrived
cmd-line option : -e <string>
rc-file statement: Mail.OnNew.Command = "<string>"
default value : <unset>
item : sender-names to skip (don't ticker and count them)
cmd-line option : <no option>
rc-file statement: Mail.SkipSender = "<string>"
default value : <unset>
item : color for upper symbols (envelope and MAiL)
cmd-line option : -sc <string>
rc-file statement: Colors.Symbols = "<string>"
default value : "#20B2AA"
item : ticker font color
cmd-line option : -fc <string>
rc-file statement: Colors.Font = "<string>"
default value : "#D3D3D3"
item : backlight color (dockapp background)
cmd-line option : -bc <string>
rc-file statement: Colors.Backlight = "<string>"
default value : "#282828"
item : color of inactive symbols
cmd-line option : -oc <string>
rc-file statement: Colors.OffLight = "<string>"
default value : "#282828"
item : outer frame color (used in nonshaped window mode)
cmd-line option : -bg <color>
rc-file statement: Colors.NonShapedFrame = "<string>"
default value : <unset, this color is translucent>
libdockapp provides the following additional cmd-line options:
windowed-mode : -w
show help and exit : -h
show version and exit: -v
Known bugs:
- Solaris: sometimes wmail gets terminated by Xlib displaying the message:
XIO: fatal IO error 0 (Error 0) on X server ":0.0"
after XXX requests (YYY known processed) with 0 events remaining.
I do not have any ideas on how to fix this ... :-( --> PLEASE HELP!!!
- "From" header field folding (see RFC822) is not supported
- Reconfiguration during run-time results in a complete state-lost -> all
email in your mbox is assumed to be unread again
Please keep in mind this code is free and comes with absolutly no warranty
(see file COPYING included in the package) - but if you think something goes
wrong, please let me know!
What is still missing (and when it will be done :)
- Pop3/Imap support (never - use fetchmail)
- Character encoding in ticker - at least latin1 (currently in progress)
- Multiple mailslots (never)
- Displaying/tickering of other email header fields (hmm, i don't know...)
- Your needs/ideas...?
Requirements:
This application needs a running X window system and libdockapp v0.2 or newer
(0.4.0 required for windowed-mode), that for itself has some requirements
(Xpm support for example). libdockapp comes with Window Maker - if not sure,
see what the configure-script says when running it.
Compile:
Simply follow these steps:
1. Call "./configure", try "./configure --help" for a list of options.
2. Call "make" to build the binary (or gmake if make is't GNU make compliant)
If compiling does not succeed due to missed header files or libraries
you have to make use of configures `--includedir=DIR' and/or `--libdir=DIR'
cmdline options in order to specify paths to those files.
Porting:
This code (without using the new Maildir code and autoconf package setup)
is known to work under:
- Linux >=2.4.10 on x86
- Osf 3.2 on Dec/Alpha
- Sun Solaris 4.0 on Sparc Station 4 and 10
- Sun Solaris 6, 7 and 8 (thanx to Kristian Borum!)
- SunOs 5.7 on Ultra Sparc 5 (thanx to Alessandro!)
...together with Window Maker v0.60.0 or better (or standalone of course) and
libdockapp v0.4.0.
Please let me know if you have ported this to a platform not listed
above to mention it (and your name of cource ;). Some users had
trouble porting wmail to Solaris because the original timer signal handling
has not worked properly. This was caused by different semantics of libc's
signal function and should got fixed since releases >= v1.3.
Install:
Call "make install" or copy the binary found in the src subdirectory by hand.
Make based installation also copies the provided sample rc-file to ~/.wmailrc
but wmail even runs without it.
Keep in mind, libdockapp must be installed properly (i.e. let reside it in
your X11 base library directory or let $LD_LIBRARY_PATH point to the lib).
If you would like to use rc-based configuration, look into the provided
sample-file "wmailrc-sample" and use it as a base for your particular needs
by copying it to ~/.wmailrc (make install has done this automatically).
Note: the name of this rc-file is hard-wired and cannot be customized.
Run:
Try wmail -h to see a list of all available options.
Web/Home:
www.informatik.uni-jena.de/~topical/sveng/wmail.html
Author and maintainer:
Sven Geisenhainer <sveng@informatik.uni-jena.de>
There is also a Debian package available under "http://jerhard.org/files/"
maintained by Juergen A. Erhard <juergen.erhard@gmx.net> - Thank you, Juergen!
Final words:
Thanx to Thomas Kurschel for his suggestions and coding assistance.
Thanx to Juergen A. Erhard for his codings and Debian packaging efforts.
Thanx to many users on the web for their ideas, test- and bug reports.
And many great thanx to all the GNUstep and Window Maker people who've
provided us with such a great user environment!
Hope you will ENJOY!

2721
wmail/configure vendored Executable file

File diff suppressed because it is too large Load diff

66
wmail/configure.in Normal file
View file

@ -0,0 +1,66 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/wmail.c)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_MAKE_SET
dnl Checks for header files.
#AC_PATH_X
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_CHECK_HEADERS(limits.h sys/time.h)
dnl Checks for X installation root directory.
AC_PATH_XTRA
X_LIBRARY_PATH="$x_libraries"
XLIBS="-lX11 $X_EXTRA_LIBS"
XCFLAGS="$X_CFLAGS"
XLFLAGS="$X_LIBS"
if test -n "$includedir"; then
XCFLAGS="$XCFLAGS -I$includedir"
fi
if test -n "$libdir"; then
XLIBS="$XLIBS -L$libdir"
fi
CPPFLAGS_old="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $XCFLAGS"
AC_CHECK_HEADER(dockapp.h,,)
CPPFLAGS="$CPPFLAGS_old"
AC_SUBST(XCFLAGS)
AC_SUBST(XLFLAGS)
AC_SUBST(XLIBS)
AC_SUBST(X_LIBRARY_PATH)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
dnl Checks for library functions.
AC_FUNC_FNMATCH
AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(strdup strstr memcpy)
dnl Checks for libraries.
AC_CHECK_LIB(X11, XCreateGC,,,$XLFLAGS $XLIBS)
AC_CHECK_LIB(dockapp, DAInitialize,,,$XLFLAGS $XLIBS)
dnl Enable Debugging?
AC_ARG_ENABLE(debug,
[ --enable-debug enable debugging ],, enable_debug=no)
if test "$enable_debug" = yes; then
CFLAGS="-Wall -g -DDEBUG"
fi
dnl Use delt's pixmaps instead of the default ones?
AC_ARG_ENABLE(delt_xpms,
[ --enable-delt-xpms enable delt's pixmaps ],, enable_delt_xpms=no)
if test "$enable_delt_xpms" = yes; then
CFLAGS="$CFLAGS -DUSE_DELT_XPMS"
fi
AC_OUTPUT(Makefile src/Makefile)

25
wmail/src/Makefile.in Normal file
View file

@ -0,0 +1,25 @@
# process this file with configure to create a Makefile from it
#
# Makefile for wmail.
# Makes the wmail dockapp binary and cleans the directory, respectively.
LIBS = @LIBS@ @XLFLAGS@ @XLIBS@
CC = @CC@
CFLAGS = @CFLAGS@ @XCFLAGS@
default all target: wmail
wmail: wmail.o common.o config.o
$(CC) $(CFLAGS) $(LIBS) -o $@ $^
wmail.o: wmail.c common.h config.h xpm/main.xpm xpm/symbols.xpm xpm/numbers.xpm xpm/button.xpm xpm/chars.xpm
$(CC) $(CFLAGS) -o $@ -c $<
common.o: common.c common.h
$(CC) $(CFLAGS) -o $@ -c $<
config.o: config.c config.h common.h
$(CC) $(CFLAGS) -o $@ -c $<
clean:
rm -f wmail core *.o *~

88
wmail/src/common.c Normal file
View file

@ -0,0 +1,88 @@
///////////////////////////////////////////////////////////////////////////////
// common.c
// common defines and typedefs, part of wmail
//
// Copyright 2000~2002, Sven Geisenhainer <sveng@informatik.uni-jena.de>.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions, and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions, and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. The name of the author may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include "common.h"
#if defined(DEBUG) || defined(DEBUG2) || defined(_DEBUG)
void TRACE( const char *fmt, ... )
{
va_list args;
va_start( args, fmt );
vfprintf( stderr, fmt, args );
fflush( stderr );
va_end( args );
}
#endif
void ABORT( const char *fmt, ... )
{
va_list args;
va_start( args, fmt );
fprintf( stderr, "wmail error: " );
vfprintf( stderr, fmt, args );
fflush( stderr );
va_end( args );
exit( 1 );
}
void WARNING( const char *fmt, ... )
{
va_list args;
va_start( args, fmt );
fprintf( stderr, "wmail warning: " );
vfprintf( stderr, fmt, args );
fflush( stderr );
va_end( args );
}
char *MakePathName( const char *dir, const char *file )
{
char *fullName;
int len1 = strlen( dir );
int len2 = strlen( file );
if( dir[len1-1] != '/' )
fullName = malloc( len1 + len2 + 2 );
else
fullName = malloc( len1 + len2 + 1 );
memcpy( fullName, dir, len1 );
if( dir[len1-1] != '/' )
fullName[len1++] = '/';
memcpy( fullName + len1, file, len2 + 1 );
return fullName;
}

93
wmail/src/common.h Normal file
View file

@ -0,0 +1,93 @@
///////////////////////////////////////////////////////////////////////////////
// common.h
// common defines and typedefs, part of wmail
//
// Copyright 2000~2002, Sven Geisenhainer <sveng@informatik.uni-jena.de>.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions, and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions, and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. The name of the author may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef _COMMON_H_fdda99de15ce3f21ce7faf607a5b4985_
#define _COMMON_H_fdda99de15ce3f21ce7faf607a5b4985_
///////////////////////////////////////////////////////////////////////////////
// defines
// X display to open
#define WMAIL_DISPLAY ""
// ticker scroll frame rate per seconds
#define WMAIL_FPS 60
// default mail check interval in seconds
#define WMAIL_CHECK_INTERVAL 1
// default client-button command
#define WMAIL_CLIENT_CMD "xterm -e mail"
// filename of the checksum-file
#define WMAIL_CHECKSUM_FILE ".wmail-cksums"
// filename of the config-file
#define WMAIL_RC_FILE ".wmailrc"
#define WMAIL_NAME "wmail"
#define WMAIL_VERSION "wmail v2.0 (C) 2000~2002 Sven Geisenhainer <sveng@informatik.uni-jena.de>"
#define WMAIL_READSTATUS "O"
///////////////////////////////////////////////////////////////////////////////
// typedefs
#if !defined(__cplusplus) && !defined(c_plusplus)
typedef enum {
false = 0,
true = 1
} bool;
#endif
///////////////////////////////////////////////////////////////////////////////
// prototypes
void ABORT( const char *fmt, ... );
void WARNING( const char *fmt, ... );
char *MakePathName( const char *dir, const char *file );
#if defined(DEBUG) || defined(DEBUG2) || defined(_DEBUG)
void TRACE( const char *fmt, ... );
#define ASSERT( EXPR ) ((void)(EXPR ? 0 : ABORT( "%s(%i): Assertion failed: \"%s\"\n", __FILE__, __LINE__, #EXPR )))
#define VERIFY( EXPR ) ASSERT( EXPR )
#else
#define TRACE 0 && // hopefully rejected by the optimizing compiler (as gcc does...)
#define ASSERT(EXPR) ((void)0)
#define VERIFY(EXPR) (EXPR)
#endif
#endif

502
wmail/src/config.c Normal file
View file

@ -0,0 +1,502 @@
///////////////////////////////////////////////////////////////////////////////
// config.c
// configuration file parser, part of wmail
//
// Copyright 2000~2002, Sven Geisenhainer <sveng@informatik.uni-jena.de>.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions, and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions, and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. The name of the author may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include "common.h"
#include "config.h"
///////////////////////////////////////////////////////////////////////////////
// wmailrc file format
//
// # - comment-lines
// Window.Display = "string"
// Window.NonShaped = On|Off
// Window.Button.Command = "string"
// Mail.MailBox = "string"
// Mail.ChecksumFile = "string"
// Mail.CheckIntervall = number
// Mail.ShowOnlyNew = On|Off
// Mail.SkipSender = "string"
// Mail.OnNew.Command = "string"
// Mail.UseStatusField = On|Off
// Ticker.Mode = Address|NickName|FamilyName
// Ticker.Frames = number
// Ticker.BoldFont = On|Off
// Ticker.X11Font = "string"
// Colors.Symbols = "string"
// Colors.Font = "string"
// Colors.Backlight = "string"
// Colors.OffLight = "string"
// Colors.NonShapedFrame = "string"
///////////////////////////////////////////////////////////////////////////////
// typedefs
// list of enum-identifiers and their associated values
typedef struct { char *id; int value; } enumList_t;
///////////////////////////////////////////////////////////////////////////////
// local prototypes
bool ReadString( const char *from, unsigned int line, char **to );
bool ReadEnum( const char *from, unsigned int line, int *to, const enumList_t *enumList );
bool ReadBool( const char *from, unsigned int line, bool *to );
bool ReadInt( const char *from, unsigned int line, int *to );
bool IsWhiteSpace( const char *chr );
const char *SkipWhiteSpaces( const char *str );
// current configuration
config_t config = {
NULL,
NULL, // use $MAIL environment-variable
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
WMAIL_CHECK_INTERVAL,
WMAIL_FPS,
false,
false,
TICKER_ADDRESS,
NULL,
NULL,
false,
NULL,
0,
0
};
// enumeration names for ticker mode
enumList_t tickerEnum[] =
{
{ "address", TICKER_ADDRESS },
{ "familyname", TICKER_FAMILYNAME },
{ "nickname", TICKER_NICKNAME },
{ NULL, 0 }
};
bool Tokenize( const char *line, const char **id, const char **value )
{
int len;
const char *token1, *token2;
if( line != NULL )
{
token1 = SkipWhiteSpaces( line );
if(( len = strlen( token1 )) != 0 && token1[0] != '#' )
{
token2 = strchr( token1, '=' );
if( token2 != NULL )
token2 = SkipWhiteSpaces( token2+1 );
if( !IsWhiteSpace( token2 ))
{
*id = token1;
*value = token2;
return true;
}
}
}
return false;
}
void AddSenderToSkipList( char *sender )
{
int numNames, i;
char **skipName, **newList;
for( skipName = config.skipNames, numNames = 0;
skipName != NULL && *skipName != NULL; skipName++ )
{
if( !strcmp( *skipName, sender ))
return;
numNames++;
}
TRACE( "adding \"%s\" to skip-list of currently %d names\n", sender, numNames );
newList = malloc( sizeof(char *) * (numNames + 2) );
for( i = 0; i < numNames; ++i )
newList[i] = config.skipNames[i];
newList[i] = strdup( sender );
newList[i+1] = NULL;
free( config.skipNames );
config.skipNames = newList;
}
void ResetConfigStrings()
{
if( !( config.givenOptions & CL_MAILBOX )) {
free( config.mailBox );
config.mailBox = NULL;
}
if( !( config.givenOptions & CL_RUNCMD )) {
free( config.runCmd );
config.runCmd = NULL;
}
if( !( config.givenOptions & CL_SYMBOLCOLOR )) {
free( config.symbolColor );
config.symbolColor = NULL;
}
if( !( config.givenOptions & CL_FONTCOLOR )) {
free( config.fontColor );
config.fontColor = NULL;
}
if( !( config.givenOptions & CL_BACKCOLOR )) {
free( config.backColor );
config.backColor = NULL;
}
if( !( config.givenOptions & CL_OFFLIGHTCOLOR )) {
free( config.offlightColor );
config.offlightColor = NULL;
}
if( !( config.givenOptions & CL_BACKGROUNDCOLOR )) {
free( config.backgroundColor );
config.backgroundColor = NULL;
}
if( !( config.givenOptions & CL_CHECKSUMFILENAME )) {
free( config.checksumFileName );
config.checksumFileName = NULL;
}
if( !( config.givenOptions & CL_CMDONMAIL )) {
free( config.cmdOnMail );
config.cmdOnMail = NULL;
}
if( !( config.givenOptions & CL_USEX11FONT )) {
free( config.useX11Font );
config.useX11Font = NULL;
}
}
void PostProcessConfiguration()
{
if( config.display == NULL )
config.display = strdup( WMAIL_DISPLAY );
if( config.runCmd == NULL )
config.runCmd = strdup( WMAIL_CLIENT_CMD );
if( config.mailBox == NULL )
{
char *envMBox = getenv( "MAIL" );
if( envMBox != NULL )
config.mailBox = strdup( envMBox );
}
}
void ReadConfigFile( bool resetConfigStrings )
{
char *usersHome;
// free all config strings and reset their pointers if required
if( resetConfigStrings )
ResetConfigStrings();
if(( usersHome = getenv( "HOME" )) != NULL )
{
char *fileName = MakePathName( usersHome, WMAIL_RC_FILE );
FILE *f = fopen( fileName, "rt" );
if( f != NULL )
{
char buf[1024];
int line = 1;
for( ; !feof( f ); ++line )
{
const char *id, *value;
unsigned int len;
if( fgets( buf, 1024, f ) == NULL )
break;
// first eliminate the trailing whitespaces
for( len = strlen( buf );
len > 0 && IsWhiteSpace(buf+(--len)); )
*(buf+len) = '\0';
if( !Tokenize( buf, &id, &value ))
continue;
if( !strncasecmp( id, "Window.Display", 14 )) {
if( !( config.givenOptions & CL_DISPLAY ))
ReadString( value, line, &config.display );
} else if( !strncasecmp( id, "Window.NonShaped", 16 )) {
if( !( config.givenOptions & CL_NOSHAPE ))
ReadBool( value, line, &config.noshape );
} else if( !strncasecmp( id, "Window.Button.Command", 21 )) {
if( !( config.givenOptions & CL_RUNCMD ))
ReadString( value, line, &config.runCmd );
} else if( !strncasecmp( id, "Mail.MailBox", 12 )) {
if( !( config.givenOptions & CL_MAILBOX ))
ReadString( value, line, &config.mailBox );
} else if( !strncasecmp( id, "Mail.ChecksumFile", 17 )) // no corresponding cmdline option
ReadString( value, line, &config.checksumFileName );
else if( !strncasecmp( id, "Mail.CheckIntervall", 19 )) {
if( !( config.givenOptions & CL_CHECKINTERVAL ))
ReadInt( value, line, &config.checkInterval );
} else if( !strncasecmp( id, "Mail.ShowOnlyNew", 16 )) {
if( !( config.givenOptions & CL_NEWMAILONLY ))
ReadBool( value, line, &config.newMailsOnly );
} else if( !strncasecmp( id, "Ticker.Mode", 11 )) {
if( !( config.givenOptions & CL_TICKERMODE ))
ReadEnum( value, line, (int *)&config.tickerMode, tickerEnum );
} else if( !strncasecmp( id, "Ticker.Frames", 13 )) {
if( !( config.givenOptions & CL_FPS ))
ReadInt( value, line, &config.fps );
} else if( !strncasecmp( id, "Colors.Symbols", 14 )) {
if( !( config.givenOptions & CL_SYMBOLCOLOR ))
ReadString( value, line, &config.symbolColor );
} else if( !strncasecmp( id, "Colors.Font", 11 )) {
if( !( config.givenOptions & CL_FONTCOLOR ))
ReadString( value, line, &config.fontColor );
} else if( !strncasecmp( id, "Colors.Backlight", 16 )) {
if( !( config.givenOptions & CL_BACKCOLOR ))
ReadString( value, line, &config.backColor );
} else if( !strncasecmp( id, "Colors.OffLight", 15 )) {
if( !( config.givenOptions & CL_OFFLIGHTCOLOR ))
ReadString( value, line, &config.offlightColor );
} else if( !strncasecmp( id, "Colors.NonShapedFrame", 21 )) {
if( !( config.givenOptions & CL_NOSHAPE ))
ReadString( value, line, &config.backgroundColor );
} else if( !strncasecmp( id, "Ticker.X11Font", 14 )) {
if( !( config.givenOptions & CL_USEX11FONT ))
ReadString( value, line, &config.useX11Font );
} else if( !strncasecmp( id, "Mail.SkipSender", 15 )) { // no corresponding cmdline options
char *skip;
if( ReadString( value, line, &skip ))
AddSenderToSkipList( skip );
} else if( !strncasecmp( id, "Mail.OnNew.Command", 18 )) {
if( !( config.givenOptions & CL_CMDONMAIL ))
ReadString( value, line, &config.cmdOnMail );
} else if( !strncasecmp( id, "Mail.UseStatusField", 19 )) {
if( !( config.givenOptions & CL_CONSIDERSTATUSFIELD ))
ReadBool( value, line, &config.considerStatusField );
} else if( !strncasecmp( id, "Mail.ReadStatus", 15 )) {
if( !( config.givenOptions & CL_READSTATUS ))
ReadString( value, line, &config.readStatus );
} else
WARNING( "cfg-file(%i): unrecognized: \"%s\"\n", line, buf );
}
fclose( f );
} else {
TRACE( "unable to open config-file \"%s\"\n", fileName );
}
} else {
TRACE( "no $HOME defined - config-file not read\n" );
}
PostProcessConfiguration();
}
bool ReadString( const char *from, unsigned int line, char **to )
{
if( *from++ == '"' ) {
const char *trailingQuote;
for( trailingQuote = strchr( from, '"' );
trailingQuote != NULL;
trailingQuote = strchr( trailingQuote, '"' ))
{
if( *(trailingQuote-1) != '\\' )
break;
++trailingQuote;
}
if( trailingQuote != NULL ) {
// valid string found, copy and translate escape sequences
const char *c;
char *to_c;
// disposing of "to" is up to the caller...
*to = malloc( trailingQuote - from + 1 );
to_c = *to;
for( c = from; c != trailingQuote; ++c ) {
if( *c == '\\' ) {
switch( *(++c) ) {
case 'n': *to_c = '\n'; break;
case 'b': *to_c = '\b'; break;
case '\\': *to_c = '\\'; break;
case 'r': *to_c = '\r'; break;
case 't': *to_c = '\t'; break;
case '"': *to_c = '"'; break;
default: {
int value, i;
for( i = 0, value = 0; i < 3; ++i ) {
if( c+i == NULL || *(c+i) < '0' || *(c+i) > '9' )
break;
value = value * 10 + *(c+i) - '0';
}
if( value == 0 )
WARNING( "cfg-file(%i): '\\0' in string or unknown escape sequence found\n", line );
else {
*to_c = (char)value;
c += i-1;
}
}
}
} else
*to_c = *c;
++to_c;
}
*to_c = '\0';
TRACE( "ReadString read \"%s\"\n", *to );
return true;
}
}
WARNING( "cfg-file(%i): invalid string\n" );
return false;
}
bool ReadBool( const char *from, unsigned int line, bool *to )
{
if( !strcasecmp( from, "on" ) || !strcasecmp( from, "yes" ) || !strcasecmp( from, "true" ))
*to = true;
else if( !strcasecmp( from, "off" ) || !strcasecmp( from, "no" ) || !strcasecmp( from, "false" ))
*to = false;
else {
WARNING( "cfg-file(%i): invalid boolean value: \"%s\"\n", line, from );
return false;
}
TRACE( "ReadBool read \"%s\"\n", *to ? "True" : "False" );
return true;
}
bool ReadInt( const char *from, unsigned int line, int *to )
{
int value = 0;
if( *from == '0' && (*(from+1) == 'x' || *(from+1) == 'X') ) {
for( from += 2; *from != '\0' && !IsWhiteSpace( from ); ++from )
{
if( value > (INT_MAX - 0xf) / 0x10 ) {
WARNING( "cfg-file(%i): hexadecimal-number too large: \">%x\"\n", line, INT_MAX );
return false;
}
if( *from >= '0' && *from <= '9')
value = value * 16 + *from - '0';
else if( *from >= 'a' && *from >= 'f' )
value = value * 16 + *from - 'a' + 10;
else if( *from >= 'A' && *from >= 'F' )
value = value * 16 + *from - 'A' + 10;
else {
WARNING( "cfg-file(%i): invalid hex-digit: \"%c\"\n", line, *from );
return false;
}
}
} else for( ; *from != '\0' && !IsWhiteSpace( from ); ++from ) {
if( value > (INT_MAX - 9) / 10 ) {
WARNING( "cfg-file(%i): decimal-number too large: \">%i\"\n", line, INT_MAX );
return false;
}
if( *from >= '0' && *from <= '9' )
value = value * 10 + *from - '0';
else {
WARNING( "cfg-file(%i): invalid decimal-digit: \"%c\"\n", line, *from );
return false;
}
}
*to = value;
TRACE( "ReadInt read \"%i\"\n", *to );
return true;
}
bool ReadEnum( const char *from, unsigned int line, int *to, const enumList_t *enumList )
{
int index;
for( index = 0; enumList[index].id != NULL; ++index )
if( !strcasecmp( enumList[index].id, from )) {
*to = enumList[index].value;
TRACE( "ReadEnum read \"%i\"\n", *to );
return true;
}
WARNING( "cfg-file(%i): unknown modifier: \"%s\"\n", line, from );
return false;
}
bool IsWhiteSpace( const char *chr )
{
return ( chr != NULL && ( *chr == ' ' || *chr == '\t' || *chr == '\n' )) ? true : false;
}
const char *SkipWhiteSpaces( const char *str )
{
const char *c;
for( c = str; IsWhiteSpace( c ); ++c )
;
return c;
}

104
wmail/src/config.h Normal file
View file

@ -0,0 +1,104 @@
///////////////////////////////////////////////////////////////////////////////
// config.h
// configuration file parser, part of wmail
//
// Copyright 2000~2002, Sven Geisenhainer <sveng@informatik.uni-jena.de>.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions, and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions, and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. The name of the author may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef _CONFIG_H_a6ebf0e22e2f5e21fc1657a8d9975e5c_
#define _CONFIG_H_a6ebf0e22e2f5e21fc1657a8d9975e5c_
typedef enum {
TICKER_ADDRESS = 0,
TICKER_FAMILYNAME = 1,
TICKER_NICKNAME = 2
} ticker_mode_t;
// re-allocated color-names (to enable disposing of them on reconfiguration)
enum {
SYM_COLOR = 1<<0,
FNT_COLOR = 1<<1,
BCK_COLOR = 1<<2,
OFF_COLOR = 1<<3,
BGR_COLOR = 1<<4
};
// flags to mark used cmdline options
enum {
CL_DISPLAY = 1<<0,
CL_MAILBOX = 1<<1,
CL_RUNCMD = 1<<2,
CL_SYMBOLCOLOR = 1<<3,
CL_FONTCOLOR = 1<<4,
CL_BACKCOLOR = 1<<5,
CL_OFFLIGHTCOLOR = 1<<6,
CL_BACKGROUNDCOLOR = 1<<7,
CL_CHECKSUMFILENAME = 1<<8,
CL_CHECKINTERVAL = 1<<9,
CL_FPS = 1<<10,
CL_NEWMAILONLY = 1<<11,
CL_NOSHAPE = 1<<12,
CL_TICKERMODE = 1<<13,
CL_SKIPNAMES = 1<<14,
CL_CMDONMAIL = 1<<15,
CL_CONSIDERSTATUSFIELD = 1<<16,
CL_READSTATUS = 1<<17,
CL_USEX11FONT = 1<<18
};
typedef struct _config_t {
char *display; // display-name
char *mailBox; // mailbox-name
char *runCmd; // command to run when the run-btn was pressed
char *symbolColor; // colorname of the upper-symbols while they are active
char *fontColor; // colorname of the ticker- and counter-digits-font
char *backColor; // colorname of the background
char *offlightColor; // colorname of inactive symbols and counter-digits
char *backgroundColor; // colorname of the frame when in noshape-mode
char *checksumFileName; // name of the checksum-file
int checkInterval; // sesonds between mailbox-checks
int fps; // ticker-frames per second
bool newMailsOnly; // true means only ticker and count new (unread) mail
bool noshape; // true means don't use shape the dockapp
ticker_mode_t tickerMode; // ticker senders adress, family-name or nick-name
char **skipNames; // sender-names that wmail has to skip
char *cmdOnMail; // command to execute when a new mail has received
bool considerStatusField; // use the status-field of the mail-header to determine its read-status
char *readStatus; // status field content that indicates read mails ("O" for netscape, "ro" for pine etc.)
char *useX11Font; // X11 font to render the ticker (NULL -> fallback to buildin font)
// ---------------------- //
int colorsUsed; // used (malloced) color-names
int givenOptions; // bitfield flags all options specified on the cmd-line
} config_t;
// app configuration data (declared in config.c)
extern config_t config;
// config manipulation functions
void ReadConfigFile( bool resetConfigStrings );
#endif

1362
wmail/src/wmail.c Normal file

File diff suppressed because it is too large Load diff

18
wmail/src/xpm/button.xpm Normal file
View file

@ -0,0 +1,18 @@
/* XPM */
static char * button_xpm[] = {
"23 11 4 1",
" c None",
". c #000000",
"+ c #A7A7A7",
"@ c #FFFFFF",
"......................+",
".+++++++++++++++++++++@",
".+++++++++++++++++++++@",
".++@++@++@++@++@++@+++@",
".+++.++.++.++.++.++.++@",
".+++++++++++++++++++++@",
".++@++@++@++@++@++@+++@",
".+++.++.++.++.++.++.++@",
".+++++++++++++++++++++@",
".+++++++++++++++++++++@",
"+@@@@@@@@@@@@@@@@@@@@@@"};

27
wmail/src/xpm/chars.xpm Normal file
View file

@ -0,0 +1,27 @@
/* XPM */
char * chars_xpm[] = {
"1330 21 3 1",
" c None",
". c #282828",
"+ c #D3D3D3",
"..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
"...................+...........+...+......................+++++++.....+++++.....+.......+...............+++.............+.........+.................................................................................................+++.............+.........+++++++.....+++++++++++...........+.....+++++++++++.......+++++.....+++++++++++.....+++++++.......+++++++.............................................................................+++++++.......+++++++...........+.......+++++++++.......+++++++.....+++++++++.....+++++++++++...+++++++++++.....+++++++.....+.........+.....+++++...........+++++++...+.......+.....+.............+.........+...+.........+.....+++++++.....+++++++++.......+++++++.....+++++++++.......+++++++.....+++++++++.....+.........+...+.........+...+.........+...+.........+...+...........+.+++++++++++.....+++++...........+.............+++++...........+...........................+++...................+.....................................+.......................+++...................+...............+++.................+++...+...............+++...............................................................................................................+...................................................................................................+++...........+...........+++.........+.....+.....",
"...................+...........+...+.....................+..+.+..+....+...+.....+......+.+................+............+...........+...............................................................................................+...+...........++........+.......+.............+...........++.....+................+...................+.....+.......+.....+.......+...........................................................................+.......+.....+.......+.........+.+........+......+.....+.......+......+......+......+.............+............+.......+....+.........+.......+.................+.....+......+......+.............++.......++...++........+....+.......+....+........+.....+.......+....+........+.....+.......+........+.........+.........+...+.........+...+.........+...+.........+...+...........+...........+.....+...............+.................+..........+.+..........................+.....................+.....................................+......................+...+..................+.........................................+.................+...............................................................................................................+..................................................................................................+..............+..............+.......+.+....+.....",
"...................+...........+...+........+.....+.....+...+.+...+...+...+.....+.....+...+...............+...........+.............+.........+...+...+.........+...........................................................+.....+.....+.........+.+.......+.........+...........+...........+.+.....+...............+...................+.....+.........+...+.........+.......................................+.....................+...........+.........+...+.........+.......+...+.......+.......+...+.........+.....+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+.....+.......+.............+++.....+++...+.+.......+...+.........+...+.........+...+.........+...+.........+...+.........+.......+.........+.........+...+.........+...+.........+...+.........+...+...........+...........+.....+...............+.................+.........+...+.........................+.....................+.....................................+.....................+.....+.................+.........................................+.................+...............................................................................................................+.................................................................................................+...............+...............+.....+...+...+.....",
"...................+...........+...+........+.....+.....+...+.+.......+...+....+......+...+..............+...........+...............+.........+..+..+..........+...........................................................+....+.......+.......+..+.................+..........+...........+..+.....+..............+...................+......+.........+...+.........+......................................+.......................+....................+...+.........+......+.....+......+.......+...+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+....+........+.............+.++...++.+...+..+......+...+.........+...+.........+...+.........+...+.........+...+.................+.........+.........+...+.........+...+.........+....+.......+.....+.........+...........+......+................+................+........+.....+.........................+....................+.....................................+.....................+.......................+.........................................+.................+...............................................................................................................+.................................................................................................+...............+...............+.....+....+.+......",
"...................+...........+...+......+++++++++++...+...+.+.......+++++...+.......+...+.............+...........+.................+.........+.+.+...........+...........................................................+...+.........+.....+...+.................+.........+...........+...+.....+...+++++.....+...................+.......+.........+...+.........+.........+++...........+++...........+.........................+...................+...+.....+++++.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+...+.........+.............+..++.++..+...+...+.....+...+.........+...+.........+...+.........+...+.........+...+.................+.........+.........+...+.........+...+.........+.....+.....+.......+.......+...........+.......+.................+...............+.......+.......+.........................+.......+++++++.....+...+++++.......+++++++.......+++++...+.....+++++++.........+...........+++++++++...+...+++++.......+++.................+++...+.......+++.......+.........+++++++.......+...+++++.......+++++++.....+...+++++.......+++++...+...+...+++++.......+++++++.......+++++++.....+.........+...+.........+...+.......+.....+.........+...+.........+...+++++++++++.......+...............+...............+.....+.....+.......",
"...................+........................+.....+......+..+.+..............+.........+.+..........................+.................+..........+++............+..........................................................+....+.........+....+....+................+.........+...........+....+.....+..+.....+....+..................+.........+.......+....+........++.........+++...........+++..........+...........................+.................+....+....+....+.....+.......+.....+......+....+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+..+..........+.............+...+++...+...+....+....+...+.........+...+........+....+.........+...+........+.....+................+.........+.........+....+.......+....+.........+......+...+.........+.....+...........+........+.................+...............+........................................................+....+..+.....+.....+.......+.....+.....+..+....+.......+........+..........+........+...+..+.....+........+...................+...+......+..........+.........+...+..+......+..+.....+.....+.......+....+..+.....+.....+.....+..+....+.+.....+.....+................+.........+.........+...+.........+...+.......+......+.......+....+.........+............+.........+..............+..............+....................",
"...................+........................+.....+.......+++++++...........+...........+...........................+.................+...........+.........+++++++++...................+++++++++.........................+.....+.....+++++...+.....+...............+.........+++++.......+.....+.....+++.......+...+...+++++.........+...........+++++++.....+.......+.+.........+++...........+++.........+.........+++++++++++.........+...............+.....+...+.....+.....+++++++++.....+++++++.....+...............+.......+.....+++++.........+++++.......+.....+++++...+++++++++++.......+.................+.....+++...........+.............+....+....+...+.....+...+...+.........+...+++++++++.....+.........+...+++++++++.......+++++++.........+.........+.........+.....+.....+.....+.........+.......+.+...........+...+...........+.........+.................+...............+.........................................................+...+.+.......+...+.........+...+.......+.+...+.........+.....+++++.......+.........+...+.+.......+.......+...................+...+...+++...........+.........+...+...+.....+.+.......+...+.........+...+.+.......+...+.......+.+.....+.......+...+.................+.........+.........+...+.........+...+.......+.......+.....+.....+.........+...........+...........+.............+.............+.....................",
"...................+........................+.....+.........+.+..+.........+...........+.+..........................+.................+..........+++............+.........................................................+.....+....+....+.........+..............+...............+.....+......+...............+...+..+.....+........+..........+.......+.....+.....+..+..................................+...............................+.............+......+...+....++.....+.......+.....+......+....+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+..+..........+.............+.........+...+......+..+...+.........+...+.............+.........+...+..+...................+........+.........+.........+.....+.....+.....+.........+........+.............+.+...........+..........+..................+..............+.........................................................+...++........+...+.............+........++...+.........+.......+.........+.........+...++........+.......+...................+...+..+..............+.........+...+...+.....++........+...+.........+...++........+...+........++.....+.......+....+................+.........+.........+....+.......+....+.......+........+...+......+.........+..........+...........+.............................+....................",
"...................+........................+.....+.........+.+...+.......+...........+...+...+.....................+.................+.........+.+.+...........+.........................................................+.....+++++.....+.........+.............+.................+...+++++++++++.............+...+.+.......+.......+.........+.........+.....+++++...+.................................+.................................+...........+.......+...+...+.+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+...+.........+.............+.........+...+.......+.+...+.........+...+.............+.........+...+...+...................+.......+.........+.........+.....+.....+.....+.........+.......+.+.............+...........+...........+...................+.............+.................................................+++++++++...+.........+...+.............+.........+...+++++++++++.......+.........+.........+...+.........+.......+...................+...+.+...............+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+.......+.....+++++++.........+.........+.........+.....+.....+.....+...+...+.........+.+.......+.........+.........+...........+...............................+...................",
"...................+........................+.....+.........+.+...+......+...........+.....+.+......................+.................+........+..+..+..........+........................................................+......+.........+.........+............+..................+...........+...............+...++........+......+..........+.........+.............+..................................+...............................+............+.......+...+..+..+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+....+........+.............+.........+...+........++...+.........+...+.............+.........+...+....+..................+.......+.........+.........+.....+.....+.....+....+....+......+...+............+..........+............+...................+.............+................................................+........+...+.........+...+.............+.........+...+.................+..........+.......+....+.........+.......+...................+...++................+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+....................+........+.........+.........+.....+.....+.....+...+...+..........+........+.........+........+.............+.............................+....................",
"...................+........................+.....+.........+.+...+.....+...+++++...+.......+.......................+.................+.......+...+...+.........+.............+++.......................................+.......+.........+.........+...........+...................+...........+...............+...+.........+.....+...........+.........+.............+.........+++...........+++.........+.........+++++++++++.........+.............+.......+...+++...+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+.....+.......+.............+.........+...+.........+...+.........+...+.............+.........+...+.....+.................+.......+.........+.........+.....+.....+.....+....+....+.....+.....+...........+.........+.............+...................+.............+...............................................+.........+...+.........+...+.............+.........+...+.................+...........+++++++.....+.........+.......+...................+...+.+...............+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+.....................+.......+.........+.........+.....+.....+.....+...+...+.........+.+.......+.........+.......+...............+.............+.............+.....................",
"............................................+.....+.........+.+...+....+....+...+...+......+.+.......................+...............+........................................+++.......................................+........+.......+..........+..........+....................+...........+...............+...+.........+.....+...........+.........+............+..........+++...........+++..........+...........................+......................+...............+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+......+......+.............+.........+...+.........+...+.........+...+.............+.........+...+......+................+.......+.........+.........+......+...+......+...+.+...+....+.......+..........+........+..............+....................+............+...............................................+.........+...++........+...+.............+........++...+.................+..........+............+.........+.......+...................+...+..+..............+.........+...+...+.....+.........+...+.........+...++........+...+........++.....+.....................+.......+.........+........++......+...+......+...+...+........+...+......+........++......+...............+..............+..............+....................",
"..........................................+++++++++++...+...+.+...+...+.....+...+...+.....+...+.......................+.............+.........................................+++.........................+++...........+.........+.....+...........+.........+...........+.........+...........+.....+.........+...+.........+.....+...........+.........+...........+...........+++...........+++...........+.........................+.......................+...............+.......+.....+.......+...+.........+.....+.......+.....+.............+...........+.........+...+.........+.......+.........+.......+.....+.......+.....+.............+.........+...+.........+...+.........+...+.............+...+.....+...+.......+.....+.........+.......+.........+.........+.......+.+.......+...+.+...+...+.........+.........+.......+...............+.....................+...........+...............................................+.......+++...+.+.......+...+.........+...+.......+.+...+.........+.......+.........+.............+.........+.......+...................+...+...+++...........+.........+...+...+.....+.........+...+.........+...+.+.......+...+.......+.+.....+...........+.........+.......+.....+...+.......+.+.......+.+.......+...+...+.......+.....+.....+.......+.+.....+...............+...............+...............+...................",
"............................................+.....+......+..+.+..+....+.....+...+....+...+....+........................+...........+............................................+.........................+++..........+...........+...+............+........+.............+.......+............+......+.......+.....+.......+......+............+.......+...........+............................+............+.......................+.........................+..............+.......+.....+......+.....+.......+......+......+......+.............+............+.......+....+.........+.......+..........+.....+......+........+....+.............+.........+...+.........+....+.......+....+..............+...+...+....+........+.....+.......+........+..........+.......+........+.+........+.+...+.+....+.........+.........+.......+...............+.....................+...........+................................................+.....+..+...+..+.....+.....+.......+.....+.....+..+....+.......+........+..........+............+.........+.......+...................+...+......+..........+.........+.......+.....+.........+....+.......+....+..+.....+.....+.....+..+.....+............+.......+.........+...+.....+.....+..+.......+.+........+.+.+.+.......+.......+.....+.....+..+....+................+...............+...............+...................",
"...................+........................+.....+.......+++++++.....+.....+++++.....+++.....+.........................+.........+.............................................+.........................+++.........+.............+++.........+++++++++...+++++++++++.....+++++++.............+.......+++++++.......+++++++.......+.............+++++++.......+++++.............................+.............+.....................+.................+.........+++++++.......+.......+...+++++++++.......+++++++.....+++++++++.....+++++++++++.....+.............+++++++.....+.........+.....+++++.........+++++.......+.........+...+++++++++++...+.........+...+.........+.....+++++++.....+...............+++++++.....+.........+.....+++++++.........+...........+++++++.........+++.........+.....+.....+.........+.........+.......+++++++++++.....+++++.................+.......+++++...................+++++++++++...................+++++...+...+...+++++.......+++++++.......+++++...+.....+++++++.........+...........+++++++.....+.........+...+++++++++.......+.......+...+.......+++...+++++++++.....+.......+.....+.........+.....+++++++.....+...+++++.......+++++...+.....+.............+++++++...........+++.......+++++...+.......+++.........+...+.......+.........+.....+++++...+...+++++++++++.......+...............+...............+...................",
"...............................................................................................................................................................................+......................................+..........................................................................................................................................................................+...................................................................................................................................................................................................................................................................................................................+.............................................................................................................................................................................................................................................................................................................+.......+..................................+.......+.........................................................................+.......................+...............................................................................................................+......................+..............+..............+....................",
"..............................................................................................................................................................................+.......................................+.........................................................................................................................................................................+.....................................................................................................................................................................................................................................................................................................................+++.........................................................................................................................................................................................................................................................................................................+.........+.................................+.......+.........................................................................+.......................+.....................................................................................................+.........+.......................+++...........+...........+++.....................",
"...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+.......+...................................+.....+..........................................................................+.......................+......................................................................................................+.......+..........................................................................",
"....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+++++++.....................................+++++...........................................................................+.......................+.......................................................................................................+++++++...........................................................................",
".................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................."};

74
wmail/src/xpm/main.xpm Normal file
View file

@ -0,0 +1,74 @@
/* XPM */
static char * main_xpm[] = {
"64 64 7 1",
" c None",
". c #000000",
"+ c #282828",
"@ c #C0C4C0",
"# c #FFFFFF",
"$ c #A7A7A7",
"* c #000000",
" ",
" ",
" ",
" ",
" ******************************************************* ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++.....+++++++++++++++++@ ",
" *++.............+++..+++++..+++..+++++..+++..++..++++++@ ",
" *++..+++++++++..+++..+++++..++.+++...+++.++..++..++++++@ ",
" *++...+++++++...+++...+++...+..+..+++..++.+++++..++++++@ ",
" *++.+..+++++..+.+++...+++...+.++.++++.+++.+..++..++++++@ ",
" *++.++..+++..++.+++....+....+.+..++++.+++.+..++..++++++@ ",
" *++.++...+...++.+++..+.+.+..+.+.++++..++.++..++..++++++@ ",
" *++.+..+...+..+.+++..+...+..+.+.++++..+..++..++..++++++@ ",
" *++...+++.+++...+++..++.++..++.+....+..+..+..++..++++++@ ",
" *++..+++++++++..+++..++.++..++..++++++++.++..++..++++++@ ",
" *++.............+++..+++++..+++..+++++..+++..++......++@ ",
" *++++++++++++++++++++++++++++++++.....+++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" *++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" ",
" ",
" ",
" *************************** ************************ ",
" *++++++++++++++++++++++++++@ *######################$@ ",
" *++++++++...+++...+++...+++@ *#$$$$$$$$$$$$$$$$$$$$$*@ ",
" *+..++++.+++.+.+++.+.+++.++@ *#$$$$$$$$$$$$$$$$$$$$$*@ ",
" *++..+++.+++.+.+++.+.+++.++@ *#$$#$$#$$#$$#$$#$$#$$$*@ ",
" *+++..++.+++.+.+++.+.+++.++@ *#$$$.$$.$$.$$.$$.$$.$$*@ ",
" *++++..++...+++...+++...+++@ *#$$$$$$$$$$$$$$$$$$$$$*@ ",
" *+++..++.+++.+.+++.+.+++.++@ *#$$#$$#$$#$$#$$#$$#$$$*@ ",
" *++..+++.+++.+.+++.+.+++.++@ *#$$$.$$.$$.$$.$$.$$.$$*@ ",
" *+..++++.+++.+.+++.+.+++.++@ *#$$$$$$$$$$$$$$$$$$$$$*@ ",
" *++++++++...+++...+++...+++@ *#$$$$$$$$$$$$$$$$$$$$$*@ ",
" *++++++++++++++++++++++++++@ *$**********************@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ ",
" ",
" ",
" ",
" "};

16
wmail/src/xpm/numbers.xpm Normal file
View file

@ -0,0 +1,16 @@
/* XPM */
static char * numbers_xpm[] = {
"55 9 4 1",
" c None",
". c #282828",
"+ c #D3D3D3",
"@ c #000000",
".+++..@@@..+++..+++..@@@..+++..+++..+++..+++..+++......",
"+...+@...+@...+@...++...++...@+...@@...++...++...+++...",
"+...+@...+@...+@...++...++...@+...@@...++...++...+.++..",
"+...+@...+@...+@...++...++...@+...@@...++...++...+..++.",
".@@@..@@@..+++..+++..+++..+++..+++..@@@..+++..+++....++",
"+...+@...++...@@...+@...+@...++...+@...++...+@...+..++.",
"+...+@...++...@@...+@...+@...++...+@...++...+@...+.++..",
"+...+@...++...@@...+@...+@...++...+@...++...+@...+++...",
".+++..@@@..+++..+++..@@@..+++..+++..@@@..+++..+++......"};

18
wmail/src/xpm/symbols.xpm Normal file
View file

@ -0,0 +1,18 @@
/* XPM */
static char * symbols_xpm[] = {
"50 12 3 1",
" c None",
". c #20B2AA",
"+ c #282828",
"++++++++++++++++++++++++++++++.....+++++++++++++++",
".............+++..+++++..+++..+++++..+++..++..++++",
"..+++++++++..+++..+++++..++.+++...+++.++..++..++++",
"...+++++++...+++...+++...+..+..+++..++.+++++..++++",
".+..+++++..+.+++...+++...+.++.++++.+++.+..++..++++",
".++..+++..++.+++....+....+.+..++++.+++.+..++..++++",
".++...+...++.+++..+.+.+..+.+.++++..++.++..++..++++",
".+..+...+..+.+++..+...+..+.+.++++..+..++..++..++++",
"...+++.+++...+++..++.++..++.+....+..+..+..++..++++",
"..+++++++++..+++..++.++..++..++++++++.++..++..++++",
".............+++..+++++..+++..+++++..+++..++......",
"++++++++++++++++++++++++++++++.....+++++++++++++++"};

View file

@ -0,0 +1,18 @@
/* XPM */
static char * button_xpm[] = {
"23 11 4 1",
" c None",
". c #000000",
"+ c #A7A7A7",
"@ c #FFFFFF",
"......................+",
".+++++++++++++++++++++@",
".+++++++++++++++++++.+@",
".+...+++++++++++++++.+@",
".+.++.++++++++++++++.+@",
".+.++.++..+++...++...+@",
".+...++.+..+.++.+.++.+@",
".+.++.+..+++.++.+.++.+@",
".+.++.++...++...++...+@",
".+++++++++++++++++++++@",
"+@@@@@@@@@@@@@@@@@@@@@@"};

View file

@ -0,0 +1,27 @@
/* XPM */
char * chars_xpm[] = {
"1330 21 3 1",
" c None",
". c #282828",
"+ c #D3D3D3",
"..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
"...................+...........+...+......................+++++++.....+++++.....+.......+...............+++.............+.........+.................................................................................................+++.............+.........+++++++.....+++++++++++...........+.....+++++++++++.......+++++.....+++++++++++.....+++++++.......+++++++.............................................................................+++++++.......+++++++...........+.......+++++++++.......+++++++.....+++++++++.....+++++++++++...+++++++++++.....+++++++.....+.........+.....+++++...........+++++++...+.......+.....+.............+.........+...+.........+.....+++++++.....+++++++++.......+++++++.....+++++++++.......+++++++.....+++++++++.....+.........+...+.........+...+.........+...+.........+...+...........+.+++++++++++.....+++++...........+.............+++++...........+...........................+++...................+.....................................+.......................+++...................+...............+++.................+++...+...............+++...............................................................................................................+...................................................................................................+++...........+...........+++.........+.....+.....",
"...................+...........+...+.....................+..+.+..+....+...+.....+......+.+................+............+...........+...............................................................................................+...+...........++........+.......+.............+...........++.....+................+...................+.....+.......+.....+.......+...........................................................................+.......+.....+.......+.........+.+........+......+.....+.......+......+......+......+.............+............+.......+....+.........+.......+.................+.....+......+......+.............++.......++...++........+....+.......+....+........+.....+.......+....+........+.....+.......+........+.........+.........+...+.........+...+.........+...+.........+...+...........+...........+.....+...............+.................+..........+.+..........................+.....................+.....................................+......................+...+..................+.........................................+.................+...............................................................................................................+..................................................................................................+..............+..............+.......+.+....+.....",
"...................+...........+...+........+.....+.....+...+.+...+...+...+.....+.....+...+...............+...........+.............+.........+...+...+.........+...........................................................+.....+.....+.........+.+.......+.........+...........+...........+.+.....+...............+...................+.....+.........+...+.........+.......................................+.....................+...........+.........+...+.........+.......+...+.......+.......+...+.........+.....+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+.....+.......+.............+++.....+++...+.+.......+...+.........+...+.........+...+.........+...+.........+...+.........+.......+.........+.........+...+.........+...+.........+...+.........+...+...........+...........+.....+...............+.................+.........+...+.........................+.....................+.....................................+.....................+.....+.................+.........................................+.................+...............................................................................................................+.................................................................................................+...............+...............+.....+...+...+.....",
"...................+...........+...+........+.....+.....+...+.+.......+...+....+......+...+..............+...........+...............+.........+..+..+..........+...........................................................+....+.......+.......+..+.................+..........+...........+..+.....+..............+...................+......+.........+...+.........+......................................+.......................+....................+...+.........+......+.....+......+.......+...+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+....+........+.............+.++...++.+...+..+......+...+.........+...+.........+...+.........+...+.........+...+.................+.........+.........+...+.........+...+.........+....+.......+.....+.........+...........+......+................+................+........+.....+.........................+....................+.....................................+.....................+.......................+.........................................+.................+...............................................................................................................+.................................................................................................+...............+...............+.....+....+.+......",
"...................+...........+...+......+++++++++++...+...+.+.......+++++...+.......+...+.............+...........+.................+.........+.+.+...........+...........................................................+...+.........+.....+...+.................+.........+...........+...+.....+...+++++.....+...................+.......+.........+...+.........+.........+++...........+++...........+.........................+...................+...+.....+++++.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+...+.........+.............+..++.++..+...+...+.....+...+.........+...+.........+...+.........+...+.........+...+.................+.........+.........+...+.........+...+.........+.....+.....+.......+.......+...........+.......+.................+...............+.......+.......+.........................+.......+++++++.....+...+++++.......+++++++.......+++++...+.....+++++++.........+...........+++++++++...+...+++++.......+++.................+++...+.......+++.......+.........+++++++.......+...+++++.......+++++++.....+...+++++.......+++++...+...+...+++++.......+++++++.......+++++++.....+.........+...+.........+...+.......+.....+.........+...+.........+...+++++++++++.......+...............+...............+.....+.....+.......",
"...................+........................+.....+......+..+.+..............+.........+.+..........................+.................+..........+++............+..........................................................+....+.........+....+....+................+.........+...........+....+.....+..+.....+....+..................+.........+.......+....+........++.........+++...........+++..........+...........................+.................+....+....+....+.....+.......+.....+......+....+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+..+..........+.............+...+++...+...+....+....+...+.........+...+........+....+.........+...+........+.....+................+.........+.........+....+.......+....+.........+......+...+.........+.....+...........+........+.................+...............+........................................................+....+..+.....+.....+.......+.....+.....+..+....+.......+........+..........+........+...+..+.....+........+...................+...+......+..........+.........+...+..+......+..+.....+.....+.......+....+..+.....+.....+.....+..+....+.+.....+.....+................+.........+.........+...+.........+...+.......+......+.......+....+.........+............+.........+..............+..............+....................",
"...................+........................+.....+.......+++++++...........+...........+...........................+.................+...........+.........+++++++++...................+++++++++.........................+.....+.....+++++...+.....+...............+.........+++++.......+.....+.....+++.......+...+...+++++.........+...........+++++++.....+.......+.+.........+++...........+++.........+.........+++++++++++.........+...............+.....+...+.....+.....+++++++++.....+++++++.....+...............+.......+.....+++++.........+++++.......+.....+++++...+++++++++++.......+.................+.....+++...........+.............+....+....+...+.....+...+...+.........+...+++++++++.....+.........+...+++++++++.......+++++++.........+.........+.........+.....+.....+.....+.........+.......+.+...........+...+...........+.........+.................+...............+.........................................................+...+.+.......+...+.........+...+.......+.+...+.........+.....+++++.......+.........+...+.+.......+.......+...................+...+...+++...........+.........+...+...+.....+.+.......+...+.........+...+.+.......+...+.......+.+.....+.......+...+.................+.........+.........+...+.........+...+.......+.......+.....+.....+.........+...........+...........+.............+.............+.....................",
"...................+........................+.....+.........+.+..+.........+...........+.+..........................+.................+..........+++............+.........................................................+.....+....+....+.........+..............+...............+.....+......+...............+...+..+.....+........+..........+.......+.....+.....+..+..................................+...............................+.............+......+...+....++.....+.......+.....+......+....+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+..+..........+.............+.........+...+......+..+...+.........+...+.............+.........+...+..+...................+........+.........+.........+.....+.....+.....+.........+........+.............+.+...........+..........+..................+..............+.........................................................+...++........+...+.............+........++...+.........+.......+.........+.........+...++........+.......+...................+...+..+..............+.........+...+...+.....++........+...+.........+...++........+...+........++.....+.......+....+................+.........+.........+....+.......+....+.......+........+...+......+.........+..........+...........+.............................+....................",
"...................+........................+.....+.........+.+...+.......+...........+...+...+.....................+.................+.........+.+.+...........+.........................................................+.....+++++.....+.........+.............+.................+...+++++++++++.............+...+.+.......+.......+.........+.........+.....+++++...+.................................+.................................+...........+.......+...+...+.+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+...+.........+.............+.........+...+.......+.+...+.........+...+.............+.........+...+...+...................+.......+.........+.........+.....+.....+.....+.........+.......+.+.............+...........+...........+...................+.............+.................................................+++++++++...+.........+...+.............+.........+...+++++++++++.......+.........+.........+...+.........+.......+...................+...+.+...............+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+.......+.....+++++++.........+.........+.........+.....+.....+.....+...+...+.........+.+.......+.........+.........+...........+...............................+...................",
"...................+........................+.....+.........+.+...+......+...........+.....+.+......................+.................+........+..+..+..........+........................................................+......+.........+.........+............+..................+...........+...............+...++........+......+..........+.........+.............+..................................+...............................+............+.......+...+..+..+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+....+........+.............+.........+...+........++...+.........+...+.............+.........+...+....+..................+.......+.........+.........+.....+.....+.....+....+....+......+...+............+..........+............+...................+.............+................................................+........+...+.........+...+.............+.........+...+.................+..........+.......+....+.........+.......+...................+...++................+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+....................+........+.........+.........+.....+.....+.....+...+...+..........+........+.........+........+.............+.............................+....................",
"...................+........................+.....+.........+.+...+.....+...+++++...+.......+.......................+.................+.......+...+...+.........+.............+++.......................................+.......+.........+.........+...........+...................+...........+...............+...+.........+.....+...........+.........+.............+.........+++...........+++.........+.........+++++++++++.........+.............+.......+...+++...+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+.....+.......+.............+.........+...+.........+...+.........+...+.............+.........+...+.....+.................+.......+.........+.........+.....+.....+.....+....+....+.....+.....+...........+.........+.............+...................+.............+...............................................+.........+...+.........+...+.............+.........+...+.................+...........+++++++.....+.........+.......+...................+...+.+...............+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+.....................+.......+.........+.........+.....+.....+.....+...+...+.........+.+.......+.........+.......+...............+.............+.............+.....................",
"............................................+.....+.........+.+...+....+....+...+...+......+.+.......................+...............+........................................+++.......................................+........+.......+..........+..........+....................+...........+...............+...+.........+.....+...........+.........+............+..........+++...........+++..........+...........................+......................+...............+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+......+......+.............+.........+...+.........+...+.........+...+.............+.........+...+......+................+.......+.........+.........+......+...+......+...+.+...+....+.......+..........+........+..............+....................+............+...............................................+.........+...++........+...+.............+........++...+.................+..........+............+.........+.......+...................+...+..+..............+.........+...+...+.....+.........+...+.........+...++........+...+........++.....+.....................+.......+.........+........++......+...+......+...+...+........+...+......+........++......+...............+..............+..............+....................",
"..........................................+++++++++++...+...+.+...+...+.....+...+...+.....+...+.......................+.............+.........................................+++.........................+++...........+.........+.....+...........+.........+...........+.........+...........+.....+.........+...+.........+.....+...........+.........+...........+...........+++...........+++...........+.........................+.......................+...............+.......+.....+.......+...+.........+.....+.......+.....+.............+...........+.........+...+.........+.......+.........+.......+.....+.......+.....+.............+.........+...+.........+...+.........+...+.............+...+.....+...+.......+.....+.........+.......+.........+.........+.......+.+.......+...+.+...+...+.........+.........+.......+...............+.....................+...........+...............................................+.......+++...+.+.......+...+.........+...+.......+.+...+.........+.......+.........+.............+.........+.......+...................+...+...+++...........+.........+...+...+.....+.........+...+.........+...+.+.......+...+.......+.+.....+...........+.........+.......+.....+...+.......+.+.......+.+.......+...+...+.......+.....+.....+.......+.+.....+...............+...............+...............+...................",
"............................................+.....+......+..+.+..+....+.....+...+....+...+....+........................+...........+............................................+.........................+++..........+...........+...+............+........+.............+.......+............+......+.......+.....+.......+......+............+.......+...........+............................+............+.......................+.........................+..............+.......+.....+......+.....+.......+......+......+......+.............+............+.......+....+.........+.......+..........+.....+......+........+....+.............+.........+...+.........+....+.......+....+..............+...+...+....+........+.....+.......+........+..........+.......+........+.+........+.+...+.+....+.........+.........+.......+...............+.....................+...........+................................................+.....+..+...+..+.....+.....+.......+.....+.....+..+....+.......+........+..........+............+.........+.......+...................+...+......+..........+.........+.......+.....+.........+....+.......+....+..+.....+.....+.....+..+.....+............+.......+.........+...+.....+.....+..+.......+.+........+.+.+.+.......+.......+.....+.....+..+....+................+...............+...............+...................",
"...................+........................+.....+.......+++++++.....+.....+++++.....+++.....+.........................+.........+.............................................+.........................+++.........+.............+++.........+++++++++...+++++++++++.....+++++++.............+.......+++++++.......+++++++.......+.............+++++++.......+++++.............................+.............+.....................+.................+.........+++++++.......+.......+...+++++++++.......+++++++.....+++++++++.....+++++++++++.....+.............+++++++.....+.........+.....+++++.........+++++.......+.........+...+++++++++++...+.........+...+.........+.....+++++++.....+...............+++++++.....+.........+.....+++++++.........+...........+++++++.........+++.........+.....+.....+.........+.........+.......+++++++++++.....+++++.................+.......+++++...................+++++++++++...................+++++...+...+...+++++.......+++++++.......+++++...+.....+++++++.........+...........+++++++.....+.........+...+++++++++.......+.......+...+.......+++...+++++++++.....+.......+.....+.........+.....+++++++.....+...+++++.......+++++...+.....+.............+++++++...........+++.......+++++...+.......+++.........+...+.......+.........+.....+++++...+...+++++++++++.......+...............+...............+...................",
"...............................................................................................................................................................................+......................................+..........................................................................................................................................................................+...................................................................................................................................................................................................................................................................................................................+.............................................................................................................................................................................................................................................................................................................+.......+..................................+.......+.........................................................................+.......................+...............................................................................................................+......................+..............+..............+....................",
"..............................................................................................................................................................................+.......................................+.........................................................................................................................................................................+.....................................................................................................................................................................................................................................................................................................................+++.........................................................................................................................................................................................................................................................................................................+.........+.................................+.......+.........................................................................+.......................+.....................................................................................................+.........+.......................+++...........+...........+++.....................",
"...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+.......+...................................+.....+..........................................................................+.......................+......................................................................................................+.......+..........................................................................",
"....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+++++++.....................................+++++...........................................................................+.......................+.......................................................................................................+++++++...........................................................................",
".................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................."};

View file

@ -0,0 +1,73 @@
/* XPM */
static char * main_xpm[] = {
"64 64 6 1",
" c None",
". c #000000",
"+ c #282828",
"@ c #C0C4C0",
"# c #FFFFFF",
"$ c #A7A7A7",
" ",
" ",
" ",
" ",
" ....................................................... ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++.............+++++++++++++++++++++++++++++++++++++++@ ",
" .++..+++++++++..+++.......+++......+++....++..+++++++++@ ",
" .++...+++++++...+++..+..+..++..+++..+++..+++..+++++++++@ ",
" .++.+..+++++..+.+++..+..+..++..+++..+++..+++..+++++++++@ ",
" .++.++..+++..++.+++..+..+..++..+++..+++..+++..+++++++++@ ",
" .++.++...+...++.+++..+..+..++.......+++..+++..+++++++++@ ",
" .++.+..+...+..+.+++..++++..++..+++..+++..+++..+++++++++@ ",
" .++...+++.+++...+++..++++..++..+++..+++..+++..+++++++++@ ",
" .++..+++++++++..+++..++++..++..+++..++....++......+++++@ ",
" .++.............+++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" ",
" ",
" ",
" ........................... ........................ ",
" .++++++++++++++++++++++++++@ .######################$@ ",
" .++++++++...+++...+++...+++@ .#$$$$$$$$$$$$$$$$$$$$$.@ ",
" .+..++++.+++.+.+++.+.+++.++@ .#$$$$$$$$$$$$$$$$$$$+$.@ ",
" .++..+++.+++.+.+++.+.+++.++@ .#$+++$$$$$$$$$$$$$$$+$.@ ",
" .+++..++.+++.+.+++.+.+++.++@ .#$+$$+$$$$$$$$$$$$$$+$.@ ",
" .++++..++...+++...+++...+++@ .#$+$$+$$++$$$+++$$+++$.@ ",
" .+++..++.+++.+.+++.+.+++.++@ .#$+++$$+$++$+$$+$+$$+$.@ ",
" .++..+++.+++.+.+++.+.+++.++@ .#$+$$+$++$$$+$$+$+$$+$.@ ",
" .+..++++.+++.+.+++.+.+++.++@ .#$+$$+$$+++$$+++$$+++$.@ ",
" .++++++++...+++...+++...+++@ .#$$$$$$$$$$$$$$$$$$$$$.@ ",
" .++++++++++++++++++++++++++@ .$......................@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ ",
" ",
" ",
" ",
" "};

View file

@ -0,0 +1,16 @@
/* XPM */
static char * numbers_xpm[] = {
"55 9 4 1",
" c None",
". c #282828",
"+ c #D3D3D3",
"@ c #000000",
".+++..@@@..+++..+++..@@@..+++..+++..+++..+++..+++......",
"+...+@...+@...+@...++...++...@+...@@...++...++...+++...",
"+...+@...+@...+@...++...++...@+...@@...++...++...+.++..",
"+...+@...+@...+@...++...++...@+...@@...++...++...+..++.",
".@@@..@@@..+++..+++..+++..+++..+++..@@@..+++..+++....++",
"+...+@...++...@@...+@...+@...++...+@...++...+@...+..++.",
"+...+@...++...@@...+@...+@...++...+@...++...+@...+.++..",
"+...+@...++...@@...+@...+@...++...+@...++...+@...+++...",
".+++..@@@..+++..+++..@@@..+++..+++..@@@..+++..+++......"};

View file

@ -0,0 +1,18 @@
/* XPM */
static char * symbols_xpm[] = {
"51 12 3 1",
" c None",
". c #20B2AA",
"+ c #282828",
"+++++++++++++++++++++++++++++++++++++++++++++++++++",
".............++++++++++++++++++++++++++++++++++++++",
"..+++++++++..+++.......+++......+++....++..++++++++",
"...+++++++...+++..+..+..++..+++..+++..+++..++++++++",
".+..+++++..+.+++..+..+..++..+++..+++..+++..++++++++",
".++..+++..++.+++..+..+..++..+++..+++..+++..++++++++",
".++...+...++.+++..+..+..++.......+++..+++..++++++++",
".+..+...+..+.+++..++++..++..+++..+++..+++..++++++++",
"...+++.+++...+++..++++..++..+++..+++..+++..++++++++",
"..+++++++++..+++..++++..++..+++..++....++......++++",
".............++++++++++++++++++++++++++++++++++++++",
"+++++++++++++++++++++++++++++++++++++++++++++++++++"};

120
wmail/wmailrc-sample Normal file
View file

@ -0,0 +1,120 @@
#-*-shell-script-*-############################################################
#
# .wmailrc - wmail v2.0 configuration file
# note: cmd-line options always overide the settings in this file unless you
# force runtime reconfiguration by clicking on the docklets display area
#
# Format:
# identifier '=' value
# - identifiers are not case-sensitive
# - each identifier expects a typed value to be assigned with
# - typed value means either "string", boolean-switch (yes,on,true|no,off,false), some enum or int number
# - string values must be enclosed with `"'-characters (quoting)
# - string values supportes escape-sequences like \n,\r,\b,\t and decimal numbers \XXX (except \0)
# - # comments (only at beginning of lines)
# specify X display to open (not re-configurable during run-time)
# string value, default: ""
# Window.Display = "localhost:0.0"
# turn on non-shaped window-mode
# boolean value, default: No
# Window.NonShaped = Yes
# command to execute on button-click
# string value, default: "xterm -e mail"
Window.Button.Command = "wterm -fg white -bg black -T Pine -e pine &"
# specify your mailbox (if not, the $MAIL evironment-variable is used)
# string value, default: unset
# Mail.MailBox = "/var/spool/mail/YOUR_LOGIN"
# what file to use to store the cksums which help identify the mails
# string value, default: "" (causes fallback to $HOME/.wmail-cksums)
# Mail.ChecksumFile = "/home/YOUR_LOGIN/.wmail-cksums"
# enable wmail to ticker (and count) only new (unread) mails
# boolean value, default: No
Mail.ShowOnlyNew = Yes
# mail-check interval in seconds
# integer value, default: 1
Mail.CheckIntervall = 5
# setup the ticker-line: allowed values are: Address | NickName | FamilyName
# enum value, default: Address
Ticker.Mode = FamilyName
# set the ticker-frame-rate per seconds
# integer value, default: 60
# Ticker.Frames = 100
# like to use a real X11 font instead of the buildin ?
# Note the buildin font does not support all possible latin1 characters, so
# if you would like to see them you must make use of this.
# Ticker.X11Font = "-*-helvetica-medium-r-*-*-16-*-*-*-*-*-*-*"
# command to execute when receiving new mail (for example "/usr/bin/play somefile.wav &")
# string value, default: unset
# Mail.OnNew.Command = "/usr/bin/play /hda1/win98/media/notify.wav &"
# sender-skip-list, use this command multiple times to skip more then one sender-name
# string value, default: unset
Mail.SkipSender = "MAILER-DAEMON"
# force wmail to display and count only those mails who have their Status-field
# not set to RO (old read mail)
# this is useful if you do not remove your mails from the mbox after reading them
# default: Off
# Mail.UseStatusField = On
# supply the content of the status field that markes you email as read
# (The given value is substring-matched)
# default: "O"
# Mail.ReadStatus = "ro"
# color definitions follow: note that you can specify either
# - a X color-name like "Grey", "White", "light green" etc. or
# - a rgb-value using a hex-string like "#RRGGBB"
# color of the upper symbols
# string value, default: "#20B2AA"
# Colors.Symbols = "yellow"
# color of the ticker
# string value, default: "#D3D3D3"
# Colors.Font = "light grey"
# color of the dockapps background
# string value, default: "#282828"
# Colors.Backlight = "dark slate grey"
# color of inactive symbols
# string value, default: "black"
# Colors.OffLight = "#282828"
# color of the outer frame (using it will force non-shaped window mode)
# string value, default: unset
# Colors.NonShapedFrame = "grey"
### some color schemes :)
#############################
# wmcpuload like colors
#
# Colors.Symbols = "#131313"
# Colors.Font = "black"
# Colors.Backlight = "#6e766e"
# Colors.OffLight = "#5e665a"
#############################
# dark blue
#
# Colors.Symbols = "Yellow"
# Colors.Font = "White"
# Colors.Backlight = "DarkBlue"
# Colors.OffLight = "Black"