home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-04-27 | 58.2 KB | 1,715 lines |
- Newsgroups: comp.sources.x
- From: markham@cadence.com (Jeff Markham)
- Subject: v19i033: xmail - X Window System interface to the mail program, Part08/10
- Message-ID: <1993Mar10.203020.11267@sparky.imd.sterling.com>
- X-Md4-Signature: 4097e66901269bb1a30e2f477b5fd442
- Date: Wed, 10 Mar 1993 20:30:20 GMT
- Approved: chris@sparky.imd.sterling.com
-
- Submitted-by: markham@cadence.com (Jeff Markham)
- Posting-number: Volume 19, Issue 33
- Archive-name: xmail/part08
- Environment: X11
- Supersedes: xmail: Volume 15, Issue 18-26
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # Contents: Makefile Makefile_R5 XMail.ad global.h handler.c
- # Wrapped by chris@sparky on Wed Mar 10 14:17:51 1993
- PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 8 (of 10)."'
- if test -f 'Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Makefile'\"
- else
- echo shar: Extracting \"'Makefile'\" \(11265 characters\)
- sed "s/^X//" >'Makefile' <<'END_OF_FILE'
- X# Makefile generated by imake - do not edit!
- X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
- X#
- X# The cpp used on this machine replaces all newlines and multiple tabs and
- X# spaces in a macro expansion with a single space. Imake tries to compensate
- X# for this, but is not always successful.
- X#
- X
- X###########################################################################
- X# Makefile generated from "Imake.tmpl" and <Imakefile>
- X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
- X#
- X# Platform-specific parameters may be set in the appropriate .cf
- X# configuration files. Site-wide parameters may be set in the file
- X# site.def. Full rebuilds are recommended if any parameters are changed.
- X#
- X# If your C preprocessor doesn't define any unique symbols, you'll need
- X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
- X# "make Makefile", "make Makefiles", or "make World").
- X#
- X# If you absolutely can't get imake to work, you'll need to set the
- X# variables at the top of each Makefile as well as the dependencies at the
- X# bottom (makedepend will do this automatically).
- X#
- X
- X###########################################################################
- X# platform-specific configuration parameters - edit sun.cf to change
- X
- X# platform: $XConsortium: sun.cf,v 1.38 89/12/23 16:10:10 jim Exp $
- X# operating system: SunOS 4.1.1
- X
- X###########################################################################
- X# site-specific configuration parameters - edit site.def to change
- X
- X# site: $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
- X
- X SHELL = /bin/sh
- X
- X TOP = .
- X CURRENT_DIR = .
- X
- X AR = ar cq
- X BOOTSTRAPCFLAGS =
- X CC = cc
- X
- X COMPRESS = compress
- X CPP = /lib/cpp $(STD_CPP_DEFINES)
- X PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
- X INSTALL = install
- X LD = ld
- X LINT = lint
- X LINTLIBFLAG = -C
- X LINTOPTS = -axz
- X LN = ln -s
- X MAKE = make
- X MV = mv
- X CP = cp
- X RANLIB = ranlib
- X RANLIBINSTFLAGS =
- X RM = rm -f
- X STD_INCLUDES =
- X STD_CPP_DEFINES =
- X STD_DEFINES =
- X EXTRA_LOAD_FLAGS =
- X EXTRA_LIBRARIES =
- X TAGS = ctags
- X
- X SHAREDCODEDEF = -DSHAREDCODE
- X SHLIBDEF = -DSUNSHLIB
- X
- X PROTO_DEFINES =
- X
- X INSTPGMFLAGS =
- X
- X INSTBINFLAGS = -m 0755
- X INSTUIDFLAGS = -m 4755
- X INSTLIBFLAGS = -m 0664
- X INSTINCFLAGS = -m 0444
- X INSTMANFLAGS = -m 0444
- X INSTDATFLAGS = -m 0444
- X INSTKMEMFLAGS = -m 4755
- X
- X DESTDIR =
- X
- X TOP_INCLUDES = -I$(INCROOT)
- X
- X CDEBUGFLAGS = -O
- X CCOPTIONS = -pipe
- X COMPATFLAGS =
- X
- X ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
- X ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)
- X CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
- X LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
- X LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
- X LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
- X LDCOMBINEFLAGS = -X -r
- X
- X MACROFILE = sun.cf
- X RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
- X
- X IMAKE_DEFINES =
- X
- X IRULESRC = $(CONFIGDIR)
- X IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
- X
- X ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
- X $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
- X $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
- X
- X###########################################################################
- X# X Window System Build Parameters
- X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
- X
- X###########################################################################
- X# X Window System make variables; this need to be coordinated with rules
- X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
- X
- X PATHSEP = /
- X USRLIBDIR = $(DESTDIR)/usr/lib
- X BINDIR = $(DESTDIR)/usr/bin/X11
- X INCROOT = $(DESTDIR)/usr/include
- X BUILDINCROOT = $(TOP)
- X BUILDINCDIR = $(BUILDINCROOT)/X11
- X BUILDINCTOP = ..
- X INCDIR = $(INCROOT)/X11
- X ADMDIR = $(DESTDIR)/usr/adm
- X LIBDIR = $(USRLIBDIR)/X11
- X CONFIGDIR = $(LIBDIR)/config
- X LINTLIBDIR = $(USRLIBDIR)/lint
- X
- X FONTDIR = $(LIBDIR)/fonts
- X XINITDIR = $(LIBDIR)/xinit
- X XDMDIR = $(LIBDIR)/xdm
- X AWMDIR = $(LIBDIR)/awm
- X TWMDIR = $(LIBDIR)/twm
- X GWMDIR = $(LIBDIR)/gwm
- X MANPATH = $(DESTDIR)/usr/man
- X MANSOURCEPATH = $(MANPATH)/man
- X MANDIR = $(MANSOURCEPATH)1
- X LIBMANDIR = $(MANSOURCEPATH)3
- X XAPPLOADDIR = $(LIBDIR)/app-defaults
- X
- X SOXLIBREV = 4.2
- X SOXTREV = 4.0
- X SOXAWREV = 4.0
- X SOOLDXREV = 4.0
- X SOXMUREV = 4.0
- X SOXEXTREV = 4.0
- X
- X FONTCFLAGS = -t
- X
- X INSTAPPFLAGS = $(INSTDATFLAGS)
- X
- X IMAKE = imake
- X DEPEND = makedepend
- X RGB = rgb
- X FONTC = bdftosnf
- X MKFONTDIR = mkfontdir
- X MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier.sh
- X
- X CONFIGSRC = $(TOP)/config
- X CLIENTSRC = $(TOP)/clients
- X DEMOSRC = $(TOP)/demos
- X LIBSRC = $(TOP)/lib
- X FONTSRC = $(TOP)/fonts
- X INCLUDESRC = $(TOP)/X11
- X SERVERSRC = $(TOP)/server
- X UTILSRC = $(TOP)/util
- X SCRIPTSRC = $(UTILSRC)/scripts
- X EXAMPLESRC = $(TOP)/examples
- X CONTRIBSRC = $(TOP)/../contrib
- X DOCSRC = $(TOP)/doc
- X RGBSRC = $(TOP)/rgb
- X DEPENDSRC = $(UTILSRC)/makedepend
- X IMAKESRC = $(CONFIGSRC)
- X XAUTHSRC = $(LIBSRC)/Xau
- X XLIBSRC = $(LIBSRC)/X
- X XMUSRC = $(LIBSRC)/Xmu
- X TOOLKITSRC = $(LIBSRC)/Xt
- X AWIDGETSRC = $(LIBSRC)/Xaw
- X OLDXLIBSRC = $(LIBSRC)/oldX
- X XDMCPLIBSRC = $(LIBSRC)/Xdmcp
- X BDFTOSNFSRC = $(FONTSRC)/bdftosnf
- X MKFONTDIRSRC = $(FONTSRC)/mkfontdir
- X EXTENSIONSRC = $(TOP)/extensions
- X
- X DEPEXTENSIONLIB = $(USRLIBDIR)/libXext.a
- X EXTENSIONLIB = -lXext
- X
- X DEPXLIB = $(DEPEXTENSIONLIB)
- X XLIB = $(EXTENSIONLIB) -lX11
- X
- X DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
- X XAUTHLIB = -lXau
- X
- X DEPXMULIB =
- X XMULIB = -lXmu
- X
- X DEPOLDXLIB =
- X OLDXLIB = -loldX
- X
- X DEPXTOOLLIB =
- X XTOOLLIB = -lXt
- X
- X DEPXAWLIB =
- X XAWLIB = -lXaw
- X
- X DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a
- X XDMCPLIB = -lXdmcp
- X
- X LINTEXTENSIONLIB = $(USRLIBDIR)/llib-lXext.ln
- X LINTXLIB = $(USRLIBDIR)/llib-lX11.ln
- X LINTXMU = $(USRLIBDIR)/llib-lXmu.ln
- X LINTXTOOL = $(USRLIBDIR)/llib-lXt.ln
- X LINTXAW = $(USRLIBDIR)/llib-lXaw.ln
- X
- X DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
- X
- X DEPLIBS1 = $(DEPLIBS)
- X DEPLIBS2 = $(DEPLIBS)
- X DEPLIBS3 = $(DEPLIBS)
- X
- X###########################################################################
- X# Imake rules for building libraries, programs, scripts, and data files
- X# rules: $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $
- X
- X###########################################################################
- X# start of Imakefile
- X
- X#
- X# @(#)Imakefile - for xmail version 1 patchlevel 5
- X#
- X# Uncomment USE_DIRENT if readdir() uses <dirent.h> instead of <sys/dir.h>
- X#
- X USE_DIRENT = -DUSE_DIRENT
- X#
- X# Uncomment X_FACE and COMPFACE if you have the compface library installed
- X# and you want xmail to automatically display the X-Face: header, if found
- X# in a message.
- X#
- X# X_FACE = -DX_FACE
- X# COMPFACE = -lcompface
- X#
- X# Uncomment XPM if you have the Xpm version 3 library and want color icons
- X#
- X# XPM = -DXPM
- X# LIBXPM = -lXpm
- X#
- X# Uncomment LPT if you require att environment support for pseudo ports.
- X#
- X# LPT = -lpt
- X#
- X# Uncomment REGEXP if your system supplies the regexp.h include file.
- X# Otherwise, xmail will use the regex procedures re_comp and re_exec.
- X#
- X# REGEXP = -DUSE_REGEXP
- X#
- X# Define MAILBOX_DIRECTORY if your mail spool is located in other than the
- X# default /usr/spool/mail. (If not specified, the default will be used.)
- X#
- X# MAILBOX_DIR = -DMAILBOX_DIRECTORY=\"/usr/spool/mail\"
- X#
- X# Define DEFAULT_VISUAL if your copy of vi lies in some place other than
- X# /usr/ucb. (If not specified, /usr/ucb/vi will be the default editor.)
- X#
- X# DEF_VISUAL = -DDEFAULT_VISUAL=\"/usr/ucb/vi\"
- X#
- X# Define DEFAULT_MAILER if your mail program is not the standard
- X# /usr/ucb/Mail. CAUTION - Operation is NOT guaranteed with other mailers.
- X#
- X# DEF_MAILER = -DDEFAULT_MAILER=\"/usr/ucb/Mail\"
- X#
- X# Define SIGACTION if your system utilizes the sigaction() call rather
- X# than the sigvec() call (true on most SYSV and POSIX compilant systems)
- X# You may also need to add the following BSD define (true on SGI systems)
- X#
- X# SIGDEF = -D_BSD_SIGNALS
- X#
- X# SIGACT = -DSIGACTION
- X#
- X
- X XMAIL_DEFINES = $(MAILBOX_DIR) $(DEF_VISUAL) $(DEF_MAILER) $(SIGACT) $(SIGDEF)
- X DEFINES = $(USE_DIRENT) $(X_FACE) $(XPM) $(REGEXP) $(XMAIL_DEFINES)
- X
- X DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
- XLOCAL_LIBRARIES = $(LIBXPM) $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) $(COMPFACE) $(LPT)
- X
- X SRCS = Mailwatch.c HelpText.c actions.c callMail.c callbacks.c \
- X confirm.c directory.c environs.c handler.c mail.c parser.c \
- X utils.c windows.c xmail.c
- X
- X OBJS = Mailwatch.o HelpText.o actions.o callMail.o callbacks.o \
- X confirm.o directory.o environs.o handler.o mail.o parser.o \
- X utils.o windows.o xmail.o
- X
- X PROGRAM = xmail
- X
- Xall:: xmail
- X
- Xxmail: $(OBJS) $(DEPLIBS)
- X $(RM) $@
- X $(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
- X
- Xsaber_xmail:
- X #load $(ALLDEFINES) $(SRCS) $(LOCAL_LIBRARIES) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
- X
- Xosaber_xmail:
- X #load $(ALLDEFINES) $(OBJS) $(LOCAL_LIBRARIES) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
- X
- Xinstall:: xmail
- X $(INSTALL) -c $(INSTPGMFLAGS) xmail $(BINDIR)
- X
- Xinstall.man:: xmail.man
- X $(INSTALL) -c $(INSTMANFLAGS) xmail.man $(MANDIR)/xmail.1
- X
- Xdepend::
- X $(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
- X
- Xlint:
- X $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
- Xlint1:
- X $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
- X
- Xclean::
- X $(RM) $(PROGRAM)
- X
- Xinstall:: XMail.ad
- X $(INSTALL) -c $(INSTAPPFLAGS) XMail.ad $(XAPPLOADDIR)/XMail
- X
- X###########################################################################
- X# common rules for all Makefiles - do not edit
- X
- Xemptyrule::
- X
- Xclean::
- X $(RM_CMD) \#*
- X
- XMakefile::
- X -@if [ -f Makefile ]; then \
- X echo " $(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
- X $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
- X else exit 0; fi
- X $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
- X
- Xtags::
- X $(TAGS) -w *.[ch]
- X $(TAGS) -xw *.[ch] > TAGS
- X
- Xsaber:
- X #load $(ALLDEFINES) $(SRCS)
- X
- Xosaber:
- X #load $(ALLDEFINES) $(OBJS)
- X
- X###########################################################################
- X# empty rules for directories that do not have SUBDIRS - do not edit
- X
- Xinstall::
- X @echo "install in $(CURRENT_DIR) done"
- X
- Xinstall.man::
- X @echo "install.man in $(CURRENT_DIR) done"
- X
- XMakefiles::
- X
- Xincludes::
- X
- X###########################################################################
- X# dependencies generated by makedepend
- X
- END_OF_FILE
- if test 11265 -ne `wc -c <'Makefile'`; then
- echo shar: \"'Makefile'\" unpacked with wrong size!
- fi
- # end of 'Makefile'
- fi
- if test -f 'Makefile_R5' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Makefile_R5'\"
- else
- echo shar: Extracting \"'Makefile_R5'\" \(11594 characters\)
- sed "s/^X//" >'Makefile_R5' <<'END_OF_FILE'
- X# Makefile generated by imake - do not edit!
- X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
- X#
- X# The cpp used on this machine replaces all newlines and multiple tabs and
- X# spaces in a macro expansion with a single space. Imake tries to compensate
- X# for this, but is not always successful.
- X#
- X
- X###########################################################################
- X# Makefile generated from "Imake.tmpl" and <Imakefile>
- X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
- X#
- X# Platform-specific parameters may be set in the appropriate .cf
- X# configuration files. Site-wide parameters may be set in the file
- X# site.def. Full rebuilds are recommended if any parameters are changed.
- X#
- X# If your C preprocessor doesn't define any unique symbols, you'll need
- X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
- X# "make Makefile", "make Makefiles", or "make World").
- X#
- X# If you absolutely can't get imake to work, you'll need to set the
- X# variables at the top of each Makefile as well as the dependencies at the
- X# bottom (makedepend will do this automatically).
- X#
- X
- X###########################################################################
- X# platform-specific configuration parameters - edit sun.cf to change
- X
- X# platform: $XConsortium: sun.cf,v 1.38 89/12/23 16:10:10 jim Exp $
- X# operating system: SunOS 4.0.3
- X
- X###########################################################################
- X# site-specific configuration parameters - edit site.def to change
- X
- X# site: $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
- X
- X SHELL = /bin/sh
- X
- X TOP = .
- X CURRENT_DIR = .
- X
- X AR = ar cq
- X BOOTSTRAPCFLAGS =
- X CC = cc
- X
- X COMPRESS = compress
- X CPP = /lib/cpp $(STD_CPP_DEFINES)
- X PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
- X INSTALL = install
- X LD = ld
- X LINT = lint
- X LINTLIBFLAG = -C
- X LINTOPTS = -axz
- X LN = ln -s
- X MAKE = make
- X MV = mv
- X CP = cp
- X RANLIB = ranlib
- X RANLIBINSTFLAGS =
- X RM = rm -f
- X STD_INCLUDES =
- X STD_CPP_DEFINES =
- X STD_DEFINES =
- X EXTRA_LOAD_FLAGS =
- X EXTRA_LIBRARIES =
- X TAGS = ctags
- X
- X SHAREDCODEDEF = -DSHAREDCODE
- X SHLIBDEF = -DSUNSHLIB
- X
- X PROTO_DEFINES =
- X
- X INSTPGMFLAGS = -s -m 0755
- X
- X INSTBINFLAGS = -m 0755
- X INSTUIDFLAGS = -m 4755
- X INSTLIBFLAGS = -m 0664
- X INSTINCFLAGS = -m 0444
- X INSTMANFLAGS = -m 0444
- X INSTDATFLAGS = -m 0444
- X INSTKMEMFLAGS = -m 4755
- X
- X DESTDIR =
- X
- X TOP_INCLUDES = -I$(INCROOT)
- X
- X CDEBUGFLAGS = -O
- X CCOPTIONS =
- X COMPATFLAGS =
- X
- X ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
- X ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)
- X CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
- X LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
- X LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
- X LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
- X LDCOMBINEFLAGS = -X -r
- X
- X MACROFILE = sun.cf
- X RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
- X
- X IMAKE_DEFINES =
- X
- X IRULESRC = $(CONFIGDIR)
- X IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
- X
- X ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
- X $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
- X $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
- X
- X###########################################################################
- X# X Window System Build Parameters
- X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
- X
- X###########################################################################
- X# X Window System make variables; this need to be coordinated with rules
- X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
- X
- X PATHSEP = /
- X USRLIBDIR = $(DESTDIR)/usr/lib
- X BINDIR = $(DESTDIR)/usr/bin/X11
- X INCROOT = $(DESTDIR)/usr/include
- X BUILDINCROOT = $(TOP)
- X BUILDINCDIR = $(BUILDINCROOT)/X11
- X BUILDINCTOP = ..
- X INCDIR = $(INCROOT)/X11
- X ADMDIR = $(DESTDIR)/usr/adm
- X LIBDIR = $(USRLIBDIR)/X11
- X CONFIGDIR = $(LIBDIR)/config
- X LINTLIBDIR = $(USRLIBDIR)/lint
- X
- X FONTDIR = $(LIBDIR)/fonts
- X XINITDIR = $(LIBDIR)/xinit
- X XDMDIR = $(LIBDIR)/xdm
- X AWMDIR = $(LIBDIR)/awm
- X TWMDIR = $(LIBDIR)/twm
- X GWMDIR = $(LIBDIR)/gwm
- X MANPATH = $(DESTDIR)/usr/man
- X MANSOURCEPATH = $(MANPATH)/man
- X MANDIR = $(MANSOURCEPATH)n
- X LIBMANDIR = $(MANSOURCEPATH)3
- X XAPPLOADDIR = $(LIBDIR)/app-defaults
- X
- X SOXLIBREV = 4.2
- X SOXTREV = 4.0
- X SOXAWREV = 4.0
- X SOOLDXREV = 4.0
- X SOXMUREV = 4.0
- X SOXEXTREV = 4.0
- X
- X FONTCFLAGS = -t
- X
- X INSTAPPFLAGS = $(INSTDATFLAGS)
- X
- X IMAKE = imake
- X DEPEND = makedepend
- X RGB = rgb
- X FONTC = bdftosnf
- X MKFONTDIR = mkfontdir
- X MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier.sh
- X
- X CONFIGSRC = $(TOP)/config
- X CLIENTSRC = $(TOP)/clients
- X DEMOSRC = $(TOP)/demos
- X LIBSRC = $(TOP)/lib
- X FONTSRC = $(TOP)/fonts
- X INCLUDESRC = $(TOP)/X11
- X SERVERSRC = $(TOP)/server
- X UTILSRC = $(TOP)/util
- X SCRIPTSRC = $(UTILSRC)/scripts
- X EXAMPLESRC = $(TOP)/examples
- X CONTRIBSRC = $(TOP)/../contrib
- X DOCSRC = $(TOP)/doc
- X RGBSRC = $(TOP)/rgb
- X DEPENDSRC = $(UTILSRC)/makedepend
- X IMAKESRC = $(CONFIGSRC)
- X XAUTHSRC = $(LIBSRC)/Xau
- X XLIBSRC = $(LIBSRC)/X
- X XMUSRC = $(LIBSRC)/Xmu
- X TOOLKITSRC = $(LIBSRC)/Xt
- X AWIDGETSRC = $(LIBSRC)/Xaw
- X OLDXLIBSRC = $(LIBSRC)/oldX
- X XDMCPLIBSRC = $(LIBSRC)/Xdmcp
- X BDFTOSNFSRC = $(FONTSRC)/bdftosnf
- X MKFONTDIRSRC = $(FONTSRC)/mkfontdir
- X EXTENSIONSRC = $(TOP)/extensions
- X
- X DEPEXTENSIONLIB = $(USRLIBDIR)/libXext.a
- X EXTENSIONLIB = -lXext
- X
- X DEPXLIB = $(DEPEXTENSIONLIB)
- X XLIB = $(EXTENSIONLIB) -lX11
- X
- X DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
- X XAUTHLIB = -lXau
- X
- X DEPXMULIB =
- X XMULIB = -lXmu
- X
- X DEPOLDXLIB =
- X OLDXLIB = -loldX
- X
- X DEPXTOOLLIB =
- X XTOOLLIB = -lXt
- X
- X DEPXAWLIB =
- X XAWLIB = -lXaw
- X
- X LINTEXTENSIONLIB = $(USRLIBDIR)/llib-lXext.ln
- X LINTXLIB = $(USRLIBDIR)/llib-lX11.ln
- X LINTXMU = $(USRLIBDIR)/llib-lXmu.ln
- X LINTXTOOL = $(USRLIBDIR)/llib-lXt.ln
- X LINTXAW = $(USRLIBDIR)/llib-lXaw.ln
- X
- X DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
- X
- X DEPLIBS1 = $(DEPLIBS)
- X DEPLIBS2 = $(DEPLIBS)
- X DEPLIBS3 = $(DEPLIBS)
- X
- X USRINCDIR = $(DESTDIR)/usr/include
- X TESTSRC = $(TOP)/tests
- X MTOOLKITSRC = $(LIBSRC)/Xt
- X MWIDGETSRC = $(LIBSRC)/Xm
- X MRESOURCESRC = $(LIBSRC)/Mrm
- X UILSRC = $(CLIENTSRC)/uil
- X UIL = $(UILSRC)/uil
- X XMTOOLLIB = $(MTOOLKITSRC)/libXt.a
- X XMLIB = $(MWIDGETSRC)/libXm.a
- X MRESOURCELIB = $(MRESOURCESRC)/libMrm.a
- X UILLIB = $(UILSRC)/libUil.a
- X LINTMRESOURCE = $(MRESOURCESRC)/libMrm.a
- XLINTXMWIDGETLIB = $(MWIDGETSRC)/llib-l/Xm.ln
- X LINTXMTOOL = $(MTOOLKITSRC)/llib-lXt.ln
- X LINTUILLIB = $(UILSRC)/llib-lUil.ln
- X SYSLIBS = -lXt -lX11
- X MWM_DEFINES = -DSHAPE -DOPAQUE -DSTRINGS_ALIGNED -D_NO_PROTO -DNO_REGEX
- X
- X###########################################################################
- X# Imake rules for building libraries, programs, scripts, and data files
- X# rules: $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $
- X
- X###########################################################################
- X# start of Imakefile
- X
- X#
- X# @(#)Imakefile - for xmail version 1 patchlevel 5
- X#
- X# Uncomment USE_DIRENT if readdir() uses <dirent.h> instead of <sys/dir.h>
- X#
- X USE_DIRENT = -DUSE_DIRENT
- X#
- X# Uncomment X_FACE and COMPFACE if you have the compface library installed
- X# and you want xmail to automatically display the X-Face: header, if found
- X# in a message.
- X#
- X X_FACE = -DX_FACE
- X COMPFACE = -lcompface
- X#
- X# Uncomment XPM if you have the Xpm version 3 library and want color icons
- X#
- X XPM = -DXPM
- X LIBXPM = -lXpm
- X#
- X# Uncomment LPT if you require att environment support for pseudo ports.
- X#
- X# LPT = -lpt
- X#
- X# Uncomment REGEXP if your system supplies the regexp.h include file.
- X# Otherwise, xmail will use the regex procedures re_comp and re_exec.
- X#
- X# REGEXP = -DUSE_REGEXP
- X#
- X# Define MAILBOX_DIRECTORY if your mail spool is located in other than the
- X# default /usr/spool/mail. (If not specified, the default will be used.)
- X#
- X# MAILBOX_DIR = -DMAILBOX_DIRECTORY=\"/usr/spool/mail\"
- X#
- X# Define DEFAULT_VISUAL if your copy of vi lies in some place other than
- X# /usr/ucb. (If not specified, /usr/ucb/vi will be the default editor.)
- X#
- X# DEF_VISUAL = -DDEFAULT_VISUAL=\"/usr/ucb/vi\"
- X#
- X# Define DEFAULT_MAILER if your mail program is not the standard
- X# /usr/ucb/Mail. CAUTION - Operation is NOT guaranteed with other mailers.
- X#
- X# DEF_MAILER = -DDEFAULT_MAILER=\"/usr/ucb/Mail\"
- X#
- X# Define SIGACTION if your system utilizes the sigaction() call rather
- X# than the sigvec() call (true on most SYSV and POSIX compilant systems)
- X# You may also need to add the following BSD define (true on SGI systems)
- X#
- X# SIGDEF = -D_BSD_SIGNALS
- X#
- X# SIGACT = -DSIGACTION
- X#
- X
- X XMAIL_DEFINES = $(MAILBOX_DIR) $(DEF_VISUAL) $(DEF_MAILER) $(SIGACT) $(SIGDEF)
- X DEFINES = $(USE_DIRENT) $(X_FACE) $(XPM) $(REGEXP) $(XMAIL_DEFINES)
- X
- X DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
- XLOCAL_LIBRARIES = $(LIBXPM) $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) $(COMPFACE) $(LPT)
- X
- X SRCS = Mailwatch.c HelpText.c actions.c callMail.c callbacks.c \
- X confirm.c directory.c environs.c handler.c mail.c parser.c \
- X utils.c windows.c xmail.c
- X
- X OBJS = Mailwatch.o HelpText.o actions.o callMail.o callbacks.o \
- X confirm.o directory.o environs.o handler.o mail.o parser.o \
- X utils.o windows.o xmail.o
- X
- X PROGRAM = xmail
- X
- Xall:: xmail
- X
- Xxmail: $(OBJS) $(DEPLIBS)
- X $(RM) $@
- X $(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
- X
- Xinstall:: xmail
- X $(INSTALL) -c $(INSTPGMFLAGS) xmail $(BINDIR)
- X
- Xinstall.man:: xmail.man
- X $(INSTALL) -c $(INSTMANFLAGS) xmail.man $(MANDIR)/xmail.n
- X
- Xdepend::
- X $(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
- X
- Xlint:
- X $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
- Xlint1:
- X $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
- X
- Xclean::
- X $(RM) $(PROGRAM)
- X
- Xinstall:: XMail.ad
- X $(INSTALL) -c $(INSTAPPFLAGS) XMail.ad $(XAPPLOADDIR)/XMail
- X
- X###########################################################################
- X# common rules for all Makefiles - do not edit
- X
- Xemptyrule::
- X
- Xclean::
- X $(RM_CMD) \#*
- X
- XMakefile::
- X -@if [ -f Makefile ]; then \
- X echo " $(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
- X $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
- X else exit 0; fi
- X $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
- X
- Xtags::
- X $(TAGS) -w *.[ch]
- X $(TAGS) -xw *.[ch] > TAGS
- X
- X###########################################################################
- X# empty rules for directories that do not have SUBDIRS - do not edit
- X
- Xinstall::
- X @echo "install in $(CURRENT_DIR) done"
- X
- Xinstall.man::
- X @echo "install.man in $(CURRENT_DIR) done"
- X
- XMakefiles::
- X
- Xincludes::
- X
- X###########################################################################
- X# dependencies generated by makedepend
- X
- END_OF_FILE
- if test 11594 -ne `wc -c <'Makefile_R5'`; then
- echo shar: \"'Makefile_R5'\" unpacked with wrong size!
- fi
- # end of 'Makefile_R5'
- fi
- if test -f 'XMail.ad' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'XMail.ad'\"
- else
- echo shar: Extracting \"'XMail.ad'\" \(10253 characters\)
- sed "s/^X//" >'XMail.ad' <<'END_OF_FILE'
- X! XMail resource default definitions for xmail version 1.5
- X!
- X! DO NOT use the wildcard (*) entry on the geometry specification, or it
- X! will force all popups to initially anchor with those same coordinates.
- X!
- X! The color suggestions in this resource file are commented out by default, in
- X! deference to sites who's monochrome displays do not find them complimentary.
- X! The colors were original chosen for compatability, their complimentary
- X! nature in relation to the actions of buttons they are assigned to, and also
- X! to provide adequate support if the application is run on a monochrome display
- X! with these color definitions uncommented. They do work, at least on a Sun.
- X! You may uncomment, and/or alter these choices to suit your own preferences.
- X!
- X! The color choices utilized in this application defaults file are:
- X!
- X! ff0000 - red ffff00 - yellow 0000ff - blue
- X! 00ff00 - green 00ffff - cyan 00cd00 - green3
- X! ffffff - white 000000 - black afeeee - paleturquoise
- X! 2e8b57 - seagreen a52a2a - brown eedd82 - lightgoldenrod
- X! d2b48c - tan daa520 - goldenrod 7fff00 - chartreuse
- X! f0e68c - khaki ffe4e1 - mistyrose fffacd - lemonchiffon
- X!
- X! *expert: True
- X! .geometry: +65+3
- X! *iconGeometry: +835+0
- X! *shapeStyle: oval
- X!
- X! *Abort.background: white
- X! *Abort.foreground: red
- X*Abort.translations: #override <Btn2Down>: ShowHelp()
- X! *Autograph.background: cyan
- X*Autograph.translations: #override <Btn2Down>: ShowHelp()
- X! *autograph.background: paleturquoise
- X*autograph.translations: #override <Btn2Down>: ShowHelp()
- X! *aliasList*Background: tan
- X! *aliasList.table.entry.background: cyan
- X! *alwaysignore*foreground: seagreen
- X! *noalwaysignore*foreground: red
- X! *autoprint*foreground: seagreen
- X! *noautoprint*foreground: red
- X! *background: yellow
- X! *borderColor: brown
- X! *Bcc.background: cyan
- X! *Bcc*AsciiSink*Background: cyan
- X*Bcc*scrollHorizontal: whenNeeded
- X*Bcc*Thickness: 5
- X*Bcc*MinimumThumb: 3
- X! *Cancel.background: mistyrose
- X! *Cancel.foreground: black
- X*Cancel.translations: #override <Btn2Down>: ShowHelp()
- X! *Cc.background: cyan
- X! *Cc*AsciiSink*Background: cyan
- X*Cc*scrollHorizontal: whenNeeded
- X*Cc*Thickness: 5
- X*Cc*MinimumThumb: 3
- X! *Copy.foreground: blue
- X! *commandPanel.background: goldenrod
- X! *copy.background: cyan
- X! *Deliver.background: green
- X! *Deliver.foreground: brown
- X! *Deliver.borderColor: brown
- X*Deliver.translations: #override <Btn2Down>: ShowHelp()
- X! *delete.foreground: red
- X! *delete.background: white
- X! *Drop.foreground: red
- X! *editheaders*foreground: seagreen
- X! *noeditheaders*foreground: red
- X! *editorCommand: xterm -name XMail -title "Message Edit" -display %s -e vi %s
- X! *exit.foreground: blue
- X! *expert*foreground: seagreen
- X! *noexpert*foreground: red
- X! *Folder.background: cyan
- X! *Font: *-courier-bold-r-normal--14-*
- X! *fileWindow*background: chartreuse
- X*fileWindow*scrollHorizontal: whenNeeded
- X*fileWindow*Thickness: 5
- X*fileWindow*MinimumThumb: 3
- X! *foreground: brown
- X! *forward.foreground: green3
- X! *full.foreground: red
- X*grip*foreground: brown
- X! *hold*foreground: seagreen
- X! *nohold*foreground: red
- X! *icon*background: lightgoldenrod
- X! *icon*foreground: brown
- X! *inc.background: cyan
- X! *indexWindow*background: lemonchiffon
- X*indexWindow*scrollHorizontal: whenNeeded
- X*indexWindow*Thickness: 10
- X*indexWindow*MinimumThumb: 5
- X! *list.background: tan
- X! *menu.background: tan
- X! *menubutton.foreground: brown
- X! *menubutton.background: cyan
- X! *Newmail.foreground: blue
- X! *previous.foreground: blue
- X! *quit.foreground: red
- X! *quit.background: white
- X! *read.foreground: green3
- X! *ReEdit.background: khaki
- X! *ReEdit.foreground: brown
- X*ReEdit.translations: #override <Btn2Down>: ShowHelp()
- X! *replyall.background: green
- X! *save.background: cyan
- X! *Save.foreground: blue
- X! *set_menu.background: tan
- X*statusWindow.background: brown
- X*statusWindow.foreground: yellow
- X! *Subject.background: cyan
- X! *Subject*AsciiSink*Background: cyan
- X*Subject*scrollHorizontal: whenNeeded
- X*Subject*Thickness: 5
- X*Subject*MinimumThumb: 3
- X! *textWindow*background: lemonchiffon
- X*textWindow.text*Wrap: word
- X! *textWindow.face.background: white
- X*textWindow*Thickness: 10
- X*textWindow*MinimumThumb: 5
- X*titleBar*Background: brown
- X*titleBar*Foreground: yellow
- X*titleBar.logo.background: white
- X*titleBar.logo.foreground: blue
- X! *To.Background: cyan
- X! *To*AsciiSink*Background: cyan
- X*To*scrollHorizontal: whenNeeded
- X*To*Thickness: 5
- X*To*MinimumThumb: 3
- X! *undelete.foreground: green3
- X! *write.foreground: green3
- X! *Write.foreground: red
- X!
- X*Bcc.translations: #override \n\
- X <Key>Delete: delete-previous-character() \n\
- X <Key>BackSpace: delete-previous-character() \n\
- X Meta <Key>A: DoDone(Cancel) \n\
- X Meta <Key>C: DoDone(cancel) \n\
- X Meta <Key>D: DoDone(Deliver) \n\
- X Ctrl <Key>H: delete-previous-character() \n\
- X Meta <Key>R: DoDone(ReEdit) \n\
- X Meta <Key>S: DoDone(Autograph) \n\
- X Ctrl <Key>U: beginning-of-line() kill-to-end-of-line() \n\
- X Ctrl <Key>W: delete-previous-word() \n\
- X Meta <Key>X: DoDone(autograph) \n\
- X <Btn3Down>: SetAliases() \n\
- X <Key>Return: NextField()
- X!
- X*Cc.translations: #override \n\
- X <Key>Delete: delete-previous-character() \n\
- X <Key>BackSpace: delete-previous-character() \n\
- X Meta <Key>A: DoDone(Cancel) \n\
- X Meta <Key>C: DoDone(cancel) \n\
- X Meta <Key>D: DoDone(Deliver) \n\
- X Ctrl <Key>H: delete-previous-character() \n\
- X Meta <Key>R: DoDone(ReEdit) \n\
- X Meta <Key>S: DoDone(Autograph) \n\
- X Ctrl <Key>U: beginning-of-line() kill-to-end-of-line() \n\
- X Ctrl <Key>W: delete-previous-word() \n\
- X Meta <Key>X: DoDone(autograph) \n\
- X <Btn3Down>: SetAliases() \n\
- X <Key>Return: NextField()
- X!
- X*indexWindow.translations: \
- X Ctrl <Key>L: redraw-display() \n\
- X Ctrl <Key>V: next-page() \n\
- X Ctrl <Key>Z: scroll-one-line-up() \n\
- X Meta <Key>Q: DoNothing() \n\
- X Meta <Key>V: previous-page() \n\
- X Meta <Key>Z: scroll-one-line-down() \n\
- X Meta <Key><: beginning-of-file() \n\
- X Meta <Key>>: end-of-file() \n\
- X None <Key>Return: scroll-one-line-up() \n\
- X None <Key>space: next-page() \n\
- X Shift <Key>G: end-of-file() \n\
- X None <Key>a: DoReply(a) \n\
- X None <Key>b: previous-page() \n\
- X None <Key>c: DoSave(c) \n\
- X None <Key>d: DoSelected(d) \n\
- X None <Key>f: DoSelected(P) \n\
- X None <Key>i: DoCmd(inc) \n\
- X None <Key>j: scroll-one-line-up() \n\
- X None <Key>k: scroll-one-line-down() \n\
- X None <Key>m: DoReply(s) \n\
- X None <Key>n: DoSelected(n) \n\
- X None <Key>p: DoSelected(-) \n\
- X None <Key>q: Quit(q) \n\
- X None <Key>r: DoSelected(p) \n\
- X None <Key>s: DoSave(s) \n\
- X None <Key>u: DoSelected(u) \n\
- X None <Key>w: DoSave(w) \n\
- X None <Key>x: Quit(x) \n\
- X None <Key>-: scroll-one-line-down() \n\
- X None <Key>\': beginning-of-file() \n\
- X <Btn1Down>: select-start() SetSelect() \n\
- X <Btn1Motion>: extend-adjust() \n\
- X <Btn1Up>: extend-end(PRIMARY, CUT_BUFFER0) \n\
- X <Btn2Down>: ShowHelp() \n\
- X <Btn3Down>: select-start() SetSelect() \n\
- X <Btn3Up>: DoSelected(p) \n\
- X Ctrl <Key>R: search(backward) \n\
- X Ctrl <Key>S: search(forward)
- X!
- X*Subject.translations: #override \n\
- X <Key>Delete: delete-previous-character() \n\
- X <Key>BackSpace: delete-previous-character() \n\
- X Meta <Key>A: DoDone(Cancel) \n\
- X Meta <Key>C: DoDone(cancel) \n\
- X Meta <Key>D: DoDone(Deliver) \n\
- X Ctrl <Key>H: delete-previous-character() \n\
- X Meta <Key>R: DoDone(ReEdit) \n\
- X Meta <Key>S: DoDone(Autograph) \n\
- X Ctrl <Key>U: beginning-of-line() kill-to-end-of-line() \n\
- X Ctrl <Key>W: delete-previous-word() \n\
- X Meta <Key>X: DoDone(autograph) \n\
- X <Btn3Motion>: DoNothing() \n\
- X <Btn3Up>: DoNothing() \n\
- X <Key>Return: NextField()
- X!
- X*textWindow.text.translations: #override \
- X Ctrl <Key>J: MenuPopdown(help) \n\
- X Ctrl <Key>L: redraw-display() \n\
- X Ctrl <Key>V: next-page() \n\
- X Ctrl <Key>Z: scroll-one-line-up() \n\
- X Meta <Key>Q: DoNothing() \n\
- X Meta <Key>V: previous-page() \n\
- X Meta <Key>Z: scroll-one-line-down() \n\
- X Meta <Key><: beginning-of-file() \n\
- X Meta <Key>>: end-of-file() \n\
- X Shift <Key>A: DoReply(A) \n\
- X Shift <Key>C: DoSave(C) \n\
- X Shift <Key>F: DoReply(S) \n\
- X Shift <Key>G: end-of-file() \n\
- X Shift <Key>M: DoReply(r) \n\
- X Shift <Key>N: DoCmd(file %) \n\
- X Shift <Key>P: PrintMsg() \n\
- X Shift <Key>R: DoReply(R) \n\
- X Shift <Key>S: DoSave(S) \n\
- X None <Key>Linefeed: MenuPopdown(help) \n\
- X None <Key>Return: scroll-one-line-up() \n\
- X None <Key>-: scroll-one-line-down() \n\
- X None <Key>\': beginning-of-file() \n\
- X None <Key>space: next-page() \n\
- X None <Key>a: DoReply(a) \n\
- X None <Key>b: previous-page() \n\
- X None <Key>c: DoSave(c) \n\
- X None <Key>d: DoSelected(d) \n\
- X None <Key>f: DoSelected(P) \n\
- X None <Key>i: DoCmd(inc) \n\
- X None <Key>j: scroll-one-line-up() \n\
- X None <Key>k: scroll-one-line-down() \n\
- X None <Key>m: DoReply(s) \n\
- X None <Key>n: DoSelected(n) \n\
- X None <Key>p: DoSelected(-) \n\
- X None <Key>q: Quit(q) \n\
- X None <Key>r: DoSelected(p) \n\
- X None <Key>s: DoSave(s) \n\
- X None <Key>u: DoSelected(u) \n\
- X None <Key>w: DoSave(w) \n\
- X None <Key>x: Quit(x) \n\
- X <Key>?: ShowHelp() \n\
- X <Btn1Down>: select-start() \n\
- X <Btn1Motion>: extend-adjust() \n\
- X <Btn1Up>: extend-end(PRIMARY, CUT_BUFFER0) \n\
- X <Btn2Down>: ShowHelp() \n\
- X <Btn3Down>: extend-start() \n\
- X <Btn3Motion>: extend-adjust() \n\
- X <Btn3Up>: extend-end(PRIMARY, CUT_BUFFER0) \n\
- X Ctrl <Key>R: search(backward) \n\
- X Ctrl <Key>S: search(forward)
- X!
- X*To.translations: #override \n\
- X <Key>Delete: delete-previous-character() \n\
- X <Key>BackSpace: delete-previous-character() \n\
- X Meta <Key>A: DoDone(Cancel) \n\
- X Meta <Key>C: DoDone(cancel) \n\
- X Meta <Key>D: DoDone(Deliver) \n\
- X Ctrl <Key>H: delete-previous-character() \n\
- X Meta <Key>R: DoDone(ReEdit) \n\
- X Meta <Key>S: DoDone(Autograph) \n\
- X Ctrl <Key>U: beginning-of-line() kill-to-end-of-line() \n\
- X Ctrl <Key>W: delete-previous-word() \n\
- X Meta <Key>X: DoDone(autograph) \n\
- X <Btn3Down>: SetAliases() \n\
- X <Key>Return: NextField()
- X!
- END_OF_FILE
- if test 10253 -ne `wc -c <'XMail.ad'`; then
- echo shar: \"'XMail.ad'\" unpacked with wrong size!
- fi
- # end of 'XMail.ad'
- fi
- if test -f 'global.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'global.h'\"
- else
- echo shar: Extracting \"'global.h'\" \(10049 characters\)
- sed "s/^X//" >'global.h' <<'END_OF_FILE'
- X/*
- X * xmail - X window system interface to the mail program
- X *
- X * Copyright 1990,1991,1992 by National Semiconductor Corporation
- X *
- X * Permission to use, copy, modify, and distribute this software and its
- X * documentation for any purpose is hereby granted without fee, provided that
- X * the above copyright notice appear in all copies and that both that
- X * copyright notice and this permission notice appear in supporting
- X * documentation, and that the name of National Semiconductor Corporation not
- X * be used in advertising or publicity pertaining to distribution of the
- X * software without specific, written prior permission.
- X *
- X * NATIONAL SEMICONDUCTOR CORPORATION MAKES NO REPRESENTATIONS ABOUT THE
- X * SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. IT IS PROVIDED "AS IS"
- X * WITHOUT EXPRESS OR IMPLIED WARRANTY. NATIONAL SEMICONDUCTOR CORPORATION
- X * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
- X * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO
- X * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
- X * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X * PERFORMANCE OF THIS SOFTWARE.
- X *
- X * Author: Michael C. Wagnitz - National Semiconductor Corporation
- X *
- X */
- X
- X
- X#include "defs.h"
- X
- X/* HelpText.c */
- X
- Xextern String Autograph_Info[];
- Xextern String Copy_Info[];
- Xextern String Default_Status_Info;
- Xextern String Delete_Info[];
- Xextern String Deliver_Info[];
- Xextern String Folder_Info[];
- Xextern String Hold_Info[];
- Xextern String NewMail_Info[];
- Xextern String Print_Info[];
- Xextern String Quit_Info[];
- Xextern String Read_Info[];
- Xextern String Reply_Info[];
- Xextern String Save_Info[];
- Xextern String Send_Info[];
- Xextern String SendMail_Info[];
- X
- Xextern String Abort_Help;
- Xextern String Bcc_Help;
- Xextern String Cancel_Help;
- Xextern String Cc_Help;
- Xextern String Copy_Help;
- Xextern String Delete_Help;
- Xextern String Deliver_Help;
- Xextern String File_Help;
- Xextern String Folder_Help;
- Xextern String Hold_Help;
- Xextern String Index_Help;
- Xextern String NewMail_Help;
- Xextern String Print_Help;
- Xextern String Quit_Help;
- Xextern String Read_Help;
- Xextern String ReEdit_Help;
- Xextern String Reply_Help;
- Xextern String Save_Help;
- Xextern String Send_Help;
- Xextern String Sign_Help;
- Xextern String sign_Help;
- Xextern String Status_Help;
- Xextern String Subject_Help;
- Xextern String Text_Help;
- Xextern String Text2_Help;
- Xextern String Title_Help;
- Xextern String To_Help;
- X
- X/* actions.c */
- X
- Xextern void initfoldir(); /* initialize foldir value */
- Xextern int str_compare(); /* for qsort of folder names */
- Xextern XtActionProc CheckInsert(); /* for the file window */
- Xextern void EraseIt(); /* delete requested buf data */
- Xextern XtActionProc DeleteChar(); /* for deletes (file window) */
- Xextern XtActionProc DeleteLine(); /* in the file window */
- Xextern XtActionProc DeleteWord(); /* also in the file window */
- Xextern XtActionProc DoCmd(); /* effect specified command */
- Xextern XtActionProc DoDone(); /* complete message delivery */
- Xextern XtActionProc DoNothing(); /* dummy action routine */
- Xextern XtActionProc DoReply(); /* invoke reply callback */
- Xextern XtActionProc DoSave(); /* invoke the save callback */
- Xextern XtActionProc DoSelected(); /* DoCmd w/ selected message */
- Xextern XtActionProc Folder(); /* execute folder command */
- Xextern XtActionProc Iconify(); /* iconification request */
- Xextern XtActionProc MyNotify(); /* invokes callbacks w/ param */
- Xextern XtActionProc NextField(); /* warps pointer to data fld */
- Xextern XtActionProc PrintMsg(); /* send mail to the printer */
- Xextern XtActionProc Quit(); /* termination procedure */
- Xextern XtActionProc SetAliases(); /* menu list of alias names */
- Xextern void SetNewness(); /* hilite folders w/ new data */
- Xextern XtActionProc SetFolders(); /* create a list of folders */
- Xextern XtActionProc SetMenu(); /* Position set_menu popup */
- Xextern XtActionProc SetPopup(); /* Position relative to owner */
- Xextern XtActionProc SetSelect(); /* reposition select mark */
- Xextern XtActionProc ShowHelp(); /* Position help & popup text */
- X
- X/* callbacks.c */
- X
- Xextern XtCallbackProc Autograph(); /* adds Signature to message */
- Xextern int endDelivery(); /* catch delivery completion */
- Xextern int DoCopy(); /* folder copy mail delivery */
- Xextern XtCallbackProc Done(); /* completes mail delivery */
- Xextern XtCallbackProc DoIt(); /* callback do specified cmd */
- Xextern XtCallbackProc DoPrint(); /* callback printer execution */
- Xextern XtCallbackProc DoQuit(); /* callback termination func */
- Xextern XtCallbackProc DoSet(); /* callback to toggle options */
- Xextern XtCallbackProc DoWith(); /* do cmd with arguments */
- Xextern XtCallbackProc DropIt(); /* destroy Folder popup list */
- Xextern XtCallbackProc GetAliasName(); /* retrieve alias name */
- Xextern XtCallbackProc GetFolderName(); /* retrieve folder name */
- Xextern XtCallbackProc ReEdit(); /* re-edit the mail message */
- Xextern XtCallbackProc Reply(); /* use msg author and subject */
- Xextern XtCallbackProc Save(); /* callback save routine */
- Xextern XtCallbackProc SetNewmail(); /* highlight when new mail */
- Xextern XtCallbackProc UnsetNewmail(); /* remove newmail highlight */
- X
- X/* callMail.c */
- X
- Xextern void callMail(); /* fork child, exec mail */
- X
- X/* confirm.c */
- X
- Xextern Bool Confirm(); /* Confirm destructive acts */
- X
- X/* directory.c */
- X
- Xextern XtActionProc SetDirectory(); /* create folder files list */
- X
- X/* environs.c */
- X
- Xextern char *GetMailEnv(); /* get value from mail env */
- Xextern char *GetMailrc(); /* get mailrc item value */
- Xextern char *alias(); /* get mailrc alias value */
- X
- X/* handler.c */
- X
- Xextern int In_System_Folder(); /* boolean test of folder */
- Xextern XtEventHandler icon_handler(); /* handle iconify changes */
- Xextern int index_handler(); /* highlight the msg number */
- Xextern void info_handler(); /* change content of status */
- Xextern int file_handler(); /* handle change of folder */
- X
- X/* mail.c */
- X
- Xextern XtEventHandler warp_handler(); /* warp cursor AFTER mapping */
- Xextern char *extract_of(); /* get header info from buf */
- Xextern int endEdits(); /* catch exit of edit child */
- Xextern void editMail(); /* create/compose a message */
- Xextern XtInputCallbackProc readMail(); /* get data from mail pipe */
- Xextern void makeHeading(); /* message header windows */
- Xextern void makeButton(); /* message completion buttons */
- Xextern void sendMail(); /* used by Send/Reply cmds */
- Xextern void writeMail(); /* send data to mail pipe */
- X
- X/* parser.c */
- X
- Xextern void parser_init(); /* compile patterns */
- Xextern int match(); /* eval command or output */
- Xextern void parse(); /* parse mail output */
- Xextern char *QueryMail(); /* ask mail for info */
- X
- X/* utils.c */
- X
- Xextern void Bell(); /* disp. error and sound bell */
- Xextern int figureWidth(); /* get figure width for font */
- Xextern void markIndex(); /* add/replace index marker */
- Xextern int SelectionNumber(); /* get number of selected msg */
- Xextern void SetCursor(); /* change between wait & norm */
- Xextern void SetXY(); /* set widget x/y coordinates */
- Xextern XawTextPosition TextGetLastPos(); /* get last pos of text */
- Xextern void UpdateTitleBar(); /* file name and msg count */
- Xextern void writeText(); /* write text to buffer */
- Xextern void writeTo(); /* send text data to window */
- X
- X/* windows.c */
- X
- Xextern void AddHelpText(); /* Add help popup to window */
- Xextern void AddMenuWindow(); /* Add menu popup to window */
- Xextern void AddButton(); /* Add command to window */
- Xextern void CreateButtons(); /* make the command buttons */
- Xextern void CreateCommandPanel(); /* form for command buttons */
- Xextern void CreateFileWindow(); /* a text input window */
- Xextern void CreateFolderButton(); /* a special command button */
- Xextern void CreateHelpWindow(); /* the help window base */
- Xextern void CreateIndexWindow(); /* a text input window */
- Xextern void CreateStatusWindow(); /* a text output window */
- Xextern void CreateSubWindows(); /* all subwindows of xmail */
- Xextern void CreateTextWindow(); /* another text window */
- Xextern void CreateTitleBar(); /* a text output window */
- Xextern Widget CreateInputWindow(); /* To, Subject, Cc, and Bcc */
- Xextern void ParseIconGeometry(); /* Parse icon geometry */
- X
- X/* xmail.c */
- X
- Xextern void initialize(); /* main initialization code */
- Xextern int mailoptions(); /* sets up call to mail pgm */
- X
- X/* extern functions */
- X
- Xextern char *strchr(), *strrchr();
- X
- X/* extern variables */
- X
- Xextern Atom wmDeleteWindow; /* for WM_DELETE_WINDOW property */
- Xextern Boolean In_Bogus_Mail_File; /* in bogus folder when we're iconic */
- Xextern Boolean Waiting; /* TRUE when we set the busy cursor */
- Xextern Pixmap hatch; /* cross_weave, to indicate new mail */
- Xextern Widget toplevel; /* top level shell widget */
- Xextern Window WaitCursorWindow;
- X
- Xextern AliasRecPtr *aliases; /* array of mail alias strings */
- Xextern helpText *HelpList;
- Xextern XmailResources XMail; /* XMail application resources */
- X
- Xextern int mail_fd; /* descriptor to mail process i/o */
- X
- Xextern int mailargc; /* counter passed to mail child */
- Xextern int RootWidth, RootHeight;
- Xextern int mailpid; /* mail process id */
- Xextern int Highlighted; /* state of 'Newmail' highlighting */
- Xextern int mailInputId; /* Identity of the XtAddInput call */
- X
- Xextern char HOME[BUFSIZ]; /* home directory of user */
- Xextern char Command[BUFSIZ]; /* xmail command string */
- Xextern char InReply[BUFSIZ]; /* reply reference string */
- Xextern char tmpName[BUFSIZ]; /* message temporary filename */
- Xextern char otherBuf[BUFSIZ]; /* bucket for non-addressee names */
- Xextern char foldir[BUFSIZ]; /* name of the folder directory */
- Xextern char lastFolder[BUFSIZ]; /* previous folder's title-bar */
- Xextern char *mailargv[8]; /* array passed to mail child */
- X
- X/* global.h */
- END_OF_FILE
- if test 10049 -ne `wc -c <'global.h'`; then
- echo shar: \"'global.h'\" unpacked with wrong size!
- fi
- # end of 'global.h'
- fi
- if test -f 'handler.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'handler.c'\"
- else
- echo shar: Extracting \"'handler.c'\" \(11289 characters\)
- sed "s/^X//" >'handler.c' <<'END_OF_FILE'
- X/*
- X * xmail - X window system interface to the mail program
- X *
- X * Copyright 1990,1991,1992 by National Semiconductor Corporation
- X *
- X * Permission to use, copy, modify, and distribute this software and its
- X * documentation for any purpose is hereby granted without fee, provided that
- X * the above copyright notice appear in all copies and that both that
- X * copyright notice and this permission notice appear in supporting
- X * documentation, and that the name of National Semiconductor Corporation not
- X * be used in advertising or publicity pertaining to distribution of the
- X * software without specific, written prior permission.
- X *
- X * NATIONAL SEMICONDUCTOR CORPORATION MAKES NO REPRESENTATIONS ABOUT THE
- X * SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. IT IS PROVIDED "AS IS"
- X * WITHOUT EXPRESS OR IMPLIED WARRANTY. NATIONAL SEMICONDUCTOR CORPORATION
- X * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
- X * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO
- X * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
- X * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X * PERFORMANCE OF THIS SOFTWARE.
- X *
- X * The following software modules were created and are Copyrighted by National
- X * Semiconductor Corporation:
- X *
- X * 1. In_System_Folder:
- X * 2. icon_handler:
- X * 3. index_handler:
- X * 4. info_handler: and
- X * 5. file_handler.
- X *
- X * Author: Michael C. Wagnitz - National Semiconductor Corporation
- X *
- X */
- X
- X
- X#include <ctype.h>
- X#include "global.h"
- X#include "MailwatchP.h"
- X#include <X11/Xaw/LabelP.h>
- X
- XBoolean In_Bogus_Mail_File = False; /* TRUE when we go iconic */
- X
- X/*
- X** Examine the current value of the titleBar title and return TRUE/FALSE
- X** to the question "Does it match the system mail folder name?" The folder
- X** name in the title bar label should be surrounded by a pair of quote marks.
- X*/
- Xint
- XIn_System_Folder()
- X{
- X int len, result;
- X char *fq, *lq, *buf;
- X Arg args[1];
- X MailwatchWidget mb = (MailwatchWidget) XtNameToWidget(toplevel, "icon.mailbox");
- X Widget tb = XtNameToWidget(toplevel, "topBox.titleBar.title");
- X
- X
- X XtSetArg(args[0], XtNlabel, &buf);
- X XtGetValues(tb, args, 1);
- X
- X if ((lq = strrchr(buf, '"')) == NULL) result = FALSE;
- X else { /* if a current folder name exists */
- X if ((fq = strchr(buf, '"')) == NULL) result = FALSE;
- X else {
- X ++fq;
- X len = lq - fq;
- X result = (strncmp(mb->mailbox.filename, fq, len) == 0) ? TRUE : FALSE ;
- X }
- X }
- X return(result);
- X} /* In_System_Folder */
- X
- X
- X/*
- X** Process map and unmap events for the icon widget to manage our iconify and
- X** deiconify actions and switch to/from a bogus mail folder. This allows users
- X** to access mail from another process without colliding with an open folder.
- X** Once the bogus mail folder is accessed, we unlink it, to avoid having to
- X** explicitly remove it later.
- X*/
- X/* ARGSUSED */
- XXtEventHandler
- Xicon_handler(w, client_data, event)
- XWidget w;
- Xcaddr_t client_data;
- XXEvent *event;
- X{
- X static Boolean Was_System_Folder = False; /* TRUE if we had been in */
- X FILE *fp;
- X char *cp, cmd[BUFSIZ];
- X
- X
- X if (mailpid) {
- X switch (event->type) {
- X case MapNotify :
- X if (! In_Bogus_Mail_File) {
- X Was_System_Folder = In_System_Folder();
- X (void) sprintf(cmd, "%s+", tmpName);
- X if (fp = fopen(cmd, "w")) { /* create a bogus mail file */
- X (void) fprintf(fp, "\n");
- X (void) fclose(fp);
- X (void) sprintf(cmd, "file %s+", tmpName);
- X cp = QueryMail(cmd); /* focus our attention there */
- X *cp = '\0';
- X (void) UpdateTitleBar("No current folder");
- X writeTo(XtNameToWidget(toplevel, "*indexWindow"), " ", REPLACE);
- X writeText(" ");
- X (void) sprintf(cmd, "%s+", tmpName);
- X (void) unlink(cmd); /* toss it now that we're in */
- X In_Bogus_Mail_File = True;
- X }
- X }
- X break;
- X case UnmapNotify :
- X if (In_Bogus_Mail_File) {
- X if (strcmp(Command, "Start") != 0) { /* if not starting up */
- X if (Was_System_Folder) { /* go to system file */
- X (void) strcpy(Command, "file %\n");
- X } else { /* go to prev. file */
- X (void) strcpy(Command, "file #\n");
- X }
- X } else {
- X if (XMail.MFileName) { /* start in specified folder */
- X (void) sprintf(Command, "file %s\n", XMail.MFileName);
- X } else { /* or else use system folder */
- X (void) strcpy(Command, "file %\n");
- X }
- X }
- X SetCursor(WATCH);
- X writeMail(Command); /* let parser do the updating */
- X In_Bogus_Mail_File = False;
- X Was_System_Folder = False;
- X } else if (In_System_Folder())
- X UnsetNewmail(NULL, NULL, NULL);
- X break;
- X default:
- X break;
- X } /* end - switch on event type */
- X } /* end - if mail is active */
- X} /* icon_handler */
- X
- X
- X/*
- X** @(#)index_handler() - find value of specified or next appropriate message
- X*/
- Xint
- Xindex_handler(msg_num, undeleting)
- Xint msg_num;
- Xint undeleting;
- X{
- X int j, k;
- X XawTextPosition pos;
- X String c, s, IBuf;
- X Widget iw;
- X Arg args[1];
- X
- X
- X Bell(""); /* reset bell worthyness flag */
- X Bell(Default_Status_Info);
- X
- X k = msg_num; /* Try to use specified msg. */
- X if (k == 0) { /* But, if not specified... */
- X c = QueryMail("=");
- X if (*c)
- X (void) sscanf(c, "%d", &k); /* get msg num from mail. */
- X }
- X
- X iw = XtNameToWidget(toplevel, "topBox.indexWindow");
- X IBuf = NULL;
- X XtSetArg(args[0], XtNstring, &IBuf);
- X XtGetValues(iw, args, 1);
- X
- X if (k <= 50) { /* do short index from front */
- X s = IBuf;
- X for (j = k - 1; j > 0 && (c = strchr(s, '\n')) != NULL; j--) s = c + 1;
- X } else { /* if index is fairly large */
- X for (s = &IBuf[strlen(IBuf) - 2]; s > IBuf && *s != '\n'; s--);
- X for (c = s + 1; *c && !isdigit(*c); c++); /* get number of last entry */
- X j = 0;
- X if (*c)
- X (void) sscanf(c, "%d", &j); /* look backwards from there */
- X for (; j > k; j--) {
- X if (s > IBuf) s--;
- X for (; s > IBuf && *s != '\n'; s--);
- X }
- X if (*s == '\n') s++;
- X }
- X
- X j = k;
- X for (;;) { /* allow for deleted msgs */
- X for (c = s; *c && !isdigit(*c); c++);
- X if (! *c || k == 0 ||
- X (sscanf(c, "%d", &j) && j <= k)) /* total may be less than us */
- X break;
- X
- X if (s - 2 >= IBuf)
- X for (s -= 2; s > IBuf && *s != '\n'; s--);
- X if (*s == '\n') s++;
- X }
- X
- X if (! undeleting && *(s + 1) == 'D') { /* If this is a deleted msg */
- X j = 0; /* then num is inappropriate */
- X for (;*s && *(s + 1) == 'D';) { /* try looking above deletes */
- X if (! (c = strchr(s,'\n'))) break; /* don't go past end of buf */
- X s = c + 1;
- X }
- X for (;s > IBuf && *(s + 1) == 'D';) {
- X for (s -= 2; s > IBuf && *s != '\n'; s--);
- X if (*s == '\n') s++;
- X }
- X if (*(s + 1) != 'D') { /* If we found a readable msg */
- X for (c = s; *c && !isdigit(*c); c++);
- X if (*c)
- X (void) sscanf(c, "%d", &j);
- X }
- X }
- X
- X if (j) { /* if we have a valid msg num */
- X pos = s - IBuf; /* resolve our position */
- X XawTextSetInsertionPoint(iw, pos); /* point at selected line */
- X markIndex("> "); /* flag it as current */
- X }
- X
- X return(j); /* return msg actually found */
- X} /* index_handler */
- X
- X
- X/*
- X** @(#)info_handler - use enter/leave_notify events to alter status window info
- X*/
- X/*ARGSUSED*/
- Xvoid
- Xinfo_handler(w, client_data, event)
- XWidget w; /* unused */
- Xcaddr_t client_data;
- XXEvent *event;
- X{
- X if (event->type == LeaveNotify && ! Waiting) Bell(Default_Status_Info);
- X else if (event->type == EnterNotify) {
- X if (! Waiting) Bell(client_data);
- X Waiting = FALSE;
- X }
- X} /* end - info_handler */
- X
- X
- X/*
- X** @(#)file_handler() - Handle output of Start and file commands.
- X** If *Show_Last: resource is TRUE show last
- X** message in list, if none are marked as new.
- X*/
- Xfile_handler()
- X{
- X int New_Unread, msg_num = 0;
- X char *c, *p, *headers = NULL;
- X char msgnum_str[10];
- X XawTextPosition pos;
- X Widget iw = XtNameToWidget(toplevel, "topBox.indexWindow");
- X
- X
- X c = QueryMail("file"); /* Forces msg to first New/U */
- X if (! mailpid) return (msg_num);
- X
- X if (! In_Bogus_Mail_File)
- X (void) UpdateTitleBar(c);
- X
- X c = QueryMail("="); /* Get current mail msg num. */
- X while (! isdigit(*c)) {
- X if (! mailpid) return (msg_num);
- X c = QueryMail("=");
- X }
- X (void) sprintf(msgnum_str, c);
- X
- X *c = '\0';
- X if (! mailpid) return (msg_num);
- X
- X headers = QueryMail("h");
- X if (strncmp(headers, "No applicable messages", 22) == 0) {
- X Bell(headers);
- X writeTo(iw, " ", REPLACE);
- X writeText(" ");
- X } else {
- X /*
- X ** find mail's idea of this folder's current message number
- X */
- X if (*headers == '>') c = headers;
- X else /* start search from the end of buf */
- X if (c = strrchr(headers, '\n')) c++;
- X else c = headers;
- X
- X while (c > headers) {
- X if (*c == '>' && *(c - 1) == '\n')
- X break;
- X
- X for (c -= 2; c > headers && *c != '\n'; c--);
- X if (*c == '\n') c++;
- X }
- X /*
- X ** If the current message is marked new or unread, ensure as many of the new
- X ** message headers as possible are displayed in the index window (especially
- X ** the current one), else if the Show_Last resource is not false, select the
- X ** last message in the header.
- X */
- X p = c; /* save position of current */
- X New_Unread = (*(c+1) == 'N' || *(c+1) == 'U');
- X if (! New_Unread && XMail.Show_Last) { /* find the last message */
- X if (*p == '>') *p = ' '; /* erase the original marker */
- X if (c == headers) { /* if we would've started @1 */
- X if (p = strrchr(headers, '\n')) p++;
- X else p = headers; /* go to last line of buffer */
- X }
- X for (c = p; *c && !isdigit(*c); c++);
- X if (*c)
- X (void) sscanf(c, "%d", &msg_num);
- X (void) sprintf(msgnum_str, "%d", msg_num);
- X }
- X /*
- X ** mark the current message's index line
- X */
- X *p = '>'; *(p+1) = ' ';
- X /*
- X ** Install these headers in the index window
- X */
- X writeTo(iw, headers, REPLACE);
- X /*
- X ** Ensure if there are new or unread messages that as many as possible are
- X ** displayed in the index window to reduce the amount of scrolling required
- X ** when reading(/deleting) them.
- X */
- X pos = p - headers;
- X if (New_Unread)
- X XawTextSetInsertionPoint(iw, strlen(headers));
- X XawTextSetInsertionPoint(iw, pos);
- X /*
- X ** Return the current message number.
- X */
- X msg_num = atoi(msgnum_str);
- X }
- X *headers = '\0';
- X return(msg_num);
- X} /* file_handler */
- END_OF_FILE
- if test 11289 -ne `wc -c <'handler.c'`; then
- echo shar: \"'handler.c'\" unpacked with wrong size!
- fi
- # end of 'handler.c'
- fi
- echo shar: End of archive 8 \(of 10\).
- cp /dev/null ark8isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 10 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
- --
- // chris@IMD.Sterling.COM | Send comp.sources.x submissions to:
- \X/ Amiga - The only way to fly! |
- "It's intuitively obvious to the most | sources-x@imd.sterling.com
- casual observer..." |
-