mirror of
https://github.com/rkd77/elinks.git
synced 2024-10-13 05:43:37 -04:00
Merge with http://elinks.cz/elinks.git
This commit is contained in:
commit
b1f8756c59
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,6 +13,7 @@ depcomp
|
||||
autom4te.cache
|
||||
stamp-h1
|
||||
.deps
|
||||
.vimrc
|
||||
elinks
|
||||
*.swp
|
||||
*.patch
|
||||
|
6
.vimrc
6
.vimrc
@ -1,6 +0,0 @@
|
||||
:set shiftwidth=8
|
||||
:set tabstop=8
|
||||
:set softtabstop=0
|
||||
:set noexpandtab
|
||||
|
||||
au BufNewFile,BufRead *.inc setf c
|
3
AUTHORS
3
AUTHORS
@ -161,6 +161,9 @@ Doug Kearns <djkea2@mugca.its.monash.edu.au>
|
||||
Edwin Groothuis <edwin@mavetju.org>
|
||||
Dump-width option
|
||||
|
||||
Eric Wald <eswald@gmail.com>
|
||||
Vim ftplugin to set ELinks coding style
|
||||
|
||||
Evan Hughes <hughes@lab43.org>
|
||||
Bookmarks
|
||||
|
||||
|
2
INSTALL
2
INSTALL
@ -26,9 +26,7 @@ from GIT in it, use the command:
|
||||
$ cg clone -s check_file_SITES_for_value_of_this
|
||||
|
||||
Note that if you obtained the sources directly from GIT, you NEED to run
|
||||
|
||||
./autogen.sh! (It should be enough to do it once - however, if you have build
|
||||
|
||||
problems, try running this first.) Also, you obviously need GNU make and
|
||||
autoconf installed on your system (note that autoconf-2.13 is supported, newer
|
||||
ones may cause problems thanks to the autoconf developers who don't know how to
|
||||
|
@ -43,12 +43,10 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
|
||||
TEST_LIB=$(top_srcdir)/test/libtest.sh
|
||||
export TEST_LIB
|
||||
|
||||
host = @host@
|
||||
|
||||
ASCIIDOC = @ASCIIDOC@
|
||||
ASCIIDOC_FLAGS = @ASCIIDOC_FLAGS@
|
||||
AWK = @AWK@
|
||||
CATALOGS = @CATALOGS@
|
||||
CC = @CC@
|
||||
@ -114,7 +112,9 @@ CONFIG_EXMODE = @CONFIG_EXMODE@
|
||||
CONFIG_FASTMEM = @CONFIG_FASTMEM@
|
||||
CONFIG_FINGER = @CONFIG_FINGER@
|
||||
CONFIG_FORMHIST = @CONFIG_FORMHIST@
|
||||
CONFIG_FSP = @CONFIG_FSP@
|
||||
CONFIG_FTP = @CONFIG_FTP@
|
||||
CONFIG_GC = @CONFIG_GC@
|
||||
CONFIG_GLOBHIST = @CONFIG_GLOBHIST@
|
||||
CONFIG_GNUTLS = @CONFIG_GNUTLS@
|
||||
CONFIG_GNUTLS_OPENSSL_COMPAT = @CONFIG_GNUTLS_OPENSSL_COMPAT@
|
||||
@ -130,7 +130,6 @@ CONFIG_LEDS = @CONFIG_LEDS@
|
||||
CONFIG_MAILCAP = @CONFIG_MAILCAP@
|
||||
CONFIG_MANUAL = @CONFIG_MANUAL@
|
||||
CONFIG_MARKS = @CONFIG_MARKS@
|
||||
CONFIG_MD5 = @CONFIG_MD5@
|
||||
CONFIG_MIMETYPES = @CONFIG_MIMETYPES@
|
||||
CONFIG_MOUSE = @CONFIG_MOUSE@
|
||||
CONFIG_NNTP = @CONFIG_NNTP@
|
||||
@ -143,7 +142,6 @@ CONFIG_OS_UNIX = @CONFIG_OS_UNIX@
|
||||
CONFIG_OS_WIN32 = @CONFIG_OS_WIN32@
|
||||
CONFIG_OWN_LIBC = @CONFIG_OWN_LIBC@
|
||||
CONFIG_POD2HTML = @CONFIG_POD2HTML@
|
||||
CONFIG_SCANNER = @CONFIG_SCANNER@
|
||||
CONFIG_SCRIPTING = @CONFIG_SCRIPTING@
|
||||
CONFIG_SCRIPTING_GUILE = @CONFIG_SCRIPTING_GUILE@
|
||||
CONFIG_SCRIPTING_LUA = @CONFIG_SCRIPTING_LUA@
|
||||
@ -151,7 +149,6 @@ CONFIG_SCRIPTING_PERL = @CONFIG_SCRIPTING_PERL@
|
||||
CONFIG_SCRIPTING_PYTHON = @CONFIG_SCRIPTING_PYTHON@
|
||||
CONFIG_SCRIPTING_RUBY = @CONFIG_SCRIPTING_RUBY@
|
||||
CONFIG_SCRIPTING_SPIDERMONKEY = @CONFIG_SCRIPTING_SPIDERMONKEY@
|
||||
CONFIG_SHA1 = @CONFIG_SHA1@
|
||||
CONFIG_SMALL = @CONFIG_SMALL@
|
||||
CONFIG_SMB = @CONFIG_SMB@
|
||||
CONFIG_SPIDERMONKEY = @CONFIG_SPIDERMONKEY@
|
||||
|
31
Makefile.lib
31
Makefile.lib
@ -48,7 +48,7 @@ quiet_cmd_ld_objs = " [$(LD_COLOR)LD$(END_COLOR)] $(RELPATH)$@"
|
||||
`test -e $(subdir)/$(LIB_O_NAME) && echo $(subdir)/$(LIB_O_NAME)`)
|
||||
|
||||
quiet_cmd_link = ' [$(LINK_COLOR)LINK$(END_COLOR)] $(RELPATH)$@'
|
||||
cmd_link = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(2) $(LIBS)
|
||||
cmd_link = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
quiet_cmd_sparse = ' [SPARSE] $(RELPATH)$(2)'
|
||||
cmd_sparse = $(SPARSE) $(DEFS) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS) $(SPARSE_FLAGS) $(2)
|
||||
@ -78,9 +78,10 @@ INCLUDE_ALL=1
|
||||
endif
|
||||
|
||||
ifneq ($(findstring init,$(MAKECMDGOALS)),)
|
||||
# FIXME: Detect when $(subdir)/Makefile is $(srcdir)/$(subdir)/Makefile
|
||||
# and error out so the user won't overwrite the 'master' Makefiles.
|
||||
INCLUDE_ALL=1
|
||||
ifndef SRC
|
||||
SRC = $(shell cd $(top_srcdir) && pwd)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef INCLUDE_ALL
|
||||
@ -92,7 +93,8 @@ endif
|
||||
#############################################################################
|
||||
# Internal build rules
|
||||
|
||||
# All files in $(OBJS) and any $(subdir)/lib.o are linked into lib.o
|
||||
# All files in $(OBJS) and any $(subdir)/lib.o are linked into lib.o.
|
||||
# Sort them to filter out duplicated and get uniform order.
|
||||
LIB_O_DEPS = \
|
||||
$(sort $(filter-out $(LIB_O_NAME),$(OBJS))) \
|
||||
$(foreach subdir,$(sort $(SUBDIRS)),$(wildcard $(subdir)/$(LIB_O_NAME)))
|
||||
@ -106,7 +108,7 @@ DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
|
||||
|
||||
ifneq ($(strip $(OBJS)),)
|
||||
-include $(DEP_FILES)
|
||||
OBJS += $(LIB_O_NAME)
|
||||
ALL_OBJS = $(LIB_O_DEPS) $(LIB_O_NAME)
|
||||
endif
|
||||
|
||||
%.o: $(srcdir)%.c
|
||||
@ -125,7 +127,7 @@ CLEAN += $(PROG) $(OBJS)
|
||||
#############################################################################
|
||||
# The main default rules
|
||||
|
||||
all-default: $(OBJS) $(PROGS) $(MAN1) $(MAN5)
|
||||
all-default: $(ALL_OBJS) $(PROGS) $(MAN1) $(MAN5)
|
||||
|
||||
# Ensure that Makefiles in subdirs are created before we recursive into them
|
||||
init-recursive: init-default
|
||||
@ -133,7 +135,8 @@ init-recursive: init-default
|
||||
init-default:
|
||||
@$(foreach subdir,$(sort $(SUBDIRS)), \
|
||||
$(MKINSTALLDIRS) $(subdir) >/dev/null; \
|
||||
echo 'include $(SRC)/$(RELPATH)/$(subdir)/Makefile' > $(subdir)/Makefile;)
|
||||
test -e "$(subdir)/Makefile" \
|
||||
|| echo 'include $(SRC)/$(RELPATH)/$(subdir)/Makefile' > $(subdir)/Makefile;)
|
||||
|
||||
clean-default cleanall-default:
|
||||
@-test -z "$(CLEAN)" || $(RM) $(CLEAN)
|
||||
@ -161,7 +164,6 @@ ifdef MAN5
|
||||
$(call ncmd,installdata,$(file),$(DESTDIR)$(mandir)/man5);)
|
||||
endif
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Auto-testing infrastructure
|
||||
|
||||
@ -171,13 +173,16 @@ ifdef TEST_PROGS
|
||||
TESTDEPS-$(CONFIG_DEBUG) += $(top_builddir)/src/util/memdebug.o
|
||||
TESTDEPS += $(TESTDEPS-yes)
|
||||
|
||||
TEST_LIB=$(top_srcdir)/test/libtest.sh
|
||||
export TEST_LIB
|
||||
|
||||
# This is a very general rule but as long as we don't put test programs in src/
|
||||
# it should work.
|
||||
%: %.o $(TESTDEPS)
|
||||
$(call cmd,link)
|
||||
|
||||
TESTS = $(wildcard $(srcdir)test-*)
|
||||
|
||||
$(TEST_PROGS): $(TESTDEPS)
|
||||
$(call cmd,link,$@.o)
|
||||
|
||||
# We cannot use $$@.o in the rule above so ensure that all test programs are
|
||||
# built before linking.
|
||||
$(TESTS): $(addsuffix .o,$(TEST_PROGS)) $(TEST_PROGS)
|
||||
@echo "*** $(notdir $@) ***"; \
|
||||
$(call shellquote,$(SHELL)) $@ $(TEST_OPTS)
|
||||
|
7
NEWS
7
NEWS
@ -5,6 +5,13 @@ You can see the complete list of recent changes, bugfixes and new features in
|
||||
the link:http://pasky.or.cz/gitweb.cgi[gitweb interface]. See the ChangeLog
|
||||
file for details.
|
||||
|
||||
ELinks now:
|
||||
-----------
|
||||
|
||||
* Native FSP protocol support (replaces CGI program in contrib/fsp/)
|
||||
* SEE Ecmascript backend
|
||||
* Minimalistic RSS renderer
|
||||
|
||||
ELinks 0.11.0 (Elated):
|
||||
-----------------------
|
||||
|
||||
|
@ -1,2 +0,0 @@
|
||||
:set runtimepath+=.
|
||||
:runtime ../.vimrc
|
@ -1,2 +0,0 @@
|
||||
:set runtimepath+=.
|
||||
:runtime ../../.vimrc
|
@ -90,16 +90,17 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
EL_RESTORE_FLAGS
|
||||
|
||||
if test "$CONFIG_SCRIPTING_RUBY" != "yes"; then
|
||||
if test -n "$CONFIG_SCRIPTING_RUBY_WITHVAL" &&
|
||||
test "$CONFIG_SCRIPTING_RUBY_WITHVAL" != no; then
|
||||
AC_MSG_ERROR([Ruby not found])
|
||||
fi
|
||||
EL_RESTORE_FLAGS
|
||||
else
|
||||
EL_CONFIG(CONFIG_SCRIPTING_RUBY, [Ruby])
|
||||
|
||||
CFLAGS="$CFLAGS_X"
|
||||
LIBS="$LIBS $RUBY_LIBS"
|
||||
AC_SUBST(RUBY_CFLAGS)
|
||||
AC_SUBST(RUBY_LIBS)
|
||||
fi
|
||||
|
188
configure.in
188
configure.in
@ -66,6 +66,12 @@ if test "x$CONFIG_DOC" != xno; then
|
||||
EL_CONFIG(CONFIG_ASCIIDOC, [AsciiDoc])
|
||||
EL_CONFIG(MANUAL_ASCIIDOC, [HTML (one file)])
|
||||
EL_CONFIG(MAN_ASCIIDOC, [HTML])
|
||||
|
||||
echo > config.asciidoc-unsafe.txt
|
||||
if "$ASCIIDOC" --unsafe config.asciidoc-unsafe.txt >&/dev/null; then
|
||||
ASCIIDOC_FLAGS=--unsafe
|
||||
fi
|
||||
rm config.asciidoc-unsafe.*
|
||||
fi
|
||||
|
||||
AC_PATH_PROGS(XMLTO, "xmlto")
|
||||
@ -87,6 +93,7 @@ if test "x$CONFIG_DOC" != xno; then
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(ASCIIDOC_FLAGS)
|
||||
AC_SUBST(CONFIG_ASCIIDOC)
|
||||
AC_SUBST(CONFIG_POD2HTML)
|
||||
AC_SUBST(CONFIG_XMLTO)
|
||||
@ -388,9 +395,22 @@ AC_DEFUN([EL_CHECK_OPTIONAL_LIBRARY],
|
||||
AC_MSG_RESULT(yes)
|
||||
EL_SAVE_FLAGS
|
||||
if test -n "$withval" && test -d "$withval"; then
|
||||
CFLAGS="$CFLAGS -I$withval/include";
|
||||
CPPFLAGS="$CPPFLAGS -I$withval/include";
|
||||
LDFLAGS="$LDFLAGS -L$withval/lib";
|
||||
# Be a little more careful when setting
|
||||
# include and lib directories. This way
|
||||
# $withval will work when includes are
|
||||
# there but the library is in the common
|
||||
# /usr/lib ... Does the right thing when
|
||||
# looking for gc on Debian.
|
||||
if test -d "$withval/include"; then
|
||||
CFLAGS="$CFLAGS -I$withval/include"
|
||||
CPPFLAGS="$CPPFLAGS -I$withval/include"
|
||||
else
|
||||
CFLAGS="$CFLAGS -I$withval"
|
||||
CPPFLAGS="$CPPFLAGS -I$withval"
|
||||
fi
|
||||
if test -d "$withval/lib"; then
|
||||
LDFLAGS="$LDFLAGS -L$withval/lib"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS([$3], [$1=yes], [$1=no; break;])
|
||||
@ -439,6 +459,11 @@ EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_BZIP2, bzlib, bzlib.h, bz2, BZ2_bzReadOpen,
|
||||
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_IDN, idn, idna.h, idn, stringprep_check_version,
|
||||
[ --without-idn disable international domain names support])
|
||||
|
||||
if test "x{with_gc}" != xno; then
|
||||
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_GC, gc, gc.h, gc, GC_init,
|
||||
[ --with-gc enable Boehm's garbage collector])
|
||||
fi
|
||||
|
||||
dnl ===================================================================
|
||||
dnl Bookmark and XBEL support
|
||||
dnl ===================================================================
|
||||
@ -507,6 +532,8 @@ AC_ARG_WITH(see, [ --with-see enable Simple Ecmascript Engine (SEE
|
||||
|
||||
AC_MSG_CHECKING([for SEE])
|
||||
|
||||
CONFIG_ECMASCRIPT_SEE=no
|
||||
|
||||
if test "$enable_see" = "yes"; then
|
||||
AC_MSG_RESULT(yes);
|
||||
## Based on the SEE_FLAGS macro.
|
||||
@ -529,7 +556,6 @@ if test "$enable_see" = "yes"; then
|
||||
CPPFLAGS="$CPPFLAGS $SEE_CFLAGS"
|
||||
EL_CONFIG(CONFIG_ECMASCRIPT_SEE, [SEE])
|
||||
AC_SUBST(SEE_CFLAGS)
|
||||
AC_SUBST(CONFIG_ECMASCRIPT_SEE)
|
||||
else
|
||||
if test -n "$withval" && test "x$withval" != xno; then
|
||||
AC_MSG_ERROR([SEE not found])
|
||||
@ -583,26 +609,19 @@ if test -z "$disable_spidermonkey"; then
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT($cf_result)
|
||||
CONFIG_SPIDERMONKEY="$cf_result"
|
||||
EL_RESTORE_FLAGS
|
||||
|
||||
if test "$cf_result" != yes; then
|
||||
EL_RESTORE_FLAGS
|
||||
else
|
||||
EL_CONFIG(CONFIG_SPIDERMONKEY, [SpiderMonkey])
|
||||
|
||||
CFLAGS="$CFLAGS_X"
|
||||
AC_SUBST(SPIDERMONKEY_LIBS)
|
||||
AC_SUBST(SPIDERMONKEY_CFLAGS)
|
||||
fi
|
||||
|
||||
if test "$CONFIG_SPIDERMONKEY" = yes &&
|
||||
test "$CONFIG_ECMASCRIPT_SEE" != yes; then
|
||||
if test "x$CONFIG_SPIDERMONKEY" = xyes &&
|
||||
test "x$CONFIG_ECMASCRIPT_SEE" != xyes; then
|
||||
EL_CONFIG(CONFIG_ECMASCRIPT_SMJS, [SpiderMonkey document scripting])
|
||||
else
|
||||
CONFIG_ECMASCRIPT_SMJS=no
|
||||
fi
|
||||
|
||||
AC_SUBST(CONFIG_SPIDERMONKEY)
|
||||
AC_SUBST(CONFIG_ECMASCRIPT_SMJS)
|
||||
|
||||
EL_CONFIG_DEPENDS(CONFIG_ECMASCRIPT, [CONFIG_ECMASCRIPT_SEE CONFIG_ECMASCRIPT_SMJS], [ECMAScript (JavaScript)])
|
||||
AC_SUBST(CONFIG_ECMASCRIPT_SEE)
|
||||
AC_SUBST(CONFIG_ECMASCRIPT_SMJS)
|
||||
|
||||
|
||||
dnl ===================================================================
|
||||
@ -621,6 +640,13 @@ else
|
||||
CONFIG_SCRIPTING_SPIDERMONKEY=no
|
||||
fi
|
||||
|
||||
if test "x$CONFIG_ECMASCRIPT_SMJS" = xyes ||
|
||||
test "x$CONFIG_SCRIPTING_SPIDERMONKEY" = xyes; then
|
||||
LIBS="$LIBS $SPIDERMONKEY_LIBS"
|
||||
AC_SUBST(SPIDERMONKEY_LIBS)
|
||||
AC_SUBST(SPIDERMONKEY_CFLAGS)
|
||||
AC_SUBST(CONFIG_SPIDERMONKEY)
|
||||
fi
|
||||
|
||||
dnl ===================================================================
|
||||
dnl Check for Guile, optional even if installed.
|
||||
@ -732,13 +758,17 @@ dnl Check for Python
|
||||
dnl ===================================================================
|
||||
enable_python="no";
|
||||
|
||||
AC_ARG_WITH(python, [ --with-python enable Python support],
|
||||
AC_ARG_WITH(python, [ --with-python=[prefix] enable Python support],
|
||||
[
|
||||
if test "$withval" = yes; then
|
||||
if test "$withval" != no; then
|
||||
# FIXME: If withval is a valid directory append it to PATH
|
||||
# so that you can specify one of several Python installations.
|
||||
withval="";
|
||||
enable_python=yes;
|
||||
if test "$withval" != yes; then
|
||||
python_prefix="$withval"
|
||||
else
|
||||
python_prefix=""
|
||||
fi
|
||||
enable_python=yes
|
||||
cat <<EOF
|
||||
***********************************************************************
|
||||
The Python support is incomplete and not so well integrated to ELinks
|
||||
@ -750,35 +780,46 @@ EOF
|
||||
fi
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING([for Python])
|
||||
|
||||
cf_result=no
|
||||
|
||||
EL_SAVE_FLAGS
|
||||
|
||||
if test "$enable_python" = "yes"; then
|
||||
PYTHON_LIBS="-lpython"
|
||||
PYTHON_CFLAGS="-I`python -c 'from distutils import sysconfig; print sysconfig.get_python_inc()' 2> /dev/null`"
|
||||
LIBS="$PYTHON_LIBS $LIBS"
|
||||
CFLAGS="$PYTHON_CFLAGS $CFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
|
||||
AC_TRY_LINK([
|
||||
#include <Python.h>
|
||||
],
|
||||
if test -n "$python_prefix" && test -d "$python_prefix/bin"; then
|
||||
PYTHON_PATH="$python_prefix/bin:$PATH"
|
||||
else
|
||||
PYTHON_PATH="$PATH"
|
||||
fi
|
||||
AC_PATH_PROG(PYTHON, python, no, $PYTHON_PATH)
|
||||
if test "$PYTHON" = "no" ; then
|
||||
cf_result=no
|
||||
else
|
||||
PYTHON_CFLAGS="-I`$PYTHON -c 'from distutils import sysconfig; print sysconfig.get_python_inc()' 2> /dev/null`"
|
||||
if test -n "$python_prefix" && test -d "$python_prefix/lib"; then
|
||||
PYTHON_LIBS="-L$python_prefix/lib -lpython"
|
||||
else
|
||||
PYTHON_LIBS="-lpython"
|
||||
fi
|
||||
LIBS="$PYTHON_LIBS $LIBS"
|
||||
CFLAGS="$PYTHON_CFLAGS $CFLAGS"
|
||||
AC_TRY_LINK([#include <Python.h>],
|
||||
[Py_Initialize();],
|
||||
cf_result=yes, cf_result=no)
|
||||
|
||||
if test "$cf_result" != "yes"; then
|
||||
EL_RESTORE_FLAGS
|
||||
else
|
||||
EL_CONFIG(CONFIG_SCRIPTING_PYTHON, [Python])
|
||||
|
||||
CFLAGS="$CFLAGS_X"
|
||||
AC_SUBST(PYTHON_LIBS)
|
||||
AC_SUBST(PYTHON_CFLAGS)
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$cf_result" != "yes"; then
|
||||
EL_RESTORE_FLAGS
|
||||
else
|
||||
EL_CONFIG(CONFIG_SCRIPTING_PYTHON, [Python])
|
||||
|
||||
CFLAGS="$CFLAGS_X"
|
||||
AC_SUBST(PYTHON_LIBS)
|
||||
AC_SUBST(PYTHON_CFLAGS)
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([for Python])
|
||||
if test "$cf_result"; then AC_MSG_RESULT($cf_result); fi
|
||||
|
||||
|
||||
@ -947,6 +988,7 @@ fi
|
||||
|
||||
AC_MSG_RESULT($cf_result)
|
||||
|
||||
CONFIG_GNUTLS_OPENSSL_COMPAT=no
|
||||
dnl ---- GNU TLS
|
||||
dnl We can't have AC_MSG_CHECKING here, because AC_PATH_PROG prints its own and
|
||||
dnl it looks ugly then.
|
||||
@ -1132,6 +1174,34 @@ EL_ARG_DEPEND(CONFIG_CGI, cgi, [HAVE_SETENV_OR_PUTENV:yes], [Local CGI],
|
||||
EL_ARG_ENABLE(CONFIG_FINGER, finger, [Finger protocol],
|
||||
[ --enable-finger enable finger protocol support])
|
||||
|
||||
dnl ===================================================================
|
||||
dnl FSP protocol
|
||||
dnl ===================================================================
|
||||
EL_SAVE_FLAGS
|
||||
|
||||
if test "x${enable_fsp}" != xno; then
|
||||
AC_CHECK_HEADERS(fsplib.h, HAVE_FSPLIB=yes, HAVE_FSPLIB=no)
|
||||
|
||||
if test "$HAVE_FSPLIB" = yes; then
|
||||
AC_CHECK_LIB(fsplib, fsp_open_session, HAVE_FSPLIB=yes, HAVE_FSPLIB=no)
|
||||
if test "$HAVE_FSPLIB" = yes; then
|
||||
LIBS="$LIBS -lfsplib"
|
||||
else
|
||||
AC_CHECK_LIB(fsp, fsp_open_session, HAVE_FSPLIB=yes, HAVE_FSPLIB=no)
|
||||
if test "$HAVE_FSPLIB" = yes; then
|
||||
LIBS="$LIBS -lfsp"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
EL_ARG_DEPEND(CONFIG_FSP, fsp, [HAVE_FSPLIB:yes], [FSP protocol],
|
||||
[ --enable-fsp enable FSP protocol support])
|
||||
|
||||
if test "x$CONFIG_FSP" = xno; then
|
||||
EL_RESTORE_FLAGS
|
||||
fi
|
||||
|
||||
EL_ARG_ENABLE(CONFIG_FTP, ftp, [FTP protocol],
|
||||
[ --disable-ftp disable ftp protocol support])
|
||||
|
||||
@ -1201,35 +1271,6 @@ EL_ARG_ENABLE(CONFIG_OWN_LIBC, own-libc, [Own libc stubs],
|
||||
EL_ARG_ENABLE(CONFIG_SMALL, small, [Small binary],
|
||||
[ --enable-small reduce binary size as far as possible (but see the bottom of doc/small.txt!)])
|
||||
|
||||
if test "$CONFIG_OPENSSL" != yes &&
|
||||
test "$CONFIG_GNUTLS_OPENSSL_COMPAT" != yes ||
|
||||
test "$CONFIG_OWN_LIBC" = yes;
|
||||
then
|
||||
AC_MSG_CHECKING(for built-in MD5 support)
|
||||
AC_MSG_RESULT(yes)
|
||||
EL_CONFIG(CONFIG_MD5, [Built-in MD5])
|
||||
fi
|
||||
|
||||
AC_SUBST(CONFIG_MD5)
|
||||
|
||||
if test "$CONFIG_BITTORRENT" = yes; then
|
||||
if test "$CONFIG_OPENSSL" != yes ||
|
||||
test "$CONFIG_OWN_LIBC" = yes;
|
||||
then
|
||||
AC_MSG_CHECKING(for built-in SHA1 support)
|
||||
AC_MSG_RESULT(yes)
|
||||
EL_CONFIG(CONFIG_SHA1, [Built-in SHA1])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(CONFIG_SHA1)
|
||||
|
||||
if test "$CONFIG_CSS" = yes || test "$CONFIG_DOM" = yes;
|
||||
then
|
||||
EL_CONFIG(CONFIG_SCANNER, [Built-in scanner])
|
||||
fi
|
||||
AC_SUBST(CONFIG_SCANNER)
|
||||
|
||||
AC_ARG_ENABLE(weehoofooboomookerchoo,
|
||||
[
|
||||
Also check out the features.conf file for more information about features!
|
||||
@ -1347,10 +1388,13 @@ AC_OUTPUT([ \
|
||||
abs_srcdir="$(cd "$srcdir" && pwd)"
|
||||
# builddir is always absolute!
|
||||
if test "$abs_srcdir" != "$builddir"; then
|
||||
# Bootstrap the Makefile creation
|
||||
echo "include $abs_srcdir/Makefile" > "$builddir/Makefile"
|
||||
"$MAKE" "SRC=$abs_srcdir" init
|
||||
fi
|
||||
|
||||
# Make cg-status ignore this build directory
|
||||
echo "*" > "$builddir/.gitignore"
|
||||
fi
|
||||
|
||||
dnl ===================================================================
|
||||
dnl Configuration summary
|
||||
|
@ -1,2 +0,0 @@
|
||||
fspcgi: fspcgi.o
|
||||
$(CC) -o $@ $< -lfsplib
|
@ -1,8 +0,0 @@
|
||||
To use this CGI script you need to build fspcgi and copy the executable
|
||||
to your cgi directory. In ELinks, you can then use this URL:
|
||||
|
||||
file:///"path_to_fspcgi"?host:port/path_to_file_or_directory
|
||||
|
||||
You can find more info about the FSP protocol at
|
||||
|
||||
http://fsp.sourceforge.net/
|
@ -1,172 +0,0 @@
|
||||
/* CGI script for FSP protocol support */
|
||||
|
||||
#include <ctype.h>
|
||||
#include <fsplib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
char *pname, *query;
|
||||
|
||||
struct fq {
|
||||
char *password;
|
||||
char *host;
|
||||
char *path;
|
||||
unsigned short port;
|
||||
} data;
|
||||
|
||||
static void
|
||||
error(const char *str)
|
||||
{
|
||||
printf("Content-Type: text/plain\r\nConnection: close\r\n\r\n");
|
||||
puts(str);
|
||||
printf("%s\n", query);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
static void
|
||||
process_directory(FSP_SESSION *ses)
|
||||
{
|
||||
char buf[1024];
|
||||
FSP_DIR *dir;
|
||||
/* TODO: password */
|
||||
|
||||
snprintf(buf, sizeof(buf), "file://%s?%s:%d%s/", pname, data.host,
|
||||
data.port, data.path);
|
||||
printf("Content-Type: text/html\r\n\r\n");
|
||||
printf("<html><head><title>%s</title></head><body>\n", buf);
|
||||
dir = fsp_opendir(ses, data.path);
|
||||
if (dir) {
|
||||
FSP_RDENTRY fentry, *fresult;
|
||||
|
||||
while (!fsp_readdir_native(dir, &fentry, &fresult)) {
|
||||
if (!fresult) break;
|
||||
printf("<a href=\"%s%s\">%s</a><br>\n", buf, fentry.name, fentry.name);
|
||||
}
|
||||
fsp_closedir(dir);
|
||||
}
|
||||
puts("</body></html>");
|
||||
fsp_close_session(ses);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
static void
|
||||
process_data(void)
|
||||
{
|
||||
FSP_SESSION *ses = fsp_open_session(data.host, data.port, data.password);
|
||||
struct stat sb;
|
||||
|
||||
if (!ses) error("Session initialization failed.");
|
||||
if (fsp_stat(ses, data.path, &sb)) error("File not found.");
|
||||
if (S_ISDIR(sb.st_mode)) process_directory(ses);
|
||||
else { /* regular file */
|
||||
char buf[4096];
|
||||
FSP_FILE *file = fsp_fopen(ses, data.path, "r");
|
||||
int r;
|
||||
|
||||
if (!file) error("fsp_fopen error.");
|
||||
printf("Content-Type: application/octet-stream\r\nContent-Length: %d\r\n"
|
||||
"Connection: close\r\n\r\n", sb.st_size);
|
||||
while ((r = fsp_fread(buf, 1, 4096, file)) > 0) fwrite(buf, 1, r, stdout);
|
||||
fsp_fclose(file);
|
||||
fsp_close_session(ses);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
process_query(void)
|
||||
{
|
||||
char *at = strchr(query, '@');
|
||||
char *colon;
|
||||
char *slash;
|
||||
|
||||
if (at) {
|
||||
*at = '\0';
|
||||
data.password = strdup(query);
|
||||
query = at + 1;
|
||||
}
|
||||
colon = strchr(query, ':');
|
||||
if (colon) {
|
||||
*colon = '\0';
|
||||
data.host = strdup(query);
|
||||
data.port = atoi(colon + 1);
|
||||
slash = strchr(colon + 1, '/');
|
||||
if (slash) {
|
||||
data.path = strdup(slash);
|
||||
} else {
|
||||
data.path = "/";
|
||||
}
|
||||
} else {
|
||||
data.port = 21;
|
||||
slash = strchr(query, '/');
|
||||
if (slash) {
|
||||
*slash = '\0';
|
||||
data.host = strdup(query);
|
||||
*slash = '/';
|
||||
data.path = strdup(slash);
|
||||
} else {
|
||||
data.host = strdup(query);
|
||||
data.path = "/";
|
||||
}
|
||||
}
|
||||
process_data();
|
||||
}
|
||||
|
||||
static inline int
|
||||
unhx(register unsigned char a)
|
||||
{
|
||||
if (isdigit(a)) return a - '0';
|
||||
if (a >= 'a' && a <= 'f') return a - 'a' + 10;
|
||||
if (a >= 'A' && a <= 'F') return a - 'A' + 10;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void
|
||||
decode_query(char *src)
|
||||
{
|
||||
char *dst = src;
|
||||
char c;
|
||||
|
||||
do {
|
||||
c = *src++;
|
||||
|
||||
if (c == '%') {
|
||||
int x1 = unhx(*src);
|
||||
|
||||
if (x1 >= 0) {
|
||||
int x2 = unhx(*(src + 1));
|
||||
|
||||
if (x2 >= 0) {
|
||||
x1 = (x1 << 4) + x2;
|
||||
if (x1 != 0) { /* don't allow %00 */
|
||||
c = (unsigned char) x1;
|
||||
src += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else if (c == '+') {
|
||||
c = ' ';
|
||||
}
|
||||
|
||||
*dst++ = c;
|
||||
} while (c != '\0');
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *q = getenv("QUERY_STRING");
|
||||
|
||||
if (!q) return 1;
|
||||
pname = argv[0];
|
||||
query = strdup(q);
|
||||
if (!query) return 2;
|
||||
decode_query(query);
|
||||
process_query();
|
||||
return 0;
|
||||
}
|
13
contrib/python/README.Python
Normal file
13
contrib/python/README.Python
Normal file
@ -0,0 +1,13 @@
|
||||
If you want to use Python scripting with ELinks add
|
||||
--with-python to the configure invocation copy hooks.py to ~/.elinks
|
||||
When your Python installation is your own build, you could give prefix
|
||||
to the configure, eg.
|
||||
--with-python=/usr/local when Python binary is placed in /usr/local/bin, etc.
|
||||
|
||||
When 'configure' cannot find -lpython make symbolic link to the appropriate
|
||||
library, eg.
|
||||
# cd /usr/local/lib
|
||||
# ln -s libpython2.4.so.1.0 libpython.so
|
||||
|
||||
For the present hooks.py is not very usable. You are welcome to make it better.
|
||||
Good Luck!
|
@ -1,10 +1,41 @@
|
||||
def goto_url_hook(url):
|
||||
return None
|
||||
import re
|
||||
|
||||
dumbprefixes = {
|
||||
"7th" : "http://7thguard.net/",
|
||||
"b" : "http://babelfish.altavista.com/babelfish/tr",
|
||||
"bz" : "http://bugzilla.elinks.cz",
|
||||
"bug" : "http://bugzilla.elinks.cz",
|
||||
"d" : "http://www.dict.org",
|
||||
"g" : "http://www.google.com/",
|
||||
"gg" : "http://www.google.com/",
|
||||
"go" : "http://www.google.com/",
|
||||
"fm" : "http://www.freshmeat.net/",
|
||||
"sf" : "http://www.sourceforge.net/",
|
||||
"dbug" : "http://bugs.debian.org/",
|
||||
"dpkg" : "http://packages.debian.org/",
|
||||
"pycur" : "http://www.python.org/doc/current/",
|
||||
"pydev" : "http://www.python.org/dev/doc/devel/",
|
||||
"pyhelp" : "http://starship.python.net/crew/theller/pyhelp.cgi",
|
||||
"pyvault" : "http://www.vex.net/parnassus/",
|
||||
"e2" : "http://www.everything2.org/",
|
||||
"sd" : "http://www.slashdot.org/"
|
||||
}
|
||||
|
||||
def goto_url_hook(url, current_url):
|
||||
global dumbprefixes
|
||||
|
||||
if dumbprefixes.has_key(url):
|
||||
return dumbprefixes[url];
|
||||
else:
|
||||
return None
|
||||
|
||||
def follow_url_hook(url):
|
||||
return None
|
||||
|
||||
def pre_format_html_hook(url, html):
|
||||
if re.search("cygwin\.com", url):
|
||||
html2 = re.sub("<body bgcolor=\"#000000\" color=\"#000000\"", "<body bgcolor=\"#ffffff\" color=\"#000000\"", html)
|
||||
return html2
|
||||
return None
|
||||
|
||||
def proxy_for_hook(url):
|
||||
|
17
contrib/smjs/google_video.js
Normal file
17
contrib/smjs/google_video.js
Normal file
@ -0,0 +1,17 @@
|
||||
/* Play videos at video.google.com with minimal niggling. Just follow the link
|
||||
* from the front page or the search page, and the video will automatically
|
||||
* be loaded. */
|
||||
function load_google_video(cached, vs) {
|
||||
if (!cached.uri.match(/^http:\/\/video.google.com\/videoplay/))
|
||||
return true;
|
||||
|
||||
var re = /(<object data="\/googleplayer.swf\?videoUrl=)(.*?)(\&.*?<\/object>)/;
|
||||
var match = cached.content.match(re);
|
||||
var url = unescape(match[2]);
|
||||
var meta = '<meta http-equiv="refresh" content="1; url=' + url + '" />';
|
||||
|
||||
cached.content = cached.content.replace(/<head>/, "<head>" + meta);
|
||||
|
||||
return true;
|
||||
}
|
||||
elinks.preformat_html_hooks.push(load_google_video);
|
@ -8,9 +8,9 @@ elinks.keymaps.main["@"] = function () {
|
||||
};
|
||||
|
||||
elinks.preformat_html_hooks = new Array();
|
||||
elinks.preformat_html = function (cached) {
|
||||
elinks.preformat_html = function (cached, vs) {
|
||||
for (var i in elinks.preformat_html_hooks)
|
||||
if (!elinks.preformat_html_hooks[i](cached))
|
||||
if (!elinks.preformat_html_hooks[i](cached, vs))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@ -36,13 +36,13 @@ elinks.follow_url_hook = function (url) {
|
||||
return url;
|
||||
};
|
||||
|
||||
function root_w00t(cached) {
|
||||
function root_w00t(cached, vs) {
|
||||
cached.content = cached.content.replace(/root/g, "w00t");
|
||||
return true;
|
||||
};
|
||||
elinks.preformat_html_hooks.push(root_w00t);
|
||||
|
||||
function mangle_deb_bugnumbers(cached) {
|
||||
function mangle_deb_bugnumbers(cached, vs) {
|
||||
if (!cached.uri.match(/^[a-z0-9]+:\/\/[a-z0-9A-Z.-]+debian\.org/)
|
||||
&& !cached.uri.match(/changelog\.Debian/))
|
||||
return true;
|
||||
@ -55,7 +55,14 @@ function mangle_deb_bugnumbers(cached) {
|
||||
/* Debian Policy Manual 4.4 footnote 16 */
|
||||
var closes_re = /closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/gi;
|
||||
|
||||
cached.content = cached.content.replace(closes_re, rewrite_closes_fn);
|
||||
var new_content = cached.content.replace(closes_re, rewrite_closes_fn);
|
||||
if (cached.type == 'text/plain') {
|
||||
cached.content = '<pre>' + new_content + '</pre>';
|
||||
vs.plain = "0";
|
||||
} else {
|
||||
cached.content = new_content;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ function cvsweb (base, project, url)
|
||||
/* javascript:gitweb("http://pasky.or.cz/gitweb.cgi", "elinks.git", "%s"); */
|
||||
function gitweb(base, project, url)
|
||||
{
|
||||
var parts = url.match(/^(search|summary|shortlog|log|commit|commitdiff|tree|tag)(\s(.*))?/);
|
||||
var parts = url.match(/^(search|summary|shortlog|log|blob|commit|commitdiff|history|tree|tag)(\s(.*))?/);
|
||||
var query = '?p=' + project;
|
||||
|
||||
if (parts) {
|
||||
@ -67,6 +67,8 @@ function gitweb(base, project, url)
|
||||
/* If the extra arg is not for searching assume it is an ID. */
|
||||
if (parts[1] == 'search' && parts[3])
|
||||
query += ';s=' + escape(parts[3]);
|
||||
else if ((parts[1] == 'blob' || parts[1] == 'history' || parts[1] == 'tree') && parts[3])
|
||||
query += ';f=' + escape(parts[3]);
|
||||
else if (parts[3])
|
||||
query += ';h=' + escape(parts[3]);
|
||||
|
||||
|
15
contrib/vim/c_elinks.vim
Normal file
15
contrib/vim/c_elinks.vim
Normal file
@ -0,0 +1,15 @@
|
||||
" Setting Vim to support the ELinks coding style
|
||||
"
|
||||
" To use this file, drop it in ~/.vim/ftplugin and set filetype plugin on.
|
||||
" Finally, make sure the path to the source directory contains the word
|
||||
" 'elinks', for example ~/src/elinks/.
|
||||
"
|
||||
" For .h files, link it as cpp_elinks.vim or define c_syntax_for_h in ~/.vimrc.
|
||||
" For .inc files, let g:filetype_inc = 'c' in ~/.vimrc.
|
||||
|
||||
if expand('%:p:h') =~ '.*elinks.*'
|
||||
setlocal shiftwidth=8
|
||||
setlocal tabstop=8
|
||||
setlocal softtabstop=0
|
||||
setlocal noexpandtab
|
||||
endif
|
2
debian/.vimrc
vendored
2
debian/.vimrc
vendored
@ -1,2 +0,0 @@
|
||||
:set runtimepath+=.
|
||||
:runtime ../.vimrc
|
@ -1,2 +0,0 @@
|
||||
:set runtimepath+=.
|
||||
:runtime ../.vimrc
|
32
doc/Makefile
32
doc/Makefile
@ -12,6 +12,9 @@ docdir = $(datadir)/doc
|
||||
HTML_DIR = $(DESTDIR)$(docdir)/$(PACKAGE)/html
|
||||
PDF_DIR = $(DESTDIR)$(docdir)/$(PACKAGE)/pdf
|
||||
|
||||
ASCIIDOC_CONF = $(srcdir)asciidoc.conf
|
||||
ASCIIDOC_FLAGS += -f $(ASCIIDOC_CONF) -a "builddir=$(CURDIR)/"
|
||||
|
||||
#############################################################################
|
||||
# Build files
|
||||
|
||||
@ -108,11 +111,14 @@ quiet_cmd_help2doc = ' [$(LINK_COLOR)HELP2DOC$(END_COLOR)] $(RELPATH)$@'
|
||||
cmd_help2doc = $(LOCALES) $(HELP2DOC) $(ELINKS) $@ > $@
|
||||
|
||||
quiet_cmd_conf2doc = ' [$(LINK_COLOR)CONF2DOC$(END_COLOR)] $(RELPATH)$@'
|
||||
cmd_conf2doc = $(LOCALES) $(CONF2DOC) > $@
|
||||
cmd_conf2doc = $(LOCALES) $(CONF2DOC) $(FEATURES) > $@
|
||||
|
||||
quiet_cmd_keys2doc = ' [$(LINK_COLOR)KEYS2DOC$(END_COLOR)] $(RELPATH)$@'
|
||||
cmd_keys2doc = $(LOCALES) $(KEYS2DOC) $(KBDBIND) $@ > $@
|
||||
|
||||
quiet_cmd_code2doc = ' [$(LINK_COLOR)CODE2DOC$(END_COLOR)] $(RELPATH)$@'
|
||||
cmd_code2doc = $(LOCALES) $(CODE2DOC) $< > $@
|
||||
|
||||
features.txt: $(FEATURES) $(CONF2DOC)
|
||||
$(call cmd,conf2doc)
|
||||
|
||||
@ -130,10 +136,10 @@ API = $(shell find $(top_srcdir)/src/ -name '*.h' -exec grep -q 'API Doc' \{\} \
|
||||
endif
|
||||
|
||||
define api_doc
|
||||
API_TXT += api/$(2).txt
|
||||
api/$(2).txt: $(1) $(CODE2DOC)
|
||||
@test -d api || $(MKINSTALLDIRS) api
|
||||
@$(CODE2DOC) $(1) > $$@
|
||||
API_TXT += api/$(2).txt
|
||||
$$(call cmd,code2doc)
|
||||
endef
|
||||
|
||||
api_name = $(shell sed -n 's/.*API Doc\s*::\s*\([^ ]*\).*/\1/p' < $(1))
|
||||
@ -149,25 +155,27 @@ api: $(patsubst %.txt,%.html,$(API_TXT))
|
||||
cmd_jw = $(JW) -b $(2) $<
|
||||
|
||||
quiet_cmd_xmlto = ' [$(LINK_COLOR)XMLTO$(END_COLOR)] $(RELPATH)$@'
|
||||
cmd_xmlto = $(XMLTO) $(3) $(2) $<
|
||||
cmd_xmlto = $(XMLTO) -o $(call outdir) $(3) $(2) $<
|
||||
|
||||
quiet_cmd_pod2html = ' [$(LINK_COLOR)POD2HTML$(END_COLOR)] $(RELPATH)$@'
|
||||
cmd_pod2html = $(POD2HTML) --outfile=$@ < $<
|
||||
|
||||
quiet_cmd_asciidoc = ' [$(LINK_COLOR)ASCIIDOC$(END_COLOR)] $(RELPATH)$@'
|
||||
cmd_asciidoc = $(ASCIIDOC) -f asciidoc.conf -b $(2) -d $(call doctype,$<) -o $@ $<
|
||||
cmd_asciidoc = $(ASCIIDOC) $(ASCIIDOC_FLAGS) -b $(call backend) -d $(call doctype) -o $@ $<
|
||||
|
||||
# Based on filename in $(1) find out asciidoc doctype.
|
||||
doctype = $(if $(findstring .1.,$(1)),manpage,$(if $(findstring .5.,$(1)),manpage,book))
|
||||
# Based on $@ find out asciidoc doctype or backend + xmlto output dir.
|
||||
doctype = $(if $(findstring .1.,$@)$(findstring .5.,$@),manpage,book)
|
||||
backend = $(if $(findstring .xml,$@),docbook,xhtml11)
|
||||
outdir = $(if $(findstring -chunked,$@),$@,.)
|
||||
|
||||
# Loosely track dependencies via asciidoc includes.
|
||||
asciidoc_dep = sed -n 's@include::\(.*\)\[.*@$@: \1@p' < $< > .deps/$(@F).asciidoc
|
||||
asciidoc_dep = sed -n 's/[{]builddir}//g;s@include::\(.*\)\[.*@$@: $< \1@p' < $< > .deps/$(@F).asciidoc
|
||||
|
||||
-include .deps/*.asciidoc
|
||||
|
||||
# Do a little post-processing of man pages. Inserting title headers and date.
|
||||
MAN_DATE = $(shell date -I)
|
||||
man_desc = `sed -n 's/:Description:\s*\(.*\)/\1/p' < $(subst .xml,.txt,$<)`
|
||||
man_desc = `sed -n 's/:Description:\s*\(.*\)/\1/p' < $(srcdir)$(subst .xml,.txt,$(<F))`
|
||||
man_hack = sed "s/^\(\.TH \"ELINKS[^\"]*\" [0-9] \).*/\1\"$(1)\" \"$(MAN_DATE)\" \"$(1)\"/" < $@ | \
|
||||
sed "s/@squote@/\\\\'/g" > $@.tmp && mv $@.tmp $@
|
||||
|
||||
@ -175,11 +183,11 @@ man_hack = sed "s/^\(\.TH \"ELINKS[^\"]*\" [0-9] \).*/\1\"$(1)\" \"$(MAN_DATE)\"
|
||||
#############################################################################
|
||||
# Build recipies
|
||||
|
||||
%.html: %.txt asciidoc.conf
|
||||
%.html: %.txt $(ASCIIDOC_CONF)
|
||||
$(call cmd,asciidoc,xhtml11)
|
||||
@-$(call asciidoc_dep)
|
||||
|
||||
%.xml: %.txt asciidoc.conf
|
||||
%.xml: %.txt $(ASCIIDOC_CONF)
|
||||
$(call cmd,asciidoc,docbook)
|
||||
@-$(call asciidoc_dep)
|
||||
|
||||
@ -192,7 +200,7 @@ man_hack = sed "s/^\(\.TH \"ELINKS[^\"]*\" [0-9] \).*/\1\"$(1)\" \"$(MAN_DATE)\"
|
||||
@$(call man_hack,$(call man_desc))
|
||||
|
||||
%.html-chunked: %.xml
|
||||
$(call cmd,xmlto,html,-o $@)
|
||||
$(call cmd,xmlto,html)
|
||||
|
||||
%.pdf: %.xml
|
||||
$(call cmd,jw,pdf)
|
||||
|
45
doc/README
45
doc/README
@ -57,7 +57,8 @@ in this directory or it's children.
|
||||
submitting patches etc., thus every aspiring developer should take the
|
||||
pains to read through it, do not forget to also look for README and similar
|
||||
text files in the subdirectories containing the relevant sources for
|
||||
detailed notes regarding given modules/subsystems.
|
||||
detailed notes regarding given modules/subsystems. Additionally, it is
|
||||
possible to build API docs. More about this below.
|
||||
|
||||
The Lua Scripting Book ...................... lua-scripting.txt
|
||||
Events Reference Sheet ...................... events.txt
|
||||
@ -94,7 +95,10 @@ and the following man page formats:
|
||||
- HTML (asciidoc)
|
||||
- man / groff (asciidoc + xmlto)
|
||||
|
||||
Note: You do not need to build manpages. They are shipped with ELinks.
|
||||
Note: You do not need to build manpages. They are shipped with ELinks. However,
|
||||
if you want to have the manpages to match your local configuration and changes
|
||||
you can rebuild them (this is mostly an issue with elinks.conf(5) which might
|
||||
otherwise contain options that is not supported by the version you install.
|
||||
|
||||
Note: You must first build the ELinks binary for "make all-docs" to work
|
||||
successfully. The binary is used for getting option documentation.
|
||||
@ -103,6 +107,43 @@ The documentation can be installed with:
|
||||
|
||||
$ make install-doc
|
||||
|
||||
Building API documentation
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
There is some starting effort to make it possible to build HTML documentation
|
||||
of the APIs presented by the different modules and subsystems in ELinks. To
|
||||
build API documentation run:
|
||||
|
||||
$ make api
|
||||
|
||||
in the doc/ directory. The API documentation can then be found in the doc/api/
|
||||
directory.
|
||||
|
||||
NOTE: Currently only few files provides API docs and there is no over-all
|
||||
structure of the various APIs.
|
||||
|
||||
The API toolchain uses a Perl script (doc/tools/code2doc) to extract info from
|
||||
header files and generate text files with AsciiDoc markup. The text files are
|
||||
then converted to HTML with AsciiDoc.
|
||||
|
||||
To get an idea of how the code markup works take a look at src/dom/stack.h.
|
||||
It has a small tag saying that it provides API docs for the dom-stack module:
|
||||
|
||||
/* API Doc :: dom-stack */
|
||||
|
||||
The API doc markup should be pretty straight forward. Here is an example of the
|
||||
basic structure:
|
||||
|
||||
/** <title>
|
||||
*
|
||||
* <content>
|
||||
*/
|
||||
|
||||
Only text in comments starting with '/**' are used. If the comment immediately
|
||||
preceeds a declaration of some struct, enum, typedef, function, or macro, the
|
||||
name of the declared identifier will be used when creating the output to create
|
||||
anchors which can be referred to using ref:[].
|
||||
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
@ -35,7 +35,7 @@ Most options can be set in the user interface or config file, so usually you
|
||||
do not need to care about them. Note that this list is roughly equivalent to
|
||||
the output of running ELinks with the option `--long-help`.
|
||||
|
||||
include::option-command.txt[]
|
||||
include::{builddir}option-command.txt[]
|
||||
|
||||
ENVIRONMENT VARIABLES
|
||||
---------------------
|
||||
|
@ -56,7 +56,7 @@ Some sample settings:
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
include::option-config.txt[]
|
||||
include::{builddir}option-config.txt[]
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
|
@ -93,7 +93,7 @@ FIXME:
|
||||
KEYMAP ACTIONS
|
||||
--------------
|
||||
|
||||
include::keymap-actions.txt[]
|
||||
include::{builddir}keymap-actions.txt[]
|
||||
|
||||
DEFAULT BINDINGS
|
||||
----------------
|
||||
@ -101,7 +101,7 @@ DEFAULT BINDINGS
|
||||
The default bindings are shown below. Any bindings in `~/.elinks/elinks.conf`
|
||||
will override these.
|
||||
|
||||
include::keymap-defaults.txt[]
|
||||
include::{builddir}keymap-defaults.txt[]
|
||||
|
||||
AUTHOR
|
||||
------
|
||||
|
@ -71,6 +71,6 @@ include::small.txt[]
|
||||
|
||||
include::ecmascript.txt[]
|
||||
|
||||
include::features.txt[]
|
||||
include::{builddir}features.txt[]
|
||||
|
||||
endif::installation-webpage[]
|
||||
|
@ -1,2 +0,0 @@
|
||||
:set runtimepath+=.
|
||||
:runtime ../../.vimrc
|
@ -1,2 +0,0 @@
|
||||
:set runtimepath+=.
|
||||
:runtime ../../../.vimrc
|
@ -17,7 +17,7 @@
|
||||
.el .ne 3
|
||||
.IP "\\$1" \\$2
|
||||
..
|
||||
.TH "ELINKS" 1 "The Elinks text-browser" "2006-01-14" "The Elinks text-browser"
|
||||
.TH "ELINKS" 1 "The Elinks text-browser" "2006-01-31" "The Elinks text-browser"
|
||||
.SH NAME
|
||||
elinks \- lynx-like alternative character mode WWW browser
|
||||
.SH "SYNOPSIS"
|
||||
@ -279,7 +279,7 @@ History file containing most recently visited URLs\&.
|
||||
GoTo URL dialog history file\&.
|
||||
|
||||
.TP
|
||||
~/\&.elinks/hooks\&.{js,lua,pl,py,pl,scm}
|
||||
~/\&.elinks/hooks\&.{js,lua,pl,py,rb,scm}
|
||||
Browser scripting hooks\&.
|
||||
|
||||
.TP
|
||||
|
@ -1,2 +0,0 @@
|
||||
:set runtimepath+=.
|
||||
:runtime ../../../.vimrc
|
@ -17,7 +17,7 @@
|
||||
.el .ne 3
|
||||
.IP "\\$1" \\$2
|
||||
..
|
||||
.TH "ELINKS.CONF" 5 "ELinks configuration file" "2006-01-14" "ELinks configuration file"
|
||||
.TH "ELINKS.CONF" 5 "ELinks configuration file" "2006-01-31" "ELinks configuration file"
|
||||
.SH NAME
|
||||
elinks.conf \- ELinks configuration file
|
||||
.SH "SYNOPSIS"
|
||||
@ -1156,6 +1156,18 @@ Allow blacklisting of buggy peers\&.
|
||||
protocol\&.file
|
||||
Options specific to local browsing\&.
|
||||
|
||||
.TP
|
||||
protocol\&.file\&.allow_special_files [0|1] (default: 0)
|
||||
Whether to allow reading from non\-regular files\&. Note this can be dangerous; reading /dev/urandom or /dev/zero can ruin your day!
|
||||
|
||||
.TP
|
||||
protocol\&.file\&.show_hidden_files [0|1] (default: 1)
|
||||
When set to false, files with name starting with a dot will be hidden in local directories listing\&.
|
||||
|
||||
.TP
|
||||
protocol\&.file\&.try_encoding_extensions [0|1] (default: 1)
|
||||
When set, if we can't open a file named 'filename', we'll try to open 'filename' with some encoding extension appended (ie\&. 'filename\&.gz'); it depends on the supported encodings\&.
|
||||
|
||||
.TP
|
||||
protocol\&.file\&.cgi
|
||||
Local CGI specific options\&.
|
||||
@ -1169,16 +1181,12 @@ protocol\&.file\&.cgi\&.policy [0|1] (default: 0)
|
||||
Whether to execute local CGI scripts\&.
|
||||
|
||||
.TP
|
||||
protocol\&.file\&.allow_special_files [0|1] (default: 0)
|
||||
Whether to allow reading from non\-regular files\&. Note this can be dangerous; reading /dev/urandom or /dev/zero can ruin your day!
|
||||
protocol\&.fsp
|
||||
FSP specific options\&.
|
||||
|
||||
.TP
|
||||
protocol\&.file\&.show_hidden_files [0|1] (default: 1)
|
||||
When set to false, files with name starting with a dot will be hidden in local directories listing\&.
|
||||
|
||||
.TP
|
||||
protocol\&.file\&.try_encoding_extensions [0|1] (default: 1)
|
||||
When set, if we can't open a file named 'filename', we'll try to open 'filename' with some encoding extension appended (ie\&. 'filename\&.gz'); it depends on the supported encodings\&.
|
||||
protocol\&.fsp\&.sort [0|1] (default: 1)
|
||||
Whether to sort entries in directory listings\&.
|
||||
|
||||
.TP
|
||||
protocol\&.ftp
|
||||
|
@ -14,7 +14,7 @@ command-line arguments. The built-in documentation is sure to be up-to-date.
|
||||
There was a complete (or, for the most part complete) manual for Links 0.82 at
|
||||
one time, and you can still find it at:
|
||||
|
||||
http://links.sourceforge.net/docs/manual-0.82-en/index.html
|
||||
- http://links.sourceforge.net/docs/manual-0.82-en/index.html[]
|
||||
|
||||
While large parts of it do not apply anymore, you may still find some relevant
|
||||
information there.
|
||||
|
@ -1,2 +0,0 @@
|
||||
:set runtimepath+=.
|
||||
:runtime ../../.vimrc
|
@ -21,14 +21,12 @@ usage($HELP) if $opt_h or @ARGV < 1;
|
||||
sub put_section {
|
||||
if ($title) {
|
||||
print "\n$title\n";
|
||||
$_ = $title;
|
||||
s/[^-]/-/g;
|
||||
print "$_\n" if not $indent;
|
||||
$title =~ s/[^-]/-/g;
|
||||
print "$title\n" if not $indent;
|
||||
}
|
||||
if ($body) {
|
||||
$_ = $body;
|
||||
s/#newline#/$indent/g;
|
||||
print "$_\n";
|
||||
$body =~ s/#newline#/$indent/g;
|
||||
print "$body\n";
|
||||
}
|
||||
$title = $body = undef;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005
|
||||
#
|
||||
|
||||
CONFFILE="$1"
|
||||
TMPFILE=$(mktemp import-features.conf.XXXXXX) || exit 1
|
||||
|
||||
strip_comment()
|
||||
@ -53,7 +54,7 @@ __END__
|
||||
fi
|
||||
}
|
||||
|
||||
cat ../features.conf | while read line; do
|
||||
cat "$CONFFILE" | while read line; do
|
||||
case "$line" in
|
||||
"### "*)
|
||||
print_section
|
||||
|
@ -297,6 +297,21 @@ CONFIG_DATA=yes
|
||||
|
||||
CONFIG_FINGER=no
|
||||
|
||||
### File Service Protocol
|
||||
#
|
||||
# File Service Protocol (FSP) is a very lightweight UDP based protocol for
|
||||
# transferring files. FSP has many benefits over FTP, mainly for running
|
||||
# anonymous archives. FSP protocol is valuable in all kinds of environments
|
||||
# because it is one of the only TCP/IP protocols that is not aggressive about
|
||||
# bandwidth, while still being sufficiently fault tolerant.
|
||||
#
|
||||
# FSP is what anonymous FTP *should* be!
|
||||
#
|
||||
# See http://fsp.sourceforge.net/ for more info.
|
||||
#
|
||||
# Default: disabled
|
||||
|
||||
CONFIG_FSP=no
|
||||
|
||||
### File Transfer Protocol Support
|
||||
#
|
||||
|
238
po/fr.po
238
po/fr.po
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ELinks 0.12.GIT\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2006-01-10 23:00+0100\n"
|
||||
"PO-Revision-Date: 2006-01-10 23:01+0100\n"
|
||||
"POT-Creation-Date: 2006-01-30 23:26+0100\n"
|
||||
"PO-Revision-Date: 2006-01-30 23:28+0100\n"
|
||||
"Last-Translator: Laurent Monin <zas@norz.org>\n"
|
||||
"Language-Team: French <zas@norz.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -33,7 +33,7 @@ msgstr "Pressez espace pour d
|
||||
#: src/bfu/msgbox.c:189 src/config/dialogs.c:57 src/config/dialogs.c:391
|
||||
#: src/cookies/dialogs.c:354 src/dialogs/edit.c:97 src/dialogs/info.c:133
|
||||
#: src/dialogs/options.c:210 src/dialogs/options.c:290 src/mime/dialogs.c:129
|
||||
#: src/protocol/auth/dialogs.c:110 src/protocol/protocol.c:231
|
||||
#: src/protocol/auth/dialogs.c:110 src/protocol/protocol.c:234
|
||||
#: src/scripting/lua/core.c:377 src/scripting/lua/core.c:457
|
||||
#: src/session/session.c:792 src/viewer/text/search.c:1593
|
||||
msgid "~OK"
|
||||
@ -187,7 +187,7 @@ msgid "Digital clock in the status bar."
|
||||
msgstr "Horloge digitale dans la barre de status."
|
||||
|
||||
#: src/bfu/leds.c:77 src/bfu/leds.c:94 src/config/options.inc:1118
|
||||
#: src/config/options.inc:1125 src/ecmascript/ecmascript.c:39
|
||||
#: src/config/options.inc:1125 src/ecmascript/ecmascript.c:41
|
||||
#: src/globhist/globhist.c:63 src/mime/backend/mailcap.c:93
|
||||
#: src/mime/backend/mimetypes.c:52 src/network/ssl/ssl.c:80
|
||||
msgid "Enable"
|
||||
@ -1796,7 +1796,7 @@ msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: src/config/dialogs.c:320 src/protocol/bittorrent/dialogs.c:594
|
||||
#: src/protocol/protocol.c:225 src/session/session.c:282
|
||||