3 #ifndef EL__DOTDOT_FEATURE_H
4 #define EL__DOTDOT_FEATURE_H
6 /* This file contains various compile-time configuration settings, which you
7 * can adjust below. You can fine-tune the ELinks binary to include really only
8 * what you want it to. There are still some things which are to be adjusted
9 * only directly through the ./configure script arguments though, so check
10 * ./configure --help out as well! */
14 * The "/" "*" and "*" "/" sequences start/end comments in this file. The
15 * features are controlled by using the "#define FEATURE" command. If it is
16 * commented out, it means the feature is disabled, otherwise it is enabled.
17 * Therefore, if the default doesn't suit you, you can either comment it out
18 * or remove the comment marks. */
22 * Please strive to keep the format of all entries uniform, it will make it
23 * easier for us as well as for the users. Do not forget to accurately describe
24 * the feature and also the impact of enabling/disabling it. Follow the format
25 * of existing comments. Follow the example of XBEL when adding features which
26 * also need some detection in configure.in.
28 * Not everything is suitable for an entry in this file, maybe it would be
29 * happier directly in the configure.in. Basically, if it is going to have the
30 * commandline argument in ./configure anyway (the M4 macro expansion does it,
31 * like --with-x or --without-nls), do not add it here. If it is really purely
32 * question of system support (X2, HAVE_SA_STORAGE), and it makes no sense for
33 * the user to touch it, do not include it here.
35 * Also, use your common sense. (Not that I would trust it that much... ;-))
42 * These are the tiny LED-like indicators, shown at the bottom-right of the
43 * screen as [-----]. They are used for indication of various states, ie.
44 * whether you are currently talking through a SSL-secured connection.
46 * This is rather a fancy thing, and it doesn't do anything actually useful yet
49 * Default: disabled */
51 /* #define CONFIG_LEDS */
56 * ELinks has built-in hiearchic bookmarks support. Open the bookmarks manager
57 * by pressing 's'. When bookmarks are enabled, also support for the internal
58 * ELinks bookmarks format is always compiled in.
60 * This is a favourite target for disabling in various embedded applications.
61 * It all depends on your requirements.
65 #define CONFIG_BOOKMARKS
70 * ELinks also supports universal XML bookmarks format called XBEL, also
71 * supported by ie. Galeon, various "always-have-my-bookmarks" websites and
72 * number of universal bookmark convertors.
74 * Frequently, you know you will not need it, then you can of course happily
75 * forcibly remove support for it and save few bytes.
77 * Default: enabled if libexpat (required library) found and bookmarks are
80 #if defined(HAVE_LIBEXPAT) && defined(CONFIG_BOOKMARKS)
81 /* Comment out the following line if you want to always have this disabled: */
82 #define CONFIG_XBEL_BOOKMARKS
88 * Support for HTTP cookies --- a data token which the server sends the client
89 * once and then the client sends it back along each request to the server.
90 * This mechanism is crucial for ie. keeping HTTP sessions (you "log in" to a
91 * site, and from then on the site recognizes you usually because of the
92 * cookie), but also for various banner systems, remembering values filled to
93 * various forms, and so on. You can further tune the ELinks behaviour at
94 * runtime (whether to accept/send cookies, ask for confirmation when accepting
97 * This functionality is usually quite important and you should not disable it
98 * unless you really know what are you doing.
100 * Default: enabled */
102 #define CONFIG_COOKIES
107 * This device records each and every page you visit (to a configurable limit).
108 * You can browse through this history in the history manager (press 'h'). Do
109 * not confuse this with the "session history", recording history of your
110 * browsing in the frame of one session (session history is the thing you move
111 * through when pressing 'back' and 'unback' or which you see in the
112 * File::History menu).
114 * Global history does not care about the order you visited the pages in, it
115 * just records that you visited it, when did you do that and the title of the
116 * page. Then, you can see when did you visit a link last time (and what was
117 * the title of the target document at that time), links can be coloured as
120 * If you disable this feature, you will not lose any crucial functionality,
121 * just some relatively minor convenience features, which can nevertheless
122 * prove sometimes very practical.
124 * Default: enabled */
126 #define CONFIG_GLOBHIST
132 * The goto dialog through which new URIs can be entered is an essential part
133 * of browsing in ELinks. This feature makes the dialog more powerful by making
134 * it possible to extend how entered text is handled through a set of rewrite
135 * rules (see protocol.rewrite options).
137 * There are two types of rules: simple and smart ones.
139 * Simple rewriting rules are basicly URI abbreviations, making it possible to
140 * map a word to the full URI. They can also be used for hierarchic navigation
141 * to ease moving from some nested directory to the parent directory or doing
142 * other stuff with the current URI. For example, when you type 'gg' into the
143 * goto dialog, you will be materialized at Google's homepage.
145 * Smart rules can take arguments and therefore enable more advanced rewriting.
146 * The arguments could be search words to google for or a lookup query for a
147 * dictionary. Eg. type 'gg:Petr Baudis king of ELinks cvs'.
149 * This feature is also available in a more powerful form in the Lua and Guile
150 * extensions, so if you plan to or already use those, you won't miss anything
151 * by disabling this feature (besides easier and better integrated
154 * Default: enabled */
156 #define CONFIG_URI_REWRITE
162 * ELinks uses a MIME system for determining the content type of documents and
163 * configuring programs for external handling. By default the option system can
164 * be used to configure how media types are handled. More info about how to set
165 * up the MIME handling using the option system can be found in the
166 * doc/mime.html file.
168 * Below are listed some additional ways to do it. */
172 * Mailcap files describe what program - on the local system - can be used to
173 * handle a media type. The file format is defined in RFC 1524 and more info
174 * including examples can be found in the doc/mailcap.html file.
176 * This is very useful especially for clean interoperability with other
177 * MIME-aware applications and fitting nicely into the UNIX system, where this
178 * is the standard way of specifying MIME handlers. If you are not interested
179 * in that, you can still use the internal MIME associations system, though.
181 * Default: enabled */
183 #define CONFIG_MAILCAP
187 * Mimetypes file can be used to specify the relation between media types and
190 * Basically same thing applies here as for the mailcap support.
192 * Default: enabled */
194 #define CONFIG_MIMETYPES
198 /*** 256 Colors in Terminals
200 * Define to add support for using 256 colors in terminals. Note that this
201 * requires a capable terminal emulator, such as:
203 * - Thomas Dickey's XTerm, version 111 or later (check which version you have
204 * with xterm -version) compiled with --enable-256-color.
206 * - Recent versions of PuTTY also have some support for 256 colors.
208 * You will still need to enable this at runtime for a given terminal in
209 * terminal options, or set your $TERM variable to xterm-256color - then,
210 * ELinks will automatically configure itself to make use of all the available
211 * terminal features, while still acting sensibly when you happen to run it in
212 * an xterm w/o the 256 colors support.
214 * When enabled, the memory usage is somewhat increased even when running in
215 * mono and 16 colors mode (the memory consumption can be especially remarkable
216 * when rendering very large documents and/or using very large terminals).
217 * However, when you actually run it in the suitable terminal, it looks really
218 * impressive, I'd say marvelous!
220 * Default: disabled */
222 /* #define CONFIG_256_COLORS */
225 /*** Backtrace Printing
227 * Once upon a time, a disaster happens and ELinks crashes. That is a very sad
228 * event and it would be very nice to have some means how to diagnose it. In
229 * the crash handler, ELinks prints out various helpful things, however the
230 * truly important information is _where_ did it crash. Usually, users do not
231 * have gdb installed and can't provide a backtrace. However, ELinks can print
232 * a backtrace on its own, if the system supports it (currently, it is
233 * implemented only for glibc). It is not always accurate, it is useless when
234 * the ELinks binary is stripped and it still misses a lot of important
235 * information, but it can be sometimes still an indispensable help for the
238 * You should keep this, unless you will strip your ELinks binary anyway, you
239 * know you are not going to report back any failures and you care about each
242 * Default: enabled if the libc supports it (only glibc) */
244 #ifdef CONFIG_BACKTRACE
245 /* Uncomment the following line if you want to always have this disabled: */
246 /* #undef CONFIG_BACKTRACE */
250 /*** Disable Root User
252 * Browsers are scary monsters used for traveling around in an even more scary
253 * world where people indifferently throw garbage files at you and threaten
254 * your perfect world. Altho' ELinks is a small monster compared to most
255 * browsers, it can still bite your head off and some might consider running it
256 * as the root user extremely dangerous. To prevent such usage simply enable
259 * Default: disabled */
261 #if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
262 /* Uncomment the following line if you want to enable this: */
263 /* #define CONFIG_NO_ROOT_EXEC */
269 * The famous Competing Browser has that annoying thing which pops up when you
270 * submit a form, offering to remember it and pre-fill it the next time. And
271 * yes, ELinks can do that too! You will still need to also enable this manualy
272 * at document.browse.forms.show_formhist.
274 * Many people find it extremely annoying (including pasky), however some
275 * others consider it extremely handy and will sacrifice almost anything to get
276 * it. It will not do any harm to have this compiled-in as long as you will
277 * leave it turned off (which is also the default configuration).
279 * Default: enabled */
281 #define CONFIG_FORMHIST
286 * ELinks may be controlled not only by keyboard, but also by mouse to quite
287 * some extent. You can select links, menu items, scroll document, click at
288 * buttons etc, and it should hopefully work. ELinks supports mouse control by
289 * GPM, xterm mouse reporting and TWAIN's twterm mouse reporting.
291 * It is generally nice convience and doesn't cost too much. However, you can
292 * do everything with keyboard as you can with mouse. Also note that the xterm
293 * mouse reporting takes control over the terminal so that copy and pasting
294 * text from and to ELinks has to be done by holding down the Shift key.
296 * Default: enabled */
301 /*** Local CGI Support
303 * ELinks can (like w3m or lynx) execute certain executable files stored on the
304 * local disks as CGIs, when you target it on them (through a URI of the 'file'
305 * scheme). ELinks emulates the complete CGI environment, like the program
306 * would be executed by a web server. See the protocol.file.cgi options tree
307 * for detailed runtime configuration.
309 * Some people just write their bookmark managment application as perl CGI
310 * script and then access it from the web browser using this feature, not
311 * needing any web server or so. Therefore, this is a great possible way to
312 * extended the browser capabilities.
314 * Even when you compile this in, you need to enable this yet in the
315 * configuration, and even then only CGI files passing certain user-defined
316 * filters (path-based) will be allowed to be executed (and there are certain
317 * other security barriers in place).
319 * Default: disabled */
322 /* Uncomment the following line if you want to enable this: */
323 /* #define CONFIG_CGI */
327 /*** SMB Protocol Support
329 * ELinks supports browsing over the SMB protocol (URI 'smb' scheme), using the
330 * smbclient program as backend. Therefore, in order to have this enabled, you
331 * will need to install Samba (or at least just the smbclient part, if you can
332 * install it separately).
334 * Default: enabled if smbclient will be found */
337 /* Uncomment the following line if you want to always have this disabled: */
338 /* #undef CONFIG_SMB */