diff options
-rw-r--r-- | CHANGES | 35 | ||||
-rw-r--r-- | INSTALLATION | 20 | ||||
-rw-r--r-- | WWW/Library/Implementation/HTTCP.c | 45 | ||||
-rw-r--r-- | lynx.cfg | 26 | ||||
-rw-r--r-- | lynx_help/keystrokes/keystroke_help.html | 3 | ||||
-rw-r--r-- | lynx_help/lynx-dev.html | 94 | ||||
-rw-r--r-- | src/GridText.c | 5 | ||||
-rw-r--r-- | src/HTAlert.c | 2 | ||||
-rw-r--r-- | src/LYCurses.c | 1 | ||||
-rw-r--r-- | src/LYDownload.c | 5 | ||||
-rw-r--r-- | src/LYGlobalDefs.h | 1 | ||||
-rw-r--r-- | src/LYMain.c | 1 | ||||
-rw-r--r-- | src/LYMainLoop.c | 35 | ||||
-rw-r--r-- | src/LYOptions.c | 71 | ||||
-rw-r--r-- | src/LYOptions.h | 63 | ||||
-rw-r--r-- | src/LYReadCFG.c | 1 | ||||
-rw-r--r-- | src/LYShowInfo.c | 2 | ||||
-rw-r--r-- | src/LYUtils.c | 35 | ||||
-rw-r--r-- | userdefs.h | 20 |
19 files changed, 301 insertions, 164 deletions
diff --git a/CHANGES b/CHANGES index 7b1701c9..aad6ffcd 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,37 @@ Changes since Lynx 2.8 release ================================================================================ +1998-10-10 (2.8.1pre.9) +* add verbose_links variable to lynx.cfg and userdefs.h to control whether Lynx + should show "(LINK)" before links (request/patch by Moshe Zadka + <moshez@math.huji.ac.il>) - TD +* change defaults in lynx.cfg and userdefs.h, add comments - PW + (a) defaults are stated for `verbose' & `KB'; + (b) GOTOBUFFER & JUMPBUFFER defaults to TRUE; + (c) QUIT_DEFAULT_YES defaults to FALSE +* restore suggested file name in download menu: it is really useful for other + download methods which should be available in menu when `save to disk' is + disabled. Remove local_path/ prefix (LYNX_SAVE_SPACE if any) from visible + suggested file name string near the top instead - LP +* restore newline position when toggling comments parsing (at least we could + return to previous screen to try comments toggling twice) - LP +* add a link from keystrokes help for edit_help.html (input line keys) - LP +* corrected to make -nostatus command-line option override HTReadProgress - TD +* updates to lynx-dev.html (Al Gilman). +* modify NSL-fork support in HTTCP.c to use waitpid call to reap child processes + which may otherwise become orphaned. The new variable "dns_patience" + represents how many seconds we're willing to wait for DNS to respond (should + later make it configurable) - BL +* modify PutTextInput and PutDefs macros in LYOptions.c and LYShowInfo.c to + avoid pre-ANSI compilers attempting to substitute macro parameters in + coincidental matches within quoted strings - BL + gcc -Wtraditional reports the first, but not the second, which is "n" + substituted into "\n" - TD +* add an error-check for fg/bg values to lynx_chg_color function in case lynx.cfg + specifies color names not in Lynx's table - BL +* modify IsOurFile function to accommodate links-to-links, so that users whose + home directory is reached by that type of path can save .lynxrc file + (reported by PW) - TD 1998-10-04 (2.8.1pre.8) * modify HTTCP.c to copy soc_in from phost in HTParseInet, making Lynx/32 do lookups again - WB @@ -9,8 +40,8 @@ Changes since Lynx 2.8 release 1998-10-04 (2.8.1pre.7) * add special-case CF_TERMIOS_AND_CURSES configure macro (fixes problem reported by Philippe De Muyter) - TD -* update/reorganize option_help.html (Philip Webb). -* Restore newline position when return from the Print menu or follow a link +* update/reorganize option_help.html - PW +* restore newline position when return from the Print menu or follow a link from History page (was broken for partial display mode only): LYPop() and LYPop_num now reinitialize Newline_partial if it happens on getfile stage. Also remove changes from 1998-06-11 (case LYK_DOWNLOAD) since this is now diff --git a/INSTALLATION b/INSTALLATION index 9e7f9418..103b61fc 100644 --- a/INSTALLATION +++ b/INSTALLATION @@ -134,13 +134,22 @@ II. Compile instructions -- UNIX IRIX 5.2 and 6.2 (cc & gcc w/ curses, ncurses & slang) Linux 2.0.0 (gcc 2.7.2 w/ curses, ncurses & slang) MkLinux 2.1.5 (gcc 2.7.2.1) NetBSD - OS/2 EMX 0.9b SCO (cc w/ curses) + OS/2 EMX 0.9b (ncurses) SCO (cc w/ curses) Solaris 2.5 & 2.6 (cc & gcc w/ curses, ncurses & slang) SunOS 4.1 (cc w/ curses, gcc w/ ncurses & slang) - NOTE: SunOS and HP-UX come with a bundled K&R compiler, which is only - useful for compiling with the bundled curses. Both ncurses and slang - require a compiler that recognizes prototypes. + NOTES: + + + SunOS and HP-UX come with a bundled K&R compiler, which is only useful + for compiling with the bundled curses. Both ncurses and slang require + a compiler that recognizes prototypes. + + + ncurses 4.2 builds/works on OS/2; however you should get at least the + post-4.2 patches from October 1998, since that supports mouse and + screen sizes other than 25x80. + + http://www.clark.net/pub/dickey/ncurses/ncurses.faq.html + ftp://ftp.clark.net/pub/dickey/ncurses/ 1c. Options To get a list of the configure script's options, type "./configure --help". @@ -259,8 +268,7 @@ II. Compile instructions -- UNIX Use forms-based options screen only. Please note that a few users with broken curses may have problems with popup forms fields. (The default behaviour is to compile - both styles options menu code with FORMS_OPTIONS switch in lynx.cfg - as well as -forms_options command line toggle). + both styles options menu code with FORMS_OPTIONS switch in lynx.cfg). --enable-internal-links (define DONT_TRACK_INTERNAL_LINKS) Disabled by default, this option allows tracking of internal links, diff --git a/WWW/Library/Implementation/HTTCP.c b/WWW/Library/Implementation/HTTCP.c index 41592324..05cce142 100644 --- a/WWW/Library/Implementation/HTTCP.c +++ b/WWW/Library/Implementation/HTTCP.c @@ -306,6 +306,19 @@ PUBLIC CONST char * HTInetString ARGS1( } #endif /* !DECNET */ +#ifdef NSL_FORK +/* +** Function to allow us to be killed with a normal signal (not +** SIGKILL), but don't go through normal libc exit() processing, which +** would screw up parent's stdio. -BL +*/ +PRIVATE void quench ARGS1( + int, sig GCC_UNUSED) +{ + _exit(2); +} +#endif /* NSL_FORK */ + /* Parse a network node address and port ** ------------------------------------- ** @@ -432,10 +445,25 @@ PUBLIC int HTParseInet ARGS2( ** Pipe, child pid, status buffers, cycle count, select() ** control variables. */ - pid_t fpid, waitret = (pid_t)0; + pid_t fpid, waitret; int pfd[2], cstat, cst1 = 0, cycle = 0; fd_set readfds; struct timeval timeout; + int dns_patience = 30; /* how many seconds will we wait for DNS? */ + + /* + ** Reap any children that have terminated since last time + ** through. This might include children that we killed, + ** then waited with WNOHANG before they were actually ready + ** to be reaped. (Should be max of 1 in this state, but + ** the loop is safe if waitpid() is implemented correctly: + ** returns 0 when children exist but none have exited; -1 + ** with errno == ECHILD when no children.) -BL + */ + do { + waitret = waitpid(-1, 0, WNOHANG); + } while (waitret > 0 || (waitret == -1 && errno == EINTR)); + waitret = 0; pipe(pfd); @@ -443,6 +471,12 @@ PUBLIC int HTParseInet ARGS2( struct hostent *phost; /* Pointer to host - See netdb.h */ /* ** Child - for the long call. + ** + ** Make sure parent can kill us at will. -BL + */ + (void) signal(SIGTERM, quench); + + /* ** Child won't use read side. -BL */ close(pfd[0]); @@ -482,7 +516,7 @@ PUBLIC int HTParseInet ARGS2( close(pfd[1]); /* parent won't use write side -BL */ - while (cycle < 50) { + while (cycle < dns_patience) { /* ** Avoid infinite loop in the face of the unexpected. -BL */ @@ -531,7 +565,7 @@ PUBLIC int HTParseInet ARGS2( */ waitret = waitpid(fpid, &cst1, WNOHANG); if (!WIFEXITED(cst1) && !WIFSIGNALED(cst1)) { - kill(fpid, SIGKILL); + kill(fpid, SIGTERM); waitret = waitpid(fpid, &cst1, WNOHANG); } break; @@ -548,8 +582,8 @@ PUBLIC int HTParseInet ARGS2( */ if (HTCheckForInterrupt()) { CTRACE(tfp, "HTParseInet: INTERRUPTED gethostbyname.\n"); - kill(fpid , SIGKILL); - waitpid(fpid, NULL, 0); + kill(fpid, SIGTERM); + waitpid(fpid, NULL, WNOHANG); FREE(host); close(pfd[0]); return HT_INTERRUPTED; @@ -557,6 +591,7 @@ PUBLIC int HTParseInet ARGS2( } close(pfd[0]); if (waitret <= 0) { + kill(fpid, SIGTERM); waitret = waitpid(fpid, &cst1, WNOHANG); } if (waitret > 0) { diff --git a/lynx.cfg b/lynx.cfg index 44dca364..6e5816e8 100644 --- a/lynx.cfg +++ b/lynx.cfg @@ -69,7 +69,7 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # buffer of previously entered goto URLs can still be invoked via the # Up-Arrow or Down-Arrow keys after entering the 'g'oto command. # -#GOTOBUFFER:FALSE +#GOTOBUFFER:TRUE # JUMP_PROMPT is the default statusline prompt for jumps files (see below). # You can change the prompt here from that defined in userdefs.h. Any @@ -118,7 +118,7 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # ':' can be used as a target to invoke the goto URL buffer (as if 'g'oto # followed by Up-Arrow had been entered). # -#JUMPBUFFER:FALSE +#JUMPBUFFER:TRUE # If SAVE_SPACE is defined, it will be used as a path prefix for the # suggested filename in "Save to Disk" operations from the 'p'rint or @@ -394,14 +394,14 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # Display partial pages while downloading #PARTIAL:TRUE -# Set the threshold # of lines Lynx must render before it +# Set the threshold # of lines Lynx must render before it # redraws the screen in PARTIAL mode. Anything < 0 implies -# use the screen size. -#PARTIAL_THRES:-1 +# use the screen size. +#PARTIAL_THRES:-1 -# While getting large files, Lynx shows the approximate rate of -# transfer. Set this to change the units shown (true for KB/sec, -# and false for bytes/sec). +# While getting large files, Lynx shows the approximate rate of transfer. +# Set this to change the units shown: +# TRUE for KB/sec or FALSE for bytes/sec: default is TRUE. #SHOW_KB_RATE:TRUE # The following three definitions set the number of seconds for @@ -451,7 +451,13 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # are just decorations (button.gif, line.gif) and what images are important. # # If this option is set here, it will override the setting in userdefs.h. -#VERBOSE_IMAGES:FALSE +#VERBOSE_IMAGES:TRUE + +# VERBOSE_LINKS controls whether Lynx precedes links with the string "(LINK)", +# which is done to accommodate blind users. +# +# If this option is set here, it will override the setting in userdefs.h. +#VERBOSE_LINKS:FALSE # If BOLD_HEADERS is set to TRUE the HT_BOLD default style will be acted # upon for <H1> through <H6> headers. The compilation default is FALSE @@ -1206,7 +1212,7 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # prefer the more conservative action of requiring an explicit Y or y to # confirm. The default defined here will override that in userdefs.h. # -#QUIT_DEFAULT_YES:TRUE +#QUIT_DEFAULT_YES:FALSE # If HISTORICAL_COMMENTS is TRUE, Lynx will revert to the "Historical" # behavior of treating any '>' as a terminator for comments, instead of diff --git a/lynx_help/keystrokes/keystroke_help.html b/lynx_help/keystrokes/keystroke_help.html index f3a57bc3..3a2724ae 100644 --- a/lynx_help/keystrokes/keystroke_help.html +++ b/lynx_help/keystrokes/keystroke_help.html @@ -85,7 +85,8 @@ CTRL-R - Reload current file and refresh the screen CTRL-V - Switch to alternative parsing of HTML documents CTRL-W - Refresh the screen - CTRL-U - Erase input line + CTRL-U - Erase input line (<a href="edit_help.html" + >more input line commands</a>) CTRL-G - Cancel input or transfer CTRL-T - Toggle trace mode on and off ; - View the Lynx Trace Log for the current diff --git a/lynx_help/lynx-dev.html b/lynx_help/lynx-dev.html index f062f674..c9076cfb 100644 --- a/lynx_help/lynx-dev.html +++ b/lynx_help/lynx-dev.html @@ -13,48 +13,100 @@ <h1><em>Lynx-Dev Discussion List</em></h1> -Lynx-dev is a majordomo mailing list used by developers and interested -users as a forum to discuss the further development of the Lynx World -Wide Web browser. Topic issues include fixing known bugs, porting Lynx -to various systems, and increasing the usability of Lynx. +Lynx-dev is a majordomo mailing list used by developers and +interested users as a forum to discuss the further development of +the Lynx World Wide Web browser. Topic issues include fixing +known bugs, porting Lynx to various systems, and increasing the +usability of Lynx. + +<h2><em>Open access</em></h2> +<P> +Anyone may read what has been said on Lynx-dev by visiting the +<a href="http://www.flora.org/lynx-dev/html/"> archives</a>. + +<P> + +Anyone may ask a question or offer a comment on Lynx-dev by +sending mail to lynx-dev@sig.net, the posting address for this +list. Because of the public archive, requests for a personal +reply may not be honored, and you should check the archive to +find all follow-up responses. Messages from non-subscribers are +not immediately distributed to the list to avoid distributing +spam. Usually, if your message is on topic, it will be retrieved +from the pile of spam headed for the wastebasket within a day or +so and distributed to the list. So, for best results subscribe +as described below. <h2><em>Subscribing to Lynx-Dev</em></h2> -If you are interested in <em>joining</em> this mailing list, -send email to <a href="mailto:majordomo@sig.net" ->majordomo@sig.net</a> with only the following request -in the body of your message: <em>SUBSCRIBE LYNX-DEV address</em><br> -where inclusion of your email address is optional if it can be obtained, -correctly, from the mail headers of your subscription request. +If you are interested in <em>joining</em> this mailing list, send +email to <a +href="mailto:majordomo@sig.net"> majordomo@sig.net</a> with +only the following request in the body of your message: +<em>SUBSCRIBE LYNX-DEV address</em><br> where inclusion of your +email address is optional if it can be obtained, correctly, from +the mail headers of your subscription request. You will be asked +to answer one follow-up question to confirm that you want the +subscription, and Majordomo will enroll you as a subscriber. +<P> +Majordomo will thereafter +send all messages which you address to the posting address to all +subscribers of the list, and you will receive all messages set to +that address by other subscribers. + <p><em>NOTE:</em> Subject headers are ignored by the majordomo. <h2><em>Unsubscribing from Lynx-Dev</em></h2> To <em>unsubscribe</em>, send an email message to -<a href="mailto:majordomo@sig.net" ->majordomo@sig.net</a> with only the following request +<a href="mailto:majordomo@sig.net"> majordomo@sig.net</a> +with only the following request in the body: <em>UNSUBSCRIBE LYNX-DEV address</em><br> where inclusion of your email address is optional if it can be obtained, correctly, from the mail headers of your request. +<h2><em>Subscribing to Lynx-Dev-Contrib</em></h2> +<p> +If you subscribe an email address to lynx-dev-contrib, mail from +that address posted to lynx-dev will be recognized as from a +subscriber and automatically distributed to the list. +To make such a subscription, send +email to <a +href="mailto:majordomo@sig.net"> majordomo@sig.net</a> with +only the following request in the body of your message: +<em>SUBSCRIBE LYNX-DEV-CONTRIB address</em>. +<p> +If you prefer to read the lynx-dev discussion using Lynx and +the archive, and not receive all the posts as email, subscribe +to lynx-dev-contrib and not to lynx-dev. If you have multiple +accounts from which you would like to post to lynx-dev, subscribe +one of them to lynx-dev (where you will receive the list mail) and +the others to lynx-dev-contrib. + <h2><em>Majordomo Commands</em></h2> -To receive a brief description of majordomo <em>commands</em>, place -the following request in a message to <a href="mailto:majordomo@sig.net" ->majordomo@sig.net</a>: <em>HELP</em> +To receive a brief description of majordomo <em>commands</em>, +place the following request in a message to <a +href="mailto:majordomo@sig.net"> majordomo@sig.net</a>: +<em>HELP</em> + +<p> +Read the HELP that you receive by return mail to learn the +details of the <em>which</em> command you can use to check on +your subscriptions, etc. Further information is available from the +<a href="http://www.greatcircle.com/majordomo/"> majordomo website</a>. <h2><em>Contacting Lynx-Dev</em></h2> If you have questions, problems, or comments about using Lynx or -installing it on your system, send email to -<a href="mailto:lynx-dev@sig.net" ->lynx-dev@sig.net</a> (<em>after you've subscribed</em>). +installing it on your system, send email to +<a href="mailto:lynx-dev@sig.net"> lynx-dev@sig.net</a>. <p>If you have problems with majordomo not responding to your requests, -send email to the <em>list owner</em>: <a -href="mailto:majordomo-owner@sig.net" ->majordomo-owner@sig.net</a>. Please, +send email to the <em>list owner</em>: +<a href="mailto:majordomo-owner@sig.net"> majordomo-owner@sig.net</a>. +Please, <em>DO NOT</em> send them to <em>lynx-dev@sig.net</em> as they will be distributed to everyone on the list and will clutter up their mailboxes. diff --git a/src/GridText.c b/src/GridText.c index 02986757..c9d5b5a9 100644 --- a/src/GridText.c +++ b/src/GridText.c @@ -2680,7 +2680,7 @@ PUBLIC int HText_beginAnchor ARGS3( BOOL, underline, HTChildAnchor *, anc) { - char marker[16]; + char marker[32]; TextAnchor * a = (TextAnchor *) calloc(1, sizeof(*a)); @@ -2719,6 +2719,9 @@ PUBLIC int HText_beginAnchor ARGS3( /* * If we are doing link_numbering add the link number. */ + if (verbose_links) { + HText_appendText(text, "(LINK)"); + } if ((a->number > 0) && (keypad_mode == LINKS_ARE_NUMBERED || keypad_mode == LINKS_AND_FORM_FIELDS_ARE_NUMBERED)) { diff --git a/src/HTAlert.c b/src/HTAlert.c index 42aa340f..c709361a 100644 --- a/src/HTAlert.c +++ b/src/HTAlert.c @@ -140,7 +140,7 @@ PUBLIC void HTReadProgress ARGS2( if (total < -1) strcat(line, " (Press 'z' to abort)"); } - _HTProgress(line); + HTProgress(line); } } } diff --git a/src/LYCurses.c b/src/LYCurses.c index 57d8c753..0e3e0ea9 100644 --- a/src/LYCurses.c +++ b/src/LYCurses.c @@ -535,6 +535,7 @@ PUBLIC int lynx_chg_color ARGS3( int, bg ) { + if (fg == ERR_COLOR || bg == ERR_COLOR) return -1; if (color >= 0 && color < 8) { lynx_color_cfg[color].fg = (fg > 7) ? (fg & 7) : fg; lynx_color_cfg[color].bg = (bg > 7) ? (bg & 7) : bg; diff --git a/src/LYDownload.c b/src/LYDownload.c index acf6d882..114adb16 100644 --- a/src/LYDownload.c +++ b/src/LYDownload.c @@ -619,10 +619,9 @@ PUBLIC int LYdownload_options ARGS2( <em>Downloaded link:</em> %s\n", downloaded_url); - if (!no_disk_save && !child_lynx) fprintf(fp0, "\ - <em>Suggested file name:</em> %s%s\n", - (lynx_save_space ? lynx_save_space : ""), sug_filename); + <em>Suggested file name:</em> %s\n", + sug_filename); fprintf(fp0, "\n%s options:\n", (user_mode == NOVICE_MODE) ? "Standard download" : "Download"); diff --git a/src/LYGlobalDefs.h b/src/LYGlobalDefs.h index 263ca075..92db467a 100644 --- a/src/LYGlobalDefs.h +++ b/src/LYGlobalDefs.h @@ -177,6 +177,7 @@ extern BOOLEAN vi_keys; /* TRUE to turn on vi-like key movement */ extern BOOLEAN emacs_keys; /* TRUE to turn on emacs-like key movement */ extern int keypad_mode; /* is set to either NUMBERS_AS_ARROWS * * or LINKS_ARE_NUMBERED */ +extern BOOLEAN verbose_links; /* TRUE if links are preceded by (LINK) */ extern BOOLEAN case_sensitive; /* TRUE to turn on case sensitive search */ extern BOOLEAN no_inside_telnet; /* this and following are restrictions */ extern BOOLEAN no_outside_telnet; diff --git a/src/LYMain.c b/src/LYMain.c index e749f638..25ba5b70 100644 --- a/src/LYMain.c +++ b/src/LYMain.c @@ -187,6 +187,7 @@ PUBLIC BOOLEAN check_mail = CHECKMAIL; PUBLIC BOOLEAN vi_keys = VI_KEYS_ALWAYS_ON; PUBLIC BOOLEAN emacs_keys = EMACS_KEYS_ALWAYS_ON; PUBLIC int keypad_mode = DEFAULT_KEYPAD_MODE; +PUBLIC BOOLEAN verbose_links = VERBOSE_LINKS; PUBLIC BOOLEAN case_sensitive = CASE_SENSITIVE_ALWAYS_ON; PUBLIC BOOLEAN telnet_ok = TRUE; PUBLIC BOOLEAN news_ok = TRUE; diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c index 5d062f73..46ec32e3 100644 --- a/src/LYMainLoop.c +++ b/src/LYMainLoop.c @@ -209,7 +209,6 @@ int mainloop NOARGS BOOLEAN show_dotfiles_flag = show_dotfiles; BOOLEAN user_mode_flag = user_mode; int CurrentAssumeCharSet_flag = UCLYhndl_for_unspec; - int CurrentAssumeLocalCharSet_flag = UCLYhndl_HTFile_for_unspec; int CurrentCharSet_flag = current_char_set; int HTfileSortMethod_flag = HTfileSortMethod; #endif @@ -2024,10 +2023,8 @@ new_cmd: /* */ HTAlert(RELOADING_FORM); } - newdoc.line = ((curdoc.line > 0) ? - curdoc.line : 1); - newdoc.link = ((curdoc.link > -1) ? - curdoc.link : 0); + newdoc.line = curdoc.line; + newdoc.link = curdoc.link; #endif /* NO_ASSUME_SAME_DOC */ FREE(curdoc.address); /* so it doesn't get pushed */ #ifdef VMS @@ -2060,6 +2057,8 @@ new_cmd: /* HTuncache_current_document(); StrAllocCopy(newdoc.address, curdoc.address); FREE(curdoc.address); + newdoc.line = curdoc.line; + newdoc.link = curdoc.link; } if (historical_comments) historical_comments = FALSE; @@ -2090,6 +2089,8 @@ new_cmd: /* HTuncache_current_document(); StrAllocCopy(newdoc.address, curdoc.address); FREE(curdoc.address); + newdoc.line = curdoc.line; + newdoc.link = curdoc.link; } } if (minimal_comments) @@ -2120,6 +2121,8 @@ new_cmd: /* HTuncache_current_document(); StrAllocCopy(newdoc.address, curdoc.address); FREE(curdoc.address); + newdoc.line = curdoc.line; + newdoc.link = curdoc.link; } if (soft_dquotes) soft_dquotes = FALSE; @@ -2154,11 +2157,11 @@ new_cmd: /* FREE(curdoc.address); } #ifdef NO_ASSUME_SAME_DOC - newdoc.line=1; - newdoc.link=0; + newdoc.line = 1; + newdoc.link = 0; #else - newdoc.line = ((curdoc.line > 0) ? curdoc.line : 1); - newdoc.link = ((curdoc.link > -1) ? curdoc.link : 0); + newdoc.line = curdoc.line; + newdoc.link = curdoc.link; #endif /* NO_ASSUME_SAME_DOC */ if (New_DTD) New_DTD = NO; @@ -3736,7 +3739,6 @@ if (!LYUseFormsOptions) { !strncmp(curdoc.address, "ftp:", 4))) || CurrentCharSet_flag != current_char_set || CurrentAssumeCharSet_flag != UCLYhndl_for_unspec || - CurrentAssumeLocalCharSet_flag != UCLYhndl_HTFile_for_unspec || verbose_img_flag != verbose_img || LYRawMode_flag != LYRawMode || LYSelectPopups_flag != LYSelectPopups || @@ -3793,10 +3795,8 @@ if (!LYUseFormsOptions) { newdoc.line = 1; newdoc.link = 0; #else - newdoc.line = ((curdoc.line > 0) ? - curdoc.line : 1); - newdoc.link = ((curdoc.link > -1) ? - curdoc.link : 0); + newdoc.line = curdoc.line; + newdoc.link = curdoc.link; #endif /* NO_ASSUME_SAME_DOC */ LYforce_no_cache = TRUE; FREE(curdoc.address); /* So it doesn't get pushed. */ @@ -3807,7 +3807,6 @@ if (!LYUseFormsOptions) { HTfileSortMethod_flag = HTfileSortMethod; CurrentCharSet_flag = current_char_set; CurrentAssumeCharSet_flag = UCLYhndl_for_unspec; - CurrentAssumeLocalCharSet_flag = UCLYhndl_HTFile_for_unspec; show_dotfiles_flag = show_dotfiles; verbose_img_flag = verbose_img; LYRawMode_flag = LYRawMode; @@ -4220,10 +4219,8 @@ if (!LYUseFormsOptions) { * Seek old position, * which probably changed. */ - newdoc.line = - ((curdoc.line > 0) ? curdoc.line : 1); - newdoc.link = - ((curdoc.link > -1) ? curdoc.link : 0); + newdoc.line = curdoc.line; + newdoc.link = curdoc.link; #endif /* NO_SEEK_OLD_POSITION */ clear(); /* clear the screen */ } diff --git a/src/LYOptions.c b/src/LYOptions.c index 58202a82..fa59d8fb 100644 --- a/src/LYOptions.c +++ b/src/LYOptions.c @@ -43,8 +43,70 @@ PRIVATE int popup_choice PARAMS(( #define MAXCHOICES 10 +/* + * Values for the options menu. - FM + * + * L_foo values are the Y coordinates for the menu item. + * B_foo values are the X coordinates for the item's prompt string. + * C_foo values are the X coordinates for the item's value string. + */ +#define L_EDITOR 2 +#define L_DISPLAY 3 + +#define L_HOME 4 +#define C_MULTI 24 +#define B_BOOK 34 +#define C_DEFAULT 50 + +#define L_FTPSTYPE 5 +#define L_MAIL_ADDRESS 6 +#define L_SSEARCH 7 +#define L_LANGUAGE 8 +#define L_PREF_CHARSET 9 +#define L_ASSUME_CHARSET (L_PREF_CHARSET + 1) +#define L_CHARSET 10 +#define L_RAWMODE 11 + +#define L_COLOR L_RAWMODE +#define B_COLOR 44 +#define C_COLOR 62 + +#define L_BOOL_A 12 +#define B_VIKEYS 5 +#define C_VIKEYS 15 +#define B_EMACSKEYS 22 +#define C_EMACSKEYS 36 +#define B_SHOW_DOTFILES 44 +#define C_SHOW_DOTFILES 62 + +#define L_BOOL_B 13 +#define B_SELECT_POPUPS 5 +#define C_SELECT_POPUPS 36 +#define B_SHOW_CURSOR 44 +#define C_SHOW_CURSOR 62 + +#define L_KEYPAD 14 +#define L_LINEED 15 + +#ifdef DIRED_SUPPORT +#define L_DIRED 16 +#define L_USER_MODE 17 +#define L_USER_AGENT 18 +#define L_EXEC 19 +#else +#define L_USER_MODE 16 +#define L_USER_AGENT 17 +#define L_EXEC 18 +#endif /* DIRED_SUPPORT */ + +#define L_VERBOSE_IMAGES L_USER_MODE +#define B_VERBOSE_IMAGES 50 +#define C_VERBOSE_IMAGES (B_VERBOSE_IMAGES + 21) + + #define COL_OPTION_VALUES 36 /* display column where option values start */ +/* a kludge to add assume_charset only in ADVANCED mode... */ #define L_Bool_A (use_assume_charset ? L_BOOL_A + 1 : L_BOOL_A) #define L_Bool_B (use_assume_charset ? L_BOOL_B + 1 : L_BOOL_B) #define L_Exec (use_assume_charset ? L_EXEC + 1 : L_EXEC) @@ -56,9 +118,8 @@ PRIVATE int popup_choice PARAMS(( #define L_Dired (use_assume_charset ? L_DIRED + 1 : L_DIRED) #define L_User_Mode (use_assume_charset ? L_USER_MODE + 1 : L_USER_MODE) #define L_User_Agent (use_assume_charset ? L_USER_AGENT + 1 : L_USER_AGENT) -#endif /* !EXP_FORMS_OPTIONS */ -#ifndef EXP_FORMS_OPTIONS + PUBLIC void LYoptions NOARGS { #ifdef ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS @@ -72,7 +133,6 @@ PUBLIC void LYoptions NOARGS char *choices[MAXCHOICES]; int CurrentCharSet = current_char_set; int CurrentAssumeCharSet = UCLYhndl_for_unspec; - int CurrentAssumeLocalCharSet = UCLYhndl_HTFile_for_unspec; int CurrentShowColor = LYShowColor; BOOLEAN CurrentRawMode = LYRawMode; BOOLEAN AddValueAccepted = FALSE; @@ -785,7 +845,6 @@ draw_options: HTMLSetUseDefaultRawMode(current_char_set, LYRawMode); HTMLSetCharacterHandling(current_char_set); CurrentAssumeCharSet = UCLYhndl_for_unspec; - CurrentAssumeLocalCharSet = UCLYhndl_HTFile_for_unspec; CurrentRawMode = LYRawMode; #if !defined(VMS) && !defined(USE_SLANG) if (!LYSelectPopups) @@ -3210,10 +3269,10 @@ static char * user_agent_string = "user_agent"; #define PutLabel(fp, text) \ fprintf(fp," %-33s: ", text) -#define PutTextInput(fp, name, value, size, disable) \ +#define PutTextInput(fp, Name, Value, Size, disable) \ fprintf(fp,\ "<input size=%d type=\"text\" name=\"%s\" value=\"%s\" %s>\n",\ - (int) size, name, value, disable) + (int) Size, Name, Value, disable) #define PutOption(fp, flag, html, name) \ fprintf(fp,"<option value=\"%s\" %s>%s\n", html, SELECTED(flag), name) diff --git a/src/LYOptions.h b/src/LYOptions.h index ccbc5b1d..2752bde8 100644 --- a/src/LYOptions.h +++ b/src/LYOptions.h @@ -3,7 +3,7 @@ #include <LYStructs.h> -extern BOOLEAN term_options; +extern BOOLEAN term_options; /* for LYgetstr() */ extern void edit_bookmarks NOPARAMS; @@ -12,67 +12,6 @@ extern int gen_options PARAMS((char **newfile)); #ifndef EXP_FORMS_OPTIONS extern void LYoptions NOPARAMS; - -/* - * Values for the options menu. - FM - * - * L_foo values are the Y coordinates for the menu item. - * B_foo values are the X coordinates for the item's prompt string. - * C_foo values are the X coordinates for the item's value string. - */ -#define L_EDITOR 2 -#define L_DISPLAY 3 - -#define L_HOME 4 -#define C_MULTI 24 -#define B_BOOK 34 -#define C_DEFAULT 50 - -#define L_FTPSTYPE 5 -#define L_MAIL_ADDRESS 6 -#define L_SSEARCH 7 -#define L_LANGUAGE 8 -#define L_PREF_CHARSET 9 -#define L_ASSUME_CHARSET (L_PREF_CHARSET + 1) -#define L_CHARSET 10 -#define L_RAWMODE 11 - -#define L_COLOR L_RAWMODE -#define B_COLOR 44 -#define C_COLOR 62 - -#define L_BOOL_A 12 -#define B_VIKEYS 5 -#define C_VIKEYS 15 -#define B_EMACSKEYS 22 -#define C_EMACSKEYS 36 -#define B_SHOW_DOTFILES 44 -#define C_SHOW_DOTFILES 62 - -#define L_BOOL_B 13 -#define B_SELECT_POPUPS 5 -#define C_SELECT_POPUPS 36 -#define B_SHOW_CURSOR 44 -#define C_SHOW_CURSOR 62 - -#define L_KEYPAD 14 -#define L_LINEED 15 - -#ifdef DIRED_SUPPORT -#define L_DIRED 16 -#define L_USER_MODE 17 -#define L_USER_AGENT 18 -#define L_EXEC 19 -#else -#define L_USER_MODE 16 -#define L_USER_AGENT 17 -#define L_EXEC 18 -#endif /* DIRED_SUPPORT */ - -#define L_VERBOSE_IMAGES L_USER_MODE -#define B_VERBOSE_IMAGES 50 -#define C_VERBOSE_IMAGES (B_VERBOSE_IMAGES + 21) - #endif /* !EXP_FORMS_OPTIONS */ #endif /* LYOPTIONS_H */ diff --git a/src/LYReadCFG.c b/src/LYReadCFG.c index d1a48146..551f6219 100644 --- a/src/LYReadCFG.c +++ b/src/LYReadCFG.c @@ -950,6 +950,7 @@ static Config_Type Config_Table [] = #endif PARSE_SET("use_select_popups", CONF_BOOL, LYSelectPopups), PARSE_SET("verbose_images", CONF_BOOL, verbose_img), + PARSE_SET("verbose_links", CONF_BOOL, verbose_links), PARSE_SET("vi_keys_always_on", CONF_BOOL, vi_keys), PARSE_FUN("viewer", CONF_FUN, viewer_fun), PARSE_ENV("wais_proxy", CONF_ENV, 0 ), diff --git a/src/LYShowInfo.c b/src/LYShowInfo.c index 32d31a6c..ca01bf9e 100644 --- a/src/LYShowInfo.c +++ b/src/LYShowInfo.c @@ -26,7 +26,7 @@ #ifdef HAVE_CONFIG_H #define HAVE_CFG_DEFS_H -#define PutDefs(table, n) fprintf(fp0, "%-35s %s\n", table[n].name, table[n].value) +#define PutDefs(table, N) fprintf(fp0, "%-35s %s\n", table[N].name, table[N].value) /* * Compile-time definitions info, returns local url diff --git a/src/LYUtils.c b/src/LYUtils.c index 7808d659..ff01e020 100644 --- a/src/LYUtils.c +++ b/src/LYUtils.c @@ -5434,7 +5434,7 @@ PRIVATE BOOL IsOurFile ARGS1(char *, name) && S_ISREG(data.st_mode) && data.st_nlink == 1 && data.st_uid == getuid()) { - int linked = 0; + int linked = FALSE; #if HAVE_LSTAT char *path = 0; char *leaf; @@ -5452,27 +5452,22 @@ PRIVATE BOOL IsOurFile ARGS1(char *, name) * to one of the real user's files. */ if (S_ISLNK(data.st_mode)) { - if (!linked) { - linked++; - } else { /* a link-to-link is a little hard to digest */ - break; - } + linked = TRUE; /* could be link-to-link; doesn't matter */ } else if (S_ISDIR(data.st_mode)) { if (linked) { - if (--linked == 0) { - /* - * We assume that a properly-configured system has the - * unwritable directories owned by root. This is not - * necessarily so (bin, news, etc., may), but the only - * uid we can count on is 0. It would be nice to add a - * check for the gid also, but that wouldn't be - * portable. - */ - if (data.st_uid != 0 - || data.st_mode & S_IWOTH) { - linked = 1; - break; - } + linked = FALSE; + /* + * We assume that a properly-configured system has the + * unwritable directories owned by root. This is not + * necessarily so (bin, news, etc., may), but the only + * uid we can count on is 0. It would be nice to add a + * check for the gid also, but that wouldn't be + * portable. + */ + if (data.st_uid != 0 + || data.st_mode & S_IWOTH) { + linked = TRUE; /* force an error-return */ + break; } } } else if (linked) { diff --git a/userdefs.h b/userdefs.h index bb298ab5..921bea7b 100644 --- a/userdefs.h +++ b/userdefs.h @@ -476,7 +476,7 @@ * with the Up-Arrow or Down-Arrow keys after entering the 'g'oto * command, whether or not a default is offered. */ -#define GOTOBUFFER FALSE +#define GOTOBUFFER TRUE /***************************** * JUMPFILE is the default local file checked for shortcut URLs when @@ -514,7 +514,7 @@ * jumps files and corresponding key mappings, each will have its own * circular buffer. */ -#define JUMPBUFFER FALSE +#define JUMPBUFFER TRUE /******************************** * If PERMIT_GOTO_FROM_JUMP is defined, then a : or / in a jump target @@ -888,7 +888,15 @@ * * The default defined here can be changed in lynx.cfg. */ -#define VERBOSE_IMAGES FALSE +#define VERBOSE_IMAGES TRUE + +/****************************** +* VERBOSE_LINKS controls whether Lynx precedes links with the string "(LINK)", +* which is done to accommodate blind users. +* +* If this option is set here, it will override the setting in userdefs.h. +*/ +#define VERBOSE_LINKS FALSE /****************************** * BOXVERT and BOXHORI control the layout of popup menus. Set to 0 if your @@ -1184,7 +1192,7 @@ * explicit Y or y to confirm. The default defined here can be changed * in lynx.cfg. */ -#define QUIT_DEFAULT_YES TRUE +#define QUIT_DEFAULT_YES FALSE /******************************** * These definitions specify files created or used in conjunction @@ -1216,12 +1224,12 @@ * the version definition with the Project Version on checkout. Just * ignore it. - kw */ /* $Format: "#define LYNX_VERSION \"$ProjectVersion$\""$ */ -#define LYNX_VERSION "2.8.1pre.8" +#define LYNX_VERSION "2.8.1pre.9" #define LYNX_WWW_HOME "http://lynx.browser.org/" #define LYNX_WWW_DIST "http://www.slcc.edu/lynx/current/" #define LYNX_RELEASE FALSE /* $Format: "#define LYNX_DATE \"$ProjectDate$\""$ */ -#define LYNX_DATE "Sun, 04 Oct 1998 19:27:15 -0600" +#define LYNX_DATE "Sat, 10 Oct 1998 14:53:16 -0600" #define LYNX_DATE_OFF 5 /* truncate the automatically-generated date */ #define LYNX_DATE_LEN 11 /* truncate the automatically-generated date */ #define LYNX_RELEASE_DATE "1998" |