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