~ubuntu-branches/ubuntu/feisty/elinks/feisty-updates

« back to all changes in this revision

Viewing changes to feature.h

  • Committer: Bazaar Package Importer
  • Author(s): Peter Gervai
  • Date: 2004-01-21 22:13:45 UTC
  • Revision ID: james.westby@ubuntu.com-20040121221345-ju33hai1yhhqt6kn
Tags: upstream-0.9.1
ImportĀ upstreamĀ versionĀ 0.9.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $Id: feature.h,v 1.33 2004/01/01 16:34:41 jonas Exp $ */
 
2
 
 
3
#ifndef EL__DOTDOT_FEATURE_H
 
4
#define EL__DOTDOT_FEATURE_H
 
5
 
 
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! */
 
11
 
 
12
/* For users:
 
13
 *
 
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. */
 
19
 
 
20
/* For developers:
 
21
 *
 
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.
 
27
 *
 
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.
 
34
 *
 
35
 * Also, use your common sense. (Not that I would trust it that much... ;-))
 
36
 * --pasky */
 
37
 
 
38
 
 
39
 
 
40
/*** LEDs
 
41
 *
 
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.
 
45
 *
 
46
 * This is rather a fancy thing, and it doesn't do anything actually useful yet
 
47
 * anyway.
 
48
 *
 
49
 * Default: disabled */
 
50
 
 
51
/* #define CONFIG_LEDS */
 
52
 
 
53
 
 
54
/*** Bookmarks
 
55
 *
 
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.
 
59
 *
 
60
 * This is a favourite target for disabling in various embedded applications.
 
61
 * It all depends on your requirements.
 
62
 *
 
63
 * Default: enabled */
 
64
 
 
65
#define CONFIG_BOOKMARKS
 
66
 
 
67
 
 
68
/*** XBEL Bookmarks
 
69
 *
 
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.
 
73
 *
 
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.
 
76
 *
 
77
 * Default: enabled if libexpat (required library) found and bookmarks are
 
78
 * enabled */
 
79
 
 
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
 
83
#endif
 
84
 
 
85
 
 
86
/*** Cookies
 
87
 *
 
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
 
95
 * a cookie etc).
 
96
 *
 
97
 * This functionality is usually quite important and you should not disable it
 
98
 * unless you really know what are you doing.
 
99
 *
 
100
 * Default: enabled */
 
101
 
 
102
#define CONFIG_COOKIES
 
103
 
 
104
 
 
105
/*** Global History
 
106
 *
 
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).
 
113
 *
 
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
 
118
 * visited etc.
 
119
 *
 
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.
 
123
 *
 
124
 * Default: enabled */
 
125
 
 
126
#define CONFIG_GLOBHIST
 
127
 
 
128
 
 
129
 
 
130
/*** URI Rewriting
 
131
 *
 
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).
 
136
 *
 
137
 * There are two types of rules: simple and smart ones.
 
138
 *
 
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.
 
144
 *
 
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'.
 
148
 *
 
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
 
152
 * configuration).
 
153
 *
 
154
 * Default: enabled */
 
155
 
 
156
#define CONFIG_URI_REWRITE
 
157
 
 
158
 
 
159
 
 
160
/*** MIME
 
161
 *
 
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.
 
167
 *
 
168
 * Below are listed some additional ways to do it. */
 
169
 
 
170
/*** Mailcap
 
171
 *
 
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.
 
175
 *
 
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.
 
180
 *
 
181
 * Default: enabled */
 
182
 
 
183
#define CONFIG_MAILCAP
 
184
 
 
185
/*** Mimetypes File
 
186
 *
 
187
 * Mimetypes file can be used to specify the relation between media types and
 
188
 * file extensions.
 
189
 *
 
190
 * Basically same thing applies here as for the mailcap support.
 
191
 *
 
192
 * Default: enabled */
 
193
 
 
194
#define CONFIG_MIMETYPES
 
195
 
 
196
 
 
197
 
 
198
/*** 256 Colors in Terminals
 
199
 *
 
200
 * Define to add support for using 256 colors in terminals. Note that this
 
201
 * requires a capable terminal emulator, such as:
 
202
 *
 
203
 * - Thomas Dickey's XTerm, version 111 or later (check which version you have
 
204
 *   with xterm -version) compiled with --enable-256-color.
 
205
 *
 
206
 * - Recent versions of PuTTY also have some support for 256 colors.
 
207
 *
 
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.
 
213
 *
 
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!
 
219
 *
 
220
 * Default: disabled */
 
221
 
 
222
/* #define CONFIG_256_COLORS */
 
223
 
 
224
 
 
225
/*** Backtrace Printing
 
226
 *
 
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
 
236
 * developers.
 
237
 *
 
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
 
240
 * single wasted bit.
 
241
 *
 
242
 * Default: enabled if the libc supports it (only glibc) */
 
243
 
 
244
#ifdef CONFIG_BACKTRACE
 
245
/* Uncomment the following line if you want to always have this disabled: */
 
246
/* #undef CONFIG_BACKTRACE */
 
247
#endif
 
248
 
 
249
 
 
250
/*** Disable Root User
 
251
 *
 
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
 
257
 * this feature.
 
258
 *
 
259
 * Default: disabled */
 
260
 
 
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 */
 
264
#endif
 
265
 
 
266
 
 
267
/*** Form History
 
268
 *
 
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.
 
273
 *
 
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).
 
278
 *
 
279
 * Default: enabled */
 
280
 
 
281
#define CONFIG_FORMHIST
 
282
 
 
283
 
 
284
/*** Mouse Support
 
285
 *
 
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.
 
290
 *
 
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.
 
295
 *
 
296
 * Default: enabled */
 
297
 
 
298
#define CONFIG_MOUSE
 
299
 
 
300
 
 
301
/*** Local CGI Support
 
302
 *
 
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.
 
308
 *
 
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.
 
313
 *
 
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).
 
318
 *
 
319
 * Default: disabled */
 
320
 
 
321
#ifdef HAVE_SETENV
 
322
/* Uncomment the following line if you want to enable this: */
 
323
/* #define CONFIG_CGI */
 
324
#endif
 
325
 
 
326
 
 
327
/*** SMB Protocol Support
 
328
 *
 
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).
 
333
 *
 
334
 * Default: enabled if smbclient will be found */
 
335
 
 
336
#ifdef CONFIG_SMB
 
337
/* Uncomment the following line if you want to always have this disabled: */
 
338
/* #undef CONFIG_SMB */
 
339
#endif
 
340
 
 
341
 
 
342
#endif