Skip to content

Commit

Permalink
Initial commit of the HEAD branch of the ELinks CVS repository, as of
Browse files Browse the repository at this point in the history
Thu Sep 15 15:57:07 CEST 2005. The previous history can be added to this
by grafting.
  • Loading branch information
pasky authored and Petr Baudis committed Sep 15, 2005
0 parents commit 0f6d431
Show file tree
Hide file tree
Showing 961 changed files with 394,417 additions and 0 deletions.
319 changes: 319 additions & 0 deletions ABOUT-NLS

Large diffs are not rendered by default.

569 changes: 569 additions & 0 deletions AUTHORS

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions BUGS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
All the known bugs are now kept in the Bugzilla, available at
http://bugzilla.elinks.or.cz/

$Id: BUGS,v 1.61 2003/05/10 23:03:12 pasky Exp $
346 changes: 346 additions & 0 deletions COPYING

Large diffs are not rendered by default.

178 changes: 178 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
Elinks installation guidelines
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Quick guide for the impatient:

./configure && make && make install

Check out the bottom of this file if you're upgrading from Links or an older
ELinks! And be sure to look at doc/ecmascript.txt if you want ECMAScript
(that's JavaScript) support.

##########

In order to check out the latest tree from CVS:

$ export CVSROOT=check_file_SITES_for_value_of_this
$ cvs login
(empty password)
$ cvs -z3 co elinks
$ cd elinks
...

To update your existing tree to the latest CVS version, do:

$ cvs -z3 update -dP

If you downloaded a nightly snapshot, it already contains CVS/ directories
etc. Thus, you should be able to update your tree with the above command as if
you had previously done a full cvs checkout.

Note that if you obtained the sources directly from CVS, you NEED to run
./autogen.sh! (It should be enough to do it once, automake should be smart
enough to rerun itself when needed - however, if you have build problems, try
running this first.) Also, you obviously need automake and autoconf installed
on your system (note that autoconf-2.13 a automake-1.4p5 are supported, newer
ones may cause problems thanks to the auto* developers who don't know how to
maintain backwards compatibility). Otherwise, you have to use the nightly CVS
snapshot - you don't need to do this there.


##########

If you want to compile elinks, first check the directory named contrib/, it
may contain patches that are of use to you. If you're interested in any of
them, try to apply them by doing (for each one):

$ patch -p0 < contrib/that-patch

They may not apply - I don't update patches in contrib/ regularly - if you
want, feel free to go ahead and update the patch for the current tree and send
me the newer version.

Usually, even after strip, the ELinks binary can grow a lot these days; I plan
on spawning various external files optionally, containing boring stuff like
various translations etc; later, even DSO modules may come, etc. But even
nowadays, you can reduce the resulting binary size by throwing out stuff you
don't like. First, if you want better performance and a smaller binary, don't
compile it with debug. It won't hurt if you do, though, and ELinks will tell
you about any memory leaks, incorrect memory manipulation etc, which may be
helpful to us if you report it. Next, disable any optional features you are not
going to use, they can make the resulting binary smaller (although it'll probably
have no non-marginal performance impact) - especially go through the
features.conf file in the project root directory. Also, you may try to override
the build system to build a dynamically linked binary, which can be a lot
smaller as well. Lastly, you can go to the Unicode/ and intl/ directories, then
edit index.txt and remove any codepages or translations you don't like;
especially for translations, it can significantly reduce the resulting binary
size as well.

!BEWARE! If you _distribute_ a binary of ELinks with OpenSSL linked to it,
and the OpenSSL library is not part of your base system, you are VIOLATING THE
GPL (although I believe that for this absurd case no ELinks copyright holder
will sue you, and it's not a problem for the OpenSSL people as well, as they
have explicitly told me). So, people who are making ELinks binaries for systems
with no OpenSSL in the base system and who decided to link OpenSSL against the
ELinks binary may wish NOT to publish or distribute such a binary, as it's
breaking GPL 2(b), if they like to have everything legally perfect (like Debian
people ;). As a semi-solution to this for those people, GNUTLS support was
introduced; if you want to distribute ELinks binaries with HTTPS support,
compile ELinks with the --with-gnutls configure option (assuming that you have
GNUTLS 0.5.0 or later [tested with 0.5.4] installed). However, as GNUTLS is not
yet 100% stable and its support in ELinks is not so well tested yet, it's
recommended for users to give a strong preference to OpenSSL whenever possible.

Good luck!

The basic compilation looks like:

Unix - just doing:

$ ./configure
$ make

should be enough. However, in some FreeBSD 3 distributions you have to
set CFLAGS=-aout before running ./configure. Also, you may want to
adjust some compile-time options through ./configure - do
./configure --help and it'll print out a list of them. You can more
finely control what's going to be included in the binary in the
features.conf file, and some really detailed tuning can be performed in
the src/setup.h.

Also, a nice idea is to compile ELinks outside of the source tree.
Make another directory and run path_to_source_tree/configure from it.
Typically, it looks like:

$ mkdir ../elinks-build
$ cd ../elinks-build
$ ../elinks/configure
$ make

OS/2 - you can use ./configure.

The only supported compiler is EMX, you probably won't be able to
compile it with anything else.

Configure under OS/2 needs to know paths to gcc, make and bash.
Set (for example):

SET HOSTTYPE=i586
SET MACHTYPE=i586-pc-os2
SET CONFIG_SHELL=d:/prg/gnu/bin/bash.exe
SET CC=d:/prg/emx/bin/gcc.exe
SET MAKE=d:/prg/emx/bin/make.exe
SET EMXOPT=-h100

Dos, Windows - port it by yourself.


##########

Ok, now let's install it:

Unix - # make install

OS/2 -
Copy file links.exe somewhere to your path or create CMD file that runs
links.

WARNING: EMX has a nasty limit on open files. Links will work badly or
won't work with the default settings. Set the variable EMXOPT=-h100
before you run links.

Now, check the contrib/ directory again. There may be some useful config
file examples there, along with a few support tools and some Lua scripts - you
probably want them ;) so just copy the hooks.lua to ~/.elinks, and edit the
configuration part - it adds various functionality to ELinks, like
decompression of gzipped files or user-defined protocols.


##########

If you're upgrading from Links or older ELinks (0.4pre7 or older), you will
notice that several things have changed. First, the binary name is elinks, not
links, now; however, the basic usage is almost the same and it still looks like
the old (E)Links, so you probably want to make a links symlink pointing to
elinks.

Then, note that configuration files were moved from /etc to /etc/elinks and
from ~/.links to ~/.elinks, because the name and format of parts of them were
changed:

links.cfg became elinks.conf and you need to convert it with
contrib/conv/conf-links2elinks.pl; html.cfg was merged into elinks.conf

bookmarks are still bookmarks, but you need to convert it with
old_to_new_bookmarks.sh.

links.his became gotohist and the format is the same.

history became globhist and the format is the same.

cookies are still cookies, but you need to convert it with tr " " "\t"


##########

$Id: INSTALL,v 1.29 2004/09/22 16:17:23 pasky Exp $
vim: textwidth=80
25 changes: 25 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Process this file with automake to produce Makefile.in
## $Id: Makefile.am,v 1.49 2005/05/13 21:45:27 rrowan Exp $

SUBDIRS = Unicode config contrib debian doc intl po src test

EXTRA_DIST = \
ABOUT-NLS \
BUGS \
Makefile.base \
SITES \
TODO \
autogen.sh \
features.conf

install-exec-hook:
@if grep 'Lua' features.log > /dev/null; then \
echo "**************************************************************"; \
echo "Lua 4 support in ELinks is obsolete. If you are upgrading"; \
echo "from ELinks <= 0.10.X, you must update $(CONFDIR)/hooks.lua."; \
echo "**************************************************************"; \
fi


CLEANFILES = $(srcdir)/features.log
MAINTAINERCLEANFILES = $(srcdir)/acinclude.m4
16 changes: 16 additions & 0 deletions Makefile.base
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Base file for Makefile.am files in the tree, contains common stuff.
## $Id: Makefile.base,v 1.7 2004/04/29 14:17:12 jonas Exp $

INCLUDES = -I$(top_builddir) -I$(top_srcdir)/src

# The author of automake should be shot, quartered and forced to code in COBOL
# for the rest of his days for the **** he designed - anything forcing me to
# -I. -I$(srcdir) regardless if I want or not is just idiotic. Another totally
# dumb thing is that you can't just use @CONFIG_INCLUDE_SPEC@ in your own .am.

COMPILE = $(CC) @DEFS@ $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)

# Rule for getting test dependencies right. This is a workaround since
# automake doesn't support defining subdirs sources.
testutils:
make -C $(top_builddir)/src/util CPPFLAGS="-DDEBUG"
154 changes: 154 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
See ChangeLog for recent changes, bugfixes and new features.

ELinks now:

* support for Lua 4.x was dropped, we only support Lua 5.x now.
* Python scripting back-end (experimental)
* 88 colors support
* external editor is configurable at run-time
* Default URI-rewrite rule, used when no other rules match but the string
that was entered in the Go to URL box does not resemble a URI
* Support prefixes for add-bookmark-link, document-info, goto-url-current-link,
history-move-back, and history-move-forward
* BitTorrent protocol (experimental)
* FSP protocol via a CGI script (see contrib/cgi/README.FSP) (experimental)
* sysmouse support on the BSD console

ELinks 0.10.4:

* explicit keyboard accelerators were defined for buttons in dialogue boxes
and are now highlighted.

ELinks 0.10.2:

* Ruby scripting back-end (experimental)
* Debian package files (apt-get install devscripts && debuild -uc -us)

ELinks 0.10.0 (Thelma):

* simple CSS
* simple JavaScript/ECMAScript support by the SpiderMonkey Mozilla JS engine
* plain-text mark-up (_^Hx to underline, x^Hx to embolden)
* HTML source high-lighting using DOM implementation
* multiple URIs on the command line
* tabs moving (press Alt-'>' or Alt-'<')
* periodic snapshotting of all tabs in all terminals
* exmode CLI support (press ':' followed by action and args) (experimental)
* cursor routing (aka w3m-style navigation)
* modal text-input form-fields editing (enabled by default)
* manual cookies creating and editing
* incremental searching (press '#/')
* Perl scripting back-end (experimental)
* build-time configurability and feature documentation through features.conf
* Mozilla-compatible -remote option (http://www.mozilla.org/unix/remote.html)
* support for specifying IP family as protocol postfix (i.e. http4 or ftp6)
* internationalized domain names via libidn (RFC 3490)
* data URI protocol (RFC 2397)
* gopher protocol (RFC 1436)
* NNTP protocol (RFC 977 and 2980) (experimental)
* build system fine-tuned to use automake conditionals
* -localhost option to block connections to remote hosts
* -verbose option to control messages printed at startup
* -default-keys command line option to ignore user-defined keybindings
* -confdir option renamed to -config-dir
* -conffile option renamed to -config-file
* enhanced documentation

ELinks 0.9.2:

* directional links navigation
* 'unset' configuration directive, which can be used, e.g.,
to delete default MIME type settings or external protocol handlers.

ELinks 0.9.1:

* support <object> tags by displaying a link to the data
* add beginning-of-buffer and end-of-buffer actions for text fields
* automatic session saving/restoring support (disabled by default)
* add-bookmark-tabs (bookmark all tabs) option and menu item
* fold successive blank lines when displaying a plain-text document
(disabled by default; use the option document.plain.compress_empty_lines)
* 'fresh' color for any tab that has not been selected
since its document was loaded

ELinks 0.9.0 (Skyrider):

* used gettext for internationalization
* support for background document colors
* tabs support
* new MIME subsystem adding mimetypes files support
* local CGI support
* Guile scripting extensions
* HTML meta refresh
* forms history
* 256 colors support
* regex searches
* cookies manager, cache manager and download manager
* document marks support
* displaying URIs in plain documents as links
* SMB protocol support (requires smbclient)
* builtin user prefixes support (enter 'gg' or 'gg:elinks' to the goto dialog)
* HTTPS proxy support
* typeahead link searching (press '#')

ELinks 0.4.0 (Iceberg):

* merged HTTP_AUTH
* basic proxy auth support
* cookies parser rewritten
* support for tabindex,accesskey,title attribute
* FTP support dramatically improved (bugfixes, interoperability fixes, passive
mode support, ...)
* global history support (+vlink support)
* make some modules (cookies,bookmarks,globhist,..) optional at compile time
* secure saving support (see secure_save option desc. if you're doing weird
things with your links files like symlinking or nonstandart permissions!!!)
* support for utf8 i/o
* mouse wheel support
* portability enhancements
* performance enhancements
* file/http gzip/bzip2 decompression support
* downloads resuming support
* mailcap support
* hierarchic bookmarks support, XBEL bookmarks support
* source layout was dramatically reorganized
* relocated ELinks configuration files, changed format (if you are upgrading
from Links or older ELinks version, read INSTALL file to see how to convert
your old config files!!!)
* options are now in tree hierarchy and are configurable generically
* keybindings can be configured from the user interface
* colorful user interface
* tiny useless LED-like indicators support
* GNUTLS support parallel to the OpenSSL support (fixes some license issues)
* extensive memory debugging support

ELinks 0.3.0:

* unhistory
* external textarea editor
* DNS rewrite - we handle multi RR per host correctly
* IPv6 support
* rewritten options handling
* bookmarks filtering (aka bookmarks search)
* bookmarks resaving (save on the disk after every change)
* added possibility to change default colors settings

Links 0.96-pb3:

* secured cookies file creation
* support for title attribute of img tag
* Catalan translation
* Romanian translation
* changing of User-Agent string sent to webserver
* <listing> tag support

Links 0.96-pb2:

* cookies expiration, saving and resaving
* do NOT strip everything after ? in form action
* http referrer, true http referrer
* limited textarea external editor support
* partial fix of &#13;
* enhanced manual page
* fixed multi-level HTTP moved when using -dump/-source
* fixed keybindings
Loading

0 comments on commit 0f6d431

Please sign in to comment.