1### Feature configuration file
2#
3# This file contains various compile-time configuration settings, which you can
4# adjust below. You can fine-tune the ELinks binary to include really only what
5# you want it to. It acts as a front-end to the configure script in the sense
6# that it is possible to control any features in this file by passing arguments
7# to the configure script. In fact any arguments given to the script will
8# overrule the values set in this file.
9#
10# There are still some things which are to be adjusted only directly through the
11# configure script arguments though, so check ./configure --help out as well!
12#
13# All dependency checking is done by the configure script so even though a
14# feature is enabled here it is possible that it will be disabled at compile
15# time if the dependencies are not met. Check the features.log file generated
16# by the configure script to make sure.
17
18### Notes for users
19#
20# All features that can be controlled using this file are already set to their
21# default values. The syntax used is hopefully familiar to most people.
22#
23# '#' chars start a comment that runs until the end of the line.
24#
25# The features are controlled by setting the various CONFIG_<FEATURE> variables
26# to either 'yes' or 'no' depending on whether it should be enabled or disabled.
27# So in order to disable bookmark support a line in this file should say:
28#
29#	CONFIG_BOOKMARKS=no
30#
31# It is also possible to simply comment out the line in order to disable it.
32# Therefore, if the default doesn't suit you, you can either comment it out or
33# set it to the value you desire.
34
35### Notes for developers
36#
37# Please strive to keep the format of all entries uniform, it will make it
38# easier for us as well as for the users. Do not forget to accurately describe
39# the feature and also the impact of enabling/disabling it. Follow the format of
40# existing comments. Follow the example of XBEL when adding features which also
41# need some detection in configure.in.
42#
43# Not everything is suitable for an entry in this file, maybe it would be
44# happier directly in the configure.in. If it is really purely question of
45# system support (X2, HAVE_SA_STORAGE), and it makes no sense for the user to
46# touch it, do not include it here.
47#
48# Also, use your common sense. (Not that I would trust it that much... ;-))
49# --pasky
50
51
52
53### Bookmarks
54#
55# ELinks has built-in hierarchic bookmarks support. Open the bookmarks manager
56# by pressing 's'. When bookmarks are enabled, also support for the internal
57# ELinks bookmarks format is always compiled in.
58#
59# This is a favourite target for disabling in various embedded applications.
60# It all depends on your requirements.
61#
62# Also read the ``The Ultimate Bookmarks Guide'' in doc/bookmarks.txt
63#
64# Default: enabled
65
66CONFIG_BOOKMARKS=yes
67
68
69### XBEL Bookmarks
70#
71# ELinks also supports universal XML bookmarks format called XBEL, also
72# supported by e.g. Galeon, various "always-have-my-bookmarks" websites and
73# number of universal bookmark converters.
74#
75# Frequently, you know you will not need it, then you can of course happily
76# forcibly remove support for it and save few bytes.
77#
78# Default: enabled if libexpat is found and bookmarks are enabled
79
80CONFIG_XBEL_BOOKMARKS=yes
81
82
83### Cookies
84#
85# Support for HTTP cookies --- a data token which the server sends the client
86# once and then the client sends it back along each request to the server.  This
87# mechanism is crucial e.g. for keeping HTTP sessions (you "log in" to a site,
88# and from then on the site recognizes you usually because of the cookie), but
89# also for various banner systems, remembering values filled to various forms,
90# and so on. You can further tune the ELinks behaviour at runtime (whether to
91# accept/send cookies, ask for confirmation when accepting a cookie etc).
92#
93# This functionality is usually quite important and you should not disable it
94# unless you really know what are you doing.
95#
96# Default: enabled
97
98CONFIG_COOKIES=yes
99
100
101### Form History
102#
103# The famous Competing Browser has that annoying thing which pops up when you
104# submit a form, offering to remember it and pre-fill it the next time. And yes,
105# ELinks can do that too! You will still need to also enable this manually at
106# document.browse.forms.show_formhist.
107#
108# Many people find it extremely annoying (including pasky), however some others
109# consider it extremely handy and will sacrifice almost anything to get it. It
110# will not do any harm to have this compiled-in as long as you will leave it
111# turned off (which is also the default configuration).
112#
113# Default: enabled
114
115CONFIG_FORMHIST=yes
116
117
118### Global History
119#
120# This device records each and every page you visit (to a configurable limit).
121# You can browse through this history in the history manager (press 'h').  Do
122# not confuse this with the "session history", recording history of your
123# browsing in the frame of one session (session history is the thing you move
124# through when pressing 'back' and 'unback' or which you see in the
125# File::History menu).
126#
127# Global history does not care about the order you visited the pages in, it just
128# records that you visited it, when did you do that and the title of the page.
129# Then, you can see when did you visit a link last time (and what was the title
130# of the target document at that time), links can be coloured as visited etc.
131#
132# If you disable this feature, you will not lose any crucial functionality, just
133# some relatively minor convenience features, which can nevertheless prove
134# sometimes very practical.
135#
136# Default: enabled
137
138CONFIG_GLOBHIST=yes
139
140
141### MIME
142#
143# ELinks uses a MIME system for determining the content type of documents and
144# configuring programs for external handling. By default the option system can
145# be used to configure how media types are handled. More info about how to set
146# up the MIME handling using the option system can be found in the doc/mime.html
147# file.
148#
149# Below are listed some additional ways to do it.
150
151### Mailcap
152#
153# Mailcap files describe what program - on the local system - can be used to
154# handle a media type. The file format is defined in RFC 1524 and more info
155# including examples can be found in the doc/mailcap.html file.
156#
157# This is very useful especially for clean interoperability with other
158# MIME-aware applications and fitting nicely into the UNIX system, where this is
159# the standard way of specifying MIME handlers. If you are not interested in
160# that, you can still use the internal MIME associations system, though.
161#
162# Default: enabled
163
164CONFIG_MAILCAP=yes
165
166### Mimetypes File
167#
168# Mimetypes file can be used to specify the relation between media types and
169# file extensions.
170#
171# Basically same thing applies here as for the mailcap support.
172#
173# Default: enabled
174
175CONFIG_MIMETYPES=yes
176
177
178### IPv6 Protocol Support
179#
180# You know this thing that was designed to obsolete IPv4 but only pasky,
181# weirdos and projects supported with big funds really use. ;-)
182#
183# Default: enabled if the system supports it
184
185CONFIG_IPV6=yes
186
187
188### URI Rewriting
189#
190# The goto dialog through which new URIs can be entered is an essential part of
191# browsing in ELinks. This feature makes the dialog more powerful by making it
192# possible to extend how entered text is handled through a set of rewrite rules
193# (see protocol.rewrite options).
194#
195# There are two types of rules: simple and smart ones.
196#
197# Simple rewriting rules are basically URI abbreviations, making it possible to
198# map a word to the full URI. They can also be used for hierarchic navigation to
199# ease moving from some nested directory to the parent directory or doing other
200# stuff with the current URI. For example, when you type 'gg' into the goto
201# dialog, you will be materialized at Google's homepage.
202#
203# Smart rules can take arguments and therefore enable more advanced rewriting.
204# The arguments could be search words to google for or a lookup query for a
205# dictionary. Eg. type 'gg:Petr Baudis king of ELinks cvs'.
206#
207# This feature is also available in a more powerful form in the Lua and Guile
208# extensions, so if you plan to or already use those, you won't miss anything by
209# disabling this feature (besides easier and better integrated configuration).
210#
211# Default: enabled
212
213CONFIG_URI_REWRITE=yes
214
215
216### BitTorrent Protocol Support
217#
218# The BitTorrent protocol is a protocol for distributing files in a peer-to-peer
219# (P2P) manner. It uses the HTTP protocol for communicating with a central
220# server and a peer-to-peer (P2P) protocol for exchanging file pieces betweens
221# peer downloaders. The integrity of file pieces downloaded from peers are
222# checked using cryptographic hashing (SHA1).
223#
224# Downloads using BitTorrent are started by first downloading a .torrent file
225# with the MIME type "application/x-bittorrent". The file contains information
226# which enables ELinks to ask a central server, called a tracker, for
227# information about other downloading peers and start downloading from and
228# uploading to them.
229#
230# At any time, an external handler can always be defined to take precedence of
231# the internal BitTorrent client and the internal client can always be forced
232# by prefixing the URI of the .torrent file with "bittorrent:"
233#
234# NOTE: The BitTorrent support is still experimental.
235#
236# Default: disabled
237
238CONFIG_BITTORRENT=no
239
240
241### Local CGI Support
242#
243# ELinks can (like w3m or lynx) execute certain executable files stored on the
244# local disks as CGIs, when you target it on them (through a URI of the 'file'
245# scheme). ELinks emulates the complete CGI environment, like the program would
246# be executed by a web server. See the protocol.file.cgi options tree for
247# detailed runtime configuration.
248#
249# Some people just write their bookmark management application as Perl CGI
250# script and then access it from the web browser using this feature, not needing
251# any web server or so. Therefore, this is a great possible way to extended the
252# browser capabilities.
253#
254# Even when you compile this in, you need to enable this yet in the
255# configuration, and even then only CGI files passing certain user-defined
256# filters (path-based) will be allowed to be executed (and there are certain
257# other security barriers in place).
258#
259# Default: disabled, available if setenv() or putenv() is found
260
261CONFIG_CGI=no
262
263
264### Data URI protocol
265#
266# The data URI protocol is defined in RFC 2397 and allows inclusion of small
267# data items as "immediate" data, as if it had been included externally.
268#
269# A data URL might be used for arbitrary types of data. The URI
270#
271#	data:,A%20brief%20note
272#
273# encodes the text/plain string "A brief note", which might be useful in a
274# footnote link.
275#
276# Default: enabled
277
278CONFIG_DATA=yes
279
280
281### Finger User Information Protocol Support
282#
283# The finger protocol is a simple protocol defined in RFC 1288. The server
284# return a friendly, human-oriented status report on either the system at the
285# moment or a particular person in depth such as whether a user is currently
286# logged-on, e-mail address, full name etc. As well as standard user
287# information, it displays the contents of ".plan" file in the user's home
288# directory. Often this file (maintained by the user) contained either useful
289# information about the user's current activities, or alternatively all manner
290# of humor.
291#
292# It is most often implemented on Unix or Unix-like systems however due to
293# security and privacy reasons it is usually disabled or only allowed locally on
294# the system.
295#
296# Default: disabled
297
298CONFIG_FINGER=no
299
300### File Service Protocol
301#
302# File Service Protocol (FSP) is a very lightweight UDP based protocol for
303# transferring files. FSP has many benefits over FTP, mainly for running
304# anonymous archives. FSP protocol is valuable in all kinds of environments
305# because it is one of the only TCP/IP protocols that is not aggressive about
306# bandwidth, while still being sufficiently fault tolerant.
307#
308# FSP is what anonymous FTP *should* be!
309#
310# See http://fsp.sourceforge.net/ for more info.
311#
312# Default: disabled
313
314CONFIG_FSP=no
315
316### File Transfer Protocol Support
317#
318# The File Transfer Protocol (FTP) is a software standard for transferring
319# computer files between machines with widely different operating systems.
320#
321# Many sites that run FTP servers enable so-called "anonymous ftp". Under
322# this arrangement, users do not need an account on the server. By default,
323# the account name for the anonymous access is 'anonymous'. This account
324# does not need a password, but users are commonly asked to send their email
325# addresses as their passwords for authentication (protocol.ftp.anon_passwd),
326# but there is no verification.
327#
328# See also http://en.wikipedia.org/wiki/Ftp .
329#
330# Default: enabled
331
332CONFIG_FTP=yes
333
334
335### Gopher Protocol Support
336#
337# Gopher is a distributed document search and retrieval network protocol
338# designed for the Internet in RFC 1436. The need for gopher arose in in the
339# early days of the hypertext Internet where the number of documents that were
340# being published in campus and research environments could not easily be
341# distributed using known protocols like FTP because these documents were stored
342# not in one place, but in many computers connected to the Internet.
343#
344# The support works much like local file browsing with directories (aka. menus)
345# and various file types that can be downloaded and viewed.
346#
347# It is still very experimental and the CSO phone-book protocol is not
348# implemented.
349#
350# Default: disabled
351
352CONFIG_GOPHER=no
353
354
355### NNTP Protocol Support
356#
357# Network news transport protocol support makes it possible to access nntp
358# and news servers and read postings. It is still very experimental and is
359# far from being considered a ``news reader''.
360#
361# It is possible to list news groups on a server, articles in a news group
362# and retrieve articles by their number or message-id.
363#
364# Default: disabled
365
366CONFIG_NNTP=no
367
368
369### SMB Protocol Support
370#
371# ELinks supports browsing over the SMB protocol (URI 'smb' scheme), using the
372# smbclient program as back-end. Therefore, in order to have this enabled, you
373# will need to install Samba (or at least just the smbclient part, if you can
374# install it separately).
375#
376# Unfortunately, ELinks doesn't yet properly validate the file name passed to
377# smbclient, and this caused vulnerability CVE-2006-5925 (bug 841).  To close
378# the vulnerability, configure.in now disables the SMB protocol regardless
379# of what you specify here.  If you want to use SMB, please wait for ELinks
380# 0.12.0 or see bug 844.
381#
382# Default: disabled
383
384CONFIG_SMB=no
385
386
387### Cascading Style Sheets
388#
389# Simplistic CSS support. It is still very much in it's infancy so don't expect
390# too much. If you have use of background colors enabled more pages will have
391# the intended background color. Also quite a few additional text attributes are
392# applied. One example is highlighting of search words on Google's cached pages.
393#
394# There are options to disable both imported style sheets to minimize network
395# traffic and whether to use CSS at all. Also a default style sheet can be
396# defined to control the basic layout in the HTML renderer.
397#
398# Default: enabled
399
400CONFIG_CSS=yes
401
402
403### HTML Highlighting
404#
405# Makes it possible to view HTML source with the markup highlighted in colors
406# configurable using CSS. It also makes values of referencing attributes
407# accessible like the href="<uri>" attribute in <a> elements.
408#
409# The HTML highlighting uses components of an experimental DOM implementation
410# still in progress so enabling this feature will add a considerable amount of
411# code to the compiled binary. On the other hand it will help to debug what will
412# hopefully evolve into the next generation document renderer.
413#
414# Default: disabled, requires that CSS is enabled
415
416CONFIG_HTML_HIGHLIGHT=no
417
418
419### ECMAScript (JavaScript) Browser Scripting
420#
421# By enabling this feature, certain parts of ELinks, such as the goto URL
422# dialog, may be extended using ECMAScript (aka. JavaScript) scripts. This can
423# be useful to optimise your usage of ELinks.
424#
425# For example you can define shortcuts (or abbreviations) for URLs of sites you
426# often visit by having a goto URL hook expand them. This can also be achieved
427# with the URI rewrite feature (CONFIG_URI_REWRITE), however it is not as
428# powerful as doing it with scripting.
429#
430# Default: enabled if Spidermonkey is found
431
432CONFIG_SM_SCRIPTING=yes
433
434
435### Mouse Support
436#
437# ELinks may be controlled not only by keyboard, but also by mouse to quite some
438# extent. You can select links, menu items, scroll document, click at buttons
439# etc, and it should hopefully work. ELinks supports mouse control by GPM, xterm
440# mouse reporting and TWAIN's twterm mouse reporting.
441#
442# It is generally nice convenience and doesn't cost too much. However, you can
443# do everything with keyboard as you can with mouse. Also note that the xterm
444# mouse reporting takes control over the terminal so that copy and pasting text
445# from and to ELinks has to be done by holding down the Shift key.
446#
447# Default: enabled
448
449CONFIG_MOUSE=yes
450
451
452### 88 Colors in Terminals
453#
454# Define to add support for using 88 colors in terminals. Note that this
455# requires a capable terminal emulator, such as:
456#
457# - Thomas Dickey's XTerm, version 111 or later (check which version you have
458#   with xterm -version) compiled with --enable-88-color.
459#
460# - Rxvt, version 2.7.9 or later compiled with --enable-88-color.
461#
462# You will still need to enable this at runtime for a given terminal in terminal
463# options, or set your $TERM variable to xterm-88color - then, ELinks will
464# automatically configure itself to make use of all the available terminal
465# features, while still acting sensibly when you happen to run it in an xterm
466# w/o the 88 colors support.
467#
468# When enabled, the memory usage is somewhat increased even when running in mono
469# and 16 colors mode (the memory consumption can be especially remarkable when
470# rendering very large documents and/or using very large terminals).  However,
471# when you actually run it in the suitable terminal, it looks really impressive,
472# I'd say marvelous!
473#
474# Default: disabled
475
476CONFIG_88_COLORS=no
477
478### 256 Colors in Terminals
479#
480# Define to add support for using 256 colors in terminals. Note that this
481# requires a capable terminal emulator, such as:
482#
483# - Thomas Dickey's XTerm, version 111 or later (check which version you have
484#   with xterm -version) compiled with --enable-256-color.
485#
486# - Rxvt, version 2.7.9 or later compiled with --enable-256-color.
487#
488# - Recent versions of PuTTY also have some support for 256 colors.
489#
490# You will still need to enable this at runtime for a given terminal in terminal
491# options, or set your $TERM variable to xterm-256color - then, ELinks will
492# automatically configure itself to make use of all the available terminal
493# features, while still acting sensibly when you happen to run it in an xterm
494# w/o the 256 colors support.
495#
496# When enabled, the memory usage is somewhat increased even when running in mono
497# and 16 colors mode (the memory consumption can be especially remarkable when
498# rendering very large documents and/or using very large terminals).  However,
499# when you actually run it in the suitable terminal, it looks really impressive,
500# I'd say marvelous!
501#
502# Default: disabled
503
504CONFIG_256_COLORS=no
505
506
507### Ex-mode Interface
508#
509# The ex-mode interface makes a prompt available when pressing ':'. The prompt
510# can be used for entering actions like ':goto-url' and configuration file
511# commands.
512#
513# The code is still very experimental and lacks much work such as tab
514# completion.
515#
516# Default: disabled
517
518CONFIG_EXMODE=no
519
520
521### LEDs
522#
523# These are the tiny LED-like indicators, shown at the bottom-right of the
524# screen as [-----]. They are used for indication of various states, e.g.
525# whether you are currently talking through a SSL-secured connection,
526# what is the current input mode (normal or insert), JavaScript errors etc.
527#
528# Default: enabled
529
530CONFIG_LEDS=yes
531
532
533### Document Marks
534#
535# Makes it possible to set marks in a document and then later jump to them kind
536# of like how fragments in URIs work. It is currently only possible to jump to
537# marks set in the current document.
538#
539# Default: enabled
540
541CONFIG_MARKS=yes
542
543
544### Debug mode
545#
546# Assertions are evaluated and will core dump on failure. Some extra sanity
547# checks are done, and some errors will cause core dump instead of just a
548# message. Internal memory leak detection is activated (memory usage will grow),
549# and every allocation/reallocation/free operations will be slower due to extra
550# tests. Lists sanity checks are enabled, so list operations are slower. Hot-key
551# debugging is enabled, it highlights redundant hot-keys in a menu.
552#
553# This option should be _always_ used by beta testers and developers, it helps
554# to detect many issues. Binary packages maintainers should not use this option
555# in normal situation.
556#
557# Default: disabled
558
559CONFIG_DEBUG=no
560
561
562### Fast mode
563#
564# This option provides a way to generate a faster and smaller binary of a
565# _stable_ version of ELinks. Please do not use it with unstable releases
566# (unless memory footprint, performance and/or binary size are major issues for
567# you).
568#
569# It disables all assertion tests and sanity checks effectively reducing safety.
570# It disables internal memory allocation routines, directly calling libc
571# functions (so it's much faster, but memory allocation issues and memory leaks
572# will be not detected). It defines fmem_alloc(), and fmem_free() to be in fact
573# alloca() and nothing, providing much faster allocations in routines where they
574# are used
575#
576# Default: disabled
577
578CONFIG_FASTMEM=no
579
580
581### Own C library functions
582#
583# Enable this to use the various C library stub functions that is part of the
584# portability layer instead of those available in the C library on the system.
585#
586# It will make the binary slightly bigger and should only be used for testing
587# the portability layer.
588#
589# Default: disabled
590
591CONFIG_OWN_LIBC=no
592
593
594### Small binary
595#
596# Reduces the size of the binary but also disables a few memory consuming
597# optimizations to make the program much lighter when running.
598#
599# Part of the size reduction is due to various help text not being compiled in
600# which will affect usability. Also the disabled optimization will make ELinks
601# run slower.
602#
603# See doc/small.txt for more information about how to reduce the size of ELinks.
604#
605# Default: disabled
606
607CONFIG_SMALL=no
608
609
610### Back-trace Printing
611#
612# Once upon a time, a disaster happens and ELinks crashes. That is a very sad
613# event and it would be very nice to have some means how to diagnose it. In the
614# crash handler, ELinks prints out various helpful things, however the truly
615# important information is _where_ did it crash. Usually, users do not have gdb
616# installed and can't provide a back-trace. However, ELinks can print a
617# back-trace on its own, if the system supports it (currently, it is implemented
618# only for glibc). It is not always accurate, it is useless when the ELinks
619# binary is stripped and it still misses a lot of important information, but it
620# can be sometimes still an indispensable help for the developers.
621#
622# You should keep this, unless you will strip your ELinks binary anyway, you
623# know you are not going to report back any failures and you care about each
624# single wasted bit.
625#
626# Default: enabled if the libc supports it (only glibc)
627
628CONFIG_BACKTRACE=yes
629
630
631### Disable Root User
632#
633# Browsers are scary monsters used for traveling around in an even more scary
634# world where people indifferently throw garbage files at you and threaten your
635# perfect world. Altho' ELinks is a small monster compared to most browsers, it
636# can still bite your head off and some might consider running it as the root
637# user extremely dangerous. To prevent such usage simply enable this feature.
638#
639# Default: disabled
640
641CONFIG_NO_ROOT_EXEC=no
642
643
644# vim: filetype=sh textwidth=80
645