config: Report errors before the line number is lost.
[elinks.git] / features.conf
blobad253c54980bcfac55a61aed3ad657e1d6a82066
1 ### Feature configuration file
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.
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!
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.
18 ### Notes for users
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.
23 # '#' chars start a comment that runs until the end of the line.
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:
29 #       CONFIG_BOOKMARKS=no
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.
35 ### Notes for developers
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.
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.
48 # Also, use your common sense. (Not that I would trust it that much... ;-))
49 # --pasky
53 ### Bookmarks
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.
59 # This is a favourite target for disabling in various embedded applications.
60 # It all depends on your requirements.
62 # Also read the ``The Ultimate Bookmarks Guide'' in doc/bookmarks.txt
64 # Default: enabled
66 CONFIG_BOOKMARKS=yes
69 ### XBEL Bookmarks
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.
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.
78 # Default: enabled if libexpat is found and bookmarks are enabled
80 CONFIG_XBEL_BOOKMARKS=yes
83 ### Cookies
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).
93 # This functionality is usually quite important and you should not disable it
94 # unless you really know what are you doing.
96 # Default: enabled
98 CONFIG_COOKIES=yes
101 ### Form History
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.
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).
113 # Default: enabled
115 CONFIG_FORMHIST=yes
118 ### Global History
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).
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.
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.
136 # Default: enabled
138 CONFIG_GLOBHIST=yes
141 ### MIME
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.
149 # Below are listed some additional ways to do it.
151 ### Mailcap
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.
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.
162 # Default: enabled
164 CONFIG_MAILCAP=yes
166 ### Mimetypes File
168 # Mimetypes file can be used to specify the relation between media types and
169 # file extensions.
171 # Basically same thing applies here as for the mailcap support.
173 # Default: enabled
175 CONFIG_MIMETYPES=yes
178 ### IPv6 Protocol Support
180 # You know this thing that was designed to obsolete IPv4 but only pasky,
181 # weirdos and projects supported with big funds really use. ;-)
183 # Default: enabled if the system supports it
185 CONFIG_IPV6=yes
188 ### URI Rewriting
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).
195 # There are two types of rules: simple and smart ones.
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.
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'.
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).
211 # Default: enabled
213 CONFIG_URI_REWRITE=yes
216 ### BitTorrent Protocol Support
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).
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.
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:"
234 # NOTE: The BitTorrent support is still experimental.
236 # Default: disabled
238 CONFIG_BITTORRENT=no
241 ### Local CGI Support
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.
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.
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).
259 # Default: disabled, available if setenv() or putenv() is found
261 CONFIG_CGI=no
264 ### Data URI protocol
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.
269 # A data URL might be used for arbitrary types of data. The URI
271 #       data:,A%20brief%20note
273 # encodes the text/plain string "A brief note", which might be useful in a
274 # footnote link.
276 # Default: enabled
278 CONFIG_DATA=yes
281 ### Finger User Information Protocol Support
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.
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.
296 # Default: disabled
298 CONFIG_FINGER=no
300 ### File Service Protocol
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.
308 # FSP is what anonymous FTP *should* be!
310 # See http://fsp.sourceforge.net/ for more info.
312 # Default: disabled
314 CONFIG_FSP=no
316 ### File Transfer Protocol Support
318 # The File Transfer Protocol (FTP) is a software standard for transferring
319 # computer files between machines with widely different operating systems.
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.
328 # See also http://en.wikipedia.org/wiki/Ftp .
330 # Default: enabled
332 CONFIG_FTP=yes
335 ### Gopher Protocol Support
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.
344 # The support works much like local file browsing with directories (aka. menus)
345 # and various file types that can be downloaded and viewed.
347 # It is still very experimental and the CSO phone-book protocol is not
348 # implemented.
350 # Default: disabled
352 CONFIG_GOPHER=no
355 ### NNTP Protocol Support
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''.
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.
364 # Default: disabled
366 CONFIG_NNTP=no
369 ### SMB Protocol Support
371 # ELinks supports browsing over the SMB protocol (URI 'smb' scheme),
372 # using the libsmbclient library as back-end.  Therefore, in order to
373 # have this enabled, you will need to install Samba (or at least just
374 # the libsmbclient part, if you can install it separately).
376 # This use of libsmbclient is believed to be immune to the command
377 # injection attacks (CVE-2006-5925, bug 841) from which earlier ELinks
378 # releases (0.9.0 to 0.11.1) suffered.
380 # Default: disabled
382 CONFIG_SMB=no
385 ### Cascading Style Sheets
387 # Simplistic CSS support. It is still very much in it's infancy so don't expect
388 # too much. If you have use of background colors enabled more pages will have
389 # the intended background color. Also quite a few additional text attributes are
390 # applied. One example is highlighting of search words on Google's cached pages.
392 # There are options to disable both imported style sheets to minimize network
393 # traffic and whether to use CSS at all. Also a default style sheet can be
394 # defined to control the basic layout in the HTML renderer.
396 # Default: enabled
398 CONFIG_CSS=yes
401 ### HTML Highlighting
403 # Makes it possible to view HTML source with the markup highlighted in colors
404 # configurable using CSS. It also makes values of referencing attributes
405 # accessible like the href="<uri>" attribute in <a> elements.
407 # The HTML highlighting uses components of an experimental DOM implementation
408 # still in progress so enabling this feature will add a considerable amount of
409 # code to the compiled binary. On the other hand it will help to debug what will
410 # hopefully evolve into the next generation document renderer.
412 # Default: disabled, requires that CSS is enabled
414 CONFIG_HTML_HIGHLIGHT=no
417 ### ECMAScript (JavaScript) Browser Scripting
419 # By enabling this feature, certain parts of ELinks, such as the goto URL
420 # dialog, may be extended using ECMAScript (aka. JavaScript) scripts. This can
421 # be useful to optimise your usage of ELinks.
423 # For example you can define shortcuts (or abbreviations) for URLs of sites you
424 # often visit by having a goto URL hook expand them. This can also be achieved
425 # with the URI rewrite feature (CONFIG_URI_REWRITE), however it is not as
426 # powerful as doing it with scripting.
428 # Default: enabled if Spidermonkey is found
430 CONFIG_SCRIPTING_SPIDERMONKEY=yes
433 ### Mouse Support
435 # ELinks may be controlled not only by keyboard, but also by mouse to quite some
436 # extent. You can select links, menu items, scroll document, click at buttons
437 # etc, and it should hopefully work. ELinks supports mouse control by GPM, xterm
438 # mouse reporting and TWAIN's twterm mouse reporting.
440 # It is generally nice convenience and doesn't cost too much. However, you can
441 # do everything with keyboard as you can with mouse. Also note that the xterm
442 # mouse reporting takes control over the terminal so that copy and pasting text
443 # from and to ELinks has to be done by holding down the Shift key.
445 # Default: enabled
447 CONFIG_MOUSE=yes
450 ### 88 Colors in Terminals
452 # Define to add support for using 88 colors in terminals. Note that this
453 # requires a capable terminal emulator, such as:
455 # - Thomas Dickey's XTerm, version 111 or later (check which version you have
456 #   with xterm -version) compiled with --enable-88-color.
458 # - Rxvt, version 2.7.9 or later compiled with --enable-88-color.
460 # You will still need to enable this at runtime for a given terminal in terminal
461 # options, or set your $TERM variable to xterm-88color - then, ELinks will
462 # automatically configure itself to make use of all the available terminal
463 # features, while still acting sensibly when you happen to run it in an xterm
464 # w/o the 88 colors support.
466 # When enabled, the memory usage is somewhat increased even when running in mono
467 # and 16 colors mode (the memory consumption can be especially remarkable when
468 # rendering very large documents and/or using very large terminals).  However,
469 # when you actually run it in the suitable terminal, it looks really impressive,
470 # I'd say marvelous!
472 # Default: disabled
474 CONFIG_88_COLORS=no
476 ### 256 Colors in Terminals
478 # Define to add support for using 256 colors in terminals. Note that this
479 # requires a capable terminal emulator, such as:
481 # - Thomas Dickey's XTerm, version 111 or later (check which version you have
482 #   with xterm -version) compiled with --enable-256-color.
484 # - Rxvt, version 2.7.9 or later compiled with --enable-256-color.
486 # - Recent versions of PuTTY also have some support for 256 colors.
488 # You will still need to enable this at runtime for a given terminal in terminal
489 # options, or set your $TERM variable to xterm-256color - then, ELinks will
490 # automatically configure itself to make use of all the available terminal
491 # features, while still acting sensibly when you happen to run it in an xterm
492 # w/o the 256 colors support.
494 # When enabled, the memory usage is somewhat increased even when running in mono
495 # and 16 colors mode (the memory consumption can be especially remarkable when
496 # rendering very large documents and/or using very large terminals).  However,
497 # when you actually run it in the suitable terminal, it looks really impressive,
498 # I'd say marvelous!
500 # Default: disabled
502 CONFIG_256_COLORS=no
504 ### True color
506 # Define to add support for True color. Note that only terminal capable to show
507 # it is konsole from kdebase-3.5.4. This mode eats a lot of memory.
509 # Default: disabled
511 CONFIG_TRUE_COLOR=no
513 ### Ex-mode Interface
515 # The ex-mode interface makes a prompt available when pressing ':'. The prompt
516 # can be used for entering actions like ':goto-url' and configuration file
517 # commands.
519 # The code is still very experimental and lacks much work such as tab
520 # completion.
522 # Default: disabled
524 CONFIG_EXMODE=no
527 ### LEDs
529 # These are the tiny LED-like indicators, shown at the bottom-right of the
530 # screen as [-----]. They are used for indication of various states, e.g.
531 # whether you are currently talking through a SSL-secured connection,
532 # what is the current input mode (normal or insert), JavaScript errors etc.
534 # Default: enabled
536 CONFIG_LEDS=yes
539 ### Document Marks
541 # Makes it possible to set marks in a document and then later jump to them kind
542 # of like how fragments in URIs work. It is currently only possible to jump to
543 # marks set in the current document.
545 # Default: enabled
547 CONFIG_MARKS=yes
550 ### Debug mode
552 # Assertions are evaluated and will core dump on failure. Some extra sanity
553 # checks are done, and some errors will cause core dump instead of just a
554 # message. Internal memory leak detection is activated (memory usage will grow),
555 # and every allocation/reallocation/free operations will be slower due to extra
556 # tests. Lists sanity checks are enabled, so list operations are slower. Hot-key
557 # debugging is enabled, it highlights redundant hot-keys in a menu.
559 # This option should be _always_ used by beta testers and developers, it helps
560 # to detect many issues. Binary packages maintainers should not use this option
561 # in normal situation.
563 # Default: disabled
565 CONFIG_DEBUG=no
568 ### Fast mode
570 # This option provides a way to generate a faster and smaller binary of a
571 # _stable_ version of ELinks. Please do not use it with unstable releases
572 # (unless memory footprint, performance and/or binary size are major issues for
573 # you).
575 # It disables all assertion tests and sanity checks effectively reducing safety.
576 # It disables internal memory allocation routines, directly calling libc
577 # functions (so it's much faster, but memory allocation issues and memory leaks
578 # will be not detected). It defines fmem_alloc(), and fmem_free() to be in fact
579 # alloca() and nothing, providing much faster allocations in routines where they
580 # are used
582 # Default: disabled
584 CONFIG_FASTMEM=no
587 ### Own C library functions
589 # Enable this to use the various C library stub functions that is part of the
590 # portability layer instead of those available in the C library on the system.
592 # It will make the binary slightly bigger and should only be used for testing
593 # the portability layer.
595 # Default: disabled
597 CONFIG_OWN_LIBC=no
600 ### Small binary
602 # Reduces the size of the binary but also disables a few memory consuming
603 # optimizations to make the program much lighter when running.
605 # Part of the size reduction is due to various help text not being compiled in
606 # which will affect usability. Also the disabled optimization will make ELinks
607 # run slower.
609 # See doc/small.txt for more information about how to reduce the size of ELinks.
611 # Default: disabled
613 CONFIG_SMALL=no
616 ### Unicode UTF-8 support
618 # By enabling this option you get better Unicode support. At present only some
619 # parts of ELinks are influenced with this. It includes DOM, plain, HTML
620 # renderer and user interface. Beside normal Unicode characters there is
621 # support for double-width characters (like Japanese, etc.).
623 # Some features of Unicode are not handled at all. Combining characters is
624 # most visible absence.
625 # Some features are partially supported. Like line breaking between
626 # double-width characters. There is no other detection for determining when to
627 # break or not.
628 # Character conversions are still incomplete for ECMAScript strings (bug 805),
629 # local file names, and IRIs (RFC 3987).
631 # Default: enabled
633 CONFIG_UTF8=yes
637 ### Back-trace Printing
639 # Once upon a time, a disaster happens and ELinks crashes. That is a very sad
640 # event and it would be very nice to have some means how to diagnose it. In the
641 # crash handler, ELinks prints out various helpful things, however the truly
642 # important information is _where_ did it crash. Usually, users do not have gdb
643 # installed and can't provide a back-trace. However, ELinks can print a
644 # back-trace on its own, if the system supports it (currently, it is implemented
645 # only for glibc). It is not always accurate, it is useless when the ELinks
646 # binary is stripped and it still misses a lot of important information, but it
647 # can be sometimes still an indispensable help for the developers.
649 # You should keep this, unless you will strip your ELinks binary anyway, you
650 # know you are not going to report back any failures and you care about each
651 # single wasted bit.
653 # Default: enabled if the libc supports it (only glibc)
655 CONFIG_BACKTRACE=yes
658 ### Disable Root User
660 # Browsers are scary monsters used for traveling around in an even more scary
661 # world where people indifferently throw garbage files at you and threaten your
662 # perfect world. Altho' ELinks is a small monster compared to most browsers, it
663 # can still bite your head off and some might consider running it as the root
664 # user extremely dangerous. To prevent such usage simply enable this feature.
666 # Default: disabled
668 CONFIG_NO_ROOT_EXEC=no
671 # vim: filetype=sh textwidth=80