1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-06-25 01:05:37 +00:00
(via http://elinks.cz/elinks.git)
This commit is contained in:
Kalle Olavi Niemitalo 2006-01-14 21:30:12 +02:00 committed by Kalle Olavi Niemitalo
commit 89fe822f70
43 changed files with 1172 additions and 1115 deletions

View File

@ -532,7 +532,6 @@ if test "$enable_see" = "yes"; then
EL_CONFIG(CONFIG_SEE, [SEE])
AC_SUBST(SEE_CFLAGS)
AC_SUBST(CONFIG_SEE)
disable_spidermonkey=yes
else
if test -n "$withval" && test "x$withval" != xno; then
AC_MSG_ERROR([SEE not found])
@ -597,9 +596,31 @@ else
AC_SUBST(SPIDERMONKEY_CFLAGS)
fi
AC_SUBST(CONFIG_SPIDERMONKEY)
if test "$CONFIG_SEE" != yes; then
EL_CONFIG(CONFIG_ECMASCRIPT_SMJS, [SpiderMonkey document scripting])
fi
EL_CONFIG_DEPENDS(CONFIG_ECMASCRIPT, [CONFIG_SEE CONFIG_SPIDERMONKEY], [ECMAScript (JavaScript)])
AC_SUBST(CONFIG_SPIDERMONKEY)
AC_SUBST(CONFIG_ECMASCRIPT_SMJS)
EL_CONFIG_DEPENDS(CONFIG_ECMASCRIPT, [CONFIG_SEE CONFIG_ECMASCRIPT_SMJS], [ECMAScript (JavaScript)])
dnl ===================================================================
dnl Optional Spidermonkey-based ECMAScript browser scripting
dnl ===================================================================
AC_ARG_ENABLE(sm-scripting,
[ --disable-sm-scripting ECMAScript browser scripting (requires Spidermonkey)],
[if test "$enableval" != no; then enableval="yes"; fi
CONFIG_SM_SCRIPTING="$enableval";])
if test "x$CONFIG_SPIDERMONKEY" = xyes &&
test "x$CONFIG_SM_SCRIPTING" = xyes; then
EL_CONFIG(CONFIG_SM_SCRIPTING, [SpiderMonkey])
else
CONFIG_SM_SCRIPTING=no
fi
dnl ===================================================================
@ -830,22 +851,6 @@ dnl ===================================================================
EL_CONFIG_RUBY
dnl ===================================================================
dnl Optional Spidermonkey-based ECMAScript browser scripting
dnl ===================================================================
AC_ARG_ENABLE(sm-scripting,
[ --disable-sm-scripting ECMAScript browser scripting (requires Spidermonkey)],
[if test "$enableval" != no; then enableval="yes"; fi
CONFIG_SM_SCRIPTING="$enableval";])
if test "x$CONFIG_SPIDERMONKEY" = xyes &&
test "x$CONFIG_SM_SCRIPTING" = xyes; then
EL_CONFIG(CONFIG_SM_SCRIPTING, [SpiderMonkey])
else
CONFIG_SM_SCRIPTING=no
fi
dnl ===================================================================
dnl Setup global scripting
dnl ===================================================================

15
doc/.gitignore vendored
View File

@ -1,5 +1,12 @@
html
pdf
txt
web
api
*.tmp
*.html
*.pdf
*.xml
*.1
*.5
command-options.txt
import-features.conf.txt
keymap-actions.txt
keymap-defaults.txt
manual.html-chunked

View File

@ -3,51 +3,19 @@ include $(top_builddir)/Makefile.config
SUBDIRS = man
HTML_DIR = $(DESTDIR)html
MAN_DIR = $(DESTDIR)man
PDF_DIR = $(DESTDIR)pdf
XML_DIR = $(DESTDIR)xml
VPATH = $(builddir):$(srcdir):$(top_srcdir)/contrib/perl
# Keep generated .txt files relative to the source directory
# and files they are included in.
TXT_DIR = $(top_srcdir)/doc/txt
DOC_DIRS = \
$(HTML_DIR) \
$(HTML_DIR)/api \
$(MAN_DIR)/man1 \
$(MAN_DIR)/man5 \
$(TXT_DIR) \
$(XML_DIR)
#export PATH="tools:$(PATH)"
# TODO: perl.pod should be pod2ized during make install. --pasky
# XXX: manual.txt is the master document and must be first.
MANUAL_FILES = \
manual.txt \
\
bookmarks.txt \
ecmascript.txt \
exmode.txt \
faq.txt \
installation.txt \
introduction.txt \
lua-scripting.txt \
mailcap.txt \
marks.txt \
mime.txt \
remote.txt \
small.txt \
tabs.txt \
terminals.txt \
urlshortcuts.txt
### Script Dependencies
#
ELINKS = $(top_builddir)/src/elinks
KBDBIND = $(top_srcdir)/src/config/kbdbind.c
FEATURES = $(top_srcdir)/features.conf
KBDBIND = $(top_srcdir)/src/config/kbdbind.c
### Locale env vars to override system one to ensure commands
# using elinks binary will generate texts in english
@ -60,11 +28,36 @@ LOCALES = LC_ALL=C LANGUAGE=en
CODE2DOC = $(top_srcdir)/doc/tools/code2doc
HELP2DOC = $(top_srcdir)/doc/tools/help2doc
IMPORT_FEATURES_CONF = $(top_srcdir)/doc/tools/import-features.conf
MAKE_ELINKS_MANPAGE = $(top_srcdir)/doc/tools/make-elinks-manpage
MAKE_ELINKSKEYS_MANPAGE = $(top_srcdir)/doc/tools/make-elinkskeys-manpage
TXT_DOCS = \
bookmarks.txt \
ecmascript.txt \
elinks.1.txt \
elinkskeys.5.txt \
exmode.txt \
faq.txt \
installation.txt \
introduction.txt \
lua-scripting.txt \
mailcap.txt \
manual.txt \
marks.txt \
mime.txt \
remote.txt \
small.txt \
tabs.txt \
terminals.txt \
urlshortcuts.txt
GEN_TXT_DOCS = \
command-options.txt \
import-features.conf.txt \
keymap-defaults.txt \
keymap-actions.txt
TXT_DOCS += $(GEN_TXT_DOCS)
HTML_DOCS-$(CONFIG_ASCIIDOC) += \
api/dom.html \
elinks.1.html \
elinkskeys.5.html \
hacking.html \
@ -75,117 +68,120 @@ HTML_DOCS-$(CONFIG_XMLTO) += \
HTML_DOCS-$(CONFIG_POD2HTML) += \
perl.html \
perl-hooks.html
perl-hooks.html \
MAN_DOCS-$(CONFIG_XMLTO) += \
man1/elinks.1.in \
man5/elinkskeys.5
elinks.1 \
elinkskeys.5
# Only jw is used for generating PDF.
PDF_DOCS-$(CONFIG_JW) += \
manual.pdf
MAN_DOCS += man5/elinks.conf.5
MAN_DOCS += $(MAN_DOCS-yes)
HTML_DOCS += $(HTML_DOCS-yes)
PDF_DOCS += $(PDF_DOCS-yes)
man-docs: doc-dirs $(addprefix $(MAN_DIR)/,$(MAN_DOCS))
html-docs: doc-dirs $(addprefix $(HTML_DIR)/,$(HTML_DOCS))
pdf-docs: doc-dirs $(addprefix $(PDF_DIR)/,$(PDF_DOCS))
all-docs: man-docs html-docs pdf-docs
### Build Rules
#
doc-dirs:
$(INSTALL) -d $(DOC_DIRS)
# $(MAN_DIR) intentionally left out
clean-local:
@$(RM) -r $(HTML_DIR) $(XML_DIR) $(TXT_DIR) $(PDF_DIR) *.tmp
# Autogenerated asciidoc files.
$(TXT_DIR)/import-features.conf.txt: $(FEATURES) $(IMPORT_FEATURES_CONF)
$(IMPORT_FEATURES_CONF) > $@
$(TXT_DIR)/elinks.1.%.txt: $(MAKE_ELINKS_MANPAGE) $(ELINKS) $(HELP2DOC) Makefile
$(LOCALES) $(MAKE_ELINKS_MANPAGE) $@ $(ELINKS) $(HELP2DOC) > $@
$(TXT_DIR)/elinkskeys.5.%.txt: $(MAKE_ELINKSKEYS_MANPAGE) $(KBDBIND) Makefile
$(LOCALES) $(MAKE_ELINKSKEYS_MANPAGE) $@ $(KBDBIND) > $@
# Man Pages
$(XML_DIR)/%.man.xml: $(TXT_DIR)/%.man.txt
$(ASCIIDOC) -b docbook -d manpage -o $@ $<
$(MAN_DIR)/man1/elinks.1.in: $(XML_DIR)/elinks.1.man.xml
$(XMLTO) -o $(MAN_DIR)/man1 man $<
sed 's/^\.TH "ELINKS" 1 .*/.TH "ELINKS" 1 "The ELinks text-browser" "$(shell date -I)" "The ELinks text-browser"/' \
< $(MAN_DIR)/man1/elinks.1 > $@
rm $(MAN_DIR)/man1/elinks.1
$(MAN_DIR)/man5/elinkskeys.5: $(XML_DIR)/elinkskeys.5.man.xml
$(XMLTO) -o $(MAN_DIR)/man5 man $<
sed -e 's/\\fI\\fR'\''/\\fI\\'\''\\fR/' < $@ > $@.tmp
sed 's/^\.TH "ELINKSKEYS" 5 .*/.TH "ELINKSKEYS" 5 "ELinks keybindings" "$(shell date -I)" "ELinks keybindings"/' \
< $@.tmp > $@
rm $@.tmp
$(MAN_DIR)/man5/elinks.conf.5: $(ELINKS) $(HELP2DOC) Makefile
$(LOCALES) $(HELP2DOC) --elinks=$(ELINKS) --elinksconf > $@
# XHTML/CSS Man Pages
$(HTML_DIR)/%.html: $(TXT_DIR)/%.html.txt
$(ASCIIDOC) -b xhtml11 -d manpage -o $@ $<
# The Manual
MANUAL_EXTRA_FILES = \
$(TXT_DIR)/import-features.conf.txt \
$(TXT_DIR)/elinks.1.html.txt \
$(TXT_DIR)/elinkskeys.5.html.txt
$(HTML_DIR)/manual.html: $(MANUAL_FILES) $(MANUAL_EXTRA_FILES)
$(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
$(HTML_DIR)/hacking.html: $(top_srcdir)/doc/hacking.txt
$(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
$(HTML_DIR)/dev-intro.html: $(top_srcdir)/doc/dev-intro.txt
$(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
$(XML_DIR)/manual.xml: $(MANUAL_FILES) $(MANUAL_EXTRA_FILES)
$(ASCIIDOC) -b docbook -d book -o $@ $<
$(HTML_DIR)/manual.html-chunked: $(XML_DIR)/manual.xml
$(XMLTO) -o $@ html $<
$(PDF_DIR)/manual.pdf: $(XML_DIR)/manual.xml
$(JW) -o $(PDF_DIR) -b pdf $<
$(HTML_DIR)/perl.html: $(top_srcdir)/doc/perl.pod
$(POD2HTML) --outfile=$@ < $<
$(HTML_DIR)/perl-hooks.html: $(top_srcdir)/contrib/perl/hooks.pl
$(POD2HTML) --outfile=$@ < $<
MAN_DOCS += elinks.conf.5
## API Docs
#
DOM_API = \
$(top_srcdir)/src/dom/scanner.h \
$(top_srcdir)/src/dom/stack.h \
$(top_srcdir)/src/dom/sgml/parser.h
API = $(shell find $(top_srcdir)/src/ -name '*.h' -exec grep -q 'API Doc' \{\} \; -printf "%p " | sort)
$(HTML_DIR)/api/dom.html: $(DOM_API)
$(CODE2DOC) $(DOM_API) | $(ASCIIDOC) -f code2doc.conf -b xhtml11 -d book -o $@ -n -
define api_doc
api/$(2).txt: $(1)
@$(CODE2DOC) $(1) > $$@
API_TXT += api/$(2).txt
endef
$(foreach api,$(API),$(eval $(call api_doc,$(api),$(shell sed -n 's/.*API Doc\s*::\s*\([^ ]*\).*/\1/p' < $(api)),)))
## Se the default doc rules
MAN_DOCS = elinks.conf.5 $(MAN_DOCS-yes)
HTML_DOCS = $(HTML_DOCS-yes)
PDF_DOCS = $(PDF_DOCS-yes)
API_DOCS = $(patsubst %.txt,%.html,$(API_TXT))
api-dir:
@test -d api || $(MKINSTALLDIRS) api
txt: $(addprefix $(srcdir),$(TXT_DOCS))
html: txt $(HTML_DOCS)
pdf: txt $(PDF_DOCS)
man: txt $(MAN_DOCS) man-update
api: api-dir $(API_DOCS)
all-docs: man html pdf
man-update: $(MAN_DOCS)
@test "$(CONFIG_XMLTO)" = yes && \
sed 's/^\.TH "ELINKS" 1 .*/.TH "ELINKS" 1 "The ELinks text-browser" "$(shell date -I)" "The ELinks text-browser"/' \
< elinks.1 > $(srcdir)man/man1/elinks.1.in && \
$(RM) $(MAN_DIR)/man1/elinks.1
@test "$(CONFIG_XMLTO)" = yes && \
sed -e 's/\\fI\\fR'\''/\\fI\\'\''\\fR/' < elinkskeys.5 | \
sed 's/^\.TH "ELINKSKEYS" 5 .*/.TH "ELINKSKEYS" 5 "ELinks keybindings" "$(shell date -I)" "ELinks keybindings"/' \
> $(srcdir)man/man5/elinkskeys.5
@$(INSTALL) elinks.conf.5 $(srcdir)man/man5
clean-local:
@$(RM) -r api $(GEN_TXT_DOCS) $(MAN_DOCS) $(HTML_DOCS) $(PDF_DOCS) *.tmp
# Autogenerated files.
# FIXME: Keep generated .txt files relative to the source directory and files
# they are included in.
import-features.conf.txt: $(FEATURES) $(IMPORT_FEATURES_CONF)
$(IMPORT_FEATURES_CONF) > $@
keymap-defaults.txt keymap-actions.txt: $(MAKE_ELINKSKEYS_MANPAGE) $(KBDBIND)
$(LOCALES) $(srcdir)tools/make-elinkskeys-manpage $(KBDBIND)
command-options.txt: $(ELINKS) $(HELP2DOC)
$(LOCALES) $(HELP2DOC) --cmdoptions --elinks=$(ELINKS) > $@
elinks.conf.5: $(ELINKS) $(HELP2DOC)
$(LOCALES) $(HELP2DOC) --elinksconf --elinks=$(ELINKS) > $@
## Default build rules
#
quiet_cmd_asciidoc = ' [$(LINK_COLOR)ASCIIDOC$(END_COLOR)] $(RELPATH)$@'
cmd_asciidoc = $(ASCIIDOC) -f asciidoc.conf -b $(2) -d $(call doctype,$<) -o $@ $<
quiet_cmd_xmlto = ' [$(LINK_COLOR)XMLTO$(END_COLOR)] $(RELPATH)$@'
cmd_xmlto = $(XMLTO) $(3) $(2) $<
quiet_cmd_jw = ' [$(LINK_COLOR)JW$(END_COLOR)] $(RELPATH)$@'
cmd_jw = $(JW) -b $(2) $<
quiet_cmd_pod2html = ' [$(LINK_COLOR)POD2HTML$(END_COLOR)] $(RELPATH)$@'
cmd_pod2html = $(POD2HTML) --outfile=$@ < $<
doctype = $(if $(findstring .1.,$(1)),manpage,$(if $(findstring .5.,$(1)),manpage,book))
%.html: %.txt asciidoc.conf
$(call cmd,asciidoc,xhtml11)
%.xml: %.txt asciidoc.conf
$(call cmd,asciidoc,docbook)
%.1: %.1.xml
$(call cmd,xmlto,man)
%.5: %.5.xml
$(call cmd,xmlto,man)
%.html-chunked: %.xml
$(call cmd,xmlto,html,-o $@)
%.pdf: %.xml
$(call cmd,jw,pdf)
%.html: %.pod
$(call cmd,pod2html)
perl-%.html: %.pl
$(call cmd,pod2html)
include $(top_srcdir)/Makefile.lib

57
doc/asciidoc.conf Normal file
View File

@ -0,0 +1,57 @@
# AsciiDoc configuration file
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2006
# The elink macro can have optional {0} value, that is what
# the {0%...} and {0#...} handles.
#############################################################################
# DocBook
ifdef::backend-docbook[]
[man-inlinemacro]
{target}({0})
## For manpages use less verbose linking
ifdef::doctype-manpage[]
[link-inlinemacro]
{0%&lt;{target}&gt;}
{0#{0} &lt;{target}&gt;}
[http-inlinemacro]
{0%&lt;http:{target}&gt;}
{0#{0} &lt;http:{target}&gt;}
[mailto-inlinemacro]
&lt;{target}&gt;
endif::doctype-manpage[]
endif::backend-docbook[]
#############################################################################
# XHTML11
ifdef::backend-xhtml11[]
[man-inlinemacro]
<a href="{target}.{0}.html">{target}({0})</a>
[id-inlinemacro]
<a id="{0}" href="#{0}">{0}</a>
[enum-inlinemacro]
<a id="{target}">enum {target}: {0}</a>
[func-inlinemacro]
<a id="{target}">{target}(): {0}</a>
[struct-inlinemacro]
<a id="{target}">struct {target}: {0}</a>
[macro-inlinemacro]
<a id="{target}">struct {target}: {0}</a>
[typedef-inlinemacro]
<a id="{target}">typedef {target}: {0}</a>
[ref-inlinemacro]
<a href="{target}#{0}">{0}</a>
endif::backend-xhtml11[]

View File

@ -1,55 +0,0 @@
[specialwords]
emphasizedwords=\bAsciiDoc\b
monospacedwords=\basciidoc\(1\)
[id-inlinemacro]
<a id="{0}" href="#{0}">{0}</a>
[enum-inlinemacro]
<a id="{target}">enum {target}: {0}</a>
[func-inlinemacro]
<a id="{target}">{target}(): {0}</a>
[struct-inlinemacro]
<a id="{target}">struct {target}: {0}</a>
[macro-inlinemacro]
<a id="{target}">struct {target}: {0}</a>
[typedef-inlinemacro]
<a id="{target}">typedef {target}: {0}</a>
[ref-inlinemacro]
<a href="{target}#{0}">{0}</a>
[replacements]
(^|[^-])--($|[^-])=\1--\2
[tags]
ilisttext=|
olisttext=|
vlisttext=|
qlisttext=|
colisttext=|
[tags]
title1=<h1>|</h1>
title2=<h2>|</h2>
title3=<h3>|</h3>
[literalparagraph]
<table border="1" class="code"><tr><td><pre>
|
</pre></td></tr></table>
[listingblock]
<p><b>{title}</b></p>
<table border="1" class="code"><tr><td><pre>
|
</pre></td></tr></table>
[noteblock]
<div><p><b>{title}</b></p>
|
</div>

157
doc/elinks.1.txt Normal file
View File

@ -0,0 +1,157 @@
elinks(1)
=========
NAME
----
elinks - lynx-like alternative character mode WWW browser
SYNOPSIS
--------
'elinks' [OPTION]... [URL]...
DESCRIPTION
-----------
'ELinks' is a text mode WWW browser, supporting colors, table rendering,
background downloading, menu driven configuration interface, tabbed browsing
and slim code.
Frames are supported. You can have different file formats associated with
external viewers. `mailto:` and `telnet:` are supported via external clients.
ELinks can handle both local files and remote URLs. The main supported remote
URL protocols are 'HTTP', 'HTTPS' (with SSL support compiled in) and 'FTP'.
Additional protocol support exists for 'finger', 'Gopher', 'SMB' and
'NNTP'.
OPTIONS
-------
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 by no means complete
and it is not kept up-to-date. To get complete list of commandline options,
start 'ELinks' with parameter `--help`.
include::command-options.txt[]
ENVIRONMENT VARIABLES
---------------------
COMSPEC, SHELL::
The shell used for File -> OS Shell on DOS/Windows and UNIX,
respectively.
EDITOR::
The program to use for external editor (when editing textareas).
ELINKS_CONFDIR::
The location of the directory containing configuration files. If not
set the default is `~/.elinks/`.
ELINKS_TWTERM, LINKS_TWTERM::
The command to run when selecting File -> New window and if
`TWDISPLAY` is defined (default `twterm -e`)
ELINKS_XTERM, LINKS_XTERM::
The command to run when selecting File -> New window and if `DISPLAY`
is defined (default `xterm -e`)
FTP_PROXY, HTTP_PROXY, HTTPS_PROXY::
The host to proxy the various protocol traffic through.
NO_PROXY::
A comma separated list of URLs which should not be proxied.
HOME::
The path to the users home directory. Used when expanding `~/`.
WWW_HOME::
Homepage location (as in lynx(1)).
FILES
-----
@sysconfdir@/elinks.conf::
Site-wide configuration file.
~/.elinks/elinks.conf::
Per-user config file, loaded after site-wide configuration.
~/.elinks/bookmarks::
Bookmarks file.
~/.elinks/cookies::
Cookies file.
~/.elinks/formhist::
Form history file.
~/.elinks/gotohist::
GoTo URL dialog history file.
~/.elinks/globhist::
History file containing most recently visited URLs.
~/.elinks/searchhist::
Search history file.
~/.elinks/socket::
Internal 'ELinks' socket for communication between its instances.
PLATFORMS
---------
'ELinks' is known to work on 'Linux', 'FreeBSD', 'OpenBSD', 'Solaris', 'IRIX',
'HPUX', 'Digital Unix', 'AIX', 'OS/2', 'BeOS' and 'RISC OS'. Port for 'Win32'
is in state of beta testing.
BUGS
----
Please report any other bugs you find to the either the ELinks mailing list at
mailto:elinks-users@linuxfromscratch.org[] or if you prefer enter them into
http://bugzilla.elinks.or.cz/[the bug tracking system]. More information about
how to get in contact with developers and getting help can be found on
http://elinks.or.cz/community.html[the community page].
LICENSE
-------
'ELinks' is free software; you can redistribute it and/or modify it under the
terms of http://www.gnu.org/copyleft/gpl.html[the GNU General Public License]
as published by the Free Software Foundation; version 2 of the License.
AUTHORS
-------
The 'Links' browser - on which 'ELinks' is based - was written by Mikulas
Patocka mailto:mikulas@artax.karlin.mff.cuni.cz[]. 'ELinks' was written by
Petr Baudis mailto:pasky@ucw.cz[]. See file `AUTHORS` in the source tree for a
list of people contributing to this project.
The homepage of 'ELinks' can be found at http://elinks.cz/[].
This manual page was written by Peter Gervai mailto:grin@tolna.net[], using
excerpts from a (yet?) unknown 'Links' fan for the 'Debian GNU/Linux system'
(but may be used by others). Contributions from Francis A. Holop. Extended,
clarified and made more up-to-date by Petr Baudis mailto:pasky@ucw.cz[].
Updated by Zas mailto:zas@norz.org[]. The conversion to Asciidoc and trimming
was done by Jonas Fonseca mailto:fonseca@diku.dk[].
SEE ALSO
--------
man:elinkskeys[5], elinks.conf(5), links(1), lynx(1), w3m(1), wget(1)
////////////////////////////////////////////////////////////////////////////
# vim: tabstop=4 shiftwidth=4 textwidth=76
////////////////////////////////////////////////////////////////////////////

106
doc/elinkskeys.5.txt Normal file
View File

@ -0,0 +1,106 @@
elinkskeys(5)
=============
NAME
----
elinkskeys - keybindings for ELinks
SYNOPSIS
--------
Information on how to configure keybinding and overview of the default
keybindings.
DESCRIPTION
-----------
Key binding for elinks should be placed in the file `~/.elinks/elinks.conf`.
Note that any information regarding their format/structure may not be
up-to-date. If you will discover that, please feed us with a patch.
Key binding statements are of the form:
bind <keymap> <keystroke> = <action>
where:
<keymap>::
is 'main', 'edit', or 'menu'. The main keymap is used for general
browsing. The edit keymap is used for editing text fields. The menu
keymap is used for navigating menus.
<keystroke>::
is a case sensitive key, which you can prefix with 'Ctrl-' or 'Alt-'.
'Ctrl-' must be followed by an uppercase key. See below for a list of
valid keys.
<action>::
is what the key should do. The actions available are dependent on the
keymap, and are listed separately below.
All words/strings may all be quoted "like so". Backslashes are escape
characters, even if not between quotes. Lines beginning with a hash character
(`#`) are comments.
Keys can be unbound just by binding them to the special 'none' action. It may
be of use if you accidentally type a key often.
EXAMPLE BINDINGS
----------------
Some sample keybindings:
bind "main" "v" = "view-image"
bind "main" "l" = "jump-to-link"
bind "main" "L" = "link-menu"
bind "main" "F10" = "file-menu"
bind "main" "F9" = "menu"
bind "main" "Escape" = "menu"
bind "edit" "Ctrl-R" = "auto-complete-unambiguous"
bind "edit" "Ctrl-W" = "auto-complete"
bind "edit" "Ctrl-K" = "kill-to-eol"
bind "menu" "Ctrl-B" = "page-up"
bind "menu" "PageUp" = "page-up"
bind "menu" "Ctrl-F" = "page-down"
bind "menu" "PageDown" = "page-down"
# ELinks with Lua support
bind "main" "," = "lua-console"
KEYS
----
Valid keys are: alphanumeric characters, punctuation, 'Enter', 'Backspace',
'Tab', 'Escape', 'Left', 'Right', 'Up', 'Down', 'Insert', 'Delete', 'Home',
'End', 'PageUp', 'PageDown', 'F1' to 'F12'.
Some keys will need to be quoted or escaped. For example, space can be written
as `" "` (quote space quote), and the quote itself as `\"` (backslash quote).
Backslash can be written as `\\` (double backslash).
KEYMAP ACTIONS
--------------
include::keymap-actions.txt[]
DEFAULT BINDINGS
----------------
The default bindings are shown below. Any bindings in `~/.elinks/elinks.conf`
will override these.
include::keymap-defaults.txt[]
AUTHOR
------
This manual page was finally written by Peter Wang (one and a half years after
writing the binding code), using excerpts by David Mediavilla. You can thank
Petr Baudis for the subtle requests for documentation. Updated by Zas. Moved
to asciidoc format and cleaned up by Jonas Fonseca.
SEE ALSO
--------
man:elinks[1], elinks.conf(5)

View File

@ -618,6 +618,22 @@ typedef int (some_func_T)(void *);
typedef long long our_long_T;
-------------------------------------------------------------------------------
Please use mode_t and S_I???? macros instead of numeric modes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.Use:
-------------------------------------------------------------------------------
mode_t mode = S_IRWXU | S_IRGRP | S_IROTH;
-------------------------------------------------------------------------------
.Instead of:
-------------------------------------------------------------------------------
int mode = 0744;
-------------------------------------------------------------------------------
Note that S_IREAD, S_IWRITE and S_IEXEC are obsolete, you should use S_IRUSR,
S_IWUSR, S_IXUSR instead.
Patches
~~~~~~~

View File

@ -71,6 +71,6 @@ include::small.txt[]
include::ecmascript.txt[]
include::txt/import-features.conf.txt[]
include::import-features.conf.txt[]
endif::installation-webpage[]

View File

@ -323,7 +323,7 @@ document text search all matches will be high-lighted. To get rid of this
high-lighting you have to ``search for the empty string'', that is open a
search dialog and just press Enter in the input field.
Previous search words are saved in the search history, so they can easily b
Previous search words are saved in the search history, so they can easily be
found and used later. Browsing the history will replace the current entered
search terms.

6
doc/man/man1/elinks.1.in Normal file → Executable file
View File

@ -17,7 +17,7 @@
.el .ne 3
.IP "\\$1" \\$2
..
.TH "ELINKS" 1 "The ELinks text-browser" "2006-01-10" "The ELinks text-browser"
.TH "ELINKS" 1 "The ELinks text-browser" "2006-01-11" "The ELinks text-browser"
.SH NAME
elinks \- lynx-like alternative character mode WWW browser
.SH "SYNOPSIS"
@ -236,7 +236,7 @@ The path to the users home directory\&. Used when expanding ~/\&.
.TP
WWW_HOME
Homepage location (as in lynx(1))
Homepage location (as in lynx(1))\&.
.SH "FILES"
@ -297,7 +297,7 @@ Please report any other bugs you find to the either the ELinks mailing list at <
The \fILinks\fR browser \- on which \fIELinks\fR is based \- was written by Mikulas Patocka <mikulas@artax\&.karlin\&.mff\&.cuni\&.cz>\&. \fIELinks\fR was written by Petr Baudis <pasky@ucw\&.cz>\&. See file AUTHORS in the source tree for a list of people contributing to this project\&.
The homepage of \fIELinks\fR can be found at <http://elinks\&.or\&.cz/>\&.
The homepage of \fIELinks\fR can be found at <http://elinks\&.cz/>\&.
This manual page was written by Peter Gervai <grin@tolna\&.net>, using excerpts from a (yet?) unknown \fILinks\fR fan for the \fIDebian GNU/Linux system\fR (but may be used by others)\&. Contributions from Francis A\&. Holop\&. Extended, clarified and made more up\-to\-date by Petr Baudis <pasky@ucw\&.cz>\&. Updated by Zas <zas@norz\&.org>\&. The conversion to Asciidoc and trimming was done by Jonas Fonseca <fonseca@diku\&.dk>\&.

7
doc/man/man5/elinks.conf.5 Normal file → Executable file
View File

@ -1,6 +1,6 @@
.\" elinks.conf.5
.\"
.\" Generated by help2doc (Revision: 1.19) on 2006-01-10 using output from ELinks version 0.12.GIT.
.\" Generated by help2doc (Revision: 1.19) on 2006-01-11 using output from ELinks version 0.12.GIT.
.\"
.\" Copyleft (c) 2002-2004 The ELinks project
.\"
@ -8,7 +8,7 @@
.\" General Public License. <www.gnu.org/licenses/gpl.html>
.\"
.\" Process this file with groff -man -Tascii elinks.conf.5
.TH ELINKS.CONF 5 "ELinks configuration file" "2006-01-10" "ELinks configuration file"
.TH ELINKS.CONF 5 "ELinks configuration file" "2006-01-11" "ELinks configuration file"
.SH NAME
elinks.conf \- ELinks configuration file
@ -2242,9 +2242,8 @@ in an xterm-like terminal. This way the document's title is
shown on the window titlebar.
.SH "DOCUMENT INFO"
.PP
Generated by help2doc (Revision: 1.19) on 2006-01-10 using output from ELinks version 0.12.GIT.
Generated by help2doc (Revision: 1.19) on 2006-01-11 using output from ELinks version 0.12.GIT.
help2doc is distributed with ELinks under the terms of the GPL.
.SH "SEE ALSO"
.BR elinks (1),
.BR elinksmanual (1),
.BR elinkskeys (5)

21
doc/man/man5/elinkskeys.5 Normal file → Executable file
View File

@ -17,7 +17,7 @@
.el .ne 3
.IP "\\$1" \\$2
..
.TH "ELINKSKEYS" 5 "ELinks keybindings" "2006-01-10" "ELinks keybindings"
.TH "ELINKSKEYS" 5 "ELinks keybindings" "2006-01-11" "ELinks keybindings"
.SH NAME
elinkskeys \- keybindings for ELinks
.SH "SYNOPSIS"
@ -28,7 +28,7 @@ Information on how to configure keybinding and overview of the default keybindin
.SH "DESCRIPTION"
Key binding for elinks should be placed in a file called ~/\&.elinks/elinks\&.conf\&. Note that any information regarding their format/structure may not be up\-to\-date\&. If you will discover that, please feed us with a patch\&.
Key binding for elinks should be placed in the file ~/\&.elinks/elinks\&.conf\&. Note that any information regarding their format/structure may not be up\-to\-date\&. If you will discover that, please feed us with a patch\&.
Key binding statements are of the form:
@ -42,7 +42,7 @@ where:
.TP
<keymap>
is \fImain\fR, \fIedit\fR, or \fImenu\fR\&.
is \fImain\fR, \fIedit\fR, or \fImenu\fR\&. The main keymap is used for general browsing\&. The edit keymap is used for editing text fields\&. The menu keymap is used for navigating menus\&.
.TP
<keystroke>
@ -89,10 +89,9 @@ Valid keys are: alphanumeric characters, punctuation, \fIEnter\fR, \fIBackspace\
Some keys will need to be quoted or escaped\&. For example, space can be written as " " (quote space quote), and the quote itself as \\" (backslash quote)\&. Backslash can be written as \\\\ (double backslash)\&.
.SS "MAIN KEYMAP ACTIONS"
.SH "KEYMAP ACTIONS"
The main keymap is used for general browsing\&.
.SS "MAIN ACTIONS"
.TP
abort\-connection
@ -538,10 +537,7 @@ Toggle wrapping of text\&.
view\-image
View the current image\&.
.SS "EDIT KEYMAP ACTIONS"
The edit keymap is used for editing text fields\&.
.SS "EDIT ACTIONS"
.TP
auto\-complete
@ -643,10 +639,7 @@ Toggle regex matching (type\-ahead searching)\&.
up
Move cursor upwards\&.
.SS "MENU KEYMAP ACTIONS"
The menu keymap is used for navigating menus\&.
.SS "MENU ACTIONS"
.TP
cancel

View File

@ -1,212 +0,0 @@
#!/bin/sh
#
# Generate the elinks(1) manpage.
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005
#
DOCTYPE=$(echo "$1" | sed 's/.*elinks.1.//' | sed 's/.txt.*//')
ELINKS=$2
HELP2DOC=$3
GPL="http://www.gnu.org/copyleft/gpl.html"
link()
{
target="$1"; shift
[ "$1" ] && name="$@"
case "$DOCTYPE" in
man)
echo "$name <$target>"
;;
html)
echo "link:$target[$name]"
;;
esac
}
email()
{
email="$1"
case "$DOCTYPE" in
man)
echo "<$email>"
;;
html)
echo "mailto:$email[<$email>]"
;;
esac
}
man()
{
target="$1"
section="$2"
case "$DOCTYPE" in
man)
echo "\`$target($section)\`"
;;
html)
echo "link:$target.$section.html[\`$target($section)\`]"
;;
esac
}
print_command_options()
{
$HELP2DOC --cmdoptions --elinks=$ELINKS
}
cat << __END__
elinks(1)
=========
NAME
----
elinks - lynx-like alternative character mode WWW browser
SYNOPSIS
--------
'elinks' [OPTION]... [URL]...
DESCRIPTION
-----------
'ELinks' is a text mode WWW browser, supporting colors, table rendering,
background downloading, menu driven configuration interface, tabbed browsing
and slim code.
Frames are supported. You can have different file formats associated with
external viewers. \`mailto:\` and \`telnet:\` are supported via external
clients.
ELinks can handle both local files and remote URLs. The main supported
remote URL protocols are 'HTTP', 'HTTPS' (with SSL support compiled in) and
'FTP'. Additional protocol support exists for 'finger', 'Gopher', 'SMB'
and 'NNTP'.
OPTIONS
-------
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 by no means complete
and it is not kept up-to-date. To get complete list of commandline options,
start 'ELinks' with parameter \`--help\`.
$(print_command_options)
ENVIRONMENT VARIABLES
---------------------
COMSPEC, SHELL::
The shell used for File -> OS Shell on DOS/Windows and UNIX,
respectively.
EDITOR::
The program to use for external editor (when editing textareas).
ELINKS_CONFDIR::
The location of the directory containing configuration files.
If not set the default is \`~/.elinks/\`.
ELINKS_TWTERM, LINKS_TWTERM::
The command to run when selecting File -> New window and if
\`TWDISPLAY\` is defined (default \`twterm -e\`)
ELINKS_XTERM, LINKS_XTERM::
The command to run when selecting File -> New window and if
\`DISPLAY\` is defined (default \`xterm -e\`)
FTP_PROXY, HTTP_PROXY, HTTPS_PROXY::
The host to proxy the various protocol traffic through.
NO_PROXY::
A comma separated list of URLs which should not be proxied.
HOME::
The path to the users home directory. Used when expanding \`~/\`.
WWW_HOME::
Homepage location (as in \`lynx(1)\`)
FILES
-----
@sysconfdir@/elinks.conf::
Site-wide configuration file.
~/.elinks/elinks.conf::
Per-user config file, loaded after site-wide configuration.
~/.elinks/bookmarks::
Bookmarks file.
~/.elinks/cookies::
Cookies file.
~/.elinks/formhist::
Form history file.
~/.elinks/gotohist::
GoTo URL dialog history file.
~/.elinks/globhist::
History file containing most recently visited URLs.
~/.elinks/searchhist::
Search history file.
~/.elinks/socket::
Internal 'ELinks' socket for communication between its instances.
PLATFORMS
---------
'ELinks' is known to work on 'Linux', 'FreeBSD', 'OpenBSD', 'Solaris',
'IRIX', 'HPUX', 'Digital Unix', 'AIX', 'OS/2', 'BeOS' and 'RISC OS'. Port
for 'Win32' is in state of beta testing.
BUGS
----
Please report any other bugs you find to the either the ELinks mailing list
at $(email elinks-users@linuxfromscratch.org) or if you prefer enter them
into $(link http://bugzilla.elinks.or.cz/ the bug tracking system). More
information about how to get in contact with developers and getting help can
be found on $(link http://elinks.or.cz/community.html the community page).
LICENSE
-------
'ELinks' is free software; you can redistribute it and/or modify it under
the terms of $(link $GPL the GNU General Public License) as published by the
Free Software Foundation; version 2 of the License.
AUTHORS
-------
The 'Links' browser - on which 'ELinks' is based - was written by Mikulas
Patocka $(email mikulas@artax.karlin.mff.cuni.cz). 'ELinks' was written by
Petr Baudis $(email pasky@ucw.cz). See file \`AUTHORS\` in the source tree
for a list of people contributing to this project.
The homepage of 'ELinks' can be found at $(link http://elinks.or.cz/).
This manual page was written by Peter Gervai $(email grin@tolna.net), using
excerpts from a (yet?) unknown 'Links' fan for the 'Debian GNU/Linux system'
(but may be used by others). Contributions from Francis A. Holop. Extended,
clarified and made more up-to-date by Petr Baudis $(email pasky@ucw.cz).
Updated by Zas $(email zas@norz.org). The conversion to Asciidoc and
trimming was done by Jonas Fonseca $(email fonseca@diku.dk).
SEE ALSO
--------
$(man elinkskeys 5), \`elinks.conf(5)\`, \`links(1)\`, \`lynx(1)\`,
\`w3m(1)\`, \`wget(1)\`
__END__
# vim: tabstop=4 shiftwidth=4 textwidth=76

View File

@ -1,64 +1,34 @@
#!/bin/sh
#
# Generate the elinkskeys(5) manpage.
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005
# Generate the keymap-actions.txt and keymap-defaults.txt for elinkskeys(5)
# manpage.
#
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005-2006
#
# FIXME:
#
# - You may prefix each of these keys with a number, telling its repeat
# count (how many times to do it). You can also re-bind keys, see
# elinkskeys(5) for documentation and a more complete list of keys bound by
# default.
# - You may prefix each of these keys with a number, telling its repeat count
# (how many times to do it). You can also re-bind keys, see elinkskeys(5) for
# documentation and a more complete list of keys bound by default.
#
# - The following keys can be used while editing a line/jumping to a URL
DOCTYPE=$(echo "$1" | sed 's/.*elinkskeys.5.//' | sed 's/.txt.*//')
KBDBIND=$2
CONFIGDIR=$(dirname "$2")
KBDBIND=$1
CONFIGDIR=$(dirname "$KBDBIND")
link()
{
target="$1"; shift
[ "$1" ] && name="$@"
case "$DOCTYPE" in
man)
echo "$name <$target>"
;;
html)
echo "link:$target[$name]"
;;
esac
}
man()
{
target="$1"
section="$2"
case "$DOCTYPE" in
man)
echo "\`$target($section)\`"
;;
html)
echo "link:$target.$section.html[\`$target($section)\`]"
;;
esac
}
test -d "$CONFIGDIR" || exit
print_keymap_actions()
{
keymap=$1
case "$DOCTYPE" in
html)
# open-link-in-new-tab-in-background
echo '`----------------------------------`----------------------------------------------------------------------------'
echo 'Action Description'
echo '----------------------------------------------------------------------------------------------------------------'
;;
esac
echo 'ifdef::backend-xhtml11[]'
echo '`----------------------------------`----------------------------------------------------------------------------'
echo 'Action Description'
echo '----------------------------------------------------------------------------------------------------------------'
# open-link-in-new-tab-in-background
echo 'endif::backend-xhtml11[]'
grep ACTION_ "$CONFIGDIR/actions-$keymap.inc" \
| while read entry;
@ -69,23 +39,17 @@ print_keymap_actions()
[ "$action" = "none" ] && continue
[ "$action" = " *scripting-function*" ] && continue
case "$DOCTYPE" in
man)
echo
echo "$action::"
echo " $caption."
;;
html)
printf "%-34s %s\n" "$action" "$caption"
;;
esac
echo 'ifdef::backend-docbook[]'
echo "$action:: $caption."
echo 'endif::backend-docbook[]'
echo 'ifdef::backend-xhtml11[]'
printf "%-34s %s\n" "$action" "$caption"
echo 'endif::backend-xhtml11[]'
done
case "$DOCTYPE" in
html)
echo '---------------------------------------------------------------------------------------------------------------'
;;
esac
echo 'ifdef::backend-xhtml11[]'
echo '---------------------------------------------------------------------------------------------------------------'
echo 'endif::backend-xhtml11[]'
}
print_keymap_defaults()
@ -93,14 +57,12 @@ print_keymap_defaults()
keymap="$1"
KEYMAP=$(echo $1 | tr '[a-z]' '[A-Z]')
case "$DOCTYPE" in
html)
# Ctrl-Insert
echo '`-----------`-------------------------------------------------------------------------------'
echo 'Key Description (Action)'
echo '--------------------------------------------------------------------------------------------'
;;
esac
echo 'ifdef::backend-xhtml11[]'
echo '`-----------`-------------------------------------------------------------------------------'
echo 'Key Description (Action)'
echo '--------------------------------------------------------------------------------------------'
# Ctrl-Insert
echo 'endif::backend-xhtml11[]'
grep ACT_$KEYMAP $KBDBIND | grep '^[[:space:]]{' | grep -v '{ "' \
| while read entry
@ -143,121 +105,40 @@ print_keymap_defaults()
printf "%-11s %s\n" "$modifier$key" "$action"
;;
esac
echo 'ifdef::backend-docbook[]'
echo "'$modifier$key':: $action"
echo 'endif::backend-docbook[]'
echo 'ifdef::backend-xhtml11[]'
printf "%-11s %s\n" "$modifier$key" "$action"
echo 'endif::backend-xhtml11[]'
done
case "$DOCTYPE" in
html)
echo '--------------------------------------------------------------------------------------------'
;;
esac
echo 'ifdef::backend-xhtml11[]'
echo '--------------------------------------------------------------------------------------------'
echo 'endif::backend-xhtml11[]'
}
cat << __END__
elinkskeys(5)
=============
NAME
----
elinkskeys - keybindings for ELinks
SYNOPSIS
--------
Information on how to configure keybinding and overview of the default
keybindings.
DESCRIPTION
-----------
Key binding for elinks should be placed in a file called
~/.elinks/elinks.conf. Note that any information regarding their
format/structure may not be up-to-date. If you will discover that, please
feed us with a patch.
Key binding statements are of the form:
bind <keymap> <keystroke> = <action>
where:
<keymap>::
is 'main', 'edit', or 'menu'.
<keystroke>::
is a case sensitive key, which you can prefix with 'Ctrl-' or 'Alt-'.
'Ctrl-' must be followed by an uppercase key. See below for a list of
valid keys.
<action>::
is what the key should do. The actions available are dependent on the
keymap, and are listed separately below.
All words/strings may all be quoted "like so". Backslashes are escape
characters, even if not between quotes. Lines beginning with a hash
character (\`#\`) are comments.
Keys can be unbound just by binding them to the special 'none' action. It
may be of use if you accidentally type a key often.
EXAMPLE BINDINGS
----------------
Some sample keybindings:
bind "main" "v" = "view-image"
bind "main" "l" = "jump-to-link"
bind "main" "L" = "link-menu"
bind "main" "F10" = "file-menu"
bind "main" "F9" = "menu"
bind "main" "Escape" = "menu"
bind "edit" "Ctrl-R" = "auto-complete-unambiguous"
bind "edit" "Ctrl-W" = "auto-complete"
bind "edit" "Ctrl-K" = "kill-to-eol"
bind "menu" "Ctrl-B" = "page-up"
bind "menu" "PageUp" = "page-up"
bind "menu" "Ctrl-F" = "page-down"
bind "menu" "PageDown" = "page-down"
# ELinks with Lua support
bind "main" "," = "lua-console"
KEYS
----
Valid keys are: alphanumeric characters, punctuation, 'Enter', 'Backspace',
'Tab', 'Escape', 'Left', 'Right', 'Up', 'Down', 'Insert', 'Delete', 'Home',
'End', 'PageUp', 'PageDown', 'F1' to 'F12'.
Some keys will need to be quoted or escaped. For example, space can be
written as \`" "\` (quote space quote), and the quote itself as \\"
(backslash quote). Backslash can be written as \\\\ (double backslash).
MAIN KEYMAP ACTIONS
~~~~~~~~~~~~~~~~~~~
The main keymap is used for general browsing.
cat > keymap-actions.txt << __END__
MAIN ACTIONS
~~~~~~~~~~~~
$(print_keymap_actions main)
EDIT KEYMAP ACTIONS
~~~~~~~~~~~~~~~~~~~
The edit keymap is used for editing text fields.
EDIT ACTIONS
~~~~~~~~~~~~
$(print_keymap_actions edit)
MENU KEYMAP ACTIONS
~~~~~~~~~~~~~~~~~~~
The menu keymap is used for navigating menus.
MENU ACTIONS
~~~~~~~~~~~~
$(print_keymap_actions menu)
__END__
DEFAULT BINDINGS
----------------
The default bindings are shown below. Any bindings in
\`~/.elinks/elinks.conf\` will override these.
cat > keymap-defaults.txt << __END__
MAIN KEYS
~~~~~~~~~
@ -272,18 +153,4 @@ MENU KEYS
~~~~~~~~~
$(print_keymap_defaults menu)
AUTHOR
------
This manual page was finally written by Peter Wang (one and a half years
after writing the binding code), using excerpts by David Mediavilla. You can
thank Petr Baudis for the subtle requests for documentation. Updated by Zas.
Moved to asciidoc format and cleaned up by Jonas Fonseca.
SEE ALSO
--------
$(man elinks 1), \`elinks.conf(5)\`
__END__

134
po/fr.po
View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ELinks 0.12.GIT\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-01-03 13:41+0100\n"
"PO-Revision-Date: 2006-01-01 13:42+0100\n"
"POT-Creation-Date: 2006-01-10 23:00+0100\n"
"PO-Revision-Date: 2006-01-10 23:01+0100\n"
"Last-Translator: Laurent Monin <zas@norz.org>\n"
"Language-Team: French <zas@norz.org>\n"
"MIME-Version: 1.0\n"
@ -15,21 +15,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
#: src/bfu/hierbox.c:329
#: src/bfu/hierbox.c:338
msgid "Close"
msgstr "Fermer"
#. | MSGBOX_SCROLLABLE
#: src/bfu/hierbox.c:425 src/bfu/hierbox.c:434 src/dialogs/document.c:43
#: src/bfu/hierbox.c:434 src/bfu/hierbox.c:443 src/dialogs/document.c:43
#: src/dialogs/document.c:240
msgid "Info"
msgstr "Info"
#: src/bfu/hierbox.c:426
#: src/bfu/hierbox.c:435
msgid "Press space to expand this folder."
msgstr "Pressez espace pour déployer le dossier."
#: src/bfu/hierbox.c:437 src/bfu/inpfield.c:254 src/bfu/msgbox.c:172
#: src/bfu/hierbox.c:446 src/bfu/inpfield.c:254 src/bfu/msgbox.c:172
#: 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
@ -40,57 +40,57 @@ msgid "~OK"
msgstr "~OK"
#. cant_delete_item
#: src/bfu/hierbox.c:548
#: src/bfu/hierbox.c:557
#, c-format
msgid "Sorry, but the item \"%s\" cannot be deleted."
msgstr "Désolé, mais l'item \"%s\" ne peut être supprimé."
#. cant_delete_used_item
#: src/bfu/hierbox.c:551
#: src/bfu/hierbox.c:560
#, c-format
msgid "Sorry, but the item \"%s\" is being used by something else."
msgstr "Désolé, mais l'item \"%s\" est actuellement utilisé ailleurs."
#. cant_delete_folder
#: src/bfu/hierbox.c:554 src/bookmarks/dialogs.c:119
#: src/bfu/hierbox.c:563 src/bookmarks/dialogs.c:119
#, c-format
msgid "Sorry, but the folder \"%s\" cannot be deleted."
msgstr "Désolé, mais le dossier \"%s\" ne peut être supprimé."
#. cant_delete_used_folder
#: src/bfu/hierbox.c:557 src/bookmarks/dialogs.c:121
#: src/bfu/hierbox.c:566 src/bookmarks/dialogs.c:121
#, c-format
msgid "Sorry, but the folder \"%s\" is being used by something else."
msgstr "Désolé, mais le dossier \"%s\" est actuellement utilisé ailleurs."
#. delete_marked_items_title
#: src/bfu/hierbox.c:560
#: src/bfu/hierbox.c:569
msgid "Delete marked items"
msgstr "Supprimer les items marqués"
#. delete_marked_items
#: src/bfu/hierbox.c:563
#: src/bfu/hierbox.c:572
msgid "Delete marked items?"
msgstr "Supprimer les items marqués ?"
#. delete_folder_title
#: src/bfu/hierbox.c:566 src/bookmarks/dialogs.c:127
#: src/bfu/hierbox.c:575 src/bookmarks/dialogs.c:127
msgid "Delete folder"
msgstr "Supprimer un dossier"
#. delete_folder
#: src/bfu/hierbox.c:569
#: src/bfu/hierbox.c:578
#, c-format
msgid "Delete the folder \"%s\" and its content?"
msgstr "Supprimer le dossier \"%s\" et son contenu ?"
#. delete_item_title
#: src/bfu/hierbox.c:572
#: src/bfu/hierbox.c:581
msgid "Delete item"
msgstr "Supprimer un item"
#. delete_item
#: src/bfu/hierbox.c:575
#: src/bfu/hierbox.c:584
#, c-format
msgid ""
"Delete \"%s\"?\n"
@ -102,45 +102,45 @@ msgstr ""
"%s"
#. clear_all_items_title
#: src/bfu/hierbox.c:578
#: src/bfu/hierbox.c:587
msgid "Clear all items"
msgstr "Effacer tous les items"
#. clear_all_items
#: src/bfu/hierbox.c:581
#: src/bfu/hierbox.c:590
msgid "Do you really want to remove all items?"
msgstr "Êtes-vous sûr de vouloir effacer tous les items ?"
#: src/bfu/hierbox.c:638
#: src/bfu/hierbox.c:647
msgid "Delete error"
msgstr "Erreur de suppression"
#: src/bfu/hierbox.c:741 src/bfu/hierbox.c:770 src/bfu/hierbox.c:783
#: src/bfu/hierbox.c:848 src/config/dialogs.c:832 src/dialogs/menu.c:126
#: src/bfu/hierbox.c:750 src/bfu/hierbox.c:779 src/bfu/hierbox.c:792
#: src/bfu/hierbox.c:857 src/config/dialogs.c:832 src/dialogs/menu.c:126
#: src/formhist/formhist.c:418 src/mime/dialogs.c:69 src/session/task.c:272
#: src/terminal/tab.c:191 src/terminal/tab.c:227
msgid "~Yes"
msgstr "~Oui"
#: src/bfu/hierbox.c:742 src/bfu/hierbox.c:771 src/bfu/hierbox.c:784
#: src/bfu/hierbox.c:849 src/config/dialogs.c:833 src/dialogs/menu.c:127
#: src/bfu/hierbox.c:751 src/bfu/hierbox.c:780 src/bfu/hierbox.c:793
#: src/bfu/hierbox.c:858 src/config/dialogs.c:833 src/dialogs/menu.c:127
#: src/formhist/formhist.c:419 src/mime/dialogs.c:70 src/session/task.c:273
#: src/terminal/tab.c:192 src/terminal/tab.c:228
msgid "~No"
msgstr "~Non"
#: src/bfu/hierbox.c:917 src/bfu/hierbox.c:948 src/viewer/text/search.c:1013
#: src/bfu/hierbox.c:926 src/bfu/hierbox.c:957 src/viewer/text/search.c:1013
#: src/viewer/text/search.c:1021 src/viewer/text/search.c:1037
#: src/viewer/text/search.c:1612
msgid "Search"
msgstr "Chercher"
#: src/bfu/hierbox.c:919 src/viewer/text/search.c:1014
#: src/bfu/hierbox.c:928 src/viewer/text/search.c:1014
#, c-format
msgid "Search string '%s' not found"
msgstr "Chaîne recherchée '%s' introuvable"
#: src/bfu/hierbox.c:948 src/config/dialogs.c:168 src/config/dialogs.c:357
#: src/bfu/hierbox.c:957 src/config/dialogs.c:168 src/config/dialogs.c:357
#: src/config/dialogs.c:504 src/cookies/dialogs.c:34 src/cookies/dialogs.c:348
#: src/dialogs/edit.c:91 src/dialogs/edit.c:93 src/scripting/lua/core.c:373
#: src/scripting/lua/core.c:374 src/scripting/lua/core.c:454
@ -173,7 +173,7 @@ msgstr "Cha
#: src/dialogs/options.c:291 src/mime/dialogs.c:130
#: src/protocol/auth/dialogs.c:111 src/protocol/bittorrent/dialogs.c:801
#: src/scripting/lua/core.c:378 src/scripting/lua/core.c:458
#: src/session/download.c:544 src/session/download.c:1121
#: src/session/download.c:544 src/session/download.c:1143
#: src/viewer/text/search.c:1594
msgid "~Cancel"
msgstr "~Annuler"
@ -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:40
#: src/config/options.inc:1125 src/ecmascript/ecmascript.c:39
#: 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"
@ -1837,7 +1837,7 @@ msgstr "Impossible d'ajouter une option ici."
#: src/config/dialogs.c:531 src/config/dialogs.c:943 src/cookies/dialogs.c:424
#: src/dialogs/options.c:212 src/formhist/dialogs.c:213
#: src/protocol/bittorrent/dialogs.c:788 src/session/download.c:1105
#: src/protocol/bittorrent/dialogs.c:788 src/session/download.c:1127
msgid "Sa~ve"
msgstr "Enre~gistrer"
@ -2305,14 +2305,12 @@ msgstr "Editeur externe"
msgid ""
"Path to the executable that ELinks should launch when the user\n"
"requests to edit a textarea with an external editor.\n"
"\n"
"If this is blank, ELinks will use the value of the environmental\n"
"variable $EDITOR. If $EDITOR is empty or not set, ELinks will then\n"
"default to \"vi\"."
msgstr ""
"Chemin du programme qu'ELinks doit lancer quand l'utilisateur\n"
"demande à éditer un champ de texte avec un éditeur externe.\n"
"\n"
"Si vide, ELinks utilisera la valeur de la variable d'environnement\n"
"$EDITOR. Si $EDITOR est vide ou non configurée, ELinks utilisera\n"
"\"vi\" par défaut."
@ -3357,15 +3355,13 @@ msgid ""
"The format is:\n"
"%c in the string means the current URL\n"
"%% in the string means '%'\n"
"\n"
"Do _not_ put single- or double-quotes around %c."
msgstr ""
"Règle de passage d'URI à une commande externe.\n"
"Le format est:\n"
"%c dans la chaîne signifie URL courante\n"
"%% dans la chaîne signifie '%'\n"
"\n"
"Ne mettez pas de simples ou doubles quotes autour de %c."
"Ne mettez pas de simples ou doubles guillemets autour de %c."
#. Keep options in alphabetical order.
#: src/config/options.inc:740
@ -5362,31 +5358,31 @@ msgstr ""
"Laisser à \"\" pour utiliser le style initial du document."
#. name:
#: src/ecmascript/ecmascript.c:36 src/ecmascript/ecmascript.c:201
#: src/ecmascript/ecmascript.c:35 src/ecmascript/ecmascript.c:137
msgid "ECMAScript"
msgstr "ECMAScript"
#: src/ecmascript/ecmascript.c:38
#: src/ecmascript/ecmascript.c:37
msgid "ECMAScript options."
msgstr "Options d'ECMAScript."
#: src/ecmascript/ecmascript.c:42
#: src/ecmascript/ecmascript.c:41
msgid "Whether to run those scripts inside of documents."
msgstr "Exécuter ou non ces scripts présents dans les documents."
#: src/ecmascript/ecmascript.c:44
#: src/ecmascript/ecmascript.c:43
msgid "Script error reporting"
msgstr "Rapport d'erreur de script"
#: src/ecmascript/ecmascript.c:46
#: src/ecmascript/ecmascript.c:45
msgid "Open a message box when a script reports an error."
msgstr "Ouvrir une boîte de message quand un script produit une erreur."
#: src/ecmascript/ecmascript.c:48
#: src/ecmascript/ecmascript.c:47
msgid "Ignore <noscript> content"
msgstr "Ignorer le contenu de <noscript>"
#: src/ecmascript/ecmascript.c:50
#: src/ecmascript/ecmascript.c:49
msgid ""
"Whether to ignore content enclosed by the <noscript> tag\n"
"when ECMAScript is enabled."
@ -5394,38 +5390,29 @@ msgstr ""
"Ignorer ou non le contenu du tag <noscript> quand ECMAScript\n"
"est actif."
#: src/ecmascript/ecmascript.c:53
#: src/ecmascript/ecmascript.c:52
msgid "Maximum execution time"
msgstr "Temps maximal d'exécution"
#: src/ecmascript/ecmascript.c:55
#: src/ecmascript/ecmascript.c:54
msgid "Maximum execution time in seconds for a script."
msgstr "Temps maximal pour l'exécution d'un script, en secondes."
#: src/ecmascript/ecmascript.c:57
#: src/ecmascript/ecmascript.c:56
msgid "Pop-up window blocking"
msgstr "Blocage des fenêtres Javascript (popups)"
#: src/ecmascript/ecmascript.c:59
#: src/ecmascript/ecmascript.c:58
msgid "Whether to disallow scripts to open new windows or tabs."
msgstr ""
"Interdire ou non l'ouverture de fenêtres ou d'onglets\n"
"par les scripts."
#: src/ecmascript/spidermonkey.c:92
#, c-format
msgid "A script embedded in the current document raised the following%s%s%s%s"
msgstr "Un script contenu dans le document courant a provoqué%s%s%s%s"
#: src/ecmascript/spidermonkey.c:108
msgid "JavaScript Error"
msgstr "Erreur Javascript"
#: src/ecmascript/spidermonkey.c:127
#: src/ecmascript/ecmascript.c:126
msgid "JavaScript Emergency"
msgstr "Alerte JavaScript"
#: src/ecmascript/spidermonkey.c:129
#: src/ecmascript/ecmascript.c:128
#, c-format
msgid ""
"A script embedded in the current document was running\n"
@ -5438,10 +5425,19 @@ msgstr ""
"qu'il y a un bogue dans ce script et que cela aurait pû\n"
"bloquer ELinks, l'exécution du script a donc été interrompue."
#: src/ecmascript/spidermonkey/window.c:286
#: src/ecmascript/see/window.c:242 src/ecmascript/spidermonkey/window.c:286
msgid "JavaScript Alert"
msgstr "Alerte JavaScript"
#: src/ecmascript/spidermonkey.c:162
#, c-format
msgid "A script embedded in the current document raised the following%s%s%s%s"
msgstr "Un script contenu dans le document courant a provoqué%s%s%s%s"
#: src/ecmascript/spidermonkey.c:178
msgid "JavaScript Error"
msgstr "Erreur Javascript"
#: src/formhist/dialogs.c:67
msgid "Forms are never saved for this URL."
msgstr "Les formulaires ne sont jamais sauvés pour cette URL."
@ -5988,7 +5984,7 @@ msgid "Option system"
msgstr "Système de configuration"
#. name:
#: src/mime/backend/mailcap.c:89 src/mime/backend/mailcap.c:668
#: src/mime/backend/mailcap.c:89 src/mime/backend/mailcap.c:674
msgid "Mailcap"
msgstr "Mailcap"
@ -7128,7 +7124,7 @@ msgstr "Que voulez-vous faire avec le fichier '%s' ?"
msgid "Information about the torrent"
msgstr "Informations sur le torrent"
#: src/protocol/bittorrent/dialogs.c:763 src/session/download.c:1017
#: src/protocol/bittorrent/dialogs.c:763 src/session/download.c:1039
msgid "What to do?"
msgstr "Que faire ?"
@ -7136,11 +7132,11 @@ msgstr "Que faire ?"
msgid "Down~load"
msgstr "Té~lécharger"
#: src/protocol/bittorrent/dialogs.c:791 src/session/download.c:1111
#: src/protocol/bittorrent/dialogs.c:791 src/session/download.c:1133
msgid "~Display"
msgstr "A~fficher"
#: src/protocol/bittorrent/dialogs.c:795 src/session/download.c:1115
#: src/protocol/bittorrent/dialogs.c:795 src/session/download.c:1137
msgid "Show ~header"
msgstr "~Montrer les en-têtes"
@ -7840,11 +7836,11 @@ msgid "Scripting"
msgstr "Scripting"
#: src/session/download.c:234 src/session/download.c:331
#: src/session/download.c:498 src/session/download.c:590
#: src/session/download.c:498 src/session/download.c:593
msgid "Download error"
msgstr "Erreur de téléchargement"
#: src/session/download.c:235 src/session/download.c:591
#: src/session/download.c:235 src/session/download.c:594
#, c-format
msgid ""
"Could not create file '%s':\n"
@ -7900,30 +7896,30 @@ msgstr "Ecraser le fichier ~original"
msgid "~Resume download of the original file"
msgstr "~Reprendre le téléchargement du fichier original"
#: src/session/download.c:1020
#: src/session/download.c:1042
msgid "Unknown type"
msgstr "Type inconnu"
#: src/session/download.c:1037
#: src/session/download.c:1059
#, c-format
msgid "What would you like to do with the file '%s' (type: %s%s%s)?"
msgstr "Que voulez-vous faire avec le fichier '%s' (type: %s%s%s) ?"
#: src/session/download.c:1067
#: src/session/download.c:1089
#, no-c-format
msgid "Program ('%' will be replaced by the filename)"
msgstr "Programme ('%' sera remplacé par le nom du fichier)"
#: src/session/download.c:1071
#: src/session/download.c:1093
msgid "Block the terminal"
msgstr "Bloquer le terminal"
#: src/session/download.c:1077
#: src/session/download.c:1099
#, c-format
msgid "The file will be opened with the program '%s'."
msgstr "Le fichier sera ouvert avec le programme '%s'."
#: src/session/download.c:1098
#: src/session/download.c:1120
msgid "~Open"
msgstr "~Ouvrir"

805
po/pl.po

File diff suppressed because it is too large Load Diff

View File

@ -321,7 +321,7 @@ save_input_history(struct input_history *history, unsigned char *filename)
history_file = straconcat(elinks_home, filename, NULL);
if (!history_file) return -1;
ssi = secure_open(history_file, 0177);
ssi = secure_open(history_file);
mem_free(history_file);
if (!ssi) return -1;

View File

@ -94,7 +94,7 @@ bookmarks_write(struct list_head *bookmarks_list)
file_name = straconcat(elinks_home, file_name, NULL);
if (!file_name) return;
ssi = secure_open(file_name, 0177);
ssi = secure_open(file_name);
mem_free(file_name);
if (!ssi) return;

View File

@ -805,7 +805,7 @@ write_config_file(unsigned char *prefix, unsigned char *name,
config_file = straconcat(prefix, slash, name, NULL);
if (!config_file) goto free_cfg_str;
ssi = secure_open(config_file, 0177);
ssi = secure_open(config_file);
if (ssi) {
secure_fputs(ssi, cfg_str);
ret = secure_close(ssi);

View File

@ -775,7 +775,7 @@ save_cookies(void) {
cookfile = straconcat(elinks_home, COOKIES_FILENAME, NULL);
if (!cookfile) return;
ssi = secure_open(cookfile, 0177); /* rw for user only */
ssi = secure_open(cookfile);
mem_free(cookfile);
if (!ssi) return;

View File

@ -4,6 +4,8 @@
#include "dom/string.h"
#include "util/error.h"
/* API Doc :: dom-scanner */
/* Define if you want a talking scanner */
/* #define DEBUG_DOM_SCANNER */

View File

@ -11,6 +11,8 @@ struct sgml_parser;
struct string;
struct uri;
/* API Doc :: dom-sgml-parser */
/** SGML parser type
*
* There are two kinds of parser types: One that optimises one-time access to

View File

@ -7,6 +7,8 @@
struct dom_stack;
/* API Doc :: dom-stack */
/** DOM stack callback
*
* Used by contexts, for 'hooking' into the node traversing. */

View File

@ -2,9 +2,9 @@ top_builddir=../..
include $(top_builddir)/Makefile.config
INCLUDES += $(SPIDERMONKEY_CFLAGS)
SUBDIRS-$(CONFIG_SPIDERMONKEY) += spidermonkey
SUBDIRS-$(CONFIG_ECMASCRIPT_SMJS) += spidermonkey
SUBDIRS-$(CONFIG_SEE) += see
OBJS-$(CONFIG_SPIDERMONKEY) += spidermonkey.o
OBJS-$(CONFIG_ECMASCRIPT_SMJS) += spidermonkey.o
OBJS-$(CONFIG_SEE) += see.o
OBJS = ecmascript.o

View File

@ -177,7 +177,6 @@ see_eval(struct ecmascript_interpreter *interpreter,
struct SEE_input *input = SEE_input_elinks(interp, code->source);
SEE_try_context_t try_ctxt;
struct SEE_value result;
struct SEE_value v;
g->exec_start = time(NULL);
SEE_TRY(interp, try_ctxt) {

View File

@ -138,6 +138,8 @@ document_get(struct SEE_interpreter *interp, struct SEE_object *o,
}
} else if (p == s_forms) {
SEE_SET_OBJECT(res, doc->forms);
} else if (p == s_write) {
SEE_SET_OBJECT(res, doc->write);
} else {
struct form *form;
unsigned char *string = SEE_string_to_unsigned_char(p);

View File

@ -247,6 +247,14 @@ input_get(struct SEE_interpreter *interp, struct SEE_object *o,
} else if (p == s_value) {
str = string_to_SEE_string(interp, fs->value);
SEE_SET_STRING(res, str);
} else if (p == s_blur) {
SEE_SET_OBJECT(res, input->blur);
} else if (p == s_click) {
SEE_SET_OBJECT(res, input->click);
} else if (p == s_focus) {
SEE_SET_OBJECT(res, input->focus);
} else if (p == s_select) {
SEE_SET_OBJECT(res, input->select);
}
}
@ -581,6 +589,10 @@ form_elems_get(struct SEE_interpreter *interp, struct SEE_object *o,
if (p == s_length) {
SEE_number_t length = list_size(&form->items);
SEE_SET_NUMBER(res, length);
} else if (p == s_item) {
SEE_SET_OBJECT(res, jsfe->item);
} else if (p == s_namedItem) {
SEE_SET_OBJECT(res, jsfe->namedItem);
} else {
unsigned char *string = SEE_string_to_unsigned_char(p);
struct SEE_value argv;
@ -691,11 +703,16 @@ forms_get(struct SEE_interpreter *interp, struct SEE_object *o,
struct view_state *vs = g->win->vs;
struct document_view *doc_view = vs->doc_view;
struct document *document = doc_view->document;
struct js_forms_object *fo = (struct js_forms_object *)o;
checktime(interp);
if (p == s_length) {
SEE_number_t length = list_size(&document->forms);
SEE_SET_NUMBER(res, length);
} else if (p == s_item) {
SEE_SET_OBJECT(res, fo->item);
} else if (p == s_namedItem) {
SEE_SET_OBJECT(res, fo->namedItem);
} else {
unsigned char *string = SEE_string_to_unsigned_char(p);
struct SEE_value argv;

View File

@ -6,6 +6,9 @@
#include <see/see.h>
#include <string.h>
#include "elinks.h"
#include "ecmascript/see/input.h"
#include "util/memory.h"

View File

@ -138,7 +138,7 @@ window_get(struct SEE_interpreter *interp, struct SEE_object *o,
SEE_SET_BOOLEAN(res, 0);
} else if (p == s_self) {
SEE_SET_OBJECT(res, o);
} else if (p == s_top || p == s_parent) {
} else if (p == s_parent || p == s_top) {
struct document_view *doc_view = vs->doc_view;
struct document_view *top_view = doc_view->session->doc_view;
struct js_window_object *newjsframe;
@ -167,6 +167,8 @@ window_get(struct SEE_interpreter *interp, struct SEE_object *o,
SEE_SET_OBJECT(res, win->alert);
} else if (p == s_open) {
SEE_SET_OBJECT(res, win->open);
} else if (p == s_location) {
SEE_OBJECT_GET(interp, interp->Global, s_location, res);
} else {
unsigned char *frame = SEE_string_to_unsigned_char(p);
struct document_view *doc_view = vs->doc_view;
@ -225,7 +227,8 @@ js_window_alert(struct SEE_interpreter *interp, struct SEE_object *self,
struct SEE_object *thisobj, int argc, struct SEE_value **argv,
struct SEE_value *res)
{
struct js_window_object *win = (struct js_window_object *)thisobj;
struct global_object *g = (struct global_object *)interp;
struct js_window_object *win = g->win;
struct view_state *vs = win->vs;
unsigned char *string;
@ -249,11 +252,12 @@ js_window_open(struct SEE_interpreter *interp, struct SEE_object *self,
struct SEE_object *thisobj, int argc, struct SEE_value **argv,
struct SEE_value *res)
{
struct js_window_object *win = (struct js_window_object*)thisobj;
struct global_object *g = (struct global_object *)interp;
struct js_window_object *win = g->win;
struct view_state *vs = win->vs;
struct document_view *doc_view = vs->doc_view;
struct session *ses = doc_view->session;
unsigned char *target = "";
unsigned char *target = NULL;
unsigned char *url, *url2;
struct uri *uri;
#if 0
@ -261,7 +265,7 @@ js_window_open(struct SEE_interpreter *interp, struct SEE_object *self,
static int ratelimit_count;
#endif
checktime(interp);
SEE_SET_UNDEFINED(res);
SEE_SET_OBJECT(res, (struct SEE_object *)win);
if (get_opt_bool("ecmascript.block_window_opening")) {
#ifdef CONFIG_LEDS
set_led_value(ses->status.popup_led, 'P');
@ -312,6 +316,7 @@ js_window_open(struct SEE_interpreter *interp, struct SEE_object *self,
}
}
mem_free_if(target);
if (!get_cmd_opt_bool("no-connect")
&& !get_cmd_opt_bool("no-home")
&& !get_cmd_opt_bool("anonymous")
@ -355,6 +360,17 @@ init_js_window_object(struct ecmascript_interpreter *interpreter)
g->win->alert = SEE_cfunction_make(interp, js_window_alert, s_alert, 1);
g->win->open = SEE_cfunction_make(interp, js_window_open, s_open, 3);
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_top, &v);
SEE_OBJECT_PUT(interp, interp->Global, s_top, &v, 0);
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_self, &v);
SEE_OBJECT_PUT(interp, interp->Global, s_self, &v, 0);
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_alert, &v);
SEE_OBJECT_PUT(interp, interp->Global, s_alert, &v, 0);
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_open, &v);
SEE_OBJECT_PUT(interp, interp->Global, s_open, &v, 0);
}
void

View File

@ -225,7 +225,7 @@ save_formhist_to_file(void)
file = straconcat(elinks_home, FORMS_HISTORY_FILENAME, NULL);
if (!file) return 0;
ssi = secure_open(file, 0177);
ssi = secure_open(file);
mem_free(file);
if (!ssi) return 0;

View File

@ -369,7 +369,7 @@ write_global_history(void)
file_name = straconcat(elinks_home, GLOBAL_HISTORY_FILENAME, NULL);
if (!file_name) return;
ssi = secure_open(file_name, 0177); /* rw for user only */
ssi = secure_open(file_name);
mem_free(file_name);
if (!ssi) return;

View File

@ -371,7 +371,7 @@ elinks_usleep(unsigned long useconds)
static int
bind_to_af_unix(void)
{
mode_t saved_mask = umask(0177);
mode_t saved_mask = umask(S_IXUSR | S_IRWXG | S_IRWXO);
int attempts = 0;
int pf = get_address(&s_info_listen, ADDR_IP_SERVER);

View File

@ -10,6 +10,15 @@
#endif
/* File permission flags not available on win32 systems. */
#ifndef S_IRUSR
#define S_IRUSR 0000400 /* R for user */
#endif
#ifndef S_IWUSR
#define S_IWUSR 0000200 /* W for user */
#endif
#ifndef S_IXUSR
#define S_IXUSR 0000100 /* X for user */
#endif
#ifndef S_ISUID
#define S_ISUID 0004000 /* set user id on execution */
#endif
@ -38,4 +47,14 @@
#define S_ISVTX 0001000 /* save swapped text even after use */
#endif
#ifndef S_IRWXU
#define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
#endif
#ifndef S_IRWXG
#define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
#endif
#ifndef S_IRWXO
#define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
#endif
#endif /* EL__OSDEP_STAT_H */

View File

@ -657,14 +657,14 @@ open_bittorrent_file(struct bittorrent_meta *meta, struct bittorrent_file *file,
if (!name) return -1;
fd = open(name, flags, S_IREAD | S_IWRITE);
fd = open(name, flags, S_IRUSR | S_IWUSR);
if (fd == -1) {
/* 99% of the time the file will already exist so special case
* the directory and file creation. */
if (errno == ENOENT
&& trans == BITTORRENT_WRITE
&& create_bittorrent_path(name) == BITTORRENT_STATE_OK)
fd = open(name, flags | O_CREAT, S_IREAD | S_IWRITE);
fd = open(name, flags | O_CREAT, S_IRUSR | S_IWUSR);
}
mem_free(name);

View File

@ -299,7 +299,7 @@ execute_cgi(struct connection *conn)
scriptlen = strlen(script);
if (stat(script, &buf) || !(S_ISREG(buf.st_mode))
|| !(buf.st_mode & S_IEXEC)) {
|| !(buf.st_mode & S_IXUSR)) {
mem_free(script);
return 1;
}

View File

@ -1034,7 +1034,7 @@ display_dir_entry(struct cache_entry *cached, off_t *pos, int *tries,
add_char_to_string(&string, ftp_info->type);
if (ftp_info->permissions) {
int p = ftp_info->permissions;
mode_t p = ftp_info->permissions;
#define FTP_PERM(perms, buffer, flag, index, id) \
if ((perms) & (flag)) (buffer)[(index)] = (id);

View File

@ -138,7 +138,7 @@ enum ftp_unix {
static int
parse_ftp_unix_permissions(const unsigned char *src, int len)
{
int perms = 0;
mode_t perms = 0;
if (len != 9
&& !(len == 10 && src[9] == '+')) /* ACL tag */
@ -583,12 +583,12 @@ parse_ftp_winnt_response(struct ftp_file_info *info, unsigned char *src, int len
if (*src == '<') {
info->type = FTP_FILE_DIRECTORY;
info->permissions = 0755;
info->permissions = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
} else if (isdigit(*src)) {
info->type = FTP_FILE_PLAINFILE;
info->size = parse_ftp_number(&src, end, 0, LONG_MAX);
info->permissions = 0644;
info->permissions = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
} else {
info->type = FTP_FILE_UNKNOWN;

View File

@ -22,7 +22,7 @@ struct ftp_file_info {
long size; /* File size. -1 if unknown. */
time_t mtime; /* Modification time */
unsigned int local_time_zone:1; /* What format the mtime is in */
int permissions; /* File permissions */
mode_t permissions; /* File permissions */
};
#define FTP_SIZE_UNKNOWN -1
@ -30,10 +30,10 @@ struct ftp_file_info {
/* File info initializers: */
#define INIT_FTP_FILE_INFO \
{ FTP_FILE_UNKNOWN, INIT_STRING("", 0), INIT_STRING("", 0), FTP_SIZE_UNKNOWN, 0, 0, 0644 }
{ FTP_FILE_UNKNOWN, INIT_STRING("", 0), INIT_STRING("", 0), FTP_SIZE_UNKNOWN, 0, 0, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH }
#define INIT_FTP_FILE_INFO_ROOT \
{ FTP_FILE_DIRECTORY, INIT_STRING("..", 2), INIT_STRING("", 0), FTP_SIZE_UNKNOWN, 0, 0, 0755 }
{ FTP_FILE_DIRECTORY, INIT_STRING("..", 2), INIT_STRING("", 0), FTP_SIZE_UNKNOWN, 0, 0, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH }
struct ftp_file_info *
parse_ftp_file_info(struct ftp_file_info *info, unsigned char *src, int len);

View File

@ -26,7 +26,7 @@
/* Error reporting. */
#if defined(CONFIG_RUBY) || defined(CONFIG_SEE) || defined(CONFIG_ECMASCRIPT)
#if defined(CONFIG_RUBY) || defined(CONFIG_SEE) || defined(CONFIG_SM_SCRIPTING)
void
report_scripting_error(struct module *module, struct session *ses,
unsigned char *msg)
@ -77,7 +77,7 @@ static struct module *scripting_modules[] = {
#ifdef CONFIG_RUBY
&ruby_scripting_module,
#endif
#ifdef CONFIG_ECMASCRIPT
#ifdef CONFIG_SM_SCRIPTING
&smjs_scripting_module,
#endif
NULL,

View File

@ -272,7 +272,7 @@ file_read_line(unsigned char *line, size_t *size, FILE *file, int *lineno)
int
safe_mkstemp(unsigned char *template)
{
mode_t saved_mask = umask(0177);
mode_t saved_mask = umask(S_IXUSR | S_IRWXG | S_IRWXO);
int fd = mkstemp(template);
umask(saved_mask);
@ -321,12 +321,12 @@ stat_mode(struct string *string, struct stat *stp)
unsigned char rwx[10] = "---------";
if (stp) {
int mode = stp->st_mode;
int shift;
mode_t mode = stp->st_mode;
unsigned int shift;
/* Set permissions attributes for user, group and other */
for (shift = 0; shift <= 6; shift += 3) {
int m = mode << shift;
mode_t m = mode << shift;
if (m & S_IRUSR) rwx[shift + 0] = 'r';
if (m & S_IWUSR) rwx[shift + 1] = 'w';
@ -607,7 +607,7 @@ mkalldirs(const unsigned char *path)
p[pos] = 0;
ret = mkdir(p, S_IREAD | S_IWRITE | S_IEXEC);
ret = mkdir(p, S_IRWXU);
p[pos] = separator;

View File

@ -68,8 +68,8 @@ enum secsave_errno secsave_errno = SS_ERR_NONE;
/* Open a file for writing in a secure way. It returns a pointer to a structure
* secure_save_info on success, or NULL on failure. */
struct secure_save_info *
secure_open(unsigned char *file_name, mode_t mask)
static struct secure_save_info *
secure_open_umask(unsigned char *file_name, mode_t mask)
{
mode_t saved_mask;
struct stat st;
@ -203,6 +203,11 @@ end:
return NULL;
}
struct secure_save_info *
secure_open(unsigned char *file_name)
{
return secure_open_umask(file_name, S_IXUSR | S_IRWXG | S_IRWXO);
}
/* Close a file opened with secure_open, and return 0 on success, errno
* or -1 on failure. */

View File

@ -31,7 +31,8 @@ struct secure_save_info {
int secure_save; /* use secure save for this file */
};
struct secure_save_info *secure_open(unsigned char *, mode_t);
struct secure_save_info *secure_open(unsigned char *);
int secure_close(struct secure_save_info *);
int secure_fputs(struct secure_save_info *, const char *);