diff options
-rw-r--r-- | CHANGES | 9 | ||||
-rw-r--r-- | WWW/Library/Implementation/HTTP.c | 17 | ||||
-rw-r--r-- | WWW/Library/Implementation/HTTP.h | 10 | ||||
-rw-r--r-- | docs/README.cookies | 60 | ||||
-rw-r--r-- | docs/README.options | 81 | ||||
-rw-r--r-- | docs/README.sslcerts | 54 | ||||
-rw-r--r-- | lynx.cfg | 14 | ||||
-rw-r--r-- | src/HTAlert.c | 4 | ||||
-rw-r--r-- | src/LYCurses.c | 4 | ||||
-rw-r--r-- | src/LYCurses.h | 4 | ||||
-rw-r--r-- | src/LYGlobalDefs.h | 3 | ||||
-rw-r--r-- | src/LYJustify.h | 6 | ||||
-rw-r--r-- | src/LYMain.c | 16 | ||||
-rw-r--r-- | src/LYOptions.c | 52 | ||||
-rw-r--r-- | src/LYReadCFG.c | 3 | ||||
-rw-r--r-- | src/LYrcFile.c | 3 | ||||
-rw-r--r-- | src/LYrcFile.h | 3 |
17 files changed, 264 insertions, 79 deletions
diff --git a/CHANGES b/CHANGES index 0c926cd2..4bb6da6d 100644 --- a/CHANGES +++ b/CHANGES @@ -1,8 +1,15 @@ --- $LynxId: CHANGES,v 1.382 2009/03/18 00:35:40 tom Exp $ +-- $LynxId: CHANGES,v 1.385 2009/04/07 22:43:52 tom Exp $ =============================================================================== Changes since Lynx 2.8 release =============================================================================== +2009-04-07 (2.8.7pre.2) +* add TNS SNI support for the OpenSSL configuration -Phil Pennock +* add docs/README.cookies and docs/README.options -Stefan Caunter +* update docs/README.sslcerts -Stefan Caunter +* add NO_PAUSE setting to lynx.cfg, .lynxrc and Options menu (request by + Stefan Caunter) -TD + 2009-03-17 (2.8.7pre.1) 2009-03-17 (2.8.7dev.14) * modify command-passing for Win32/DOS to use double-quotes -TD diff --git a/WWW/Library/Implementation/HTTP.c b/WWW/Library/Implementation/HTTP.c index 3d87d441..7d8e8601 100644 --- a/WWW/Library/Implementation/HTTP.c +++ b/WWW/Library/Implementation/HTTP.c @@ -1,5 +1,5 @@ /* - * $LynxId: HTTP.c,v 1.106 2009/03/10 15:31:22 tom Exp $ + * $LynxId: HTTP.c,v 1.107 2009/04/07 22:45:42 tom Exp $ * * HyperText Tranfer Protocol - Client implementation HTTP.c * ========================== @@ -59,7 +59,7 @@ struct _HTStream { HTStreamClass *isa; }; -BOOL reloading = FALSE; /* Reloading => send no-cache pragma to proxy */ +BOOLEAN reloading = FALSE; /* Reloading => send no-cache pragma to proxy */ char *redirecting_url = NULL; /* Location: value. */ BOOL permanent_redirection = FALSE; /* Got 301 status? */ BOOL redirect_post_content = FALSE; /* Don't convert to GET? */ @@ -661,10 +661,18 @@ static int HTLoadHTTP(const char *arg, if (did_connect || !strncmp(url, "https", 5)) { SSL_handle = handle = HTGetSSLHandle(); SSL_set_fd(handle, s); + /* get host we're connecting to */ + ssl_host = HTParse(url, "", PARSE_HOST); + ssl_host = StripIpv6Brackets(ssl_host); #if SSLEAY_VERSION_NUMBER >= 0x0900 #ifndef USE_NSS_COMPAT_INCL - if (!try_tls) + if (!try_tls) { handle->options |= SSL_OP_NO_TLSv1; +#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) + } else { + SSL_set_tlsext_host_name(handle, ssl_host); +#endif + } #endif #endif /* SSLEAY_VERSION_NUMBER >= 0x0900 */ HTSSLInitPRNG(); @@ -777,9 +785,6 @@ static int HTLoadHTTP(const char *arg, /* initialise status information */ status_sslcertcheck = 0; /* 0 = no CN found in DN */ ssl_dn_start = ssl_dn; - /* get host we're connecting to */ - ssl_host = HTParse(url, "", PARSE_HOST); - ssl_host = StripIpv6Brackets(ssl_host); /* validate all CNs found in DN */ CTRACE((tfp, "Validating CNs in '%s'\n", ssl_dn_start)); diff --git a/WWW/Library/Implementation/HTTP.h b/WWW/Library/Implementation/HTTP.h index 1d570322..f10c2fce 100644 --- a/WWW/Library/Implementation/HTTP.h +++ b/WWW/Library/Implementation/HTTP.h @@ -1,6 +1,8 @@ -/* /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTTP.html - HYPERTEXT TRANFER PROTOCOL - +/* + * $LynxId: HTTP.h,v 1.10 2009/04/07 22:44:50 tom Exp $ + * + * /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTTP.html + * HYPERTEXT TRANFER PROTOCOL */ #ifndef HTTP_H #define HTTP_H @@ -24,7 +26,7 @@ extern "C" { #define URL_MAIL_METHOD 3 extern int ws_read_per_sec; - extern BOOL reloading; + extern BOOLEAN reloading; extern char *redirecting_url; extern BOOL permanent_redirection; extern BOOL redirect_post_content; diff --git a/docs/README.cookies b/docs/README.cookies new file mode 100644 index 00000000..af044f92 --- /dev/null +++ b/docs/README.cookies @@ -0,0 +1,60 @@ +README.cookies + +Cookie handling when using the lynx browser: + +General Usage on a unix system: + +Cookie handling may be set so that you read them in on session start up from a +saved file, and to restore all cookies to that file on session close. + +Warning and Disclaimer: + +The lynx browser provides great opportunity to examine and make decisions about +cookies by default, but some users just want the speed benefits of the lynx +browser without the prompting for a decision to accept or reject the cookie. +Should you think that this is your situation, please read this: + +There are a number of privacy issues with accepting all cookies blindly, not +the least of which is that you are storing evidence of your browsing activity +into a regular disk file. + +You have been warned. There are many resources available that will provide you +with more information about making informed choices about this subject. + +With that in mind, here is how to accept all cookies transparently and rapidly: + +The following .lynxrc or lynx.cfg settings provide the user with the ability +to by default accept all cookies transparently. + +SET_COOKIES:TRUE +ACCEPT_ALL_COOKIES:TRUE +PERSISTENT_COOKIES:TRUE +COOKIE_FILE:/path/to/directory/.lynx_cookies +COOKIE_SAVE_FILE:/path/to/directory/.lynx_cookies +COOKIE_LOOSE_INVALID_DOMAINS:sports.espn.go.com,espn.go.com,.go.com, +FORCE_SSL_COOKIES_SECURE:FALSE + +You must have a "cookie save file" that you own and for which you have +read/write permission; cookies are flushed out to that disk location when you +exit lynx, and are read in for use at the start of a lynx session from there. +Cookies do not persist unless this happens. + +If you wish to see for yourself that this actually happens, please use the +-trace command line option and then read the resulting file "Lynx.trace". +It will show the cookies being read in at the start of a session, and being +written out at the conclusion of a session. + +FORCE_SSL_COOKIES_SECURE is for ebay and the like, or they won't remember you; +(their login is secure but everything else isn't, like a lot of big sites). +If lynx attempts to transmit the ebay cookie securely, it's not taken. +This doesn't affect cookie acceptance but it's a functionality issue for users. + +The COOKIE_LOOSE_INVALID_DOMAINS is for botched cookies from sites you read a +lot. This causes a great deal of prompting and if you are a frequent site user +you may want to convenience yourself with a set of loose invalid domains. + + +Stef Caunter +http://caunter.ca/contact.html +http://caunter.ca/README.cookies + diff --git a/docs/README.options b/docs/README.options new file mode 100644 index 00000000..b388d4c3 --- /dev/null +++ b/docs/README.options @@ -0,0 +1,81 @@ +README.options + +Using the lynx browser [O]ptions configuration tool. + +General Usage on a unix system: + +Press "O" at any time in your lynx session to access this utility page. +This is one of several custom "system" URLs that cause lynx to self-configure. + +Please note: +Ensure and confirm that your [O]ptions session is flushed to disk, by selecting: + +Save options to disk: [_] before selecting "Accept Changes". + +This freshens your .lynxrc file, which is your default "personal" configuration +for the lynx browser. Otherwise you will only affect settings for your +individual session; they aren't remembered next time you use lynx, (since you +actually did not tell lynx to remember them). + +This disk write to .lynxrc is not default behaviour for [O]ptions +configurations. The lynx browser tends to tread lightly at first. Note that +you must first have permission on your system to create, write to and read +from a .lynxrc file in your home directory. + +Using some of the menu items: + +User mode controls the amount of "on screen" help at the bottom of the screen. +You get the familiar view of the link target you are on when you use ADVANCED +user mode, and this also gives you the most top to bottom screen area. +ADVANCED user mode also allows for sub bookmark functionality (see below). + +The (for now) command line only option --nomargins provides the largest +readable left to right screen coverage. + +Editor is for jumping to vi or whatever you prefer during local file edits +and for textarea editing with ^Xe if you are filling out a form while browsing. + +Please see README.cookies for a brief cookie handling discussion. + +Multi-bookmarks allows several files to be your bookmarks; it will introduce +a browse list of them if they are defined as below. + +Once the Multi-bookmarks setup on Options is done and has been written out to +your .lynxrc (remember to Accept Changes and to Save Changes to disk), +in .lynxrc you will see a list of 25 possible "other" bookmark files +(26 letters minus "A") - you need to then associate some of them with +(meaningful) filenames to get the Multi-bookmark menu. + +Note that the files must be relative to your home directory. + +The best way to create and manage them is by using the MultiBookmarkMenu (MBM) +configuration tool selectable from the [O]ptions menu. + +The MBM allows you to describe the sub bookmark, and name a file relative +to your home directory that will contain the html for the saved links. +You populate one of the lettered sub bookmarks, describe it, and provide a +filename. ">" saves the edits, and ^G cancels edits. + +The sub bookmarks will be accessible by pressing the associated key from a +menu when invoking the bookmark choice (lynx -book, or 'V' in a session), or +when saving new bookmarks. You can directly access your sub bookmarks by letter +key alone by defining sub_bookmarks=ADVANCED in .lynxrc or lynx.cfg, if you +have ADVANCED general user mode selected as well. +The Multi-bookmark submenu can still be seen in ADVANCED by pressing "=", and +is always seen in STANDARD mode. + +They are seen in your .lynxrc like so: + +multi_bookmarkB=cars,Cars +multi_bookmarkC=news,News +multi_bookmarkD=sports,Sports + +Filename precedes description in .lynxrc, whereas in the MBM configuration +utility, the description is the left column, and the filename is in the right +column displayed. + + +Stef Caunter +http://caunter.ca/contact.html +http://caunter.ca/README.options + diff --git a/docs/README.sslcerts b/docs/README.sslcerts index 4ad82a90..39c3dcda 100644 --- a/docs/README.sslcerts +++ b/docs/README.sslcerts @@ -1,11 +1,11 @@ - Lynx SSL support for certificates - README.sslcerts file + Lynx SSL support for certificates - README.sslcerts file BACKGROUND: The original README.ssl document for lynx stated: - Note that the server... may not have a valid certificate. Lynx will not - complain, as it does not yet support certificates... + Note that the server... may not have a valid certificate. Lynx will not + complain, as it does not yet support certificates... Such lack of support is no longer the case. Lynx now features excellent certificate management through the openssl project. There is almost no @@ -29,7 +29,7 @@ self-signed certificate from a known server source and have it be trusted by client programs. Briefly, the procedure will involve confirming the default system location for -certificates, possibly setting values for SSL_CERT_DIR and SSL_CERT_FILE in +certificates, setting values for SSL_CERT_DIR and SSL_CERT_FILE in the environment, and converting and hashing the certificates using openssl utilities to enable recognition. @@ -51,8 +51,8 @@ The ability to turn off reporting of this error to the user was added to lynx2.8.5dev16 as the FORCE_SSL_PROMPT setting in lynx.cfg as noted in the CHANGELOG: - This lets the user decide whether to ignore prompting for questionable - aspects of an SSL connection. + This lets the user decide whether to ignore prompting for questionable + aspects of an SSL connection. While this is a convenient setting to employ when using lynx to script https -dumps, it by definition ignores the issue of certificate validity @@ -114,13 +114,24 @@ Note also that there is no CA cert bundle distributed with OpenSSL. The OpenSSL team specifically decided NOT to do that. Getting a set of trusted certificates is left up to the installer. -It is a fairly trivial procedure to pull the bundle of trusted root certs out -of a recent version of Internet Explorer. The MirOS BSD project also provides -them. The procedure to convert and install them is detailed later in this -document, and if you simply need to have commercially provided certificates -trusted by lynx, you can skip down a few lines to the INSTALLING OR UPDATING +It is no longer a fairly trivial procedure to pull the bundle of trusted root certs out +of a recent version of Internet Explorer. Multiple certificates are no longer +exportable as a DER formatted file; extraction of a single certificate is the only +export for DER, and DER is what converts to PEM. + +Users with access to Apple OS X can export all certificates from Keychain Access System Roots as +a .pem file. Place this in SSL_CERT_DIR and hash it and you're done. + +The MirOS BSD project also provides them. The procedure to convert and install them +is detailed later in this document, and if you simply need to have commercially provided +certificates trusted by lynx, you can skip down a few lines to the INSTALLING OR UPDATING THE CA BUNDLE section. +Extracted Mozilla cert bundles are available for download from the curl project, +http://curl.haxx.se/docs/caextract.html along with a script to extract from Mozilla +source. + + INSTALLING A SELF-SIGNED CERTIFICATE: When you would like to trust a self-signed (non-commercial) certificate you will @@ -153,7 +164,7 @@ INSTALLING OR UPDATING THE CA BUNDLE: Now would be a good time to check to see if you have the bundle of CA certs /usr/local/ssl/cert.pem, or to update them. -CA bundles are available in various places, such as the MirBSD distribution, +CA bundles are available in various places, such as the MirOS BSD distribution, for those who want to take that route, or you can extract the current bundle from a current version of Internet Explorer (export them all from IE and transfer it onto your system). @@ -166,9 +177,10 @@ It includes the cacert.org certificate. Download the latest revision; read the file to see how to get the certs out. No hashing is necessary with this set of certs; it is already done; ignore -the c_rehash usage below for this bundle. +the c_rehash usage below for this bundle. Simply run `sh ssl.certs.shar` +in SSL_CERT_DIR. -From IE certs extract as a PKCS7 file and need to be converted with something +From IE 5.x certs extract as a PKCS7 file and need to be converted with something like: openssl pkcs7 -inform DER -in bundle.crt -outform PEM -out cert.pem \ @@ -208,10 +220,10 @@ All pem encoded certs in /usr/local/ssl/certs will now be recognized. SETTING AND EXPORTING ENVIRONMENT VARIABLES: -If lynx is still not recognizing certs, environment variables may need +If lynx is still not recognizing certs, environment variables need to be set; if on a sh type shell, the variables also need to be exported. -The environment variables SSL_CERT_DIR and SSL_CERT_FILE only need to be set +The environment variables SSL_CERT_DIR and SSL_CERT_FILE need to be set if a non-default location is used for certificates, or if certs just can't be found by lynx. They may be set as follows in /etc/profile, or a shell initialization .profile or .*shrc, if we run a non csh type shell, according @@ -226,14 +238,15 @@ On csh type shells, you can use: setenv SSL_CERT_DIR "/usr/local/ssl/certs" setenv SSL_CERT_FILE "/usr/local/ssl/cert.pem" -On many systems setting and exporting them makes all the difference. Apparently -this is not an issue on other systems, but this might help someone -somewhere. - Note that the environment variable SSL_CERT_FILE applies to the cert-bundle if used outside of the default location (/usr/local/ssl/cert.pem) compiled into OpenSSL. There are issues with SSL_CERT_FILE in 0.9.6x versions of openssl. +The configuration file lynx.cfg allows a system SSL_CERT_FILE variable to be set +which can simplify matters. + +SSL_CERT_FILE:/etc/ssl/certs/ca-certificates.crt + Make sure you have FORCE_SSL_PROMPT set to PROMPT in lynx.cfg like so: FORCE_SSL_PROMPT:PROMPT @@ -246,6 +259,7 @@ SSL error:self signed certificate-Continue? (y) A quick check confirms that these procedures have the same effect with ssl errors in the pine program. +2003 updated 2009 Stefan Caunter <stefan.caunter@mohawkcollege.ca> Mohawk College Department of Computer Science Hamilton Ontario Canada diff --git a/lynx.cfg b/lynx.cfg index f69a33d4..d2fd94a2 100644 --- a/lynx.cfg +++ b/lynx.cfg @@ -1,4 +1,4 @@ -# $LynxId: lynx.cfg,v 1.172 2009/03/18 00:33:22 tom Exp $ +# $LynxId: lynx.cfg,v 1.173 2009/04/07 00:18:25 tom Exp $ # lynx.cfg file. # The default placement for this file is /usr/local/lib/lynx.cfg (Unix) # or Lynx_Dir:lynx.cfg (VMS) @@ -730,6 +730,7 @@ DEFAULT_INDEX_FILE:http://lynx.isc.org/ .h2 INFOSECS .h2 MESSAGESECS .h2 ALERTSECS +.h2 NO_PAUSE # The following definitions set the number of seconds for # pauses following statusline messages that would otherwise be # replaced immediately, and are more important than the unpaused @@ -746,9 +747,13 @@ DEFAULT_INDEX_FILE:http://lynx.isc.org/ # SVr4-curses implementations support time delays in milliseconds, # hence the value may be given shorter, e.g., 0.5 # +# Use the NO_PAUSE option (like the command-line -nopause) to override +# all of the delay times. +# #INFOSECS:1 #MESSAGESECS:2 #ALERTSECS:3 +#NO_PAUSE:FALSE .h2 DEBUGSECS # Set DEBUGSECS to a nonzero value to slow down progress messages @@ -1400,9 +1405,9 @@ DEFAULT_INDEX_FILE:http://lynx.isc.org/ # enough for reasonable usage; if they are very high, some sites may present # undue performance waste. # -#max_cookies_domain:50 -#max_cookies_global:500 -#max_cookies_buffer:4096 +#MAX_COOKIES_DOMAIN:50 +#MAX_COOKIES_GLOBAL:500 +#MAX_COOKIES_BUFFER:4096 .h2 PERSISTENT_COOKIES # PERSISTENT_COOKIES indicates that cookies should be read at startup from @@ -3440,6 +3445,7 @@ COLOR:6:brightred:black #ENABLE_LYNXRC:make_links_for_all_images:OFF #ENABLE_LYNXRC:make_pseudo_alts_for_inlines:OFF #ENABLE_LYNXRC:multi_bookmark:ON +#ENABLE_LYNXRC:no_pause:OFF #ENABLE_LYNXRC:personal_mail_address:ON #ENABLE_LYNXRC:preferred_charset:ON #ENABLE_LYNXRC:preferred_encoding:OFF diff --git a/src/HTAlert.c b/src/HTAlert.c index ee83f3af..aba28b9e 100644 --- a/src/HTAlert.c +++ b/src/HTAlert.c @@ -1,5 +1,5 @@ /* - * $LynxId: HTAlert.c,v 1.84 2009/03/10 15:22:07 tom Exp $ + * $LynxId: HTAlert.c,v 1.85 2009/04/07 00:09:34 tom Exp $ * * Displaying messages and getting input for Lynx Browser * ========================================================== @@ -1123,7 +1123,7 @@ int HTConfirmPostRedirect(const char *Redirecting_url, int server_status) return (result); } -#define okToSleep() (!crawl && !traversal && LYCursesON) +#define okToSleep() (!crawl && !traversal && LYCursesON && !no_pause) /* * Sleep for the given message class's time. diff --git a/src/LYCurses.c b/src/LYCurses.c index e272269e..258873ee 100644 --- a/src/LYCurses.c +++ b/src/LYCurses.c @@ -1,4 +1,4 @@ -/* $LynxId: LYCurses.c,v 1.140 2009/03/10 15:33:34 tom Exp $ */ +/* $LynxId: LYCurses.c,v 1.141 2009/04/07 00:00:40 tom Exp $ */ #include <HTUtils.h> #include <HTAlert.h> @@ -69,7 +69,7 @@ WINDOW *LYwin = 0; int LYshiftWin = 0; int LYwideLines = FALSE; int LYtableCols = 0; /* in 1/12 of screen width */ -BOOL LYuseCursesPads = TRUE; /* use pads for left/right shifting */ +BOOLEAN LYuseCursesPads = TRUE; /* use pads for left/right shifting */ #endif /* diff --git a/src/LYCurses.h b/src/LYCurses.h index 18a611fa..0753e7aa 100644 --- a/src/LYCurses.h +++ b/src/LYCurses.h @@ -1,4 +1,4 @@ -/* $LynxId: LYCurses.h,v 1.79 2009/01/03 16:55:08 tom Exp $ */ +/* $LynxId: LYCurses.h,v 1.80 2009/04/07 00:03:47 tom Exp $ */ #ifndef LYCURSES_H #define LYCURSES_H @@ -443,7 +443,7 @@ extern "C" { extern int LYshiftWin; extern int LYwideLines; extern int LYtableCols; - extern BOOL LYuseCursesPads; + extern BOOLEAN LYuseCursesPads; #else #define LYwin stdscr diff --git a/src/LYGlobalDefs.h b/src/LYGlobalDefs.h index b8d7fea3..1b5247d2 100644 --- a/src/LYGlobalDefs.h +++ b/src/LYGlobalDefs.h @@ -1,5 +1,5 @@ /* - * $LynxId: LYGlobalDefs.h,v 1.117 2009/03/11 00:29:55 tom Exp $ + * $LynxId: LYGlobalDefs.h,v 1.118 2009/04/07 00:11:01 tom Exp $ * * global variable definitions */ @@ -383,6 +383,7 @@ extern "C" { extern BOOLEAN use_underscore; extern BOOLEAN no_list; extern BOOLEAN no_margins; + extern BOOLEAN no_pause; extern BOOLEAN no_title; extern BOOLEAN historical_comments; extern BOOLEAN minimal_comments; diff --git a/src/LYJustify.h b/src/LYJustify.h index 43e22bd0..209d58a8 100644 --- a/src/LYJustify.h +++ b/src/LYJustify.h @@ -1,4 +1,7 @@ -/* Justification for lynx - implemented by Vlad Harchev <hvv@hippo.ru> +/* + * $LynxId: LYJustify.h,v 1.7 2009/04/07 00:24:15 tom Exp $ + * + * Justification for lynx - implemented by Vlad Harchev <hvv@hippo.ru> * 11 July 1999 */ @@ -11,7 +14,6 @@ extern "C" { #endif #ifdef EXP_JUSTIFY_ELTS - extern BOOL ok_justify; extern BOOL can_justify_here; extern BOOL can_justify_here_saved; diff --git a/src/LYMain.c b/src/LYMain.c index 83c879a4..40f1833c 100644 --- a/src/LYMain.c +++ b/src/LYMain.c @@ -1,5 +1,5 @@ /* - * $LynxId: LYMain.c,v 1.198 2009/03/11 00:29:55 tom Exp $ + * $LynxId: LYMain.c,v 1.199 2009/04/07 00:10:20 tom Exp $ */ #include <HTUtils.h> #include <HTTP.h> @@ -388,6 +388,7 @@ BOOLEAN more_text = FALSE; /* is there more text to display? */ BOOLEAN more_links = FALSE; /* Links beyond a displayed page with no links? */ BOOLEAN no_list = FALSE; BOOLEAN no_margins = FALSE; +BOOLEAN no_pause = FALSE; BOOLEAN no_title = FALSE; BOOLEAN no_url_redirection = FALSE; /* Don't follow URL redirections */ BOOLEAN pseudo_inline_alts = MAKE_PSEUDO_ALTS_FOR_INLINES; @@ -2360,19 +2361,10 @@ void reload_read_cfg(void) } #endif /* !NO_CONFIG_INFO */ -static void disable_pausing(void) -{ - AlertSecs = 0; - DebugSecs = 0; - InfoSecs = 0; - MessageSecs = 0; - ReplaySecs = 0; -} - static void force_dump_mode(void) { dump_output_immediately = TRUE; - disable_pausing(); + no_pause = TRUE; LYcols = DFT_COLS; } @@ -2823,7 +2815,7 @@ static int nocolor_fun(char *next_arg GCC_UNUSED) /* -nopause */ static int nopause_fun(char *next_arg GCC_UNUSED) { - disable_pausing(); + no_pause = TRUE; return 0; } diff --git a/src/LYOptions.c b/src/LYOptions.c index 5f1e386c..96402e87 100644 --- a/src/LYOptions.c +++ b/src/LYOptions.c @@ -1,4 +1,4 @@ -/* $LynxId: LYOptions.c,v 1.128 2009/01/19 23:32:01 tom Exp $ */ +/* $LynxId: LYOptions.c,v 1.129 2009/04/07 00:35:49 tom Exp $ */ #include <HTUtils.h> #include <HTFTP.h> #include <HTTP.h> /* 'reloading' flag */ @@ -396,7 +396,7 @@ void LYoptions(void) } old_use_assume_charset = - use_assume_charset = (BOOL) (user_mode == ADVANCED_MODE); + use_assume_charset = (BOOLEAN) (user_mode == ADVANCED_MODE); draw_options: @@ -973,7 +973,7 @@ void LYoptions(void) LYCharSet_UC[UCLYhndl_for_unspec].MIMEname); } if (HTCJK != JAPANESE) - LYRawMode = (BOOL) (UCLYhndl_for_unspec == current_char_set); + LYRawMode = (BOOLEAN) (UCLYhndl_for_unspec == current_char_set); HTMLSetUseDefaultRawMode(current_char_set, LYRawMode); HTMLSetCharacterHandling(current_char_set); CurrentAssumeCharSet = UCLYhndl_for_unspec; @@ -1248,7 +1248,7 @@ void LYoptions(void) choices, 4, FALSE, FALSE); } #if defined(COLOR_CURSES) - again = (BOOL) (chosen == SHOW_COLOR_ON && !has_colors()); + again = (BOOLEAN) (chosen == SHOW_COLOR_ON && !has_colors()); if (again) { char *terminal = LYGetEnv("TERM"); @@ -1401,13 +1401,13 @@ void LYoptions(void) user_mode = LYChooseEnum(user_mode, L_User_Mode, -1, userMode_choices); - use_assume_charset = (BOOL) (user_mode >= 2); + use_assume_charset = (BOOLEAN) (user_mode >= 2); } else { user_mode = LYChoosePopup(user_mode, L_User_Mode, -1, userMode_choices, 3, FALSE, FALSE); - use_assume_charset = (BOOL) (user_mode >= 2); + use_assume_charset = (BOOLEAN) (user_mode >= 2); #if defined(VMS) || defined(USE_SLANG) if (use_assume_charset == old_use_assume_charset) { LYmove(L_User_Mode, COL_OPTION_VALUES); @@ -2326,6 +2326,7 @@ static const char *locale_charset_string = RC_LOCALE_CHARSET; * File Management Options */ static const char *show_dotfiles_string = RC_SHOW_DOTFILES; +static const char *no_pause_string = RC_NO_PAUSE; #ifdef DIRED_SUPPORT static const char *dired_list_string = RC_DIR_LIST_STYLE; @@ -2750,7 +2751,7 @@ int postoptions(DocInfo *newdoc) /* Emacs keys: ON/OFF */ if (!strcmp(data[i].tag, emacs_keys_string) && GetOptValues(bool_values, data[i].value, &code)) { - if ((emacs_keys = (BOOL) code) != FALSE) { + if ((emacs_keys = (BOOLEAN) code) != FALSE) { set_emacs_keys(); } else { reset_emacs_keys(); @@ -2826,7 +2827,7 @@ int postoptions(DocInfo *newdoc) /* Search Type: SELECT */ if (!strcmp(data[i].tag, search_type_string) && GetOptValues(search_type_values, data[i].value, &code)) { - case_sensitive = (BOOL) code; + case_sensitive = (BOOLEAN) code; } /* HTML error tolerance: SELECT */ @@ -2842,7 +2843,7 @@ int postoptions(DocInfo *newdoc) /* Select Popups: ON/OFF */ if (!strcmp(data[i].tag, select_popups_string) && GetOptValues(bool_values, data[i].value, &code)) { - LYSelectPopups = (BOOL) code; + LYSelectPopups = (BOOLEAN) code; } #if defined(USE_SLANG) || defined(COLOR_CURSES) /* Show Color: SELECT */ @@ -2864,19 +2865,19 @@ int postoptions(DocInfo *newdoc) /* Show Cursor: ON/OFF */ if (!strcmp(data[i].tag, show_cursor_string) && GetOptValues(bool_values, data[i].value, &code)) { - LYShowCursor = (BOOL) code; + LYShowCursor = (BOOLEAN) code; } /* Underline links: ON/OFF */ if (!strcmp(data[i].tag, underline_links_string) && GetOptValues(bool_values, data[i].value, &code)) { - LYUnderlineLinks = (BOOL) code; + LYUnderlineLinks = (BOOLEAN) code; } #ifdef USE_SCROLLBAR /* Show Scrollbar: ON/OFF */ if (!strcmp(data[i].tag, show_scrollbar_string) && GetOptValues(bool_values, data[i].value, &code)) { - LYShowScrollbar = (BOOL) code; + LYShowScrollbar = (BOOLEAN) code; need_reload = TRUE; } #endif @@ -2924,7 +2925,7 @@ int postoptions(DocInfo *newdoc) if (!strcmp(data[i].tag, verbose_images_string) && GetOptValues(verbose_images_type_values, data[i].value, &code)) { if (verbose_img != code) { - verbose_img = (BOOL) code; + verbose_img = (BOOLEAN) code; need_reload = TRUE; } } @@ -2932,7 +2933,7 @@ int postoptions(DocInfo *newdoc) /* VI Keys: ON/OFF */ if (!strcmp(data[i].tag, vi_keys_string) && GetOptValues(bool_values, data[i].value, &code)) { - if ((vi_keys = (BOOL) code) != FALSE) { + if ((vi_keys = (BOOLEAN) code) != FALSE) { set_vi_keys(); } else { reset_vi_keys(); @@ -2955,7 +2956,7 @@ int postoptions(DocInfo *newdoc) /* Auto Session: ON/OFF */ if (!strcmp(data[i].tag, auto_session_string) && GetOptValues(bool_values, data[i].value, &code)) { - LYAutoSession = (BOOL) code; + LYAutoSession = (BOOLEAN) code; } /* Default Session filename: INPUT */ @@ -2987,7 +2988,7 @@ int postoptions(DocInfo *newdoc) /* Use locale-based character set: ON/OFF */ if (!strcmp(data[i].tag, locale_charset_string) && GetOptValues(bool_values, data[i].value, &code)) { - LYLocaleCharset = (BOOL) code; + LYLocaleCharset = (BOOLEAN) code; } #endif @@ -3006,14 +3007,14 @@ int postoptions(DocInfo *newdoc) /* Raw Mode: ON/OFF */ if (!strcmp(data[i].tag, raw_mode_string) && GetOptValues(bool_values, data[i].value, &code)) { - LYRawMode = (BOOL) code; + LYRawMode = (BOOLEAN) code; } #ifndef DISABLE_FTP /* * passive ftp: ON/OFF */ if (!strcmp(data[i].tag, passive_ftp_string)) { - ftp_passive = (BOOL) code; + ftp_passive = (BOOLEAN) code; } /* @@ -3040,7 +3041,13 @@ int postoptions(DocInfo *newdoc) /* Show dot files: ON/OFF */ if (!strcmp(data[i].tag, show_dotfiles_string) && (!no_dotfiles) && GetOptValues(bool_values, data[i].value, &code)) { - show_dotfiles = (BOOL) code; + show_dotfiles = (BOOLEAN) code; + } + + /* Pause when showing messages: ON/OFF */ + if (!strcmp(data[i].tag, no_pause_string) + && GetOptValues(bool_values, data[i].value, &code)) { + no_pause = (BOOLEAN) !code; } #ifdef USE_READPROGRESS /* Show Transfer Rate: enumerated value */ @@ -3126,7 +3133,7 @@ int postoptions(DocInfo *newdoc) #endif } if (assume_char_set_changed && HTCJK != JAPANESE) { - LYRawMode = (BOOL) (UCLYhndl_for_unspec == current_char_set); + LYRawMode = (BOOLEAN) (UCLYhndl_for_unspec == current_char_set); } if (raw_mode_old != LYRawMode || assume_char_set_changed) { /* @@ -3870,6 +3877,11 @@ static int gen_options(char **newfile) EndSelect(fp0); #endif /* ENABLE_OPTS_CHANGE_EXEC */ + PutLabel(fp0, gettext("Pause when showing message"), no_pause_string); + BeginSelect(fp0, no_pause_string); + PutOptValues(fp0, !no_pause, bool_values); + EndSelect(fp0); + #ifdef USE_READPROGRESS /* Show transfer rate: SELECT */ PutLabel(fp0, gettext("Show transfer rate"), show_rate_string); diff --git a/src/LYReadCFG.c b/src/LYReadCFG.c index 67b66e52..0e7e43e2 100644 --- a/src/LYReadCFG.c +++ b/src/LYReadCFG.c @@ -1,5 +1,5 @@ /* - * $LynxId: LYReadCFG.c,v 1.137 2009/01/29 01:02:26 tom Exp $ + * $LynxId: LYReadCFG.c,v 1.138 2009/04/07 00:13:11 tom Exp $ */ #ifndef NO_RULES #include <HTRules.h> @@ -1484,6 +1484,7 @@ static Config_Type Config_Table [] = PARSE_SET(RC_NO_FROM_HEADER, LYNoFromHeader), PARSE_SET(RC_NO_ISMAP_IF_USEMAP, LYNoISMAPifUSEMAP), PARSE_SET(RC_NO_MARGINS, no_margins), + PARSE_SET(RC_NO_PAUSE, no_pause), PARSE_Env(RC_NO_PROXY, 0), PARSE_SET(RC_NO_REFERER_HEADER, LYNoRefererHeader), PARSE_SET(RC_NO_TABLE_CENTER, no_table_center), diff --git a/src/LYrcFile.c b/src/LYrcFile.c index 789d8305..7954c336 100644 --- a/src/LYrcFile.c +++ b/src/LYrcFile.c @@ -1,4 +1,4 @@ -/* $LynxId: LYrcFile.c,v 1.75 2009/01/01 23:10:59 tom Exp $ */ +/* $LynxId: LYrcFile.c,v 1.76 2009/04/07 00:20:14 tom Exp $ */ #include <HTUtils.h> #include <HTFTP.h> #include <LYUtils.h> @@ -603,6 +603,7 @@ in the Visited Links Page.\n\ MAYBE_SET(RC_AUTO_SESSION, LYAutoSession, MSG_ENABLE_LYNXRC), MAYBE_STR(RC_SESSION_FILE, LYSessionFile, MSG_ENABLE_LYNXRC), #endif + MAYBE_SET(RC_NO_PAUSE, no_pause, MSG_ENABLE_LYNXRC), PARSE_NIL }; diff --git a/src/LYrcFile.h b/src/LYrcFile.h index 5ad055c5..07506bba 100644 --- a/src/LYrcFile.h +++ b/src/LYrcFile.h @@ -1,5 +1,5 @@ /* - * $LynxId: LYrcFile.h,v 1.29 2008/12/26 18:34:05 tom Exp $ + * $LynxId: LYrcFile.h,v 1.30 2009/04/06 23:07:40 tom Exp $ */ #ifndef LYRCFILE_H #define LYRCFILE_H @@ -156,6 +156,7 @@ #define RC_NO_FROM_HEADER "no_from_header" #define RC_NO_ISMAP_IF_USEMAP "no_ismap_if_usemap" #define RC_NO_MARGINS "no_margins" +#define RC_NO_PAUSE "no_pause" #define RC_NO_PROXY "no_proxy" #define RC_NO_REFERER_HEADER "no_referer_header" #define RC_NO_TABLE_CENTER "no_table_center" |