commit
22b2a193d3
129 changed files with 45968 additions and 0 deletions
@ -0,0 +1,17 @@ |
||||
config.log |
||||
config.sub |
||||
config.cache |
||||
config.guess |
||||
configure |
||||
ltconfig |
||||
ltmain.sh |
||||
Makefile |
||||
Makefile.in |
||||
aclocal.m4 |
||||
config.status |
||||
config.h |
||||
libtool |
||||
stamp-h |
||||
move-themes |
||||
Eterm.spec |
||||
config.h.in |
@ -0,0 +1,11 @@ |
||||
As of 31 August 1998, Eterm is now available via anonymous CVS from |
||||
anoncvs.gnome.org. If you don't know how to use CVS, don't use it. |
||||
The authors, of course, don't guarantee anything whatsoever about |
||||
Eterm being functional; we guarantee even less if you get it from |
||||
CVS. We will try to remember to test things before we commit them, |
||||
but we make no promises. :-) |
||||
|
||||
Happy terming! |
||||
|
||||
mej |
||||
|
@ -0,0 +1,79 @@ |
||||
# Note that this is NOT a relocatable package |
||||
%define ver @VERSION@ |
||||
%define rel SNAP |
||||
%define prefix /usr |
||||
|
||||
Summary: Eterm Enlightened Terminal Emulator for X Windows |
||||
Name: Eterm |
||||
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 |
||||
|
||||
%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 |
||||
|
||||
* Wed Dec 30 1998 mej <mej@mw.3com.com> |
||||
|
||||
- Added spec file. Created by techn0ir <technoir@themes.org> |
||||
|
||||
|
||||
%prep |
||||
%setup |
||||
|
||||
%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 |
||||
|
||||
make |
||||
|
||||
%install |
||||
rm -rf $RPM_BUILD_ROOT |
||||
|
||||
make prefix=$RPM_BUILD_ROOT%{prefix} install |
||||
|
||||
%clean |
||||
rm -rf $RPM_BUILD_ROOT |
||||
|
||||
%post |
||||
|
||||
%postun |
||||
|
||||
%files |
||||
%defattr(-, root, root) |
||||
|
||||
%{prefix}/bin/* |
||||
%(prefix)/doc/* |
||||
%{prefix}/lib/* |
||||
%{prefix}/share/* |
||||
%{prefix}/man/* |
||||
|
||||
|
||||
%doc COPYING |
||||
%doc ChangeLog |
||||
%doc README |
@ -0,0 +1,7 @@ |
||||
# $Id$
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
SUBDIRS = libmej src themes utils doc bg
|
||||
|
||||
EXTRA_DIST = README ReleaseNotes CVS-README COPYING ChangeLog autogen.sh
|
@ -0,0 +1,124 @@ |
||||
Release notes for Eterm Development Release 0.8 |
||||
----------------------------------------------- |
||||
|
||||
Software Requirements |
||||
--------------------- |
||||
- The usual X11R6 stuff |
||||
- Rasterman's Imlib and the libraries it needs. Visit |
||||
http://www.labs.redhat.com/imlib/ for more information. |
||||
- Even though Eterm works with any window manager, you just might get extra |
||||
fancies by using the Enlightenment window manager from Rasterman and |
||||
Mandrake - http://www.enlightenment.org/ for more information. Now go see |
||||
what your desktop can look like with E. :) -vendu |
||||
|
||||
Documentation to read |
||||
--------------------- |
||||
- The FAQ at http://www.eterm.org/ |
||||
- Run "Eterm -h" - you'll see the command line options. |
||||
|
||||
ATTENTION! Active Tags Warning! |
||||
-------------------------------- |
||||
|
||||
NOTE: It looks like the latest resize-crashes happen in the active tags |
||||
code. We'll try to get this fixed as soon as possible. Until then, if you |
||||
want to use tags, you may want to see the FIXME notes in screen.c for what |
||||
NULL pointer checks to remove. |
||||
|
||||
Preliminary support for active tags by Nat Friedman has been added. |
||||
Thanks, Nat :) (http://dingus.mit.edu/ for more info) |
||||
|
||||
This will definitely need more work :) Sorry if it's buggy (I'd expect it |
||||
to be >:). -vendu |
||||
|
||||
Building Eterm 0.8 |
||||
------------------ |
||||
|
||||
From the toplevel Eterm source tree directory: |
||||
./configure |
||||
make |
||||
|
||||
With better optimization flags |
||||
|
||||
- For gcc 2.7.2.1 and older: make "CFLAGS=-O2 -fno-strength-reduce" |
||||
- For Intel-based platforms with new gcc compilers: make "CFLAGS=-O2 -m486" |
||||
- For Intel-based platforms with new gcc compilers, more optimization: |
||||
make "CFLAGS=-O3 -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2" |
||||
- For Pentium machines with egcs or pgcc: |
||||
make "CFLAGS=-O6 -mpentium -malign-loops=2 -malign-jumps=2 -malign-functions=2" |
||||
- Eterm seems to compile OK with pgcc 1.0.1. DEFINITELY use the -malign |
||||
flags, they seem to speed things up quite considerably for Pentium |
||||
processors :) |
||||
|
||||
Installing Eterm |
||||
---------------- |
||||
|
||||
After performing the build step above, run: |
||||
make install |
||||
|
||||
Standard Disclaimer |
||||
------------------- |
||||
|
||||
The authors don't take any responsibility for any damage this program |
||||
may do. We are doing this in our spare time. If you don't like this |
||||
program, don't use it. |
||||
|
||||
Eterm is based on rxvt 2.21. This development release of Eterm |
||||
has been hacked together by Tuomo Venalainen (vendu@cc.hut.fi) |
||||
and Michael Jennings (mej@tcserv.com). Thanks to Rasterman |
||||
(aka Carsten Haitzler) and Michael Kellen, as well as to all the |
||||
other people who have provided patches. Thanks to all regulars |
||||
from the #E IRC channel for helping us test Eterm. |
||||
|
||||
The development of Eterm will be continued. The sources need to be |
||||
converted into human-readable format ;-). More features will be added |
||||
as well. We'll continue cleaning up and patching the sources to make |
||||
Eterm more robust, secure and portable. |
||||
|
||||
NOTE: Support for libXpm was dropped off in DR 0.3. Imlib does a much |
||||
better job at loading and scaling the background pixmaps. And hey, |
||||
it's Eterm, ya know :-) |
||||
|
||||
Future Plans |
||||
------------ |
||||
|
||||
There will be minimal further development on this incarnation of Eterm. |
||||
We have begun Project Resurrection, which is a complete rewrite of Eterm |
||||
with a completely different philosophy of design. Please visit |
||||
http://ganja.tky.hut.fi/Resurrection/ for more information. |
||||
|
||||
Notes |
||||
----- |
||||
|
||||
- In case you need utmp support, you'll have to run Eterm "setuid root" |
||||
As root, do: "chmod 4755 Eterm" Make SURE the Eterm binary is owned by |
||||
user=root, group=root (on BSD, i think it should be group=wheel): |
||||
|
||||
1. chown root.root Eterm |
||||
2. (BSD) chown root.wheel Eterm |
||||
|
||||
Note that in this version, utmp support will be turned on automagically |
||||
only on Linux and FreeBSD. If you want to try it on other platforms, |
||||
add -DUTMP_SUPPORT to your compilation flags. An example: |
||||
make "CFLAGS=-O -DUTMP_SUPPORT" |
||||
|
||||
- The only fonts I know that will display ANSI art correctly are Raster's |
||||
nexus and vga; |
||||
- If you want to use colorful ANSI prompts (at least bash can show them), |
||||
make sure to make them end with a new line character ('\n')> |
||||
|
||||
Development Notes |
||||
----------------- |
||||
|
||||
- ATTENTION! Ignore warnings like this: |
||||
options.c:1454: warning: unsigned int format, long unsigned int arg (arg 3) |
||||
- type casting or otherwise screwing around can break text colors bad :) |
||||
- The sources don't compile with the GCC profiling flag (-gp) yet; |
||||
|
||||
Troubleshooting |
||||
--------------- |
||||
|
||||
- See feature.h; |
||||
- In case you have problems, try commenting out #define NDEBUG in feature.h: |
||||
/* #define NDEBUG */ |
||||
|
||||
E-n-Joy! ;-) -- vendu & mej |
@ -0,0 +1,413 @@ |
||||
Release Notes |
||||
============= |
||||
|
||||
This document includes a summary of major changes for each revision of Eterm. |
||||
|
||||
Changes made to rxvt 2.21 include |
||||
--------------------------------- |
||||
|
||||
- Better (read: working) implementation of utmp logging and added security; |
||||
needs to be tested on different platforms; |
||||
- Support for Rasterman's Imlib - used for loading and scaling the background |
||||
pixmaps; |
||||
- The command line option -pixmap now takes '@' as the delimiter between |
||||
the pixmap name and geometry. The old delimiter, ';', is NOT supported |
||||
any more. It was UGLY. Period. <g> ; |
||||
- A new command line option, --scale or -@, was added. It will scale the background |
||||
pixmap "to fit"; to fill the whole background of the Eterm window; |
||||
- The binary was renamed to Eterm; |
||||
- Several bug/annoyance fixes. For example, fixed a problem with DEBUG_UTMP |
||||
that printed garbage when running with the debugging messages enabled. |
||||
See also #define NDEBUG in feature.h; |
||||
- Minor speedups. |
||||
|
||||
More changes for 0.3 (included in some 0.2 versions), as described by Michael: |
||||
|
||||
- Installs signal handlers that, among other things, make core |
||||
dumps secure by revoking privs and changing its umask to 077. |
||||
It also prompts for whether or not it should dump core, timing |
||||
out after 10 seconds or if it gets a SIGT(STP|TIN|TOU) |
||||
- Changes stuff that said rxvt to Eterm (most places, but I probably |
||||
missed a few). |
||||
- Fixes SVR4/utmpx compile under HP-UX 10.X |
||||
|
||||
Utmp logging support was fixed to work on FreeBSD (tested on 2.1.5 and 2.2.2) |
||||
for 0.3a. Thanks to Brian Gottlieb for doing it. |
||||
|
||||
Changes made to 0.3b include a few portability additions and fixes (HP-UX, |
||||
OSF/1) and a few changed (commented out) #define's in feature.h. |
||||
|
||||
Eterm DR-0.4x included a number of patches for bold fonts, security, |
||||
utmp logging, etc. |
||||
|
||||
Several bugs were fixed for DR 0.5. Thanks to Michael Kellen for his |
||||
Solaris patch. |
||||
|
||||
Thanks go to Steve <steve@rage.org> for his help with security. |
||||
|
||||
Changes in DR-0.6: |
||||
------------------ |
||||
|
||||
- Finally got the distribution tree cleaned up to remove most all traces |
||||
of left-over rxvt SPAM(tm). For now, however, credit for most of the |
||||
docs still remains with the rxvt people. |
||||
- No more .Xdefaults support. The X Resource Manager (Xrm) code has |
||||
several known security holes which make any program making |
||||
XGetDefault() calls insecure. Since Eterm generally runs as root, |
||||
this is unacceptable. So too is reading .Xdefaults directly, which |
||||
it had been doing up until now. From DR-0.6 on, it will read (in |
||||
proper Enlightened fashion) ~/.Eterm/MAIN, which will be a very |
||||
E-like config file. See doc/MAIN.dist for a sample. |
||||
- The config files support $ variable expansion, ~ expansion, single/double |
||||
quotes, and (if #defined) backquotes. PLEASE read the accompanying |
||||
notes in src/feature.h before #defining ALLOW_BACKQUOTE_EXEC. Also |
||||
supported is the %include macro. |
||||
|
||||
Changes in DR-0.6a: |
||||
------------------- |
||||
|
||||
- Lots of bug fixes: |
||||
- The font options now accept font names starting with '-' |
||||
- Intense colors are no longer off by one. |
||||
- Scrollbar and cursor color configuration options now work properly. |
||||
- Eterm now changes back to the original directory after searching for |
||||
a config file. |
||||
- Command line options now take precedence over config file options |
||||
- -h and --help now work properly, instead of asking for a string value |
||||
- MAIN.dist.in now contains a value for cut_chars that works right when |
||||
ALLOW_BACKQUOTE_EXEC is #defined. |
||||
- The "video reverse" in MAIN.dist.in is now "video normal", because I |
||||
got sick of people saying there was a bug in Eterm that caused their |
||||
foreground and background colors to be swapped. :^) More of a |
||||
cl00bie-didn't-read-the-comments fix than a bug fix.... ;) |
||||
|
||||
- New features: |
||||
- A "magic number"-like identifier that will prevent Enlightenment config |
||||
files from being read by Eterm. See doc/MAIN.dist for details. |
||||
- Secure execution of backquote commands in config files, even if Eterm |
||||
runs setuid/setgid. |
||||
- Invalid contexts are skipped entirely with only one error message. For |
||||
example, if you don't compile in kanji support, you'll only get one |
||||
warning instead of 5 or 6. |
||||
- -H and --home-on-echo options, which will cause Eterm to jump to the |
||||
bottom of the screen when something is echoed there, if you're viewing |
||||
the scrollback buffer. There is also a new attribute "home_on_echo" in |
||||
the toggles context of the config file for this option. Thanks to Casey |
||||
<casey@netcomi.com> for his help with this. Just in time, Casey. :) |
||||
- There is now a script which randomly chooses a pixmap from ~/.Eterm/pix |
||||
that can be executed in your config file. This script requires the |
||||
dorand program (source provided) and can be found in doc/random_pixmap.sh |
||||
|
||||
Changes in DR-0.7: |
||||
------------------ |
||||
|
||||
- Theme support. The options were changed to -t and --theme. Consult the FAQ for |
||||
more info on themes. |
||||
- Alternate config file option. This has been integrated into theme support, but |
||||
can also work independently thereof. If you don't like the name MAIN for your |
||||
config file, or want to run a certain Eterm with a different config file, use |
||||
the -X or --config-file option. |
||||
- Borderless Eterm windows. Use the -x or --borderless option to get a borderless |
||||
Eterm. Remember, you'll want to specify a geometry, since you won't be able to |
||||
move it, and something to exec. If your window manager supports it, it is |
||||
recommended that you use that functionality rather than Eterm's built-in option. |
||||
- Built-in functions. Several functions have been added to facilitate the building |
||||
of more robust config files. The currently-supported functions are: |
||||
- %appname() Returns the current application name. "Eterm-DR-0.7" as of |
||||
Eterm 0.7. |
||||
- %version() Returns the numeric version. |
||||
- %random(...) Randomly chooses one of its parameters and returns that. |
||||
- Other new options (consult the MAIN file and the --help screen for more info): |
||||
- -E and --home-on-refresh |
||||
- --pointer-color |
||||
- --scrollbar-right |
||||
- --scrollbar-floating |
||||
- -M and --menu (Menubar code is beta, so use it at your own risk) |
||||
- --term-name |
||||
- Config file support for all the above. Also: |
||||
- exec (context misc) For use with themes.... |
||||
- Some major and minor bug fixes. Nobody noticed, so I won't go into details. :) |
||||
- Support for Window Maker's "docking", thanks to CmdrTaco (Rob Malda) |
||||
(http://slashdot.org/malda/) |
||||
|
||||
Changes in DR-0.8: |
||||
------------------ |
||||
|
||||
- Several experimental features are in, like active tags, fake transparency, |
||||
and threads support. Use them at your own risk; they are unsupported and |
||||
known not to work right. We chose not to fix them since we're going to |
||||
rewrite the whole thing anyway (see http://ganja.tky.hut.fi/resurrection/) |
||||
- The FORCE_BACKSPACE feature introduce in 0.7 PL5 has been disabled for now; |
||||
you can't succesfully start Eterm as a background process with it |
||||
- The new fake transparency option, -O/trans, only works OK with a pixmap |
||||
the size of your root window / resolution. Test it with an exact image |
||||
of your root window for a neat effect :) Note that escape sequences for |
||||
changing the background pixmap will be ignored. |
||||
- Two new config file options, "trans" and "save_under", have been added. |
||||
Read themes/Eterm/MAIN for more information. The corresponding new |
||||
command line options are -O and --save-under. |
||||
- Fixed the pixmap handling code so that the menubar stuff works right now. |
||||
Thanks to Cliff Wright <cliff@vixen.itdl.ds.boeing.com> and keebler |
||||
<keebler@ncal.verio.com> for their help with finding and fixing this. |
||||
- The Xterm-style scrollbar feature (defined in src/feature.h) will actually |
||||
compile and run properly. The restriction on size to 15 pixels has |
||||
been removed as well. Thanks to Peter Norby <norby@inktomi.com> and |
||||
Hal Black <hal@hablack.bevc.blacksburg.va.us> for supplying patches for |
||||
this. |
||||
- Made several changes to the configure script so that hopefully it will |
||||
work for a larger percentage of the populace. :-) Some of the changes |
||||
were suggested by John Reese <jtr@pyro.ugcs.caltech.edu> and Hal Black |
||||
<hal@hablack.bevc.blacksburg.va.us>. |
||||
- Added MIN_ANCHOR_SIZE to src/feature.h which allows you to specify a minimum |
||||
size for the scrollbar anchor. Good for large scrollback buffers and/or |
||||
small windows. Still a mite flaky at the bottom of the scrollbar, but it |
||||
works. Credit for the idea goes to Stephen Farrell <stephen@farrell.org>, |
||||
though the actual code was largely rewritten. |
||||
- Added CHANGE_SCROLLCOLOR_ON_FOCUS to src/feature.h which makes the |
||||
scrollbar "disappear" (i.e., become the background color) when the window |
||||
loses focus. This feature was suggested by Scott Heavner |
||||
<sdh@falstaff.MAE.cwru.edu>. |
||||
- Added option --menu-text-color and config file attribute menu_text, |
||||
which allow you to change the color of the menubar text. This feature |
||||
was suggested by Scott Heavner <sdh@falstaff.MAE.cwru.edu>. |
||||
- Fixed a bug for FreeBSD that only allowed Eterm to open 16 tty's at |
||||
once. Thanks to Christopher Mann <r3cgm@cdrom.com> for finding this |
||||
one. |
||||
- PL1 |
||||
- Fixed bug which caused scrollbar not to redraw properly |
||||
- PL2 |
||||
- Rewrote the string functions in src/misc.c to be faster. Also, support |
||||
for "\C" and "C-" to represent the Ctrl-key modifier was added. |
||||
- Added MENU_TEXT_FLOATING to src/feature.h which puts the menubar text |
||||
in the middle of the menubar buttons (which is, IMHO, where it belongs, |
||||
but apparently someone disagrees :-) -- mej). |
||||
- The pre-release stuff in RELNOTES.Eterm has been removed. |
||||
- Added an "emacs" theme for GNU Emacs or XEmacs in a text window. |
||||
- Got rid of that damned annoying preedit type error. :-) |
||||
- Added call counting for the malloc routines in libmej/mem.* thanks to |
||||
Michael Wolf (Elessar) <mawolf@concentric.net>. |
||||
- PL3 |
||||
- Changed themes/Makefile.in so that existing themes in |
||||
${prefix}/lib/Eterm/themes do not get overwritten by the "make install" |
||||
routine. Sorry, stupid oversight on my part. :( -- mej |
||||
- New "chooser" theme. Read the comments at the top of |
||||
themes/chooser/chooser.menu for more details. :) |
||||
- New extended command "echo" in the ESC ] 10 ; set. See the chooser |
||||
theme for implementation examples. Basically, it echoes its parameters |
||||
and tacks a carriage return on the end. |
||||
- Fixed the bug introduced in PL2 which caused a border width < the shadow |
||||
width to not properly display the menubar. This was only noticeable in |
||||
the mutt theme or to users who specifically set border_width to 0 or 1. |
||||
- Eterm now sets the environment variable ETERM_THEME_ROOT to point to the |
||||
root directory of the theme it is currently using. |
||||
- PL4 |
||||
- Made several portability improvements in the configure script and its |
||||
associated files. |
||||
- Moved the active.tags file into the themes directory, which is the |
||||
location from which it is installed. |
||||
- The configure script now builds src/feature.h instead of the make process |
||||
so that it will be there before the make is done. If src/feature.h.in is |
||||
updated, however, src/feature.h will still be generated from it by a make. |
||||
- The installed Eterm binary will be Eterm-<version_number>, and Eterm will |
||||
be created as a soft-link to that file in the $bindir directory. |
||||
- Eterm will now guess the install prefix (${prefix}) based on where gcc is |
||||
located, unless you give a --prefix on the command line. This keeps me |
||||
from having to use it. If it makes you have to use it, tough break. =P |
||||
- Added the --with-imlib option to configure. If you specify |
||||
--with-imlib=/some/path, the compiler will look in /some/path/include |
||||
for Imlib's header files and in /some/path/lib for Imlib itself. You can |
||||
also specify --without-imlib, which will disable pixmap support entirely. |
||||
- PL5 |
||||
- Fixed the problem with the Eterm -> Pixmap -> None menu item. |
||||
- IMPORTANT NOTE: One of the src/feature.h defines added in version 0.8 was |
||||
the MIN_ANCHOR_SIZE #define. There are KNOWN PROBLEMS with using this feature |
||||
and trying to scroll up from the bottom using Shift-Prior, the up arrow on the |
||||
scrollbar, etc. If this bothers you, COMMENT OUT that line in src/feature.h. |
||||
Fixing this problem will require a redesign of how Eterm looks at scrolling |
||||
and positioning the terminal window relative to the scrollbar and vice versa. |
||||
This may or may not happen in the current development cycle. |
||||
- Added the CTRL_CLICK_RAISE #define to src/feature.h which allows a mouse |
||||
click in the terminal window while holding the Ctrl key to raise the window |
||||
and steal keyboard focus. This is useful if you are stuck without a window |
||||
manager for one reason or another or for using Eterm as an X session manager. |
||||
- Also added an escape sequence, ESC ] 5 ; BEL, to perform the same task, and |
||||
added a menu item called "Steal Focus" to send that escape sequence. |
||||
- Fixed the "bug" that made command-line paths relative to the current theme |
||||
as well as paths in theme config files. Searching relative to the current |
||||
directory takes place after searching the directories in the "path" line |
||||
(from the config file). (I have "bug" in quotes because it wasn't really |
||||
a bug -- all paths were interpreted relative to the theme used -- but it |
||||
applied to command-line variables too, which was very confusing to some.) |
||||
|
||||
Changes in 0.8.6: |
||||
----------------- |
||||
|
||||
- For starters, we changed the naming convention. No more "DR" and "PL" stuff. |
||||
We got asked too many stupid questions. ("What's the P 15 mean?") Starting |
||||
with this release, we'll be using numbers only. The third number will still |
||||
indicate the patch level, however. |
||||
- Added support for imlib-config script supplied with Imlib 1.8 and up. This |
||||
speeds and simplifies the calculation of CFLAGS and LDFLAGS for proper |
||||
linking with Imlib. |
||||
- Fixed problems with compilation on NetBSD thanks to Clifford Wright |
||||
<cliff@snipe444.org>. |
||||
- Redid the themes to support the new pixmap mechanism I'm working on. Once |
||||
the new pixmap archive comes out, you'll want to remove your themes |
||||
directory ($prefix/lib/Eterm/themes by default) and install the themes |
||||
contained in this distribution. Get the new Eterm Backgrounds Collection |
||||
at http://www.tcserv.com/archive/E/ or a mirror near you. |
||||
- Reworked the transparency mechanism thanks to Gerald Britton |
||||
<gbritton@mit.edu> and Nat Friedman <ndf@mit.edu>. It now takes a copy |
||||
of the root window's pixmap and uses that. It responds to all moves and |
||||
resizes by updating the pixmap. No requests for changing pixmap are |
||||
honored by a transparent Eterm (the -O or --trans options). Furthermore, |
||||
this will probably only work in Enlightenment. And for the full effect, |
||||
you'll want to run it without scrollbar/menubar and borderless (the |
||||
latter being done either through Enlightenment or with the -x option). |
||||
- Added the Esetroot program, which sets the root pixmap atom for those |
||||
who don't use Enlightenment as their window manager. There has been |
||||
mixed feedback on whether or not this program works. YMMV. |
||||
- Added a theme to demo some of the pseudo-transparency features. Use |
||||
"Eterm -t trans" to invoke it. |
||||
- Some pseudo-transparency toys are in too. The option --shade will darken |
||||
the portion of the desktop "showing through" the Eterm window. Results |
||||
in a "smoked glass" effect. This option can also be used with the |
||||
--tint option to provide a colored glass effect. See the man page for |
||||
more information. Also be sure to check out the effect of the |
||||
--scrollbar-floating option with transparency. :) |
||||
- Fixed compilation without pixmap and/or menubar support. The options |
||||
--disable-menus and --without-imlib can, when passed to the configure |
||||
script, be used to automatically disable menubar and pixmap support, |
||||
respectively. |
||||
- NEW MAN PAGE!! At long last, the man page has been updated with the new |
||||
options. Many thanks to Shaleh <shaleh@debian.org> for doing this. |
||||
- The values "yes" and "no" can now be used as boolean values in options |
||||
and config file entries, along with 0/1, true/false, and on/off. |
||||
- Eterm now changes the color of the scrollbar when losing focus. If no |
||||
unfocused scrollbar color is specified in the config file or on the |
||||
command line, you will not notice it. See the man page and the default |
||||
config files for more info. |
||||
|
||||
Changes in 0.8.7: |
||||
----------------- |
||||
|
||||
- The old libmej is now built as a shared library as well as a static one. |
||||
Also, everything but the main() function has been moved into a library, |
||||
libEterm. Since most people use lots of Eterms at once, creating a shared |
||||
library will reduce the text segment of each Eterm significantly, saving |
||||
quite a bit of memory per Eterm. |
||||
- Removed MIN_ANCHOR_SIZE and added -a (--min-anchor-size) option. It is 0 by |
||||
default so ppl won't complain about the scroll-up "bug". |
||||
- Lots of fixes to Esetroot |
||||
- CygWin32 support. May take a little bit of effort, but it works. |
||||
- Escape sequences to toggle transparency and shading, as well as set tint, |
||||
are in. Toggling transparency works. The others don't yet. |
||||
- Newer Linux versions required a hack to open the display. |
||||
- Cleaned up privileges toggling. |
||||
- Changed the --watch-bg option to --watch-pixmap, which will hopefully make it |
||||
less tempting for people to think it has something to do with transparency. |
||||
- Added the --watch-desktop option which causes a pseudo-transparent Eterm to |
||||
monitor the desktop pixmap for changes and update accordingly. |
||||
- Several various parser cleanups. |
||||
- Transparency can now be done via Imlib rather than Xlib. It is markedly slower |
||||
but offers more configureability, like shading by percentage (--shade-pct) and |
||||
tinting masks (--tint <24-bit mask>). |
||||
- Shading now works for 8bpp pseudo-color displays. This formerly generated an |
||||
error message about the X server not setting the visual info properly. It is |
||||
not fast by any means, but that's what you get for having an 8bpp video card. |
||||
- Fixed the menubar code so that the menus aren't clipped by the window or screen |
||||
edge. |
||||
- Changed the shell_expand() function in options.c so that \' within single quotes |
||||
would insert a single quote. This differs from the shell behavior, but I prefer |
||||
it. :) |
||||
- More *BSD utmp fixes. |
||||
- Added debugging features configureable at configure-time. Also added stack |
||||
tracing on crash. |
||||
- Fixed the bug with dragging a transparent Eterm across E's desktop dragbar. It |
||||
reparents to the root window for a bit, but once you drop the window, it changes |
||||
backdrops right on cue. Also works when moving Eterm windows between desktops. |
||||
Note that this requires the use of the -W (--watch-desktop) option. |
||||
- \e[9n prints the pixmap filename in the title bar. In transparency mode, prints |
||||
transparency info to the title bar. |
||||
- New --home-on-input option which split off part of --home-on-echo |
||||
|
||||
Changes in 0.8.8: |
||||
----------------- |
||||
|
||||
- Better, more detailed man page. Now if only people would read it.... |
||||
- Shading is now done by percentage, and tinting by hex mask. See the man page for |
||||
more info. |
||||
- Lots of new options: --menubar-move, --anim, --pause, --viewport-mode, |
||||
--xterm-select, and --select-line. See man page for details. |
||||
- FORCE_BACKSPACE and FORCE_DELETE have been fixed. |
||||
- KS_DELETE (the strings associated with pressing the Delete key) is now set to ^? |
||||
by default. If you don't like that, you can set it back, or use the keysym |
||||
attribute in the config file, or whatever. |
||||
- --with-cc=prog argument to ./configure to specify an alternative compiler. The |
||||
default looks for egcs, then pgcc, then gcc, etc. |
||||
- Eterm-specific escape sequences: |
||||
Syntax: ESC ] 6 ; <op> ; <arg> BEL |
||||
|
||||
where <op> is: 0 toggle transparency |
||||
1 set shade percentage |
||||
2 set tint mask |
||||
3 forced update of pseudo-transparent background |
||||
30 Do not use |
||||
40 Do not use |
||||
and <arg> is an optional argument, depending |
||||
on the particular sequence being used. It |
||||
(along with its preceeding semicolon) may or |
||||
may not be needed. |
||||
- X errors are handled more gracefully and with more helpful information. |
||||
- The --disable-stack-trace option to ./configure, whose use is obvious. |
||||
- Added an icon and associated option/attribute. |
||||
- As always, lots of bug fixes. See the ChangeLog for details. |
||||
- The -center option for Esetroot. Centers the pixmap. |
||||
- Eterm is now FHS compliant, meaning that the theme and image directories are |
||||
now under ${prefix}/share/Eterm instead of ${prefix}/lib/Eterm. See the |
||||
move-themes script included in the distribution. |
||||
|
||||
Changes in 0.8.9: |
||||
----------------- |
||||
|
||||
- Support for scrolling with mouse wheels. |
||||
- New --version switch to display compile-time configuration. |
||||
- Tinting and shading have been sped up by about 30% thanks to Michael Pearson |
||||
<alcaron@ozemail.com.au>. |
||||
- Scrollbar type and width is now customizeable at compile-time *and* run-time. |
||||
Support for NeXT-style scrollbars has also been added. |
||||
- Three *major* bugs have been fixed. Tiled desktop images no longer cause |
||||
crashes when tinting or shading. The resize crash bug has also been squished. |
||||
The secure system() call replacement which was accidentally removed has been |
||||
added back. |
||||
- Ctrl-Button1 now grabs input focus. Ctrl-Button2 toggles the scrollbar on and |
||||
off. Ctrl-Button3 toggles the menubar on and off. NOTE: If you used to |
||||
disable the menubar by commenting out the loading of the menubar file, or |
||||
loading a fake one (e.g., '-Mx' or '-M /dev/null'), don't. Simply add "off" to |
||||
the end of the menu line (e.g., 'menu Eterm.menu off'), or use the new boolean |
||||
command-line option --menubar (e.g., '--menubar off'). Then you can toggle the |
||||
menubar using Ctrl-Button3 like you would expect. |
||||
- Popup scrollbar support has been added. |
||||
- New -D (--desktop) option for choosing a desktop to start on. Your window |
||||
manager must be GNOME-compliant for this to work. See the documentation at |
||||
http://www.gnome.org/devel/gnomewm/ for info on the _WIN_WORKSPACE property. |
||||
- The Eterm Technical Reference has been completely rewritten. It is now an HTML |
||||
document located in the doc/ directory. |
||||
- Lots and lots and lots of new escape sequences. See the Technical Reference for |
||||
details on them. |
||||
- Oodles of small bug fixes, as always. :-) |
||||
- Debugging output is now runtime configurable. Use the --debug option and supply |
||||
a number. 0 (the default) gives no debugging output. 1-5 give increasingly |
||||
more output, up to 5 (which I don't recommend using) which synchronizes X events |
||||
(and slows things down bigtime). |
||||
- You can now save your current Eterm settings from the menu. |
||||
- New --app-keypad and --app-cursor options to set the startup mode for |
||||
application/normal mode for the keypad and cursor keys. |
||||
- Three new utilities in addition to Esetroot, all of which are located in the |
||||
utils/ directory. Etbg is a tool for manipulating Eterm's background image on |
||||
the fly. Etcolors.sh demonstrates all the different combinations of your |
||||
current color settings. Etmenu.sh lets you send menu commands to Eterm's |
||||
menubar subsystem without having to type the escape codes yourself. |
||||
- Borderless Eterms now attempt to use the Window Manager to become borderless |
||||
instead of bypassing it altogether. |
||||
|
@ -0,0 +1,249 @@ |
||||
dnl acl.m4 -- Written by Duncan Simpson <dps@io.stargate.co.uk> |
||||
dnl Posted to BUGTRAQ on 17 June 1999 |
||||
dnl Used by encouragement. :-) |
||||
|
||||
dnl Check snprintf for overrun potential |
||||
AC_DEFUN(dps_snprintf_oflow, |
||||
[AC_MSG_CHECKING(whether snprintf ignores n) |
||||
AC_CACHE_VAL(dps_cv_snprintf_bug, |
||||
[AC_TRY_RUN( |
||||
changequote(<<, >>)dnl |
||||
<<#include <stdio.h> |
||||
|
||||
#ifndef HAVE_SNPRINTF |
||||
#ifdef HAVE_VSNPRINTF |
||||
#include "vsnprintf.h" |
||||
#else /* not HAVE_VSNPRINTF */ |
||||
#include "vsnprintf.c" |
||||
#endif /* HAVE_VSNPRINTF */ |
||||
#endif /* HAVE_SNPRINTF */ |
||||
|
||||
int main(void) |
||||
{ |
||||
char ovbuf[7]; |
||||
int i; |
||||
for (i=0; i<7; i++) ovbuf[i]='x'; |
||||
snprintf(ovbuf, 4,"foo%s", "bar"); |
||||
if (ovbuf[5]!='x') exit(1); |
||||
snprintf(ovbuf, 4,"foo%d", 666); |
||||
if (ovbuf[5]!='x') exit(1); |
||||
exit(0); |
||||
} >> |
||||
changequote([, ]), dps_cv_snprintf_bug=0, dps_cv_snprintf_bug=1, |
||||
dps_cv_snprintf_bug=2)]) |
||||
if test $dps_cv_snprintf_bug -eq 0; then |
||||
AC_MSG_RESULT([no, snprintf is ok]) |
||||
else if test $dps_cv_snprint_bug -eq 1; then |
||||
AC_MSG_RESULT([yes, snprintf is broken]) |
||||
AC_DEFINE(HAVE_SNPRINTF_BUG,1) |
||||
else |
||||
AC_MSG_RESULT([unknown, assuming yes]) |
||||
AC_DEFINE(HAVE_SNPRINTF_BUG,1) |
||||
fi; fi]) |
||||
|
||||
dnl Check vsnprintf for overrun potential |
||||
AC_DEFUN(dps_vsnprintf_oflow, |
||||
[AC_MSG_CHECKING(whether vsnprintf ignores n) |
||||
AC_CACHE_VAL(dps_cv_vsnprintf_bug, |
||||
[AC_TRY_RUN( |
||||
changequote(<<, >>)dnl |
||||
<<#include <stdio.h> |
||||
#include <stdarg.h> |
||||
|
||||
#ifndef HAVE_VSNPRINTF |
||||
#include "vsnprintf.c" |
||||
#endif /* HAVE_VSNPRINTF */ |
||||
|
||||
int prnt(char *s, const char *fmt, ...) |
||||
{ |
||||
va_list argp; |
||||
va_start(argp, fmt); |
||||
vsnprintf(s, 4, fmt, argp); |
||||
va_end(argp); |
||||
} |
||||
|
||||
int main(void) |
||||
{ |
||||
char ovbuf[7]; |
||||
int i; |
||||
for (i=0; i<7; i++) ovbuf[i]='x'; |
||||
prnt(ovbuf, "foo%s", "bar"); |
||||
if (ovbuf[5]!='x') exit(1); |
||||
prnt(ovbuf, "foo%d", 666); |
||||
if (ovbuf[5]!='x') exit(1); |
||||
exit(0); |
||||
} >> |
||||
changequote([, ]), dps_cv_vsnprintf_bug=0, dps_cv_vsnprintf_bug=1, |
||||
dps_cv_vsnprintf_bug=2)]) |
||||
|
||||
if test $dps_cv_vsnprintf_bug -eq 0; then |
||||
AC_MSG_RESULT([no, vsnprintf is ok]) |
||||
else if test $dps_cv_vsnprint_bug -eq 1; then |
||||
AC_MSG_RESULT([yes, vsnprintf is broken]) |
||||
AC_DEFINE(HAVE_VSNPRINTF_BUG,1) |
||||
else |
||||
AC_MSG_RESULT([unknown, assuming yes]) |
||||
AC_DEFINE(HAVE_VSNPRINTF_BUG,1) |
||||
fi; fi]) |
||||
|
||||
dnl open and symlink interaction bug test |
||||
AC_DEFUN(dps_symlink_open_bug, |
||||
[AC_MSG_CHECKING(security of interaction between symlink and open) |
||||
AC_CACHE_VAL(dps_cv_symlink_open_bug, |
||||
[mkdir conftest.d |
||||
AC_TRY_RUN( |
||||
changequote(<<, >>)dnl |
||||
<<#include <stdio.h> |
||||
#ifdef HAVE_STDLIB_H |
||||
#include <stdlib.h> |
||||
#endif |
||||
#ifdef HAVE_SYS_TYPES_H |
||||
#include <sys/types.h> |
||||
#endif |
||||
#ifdef HAVE_SYS_STAT_H |
||||
#include <sys/stat.h> |
||||
#endif |
||||
#ifdef HAVE_FCNTL_H |
||||
#include <fcntl.h> |
||||
#endif |
||||
#ifdef HAVE_UNISTD_H |
||||
#include <unistd.h> |
||||
#endif |
||||
#ifdef HAVE_ERRNO_H |
||||
#include <errno.h> |
||||
#else |
||||
extern int errno; |
||||
#endif |
||||
|
||||
int main(void) |
||||
{ |
||||
int fd; |
||||
if (chdir("conftest.d")!=0) |
||||
exit(1); |
||||
if (symlink("foo","bar")!=0) |
||||
exit(1); |
||||
if ((fd=open("bar", O_CREAT | O_EXCL | O_WRONLY, 0700))==0) |
||||
{ |
||||
write(fd, "If the symlink was to .rhosts you would be unhappy", 50); |
||||
close(fd); |
||||
exit(1); |
||||
} |
||||
if (errno!=EEXIST) |
||||
exit(1); |
||||
exit(0); |
||||
} >> |
||||
changequote([, ]), cps_cv_symlink_open_bug=0, |
||||
[if test -r conftest.d/foo; then |
||||
cps_cv_symlink_open_bug=2 |
||||
else |
||||
cps_cv_symlink_open_bug=1 |
||||
fi], cps_cv_symlink_open_buf=3) |
||||
rm -rf conftest.d]) |
||||
case "$cps_cv_symlink_open_bug" in |
||||
0) AC_MSG_RESULT(secure) ;; |
||||
1) AC_MSG_RESULT(errno wrong but ok) |
||||
AC_DEFINE(HAVE_SYMLINK_OPEN_ERRNO_BUG) ;; |
||||
2) AC_MSG_RESULT(insecure) |
||||
AC_DEFINE(HAVE_SYMLINK_OPEN_SECURITY_HOLE) |
||||
AC_DEFINE(HAVE_SYMLINK_OPEN_ERRNO_BUG) ;; |
||||
3) AC_MSG_RESULT(assuming insecure) |
||||
AC_DEFINE(HAVE_SYMLINK_OPEN_SECURITY_HOLE) |
||||
AC_DEFINE(HAVE_SYMLINK_OPEN_ERRNO_BUG) ;; |
||||
*) AC_MSG_RESULT($cps_cv_symlink_open_bug) |
||||
AC_MSG_ERROR(Impossible value of cps_cv_symlink_open_bug) ;; |
||||
esac]) |
||||
|
||||
dnl Check to RLIMIT_NPROC resource limit |
||||
AC_DEFUN(dps_rlimit_nproc, |
||||
[AC_MSG_CHECKING(for working RLIMIT_NPROC resource limit) |
||||
AC_CACHE_VAL(dps_cv_rlimit_nproc, |
||||
[AC_TRY_RUN( |
||||
changequote(<<, >>)dnl |
||||
<< |
||||
#ifndef HAVE_STDLIB_H |
||||
#include <stdlib.h> |
||||
#endif /* HAVE_STDLIB_H */ |
||||
#ifndef HAVE_SIGNAL_H |
||||
#include <signal.h> |
||||
#endif /* HAVE_SIGNAL_H */ |
||||
#ifdef HAVE_UNISTD_H |
||||
#include <unistd.h> |
||||
#endif /* HAVE_UNISTD_H */ |
||||
#ifdef HAVE_SYS_RESOURCE_H |
||||
#include <sys/resource.h> |
||||
#endif /* HAVE_SYS_RESOURCE_H */ |
||||
|
||||
int main(void) |
||||
{ |
||||
#ifdef RLIMIT_NPROC |
||||
static const struct rlimit pid_lim={RLIMIT_NPROC, 1}; |
||||
pid_t f; |
||||
|
||||
signal(SIGCHLD, SIG_IGN); |
||||
setrlimit(RLIMIT_NPROC, (struct rlimit *) &pid_lim); |
||||
if ((f=fork())==0) |
||||
exit(0); |
||||
if (f==-1) |
||||
exit(0); /* The fork() failed (the right thing) */ |
||||
#endif |
||||
exit(1); |
||||
} >> |
||||
changequote([, ]), cps_cv_rlimit_nproc=0, cps_cv_rlimit_nproc=1, |
||||
cps_cv_rlimit_nproc=2)]) |
||||
if test $cps_cv_rlimit_nproc -eq 0; then |
||||
AC_MSG_RESULT([yes]) |
||||
AC_DEFINE(HAVE_RLIMIT_NPROC,1) |
||||
else if test $cps_cv_rlimit_nproc -eq 1; then |
||||
AC_MSG_RESULT([no]) |
||||
else |
||||
AC_MSG_RESULT([unknown, assuming none]) |
||||
fi; fi]) |
||||
|
||||
dnl Check to RLIMIT_MEMLOCK resource limit |
||||
AC_DEFUN(cps_rlimit_memlock, |
||||
[AC_MSG_CHECKING(for RLIMIT_MEMLOCK resource limit) |
||||
AC_CACHE_VAL(cps_cv_rlimit_memlock, |
||||
[AC_TRY_RUN( |
||||
changequote(<<, >>)dnl |
||||
<< |
||||
#ifndef HAVE_STDLIB_H |
||||
#include <stdlib.h> |
||||
#endif /* HAVE_STDLIB_H */ |
||||
#ifndef HAVE_SIGNAL_H |
||||
#include <signal.h> |
||||
#endif /* HAVE_SIGNAL_H */ |
||||
#ifdef HAVE_UNISTD_H |
||||
#include <unistd.h> |
||||
#endif /* HAVE_UNISTD_H */ |
||||
#ifdef HAVE_SYS_RESOURCE_H |
||||
#include <sys/resource.h> |
||||
#endif /* HAVE_SYS_RESOURCE_H */ |
||||
#ifdef HAVE_SYS_MMAN |
||||
#include <sys/mman.h> |
||||
#endif /* HAVE_SYS_MMAN */ |
||||
#ifdef HAVE_ERRNO_H |
||||
#include <errno.h> |
||||
#endif /* HAVE_ERRNO_H */ |
||||
|
||||
int main(void) |
||||
{ |
||||
#ifdef RLIMIT_MEMLOCK |
||||
static const struct rlimit mlock_lim={RLIMIT_MEMLOCK, 0}; |
||||
void *memory; |
||||
|
||||
if (setrlimit(RLIMIT_MEMLOCK, (struct rlimit *) &mlock_lim)!=-1) |
||||
exit(0); |
||||
#endif |
||||
exit(1); |
||||
} >> |
||||
changequote([, ]), cps_cv_rlimit_memlock=0, cps_cv_rlimit_memlock=1, |
||||
cps_cv_rlimit_memlock=2)]) |
||||
if test $cps_cv_rlimit_memlock -eq 0; then |
||||
AC_MSG_RESULT([yes]) |
||||
AC_DEFINE(HAVE_RLIMIT_MEMLOCK,1) |
||||
else if test $cps_cv_rlimit_memlock -eq 1; then |
||||
AC_MSG_RESULT([no]) |
||||
else |
||||
AC_MSG_RESULT([unknown, assuming none]) |
||||
fi; fi]) |
||||
|
@ -0,0 +1,52 @@ |
||||
#!/bin/sh |
||||
# Run this to generate all the initial makefiles, etc. |
||||
# $Id$ |
||||
|
||||
DIE=0 |
||||
|
||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || { |
||||
echo |
||||
echo "You must have autoconf installed to compile Eterm." |
||||
echo "Download the appropriate package for your distribution," |
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" |
||||
DIE=1 |
||||
} |
||||
|
||||
(libtool --version) < /dev/null > /dev/null 2>&1 || { |
||||
echo |
||||
echo "You must have libtool installed to compile Eterm." |
||||
echo "Download the appropriate package for your distribution," |
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" |
||||
DIE=1 |
||||
} |
||||
|
||||
(automake --version) < /dev/null > /dev/null 2>&1 || { |
||||
echo |
||||
echo "You must have automake installed to compile Eterm." |
||||