From ce47d9a7c2035f3db2aeaf5d1ec81812e82fc8cf Mon Sep 17 00:00:00 2001 From: Doug Torrance Date: Thu, 1 Dec 2016 20:38:38 -0500 Subject: [PATCH] wmymail: Add version 0.3 to repository. From http://distro.ibiblio.org/amigolinux/download/DockApps/wmymail-0.3/wmymail-0.3.tar.bz2 --- wmymail/ChangeLog | 49 ++++ wmymail/Makefile | 50 ++++ wmymail/README | 75 ++++++ wmymail/README.old | 66 +++++ wmymail/VERSION | 1 + wmymail/lsm.in | 12 + wmymail/raw-envelope.jpg | Bin 0 -> 40702 bytes wmymail/wmymail-0.3.lsm | 13 + wmymail/wmymail.c | 545 +++++++++++++++++++++++++++++++++++++++ wmymail/xpm/main.xpm | 142 ++++++++++ wmymail/xpm/mbox_1.xpm | 182 +++++++++++++ wmymail/xpm/mbox_2.xpm | 254 ++++++++++++++++++ wmymail/xpm/mbox_3.xpm | 292 +++++++++++++++++++++ wmymail/xpm/numbers.xpm | 16 ++ wmymail/xpm/unumbers.xpm | 16 ++ 15 files changed, 1713 insertions(+) create mode 100644 wmymail/ChangeLog create mode 100644 wmymail/Makefile create mode 100644 wmymail/README create mode 100644 wmymail/README.old create mode 100644 wmymail/VERSION create mode 100644 wmymail/lsm.in create mode 100644 wmymail/raw-envelope.jpg create mode 100644 wmymail/wmymail-0.3.lsm create mode 100644 wmymail/wmymail.c create mode 100644 wmymail/xpm/main.xpm create mode 100644 wmymail/xpm/mbox_1.xpm create mode 100644 wmymail/xpm/mbox_2.xpm create mode 100644 wmymail/xpm/mbox_3.xpm create mode 100644 wmymail/xpm/numbers.xpm create mode 100644 wmymail/xpm/unumbers.xpm diff --git a/wmymail/ChangeLog b/wmymail/ChangeLog new file mode 100644 index 0000000..b99dbac --- /dev/null +++ b/wmymail/ChangeLog @@ -0,0 +1,49 @@ +ChangeLog for wmymail +--------------------- + +2004-06-11 Joshua Swink + + * Version 0.3 + + * Documentation (code comments, README, LSM file) + +2002-08-28 Thomas Nemeth + + * Added -m/--mailbox option for specifying mailbox when no $MAIL + variable is available + + * Corrected the misbehavior about zombie child process + +2002-03-27 Joshua Swink + + * Change error message about unset MAIL variable + +2001-07-26 Joshua Swink + + * Version 0.2 + + * Changed -f (for fetchmail) to -F + + * Added -n/--newcommand option for something to run when new mail + is received + + * Added -c/--command option for something to run when clicked + + * Reduced xpm file sizes by reducing their colors in the Gimp + + * checkfetchmail() - use mkstemp() + + * Add -Wall to Makefile's CFLAGS (and fix resulting warnings) + + * Remove code that futzes with the mail file's access time + + * parseMailFile() - less likely to misinterpret a message with long lines + +2001-06-06 Joshua Swink + + * Version 0.1 + + * Change lots of stuff + + * Fork from wmail + diff --git a/wmymail/Makefile b/wmymail/Makefile new file mode 100644 index 0000000..d9812c2 --- /dev/null +++ b/wmymail/Makefile @@ -0,0 +1,50 @@ +# +# Makefile for wmymail +# + + +PROGRAM=wmymail + +VERSION=$(shell cat VERSION) +DISTDIR=$(PROGRAM)-$(VERSION) +TARBALL=$(PROGRAM)-$(VERSION).tar.gz +LSM=$(PROGRAM)-$(VERSION).lsm + +CC = cc +LIBS = -L/usr/X11R6/lib -lX11 -lXpm -lXext -ldockapp +CFLAGS = -O2 -I/usr/X11R6/include -Wall +XPMS = xpm/main.xpm xpm/mbox_1.xpm xpm/mbox_2.xpm xpm/mbox_3.xpm \ + xpm/numbers.xpm xpm/unumbers.xpm +DISTFILES = Makefile README README.old ChangeLog wmymail.c \ + raw-envelope.jpg lsm.in VERSION + +default all target: wmymail + +wmymail: wmymail.o + $(CC) $< $(CFLAGS) $(LIBS) -o $@ + +wmymail.o: wmymail.c $(XPMS) + $(CC) $(CFLAGS) $(MY_INCS) -o $@ -c $< + +clean: + rm -f wmymail wmymail.o $(LSM) $(TARBALL) + rm -fr $(DISTDIR) + +dist: $(TARBALL) + +lsm: $(LSM) + +$(LSM): + make-lsm + +$(TARBALL): $(DISTFILES) $(LSM) + rm -fr $(DISTDIR) + mkdir -p $(DISTDIR)/xpm + cp $(DISTFILES) $(DISTDIR) + cp $(XPMS) wmymail-$(VERSION)/xpm + rm -f wmymail-$(VERSION).tar.gz + tar -c $(DISTDIR) | gzip > $(TARBALL) + make-lsm + cp $(LSM) $(DISTDIR) + tar -c $(DISTDIR) | gzip > $(TARBALL) + diff --git a/wmymail/README b/wmymail/README new file mode 100644 index 0000000..4c93881 --- /dev/null +++ b/wmymail/README @@ -0,0 +1,75 @@ + + readme for wmymail - mail checker dock application + +wmymail is a dock application that shows how many messages are in your +mailbox, and how many of them are unread. When there are new messages, +it displays one or more brightly colored envelopes. Otherwise, it +displays a dull, gray envelope. + + +BEHAVIOR +======== + +mbox (local mail file) (default) +-------------------------------- + +By default, it will check your mailbox file about once per second to +see if it has changed. If it has changed, wmymail reads it to see how +many messages are inside, and how many have been read, and displays +the current counts. + + * It looks at the filename specified in the $MAIL environment + variable. + + * You can tell it to look in a different file by using the -m + option, e.g. "wmymail -m /var/foo/mail/username" + + * You can make it check less frequently with the -i option, which + changes the interval between mailbox checks: + "wmymail -i 60" will make it check once per minute. + +IMAP +---- + +If you are using IMAP for your email, you will need to use the -F +option. This option makes wmymail run fetchmail to determine how +many messages you have. + +Since running fetchmail takes considerably longer than checking +a local file, wmymail checks once per minute when -F is used. +Furthermore, the -i option now specifies the number of minutes: +"wmymail -F -i 5" would make it check every five minutes. + +The command that wmymail runs is: "fetchmail -c" +Therefore, you will need to have fetchmail set up and working prior +to using wmymail. + + +HISTORY +======= + +The current maintainer is Joshua Swink, . + +This program forked from version 1.1 of wmail, a similar dock app with +different goals. + +wmail may be found here: + http://dockapps.org/file.php/id/70 + +And here is its old homepage (no longer exists): + http://www.informatik.uni-jena.de/~topical/sveng/wmail.html + + +INSTALLATION +============ + +You will need libdockapp, which can probably be found here: + + ftp://shadowmere.student.utwente.nl/pub/WindowMaker/ + +Then, run "make", and "strip wmymail" if desired, and finally +copy wmymail to a directory in your path. + +Making it show up on your dock or wharf or pier varies greatly +according to your window manager, and won't be explained here. + diff --git a/wmymail/README.old b/wmymail/README.old new file mode 100644 index 0000000..1d28cdf --- /dev/null +++ b/wmymail/README.old @@ -0,0 +1,66 @@ +name : wmail (Window Maker DockApp email flag) +current version : 1.1 +last update : Oct 13 2000 + +description : + + This is wmail - a little dockable application watching your email-file + and signaling changes. It works quite similar to xbiff + but provides a more informative, more interactive and yes, more colorful nice + little gui displaying some useful pieces of state-informations about that + file. + It uses the $MAIL environment-variable to locate the email-file you are using, + other mailing mechanisms like POP or IMAP are currently not supported. + + It shows the following: + + - a mail-icon in the upper-left if the file contains some mails + - a frequently blinking mail-text in the upper-right if there are unread mails + - a ticker displaying eighter the complete mail-adress, it's name-part or the + full sender name + - the number of emails stored in the file + + In addition, the button labeled `Client' allowes you to quickly run your + preferred email-client. + + Last, there are some attributes you can customize via the command-line. + So it's possible to set the interval-time between the updates, the + shell-command to run the client, what the ticker has to show and what colors + should be used. Custom coloring is what every dockapp should support, but + unfortunatly most didn't came with this nice and useful feature :( + + Bugs: be sure there are! Since many time and motivation is needed to clean + even such a little app properly there are good chances this friendly toy + will change into an aggressive animal ready to cause irreversible damage - + thus, keep in mind this code comes with absolutly no warran...blablabla + >>Please let me know, if something works wrong<< + +requirements : + + this application needs libdockapp v0.2 or newer + +compile : + + this code is known to work under linux v2.10 and osf v3.2 (tested) + together with Window Maker v0.60.0 and docklib v0.2. I've provided a simple + Makefile you can use to build the binary - edit that file to suit your needs. + +run : + + try wmail -h to see a list of options. + +download : + + www.crosswinds.net/~sveniboy/wmail.html + +maintainer : + + Sven Geisenhainer + +final words : + + Thanx to all the GNUstep and Window Maker people who've provided us + with such a great user environment! + + Hope you will enjoy! + Sven. diff --git a/wmymail/VERSION b/wmymail/VERSION new file mode 100644 index 0000000..be58634 --- /dev/null +++ b/wmymail/VERSION @@ -0,0 +1 @@ +0.3 diff --git a/wmymail/lsm.in b/wmymail/lsm.in new file mode 100644 index 0000000..0f01250 --- /dev/null +++ b/wmymail/lsm.in @@ -0,0 +1,12 @@ +Begin4 +Title: wmymail +Version: 0.3 +Entered-date: 2004-01-01 +Description: wmymail is a mail-checking dock app. +Keywords: X11, email, dockapp +Author: yathster@yahoo.com (Joshua Swink) +Maintained-by: yathster@yahoo.com (Joshua Swink) +Primary-site: http://yath.mine.nu/wmymail/ +Platforms: X11 +Copying-policy: public domain +End diff --git a/wmymail/raw-envelope.jpg b/wmymail/raw-envelope.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc6d120d52f722b82bcb140735fe659a4b396b0e GIT binary patch literal 40702 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 K=Ic$# +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "xpm/main.xpm" +#include "xpm/numbers.xpm" +#include "xpm/unumbers.xpm" +#include "xpm/mbox_1.xpm" +#include "xpm/mbox_2.xpm" +#include "xpm/mbox_3.xpm" + +/* + * Some definitions required by libdockapp + */ + +#define NAME "wmymail" +#define VERSION "wmymail v0.3 November 6, 2004" + +// default mail check interval, in seconds (default) or minutes (with -F) +#define CHECKINTERVAL 1 + +// global data + +char *displayName = ""; +char *mailPath = NULL; +char *fontColor = ""; +char *background = ""; +char *clickcommand = ""; +char *newcommand = ""; +int numMessages = 0; +int lastnumMessages = 0; +int numRead = 0; +int numUnread = 0; +int lastnumUnread = 0; +int buttonpressed = 0; + +/* + * usefetchmail means to run "fetchmail -c" and parse the output, rather + * than counting up messages in an mbox file. + + * It will change the interval from seconds to minutes. + */ + +int usefetchmail = 0; +int flip = 1; +int checkInterval = CHECKINTERVAL; +time_t lastModifySeconds = 0; +off_t lastSize = 0; + +Pixmap mainPixmap; +Pixmap numbersPixmap; +Pixmap unumbersPixmap; +Pixmap mboxonePixmap; +Pixmap mboxtwoPixmap; +Pixmap mboxthreePixmap; +Pixmap outPixmap1; +Pixmap outPixmap2; +GC defaultGC; + +static DAProgramOption options[] = { + + {"-display", NULL, "display to use", + DOString, False, {&displayName}}, + + {"-i", "--interval", "seconds between mailbox checks (default 1)", + DONatural, False, {&checkInterval} }, + + {"-fc", "--fontcolor", "custom font color", + DOString, False, {&fontColor} }, + + {"-bg", "--background", "custom background color for non-shaped window", + DOString, False, {&background} }, + + {"-ns", "--noshape", "make the dock app non-shaped (windowed)", + DONone, False, {NULL} }, + + {"-F", "--fetchmail", "check with fetchmail -c instead of the mbox", + DONone, False, {NULL} }, + + {"-c", "--command", "command to run when clicked", + DOString, False, {&clickcommand} }, + + {"-n", "--newcommand", "command to run when new mail is received", + DOString, False, {&newcommand} }, + + {"-m", "--mailbox", "mailbox to use when $MAIL is not set", + DOString, False, {&mailPath} } + +}; + +// prototypes + +void checkForNewMail(int dummy); +void updatePixmap(void); +void parseMailFile( struct stat *fileStat ); +char *getHexColorString( char *colorName ); +void putnumber (int number, Pixmap pixmap, Pixmap numbers, + int destx, int desty); +void buttonpress(int button, int state, int x, int y); +void buttonrelease(int button, int state, int x, int y); +void checkfetchmail (void); +void checkmbox (void); +void launch (const char *command); + +// functions + +int main(int argc, char **argv) { + Pixmap mainPixmap_mask; + + unsigned width, height; + + DACallbacks callbacks = { NULL, &buttonpress, &buttonrelease, + NULL, NULL, NULL, NULL }; + + struct sigaction sa; + + sa.sa_handler = SIG_IGN; +#ifdef SA_NOCLDWAIT + sa.sa_flags = SA_NOCLDWAIT; +#else + sa.sa_flags = 0; +#endif + sigemptyset(&sa.sa_mask); + sigaction(SIGCHLD, &sa, NULL); + + + DAParseArguments(argc, argv, options, + sizeof(options) / sizeof(DAProgramOption), + NAME, VERSION); + + DAInitialize(displayName, "wmymail", 64, 64, argc, argv); + + // simple recoloring of the raw xpms befor creating Pixmaps of them + // this works as long as you don't "touch" the images... + + if (options[2].used) { // custom font color ? + char *colorLine = strdup("+ c #"); + + strcat(colorLine, getHexColorString(fontColor)); + + colorLine = strdup("+ c #"); + strcat(colorLine, getHexColorString(fontColor)); + numbers_xpm[3] = colorLine; + } + + if (options[3].used && options[8].used) { // custom window background ? + char *colorLine = strdup(" c #"); + + strcat(colorLine, getHexColorString(background)); + main_xpm[1] = colorLine; + } + + DAMakePixmapFromData(main_xpm, &mainPixmap, &mainPixmap_mask, &width, &height); + DAMakePixmapFromData(numbers_xpm, &numbersPixmap, NULL, &width, &height); + DAMakePixmapFromData(unumbers_xpm, &unumbersPixmap, NULL, &width, &height); + + DAMakePixmapFromData(mbox_1_xpm, &mboxonePixmap, NULL, &width, &height); + DAMakePixmapFromData(mbox_2_xpm, &mboxtwoPixmap, NULL, &width, &height); + DAMakePixmapFromData(mbox_3_xpm, &mboxthreePixmap, NULL, &width, &height); + + if (!options[4].used) // no shape to install + DASetShape(mainPixmap_mask); + + if (options[5].used) // use fetchmail + usefetchmail = 1; + else if (mailPath == NULL) { + if ((mailPath = getenv("MAIL")) == NULL) { + perror("Please define your MAIL environment variable!\n"); + exit(1); + } + } + + DASetCallbacks( &callbacks ); + DASetTimeout(-1); + + outPixmap1 = DAMakePixmap(); + outPixmap2 = DAMakePixmap(); + defaultGC = XDefaultGC(DADisplay, 0); + + signal(SIGALRM, checkForNewMail); + + updatePixmap(); + + DAShow(); + + checkForNewMail(0); + + DAEventLoop(); + + return 0; +} + +char *getHexColorString(char *colorName) { + XColor color; + char *hexColorString; + + if (!XParseColor(DADisplay, + DefaultColormap(DADisplay, DefaultScreen( DADisplay)), + colorName, &color)) + { + printf("unknown colorname: \"%s\"\n", colorName); + exit(1); + } + + hexColorString = (char *)malloc(7); + sprintf(hexColorString, "%02X%02X%02X", color.red>>8, color.green>>8, + color.blue>>8); + + return hexColorString; +} + + /* + * + * checkForNewMail + * + */ + +void checkForNewMail(int dummy) { + struct itimerval timerVal; + + if (usefetchmail) { + checkfetchmail(); + } else { + checkmbox(); + } + + if (numMessages != lastnumMessages || + numUnread != lastnumUnread) { + updatePixmap(); + if (numUnread > lastnumUnread && strlen(newcommand) > 0) + launch(newcommand); + lastnumMessages = numMessages; + lastnumUnread = numUnread; + } + + memset(&timerVal, 0, sizeof(timerVal)); + + if (usefetchmail) { + timerVal.it_value.tv_sec = checkInterval * 60; + } else { + timerVal.it_value.tv_sec = checkInterval; + } + + setitimer(ITIMER_REAL, &timerVal, NULL); +} + + /* + * + * checkfetchmail + * + */ + +void checkfetchmail (void) { + int msgtotal = 0; + int msgseen = 0; + int snpret; + char tmpfile[20] = "wmymail.XXXXXX"; + char syscmd[120]; + char line[1024]; + char *s, *t; + int fd; + FILE *f; + + + fd = mkstemp(tmpfile); + if (fd == -1) { + perror("wmymail: cannot get a temporay file"); + return; + } + + snpret = snprintf(syscmd, 120, "fetchmail -c > %s", tmpfile); + if (snpret < 0) { + perror("wmymail: error in snprintf() call (should not happen)"); + return; + } + + if (system(syscmd) < 0) { + perror("wmymail: error when using system() to run fetchmail -c"); + return; + } + + f = fdopen(fd, "r"); + if (f == NULL) { + perror("wmymail: can't reread tempfile\n"); + return; + } + + /* FIXME: this assumes that fetchmail will never print a line over + * 1024 characters long, which is fairly safe but you never know */ + while (fgets(line, 1024, f) != NULL) { + + /* Every line beginning with a number is assumed to be a number of + * messages on the server: + * + * "1 message for userfoo at mail.bar.org." + * "3 messages for userfoo at mail.bar.org." */ + if (line[0] >= '0' && line[0] <= '9') { + + /* The first number on the line may be added to the total */ + msgtotal += atoi(line); + + /* Fetchmail may also indicate that some of the messages on the + * server have already been read: + * + * "5 messages (3 seen) for userfoo at mail.bar.org." */ + + /* To get the number seen, locate the first space */ + s = (char *)strstr(line, " "); + if (s != NULL) { + + /* Skip over one character */ + s++; + + /* And locate the second space */ + t = (char *)strstr(s, " "); + + /* If this second space is followed by '(' and a digit, it's + * a number of seen messages */ + if (t != NULL && t[1] == '(' && t[2] >= '0' && t[2] <= '9') { + + /* Position string t on the number seen */ + t += 2; + + /* And get the number */ + msgseen += atoi(t); + } + } + } + } + + fclose(f); + remove(tmpfile); + + /* Now that that's been gotten through without major errors, + move the values to the global variables */ + + numMessages = msgtotal; + numUnread = msgtotal - msgseen; +} + /* + * + * checkmbox + * + */ + +void checkmbox (void) { + struct stat fileStat; + + if (stat(mailPath, &fileStat) == -1 || fileStat.st_size == 0) { + numMessages = 0; + numUnread = 0; + } else if (lastModifySeconds != fileStat.st_mtime || + lastSize != fileStat.st_size) { + + parseMailFile(&fileStat); + + lastModifySeconds = fileStat.st_mtime; + lastSize = fileStat.st_size; + } +} + + /* + * + * updatePixmap + * + */ + +void updatePixmap(void) { + Pixmap outPixmap = flip ? outPixmap1 : outPixmap2; + + flip = !flip; + + XCopyArea(DADisplay, mainPixmap, outPixmap, defaultGC, + 0, 0, 64, 64, 0, 0); + + if (numMessages > 998) { + putnumber(999, outPixmap, numbersPixmap, 40, 49); + } else { + putnumber(numMessages, outPixmap, numbersPixmap, 40, 49); + } + + if (numUnread > 998) { + putnumber(999, outPixmap, unumbersPixmap, 6, 49); + } else if (!numUnread) { + putnumber(0, outPixmap, numbersPixmap, 6, 49); + } else { + putnumber(numUnread, outPixmap, unumbersPixmap, 6, 49); + } + + if (numUnread == 0) { + // do nothing. + } else if (numUnread == 1) { + XCopyArea(DADisplay, mboxonePixmap, outPixmap, defaultGC, + 0, 0, 40, 34, 14, 6); + } else if (numUnread == 2) { + XCopyArea(DADisplay, mboxtwoPixmap, outPixmap, defaultGC, + 0, 0, 40, 34, 14, 6); + } else { + XCopyArea(DADisplay, mboxthreePixmap, outPixmap, defaultGC, + 0, 0, 40, 34, 14, 6); + } + + DASetPixmap(outPixmap); +} + +/* + * + * putnumber -- draw a number + * + */ + +void putnumber ( + int number, /* what value should be displayed */ + Pixmap pixmap, /* pixmap to draw upon */ + Pixmap numbers, /* pixmap with digit images to use */ + int destx, int desty /* upper-left corner of rectangle to draw in */ + ) { + + int digit1, digit2, digit3; + + /* Determine the digits */ + digit1 = number / 100; + digit2 = (number % 100) / 10; + digit3 = number % 10; + + /* The 100s and 10s digits will only be displayed if the number + is >99 and >9, respectively */ + + if (digit1) XCopyArea(DADisplay, numbers, pixmap, defaultGC, + digit1 * 5, 0, 5, 9, destx, desty); + + if (digit2 || digit1) XCopyArea(DADisplay, numbers, pixmap, defaultGC, + digit2 * 5, 0, 5, 9, destx + 6, desty); + + XCopyArea(DADisplay, numbers, pixmap, defaultGC, + digit3 * 5, 0, 5, 9, destx + 12, desty); +} + +/* + * parseMailFile -- reads the mail file and sets the global variables: + * + * numMessages -- total number of messages (displayed on the right) + * numRead -- messages that have been read + * numUnread -- message not yet read (displayed on the left) + */ + +void parseMailFile(struct stat *fileStat) { + char buf[1024]; + int inHeader = 0; + int statusRead = 0; + int longline = 0; + FILE *f = fopen(mailPath, "r"); /* FIXME check for failure to open */ + + numMessages = 0; + numRead = 0; + + while (fgets(buf, 1024, f) != NULL) { + + /* Keep discarding data if a line over 1024 characters long was found */ + if (longline) { + longline = index(buf, '\n') != NULL; + + } else { + /* The "From" line is the marker of an individual message */ + if(!strncmp(buf, "From ", 5)) { + inHeader = 1; + numMessages++; + + /* Once inside a header, it only remains to + * 1) Take note, if the message appears to have been read + * 2) Locate the end of the header */ + } else if (inHeader) { + + /* A blank line indicates the end of the header */ + if (!strcmp(buf, "\n")) { + inHeader = 0; + if (statusRead) { + numRead++; + statusRead = 0; + } + + /* The "Status" line indicates that the message has been read, + * if it has a "R". But since we don't trust that there will + * be only one "Status" line, statusRead will be set to 1, + * but numRead will only be incremented after the header has + * been completely read. That way, multiple "Status" lines + * would only set statusRead to 1 multiple times (having no + * effect). */ + } else if (!strncmp(buf, "Status: ", 8) && strchr(buf, 'R')) { + statusRead = 1; + } + } + + /* The 1024 byte buffer can easily be exceeded by long lines... + * when no newline is present, we must enter the state of "skipping + * over the rest of a very long line". Else a line inside the body + * of a message might be (starting at the 1025th character) + * "From \n" thus fooling this program into parsing it + * incorrectly. */ + longline = index(buf, '\n') == NULL; + } + } + + fclose(f); + numUnread = numMessages - numRead; +} + +/* Take note of a mouse button being pressed inside the dock app */ +void buttonpress (int button, int state, int x, int y) { + buttonpressed = 1; +} + +/* A mouse button was pressed and released. + * See if it was released while the mouse was still in the bounds of + * the dock app (a 64x64 square). */ +void buttonrelease (int button, int state, int x, int y) { + if (buttonpressed && x > 0 && x < 64 && y > 0 && y < 64 && + strlen(clickcommand) > 0) { + launch(clickcommand); + } + buttonpressed = 0; +} + +/* Start another program */ +void launch (const char *command) { + int cpid; + + cpid = fork(); + if (cpid == -1) { + perror("can't fork"); + } else if (cpid == 0) { + system(command); + exit(0); + } +} + diff --git a/wmymail/xpm/main.xpm b/wmymail/xpm/main.xpm new file mode 100644 index 0000000..d4d8b91 --- /dev/null +++ b/wmymail/xpm/main.xpm @@ -0,0 +1,142 @@ +/* XPM */ +static char * main_xpm[] = { +"64 64 75 1", +" c None", +". c #000000", +"+ c #282828", +"@ c #C0C4C0", +"# c #666666", +"$ c #555555", +"% c #5C5C5C", +"& c #595959", +"* c #616161", +"= c #5E5E5E", +"- c #5A5A5A", +"; c #626262", +"> c #606060", +", c #636363", +"' c #656565", +") c #585858", +"! c #4F4F4F", +"~ c #545454", +"{ c #434343", +"] c #4A4A4A", +"^ c #4D4D4D", +"/ c #4B4B4B", +"( c #464646", +"_ c #414141", +": c #525252", +"< c #5B5B5B", +"[ c #505050", +"} c #5D5D5D", +"| c #5F5F5F", +"1 c #646464", +"2 c #696969", +"3 c #686868", +"4 c #6A6A6A", +"5 c #6B6B6B", +"6 c #383838", +"7 c #4C4C4C", +"8 c #444444", +"9 c #373737", +"0 c #222222", +"a c #1C1C1C", +"b c #1F1F1F", +"c c #202020", +"d c #494949", +"e c #515151", +"f c #676767", +"g c #232323", +"h c #3B3B3B", +"i c #2A2A2A", +"j c #343434", +"k c #565656", +"l c #535353", +"m c #252525", +"n c #303030", +"o c #272727", +"p c #262626", +"q c #484848", +"r c #6D6D6D", +"s c #6C6C6C", +"t c #575757", +"u c #3F3F3F", +"v c #242424", +"w c #292929", +"x c #4E4E4E", +"y c #2B2B2B", +"z c #2E2E2E", +"A c #1A1A1A", +"B c #212121", +"C c #3D3D3D", +"D c #2F2F2F", +"E c #333333", +"F c #353535", +"G c #3A3A3A", +"H c #424242", +"I c #6E6E6E", +"J c #454545", +" ", +" ", +" ", +" ", +" ....................................................... ", +" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", +" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", +" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", +" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", +" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", +" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", +" .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", +" .+++++++++#$%%&*=-;>*;;;,,''';*>)!~${]!^/(_:<[+++++++++@ ", +" .+++++++++}'#|#1,22'23424555553!678)9_0abbcdf''54323'fff342f3*6-$%d-!ghij+]-k+++++++++@ ", +" .+++++++++|,3'f422112224425254){=}-]l/mngopq}&+++++++++@ ", +" .+++++++++>2'5442f,#;,324r5sr2;~==)t7uc9vww_%-+++++++++@ ", +" .+++++++++*24s!)3',1;1'f5rr5422~x^]:yzABcamC1t+++++++++@ ", +" .+++++++++12s;-#211',*,;#2r52231|[%}et6DyEFe'&+++++++++@ ", +" .+++++++++*452243!f#&>,,%32s211*=}'1,1)~~$~*'<+++++++++@ ", +" .+++++++++|424s5%7'1d~,:[*#f'**>;G#&H'3''f*'#}+++++++++@ ", +" .+++++++++-452'<^7s>~~-)$$-<]]7;=H7l|22*,;134}+++++++++@ ", +" .+++++++++>3542}l*4>-'&~k~e7]xe%:t(*32;|'';'2*+++++++++@ ", +" .+++++++++}4s4224s-*'2!<31%}]**;2=*322',#*|*'=+++++++++@ ", +" .+++++++++*25s24s}|-21l!kek7x~!!*3,7--&-1*|;;*+++++++++@ ", +" .+++++++++*52sr42;te4~%ee},~~]][8_e~}>1',;|*1>+++++++++@ ", +" .+++++++++*2rs2sI*254#t-);f)~1*'*~}<||>1''|*'}+++++++++@ ", +" .+++++++++=2444s52242#t:=#-^7$J7e<(:)}:|'*<|;%+++++++++@ ", +" .+++++++++=''##32''122~t-2*|*|t}>,}-+++++++++@ ", +" .+++++++++)'2f444f3f24552r5=1e!$~**-t=-}=>,=}<+++++++++@ ", +" .+++++++++-='%''#''''#324f#3}-le7~q7^]7$tx*|&t+++++++++@ ", +" .+++++++++-1}1;;3f3'1ss22f31>%:tkkk~!-t-<-} c #F6E2B6", +", c #52423E", +"' c #BE8A66", +") c #4E463E", +"! c #7A6E5A", +"~ c #F2DEB2", +"{ c #42423E", +"] c #CA966E", +"^ c #B67E5A", +"/ c #F2DAAA", +"( c #E6CA9E", +"_ c #CAA276", +": c #9E6A4A", +"< c #3E3E3E", +"[ c #FAE6BE", +"} c #766A5A", +"| c #AA6E4A", +"1 c #D6A67E", +"2 c #DAB68A", +"3 c #EED6A6", +"4 c #363632", +"5 c #E6CE9E", +"6 c #827E76", +"7 c #BA724A", +"8 c #DEB686", +"9 c #DEC29A", +"0 c #F6DEB2", +"a c #BA8E6A", +"b c #B67A56", +"c c #EACEA2", +"d c #DEBA8E", +"e c #F6E2BA", +"f c #CEAA82", +"g c #A67656", +"h c #E6C69A", +"i c #564E46", +"j c #5A5652", +"k c #F2D6AA", +"l c #E6BE92", +"m c #B6764E", +"n c #EECEA2", +"o c #F2DAB2", +"p c #C69266", +"q c #5E5242", +"r c #D6AA7A", +"s c #4E423A", +"t c #E2C296", +"u c #EACA9A", +"v c #EED2A6", +"w c #DAB286", +"x c #C2865A", +"y c #CE9E76", +"z c #BA7A52", +"A c #F6DEB6", +"B c #62564A", +"C c #EAC69A", +"D c #FAE6C2", +"E c #AA724E", +"F c #DABA8E", +"G c #7A7262", +"H c #EED6AA", +"I c #E6C296", +"J c #E2BA8E", +"K c #FAE2BA", +"L c #DAAA7E", +"M c #5A524A", +"N c #5A564E", +"O c #EED6AE", +"P c #E2BE9A", +"Q c #EACEA6", +"R c #F6E2BE", +"S c #E2BE92", +"T c #CEA27A", +"U c #B26E4A", +"V c #DEAE82", +"W c #665E4E", +"X c #52463E", +"Y c #FAEAC2", +"Z c #EECEA6", +"` c #E2B68A", +" . c #CAA67E", +".. c #D6AE86", +"+. c #E2BE96", +"@. c #564A42", +"#. c #DEB68A", +"$. c #F2DEB6", +"%. c #E6C69E", +"&. c #DEB286", +"*. c #AE724E", +"=. c #E6CAA2", +"-. c #56524A", +";. c #F2DAAE", +">. c #625A4E", +",. c #D6BA96", +"'. c #564E4A", +"). c #E2BA92", +"!. c #A66646", +"~. c #A26E4A", +"{. c #F2D6AE", +"]. c #E6C29A", +"^. c #C6A27E", +"/. c #C6926E", +"(. c #EACAA2", +"_. c #EED2AA", +":. c #DAAE86", +"<. c #5E564A", +"[. c #524642", +"}. c #EAC69E", +"|. c #EECEAA", +"1. c #E6BE96", +"2. c #DEB68E", +"3. c #C28A62", +"4. c #AE6E4A", +"5. c #D2AA82", +"6. c #E2C29A", +"7. c #7A6E5E", +"8. c #F2DAB6", +"9. c #EACA9E", +"0. c #DABA92", +"a. c #56524E", +"b. c #524A46", +"c. c #DEBA92", +"d. c #EACEAA", +"e. c #E6CEA2", +"f. c #4E423E", +"g. c #E2C69A", +"h. c #DAB68E", +"i. c #DAB28A", +"j. c #FAE2BE", +"k. c #DEBE96", +"l. c #CAA27A", +"m. c #5A5656", +"n. c #5E5246", +"o. c #564A46", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . @.; i @.i @.; i i i M i i i i i i i i i ; ; ; ; ; ; ; ; X @.i @.. . . ", +". . . 6 5 / 3 3 0 / / > / > / 0 0 > [ [ [ > ~ u d S ( ^.r y y ] p _ 3 + ; . . ", +". . . } 3 ~ / ~ / 0 e > A ~ e > K e e e > K v a S S 8 2 2 | E *.| ^ v + ; . . ", +". . . } A O $.o e [ K o > [ 0 e > A e > K > F 2 - 3 d + w ~.x U 7 x - ( i . . ", +". . . } 0 A > [ e e > o ~ ~ > e [ [ [ [ [ [ 0.9.c Q c @ ..*.p % $ x - - i . . ", +". . . ! e > e 8.e.> ;./ ;.H ~ e [ D [ [ R A H 6.9.S k.y y % ^ m z 4.( 5 ; . . ", +". . . } R [ [ ,.$.j.~ o o {.;.H > [ D D e e > - F t e.f ^.E 4.!.b ' A - i . . ", +". . . G > D e e e $.%.> > c ;.;.;.8.[ [ > o ;._.H k ;.;.~ t :.w w S 0 - i . . ", +". . . ! ~ [ e R [ _.+.A Q i.H e.F _.~ e ~ ;./ / S +.H :.o e ~ $.~ ;.0 H i . . ", +". . . 7.O R R R d.` +.[ ( ).A ].%.g.e.Q ..@ 6.{.:.).+.c e A k ;./ ~ R ;.i . . ", +". . . } ~ e [ e _.P $.A H Q e c.(.}.6.0.h.k.t H }.1 {.A e ;.H A ;.;.0 $.i . . ", +". . . 7.o D R [ [ [ R Z O > (.}.A o - 9.&.;.v {.> _.0 o > ~ ;.~ v 3 ;./ i . . ", +". . . ! > [ [ R e D %._.Z > ( +.t ).9.&.).#.J ].;.o S (.c n n ~ / H O ;.= . . ", +". . . 7.$.[ R [ D [ o (.o 8.(.C }.v ~ Z C ).I I r r (.v k ~ ~ k o - ;./ i . . ", +". . . ! $.[ D R R D $.D R e o J I k ~ S n {.9.;._.n S 9.n h / ~ ~ - ;.- -.. . ", +". . . } ;.> > [ [ [ A A [ e C S ].o 9.I l ].` l J J S t - v o ;.- 3 ;.e.i . . ", +". . . ! O ~ ~ ~ A A > ~ ~ e j.[ e [ e _.~ I 9.( v 3 H (.c ;.v k H H H 5 -.. . ", +". . . } - ~ n 0 $.e o A A e e R [ j.e ~ k C ` I 9.1.` :.J &.( ( - H v g.'.. . ", +". . . } H ;.$.> ~ > > A o ~ e R [ $.A A Z n h t S t J S ( 5 - c C H ( 5 N . . ", +". . . } 2 =.( ( Q {.v H o O k / ;.{.o v - c 9.3 ;.3 3 - c 9.( ( 5 t + h a.. . ", +". . . 4 m.a.i -.i '.i i o.i b.b.; ; b.; ) ; X X [., X ; ; ) X s ) s s s 4 . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; diff --git a/wmymail/xpm/mbox_2.xpm b/wmymail/xpm/mbox_2.xpm new file mode 100644 index 0000000..779ea7e --- /dev/null +++ b/wmymail/xpm/mbox_2.xpm @@ -0,0 +1,254 @@ +/* XPM */ +static char * mbox_2_xpm[] = { +"39 33 218 2", +" c None", +". c #2A2A2A", +"+ c #2E2E2A", +"@ c #625E4E", +"# c #8E7E66", +"$ c #C2A686", +"% c #DEC296", +"& c #E6CEA2", +"* c #EED6A6", +"= c #7E6A56", +"- c #3A3632", +"; c #F6E6BE", +"> c #866E56", +", c #A68E72", +"' c #F2DEAE", +") c #4E3E36", +"! c #AE926E", +"~ c #C6AE8A", +"{ c #9E6646", +"] c #564E46", +"^ c #CEB68E", +"/ c #B6926E", +"( c #AA6242", +"_ c #B27652", +": c #E6CA9A", +"< c #DEB68A", +"[ c #F6E2B6", +"} c #BA9E7E", +"| c #B27E5A", +"1 c #5E5646", +"2 c #EEDAAA", +"3 c #DEBA8E", +"4 c #CAAE82", +"5 c #AA6642", +"6 c #BA8666", +"7 c #A29276", +"8 c #EAD2A2", +"9 c #CEAE86", +"0 c #AA724E", +"a c #C2A27E", +"b c #CEA67E", +"c c #665E4E", +"d c #BA926E", +"e c #927A5E", +"f c #DAAE82", +"g c #E2C292", +"h c #C2865E", +"i c #46423A", +"j c #BE6E46", +"k c #E2C69A", +"l c #665646", +"m c #E2BA8A", +"n c #4E423A", +"o c #C2764E", +"p c #F6DEAE", +"q c #625A4A", +"r c #CA9A72", +"s c #C2926E", +"t c #725E4E", +"u c #E2BE8E", +"v c #DAA67A", +"w c #EECEA2", +"x c #B66A42", +"y c #F6E2BA", +"z c #C6A27A", +"A c #DAB68A", +"B c #96826A", +"C c #C68E5E", +"D c #FAE2BA", +"E c #DABE9A", +"F c #F2D6AA", +"G c #A66E4E", +"H c #AE6E4A", +"I c #F6DEB6", +"J c #766652", +"K c #EED2A2", +"L c #8E7A62", +"M c #F2DAB2", +"N c #BE7E56", +"O c #5E5242", +"P c #EACA9A", +"Q c #36322E", +"R c #CE9E76", +"S c #564A3E", +"T c #DEAE82", +"U c #463A36", +"V c #D2BA92", +"W c #EAC69A", +"X c #E6C296", +"Y c #BA764E", +"Z c #AA9A7A", +"` c #DEBE92", +" . c #BE8E6A", +".. c #EED6AA", +"+. c #CE926A", +"@. c #E6BE8E", +"#. c #EACE9E", +"$. c #FAE6C2", +"%. c #7E725E", +"&. c #D6BA92", +"*. c #56524A", +"=. c #CA865A", +"-. c #EED2AA", +";. c #DEAA7E", +">. c #EEDAAE", +",. c #E2B68A", +"'. c #D6B286", +"). c #B26A46", +"!. c #AE724E", +"~. c #EACEA2", +"{. c #9A866A", +"]. c #665A46", +"^. c #D2A272", +"/. c #DEB286", +"(. c #AE6A46", +"_. c #625646", +":. c #F2DEB2", +"<. c #F6E2BE", +"[. c #2E2A2A", +"}. c #FAE6BE", +"|. c #F2DAAE", +"1. c #FAEAC2", +"2. c #625A4E", +"3. c #7E6E5E", +"4. c #E2BA92", +"5. c #D6AA7E", +"6. c #766A56", +"7. c #5A4A3E", +"8. c #EAD2A6", +"9. c #DAB286", +"0. c #3E3A36", +"a. c #AE9672", +"b. c #B67A52", +"c. c #BA8A62", +"d. c #C68A5A", +"e. c #C27A4E", +"f. c #B66E46", +"g. c #BA7A52", +"h. c #CA966A", +"i. c #CA8A5E", +"j. c #322E2E", +"k. c #B2724A", +"l. c #D6B692", +"m. c #E6C29A", +"n. c #EED6AE", +"o. c #665A4A", +"p. c #CEA27A", +"q. c #F2DAAA", +"r. c #E6C696", +"s. c #A26A4A", +"t. c #CEB28E", +"u. c #C6966E", +"v. c #A6724E", +"w. c #EECEA6", +"x. c #DABA8E", +"y. c #5A5246", +"z. c #E6BA92", +"A. c #EAC29A", +"B. c #AE9276", +"C. c #A2927E", +"D. c #E2BE92", +"E. c #F6DEBA", +"F. c #EED2A6", +"G. c #EACAA2", +"H. c #E6BE96", +"I. c #EACEA6", +"J. c #E6C69A", +"K. c #5A4E42", +"L. c #D2A67E", +"M. c #B26E4A", +"N. c #7A6656", +"O. c #625246", +"P. c #9E866A", +"Q. c #DAB68E", +"R. c #6A5A4E", +"S. c #D2A276", +"T. c #5E564A", +"U. c #EAC69E", +"V. c #E2B68E", +"W. c #B67652", +"X. c #BE8662", +"Y. c #C6865A", +"Z. c #6A5646", +"`. c #CE9A6E", +" + c #C27E52", +".+ c #3A322E", +"++ c #D29E72", +"@+ c #BE7A52", +"#+ c #564A42", +"$+ c #E6CA9E", +"%+ c #E2BA8E", +"&+ c #F6DEB2", +"*+ c #FAE2BE", +"=+ c #F2D6AE", +"-+ c #EACA9E", +";+ c #E6BE92", +">+ c #F2DEB6", +",+ c #EAD2AA", +"'+ c #DABA92", +")+ c #E2C296", +"!+ c #DEBE96", +"~+ c #DEB28A", +"{+ c #DAB28A", +"]+ c #DEC29A", +"^+ c #AE7252", +"/+ c #62564A", +"(+ c #D6AA82", +"_+ c #5A524A", +":+ c #2E2E2E", +"<+ c #CEA682", +"[+ c #B66A46", +"}+ c #766656", +"|+ c #5E5246", +"1+ c #D6B28A", +"2+ c #7E6E62", +"3+ c #CA966E", +"4+ c #B2724E", +"5+ c #665A4E", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . - {.R.S ] ] S ] ] ] y.*.] ] ] ] ] ] ] ] S S S S S S S S n S ] S [.. . ", +". . . . E ,+* 2 & 8 8 * * [ q.p p [ ; }.}.[ p K &.` k 4 b R R r r r F & O.. . ", +". . . n & F I ..|.p |.q.M 2 |.:.[ D y y y y >. .< k f x.x._ G !.H v.#.: l . . ", +". . . S 8.:.M I ' M [ *+[ I y I |.>.' |.|.>+D.'.* F.)+` x.G C H o W.8 & _.. . ", +". . . ] * [ &+y [ <.; [ &+y ' D D <.}.}.D y ..$+$+$+~.3 l.!.h.5 o @+8 K _.. . ", +". . . K...y y *+}.D y I >.I D >+I I E.; $.y <.I 4.` % k < c.h g.k.5 J.8.K.. . ", +". . . *.:.y }.]+E M &+M :.>.p ; }.; D y [ I [ b R ;+;.: d 5.L.'.z d F.* _.. . ", +". . . }+I $.y I [ D &+|.|.q.M &+y }.; }.$.}.=+++q.8 & ` < h.(.5 ).N 9.K ~ . . ", +". . . B &+}.; y ; M W &+I q.>.|.I $.1.; ; y n.$+w -+K 5.P b.C W.Y.(.(+~.a . . ", +". . . ~ y <.y E.=+,.A.I w X q.q.:.y ; *+D y I < -+D.: A '.b.d.[+j x : #.B . . ", +". . . 8.; *+; }.(+V.y I D.4.|.X 4.I <.; [ [ :...3 D.X 6 6 ( h ).e.o 8 * J . . ", +". . ] 2 *+; D y D M $...W w U.$+W |.p E.F |.q...F =+..8 A s.M.{ k.M.& J.T.. . ", +". . 3.[ D ; D <.y y G.|.&+I H.J.m.A < ` < ~.F * S.&+-.F.F./.+.=.Y.T >+~./+. . ", +". . a.I ; *+$.*+y -+F -.I ~.;+I &+M -+%+< L.q./.,.J.< -+y :.I I F.n.q.8 1 . . ", +". . V ; $.; ; 1.}.w.U.M F -+z.J.X X X 3 |.' |.w.v w |.D [ q.|.&+|.I M 8./+. . ", +". - ,+&+[ }.D *+<.<.; y M ~.: W K K ;.X ,.W -.[ -.&+D E.|...p ..q.; M ~.1 . . ", +". |+~.:.&+>+[ y &+I y ; :.m.g ~.:.:.#.,.,./.T ..M ,...F.|.:.&+|.|.[ :.8._.. . ", +". # 8.|.I.&+<.}.>+[ &+D -.;+H.=+=+;+X &+..p ~.^.r.J...F -+|...* F |.8.$+S . . ", +". ! F * I I M &+M >+E.D }.; y [ |.-+X X ;.X w F.;+F.|.|.&+|.|.8.|.|.& & ] . . ", +". 2+B.l.)+* ' [ [ &+|.[ I D }.$.y * |.r.* w D.< %+W ~.X -.&+' F.p |.$+P n . . ", +". . . . i Z.B $ G...>+y ; [ y I I y W X u r.* ..* 3 8 2 :.|...8.|.* = n . . . ", +". . . . . . . . :+#+= , l.w.M [ &+|...~.X ,.A.m D.r.8...F.=+8.F ..$+Q . . . . ", +". . . . . . . . . . . . . - O.L } E : W P : : D.,.z.%+,.#.* |...* t.. . . . . ", +". . . . . . . . . . . . . . . . . [.n t P.9 U.* 8 : $+8 ~.u F * $+7 . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . Q 7.= a.l.k $+8 8.$+& 3.. . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . U Z.e / 9.g i . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [.#+. . . . . . "}; diff --git a/wmymail/xpm/mbox_3.xpm b/wmymail/xpm/mbox_3.xpm new file mode 100644 index 0000000..7a86356 --- /dev/null +++ b/wmymail/xpm/mbox_3.xpm @@ -0,0 +1,292 @@ +/* XPM */ +static char * mbox_3_xpm[] = { +"39 33 256 2", +" c None", +". c #2A2A2A", +"+ c #2E2E2A", +"@ c #7E7266", +"# c #AA9676", +"$ c #D6BA8E", +"% c #E6CA9E", +"& c #AE623E", +"* c #866E56", +"= c #EED6A6", +"- c #5A5A56", +"; c #AA724E", +"> c #FAE6BE", +", c #BAA27E", +"' c #967E66", +") c #F2DAAA", +"! c #AA8662", +"~ c #524A3E", +"{ c #C2A67E", +"] c #F6E2B6", +"^ c #CAAA82", +"/ c #E2C696", +"( c #BE9672", +"_ c #4E423A", +": c #D2AA82", +"< c #E6CE9E", +"[ c #AA9272", +"} c #5E5A52", +"| c #AA6242", +"1 c #DAC296", +"2 c #766A56", +"3 c #4A423E", +"4 c #D6B286", +"5 c #F2DEAE", +"6 c #BA8E6A", +"7 c #9E8666", +"8 c #BA724A", +"9 c #DABA8E", +"0 c #BA825A", +"a c #CAA67E", +"b c #EAD2A2", +"c c #6E5E4E", +"d c #3E3632", +"e c #AE6642", +"f c #C69A72", +"g c #DEB286", +"h c #E2BA8A", +"i c #665646", +"j c #BE8A62", +"k c #CA8E5E", +"l c #927A62", +"m c #C27E52", +"n c #A28E72", +"o c #BA6E46", +"p c #CEB28A", +"q c #E2BE92", +"r c #EECEA2", +"s c #F6DEAE", +"t c #5A4E42", +"u c #E6C696", +"v c #AE6A46", +"w c #EED2A2", +"x c #F2D6A6", +"y c #BEAE8E", +"z c #E2C292", +"A c #B6724A", +"B c #CE966E", +"C c #D2A276", +"D c #F6E2BA", +"E c #C2825A", +"F c #363632", +"G c #A26A46", +"H c #EEDAAE", +"I c #B29E7E", +"J c #DEAE82", +"K c #565652", +"L c #826E56", +"M c #CA9A72", +"N c #F6DEB2", +"O c #DEB686", +"P c #AE9A7A", +"Q c #C67A4E", +"R c #E6C292", +"S c #D2B68E", +"T c #F6DEB6", +"U c #6A5A4A", +"V c #DABE96", +"W c #EACA9A", +"X c #CE9266", +"Y c #76624E", +"Z c #FAE2BA", +"` c #D29A72", +" . c #B6A682", +".. c #FAE6C2", +"+. c #BE7A52", +"@. c #36322E", +"#. c #DAA276", +"$. c #82725E", +"%. c #D2AE82", +"&. c #B67A56", +"*. c #C68A5E", +"=. c #E6BE92", +"-. c #EAD6AA", +";. c #E6D2B2", +">. c #EACE9E", +",. c #EAC69A", +"'. c #F2DAAE", +"). c #AA6E4A", +"!. c #564236", +"~. c #B66E4A", +"{. c #E2B686", +"]. c #CA8E66", +"^. c #F2DAB2", +"/. c #D6B68E", +"(. c #A69272", +"_. c #D2A67A", +":. c #D6AE82", +"<. c #F6E2BE", +"[. c #AA6642", +"}. c #B69672", +"|. c #AE724A", +"1. c #4E463A", +"2. c #CA9E76", +"3. c #EACAA2", +"4. c #C2865A", +"5. c #BA764E", +"6. c #AE6E4A", +"7. c #AE7652", +"8. c #C6AE86", +"9. c #5A5246", +"0. c #867662", +"a. c #F2D6AA", +"b. c #EED2AA", +"c. c #2E2A2A", +"d. c #5E564E", +"e. c #BEAA8A", +"f. c #76664E", +"g. c #FAEAC6", +"h. c #E2C296", +"i. c #E6C29A", +"j. c #EACEA2", +"k. c #B29A7E", +"l. c #3E3A36", +"m. c #C69266", +"n. c #DEBA8A", +"o. c #DAB282", +"p. c #32322E", +"q. c #7A6E5E", +"r. c #CAB68E", +"s. c #AA6A46", +"t. c #EAD2A6", +"u. c #D6BE96", +"v. c #96826A", +"w. c #A28A6A", +"x. c #B68662", +"y. c #6A5E4E", +"z. c #D29E6E", +"A. c #E2C69A", +"B. c #F2D6AE", +"C. c #423A32", +"D. c #EACA9E", +"E. c #F2DEB2", +"F. c #E2BA8E", +"G. c #EED6AE", +"H. c #E2B68A", +"I. c #E6CEA6", +"J. c #D6AA7E", +"K. c #EED6AA", +"L. c #D6A67A", +"M. c #B26E4A", +"N. c #E6BA8E", +"O. c #CAB292", +"P. c #BE9A76", +"Q. c #4A463E", +"R. c #DAA67A", +"S. c #DEBE92", +"T. c #BAA686", +"U. c #DAB68A", +"V. c #C6865A", +"W. c #EECEA6", +"X. c #DAAE86", +"Y. c #B2724E", +"Z. c #BE764E", +"`. c #D2BA96", +" + c #BAA286", +".+ c #CAAA86", +"++ c #EED2A6", +"@+ c #DEB68E", +"#+ c #C6926E", +"$+ c #DAB28A", +"%+ c #D29E76", +"&+ c #322E2C", +"*+ c #524236", +"=+ c #7A6A56", +"-+ c #B26642", +";+ c #A68E6E", +">+ c #5E4E3E", +",+ c #D6A276", +"'+ c #3A3632", +")+ c #B69E7C", +"!+ c #CE9A72", +"~+ c #E6C296", +"{+ c #3A322E", +"]+ c #86725C", +"^+ c #CA8A62", +"/+ c #52463A", +"(+ c #CE9E74", +"_+ c #B69A7A", +":+ c #E6C69A", +"<+ c #E2C29A", +"[+ c #FAE2BE", +"}+ c #EAC69E", +"|+ c #E2B68E", +"1+ c #DEB28A", +"2+ c #B2623E", +"3+ c #CEAA7E", +"4+ c #6A5646", +"5+ c #C28A62", +"6+ c #C68256", +"7+ c #7A6252", +"8+ c #CAAE8A", +"9+ c #5E5246", +"0+ c #8A7662", +"a+ c #7A6652", +"b+ c #9A826A", +"c+ c #BA8662", +"d+ c #E6CEA2", +"e+ c #E6CAA2", +"f+ c #A69276", +"g+ c #EACEA6", +"h+ c #F2DEB6", +"i+ c #E2BA92", +"j+ c #DAB68E", +"k+ c #DEBA8E", +"l+ c #DEB68A", +"m+ c #E2C69E", +"n+ c #DAB286", +"o+ c #EEDAB2", +"p+ c #C6926A", +"q+ c #BAA68A", +"r+ c #D2AE86", +"s+ c #D6AE86", +"t+ c #AE724E", +"u+ c #BA7652", +"v+ c #AA6A4A", +"w+ c #423A36", +"x+ c #AA7252", +"y+ c #C2A682", +"z+ c #B6724E", +"A+ c #826E5A", +"B+ c #363232", +"C+ c #D2A67E", +"D+ c #4E463E", +"E+ c #AE7656", +"F+ c #A28A6E", +"G+ c #D6A67E", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . c._ Y n 8+L . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . {+i 0+, %.C 5+k+j.}.. . . . . ", +". . . . . . . . . . . . . . . . . . . c.~ L (.S z ( L.s.[.).v z.b 4 . . . . . ", +". . . . . . . . . . . . . . . d Y F+r.'.^.n.X.L.u :.L.M.*.A o X t.d+d . . . . ", +". . . . . . . . . . &+d.0+T.I.] ..> <.D D.#+% K.$+,.U.M.V.& m 8 % >.>+. . . . ", +". . . Q.f.n a+Y 7 8+>.) ) '.h+E.h+] ^.^.q k+t.>.A.l+:.4.!+V.*.0 n.a.n 3 . . . ", +". . 4+;.-.t.5 = < = ++b K.5 N E.D D > > D D s S.k+1 A.P.J.2.!+!+p+S.w # . . . ", +". . <+g+t.D ^.^.N 5 '.T T K.^.E.T D <.> D D s+a ~+4 :+%.].x+|.7.).%.>.k.. . . ", +". {+d+G.B.^.E.'.E.T D D h+D ] T E.E.5 H '.B.( a.W.W.s+d+x.0 ).Q M.1+>.I . . . ", +". . V H K.T N Z D [+D N ] T E.T D <.> ..> D '.-.h.j.@+% 0 0 &.o +.n+++, . . . ", +". . I t.h+<.> <.> D D '.^.] D D D T D <.<.Z D D.4 9 / A.4 p+m.6.5.f -.P . . . ", +". . 0.K.> <.> 8+% T '.'.^.a.T Z > <.> ] ] ] ++#+l+:+J.S.6 C _.4 a U.-.e.. . . ", +". . >+H D > D Z D D ) s N ) E.h+> > <.....[+i+q = ++i.S.F.5.s.e | Y.W >.' . . ", +". . B+j.> D D > > 3.W.] '.) ) '.D g.g.> > D i.b.++j.:+k+@+v+k +.E A r % a+. . ", +". . 1.G.D > D D ~+H.b.^.i+++'.) N D > > T D '.k+h.z q : (+Y.E & o k b % =+. . ", +". . f.E.<.> D B.J i+> ++F.D.++S.~+h+D > E.E.a.++i+~+:+7.E+v 6+2+Q B t.>.;+. . ", +". . n h+> <.<.<.<.> D K.N.T F.D.D.) E.'.) ) H = = a.K.) : t+s.G z+M = ~+, . . ", +". . O.> ] > D > <.B.W.H ] K.=.D.i+@+$+C+q D.a.q k+N h.5 r 1+` ^+X g+E.d+% c.. ", +". + t.D ..> ..D ] }+}+T T =.j.T E.K.++h.H.q = R.|+i+N.^.] 5 D N ++N = j.% *+. ", +". t H > ..> <.g.h+b.3.> <+W.g =.,.>.#.t.) '.b.j.g K.] T ^.K.5 E.'.N t.O.!.. . ", +". @ '.5 h+D > > Z > <.D ^.3.:+t.= :+g =.l+=.N T 5 Z Z ] K.'.^.a.N <.++T.. . . ", +". ;+K.N ] T T D E.N D T ) q ~+) N ++u =.N.H.g 3.D.i+b.r ) ] ) K.N D b.T.. . . ", +". $ K.T j.E.<.D T N N > }+=.}+h+}+H.j.a.= E.z O D.r a.'.r ) ) K.) E.% I . . . ", +"l.l+H K.T N N h+E.h+D Z > > Z > H r j.F.g ~+j.W q w N 5 ^.a.) t.) 5 d+e.. . . ", +"B+q.7 q u K.E.] T N '.] D > <.> '.K.r =.a.r u g ~+% % =.N E.'.++^.b.I.I . . . ", +". . . K K 7+l _+<+b.E.D <.> E.D ] '.% =.z ~+H H ++S.t.N s B.t.= 5 1 _ 3 . . . ", +". . . . . . . . . 3 U ' .+3.G.] ^.b.D.% ~+R =.H.O D.t.b ++H = ) t.# . . . . . ", +". . . . . . . . . . . . . &+~ * [ /.u D.D.,.% =.q h H.% W a.'.K.++]+. . . . . ", +". . . . . . . . . . . . . . . . . . w+4+l y+R b >.d+% j.d+~+t.++1 9.. . . . . ", +". . . . . . . . . . . . . . . . . . . . . . c.*+7+w.8+q < b j.A.t.p.. . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . {+>+* ! $+y+. . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . '+. . . . . . "}; diff --git a/wmymail/xpm/numbers.xpm b/wmymail/xpm/numbers.xpm new file mode 100644 index 0000000..3aa383c --- /dev/null +++ b/wmymail/xpm/numbers.xpm @@ -0,0 +1,16 @@ +/* XPM */ +static char * numbers_xpm[] = { +"55 9 4 1", +" c None", +". c #282828", +"+ c #D3D3D3", +"@ c #000000", +".+++..@@@..+++..+++..@@@..+++..+++..+++..+++..+++......", +"+...+@...+@...+@...++...++...@+...@@...++...++...+++...", +"+...+@...+@...+@...++...++...@+...@@...++...++...+.++..", +"+...+@...+@...+@...++...++...@+...@@...++...++...+..++.", +".@@@..@@@..+++..+++..+++..+++..+++..@@@..+++..+++....++", +"+...+@...++...@@...+@...+@...++...+@...++...+@...+..++.", +"+...+@...++...@@...+@...+@...++...+@...++...+@...+.++..", +"+...+@...++...@@...+@...+@...++...+@...++...+@...+++...", +".+++..@@@..+++..+++..@@@..+++..+++..@@@..+++..+++......"}; diff --git a/wmymail/xpm/unumbers.xpm b/wmymail/xpm/unumbers.xpm new file mode 100644 index 0000000..e63e9cd --- /dev/null +++ b/wmymail/xpm/unumbers.xpm @@ -0,0 +1,16 @@ +/* XPM */ +static char * unumbers_xpm[] = { +"55 9 4 1", +" c None", +". c #282828", +"+ c #7FFFD4", +"@ c #000000", +".+++..@@@..+++..+++..@@@..+++..+++..+++..+++..+++......", +"+...+@...+@...+@...++...++...@+...@@...++...++...+++...", +"+...+@...+@...+@...++...++...@+...@@...++...++...+.++..", +"+...+@...+@...+@...++...++...@+...@@...++...++...+..++.", +".@@@..@@@..+++..+++..+++..+++..+++..@@@..+++..+++....++", +"+...+@...++...@@...+@...+@...++...+@...++...+@...+..++.", +"+...+@...++...@@...+@...+@...++...+@...++...+@...+.++..", +"+...+@...++...@@...+@...+@...++...+@...++...+@...+++...", +".+++..@@@..+++..+++..@@@..+++..+++..@@@..+++..+++......"};