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:
parent
54714024ef
commit
409aca138d
24
wmail/COPYING
Normal file
24
wmail/COPYING
Normal 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
34
wmail/Makefile.in
Normal 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
358
wmail/README
Normal 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
2721
wmail/configure
vendored
Executable file
File diff suppressed because it is too large
Load diff
66
wmail/configure.in
Normal file
66
wmail/configure.in
Normal 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
25
wmail/src/Makefile.in
Normal 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
88
wmail/src/common.c
Normal 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
93
wmail/src/common.h
Normal 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
502
wmail/src/config.c
Normal 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
104
wmail/src/config.h
Normal 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
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
18
wmail/src/xpm/button.xpm
Normal 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
27
wmail/src/xpm/chars.xpm
Normal 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
74
wmail/src/xpm/main.xpm
Normal 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
16
wmail/src/xpm/numbers.xpm
Normal 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
18
wmail/src/xpm/symbols.xpm
Normal file
|
@ -0,0 +1,18 @@
|
|||
/* XPM */
|
||||
static char * symbols_xpm[] = {
|
||||
"50 12 3 1",
|
||||
" c None",
|
||||
". c #20B2AA",
|
||||
"+ c #282828",
|
||||
"++++++++++++++++++++++++++++++.....+++++++++++++++",
|
||||
".............+++..+++++..+++..+++++..+++..++..++++",
|
||||
"..+++++++++..+++..+++++..++.+++...+++.++..++..++++",
|
||||
"...+++++++...+++...+++...+..+..+++..++.+++++..++++",
|
||||
".+..+++++..+.+++...+++...+.++.++++.+++.+..++..++++",
|
||||
".++..+++..++.+++....+....+.+..++++.+++.+..++..++++",
|
||||
".++...+...++.+++..+.+.+..+.+.++++..++.++..++..++++",
|
||||
".+..+...+..+.+++..+...+..+.+.++++..+..++..++..++++",
|
||||
"...+++.+++...+++..++.++..++.+....+..+..+..++..++++",
|
||||
"..+++++++++..+++..++.++..++..++++++++.++..++..++++",
|
||||
".............+++..+++++..+++..+++++..+++..++......",
|
||||
"++++++++++++++++++++++++++++++.....+++++++++++++++"};
|
18
wmail/src/xpm_delt/button.xpm
Normal file
18
wmail/src/xpm_delt/button.xpm
Normal 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_delt/chars.xpm
Normal file
27
wmail/src/xpm_delt/chars.xpm
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* XPM */
|
||||
char * chars_xpm[] = {
|
||||
"1330 21 3 1",
|
||||
" c None",
|
||||
". c #282828",
|
||||
"+ c #D3D3D3",
|
||||
"..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"...................+...........+...+......................+++++++.....+++++.....+.......+...............+++.............+.........+.................................................................................................+++.............+.........+++++++.....+++++++++++...........+.....+++++++++++.......+++++.....+++++++++++.....+++++++.......+++++++.............................................................................+++++++.......+++++++...........+.......+++++++++.......+++++++.....+++++++++.....+++++++++++...+++++++++++.....+++++++.....+.........+.....+++++...........+++++++...+.......+.....+.............+.........+...+.........+.....+++++++.....+++++++++.......+++++++.....+++++++++.......+++++++.....+++++++++.....+.........+...+.........+...+.........+...+.........+...+...........+.+++++++++++.....+++++...........+.............+++++...........+...........................+++...................+.....................................+.......................+++...................+...............+++.................+++...+...............+++...............................................................................................................+...................................................................................................+++...........+...........+++.........+.....+.....",
|
||||
"...................+...........+...+.....................+..+.+..+....+...+.....+......+.+................+............+...........+...............................................................................................+...+...........++........+.......+.............+...........++.....+................+...................+.....+.......+.....+.......+...........................................................................+.......+.....+.......+.........+.+........+......+.....+.......+......+......+......+.............+............+.......+....+.........+.......+.................+.....+......+......+.............++.......++...++........+....+.......+....+........+.....+.......+....+........+.....+.......+........+.........+.........+...+.........+...+.........+...+.........+...+...........+...........+.....+...............+.................+..........+.+..........................+.....................+.....................................+......................+...+..................+.........................................+.................+...............................................................................................................+..................................................................................................+..............+..............+.......+.+....+.....",
|
||||
"...................+...........+...+........+.....+.....+...+.+...+...+...+.....+.....+...+...............+...........+.............+.........+...+...+.........+...........................................................+.....+.....+.........+.+.......+.........+...........+...........+.+.....+...............+...................+.....+.........+...+.........+.......................................+.....................+...........+.........+...+.........+.......+...+.......+.......+...+.........+.....+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+.....+.......+.............+++.....+++...+.+.......+...+.........+...+.........+...+.........+...+.........+...+.........+.......+.........+.........+...+.........+...+.........+...+.........+...+...........+...........+.....+...............+.................+.........+...+.........................+.....................+.....................................+.....................+.....+.................+.........................................+.................+...............................................................................................................+.................................................................................................+...............+...............+.....+...+...+.....",
|
||||
"...................+...........+...+........+.....+.....+...+.+.......+...+....+......+...+..............+...........+...............+.........+..+..+..........+...........................................................+....+.......+.......+..+.................+..........+...........+..+.....+..............+...................+......+.........+...+.........+......................................+.......................+....................+...+.........+......+.....+......+.......+...+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+....+........+.............+.++...++.+...+..+......+...+.........+...+.........+...+.........+...+.........+...+.................+.........+.........+...+.........+...+.........+....+.......+.....+.........+...........+......+................+................+........+.....+.........................+....................+.....................................+.....................+.......................+.........................................+.................+...............................................................................................................+.................................................................................................+...............+...............+.....+....+.+......",
|
||||
"...................+...........+...+......+++++++++++...+...+.+.......+++++...+.......+...+.............+...........+.................+.........+.+.+...........+...........................................................+...+.........+.....+...+.................+.........+...........+...+.....+...+++++.....+...................+.......+.........+...+.........+.........+++...........+++...........+.........................+...................+...+.....+++++.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+...+.........+.............+..++.++..+...+...+.....+...+.........+...+.........+...+.........+...+.........+...+.................+.........+.........+...+.........+...+.........+.....+.....+.......+.......+...........+.......+.................+...............+.......+.......+.........................+.......+++++++.....+...+++++.......+++++++.......+++++...+.....+++++++.........+...........+++++++++...+...+++++.......+++.................+++...+.......+++.......+.........+++++++.......+...+++++.......+++++++.....+...+++++.......+++++...+...+...+++++.......+++++++.......+++++++.....+.........+...+.........+...+.......+.....+.........+...+.........+...+++++++++++.......+...............+...............+.....+.....+.......",
|
||||
"...................+........................+.....+......+..+.+..............+.........+.+..........................+.................+..........+++............+..........................................................+....+.........+....+....+................+.........+...........+....+.....+..+.....+....+..................+.........+.......+....+........++.........+++...........+++..........+...........................+.................+....+....+....+.....+.......+.....+......+....+...............+.......+.....+.............+...........+.............+.........+.......+.................+.....+..+..........+.............+...+++...+...+....+....+...+.........+...+........+....+.........+...+........+.....+................+.........+.........+....+.......+....+.........+......+...+.........+.....+...........+........+.................+...............+........................................................+....+..+.....+.....+.......+.....+.....+..+....+.......+........+..........+........+...+..+.....+........+...................+...+......+..........+.........+...+..+......+..+.....+.....+.......+....+..+.....+.....+.....+..+....+.+.....+.....+................+.........+.........+...+.........+...+.......+......+.......+....+.........+............+.........+..............+..............+....................",
|
||||
"...................+........................+.....+.......+++++++...........+...........+...........................+.................+...........+.........+++++++++...................+++++++++.........................+.....+.....+++++...+.....+...............+.........+++++.......+.....+.....+++.......+...+...+++++.........+...........+++++++.....+.......+.+.........+++...........+++.........+.........+++++++++++.........+...............+.....+...+.....+.....+++++++++.....+++++++.....+...............+.......+.....+++++.........+++++.......+.....+++++...+++++++++++.......+.................+.....+++...........+.............+....+....+...+.....+...+...+.........+...+++++++++.....+.........+...+++++++++.......+++++++.........+.........+.........+.....+.....+.....+.........+.......+.+...........+...+...........+.........+.................+...............+.........................................................+...+.+.......+...+.........+...+.......+.+...+.........+.....+++++.......+.........+...+.+.......+.......+...................+...+...+++...........+.........+...+...+.....+.+.......+...+.........+...+.+.......+...+.......+.+.....+.......+...+.................+.........+.........+...+.........+...+.......+.......+.....+.....+.........+...........+...........+.............+.............+.....................",
|
||||
"...................+........................+.....+.........+.+..+.........+...........+.+..........................+.................+..........+++............+.........................................................+.....+....+....+.........+..............+...............+.....+......+...............+...+..+.....+........+..........+.......+.....+.....+..+..................................+...............................+.............+......+...+....++.....+.......+.....+......+....+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+..+..........+.............+.........+...+......+..+...+.........+...+.............+.........+...+..+...................+........+.........+.........+.....+.....+.....+.........+........+.............+.+...........+..........+..................+..............+.........................................................+...++........+...+.............+........++...+.........+.......+.........+.........+...++........+.......+...................+...+..+..............+.........+...+...+.....++........+...+.........+...++........+...+........++.....+.......+....+................+.........+.........+....+.......+....+.......+........+...+......+.........+..........+...........+.............................+....................",
|
||||
"...................+........................+.....+.........+.+...+.......+...........+...+...+.....................+.................+.........+.+.+...........+.........................................................+.....+++++.....+.........+.............+.................+...+++++++++++.............+...+.+.......+.......+.........+.........+.....+++++...+.................................+.................................+...........+.......+...+...+.+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+...+.........+.............+.........+...+.......+.+...+.........+...+.............+.........+...+...+...................+.......+.........+.........+.....+.....+.....+.........+.......+.+.............+...........+...........+...................+.............+.................................................+++++++++...+.........+...+.............+.........+...+++++++++++.......+.........+.........+...+.........+.......+...................+...+.+...............+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+.......+.....+++++++.........+.........+.........+.....+.....+.....+...+...+.........+.+.......+.........+.........+...........+...............................+...................",
|
||||
"...................+........................+.....+.........+.+...+......+...........+.....+.+......................+.................+........+..+..+..........+........................................................+......+.........+.........+............+..................+...........+...............+...++........+......+..........+.........+.............+..................................+...............................+............+.......+...+..+..+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+....+........+.............+.........+...+........++...+.........+...+.............+.........+...+....+..................+.......+.........+.........+.....+.....+.....+....+....+......+...+............+..........+............+...................+.............+................................................+........+...+.........+...+.............+.........+...+.................+..........+.......+....+.........+.......+...................+...++................+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+....................+........+.........+.........+.....+.....+.....+...+...+..........+........+.........+........+.............+.............................+....................",
|
||||
"...................+........................+.....+.........+.+...+.....+...+++++...+.......+.......................+.................+.......+...+...+.........+.............+++.......................................+.......+.........+.........+...........+...................+...........+...............+...+.........+.....+...........+.........+.............+.........+++...........+++.........+.........+++++++++++.........+.............+.......+...+++...+.....+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+.....+.......+.............+.........+...+.........+...+.........+...+.............+.........+...+.....+.................+.......+.........+.........+.....+.....+.....+....+....+.....+.....+...........+.........+.............+...................+.............+...............................................+.........+...+.........+...+.............+.........+...+.................+...........+++++++.....+.........+.......+...................+...+.+...............+.........+...+...+.....+.........+...+.........+...+.........+...+.........+.....+.....................+.......+.........+.........+.....+.....+.....+...+...+.........+.+.......+.........+.......+...............+.............+.............+.....................",
|
||||
"............................................+.....+.........+.+...+....+....+...+...+......+.+.......................+...............+........................................+++.......................................+........+.......+..........+..........+....................+...........+...............+...+.........+.....+...........+.........+............+..........+++...........+++..........+...........................+......................+...............+.......+.....+.......+...+...............+.......+.....+.............+...........+.........+...+.........+.......+.................+.....+......+......+.............+.........+...+.........+...+.........+...+.............+.........+...+......+................+.......+.........+.........+......+...+......+...+.+...+....+.......+..........+........+..............+....................+............+...............................................+.........+...++........+...+.............+........++...+.................+..........+............+.........+.......+...................+...+..+..............+.........+...+...+.....+.........+...+.........+...++........+...+........++.....+.....................+.......+.........+........++......+...+......+...+...+........+...+......+........++......+...............+..............+..............+....................",
|
||||
"..........................................+++++++++++...+...+.+...+...+.....+...+...+.....+...+.......................+.............+.........................................+++.........................+++...........+.........+.....+...........+.........+...........+.........+...........+.....+.........+...+.........+.....+...........+.........+...........+...........+++...........+++...........+.........................+.......................+...............+.......+.....+.......+...+.........+.....+.......+.....+.............+...........+.........+...+.........+.......+.........+.......+.....+.......+.....+.............+.........+...+.........+...+.........+...+.............+...+.....+...+.......+.....+.........+.......+.........+.........+.......+.+.......+...+.+...+...+.........+.........+.......+...............+.....................+...........+...............................................+.......+++...+.+.......+...+.........+...+.......+.+...+.........+.......+.........+.............+.........+.......+...................+...+...+++...........+.........+...+...+.....+.........+...+.........+...+.+.......+...+.......+.+.....+...........+.........+.......+.....+...+.......+.+.......+.+.......+...+...+.......+.....+.....+.......+.+.....+...............+...............+...............+...................",
|
||||
"............................................+.....+......+..+.+..+....+.....+...+....+...+....+........................+...........+............................................+.........................+++..........+...........+...+............+........+.............+.......+............+......+.......+.....+.......+......+............+.......+...........+............................+............+.......................+.........................+..............+.......+.....+......+.....+.......+......+......+......+.............+............+.......+....+.........+.......+..........+.....+......+........+....+.............+.........+...+.........+....+.......+....+..............+...+...+....+........+.....+.......+........+..........+.......+........+.+........+.+...+.+....+.........+.........+.......+...............+.....................+...........+................................................+.....+..+...+..+.....+.....+.......+.....+.....+..+....+.......+........+..........+............+.........+.......+...................+...+......+..........+.........+.......+.....+.........+....+.......+....+..+.....+.....+.....+..+.....+............+.......+.........+...+.....+.....+..+.......+.+........+.+.+.+.......+.......+.....+.....+..+....+................+...............+...............+...................",
|
||||
"...................+........................+.....+.......+++++++.....+.....+++++.....+++.....+.........................+.........+.............................................+.........................+++.........+.............+++.........+++++++++...+++++++++++.....+++++++.............+.......+++++++.......+++++++.......+.............+++++++.......+++++.............................+.............+.....................+.................+.........+++++++.......+.......+...+++++++++.......+++++++.....+++++++++.....+++++++++++.....+.............+++++++.....+.........+.....+++++.........+++++.......+.........+...+++++++++++...+.........+...+.........+.....+++++++.....+...............+++++++.....+.........+.....+++++++.........+...........+++++++.........+++.........+.....+.....+.........+.........+.......+++++++++++.....+++++.................+.......+++++...................+++++++++++...................+++++...+...+...+++++.......+++++++.......+++++...+.....+++++++.........+...........+++++++.....+.........+...+++++++++.......+.......+...+.......+++...+++++++++.....+.......+.....+.........+.....+++++++.....+...+++++.......+++++...+.....+.............+++++++...........+++.......+++++...+.......+++.........+...+.......+.........+.....+++++...+...+++++++++++.......+...............+...............+...................",
|
||||
"...............................................................................................................................................................................+......................................+..........................................................................................................................................................................+...................................................................................................................................................................................................................................................................................................................+.............................................................................................................................................................................................................................................................................................................+.......+..................................+.......+.........................................................................+.......................+...............................................................................................................+......................+..............+..............+....................",
|
||||
"..............................................................................................................................................................................+.......................................+.........................................................................................................................................................................+.....................................................................................................................................................................................................................................................................................................................+++.........................................................................................................................................................................................................................................................................................................+.........+.................................+.......+.........................................................................+.......................+.....................................................................................................+.........+.......................+++...........+...........+++.....................",
|
||||
"...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+.......+...................................+.....+..........................................................................+.......................+......................................................................................................+.......+..........................................................................",
|
||||
"....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+++++++.....................................+++++...........................................................................+.......................+.......................................................................................................+++++++...........................................................................",
|
||||
".................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................."};
|
73
wmail/src/xpm_delt/main.xpm
Normal file
73
wmail/src/xpm_delt/main.xpm
Normal 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",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ....................................................... ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++.............+++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++..+++++++++..+++.......+++......+++....++..+++++++++@ ",
|
||||
" .++...+++++++...+++..+..+..++..+++..+++..+++..+++++++++@ ",
|
||||
" .++.+..+++++..+.+++..+..+..++..+++..+++..+++..+++++++++@ ",
|
||||
" .++.++..+++..++.+++..+..+..++..+++..+++..+++..+++++++++@ ",
|
||||
" .++.++...+...++.+++..+..+..++.......+++..+++..+++++++++@ ",
|
||||
" .++.+..+...+..+.+++..++++..++..+++..+++..+++..+++++++++@ ",
|
||||
" .++...+++.+++...+++..++++..++..+++..+++..+++..+++++++++@ ",
|
||||
" .++..+++++++++..+++..++++..++..+++..++....++......+++++@ ",
|
||||
" .++.............+++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
|
||||
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ........................... ........................ ",
|
||||
" .++++++++++++++++++++++++++@ .######################$@ ",
|
||||
" .++++++++...+++...+++...+++@ .#$$$$$$$$$$$$$$$$$$$$$.@ ",
|
||||
" .+..++++.+++.+.+++.+.+++.++@ .#$$$$$$$$$$$$$$$$$$$+$.@ ",
|
||||
" .++..+++.+++.+.+++.+.+++.++@ .#$+++$$$$$$$$$$$$$$$+$.@ ",
|
||||
" .+++..++.+++.+.+++.+.+++.++@ .#$+$$+$$$$$$$$$$$$$$+$.@ ",
|
||||
" .++++..++...+++...+++...+++@ .#$+$$+$$++$$$+++$$+++$.@ ",
|
||||
" .+++..++.+++.+.+++.+.+++.++@ .#$+++$$+$++$+$$+$+$$+$.@ ",
|
||||
" .++..+++.+++.+.+++.+.+++.++@ .#$+$$+$++$$$+$$+$+$$+$.@ ",
|
||||
" .+..++++.+++.+.+++.+.+++.++@ .#$+$$+$$+++$$+++$$+++$.@ ",
|
||||
" .++++++++...+++...+++...+++@ .#$$$$$$$$$$$$$$$$$$$$$.@ ",
|
||||
" .++++++++++++++++++++++++++@ .$......................@ ",
|
||||
" @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
16
wmail/src/xpm_delt/numbers.xpm
Normal file
16
wmail/src/xpm_delt/numbers.xpm
Normal 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_delt/symbols.xpm
Normal file
18
wmail/src/xpm_delt/symbols.xpm
Normal 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
120
wmail/wmailrc-sample
Normal 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"
|
||||
|
Loading…
Reference in a new issue