Tue Aug 17 18:06:01 PDT 1999 Michael Jennings <mej@eterm.org>

Now that we have a fixed CVS server....  This includes the old 0.8.10
	code, but it's now 0.9.  It also includes a timer subsystem.


SVN revision: 52
eterm-0.10
Michael Jennings 24 years ago
parent e64e1663de
commit 661b1b9448
  1. 1053
      ChangeLog
  2. 140
      Eterm.spec.in
  3. 2
      Makefile.am
  4. 26
      acconfig.h
  5. 18
      autogen.sh
  6. 38
      bg/Makefile.am
  7. 203
      configure.in
  8. 3
      cvs.motd
  9. 2
      doc/Eterm.1.in
  10. 2
      doc/FAQ.html
  11. 2
      libmej/Makefile.am
  12. 9
      libmej/debug.c
  13. 8
      libmej/debug.h
  14. 5
      libmej/global.h
  15. 84
      libmej/mem.c
  16. 17
      libmej/mem.h
  17. 5
      libmej/snprintf.c
  18. 23
      libmej/strings.c
  19. 10
      libmej/strings.h
  20. 6
      libmej/strptime.c
  21. 12
      libmej/strptime.h
  22. 2
      pix/.cvsignore
  23. 14
      pix/Makefile.am
  24. BIN
      pix/bar_horizontal_1.png
  25. BIN
      pix/bar_horizontal_2.png
  26. BIN
      pix/bar_horizontal_3.png
  27. BIN
      pix/bar_vertical_1.png
  28. BIN
      pix/bar_vertical_2.png
  29. BIN
      pix/bar_vertical_3.png
  30. BIN
      pix/button_arrow_down_1.png
  31. BIN
      pix/button_arrow_down_2.png
  32. BIN
      pix/button_arrow_down_3.png
  33. BIN
      pix/button_arrow_up_1.png
  34. BIN
      pix/button_arrow_up_2.png
  35. BIN
      pix/button_arrow_up_3.png
  36. BIN
      pix/menu1.png
  37. BIN
      pix/menu2.png
  38. BIN
      pix/menu3.png
  39. 23
      src/Makefile.am
  40. 158
      src/actions.c
  41. 92
      src/actions.h
  42. 623
      src/activeconfig.c
  43. 106
      src/activeconfig.h
  44. 390
      src/activeeterm.c
  45. 48
      src/activeeterm.h
  46. 524
      src/activetags.c
  47. 182
      src/activetags.h
  48. 5638
      src/command.c
  49. 318
      src/command.h
  50. 107
      src/debug.h
  51. 321
      src/e.c
  52. 56
      src/e.h
  53. 26
      src/eterm_imlib.h
  54. 86
      src/eterm_utmp.h
  55. 669
      src/events.c
  56. 123
      src/events.h
  57. 527
      src/feature.h.in
  58. 9
      src/graphics.c
  59. 4
      src/grkelot.c
  60. 320
      src/main.c
  61. 297
      src/main.h
  62. 2567
      src/menubar.c
  63. 126
      src/menubar.h
  64. 1029
      src/menus.c
  65. 134
      src/menus.h
  66. 82
      src/misc.c
  67. 64
      src/misc.h
  68. 32
      src/netdisp.c
  69. 2177
      src/options.c
  70. 242
      src/options.h
  71. 1527
      src/pixmap.c
  72. 227
      src/pixmap.h
  73. 1
      src/profile.h
  74. 305
      src/screen.c
  75. 210
      src/screen.h
  76. 886
      src/scrollbar.c
  77. 203
      src/scrollbar.h
  78. 22
      src/system.c
  79. 7
      src/system.h
  80. 2023
      src/term.c
  81. 186
      src/term.h
  82. 4
      src/threads.c
  83. 132
      src/timer.c
  84. 64
      src/timer.h
  85. 88
      src/utmp.c
  86. 980
      src/windows.c
  87. 83
      src/windows.h
  88. 2
      themes/Eterm/.cvsignore
  89. 891
      themes/Eterm/Eterm-menu.cfg
  90. 192
      themes/Eterm/Eterm.menu
  91. 171
      themes/Eterm/theme.cfg.in
  92. 10
      themes/Makefile.am
  93. 2
      themes/chooser/.cvsignore
  94. 993
      themes/chooser/chooser-menu.cfg
  95. 502
      themes/chooser/chooser.menu
  96. 332
      themes/chooser/theme.cfg.in
  97. 2
      themes/emacs/.cvsignore
  98. 1152
      themes/emacs/emacs-menu.cfg
  99. 269
      themes/emacs/emacs.menu
  100. 171
      themes/emacs/theme.cfg.in
  101. Some files were not shown because too many files have changed in this diff Show More

File diff suppressed because it is too large Load Diff

@ -1,79 +1,107 @@
# Note that this is NOT a relocatable package
%define ver @VERSION@
%define rel SNAP
%define prefix /usr
%define rel 1
%define prefix @prefix@
Summary: Eterm Enlightened Terminal Emulator for X Windows
Summary: Enlightened terminal emulator
Name: Eterm
Version: %ver
Release: %rel
Version: %{ver}
Release: %{rel}
Copyright: GPL
Group: X11/Applications
Source: ftp://ftp.enlightenment.org/pub/Eterm/Eterm-%{ver}.tar.gz
BuildRoot: /tmp/Eterm-root
Packager: technoir <technoir@themes.org>
URL: http://e.themes.org/
Requires: imlib >= 1.8
Docdir: %{prefix}/doc
Group: Utilities/Terminal
Source: ../SOURCES/Eterm-%{ver}.tar.gz
BuildRoot: /tmp/Eterm-root/
URL: http://www.eterm.org/
Requires: imlib, libjpeg, libtiff, libungif, libpng, zlib, XFree86-libs
Packager: Todd Nemanich <trnemani@eos.ncsu.edu>
%ifarch i386
%description
Eterm is a color vt102 terminal emulator intended as an xterm replacement for users who want a term program integrated with Enlightenment, or simply want a little more "eye candy". Eterm uses Imlib for advanced graphic abilities.
%changelog
This is an rpm of Eterm, a highly configurable and asethically pleasing
terminal emulator.
* Wed Dec 30 1998 mej <mej@mw.3com.com>
This rpm was optimized for i486 and was built without support
for libKenny.so.
(Egads! They killed Kenny! You bastards!)
%else
%description
This is an rpm of Eterm, a highly configurable and asethically pleasing
terminal emulator.
- Added spec file. Created by techn0ir <technoir@themes.org>
This rpm contains no architecture specific optimizations, and
was built without support for libKenny.so.
(Egads! They killed Kenny! You bastards!)
%endif
%changelog
* Sun Jun 6 1999 Todd Nemanich <trnemani@eos.ncsu.edu>
- Updated rpm to incorporate a few fixes for different architectures,
- specify /usr/local/share/Eterm/themes/* as config files, and
- a fix for the share directory problem.
* Tue Apr 27 1999 Todd Nemanich <trnemani@eos.ncsu.edu>
- Updated to version 8.9. Added a check to make sure /usr/local/lib
- is in /etc/ld.so.conf because too many people don't know how
- ld works.
- Also moving, so new email address for me.
* Sat Jan 23 1999 Todd Nemanich <tick@speak.rh.ncsu.edu>
- Updated to version 8.8
* Sat Oct 23 1998 Todd Nemanich <tick@speak.rh.ncsu.edu>
- Updated to version 0.8.7. A minor change in the Makefiles was made by hand,
- due to a linkinkg problem. This should not cause problems to people using the
- source rpm, but the call to configure has been removed.
* Mon Sep 21 1998 Todd Nemanich <tick@speak.rh.ncsu.edu>
- Bad link in /usr/local/bin corrected. THX to Andy Dustman for pointing this out.
%prep
%setup
rm -fr $RPM_BUILD_ROOT $RPM_BUILD_DIR/Eterm-%{ver}
mkdir $RPM_BUILD_ROOT
cd $RPM_BUILD_DIR
tar -xzf $RPM_SOURCE_DIR/Eterm-%{ver}.tar.gz
%build
# Optimize that damned code all the way
if [ ! -z "`echo -n ${RPM_OPT_FLAGS} | grep pentium`" ]; then
if [ ! -z `which egcs` ]; then
CC="egcs"
else
if [ ! -z `which pgcc` ]; then
CC="pgcc"
fi
fi
CFLAGS="${RPM_OPT_FLAGS}"
else
CFLAGS="${RPM_OPT_FLAGS}"
fi
if [ ! -f configure ]; then
CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --prefix=%prefix
else
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix
fi
cd $RPM_BUILD_DIR/Eterm-%{ver}
./configure --prefix=%{prefix}
%ifarch i386
make "CFLAGS=-O3 -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2"
%else
make
%endif
%install
rm -rf $RPM_BUILD_ROOT
cd $RPM_BUILD_DIR/Eterm-%{ver}
make prefix=$RPM_BUILD_ROOT%{prefix} install
%clean
rm -rf $RPM_BUILD_ROOT
%post
%postun
%postinst
LDPATH=`grep local /etc/ld.so.conf`
%files
%defattr(-, root, root)
if [ "$LDPATH" = "" ] ; then
NEW='/usr/local/lib'
cat /etc/ld.so.conf >ld.tmp
echo "$NEW">>new.ld
cat ld.tmp new.ld > ld.so.conf
mv ld.so.conf /etc/ld.so.conf
rm -f new.ld ld.tmp
fi
%{prefix}/bin/*
%(prefix)/doc/*
%{prefix}/lib/*
%{prefix}/share/*
%{prefix}/man/*
/sbin/ldconfig
%clean
rm -fr $RPM_BUILD_ROOT $RPM_BUILD_DIR/Eterm-%{ver}
%doc COPYING
%doc ChangeLog
%doc README
%files
%defattr(-,root,root)
%doc $RPM_BUILD_DIR/Eterm-%{ver}/README
%doc $RPM_BUILD_DIR/Eterm-%{ver}/COPYING
%doc $RPM_BUILD_DIR/Eterm-%{ver}/ChangeLog
%doc $RPM_BUILD_DIR/Eterm-%{ver}/ReleaseNotes
%doc $RPM_BUILD_DIR/Eterm-%{ver}/CVS-README
%doc $RPM_BUILD_DIR/Eterm-%{ver}/doc/*
%doc %{prefix}/man
%config %{prefix}/share/Eterm/themes/
%{prefix}/bin
%{prefix}/lib

@ -2,6 +2,6 @@
AUTOMAKE_OPTIONS = foreign
SUBDIRS = libmej src themes utils doc bg
SUBDIRS = libmej src themes utils doc bg pix
EXTRA_DIST = README ReleaseNotes CVS-README COPYING ChangeLog autogen.sh

@ -270,6 +270,9 @@
/* Do we need our own nanosleep()? */
#undef HAVE_NANOSLEEP
/* Is our snprintf() implementation buggy? */
#undef HAVE_SNPRINTF_BUG
/* Debugging level */
#undef DEBUG
@ -286,6 +289,29 @@
/* Do we have the X shape extension? */
#undef HAVE_X_SHAPE_EXT
/* Support for various features */
#undef USE_ACTIVE_TAGS
#undef USE_POSIX_THREADS
#undef MUTEX_SYNCH
#undef PIXMAP_SUPPORT
#undef PIXMAP_OFFSET
#undef BACKING_STORE
#undef FORCE_BACKSPACE
#undef FORCE_DELETE
#undef IMLIB_TRANS
#undef KS_DELETE
#undef NO_DELETE_KEY
#undef NO_XLOCALE
#undef PIXMAP_MENUBAR
#undef PIXMAP_SCROLLBAR
#undef UTMP_SUPPORT
#undef MULTI_CHARSET
#undef USE_XIM
#undef USE_X11R6_XIM
#undef NO_XLOCALE
#undef GREEK_SUPPORT
#undef CONFIG_SEARCH_PATH
/* Leave that blank line there!! Autoheader needs it.
If you're adding to this file, keep in mind:

@ -4,6 +4,8 @@
DIE=0
echo "Generating configuration files for Eterm, please wait...."
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile Eterm."
@ -32,11 +34,16 @@ if test "$DIE" -eq 1; then
exit 1
fi
echo " libtoolize --copy --force"
libtoolize --copy --force
aclocal $ACLOCAL_FLAGS
echo " aclocal -I . $ACLOCAL_FLAGS"
aclocal -I . $ACLOCAL_FLAGS
echo " autoheader"
autoheader
echo " automake --add-missing"
automake --add-missing
echo " autoconf"
autoconf
autoheader
if [ -x config.status -a -z "$*" ]; then
./config.status --recheck
@ -50,3 +57,10 @@ else
fi
./configure "$@"
fi
if [ -f cvs.motd ]; then
echo "ATTENTION CVS Users!"
echo ""
cat cvs.motd
echo ""
fi

@ -8,35 +8,45 @@ pixmapdir = $(pkgdatadir)/pix
themedir = $(pkgdatadir)/themes
all: Makefile
@echo "*** Generating pixmaps.list file from images in tile/ and scale/..."
@echo "*** Generating pixmap list files from images in tile/ and scale/..."
@true > pixmaps.list
@cd tile ; \
for i in `ls -1 | grep -v CVS | grep -v \.cvsignore` ; do \
echo '" 0 0 '$$i'"' >> ../pixmaps.list ; \
true > tiled-pixmaps.list ; \
for i in `ls -1 | grep -v CVS | grep -v \.cvsignore | grep -v pixmaps.list` ; do \
echo $$i >> tiled-pixmaps.list ; \
echo '"'$$i'@0x0+0+0:tile"' >> ../pixmaps.list ; \
done ; \
cd .. ; \
cd scale ; \
for i in `ls -1 | grep -v CVS | grep -v \.cvsignore` ; do \
echo '"-1 -1 '$$i'"' >> ../pixmaps.list ; \
true > scaled-pixmaps.list ; \
for i in `ls -1 | grep -v CVS | grep -v \.cvsignore | grep -v pixmaps.list` ; do \
echo $$i >> scaled-pixmaps.list ; \
echo '"'$$i'@100x100"' >> ../pixmaps.list ; \
done
install-data-hook:
@if test ! -f pixmaps.list ; then $(MAKE) all ; fi
$(mkinstalldirs) $(DESTDIR)$(pixmapdir)
@for j in $(DIRS) ; do echo "Installing pixmaps in $$j" ; cd $$j ; \
for i in `ls -1 | grep -v CVS | grep -v \.cvsignore` ; do \
for i in `ls -1 | grep -v CVS | grep -v \.cvsignore | grep -v pixmaps.list` ; do \
echo $(INSTALL_DATA) $$i $(DESTDIR)${pixmapdir} ; \
$(INSTALL_DATA) $$i $(DESTDIR)${pixmapdir} ; \
done ; cd .. ; \
done
@if test -f $(DESTDIR)${pixmapdir}/pixmaps.list ; then \
$(CP) -p $(DESTDIR)${pixmapdir}/pixmaps.list $(DESTDIR)${pixmapdir}/pixmaps.list.old ; \
echo "WARNING: Backup of existing pixmaps.list created." ; \
fi
@for i in tiled-pixmaps.list scaled-pixmaps.list pixmaps.list ; do \
if test -f $(DESTDIR)${pixmapdir}/$$i ; then \
$(CP) -p $(DESTDIR)${pixmapdir}/$$i $(DESTDIR)${pixmapdir}/$$i.old ; \
echo "WARNING: Backup of existing $$i created." ; \
fi ; \
done
$(INSTALL_DATA) tile/tiled-pixmaps.list $(DESTDIR)${pixmapdir}
$(INSTALL_DATA) scale/scaled-pixmaps.list $(DESTDIR)${pixmapdir}
$(INSTALL_DATA) pixmaps.list $(DESTDIR)${pixmapdir}
@for i in `ls -1d $(DESTDIR)${themedir}/*` ; do \
if test $$i != "." -a $$i != ".." -a ! -f $$i/pixmaps.list ; then \
echo "$(LN_S) ../../pix/pixmaps.list $$i/pixmaps.list" ; \
$(LN_S) ../../pix/pixmaps.list $$i/pixmaps.list ; \
fi ; \
for j in tiled-pixmaps.list scaled-pixmaps.list pixmaps.list ; do \
if test $$i != "." -a $$i != ".." -a ! -f $$i/$$j ; then \
echo "$(LN_S) ../../pix/$$j $$i/$$j" ; \
$(LN_S) ../../pix/$$j $$i/$$j ; \
fi ; \
done ; \
done

@ -1,12 +1,12 @@
dnl# $Id$
AC_INIT(src/feature.h.in)
AM_INIT_AUTOMAKE(Eterm, 0.8.9)
AC_INIT(src/feature.h)
AM_INIT_AUTOMAKE(Eterm, 0.9)
dnl# Set some basic variables
DATE="21 January 1999"
DATE="`date '+%d %B %Y'`"
AC_SUBST(DATE)
AUTHORS="Tuomo Venalainen (vendu@cc.hut.fi) and Michael Jennings (mej@tcserv.com)"
AUTHORS="Tuomo Venalainen (vendu@cc.hut.fi) and Michael Jennings (mej@eterm.org)"
AC_SUBST(AUTHORS)
dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
@ -139,6 +139,7 @@ AC_TYPE_UID_T
dnl# Checks for library functions.
AC_TYPE_SIGNAL
AC_CHECK_FUNCS(atexit _exit unsetenv setutent seteuid memmove putenv strsep setresuid setresgid memmem usleep snprintf)
dps_snprintf_oflow()
dnl# Check for the need for -lutil on BSD systems
AC_CHECK_FUNC(login,
@ -153,14 +154,6 @@ AC_CHECK_FUNC(logout,
))
AC_CHECK_FUNC(getpwuid, , AC_CHECK_LIB(sun, getpwuid, LIBS="$LIBS -lsun"))
dnl# Check for POSIX threads library
dnl# Don't comment this back in before multithreading actually works,
dnl# so people don't need thread-safe X libs to be able to run unthreaded
dnl# Eterm :) -vendu
#AC_CHECK_LIB(pthread, pthread_create, CFLAGS="$CFLAGS -D_REENTRANT";
# THREADLIBS="-lpthread", ,
# -D_REENTRANT -L/usr/lib -L/lib -L/usr/local/lib)
dnl# Did they want debugging?
AC_MSG_CHECKING(for debugging level)
AC_ARG_WITH(debugging, [ --with-debugging[=num] enable debugging output, num is an optional level],
@ -178,34 +171,144 @@ AC_ARG_WITH(debugging, [ --with-debugging[=num] enable debugging output, num i
AC_DEFINE_UNQUOTED(DEBUG, 4)
)
dnl# Check for support for menus
AC_MSG_CHECKING(whether or not to enable menubar support)
AC_ARG_ENABLE(menus, [ --disable-menus disable support for menubars (support enabled by default)],
if test "$enableval" != "no"; then
echo "yes" ; MENUSED="";
else echo "no" ; MENUSED='s/define MENUBAR_MAX .*/define MENUBAR_MAX 0/g';
fi, echo "yes" ; MENUSED="")
dnl# Check for graphics libraries.
dnl# Force Imlib flags - see below. -vendu
AC_MSG_CHECKING(whether or not to enable pixmap support)
dnl#
dnl# FEATURES
dnl#
AC_MSG_CHECKING(for pixmap support)
AC_ARG_WITH(imlib,
[ --with-imlib[=DIR] compile with Imlib support (Imlib residing in DIR/lib) [default]
--without-imlib compile with pixmap support disabled],
[ --with-imlib[=DIR] compile with Imlib support (Imlib residing in DIR/lib) (default)],
if test "$withval" != "no"; then
echo "yes" ; CFLAGS="$CFLAGS -I${withval}/include -L${withval}/lib";
GRLIBS="-lImlib" ; PIXMAPSED="";
else echo "no" ; PIXMAPSED='s/define PIXMAP_SUPPORT/undef PIXMAP_SUPPORT/g';
GRLIBS="";
fi, echo "yes" ; GRLIBS="-lImlib" ; PIXMAPSED="")
AC_MSG_RESULT(yes)
CFLAGS="$CFLAGS -I${withval}/include -L${withval}/lib"
GRLIBS="-lImlib"
AC_DEFINE(PIXMAP_SUPPORT)
AC_DEFINE(PIXMAP_SCROLLBAR)
AC_DEFINE(PIXMAP_MENUBAR)
AC_DEFINE(BACKING_STORE)
else
AC_MSG_RESULT(no)
GRLIBS=""
fi, AC_MSG_RESULT(yes)
GRLIBS="-lImlib"
AC_DEFINE(PIXMAP_SUPPORT)
AC_DEFINE(PIXMAP_SCROLLBAR)
AC_DEFINE(PIXMAP_MENUBAR)
AC_DEFINE(BACKING_STORE)
)
AC_MSG_CHECKING(for transparency support)
AC_ARG_ENABLE(trans,
[ --enable-trans[=imlib] compile with transparency support ("=imlib" will use Imlib instead of Xlib for transparency)],
if test "$enableval" = "imlib"; then
AC_MSG_RESULT(yes, using Imlib)
AC_DEFINE(PIXMAP_OFFSET)
AC_DEFINE(IMLIB_TRANS)
elif test "$enableval" != "no"; then
AC_MSG_RESULT(yes)
AC_DEFINE(PIXMAP_OFFSET)
else
AC_MSG_RESULT(no)
fi, AC_MSG_RESULT(yes)
AC_DEFINE(PIXMAP_OFFSET)
)
AC_MSG_CHECKING(for utmp support)
AC_ARG_ENABLE(utmp,
[ --enable-utmp compile with utmp support],
if test "$enableval" != "no"; then
AC_MSG_RESULT(yes)
AC_DEFINE(UTMP_SUPPORT)
else
AC_MSG_RESULT(no)
fi, AC_MSG_RESULT(yes)
AC_DEFINE(UTMP_SUPPORT)
)
AC_MSG_CHECKING(for backspace key configuration)
AC_ARG_WITH(backspace,
[ --with-backspace=KEY force backspace to send KEY (KEY is either "bs" for ^H or "del" for ^?)],
if test "$withval" = "bs"; then
AC_MSG_RESULT(forcing Backspace to send Ctrl-H)
AC_DEFINE(FORCE_BACKSPACE)
elif test "$withval" = "del"; then
AC_MSG_RESULT(forcing Backspace to send Ctrl-?)
AC_DEFINE(FORCE_DELETE)
else
AC_MSG_RESULT(default)
fi, AC_MSG_RESULT(default)
)
AC_MSG_CHECKING(for delete key configuration)
AC_ARG_WITH(delete,
[ --with-delete=SETTING force delete to SETTING ("server" to use the X server value always or
a quoted string to use a specific string)],
if test "$withval" = "server"; then
AC_MSG_RESULT(X server value)
AC_DEFINE(NO_DELETE_KEY)
else
AC_MSG_RESULT(forcing Delete to send "$withval")
AC_DEFINE_UNQUOTED(KS_DELETE, "$withval")
fi, AC_MSG_RESULT(default)
AC_DEFINE_UNQUOTED(KS_DELETE, "\177")
)
AC_MSG_CHECKING(for multi-charset support)
AC_ARG_ENABLE(multi-charset,
[ --enable-multi-charset compile with multi-charset support],
if test "$enableval" = "yes"; then
AC_MSG_RESULT(yes)
AC_DEFINE(MULTI_CHARSET)
else
AC_MSG_RESULT(no)
fi, AC_MSG_RESULT(no)
)
AC_MSG_CHECKING(for XIM support)
AC_ARG_ENABLE(xim,
[ --enable-xim compile with XIM support],
if test "$enableval" = "yes"; then
AC_MSG_RESULT(yes)
AC_DEFINE(USE_XIM)
XIM="TRUE"
else
AC_MSG_RESULT(no)
XIM="FALSE"
fi, AC_MSG_RESULT(no)
)
AC_MSG_CHECKING(for Greek keyboard support)
AC_ARG_ENABLE(greek,
[ --enable-greek compile with support for Greek keyboards],
if test "$enableval" = "yes"; then
AC_MSG_RESULT(yes)
AC_DEFINE(GREEK_SUPPORT)
else
AC_MSG_RESULT(no)
fi, AC_MSG_RESULT(no)
)
AC_MSG_CHECKING(which threads library to use)
AC_ARG_WITH(threads,
[ --with-threads[=STYLE] compile with threads support, STYLE is either "posix" or blank
(disabled by default)],
case $withval in
[yes | posix )]
AC_MSG_RESULT(POSIX)
THREADS_LIB=posix
;;
[* )]
AC_MSG_RESULT(none)
;;
esac
, AC_MSG_RESULT(none))
if test "$THREADS_LIB" = "posix"; then
AC_CHECK_LIB(pthread, pthread_create, CFLAGS="$CFLAGS -D_REENTRANT" ; THREADLIBS="-lpthread"
AC_DEFINE(USE_POSIX_THREADS)
AC_DEFINE(MUTEX_SYNCH)
, , -D_REENTRANT -L/usr/lib -L/lib -L/usr/local/lib)
fi
dnl#
dnl# X LIBRARIES
dnl#
AC_CHECK_LIB(X11, XOpenDisplay, X_LIBS="$X_LIBS -lX11", [
echo "ERROR: You need libX11 to build Eterm. Verify that you have libX11.a or";
echo " libX11.so installed and that it is located in the X libraries";
echo " directory shown above. If it is in a different directory, try using";
echo " the --x-libraries parameter to configure.";
AC_MSG_ERROR([Fatal: libX11 not found.])], $X_LIBS $SUBLIBS)
AC_CHECK_LIB(Xext, XextAddDisplay, X_LIBS="-lXext $X_LIBS", [
echo "ERROR: You need libXext to build Eterm. Verify that you have libXext.a or";
echo " libXext.so installed and that it is located in the X libraries";
@ -215,6 +318,14 @@ echo " the --x-libraries parameter to configure.";
AC_CHECK_LIB(Xext, XShapeQueryExtension, AC_DEFINE(HAVE_X_SHAPE_EXT), , $X_LIBS $SUBLIBS)
# check if we need X_LOCALE definition
AC_CHECK_LIB(X11, _Xsetlocale, , AC_DEFINE(NO_XLOCALE), , $X_LIBS $SUBLIBS)
# check X11R6 for XIM
if test "$XIM" = "TRUE"; then
AC_CHECK_LIB(X11, XRegisterIMInstantiateCallback, AC_DEFINE(USE_X11R6_XIM), , $X_LIBS $SUBLIBS)
fi
if test -z "$PIXMAPSED"; then
AC_CHECK_PROG(IMLIB_CONFIG, imlib-config, imlib-config, no)
@ -325,6 +436,8 @@ AC_CHECK_LIB(Kenny, life_signs, , [
])
fi
AC_DEFINE_UNQUOTED(CONFIG_SEARCH_PATH, "~/.Eterm/themes:~/.Eterm:${prefix}/share/Eterm/themes:${prefix}/share/Eterm")
CFLAGS=${CFLAGS--O}
LDFLAGS=${LDFLAGS--O}
@ -338,12 +451,6 @@ AC_SUBST(THREADLIBS)
AC_SUBST(GRLIBS)
basedir=.
FEATURE_CMD="$SED -e \"s%@PREFIX@%${prefix}%g\" -e \"s%@DATADIR@%${datadir}%g\" -e \"$PIXMAPSED\" -e \"$MENUSED\" "'${DIST_ROOT}'"/src/feature.h.in > "'${DIST_ROOT}'"/src/feature.h"
AC_SUBST(FEATURE_CMD)
dnl# common parts of the Makefile
dnl# MCOMMON=./Make.common
dnl# AC_SUBST_FILE(MCOMMON)
AM_CONFIG_HEADER(config.h)
@ -352,6 +459,7 @@ bg/Makefile \
doc/Makefile \
utils/Makefile \
libmej/Makefile \
pix/Makefile \
src/Makefile \
src/graphics/Makefile \
themes/Makefile \
@ -359,29 +467,24 @@ Eterm.spec \
)
dnl If we're not building with Imlib support, don't build Esetroot
if test -n "$PIXMAPSED"; then
if test -z "$GRLIBS"; then
sed -e 's/^bin_PROGRAMS.*$//g' doc/Makefile > doc/Makefile.new
mv doc/Makefile.new doc/Makefile
fi
echo "creating src/feature.h"
eval ${FEATURE_CMD}.new
if cmp -s ${DIST_ROOT}/src/feature.h.new ${DIST_ROOT}/src/feature.h 2>/dev/null ; then
echo "feature.h is unchanged"
rm -f ${DIST_ROOT}/src/feature.h.new
else
mv ${DIST_ROOT}/src/feature.h.new ${DIST_ROOT}/src/feature.h
fi
echo "
$PACKAGE $VERSION
Configuration:
--------------
Source code location: ${srcdir}
Compiler: ${CC} ${CFLAGS}
Host System Type: ${host}
Graphics libraries: ${GRLIBS}
X Windows libs/paths: ${X_LIBS}
X libraries/paths: ${X_LIBS}
Install path: ${prefix}
See src/feature.h for further configuration information."
echo
See src/feature.h for further configuration information.
Now type 'make' to build $PACKAGE $VERSION.
"

@ -0,0 +1,3 @@
Yet another change to the Eterm theme files. Shading and tinting as
you remember them no longer exist. Please update your Eterm theme
files, or stuff will not work. See the ChangeLog for details!

@ -1249,7 +1249,7 @@ directive to allow for separation of the configuration information into
separate files.
.SH AUTHORS
Tuomo Venalainen (vendu@cc.hut.fi) and Michael Jennings (mej@tcserv.com).
Michael Jennings (mej@eterm.org) and Tuomo Venäläinen (vendu@cc.hut.fi).
Man page re-written for version 0.8 by Shaleh (shaleh@debian.org).
.SH URL(s)

@ -450,7 +450,7 @@ If you run into problems with Eterm, please go through the steps outlined
<OL>
<LI> Comment out line 41 of <TT>src/feature.h</TT> where NDEBUG is defined.
<LI> Recompile Eterm.
<LI> Run the new copy of Eterm and mail the output to me (<I>mej@tcserv.com</I>).
<LI> Run the new copy of Eterm and mail the output to me (<I>mej@eterm.org</I>).
</OL>
This is the only way we can get the information we need about where the
program is when it runs into problems, or what privileges it has, or

@ -6,7 +6,7 @@ libmej_la_SOURCES = debug.c mem.c strings.c snprintf.c
INCLUDES = -I. -I.. -I$(includedir) -I$(prefix)/include
libmej_la_LDFLAGS = -version-info 8:9:8
libmej_la_LDFLAGS = -version-info 9:0:9
EXTRA_DIST = debug.h global.h mem.h strings.h strptime.h strptime.c

@ -4,7 +4,7 @@
* -- 20 December 1996 *
*********************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -26,6 +26,9 @@
static const char cvs_ident[] = "$Id$";
#include "config.h"
#include "../src/feature.h"
#include "global.h"
#include <stdio.h>
#include <stdlib.h>
@ -36,7 +39,6 @@ static const char cvs_ident[] = "$Id$";
#include <string.h>
#include <time.h>
#include <errno.h>
#define DEBUG_C
#include "debug.h"
int
@ -47,8 +49,7 @@ real_dprintf(const char *format,...)
int n;
va_start(args, format);
n = fprintf(stderr, "[debug] ");
n += vfprintf(stderr, format, args);
n = vfprintf(stderr, format, args);
va_end(args);
fflush(stderr);
return (n);

@ -4,7 +4,7 @@
* -- 20 December 1996 *
**********************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -24,13 +24,11 @@
*
*/
#if !defined(DEBUG_C) && !defined(DEBUG_CC)
extern int real_dprintf(const char *, ...);
#endif
#ifndef _LIBMEJ_DEBUG_H
# define _LIBMEJ_DEBUG_H
extern int real_dprintf(const char *, ...);
#include "../src/debug.h"
#endif /* _LIBMEJ_DEBUG_H */

@ -4,7 +4,7 @@
* -- 16 January 1997 *
***************************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -28,9 +28,6 @@
#define _GLOBAL_H_
#include "config.h"
#include "src/feature.h"
/* Other compile-time defines */
#ifdef LINUX
# define _GNU_SOURCE

@ -5,7 +5,7 @@
* -- 07 January 1997 *
***************************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -27,6 +27,9 @@
static const char cvs_ident[] = "$Id$";
#include "config.h"
#include "../src/feature.h"
#include "global.h"
#include <stdio.h>
#include <stdlib.h>
@ -35,7 +38,7 @@ static const char cvs_ident[] = "$Id$";
#include <string.h>
#include <ctype.h>
#include <signal.h>
#define MEM_C
#include "debug.h"
#include "mem.h"
@ -44,12 +47,11 @@ static const char cvs_ident[] = "$Id$";
* The beginning of each one's respective function. (The ones with capitalized
* letters. I'm not sure that they'll be useful outside of gdb. Maybe.
*/
#if DEBUG >= DEBUG_MALLOC
#ifdef MALLOC_CALL_DEBUG
static int malloc_count = 0;
static int calloc_count = 0;
static int realloc_count = 0;
static int free_count = 0;
#endif
MemRec memrec =
@ -240,38 +242,26 @@ void *
Malloc(size_t size)
{
#if 0
char *temp = NULL;
#endif
void *temp = NULL;
#if DEBUG >= DEBUG_MALLOC
++malloc_count;
#ifdef MALLOC_CALL_DEBUG
++malloc_count;
if (!(malloc_count % MALLOC_MOD)) {
fprintf(stderr, "Calls to malloc(): %d\n", malloc_count);
}
#endif
#endif
#if DEBUG >= DEBUG_MALLOC
if (!memrec.init) {
D_MALLOC(("WARNING: You must call memrec_init() before using the libmej memory management calls.\n"));
memrec_init();
}
#endif
#if 0
temp = (char *) malloc(size);
#endif
temp = malloc(size);
temp = (void *) malloc(size);
if (!temp)
return NULL;
#if DEBUG >= DEBUG_MALLOC
memrec_add_var(temp, size);
#endif
if (debug_level >= DEBUG_MALLOC) {
memrec_add_var(temp, size);
}
return (temp);
}
@ -279,33 +269,27 @@ void *
Realloc(void *ptr, size_t size)
{
char *temp = NULL;
void *temp = NULL;
#if DEBUG >= DEBUG_MALLOC
#ifdef MALLOC_CALL_DEBUG
++realloc_count;
# ifdef MALLOC_CALL_DEBUG
if (!(realloc_count % REALLOC_MOD)) {
fprintf(stderr, "Calls to realloc(): %d\n", realloc_count);
}
# endif
#endif
/*
* Redundant. You know the drill :)
* #if DEBUG >= DEBUG_MALLOC
*/
if (!memrec.init) {
D_MALLOC(("WARNING: You must call memrec_init() before using the libmej memory management calls.\n"));
memrec_init();
}
/* #endif */
if (ptr == NULL) {
temp = (char *) Malloc(size);
temp = (void *) Malloc(size);
} else {
temp = (char *) realloc(ptr, size);
#if DEBUG >= DEBUG_MALLOC
memrec_chg_var(ptr, temp, size);
#endif
temp = (void *) realloc(ptr, size);
if (debug_level >= DEBUG_MALLOC) {
memrec_chg_var(ptr, temp, size);
}
}
if (!temp)
return NULL;
@ -318,27 +302,22 @@ Calloc(size_t count, size_t size)
char *temp = NULL;
#if DEBUG >= DEBUG_MALLOC
++calloc_count;
#ifdef MALLOC_CALL_DEBUG
++calloc_count;
if (!(calloc_count % CALLOC_MOD)) {
fprintf(stderr, "Calls to calloc(): %d\n", calloc_count);
}
#endif
#endif
#if DEBUG >= DEBUG_MALLOC
if (!memrec.init) {
D_MALLOC(("WARNING: You must call memrec_init() before using the libmej memory management calls.\n"));
memrec_init();
}
#endif
temp = (char *) calloc(count, size);
#if DEBUG >= DEBUG_MALLOC
memrec_add_var(temp, size * count);
#endif
if (debug_level >= DEBUG_MALLOC) {
memrec_add_var(temp, size * count);
}
if (!temp)
return NULL;
return (temp);
@ -348,25 +327,22 @@ void
Free(void *ptr)
{
#if DEBUG >= DEBUG_MALLOC
++free_count;
#ifdef MALLOC_CALL_DEBUG
++free_count;
if (!(free_count % FREE_MOD)) {
fprintf(stderr, "Calls to free(): %d\n", free_count);
}
#endif
#endif
#if DEBUG >= DEBUG_MALLOC
if (!memrec.init) {
D_MALLOC(("WARNING: You must call memrec_init() before using the libmej memory management calls.\n"));
memrec_init();
}
#endif
if (ptr) {
#if DEBUG >= DEBUG_MALLOC
memrec_rem_var(ptr);
#endif
if (debug_level >= DEBUG_MALLOC) {
memrec_rem_var(ptr);
}
free(ptr);
} else {
D_MALLOC(("Caught attempt to free NULL pointer\n"));
@ -384,12 +360,12 @@ HandleSigSegv(int sig)
/* Recursive seg faults are not cool.... */
if (segv_again) {
printf("RECURSIVE SEGMENTATION FAULT DETECTED!\n");
printf("Recursive segmentation fault detected!\n");
_exit(EXIT_FAILURE);
}
segv_again = 1;
#if DEBUG >= DEBUG_MALLOC
fprintf(stderr, "SEGMENTATION FAULT! DUMPING MEMORY TABLE\n");
fprintf(stderr, "Fatal memory fault (%d)! Dumping memory table.\n", sig);
memrec_dump();
#endif
exit(EXIT_FAILURE);

@ -4,7 +4,7 @@
* -- 07 January 1997 *
***************************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -41,12 +41,12 @@ typedef struct memrec_struct {
# define CALLOC(type,n) calloc((n),(sizeof(type)))
# define REALLOC(mem,sz) fixed_realloc((mem),(sz))
# define FREE(ptr) free(ptr)
#elif defined(DEBUG) || !defined(NDEBUG)
#elif (DEBUG >= DEBUG_MALLOC)
# define MALLOC(sz) Malloc(sz)
# define CALLOC(type,n) Calloc((n),(sizeof(type)))
# define REALLOC(mem,sz) Realloc((mem),(sz))
/* # define FREE(ptr) Free(ptr) */
# define FREE(ptr) { Free(ptr); ptr = NULL; }
# define FREE(ptr) do { Free(ptr); ptr = NULL; } while(0)
# define MALLOC_MOD 25
# define REALLOC_MOD 25
# define CALLOC_MOD 25
@ -58,15 +58,13 @@ typedef struct memrec_struct {
# define FREE(ptr) free(ptr)
#endif
#ifndef MEM_C
extern char *SafeStr(char *, unsigned short);
extern MemRec memrec;
extern void memrec_init(void);
void memrec_add_var(void *, size_t);
void memrec_rem_var(void *);
void memrec_chg_var(void *, void *, size_t);
void memrec_dump(void);
extern void memrec_add_var(void *, size_t);
extern void memrec_rem_var(void *);
extern void memrec_chg_var(void *, void *, size_t);
extern void memrec_dump(void);
extern void *Malloc(size_t);
extern void *Realloc(void *, size_t);
extern void *Calloc(size_t, size_t);
@ -76,7 +74,6 @@ extern void HandleSigSegv(int);
extern char *GarbageCollect(char *, size_t);
extern char *FileGarbageCollect(char *, size_t);
extern void *fixed_realloc(void *, size_t);
#endif /* MEM_C */
#endif /* _MEM_H_ */

@ -1,3 +1,6 @@
#include "config.h"
#include "../src/feature.h"
#include "global.h"
#include <errno.h>
@ -13,7 +16,7 @@ static const char cvs_ident[] = "$Id$";
* junk....
*/
#ifndef HAVE_SNPRINTF
#if !defined(HAVE_SNPRINTF) || (HAVE_SNPRINTF_BUG == 1)
#ifdef HAVE_STDARG_H
#include <stdarg.h>

@ -4,7 +4,7 @@
* -- 08 January 1997 *
***************************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -26,6 +26,9 @@
static const char cvs_ident[] = "$Id$";
#include "config.h"
#include "../src/feature.h"
#include "global.h"
#include <stdio.h>
#include <stdlib.h>
@ -38,7 +41,6 @@ static const char cvs_ident[] = "$Id$";
#include <ctype.h>
#include "debug.h"
#include "mem.h"
#define STRINGS_C
#include "strings.h"
#ifndef HAVE_MEMMEM
@ -51,7 +53,7 @@ memmem(void *haystack, register size_t haystacklen, void *needle, register size_
register char *hs = (char *) haystack;
register char *n = (char *) needle;
register unsigned long i;
register len = haystacklen - needlelen;
register size_t len = haystacklen - needlelen;
for (i = 0; i < len; i++) {
if (!memcmp(hs + i, n, needlelen)) {
@ -396,6 +398,19 @@ StrRev(register char *str)
}
char *
StrDup(register const char *str)
{
register char *newstr;
register unsigned long len;
len = strlen(str) + 1; /* Copy NUL byte also */
newstr = (char *) MALLOC(len);
memcpy(newstr, str, len);
return (newstr);
}
#if !(HAVE_STRSEP)
char *
strsep(char **str, register char *sep)
@ -404,7 +419,7 @@ strsep(char **str, register char *sep)
register char *s = *str;
char *sptr;
D_STRINGS(("StrSep(%s, %s) called.\n", *str, sep));
D_STRINGS(("strsep(%s, %s) called.\n", *str, sep));
sptr = s;
for (; *s && !strchr(sep, *s); s++);
if (!*s) {

@ -4,7 +4,7 @@
* -- 08 January 1997 *
***************************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -66,15 +66,15 @@
# include <regex.h>
#endif
#ifndef STRINGS_C
extern char *LeftStr(const char *, unsigned long);
extern char *MidStr(const char *, unsigned long, unsigned long);
extern char *RightStr(const char *, unsigned long);
#if defined(HAVE_REGEX_H) || defined(IRIX)
extern unsigned char Match(const char *, const char *);
#endif
extern char *Word(unsigned long index, const char *str);
extern char *PWord(unsigned long index, char *str);
extern char *Word(unsigned long, const char *);
extern char *PWord(unsigned long, char *);
extern unsigned long NumWords(const char *);
extern char *StripWhitespace(char *);
extern char *LowerStr(char *);
extern char *UpStr(char *);
@ -82,6 +82,7 @@ extern char *StrCaseStr(char *, const char *);
extern char *StrCaseChr(char *, char);
extern char *StrCasePBrk(char *, char *);
extern char *StrRev(char *);
extern char *StrDup(const char *);
#if !(HAVE_STRSEP)
extern char *strsep(char **, char *);
#endif
@ -101,6 +102,5 @@ extern void usleep(unsigned long);
extern void nanosleep(unsigned long);
#endif
*/
#endif
#endif /* _STRINGS_H_ */

@ -5,7 +5,7 @@
* -- 2 April 1997 *
***************************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -29,12 +29,14 @@ static const char cvs_ident[] = "$Id$";
#ifdef IRIX
#include "config.h"
#include "../src/feature.h"
#include "global.h"
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#define STRPTIME_C
#include "strptime.h"
char *

@ -4,7 +4,7 @@
* -- 2 April 1997 *
***************************************************************/
/*
* This file is original work by Michael Jennings <mej@tcserv.com>.
* This file is original work by Michael Jennings <mej@eterm.org>.
*
* Copyright (C) 1997, Michael Jennings
*
@ -63,14 +63,6 @@ static DTMap USMap = {
"PM"
};
#ifndef STRPTIME_C
# ifdef __cplusplus
extern "C" {
# else
extern {
# endif
extern char *strptime(char *, const char *, struct tm *);
}
#endif
extern char *strptime(char *, const char *, struct tm *);
#endif /* _STRPTIME_H_ */

@ -0,0 +1,2 @@
Makefile
Makefile.in

@ -0,0 +1,14 @@
# $Id$
EXTRA_DIST = bar_horizontal_1.png bar_horizontal_2.png bar_horizontal_3.png bar_vertical_1.png bar_vertical_2.png \
bar_vertical_3.png button_arrow_down_1.png button_arrow_down_2.png button_arrow_down_3.png \
button_arrow_up_1.png button_arrow_up_2.png button_arrow_up_3.png menu1.png menu2.png menu3.png
pixmapdir = $(pkgdatadir)/pix
install-data-hook:
$(mkinstalldirs) $(DESTDIR)$(pixmapdir)
@for i in $(EXTRA_DIST) ; do \
echo $(INSTALL_DATA) $$i $(DESTDIR)${pixmapdir} ; \
$(INSTALL_DATA) $$i $(DESTDIR)${pixmapdir} ; \
done

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -2,29 +2,22 @@
lib_LTLIBRARIES = libEterm.la
libEterm_la_SOURCES = activeconfig.c activeeterm.c activetags.c command.c \
graphics.c grkelot.c menubar.c misc.c netdisp.c options.c \
pixmap.c screen.c scrollbar.c system.c threads.c utmp.c
libEterm_la_SOURCES = actions.c command.c e.c events.c graphics.c grkelot.c menus.c misc.c netdisp.c \
options.c pixmap.c screen.c scrollbar.c system.c term.c threads.c timer.c utmp.c windows.c
libEterm_la_LDFLAGS = -version-info 8:9:8
libEterm_la_LDFLAGS = -version-info 9:0:9
bin_PROGRAMS = Eterm
Eterm_SOURCES = main.c
Eterm_DEPENDENCIES = ../libmej/libmej.la feature.h
Eterm_DEPENDENCIES = libEterm.la ../libmej/libmej.la feature.h
INCLUDES = -I. -I../libmej -I.. -I$(includedir) -I$(prefix)/include $(X_CFLAGS)
INCLUDES = -I. -I$(top_srcdir)/libmej -I.. -I$(includedir) -I$(prefix)/include $(X_CFLAGS)
Eterm_LDFLAGS = -rpath $(libdir):$(pkglibdir)
LDADD = -L$(DIST_ROOT)/src/.libs -lEterm -L$(DIST_ROOT)/libmej/.libs -L$(libdir) -L$(prefix)/lib $(LIBS) -lmej $(GRLIBS) $(X_LIBS)
EXTRA_DIST = activeconfig.h activeeterm.h activetags.h command.h debug.h \
eterm_imlib.h feature.h.in graphics.h grkelot.h grx.h main.h \
menubar.h misc.h options.h pixmap.h profile.h screen.h scrollbar.h \
system.h threads.h graphics/Makefile.am graphics/Makefile.in \
graphics/README graphics/data graphics/grxlib.c graphics/grxlib.h \
graphics/qplot.c Eterm.xpm
feature.h: feature.h.in
$(FEATURE_CMD)
EXTRA_DIST = actions.h command.h debug.h e.h eterm_utmp.h events.h feature.h graphics.h grkelot.h grx.h main.h menus.h misc.h \
options.h pixmap.h profile.h screen.h scrollbar.h system.h term.h threads.h timer.h windows.h graphics/Makefile.am \
graphics/Makefile.in graphics/README graphics/data graphics/grxlib.c graphics/grxlib.h graphics/qplot.c Eterm.xpm

@ -0,0 +1,158 @@
/* actions.c -- Eterm action class module
* -- 3 August 1999, mej
*
* This file is original work by Michael Jennings <mej@eterm.org> and
* Tuomo Venalainen <vendu@cc.hut.fi>. This file, and any other file
* bearing this same message or a similar one, is distributed under
* the GNU Public License (GPL) as outlined in the COPYING file.
*
* Copyright (C) 1999-1997, Michael Jennings and Tuomo Venalainen
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with thi