diff options
author | Thomas E. Dickey <dickey@invisible-island.net> | 1998-09-07 10:39:47 -0400 |
---|---|---|
committer | Thomas E. Dickey <dickey@invisible-island.net> | 1998-09-07 10:39:47 -0400 |
commit | 5816641fc3a761e00d154c4dea9551a0027a7c63 (patch) | |
tree | 5008269ea8500d473cb7ba650b68e177102b9e66 | |
parent | 7faa97b815d7f35ffbbb978e5fef1bd25c420ef5 (diff) | |
download | lynx-snapshots-5816641fc3a761e00d154c4dea9551a0027a7c63.tar.gz |
snapshot of project "lynx", label v2-8-1dev_25
81 files changed, 2425 insertions, 2080 deletions
diff --git a/CHANGES b/CHANGES index f7f2f1d7..e821ac89 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,99 @@ Changes since Lynx 2.8 release ================================================================================ +1998-09-06 (2.8.1dev.25) +* corrected compiled-in path for lynx_site.txt - TD +* implement logic for exec-links in forms-options page - TD +* add configure options --enable-exec-links and --enable-exec-scripts - TD +* correct logic for show-color in forms-options page (reported by DK) - TD. +* implement logic to set $DISPLAY in forms-options page - TD +* add/use functions LYsetXDisplay() and LYgetXDisplay() to reduce clutter - TD +* retain help-link on internal pages only for those where the pages would be + pushed onto the history stack, and only in novice mode - TD +* absorb LYSystem.h into LYUtils.h, adding LYSystem() and LYSysShell functions + to LYUtils.c to hide djgpp clutter - TD +* limit strings passed to mailer in LYMail.c to 7-bit ASCII, converting other + characters to '?'. This guards against trash on the end of the mailing + address in a mailto link (from Duncan Simpson <dps@io.stargate.co.uk>). +* add fallback definitions for <sys/stat.h> S_xxx macros to tcp.h (from report + by Francisco A Tomei Torres <fatomei@sandburg.unm.edu> that OpenStep 4.0 + lacks definition for S_IWOTH) - TD +* modify quote_pathname() so that for DJGPP it does not put single-quotes + around the result - DK +* correct a missing assignment to turn bold off in split_line (GridText.c) - LE +* Fixed: forms input in display_partial mode! Previously hightext was printed + at wrong positions while loading was in process (try -debug_partial to see + the bug). Fix made in HText_pageDisplay: we call HText_trimHightext() which + was the main part of HText_endAppend() before. People, no more problems + reported from incremental rendering mode! - LP +* set PARTIAL mode ON by default, unless it disabled in lynx.cfg or by + configure --disable-partial option - LP +* restore temporary -debug_partial switch, broken in dev.23. - LP +* made trace in HText_appendCharacter() a little more readable + for lynx special characters - LP +* chartrans: human-readable character set names in Options Menu now changed + according to Netscape 4.x style - "language (MIMEname)", it looks more useful + and reduce chaos in people's heads. Documentation corrected + (option_help.html/Lynx_User_guide.html). Minor tip: "Central and Eastern + European" was truncated to "Eastern European" because of space limitation in + popup menu. (Changes in chrtrans/*.tbl, LYCharSets.c, also docs including + userdefs.h/lynx.cfg). Since names were changed, users on display other than + iso-8859-1 should go to options menu and resave .lynxrc (and probably correct + lynx.cfg - character_set now uses MIME notation in sync with other charset + settings, although complete name string is still acceptable for this field). + - LP +* an attempt made to tweak the code replacing lynx internal 'main' charset '0' + (iso-8859-1 in fact) with its MIME name. - LP +* rename ifdef EXP_8BIT_TOUPPER in favor of lynx.cfg switch FORCE_8BIT_TOUPPER + - LP +* remove a lot of "(char **)" casts from HTML.c which obscured some type + mismatches - TD +* add/use functions LYIsHtmlSep, LYAddHtmlSep, LYTrimHtmlSep, LYIsPathSep, + LYAddPathSep, LYTrimPathSep to reduce clutter - TD +* fix a bug, present at least since dev.17, where lynx can't download files if + it is started from one of the root directories of a disk drive, since it is + trying to write to "c:\\file.ext", rather than "c:\file.ext" - DK +* correct a comment in userdefs.h; commercial Japanese sites are named with + co.jp, not com.jp (Larry Virden). +* correct some debug messages in LYCookie.c - BJP +* fix a missing </h1> in ShowInfo.c - SKY +* modified '+'->' ' conversion to allow Unix commands to have '+' beginning + options - TD +* sorted all option items (i.e., static variables, postoptions(), gen_options()) + according to the sections they are in - SKY +* added '+'->' ' conversion for forms-options values - SKY +* centered 'save to disk' and put a dash between 'accept' and 'reset' for + clarity - SKY +* add "-cookie_file=" commandline option to specify cookie file - BJP +* add "cookie_file=" option to .lynxrc - BJP +* add "cookie_file:" option to lynx.cfg - BJP +* change default cookie file to "Home_Dir()/cookies" (or sys$login:cookies + for VMS, which may or may not work, DOS also needs to be checked) - BJP +* add cookies switch to options menu - LP +* Security considerations and form-based options: items restricted in + gen_options() should be ALSO restricted under the same conditions in + postoptions() to prevent a limited access user to edit option's HTML code + manually and submit a restricted items. This may be not a good idea to have + two functions in sync but those functions are synchronized anyway. Please + read comments inside the functions if change something! - LP +* add new functions BeginInternalPage and EndInternalPage to reduce clutter in + code that sets up internal pages (email from LP). +* change version in makefile.in to 2-8-1 (reported by DK). +* the code in GridText that adds control characters to the current line + does not test for buffer overflow. Normally Lynx gets away with this because + it will wrap the current line as soon as the line exceeds the display width, + but if you have a file with nothing but control characters with no + displayable text in-between (a few thousand hidden links will do), then Lynx + bombs. Modified to silently ignore excess control characters as well as add + a few extra bytes when allocating the line buffer to allow for a bunch of + control characters followed by a kanji or utf-8 sequence. (patch by Dick + Wesseling <ftu@fi.uu.nl>) +* remove WWW/Library/Implementation/HTInit.c, which is not used, since + src/HTInit.c has this functionality - TD +* change ID="<number>" in Lynx_users_guide.html to ID="<name>" to appease + weblint; tested with IE&NS - TD. +* Al's convention of '#<number>' into '#<id name>' in Lynx_users_guide.html is + included - SKY 1998-08-31 (2.8.1dev.24) * re-correct DH's patch for COLLAPSE_BR_TAGS (reported by Larry Virden) - TD 1998-08-29 (2.8.1dev.23) @@ -29,8 +122,6 @@ Changes since Lynx 2.8 release 'config.cache'. Its corresponding makefile macro is 'install-log' - SKY * New Form-based options page is re-organized; logical sections are introduced and sorted alphabetically (except for 'User Mode' - SKY -* Al's convention of '#<number>' into '#<id name>' in Lynx_users_guide.html is - included - SKY * All links in the help files are marked, i.e., each 'href="../_filename.html_#section"' is converted to 'href="../@FILENAME@#section"'. This is useful if a help filename or diff --git a/INSTALLATION b/INSTALLATION index bc23c434..1067ec73 100644 --- a/INSTALLATION +++ b/INSTALLATION @@ -222,10 +222,9 @@ II. Compile instructions -- UNIX Turn off code that lets Lynx display parts of a long page while loading it. - --enable-8bit-toupper (define EXP_8BIT_TOUPPER) - Use experimental 8-bit case-conversion for case-insensitive - searches in non-ASCII display character set, this overrides locale - settings. + --enable-cgi-links (define LYNXCGI_LINKS) + Allows lynx to access a cgi script directly without the need for + a http daemon. --enable-color-style (define USE_COLOR_STYLE) Use this option to enable optional and *experimental* color style. @@ -239,6 +238,12 @@ II. Compile instructions -- UNIX configuration supports the use of 'default' for colors even without this option. + --enable-exec-links (define EXEC_LINKS) + Allows lynx to execute programs by accessing a link. + + --enable-exec-scripts (define EXEC_SCRIPTS) + Allows lynx to execute programs inferred from a link. + --enable-externs (define USE_EXTERNALS) Use this option to enable external application support. (See lynx.cfg.) @@ -258,10 +263,6 @@ II. Compile instructions -- UNIX a feature which could, however, compromise a secure transaction by forcing inappropriate resubmission of form content. - --enable-cgi-links (define LYNXCGI_LINKS) - Allows lynx to access a cgi script directly without the need for - a http daemon. - --enable-nsl-fork (define NSL_FORK) Disabled by default, this allows interruption of NSL requests, so that `z' will stop the `look-up' phase of a connection. diff --git a/LYMessages_en.h b/LYMessages_en.h index 65b5eddb..8d09adad 100644 --- a/LYMessages_en.h +++ b/LYMessages_en.h @@ -129,6 +129,7 @@ "Reloading document. Any form entries will be lost!" #define CANNOT_TRANSCODE_FORM "Warning: Cannot transcode form data to charset %s!" #define BAD_FORM_MAILTO "Malformed mailto form submission! Cancelled!" +#define MAILTO_SQUASH_CTL "Warning! Control codes in mail address replaced by ?" #define FORM_MAILTO_DISALLOWED "Mail disallowed! Cannot submit." #define FORM_MAILTO_FAILED "Mailto form submission failed!" #define FORM_MAILTO_CANCELLED "Mailto form submission Cancelled!!!" diff --git a/WWW/Library/Implementation/HTInit.c b/WWW/Library/Implementation/HTInit.c deleted file mode 100644 index d367ca06..00000000 --- a/WWW/Library/Implementation/HTInit.c +++ /dev/null @@ -1,176 +0,0 @@ -/* Configuration-specific Initialialization HTInit.c -** ---------------------------------------- -*/ - -/* Define a basic set of suffixes and presentations -** ------------------------------------------------ -** -*/ - -#include <HTUtils.h> - -/* Implements: -*/ -#include <HTInit.h> - -#include <HTML.h> -#include <HTPlain.h> -#include <HTMLGen.h> -#include <HTFile.h> -#include <HTFormat.h> -#include <HTMIME.h> -#include <HTWSRC.h> -#include <HTFWriter.h> - -#include <LYLeaks.h> - -PUBLIC void HTFormatInit NOARGS -{ -#ifdef NeXT - HTSetPresentation("application/postscript", "open %s", 1.0, 2.0, 0.0, 0); - /* The following needs the GIF previewer -- you might not have it. */ - HTSetPresentation("image/gif", "open %s", 0.3, 2.0, 0.0, 0); - HTSetPresentation("image/x-tiff", "open %s", 1.0, 2.0, 0.0, 0); - HTSetPresentation("audio/basic", "open %s", 1.0, 2.0, 0.0, 0); - HTSetPresentation("*", "open %s", 1.0, 0.0, 0.0, 0); -#else - if (getenv("DISPLAY")) { /* Must have X11 */ - HTSetPresentation("application/postscript", "ghostview %s", - 1.0, 3.0, 0.0, 0); - HTSetPresentation("image/gif", "xv %s", 1.0, 3.0, 0.0, 0); - HTSetPresentation("image/x-tiff", "xv %s", 1.0, 3.0, 0.0, 0); - HTSetPresentation("image/jpeg", "xv %s", 1.0, 3.0, 0.0, 0); - } -#endif - HTSetConversion("www/mime", "*", HTMIMEConvert, - 1.0, 0.0, 0.0, 0); - HTSetConversion("application/x-wais-source","*", HTWSRCConvert, - 1.0, 0.0, 0.0, 0); - HTSetConversion("text/html", "text/x-c", HTMLToC, - 0.5, 0.0, 0.0, 0); - HTSetConversion("text/html", "text/plain", HTMLToPlain, - 0.5, 0.0, 0.0, 0); - HTSetConversion("text/html", "www/present", HTMLPresent, - 1.0, 0.0, 0.0, 0); - HTSetConversion("text/plain", "text/html", HTPlainToHTML, - 1.0, 0.0, 0.0, 0); - HTSetConversion("text/plain", "www/present", HTPlainPresent, - 1.0, 0.0, 0.0, 0); - HTSetConversion("application/octet-stream", "www/present", HTSaveLocally, - 0.1, 0.0, 0.0, 0); - HTSetConversion("www/unknown", "www/present", HTSaveLocally, - 0.3, 0.0, 0.0, 0); - HTSetConversion("www/source", "www/present", HTSaveLocally, - 0.3, 0.0, 0.0, 0); -} - - - -/* Define a basic set of suffixes -** ------------------------------ -** -** The LAST suffix for a type is that used for temporary files -** of that type. -** The quality is an apriori bias as to whether the file should be -** used. Not that different suffixes can be used to represent files -** which are of the same format but are originals or regenerated, -** with different values. -*/ - -#ifndef NO_INIT -PUBLIC void HTFileInit NOARGS -{ - /* Suffix Contenet-Type Content-Encoding Quality */ - - HTSetSuffix(".mime", "www/mime", "8bit", 1.0); /* Internal -- MIME is */ - /* not recursive */ - HTSetSuffix(".bin", "application/octet-stream", "binary", 1.0); /* Uninterpreted binary */ - HTSetSuffix(".oda", "application/oda", "binary", 1.0); - HTSetSuffix(".pdf", "application/pdf", "binary", 1.0); - HTSetSuffix(".ai", "application/postscript", "8bit", 0.5); /* Adobe Illustrator */ - HTSetSuffix(".PS", "application/postscript", "8bit", 0.8); /* PostScript */ - HTSetSuffix(".eps", "application/postscript", "8bit", 0.8); - HTSetSuffix(".ps", "application/postscript", "8bit", 0.8); - HTSetSuffix(".rtf", "application/x-rtf", "7bit", 1.0); /* RTF */ - HTSetSuffix(".Z", "application/x-compressed", "binary", 1.0); /* Compressed data */ - HTSetSuffix(".csh", "application/x-csh", "7bit", 0.5); /* C-shell script */ - HTSetSuffix(".dvi", "application/x-dvi", "binary", 1.0); /* TeX DVI */ - HTSetSuffix(".hdf", "application/x-hdf", "binary", 1.0); /* NCSA HDF data file */ - HTSetSuffix(".latex", "application/x-latex", "8bit", 1.0); /* LaTeX source */ - HTSetSuffix(".nc", "application/x-netcdf", "binary", 1.0); /* Unidata netCDF data */ - HTSetSuffix(".cdf", "application/x-netcdf", "binary", 1.0); - HTSetSuffix(".sh", "application/x-sh", "7bit", 0.5); /* Shell-script */ - HTSetSuffix(".tcl", "application/x-tcl", "7bit", 0.5); /* TCL-script */ - HTSetSuffix(".tex", "application/x-tex", "8bit", 1.0); /* TeX source */ - HTSetSuffix(".texi", "application/x-texinfo", "7bit", 1.0); /* Texinfo */ - HTSetSuffix(".texinfo","application/x-texinfo", "7bit", 1.0); - HTSetSuffix(".t", "application/x-troff", "7bit", 0.5); /* Troff */ - HTSetSuffix(".roff", "application/x-troff", "7bit", 0.5); - HTSetSuffix(".tr", "application/x-troff", "7bit", 0.5); - HTSetSuffix(".man", "application/x-troff-man", "7bit", 0.5); /* Troff with man macros*/ - HTSetSuffix(".me", "application/x-troff-me", "7bit", 0.5); /* Troff with me macros */ - HTSetSuffix(".ms", "application/x-troff-ms", "7bit", 0.5); /* Troff with ms macros */ - HTSetSuffix(".src", "application/x-wais-source", "7bit", 1.0); /* WAIS source */ - HTSetSuffix(".zip", "application/zip", "binary", 1.0); /* PKZIP */ - HTSetSuffix(".bcpio", "application/x-bcpio", "binary", 1.0); /* Old binary CPIO */ - HTSetSuffix(".cpio", "application/x-cpio", "binary", 1.0); /* POSIX CPIO */ - HTSetSuffix(".gtar", "application/x-gtar", "binary", 1.0); /* Gnu tar */ - HTSetSuffix(".shar", "application/x-shar", "8bit", 1.0); /* Shell archive */ - HTSetSuffix(".sv4cpio","application/x-sv4cpio", "binary", 1.0); /* SVR4 CPIO */ - HTSetSuffix(".sv4crc", "application/x-sv4crc", "binary", 1.0); /* SVR4 CPIO with CRC */ - HTSetSuffix(".tar", "application/x-tar", "binary", 1.0); /* 4.3BSD tar */ - HTSetSuffix(".ustar", "application/x-ustar", "binary", 1.0); /* POSIX tar */ - HTSetSuffix(".snd", "audio/basic", "binary", 1.0); /* Audio */ - HTSetSuffix(".au", "audio/basic", "binary", 1.0); - HTSetSuffix(".aiff", "audio/x-aiff", "binary", 1.0); - HTSetSuffix(".aifc", "audio/x-aiff", "binary", 1.0); - HTSetSuffix(".aif", "audio/x-aiff", "binary", 1.0); - HTSetSuffix(".wav", "audio/x-wav", "binary", 1.0); /* Windows+ WAVE format */ - HTSetSuffix(".gif", "image/gif", "binary", 1.0); /* GIF */ - HTSetSuffix(".ief", "image/ief", "binary", 1.0); /* Image Exchange fmt */ - HTSetSuffix(".jpg", "image/jpeg", "binary", 1.0); /* JPEG */ - HTSetSuffix(".JPG", "image/jpeg", "binary", 1.0); - HTSetSuffix(".JPE", "image/jpeg", "binary", 1.0); - HTSetSuffix(".jpe", "image/jpeg", "binary", 1.0); - HTSetSuffix(".JPEG", "image/jpeg", "binary", 1.0); - HTSetSuffix(".jpeg", "image/jpeg", "binary", 1.0); - HTSetSuffix(".tif", "image/tiff", "binary", 1.0); /* TIFF */ - HTSetSuffix(".tiff", "image/tiff", "binary", 1.0); - HTSetSuffix(".ras", "image/cmu-raster", "binary", 1.0); - HTSetSuffix(".pnm", "image/x-portable-anymap", "binary", 1.0); /* PBM Anymap format */ - HTSetSuffix(".pbm", "image/x-portable-bitmap", "binary", 1.0); /* PBM Bitmap format */ - HTSetSuffix(".pgm", "image/x-portable-graymap", "binary", 1.0); /* PBM Graymap format */ - HTSetSuffix(".ppm", "image/x-portable-pixmap", "binary", 1.0); /* PBM Pixmap format */ - HTSetSuffix(".rgb", "image/x-rgb", "binary", 1.0); - HTSetSuffix(".xbm", "image/x-xbitmap", "binary", 1.0); /* X bitmap */ - HTSetSuffix(".xpm", "image/x-xpixmap", "binary", 1.0); /* X pixmap format */ - HTSetSuffix(".xwd", "image/x-xwindowdump", "binary", 1.0); /* X window dump (xwd) */ - HTSetSuffix(".html", "text/html", "8bit", 1.0); /* HTML */ - HTSetSuffix(".c", "text/plain", "7bit", 0.5); /* C source */ - HTSetSuffix(".h", "text/plain", "7bit", 0.5); /* C headers */ - HTSetSuffix(".C", "text/plain", "7bit", 0.5); /* C++ source */ - HTSetSuffix(".cc", "text/plain", "7bit", 0.5); /* C++ source */ - HTSetSuffix(".hh", "text/plain", "7bit", 0.5); /* C++ headers */ - HTSetSuffix(".m", "text/plain", "7bit", 0.5); /* Objective-C source */ - HTSetSuffix(".f90", "text/plain", "7bit", 0.5); /* Fortran 90 source */ - HTSetSuffix(".txt", "text/plain", "7bit", 0.5); /* Plain text */ - HTSetSuffix(".rtx", "text/richtext", "7bit", 1.0); /* MIME Richtext format */ - HTSetSuffix(".tsv", "text/tab-separated-values", "7bit", 1.0); /* Tab-separated values */ - HTSetSuffix(".etx", "text/x-setext", "7bit", 0.9); /* Struct Enchanced Txt */ - HTSetSuffix(".MPG", "video/mpeg", "binary", 1.0); /* MPEG */ - HTSetSuffix(".mpg", "video/mpeg", "binary", 1.0); - HTSetSuffix(".MPE", "video/mpeg", "binary", 1.0); - HTSetSuffix(".mpe", "video/mpeg", "binary", 1.0); - HTSetSuffix(".MPEG", "video/mpeg", "binary", 1.0); - HTSetSuffix(".mpeg", "video/mpeg", "binary", 1.0); - HTSetSuffix(".qt", "video/quicktime", "binary", 1.0); /* QuickTime */ - HTSetSuffix(".mov", "video/quicktime", "binary", 1.0); - HTSetSuffix(".avi", "video/x-msvideo", "binary", 1.0); /* MS Video for Windows */ - HTSetSuffix(".movie", "video/x-sgi-movie", "binary", 1.0); /* SGI "moviepalyer" */ - - HTSetSuffix("*.*", "application/octet-stream", "binary", 0.1); - HTSetSuffix("*", "text/plain", "7bit", 0.5); - -} -#endif /* NO_INIT */ - diff --git a/WWW/Library/Implementation/HTStream.h b/WWW/Library/Implementation/HTStream.h index 4588568e..d2025274 100644 --- a/WWW/Library/Implementation/HTStream.h +++ b/WWW/Library/Implementation/HTStream.h @@ -23,7 +23,7 @@ typedef struct _HTStream HTStream; for end_document which must be called before free. It should be merged with free in fact: it should be dummy for new streams. - The put_block method was write, but this upset systems whiuch had macros for write(). + The put_block method was write, but this upset systems which had macros for write(). */ typedef struct _HTStreamClass { diff --git a/WWW/Library/Implementation/HTTelnet.c b/WWW/Library/Implementation/HTTelnet.c index 6ed9a738..f37a632a 100644 --- a/WWW/Library/Implementation/HTTelnet.c +++ b/WWW/Library/Implementation/HTTelnet.c @@ -14,6 +14,7 @@ */ #include <HTUtils.h> +#include <LYUtils.h> /* Implements: */ @@ -50,10 +51,6 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host) enum _login_protocol { telnet, rlogin, tn3270 } login_protocol = strcmp(acc_method, "rlogin") == 0 ? rlogin : strcmp(acc_method, "tn3270") == 0 ? tn3270 : telnet; -#ifdef VMS - extern int DCLsystem PARAMS((char *command)); -#define system(a) DCLsystem(a) /* use LYCurses.c routines for spawns */ -#endif /* VMS */ /* * Modified to allow for odd chars in a username only if exists. diff --git a/WWW/Library/Implementation/tcp.h b/WWW/Library/Implementation/tcp.h index 5df279ef..608b3bda 100644 --- a/WWW/Library/Implementation/tcp.h +++ b/WWW/Library/Implementation/tcp.h @@ -534,6 +534,58 @@ typedef int pid_t; #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) #endif /* S_ISREG */ +#ifndef S_ISUID +#define S_ISUID 0004000 +#endif +#ifndef S_ISGID +#define S_ISGID 0002000 +#endif +#ifndef S_ISVTX +#define S_ISVTX 0001000 +#endif + +#ifndef S_IRWXU +#define S_IRWXU 00700 +#endif + +#ifndef S_IRUSR +#define S_IRUSR 00400 +#endif +#ifndef S_IWUSR +#define S_IWUSR 00200 +#endif +#ifndef S_IXUSR +#define S_IXUSR 00100 +#endif + +#ifndef S_IRWXG +#define S_IRWXG 00070 +#endif + +#ifndef S_IRGRP +#define S_IRGRP 00040 +#endif +#ifndef S_IWGRP +#define S_IWGRP 00020 +#endif +#ifndef S_IXGRP +#define S_IXGRP 00010 +#endif + +#ifndef S_IRWXO +#define S_IRWXO 00007 +#endif + +#ifndef S_IROTH +#define S_IROTH 00004 +#endif +#ifndef S_IWOTH +#define S_IWOTH 00002 +#endif +#ifndef S_IXOTH +#define S_IXOTH 00001 +#endif + #ifndef WEXITSTATUS #ifdef sony_news #define WEXITSTATUS(s) WIFEXITED(s) diff --git a/config.hin b/config.hin index fdcbb5d9..31c07103 100644 --- a/config.hin +++ b/config.hin @@ -17,7 +17,8 @@ #undef DIRED_SUPPORT /* AC_ARG_WITH(dired) */ #undef DISP_PARTIAL /* CF_ARG_ENABLE(partial) */ #undef DONT_TRACK_INTERNAL_LINKS /* CF_ARG_DISABLE(internal-links) */ -#undef EXP_8BIT_TOUPPER /* AC_ARG_ENABLE(8bit-toupper) */ +#undef EXEC_LINKS /* CF_ARG_ENABLE(exec-links) */ +#undef EXEC_SCRIPTS /* CF_ARG_ENABLE(exec-scripts) */ #undef EXP_CHARTRANS_AUTOSWITCH /* AC_ARG_ENABLE(font-switch) */ #undef EXP_FORMS_OPTIONS /* AC_ARG_ENABLE(forms-options) */ #undef EXP_PERSISTENT_COOKIES /* AC_ARG_ENABLE(persistent-cookies) */ @@ -129,8 +130,6 @@ /* FIXME:DECLARE_WAIS_LOGFILES */ /* FIXME:DGUX */ /* FIXME:DGUX_OLD */ -/* FIXME:EXEC_LINKS */ -/* FIXME:EXEC_SCRIPTS */ /* FIXME:HP_TERMINAL */ /* FIXME:NOPORT */ /* FIXME:POSIX_JC */ diff --git a/configure b/configure index 2a840018..0ba20fa5 100755 --- a/configure +++ b/configure @@ -195,11 +195,10 @@ Basic Configuration Options: --with-screen=XXX select screen type (XXX is curses (default), ncurses or slang) Miscellaneous Options: - --enable-8bit-toupper use experimental 8-bit case-conversion (default: off) --enable-forms-options use experimental forms-based options (default: off) + --enable-persistent-cookies use experimental persistent-cookie support (default: off) EOF cat <<EOF - --enable-persistent-cookies use experimental persistent-cookie support (default: off) --enable-color-style use optional/experimental color style (default: off) --disable-partial use partial-display logic (default: on) --enable-default-colors enable use of default-colors (ncurses/slang) (default: off) @@ -207,12 +206,14 @@ cat <<EOF --enable-externs use external commands (default: off) --enable-font-switch use Linux setfont for character-translation (default: off) --enable-cgi-links support cgi links w/o a http daemon (default: off) + --enable-exec-links support cgi links w/o a http daemon (default: off) + --enable-exec-scripts support cgi links w/o a http daemon (default: off) --enable-internal-links handle following links to same doc differently (default: off) --enable-nsl-fork fork NSL requests, allowing them to be aborted (default: off) --enable-syslog log URL requests via syslog (default: off) - --enable-underlines underline links rather than using boldface (default: off) EOF cat <<EOF + --enable-underlines underline links rather than using boldface (default: off) --enable-gzip-help install gzip'ed help files (default: off) --with-zlib use zlib for decompression of some gzip files Directory Editor Options: @@ -224,9 +225,9 @@ Directory Editor Options: --disable-dired-tar disable "tar" command (default: on) --disable-dired-uudecode disable "uudecode" command (default: on) --disable-dired-zip disable "zip", "unzip" commands (default: on) - --disable-dired-gzip disable "gzip", "gunzip" commands (default: on) EOF cat <<EOF + --disable-dired-gzip disable "gzip", "gunzip" commands (default: on) --disable-long-list disable long "ls -l" directory listings (default: on) --disable-parent-dir-refs disable "Up-to" links in directory listings (default: on) @@ -595,7 +596,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:599: checking host system type" >&5 +echo "configure:600: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -620,7 +621,7 @@ echo "$ac_t""$host" 1>&6 # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:624: checking for $ac_word" >&5 +echo "configure:625: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -649,7 +650,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:653: checking for $ac_word" >&5 +echo "configure:654: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -697,7 +698,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:701: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:702: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -707,11 +708,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <<EOF -#line 711 "configure" +#line 712 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -731,12 +732,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:735: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:736: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:740: checking whether we are using GNU C" >&5 +echo "configure:741: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -745,7 +746,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -760,7 +761,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:764: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:765: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -788,7 +789,7 @@ else fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:792: checking how to run the C preprocessor" >&5 +echo "configure:793: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -803,13 +804,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 807 "configure" +#line 808 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:814: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -820,13 +821,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 824 "configure" +#line 825 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:830: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:831: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -851,7 +852,7 @@ echo "$ac_t""$CPP" 1>&6 # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:855: checking for $ac_word" >&5 +echo "configure:856: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -878,7 +879,7 @@ else fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:882: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:883: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -906,7 +907,7 @@ fi echo $ac_n "checking for style of include in makefiles""... $ac_c" 1>&6 -echo "configure:910: checking for style of include in makefiles" >&5 +echo "configure:911: checking for style of include in makefiles" >&5 make_include_left="" make_include_right="" @@ -967,7 +968,7 @@ echo "$ac_t""${make_include_left}file${make_include_right}" 1>&6 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:971: checking for a BSD compatible install" >&5 +echo "configure:972: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1021,7 +1022,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1025: checking for $ac_word" >&5 +echo "configure:1026: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1054,7 +1055,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1058: checking for $ac_word" >&5 +echo "configure:1059: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LINT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1084,9 +1085,9 @@ done echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:1088: checking for AIX" >&5 +echo "configure:1089: checking for AIX" >&5 cat > conftest.$ac_ext <<EOF -#line 1090 "configure" +#line 1091 "configure" #include "confdefs.h" #ifdef _AIX yes @@ -1108,7 +1109,7 @@ rm -f conftest* echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:1112: checking for POSIXized ISC" >&5 +echo "configure:1113: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -1134,7 +1135,7 @@ fi echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6 -echo "configure:1138: checking if you want to see long compiling messages" >&5 +echo "configure:1139: checking if you want to see long compiling messages" >&5 # Check whether --enable-echo or --disable-echo was given. if test "${enable_echo+set}" = set; then @@ -1182,7 +1183,7 @@ fi echo $ac_n "checking if you want to check memory-leaks""... $ac_c" 1>&6 -echo "configure:1186: checking if you want to check memory-leaks" >&5 +echo "configure:1187: checking if you want to check memory-leaks" >&5 # Check whether --enable-find-leaks or --disable-find-leaks was given. if test "${enable_find_leaks+set}" = set; then @@ -1206,7 +1207,7 @@ EOF echo $ac_n "checking if you want to enable debug-code""... $ac_c" 1>&6 -echo "configure:1210: checking if you want to enable debug-code" >&5 +echo "configure:1211: checking if you want to enable debug-code" >&5 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then @@ -1251,7 +1252,7 @@ fi if test -n "$GCC" then echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6 -echo "configure:1255: checking if you want to turn on gcc warnings" >&5 +echo "configure:1256: checking if you want to turn on gcc warnings" >&5 # Check whether --enable-warnings or --disable-warnings was given. if test "${enable_warnings+set}" = set; then @@ -1291,9 +1292,9 @@ EOF if test -n "$GCC" then echo "checking for gcc __attribute__ directives" 1>&6 -echo "configure:1295: checking for gcc __attribute__ directives" >&5 +echo "configure:1296: checking for gcc __attribute__ directives" >&5 cat > conftest.$ac_ext <<EOF -#line 1297 "configure" +#line 1298 "configure" #include "confdefs.h" #include "conftest.h" #include "conftest.i" @@ -1331,7 +1332,7 @@ EOF EOF ;; esac - if { (eval echo configure:1335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:1336: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then test -n "$verbose" && echo "$ac_t""... $cf_attribute" 1>&6 cat conftest.h >>confdefs.h # else @@ -1348,11 +1349,11 @@ fi if test -n "$GCC" then cat > conftest.$ac_ext <<EOF -#line 1352 "configure" +#line 1353 "configure" int main(int argc, char *argv[]) { return argv[argc-1] == 0; } EOF echo "checking for gcc warning options" 1>&6 -echo "configure:1356: checking for gcc warning options" >&5 +echo "configure:1357: checking for gcc warning options" >&5 cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-W -Wall" cf_warn_CONST="" @@ -1370,7 +1371,7 @@ echo "configure:1356: checking for gcc warning options" >&5 Wstrict-prototypes $cf_warn_CONST do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo configure:1374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:1375: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES" @@ -1388,7 +1389,7 @@ fi echo $ac_n "checking if you want full utility pathnames""... $ac_c" 1>&6 -echo "configure:1392: checking if you want full utility pathnames" >&5 +echo "configure:1393: checking if you want full utility pathnames" >&5 # Check whether --enable-full-paths or --disable-full-paths was given. if test "${enable_full_paths+set}" = set; then @@ -1409,7 +1410,7 @@ echo "$ac_t""$with_full_paths" 1>&6 echo $ac_n "checking for system mailer""... $ac_c" 1>&6 -echo "configure:1413: checking for system mailer" >&5 +echo "configure:1414: checking for system mailer" >&5 if eval "test \"`echo '$''{'cf_cv_SYSTEM_MAIL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1436,7 +1437,7 @@ EOF echo $ac_n "checking system mail flags""... $ac_c" 1>&6 -echo "configure:1440: checking system mail flags" >&5 +echo "configure:1441: checking system mail flags" >&5 if eval "test \"`echo '$''{'cf_cv_system_mail_flags'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1464,7 +1465,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "chmod", so it can be a program name with args. set dummy chmod; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1468: checking for $ac_word" >&5 +echo "configure:1469: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CHMOD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1495,7 +1496,7 @@ fi else echo $ac_n "checking for chmod""... $ac_c" 1>&6 -echo "configure:1499: checking for chmod" >&5 +echo "configure:1500: checking for chmod" >&5 echo "$ac_t""$CHMOD" 1>&6 fi @@ -1529,7 +1530,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "compress", so it can be a program name with args. set dummy compress; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1533: checking for $ac_word" >&5 +echo "configure:1534: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_COMPRESS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1560,7 +1561,7 @@ fi else echo $ac_n "checking for compress""... $ac_c" 1>&6 -echo "configure:1564: checking for compress" >&5 +echo "configure:1565: checking for compress" >&5 echo "$ac_t""$COMPRESS" 1>&6 fi @@ -1594,7 +1595,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "cp", so it can be a program name with args. set dummy cp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1598: checking for $ac_word" >&5 +echo "configure:1599: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_COPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1625,7 +1626,7 @@ fi else echo $ac_n "checking for cp""... $ac_c" 1>&6 -echo "configure:1629: checking for cp" >&5 +echo "configure:1630: checking for cp" >&5 echo "$ac_t""$COPY" 1>&6 fi @@ -1659,7 +1660,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "gzip", so it can be a program name with args. set dummy gzip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1663: checking for $ac_word" >&5 +echo "configure:1664: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GZIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1690,7 +1691,7 @@ fi else echo $ac_n "checking for gzip""... $ac_c" 1>&6 -echo "configure:1694: checking for gzip" >&5 +echo "configure:1695: checking for gzip" >&5 echo "$ac_t""$GZIP" 1>&6 fi @@ -1724,7 +1725,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "mkdir", so it can be a program name with args. set dummy mkdir; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1728: checking for $ac_word" >&5 +echo "configure:1729: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MKDIR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1755,7 +1756,7 @@ fi else echo $ac_n "checking for mkdir""... $ac_c" 1>&6 -echo "configure:1759: checking for mkdir" >&5 +echo "configure:1760: checking for mkdir" >&5 echo "$ac_t""$MKDIR" 1>&6 fi @@ -1789,7 +1790,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "mv", so it can be a program name with args. set dummy mv; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1793: checking for $ac_word" >&5 +echo "configure:1794: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MV'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1820,7 +1821,7 @@ fi else echo $ac_n "checking for mv""... $ac_c" 1>&6 -echo "configure:1824: checking for mv" >&5 +echo "configure:1825: checking for mv" >&5 echo "$ac_t""$MV" 1>&6 fi @@ -1854,7 +1855,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "rm", so it can be a program name with args. set dummy rm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1858: checking for $ac_word" >&5 +echo "configure:1859: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_RM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1885,7 +1886,7 @@ fi else echo $ac_n "checking for rm""... $ac_c" 1>&6 -echo "configure:1889: checking for rm" >&5 +echo "configure:1890: checking for rm" >&5 echo "$ac_t""$RM" 1>&6 fi @@ -1919,7 +1920,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "tar", so it can be a program name with args. set dummy tar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1923: checking for $ac_word" >&5 +echo "configure:1924: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TAR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1950,7 +1951,7 @@ fi else echo $ac_n "checking for tar""... $ac_c" 1>&6 -echo "configure:1954: checking for tar" >&5 +echo "configure:1955: checking for tar" >&5 echo "$ac_t""$TAR" 1>&6 fi @@ -1984,7 +1985,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "touch", so it can be a program name with args. set dummy touch; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1988: checking for $ac_word" >&5 +echo "configure:1989: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TOUCH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2015,7 +2016,7 @@ fi else echo $ac_n "checking for touch""... $ac_c" 1>&6 -echo "configure:2019: checking for touch" >&5 +echo "configure:2020: checking for touch" >&5 echo "$ac_t""$TOUCH" 1>&6 fi @@ -2049,7 +2050,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "gunzip", so it can be a program name with args. set dummy gunzip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2053: checking for $ac_word" >&5 +echo "configure:2054: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_UNCOMPRESS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2080,7 +2081,7 @@ fi else echo $ac_n "checking for gunzip""... $ac_c" 1>&6 -echo "configure:2084: checking for gunzip" >&5 +echo "configure:2085: checking for gunzip" >&5 echo "$ac_t""$UNCOMPRESS" 1>&6 fi @@ -2114,7 +2115,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "unzip", so it can be a program name with args. set dummy unzip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2118: checking for $ac_word" >&5 +echo "configure:2119: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_UNZIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2145,7 +2146,7 @@ fi else echo $ac_n "checking for unzip""... $ac_c" 1>&6 -echo "configure:2149: checking for unzip" >&5 +echo "configure:2150: checking for unzip" >&5 echo "$ac_t""$UNZIP" 1>&6 fi @@ -2179,7 +2180,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "uudecode", so it can be a program name with args. set dummy uudecode; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2183: checking for $ac_word" >&5 +echo "configure:2184: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_UUDECODE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2210,7 +2211,7 @@ fi else echo $ac_n "checking for uudecode""... $ac_c" 1>&6 -echo "configure:2214: checking for uudecode" >&5 +echo "configure:2215: checking for uudecode" >&5 echo "$ac_t""$UUDECODE" 1>&6 fi @@ -2244,7 +2245,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "zcat", so it can be a program name with args. set dummy zcat; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2248: checking for $ac_word" >&5 +echo "configure:2249: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_ZCAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2275,7 +2276,7 @@ fi else echo $ac_n "checking for zcat""... $ac_c" 1>&6 -echo "configure:2279: checking for zcat" >&5 +echo "configure:2280: checking for zcat" >&5 echo "$ac_t""$ZCAT" 1>&6 fi @@ -2309,7 +2310,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "zip", so it can be a program name with args. set dummy zip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2313: checking for $ac_word" >&5 +echo "configure:2314: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_ZIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2340,7 +2341,7 @@ fi else echo $ac_n "checking for zip""... $ac_c" 1>&6 -echo "configure:2344: checking for zip" >&5 +echo "configure:2345: checking for zip" >&5 echo "$ac_t""$ZIP" 1>&6 fi @@ -2393,7 +2394,7 @@ EOF if test -z "$GCC" ; then echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 -echo "configure:2397: checking for ${CC-cc} option to accept ANSI C" >&5 +echo "configure:2398: checking for ${CC-cc} option to accept ANSI C" >&5 if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2417,7 +2418,7 @@ for cf_arg in "-DCC_HAS_PROTOS" \ do CFLAGS="$cf_save_CFLAGS $cf_arg" cat > conftest.$ac_ext <<EOF -#line 2421 "configure" +#line 2422 "configure" #include "confdefs.h" #ifndef CC_HAS_PROTOS @@ -2433,7 +2434,7 @@ int main() { struct s2 {int (*f) (double a);}; ; return 0; } EOF -if { (eval echo configure:2437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2438: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ansi_cc="$cf_arg"; break else @@ -2461,12 +2462,12 @@ fi fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2465: checking for working const" >&5 +echo "configure:2466: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2470 "configure" +#line 2471 "configure" #include "confdefs.h" int main() { @@ -2515,7 +2516,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:2519: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2520: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2557,7 +2558,7 @@ clix*) # contributed by Alex Matulich (matuli_a@marlin.navsea.navy.mil) also # references -lmalloc and -lbsd. echo $ac_n "checking for strcmp in -lc_s""... $ac_c" 1>&6 -echo "configure:2561: checking for strcmp in -lc_s" >&5 +echo "configure:2562: checking for strcmp in -lc_s" >&5 ac_lib_var=`echo c_s'_'strcmp | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2565,7 +2566,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lc_s $LIBS" cat > conftest.$ac_ext <<EOF -#line 2569 "configure" +#line 2570 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -2576,7 +2577,7 @@ int main() { strcmp() ; return 0; } EOF -if { (eval echo configure:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2665,7 +2666,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2669: checking for $ac_word" >&5 +echo "configure:2670: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2709,17 +2710,17 @@ sony-newsos*) do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2713: checking for $ac_hdr" >&5 +echo "configure:2714: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2718 "configure" +#line 2719 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2723: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2724: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2763,17 +2764,17 @@ ultrix*) do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2767: checking for $ac_hdr" >&5 +echo "configure:2768: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2772 "configure" +#line 2773 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2777: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2778: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2811,16 +2812,16 @@ if test -n "$TRY_CFLAGS" ; then cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $TRY_CFLAGS" echo $ac_n "checking if we should use compile options $TRY_CFLAGS""... $ac_c" 1>&6 -echo "configure:2815: checking if we should use compile options $TRY_CFLAGS" >&5 +echo "configure:2816: checking if we should use compile options $TRY_CFLAGS" >&5 cat > conftest.$ac_ext <<EOF -#line 2817 "configure" +#line 2818 "configure" #include "confdefs.h" #include <stdio.h> int main() { FILE *fp = stdin ; return 0; } EOF -if { (eval echo configure:2824: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_result=yes else @@ -2838,7 +2839,7 @@ fi ### Look for network libraries first, since some functions (such as gethostname) ### are used in a lot of places. echo $ac_n "checking if you want socks library""... $ac_c" 1>&6 -echo "configure:2842: checking if you want socks library" >&5 +echo "configure:2843: checking if you want socks library" >&5 if eval "test \"`echo '$''{'cf_cv_use_libsocks'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2858,7 +2859,7 @@ fi echo "$ac_t""$cf_cv_use_libsocks" 1>&6 echo $ac_n "checking if you want socks5 library""... $ac_c" 1>&6 -echo "configure:2862: checking if you want socks5 library" >&5 +echo "configure:2863: checking if you want socks5 library" >&5 if eval "test \"`echo '$''{'cf_cv_use_libsocks5'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2924,7 +2925,7 @@ cat >> confdefs.h <<\EOF EOF cat > conftest.$ac_ext <<EOF -#line 2928 "configure" +#line 2929 "configure" #include "confdefs.h" #include <stdio.h> @@ -2933,7 +2934,7 @@ int main() { accept((char *)0) ; return 0; } EOF -if { (eval echo configure:2937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then : else echo "configure: failed program was:" >&5 @@ -2963,9 +2964,9 @@ cat >> confdefs.h <<\EOF EOF echo $ac_n "checking if the socks library uses socks4 prefix""... $ac_c" 1>&6 -echo "configure:2967: checking if the socks library uses socks4 prefix" >&5 +echo "configure:2968: checking if the socks library uses socks4 prefix" >&5 cat > conftest.$ac_ext <<EOF -#line 2969 "configure" +#line 2970 "configure" #include "confdefs.h" #include <socks.h> @@ -2974,7 +2975,7 @@ int main() { Rinit((char *)0) ; return 0; } EOF -if { (eval echo configure:2978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cat >> confdefs.h <<\EOF #define USE_SOCKS4_PREFIX 1 @@ -2986,14 +2987,14 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 2990 "configure" +#line 2991 "configure" #include "confdefs.h" #include <socks.h> int main() { SOCKSinit((char *)0) ; return 0; } EOF -if { (eval echo configure:2997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_use_socks4=no else @@ -3062,7 +3063,7 @@ else cf_test_netlibs=no echo $ac_n "checking for network libraries""... $ac_c" 1>&6 -echo "configure:3066: checking for network libraries" >&5 +echo "configure:3067: checking for network libraries" >&5 if eval "test \"`echo '$''{'cf_cv_netlibs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3073,12 +3074,12 @@ cf_test_netlibs=yes for ac_func in gethostname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3077: checking for $ac_func" >&5 +echo "configure:3078: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3082 "configure" +#line 3083 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3101,7 +3102,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3124,7 +3125,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6 -echo "configure:3128: checking for gethostname in -lnsl" >&5 +echo "configure:3129: checking for gethostname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3132,7 +3133,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3136 "configure" +#line 3137 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3143,7 +3144,7 @@ int main() { gethostname() ; return 0; } EOF -if { (eval echo configure:3147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3176,7 +3177,7 @@ else echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6 -echo "configure:3180: checking for gethostname in -lsocket" >&5 +echo "configure:3181: checking for gethostname in -lsocket" >&5 ac_lib_var=`echo socket'_'gethostname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3184,7 +3185,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3188 "configure" +#line 3189 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3195,7 +3196,7 @@ int main() { gethostname() ; return 0; } EOF -if { (eval echo configure:3199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3239,21 +3240,21 @@ done # FIXME: sequent needs this library (i.e., -lsocket -linet -lnsl), but # I don't know the entrypoints - 97/7/22 TD echo $ac_n "checking for -linet""... $ac_c" 1>&6 -echo "configure:3243: checking for -linet" >&5 +echo "configure:3244: checking for -linet" >&5 if eval "test \"`echo '$''{'ac_cv_lib_inet'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-linet $LIBS" cat > conftest.$ac_ext <<EOF -#line 3250 "configure" +#line 3251 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:3257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_lib_inet=yes else @@ -3276,12 +3277,12 @@ if test "$ac_cv_func_lsocket" != no ; then for ac_func in socket do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3280: checking for $ac_func" >&5 +echo "configure:3281: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3285 "configure" +#line 3286 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3304,7 +3305,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3327,7 +3328,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:3331: checking for socket in -lsocket" >&5 +echo "configure:3332: checking for socket in -lsocket" >&5 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3335,7 +3336,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3339 "configure" +#line 3340 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3346,7 +3347,7 @@ int main() { socket() ; return 0; } EOF -if { (eval echo configure:3350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3379,7 +3380,7 @@ else echo $ac_n "checking for socket in -lbsd""... $ac_c" 1>&6 -echo "configure:3383: checking for socket in -lbsd" >&5 +echo "configure:3384: checking for socket in -lbsd" >&5 ac_lib_var=`echo bsd'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3387,7 +3388,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbsd $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3391 "configure" +#line 3392 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3398,7 +3399,7 @@ int main() { socket() ; return 0; } EOF -if { (eval echo configure:3402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3443,12 +3444,12 @@ fi for ac_func in gethostbyname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3447: checking for $ac_func" >&5 +echo "configure:3448: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3452 "configure" +#line 3453 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3471,7 +3472,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3494,7 +3495,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:3498: checking for gethostbyname in -lnsl" >&5 +echo "configure:3499: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3502,7 +3503,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3506 "configure" +#line 3507 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3513,7 +3514,7 @@ int main() { gethostbyname() ; return 0; } EOF -if { (eval echo configure:3517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3554,12 +3555,12 @@ done for ac_func in strcasecmp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3558: checking for $ac_func" >&5 +echo "configure:3559: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3563 "configure" +#line 3564 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3582,7 +3583,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3605,7 +3606,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for strcasecmp in -lresolv""... $ac_c" 1>&6 -echo "configure:3609: checking for strcasecmp in -lresolv" >&5 +echo "configure:3610: checking for strcasecmp in -lresolv" >&5 ac_lib_var=`echo resolv'_'strcasecmp | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3613,7 +3614,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3617 "configure" +#line 3618 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3624,7 +3625,7 @@ int main() { strcasecmp() ; return 0; } EOF -if { (eval echo configure:3628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3670,7 +3671,7 @@ test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&6 fi echo $ac_n "checking for screen type""... $ac_c" 1>&6 -echo "configure:3674: checking for screen type" >&5 +echo "configure:3675: checking for screen type" >&5 if eval "test \"`echo '$''{'cf_cv_screen'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3705,12 +3706,12 @@ case $cf_cv_screen in curses) echo $ac_n "checking for initscr""... $ac_c" 1>&6 -echo "configure:3709: checking for initscr" >&5 +echo "configure:3710: checking for initscr" >&5 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3714 "configure" +#line 3715 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char initscr(); below. */ @@ -3733,7 +3734,7 @@ initscr(); ; return 0; } EOF -if { (eval echo configure:3737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_initscr=yes" else @@ -3754,7 +3755,7 @@ else case $host_os in #(vi freebsd*) #(vi echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6 -echo "configure:3758: checking for tgoto in -lmytinfo" >&5 +echo "configure:3759: checking for tgoto in -lmytinfo" >&5 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3762,7 +3763,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <<EOF -#line 3766 "configure" +#line 3767 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3773,7 +3774,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:3777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3796,7 +3797,7 @@ fi ;; hpux10.*) echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6 -echo "configure:3800: checking for initscr in -lcur_colr" >&5 +echo "configure:3801: checking for initscr in -lcur_colr" >&5 ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3804,7 +3805,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcur_colr $LIBS" cat > conftest.$ac_ext <<EOF -#line 3808 "configure" +#line 3809 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3815,7 +3816,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3839,7 +3840,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6 -echo "configure:3843: checking for initscr in -lHcurses" >&5 +echo "configure:3844: checking for initscr in -lHcurses" >&5 ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3847,7 +3848,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lHcurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 3851 "configure" +#line 3852 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3858,7 +3859,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3904,12 +3905,12 @@ if test ".$ac_cv_func_initscr" != .yes ; then # Check for library containing tgoto. Do this before curses library # because it may be needed to link the test-case for initscr. echo $ac_n "checking for tgoto""... $ac_c" 1>&6 -echo "configure:3908: checking for tgoto" >&5 +echo "configure:3909: checking for tgoto" >&5 if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3913 "configure" +#line 3914 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char tgoto(); below. */ @@ -3932,7 +3933,7 @@ tgoto(); ; return 0; } EOF -if { (eval echo configure:3936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_tgoto=yes" else @@ -3953,7 +3954,7 @@ else for cf_term_lib in termcap termlib unknown do echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6 -echo "configure:3957: checking for tgoto in -l$cf_term_lib" >&5 +echo "configure:3958: checking for tgoto in -l$cf_term_lib" >&5 ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3961,7 +3962,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$cf_term_lib $LIBS" cat > conftest.$ac_ext <<EOF -#line 3965 "configure" +#line 3966 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3972,7 +3973,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:3976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4002,7 +4003,7 @@ fi for cf_curs_lib in cursesX curses ncurses xcurses jcurses unknown do echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6 -echo "configure:4006: checking for initscr in -l$cf_curs_lib" >&5 +echo "configure:4007: checking for initscr in -l$cf_curs_lib" >&5 ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4010,7 +4011,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$cf_curs_lib $LIBS" cat > conftest.$ac_ext <<EOF -#line 4014 "configure" +#line 4015 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4021,7 +4022,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4047,16 +4048,16 @@ fi LIBS="-l$cf_curs_lib $cf_save_LIBS" if test "$cf_term_lib" = unknown ; then echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6 -echo "configure:4051: checking if we can link with $cf_curs_lib library" >&5 +echo "configure:4052: checking if we can link with $cf_curs_lib library" >&5 cat > conftest.$ac_ext <<EOF -#line 4053 "configure" +#line 4054 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_result=yes else @@ -4070,16 +4071,16 @@ rm -f conftest* test $cf_result = no && { echo "configure: error: Cannot link curses library" 1>&2; exit 1; } elif test "$cf_term_lib" != predefined ; then echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6 -echo "configure:4074: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 +echo "configure:4075: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 cat > conftest.$ac_ext <<EOF -#line 4076 "configure" +#line 4077 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> int main() { initscr(); tgoto((char *)0, 0, 0); ; return 0; } EOF -if { (eval echo configure:4083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_result=no else @@ -4089,14 +4090,14 @@ else LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 4093 "configure" +#line 4094 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_result=yes else @@ -4118,14 +4119,14 @@ fi echo $ac_n "checking for curses performance tradeoff""... $ac_c" 1>&6 -echo "configure:4122: checking for curses performance tradeoff" >&5 +echo "configure:4123: checking for curses performance tradeoff" >&5 if eval "test \"`echo '$''{'cf_cv_curs_performance'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cf_cv_curs_performance=no cat > conftest.$ac_ext <<EOF -#line 4129 "configure" +#line 4130 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> @@ -4139,11 +4140,11 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 4147 "configure" +#line 4148 "configure" #include "confdefs.h" #define CURS_PERFORMANCE @@ -4158,7 +4159,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4162: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_curs_performance=yes else @@ -4183,13 +4184,13 @@ EOF ncurses) echo $ac_n "checking for ncurses header file""... $ac_c" 1>&6 -echo "configure:4187: checking for ncurses header file" >&5 +echo "configure:4188: checking for ncurses header file" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4193 "configure" +#line 4194 "configure" #include "confdefs.h" #include <curses.h> int main() { @@ -4206,7 +4207,7 @@ make an error ; return 0; } EOF -if { (eval echo configure:4210: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_header=predefined else @@ -4292,7 +4293,7 @@ done ;; esac echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:4296: checking for ncurses version" >&5 +echo "configure:4297: checking for ncurses version" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4317,7 +4318,7 @@ Autoconf "old" #endif EOF cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo configure:4321: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } + { (eval echo configure:4322: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } if test -f conftest.out ; then cf_out=`cat conftest.out | sed -e 's@^Autoconf @@' -e 's@^[^"]*"@@' -e 's@".*@@'` test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" @@ -4326,7 +4327,7 @@ EOF else cat > conftest.$ac_ext <<EOF -#line 4330 "configure" +#line 4331 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> @@ -4349,7 +4350,7 @@ int main() exit(0); } EOF -if { (eval echo configure:4353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then cf_cv_ncurses_version=`cat $cf_tempfile` @@ -4374,7 +4375,7 @@ echo "$ac_t""$cf_cv_ncurses_version" 1>&6 cf_ncurses_LIBS="" cf_ncurses_SAVE="$LIBS" echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:4378: checking for Gpm_Open in -lgpm" >&5 +echo "configure:4379: checking for Gpm_Open in -lgpm" >&5 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4382,7 +4383,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <<EOF -#line 4386 "configure" +#line 4387 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4393,7 +4394,7 @@ int main() { Gpm_Open() ; return 0; } EOF -if { (eval echo configure:4397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4409,7 +4410,7 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6 -echo "configure:4413: checking for initscr in -lgpm" >&5 +echo "configure:4414: checking for initscr in -lgpm" >&5 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4417,7 +4418,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <<EOF -#line 4421 "configure" +#line 4422 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4428,7 +4429,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4459,7 +4460,7 @@ freebsd*) # This is only necessary if you are linking against an obsolete # version of ncurses (but it should do no harm, since it's static). echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6 -echo "configure:4463: checking for tgoto in -lmytinfo" >&5 +echo "configure:4464: checking for tgoto in -lmytinfo" >&5 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4467,7 +4468,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <<EOF -#line 4471 "configure" +#line 4472 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4478,7 +4479,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4506,12 +4507,12 @@ LIBS="$cf_ncurses_LIBS $LIBS" cf_cv_have_lib_ncurses=no cf_libdir="" echo $ac_n "checking for initscr""... $ac_c" 1>&6 -echo "configure:4510: checking for initscr" >&5 +echo "configure:4511: checking for initscr" >&5 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4515 "configure" +#line 4516 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char initscr(); below. */ @@ -4534,7 +4535,7 @@ initscr(); ; return 0; } EOF -if { (eval echo configure:4538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_initscr=yes" else @@ -4554,17 +4555,17 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6 -echo "configure:4558: checking for initscr in -lncurses" >&5 +echo "configure:4559: checking for initscr in -lncurses" >&5 LIBS="-lncurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 4561 "configure" +#line 4562 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cf_cv_have_lib_ncurses=yes @@ -4591,17 +4592,17 @@ test "$prefix" != /usr && cf_search="$cf_search /usr/lib /usr/lib/ncur for cf_libdir in $cf_search do echo $ac_n "checking for -lncurses in $cf_libdir""... $ac_c" 1>&6 -echo "configure:4595: checking for -lncurses in $cf_libdir" >&5 +echo "configure:4596: checking for -lncurses in $cf_libdir" >&5 LIBS="-L$cf_libdir -lncurses $cf_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 4598 "configure" +#line 4599 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cf_cv_have_lib_ncurses=yes @@ -4633,7 +4634,7 @@ esac if test -n "$cf_ncurses_LIBS" ; then echo $ac_n "checking if we can link ncurses without $cf_ncurses_LIBS""... $ac_c" 1>&6 -echo "configure:4637: checking if we can link ncurses without $cf_ncurses_LIBS" >&5 +echo "configure:4638: checking if we can link ncurses without $cf_ncurses_LIBS" >&5 cf_ncurses_SAVE="$LIBS" for p in $cf_ncurses_LIBS ; do q=`echo $LIBS | sed -e 's/'$p' //' -e 's/'$p'$//'` @@ -4642,14 +4643,14 @@ echo "configure:4637: checking if we can link ncurses without $cf_ncurses_LIBS" fi done cat > conftest.$ac_ext <<EOF -#line 4646 "configure" +#line 4647 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> int main() { initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); ; return 0; } EOF -if { (eval echo configure:4653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -4666,20 +4667,20 @@ fi slang) echo $ac_n "checking for slang header file""... $ac_c" 1>&6 -echo "configure:4670: checking for slang header file" >&5 +echo "configure:4671: checking for slang header file" >&5 if eval "test \"`echo '$''{'cf_cv_slang_header'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4676 "configure" +#line 4677 "configure" #include "confdefs.h" #include <slang.h> int main() { printf("%s\n", SLANG_VERSION) ; return 0; } EOF -if { (eval echo configure:4683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4684: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_slang_header=predefined else @@ -4763,7 +4764,7 @@ cf_cv_lib_termcap=none # HP-UX 9.x terminfo has setupterm, but no tigetstr. if test "$termlib" = none; then echo $ac_n "checking for tigetstr in -ltermlib""... $ac_c" 1>&6 -echo "configure:4767: checking for tigetstr in -ltermlib" >&5 +echo "configure:4768: checking for tigetstr in -ltermlib" >&5 ac_lib_var=`echo termlib'_'tigetstr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4771,7 +4772,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermlib $LIBS" cat > conftest.$ac_ext <<EOF -#line 4775 "configure" +#line 4776 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4782,7 +4783,7 @@ int main() { tigetstr() ; return 0; } EOF -if { (eval echo configure:4786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4805,7 +4806,7 @@ fi fi if test "$cf_cv_lib_termcap" = none; then echo $ac_n "checking for tgoto in -ltermlib""... $ac_c" 1>&6 -echo "configure:4809: checking for tgoto in -ltermlib" >&5 +echo "configure:4810: checking for tgoto in -ltermlib" >&5 ac_lib_var=`echo termlib'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4813,7 +4814,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermlib $LIBS" cat > conftest.$ac_ext <<EOF -#line 4817 "configure" +#line 4818 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4824,7 +4825,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4848,7 +4849,7 @@ fi if test "$cf_cv_lib_termcap" = none; then # allow curses library for broken AIX system. echo $ac_n "checking for initscr in -lcurses""... $ac_c" 1>&6 -echo "configure:4852: checking for initscr in -lcurses" >&5 +echo "configure:4853: checking for initscr in -lcurses" >&5 ac_lib_var=`echo curses'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4856,7 +4857,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 4860 "configure" +#line 4861 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4867,7 +4868,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4888,7 +4889,7 @@ else fi echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6 -echo "configure:4892: checking for tgoto in -ltermcap" >&5 +echo "configure:4893: checking for tgoto in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4896,7 +4897,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <<EOF -#line 4900 "configure" +#line 4901 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4907,7 +4908,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4930,7 +4931,7 @@ fi fi if test "$cf_cv_lib_termcap" = none; then echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6 -echo "configure:4934: checking for tgoto in -ltermcap" >&5 +echo "configure:4935: checking for tgoto in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4938,7 +4939,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <<EOF -#line 4942 "configure" +#line 4943 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4949,7 +4950,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4972,7 +4973,7 @@ fi fi if test "$cf_cv_lib_termcap" = none; then echo $ac_n "checking for tgoto in -lncurses""... $ac_c" 1>&6 -echo "configure:4976: checking for tgoto in -lncurses" >&5 +echo "configure:4977: checking for tgoto in -lncurses" >&5 ac_lib_var=`echo ncurses'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4980,7 +4981,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lncurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 4984 "configure" +#line 4985 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4991,7 +4992,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5021,12 +5022,12 @@ fi cf_slang_LIBS2="$LIBS" echo $ac_n "checking for acos""... $ac_c" 1>&6 -echo "configure:5025: checking for acos" >&5 +echo "configure:5026: checking for acos" >&5 if eval "test \"`echo '$''{'ac_cv_func_acos'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5030 "configure" +#line 5031 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char acos(); below. */ @@ -5049,7 +5050,7 @@ acos(); ; return 0; } EOF -if { (eval echo configure:5053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_acos=yes" else @@ -5068,7 +5069,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for acos in -lm""... $ac_c" 1>&6 -echo "configure:5072: checking for acos in -lm" >&5 +echo "configure:5073: checking for acos in -lm" >&5 ac_lib_var=`echo m'_'acos | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5076,7 +5077,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS $LIBS" cat > conftest.$ac_ext <<EOF -#line 5080 "configure" +#line 5081 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5087,7 +5088,7 @@ int main() { acos() ; return 0; } EOF -if { (eval echo configure:5091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5127,12 +5128,12 @@ fi cf_cv_have_lib_slang=no cf_libdir="" echo $ac_n "checking for SLtt_get_screen_size""... $ac_c" 1>&6 -echo "configure:5131: checking for SLtt_get_screen_size" >&5 +echo "configure:5132: checking for SLtt_get_screen_size" >&5 if eval "test \"`echo '$''{'ac_cv_func_SLtt_get_screen_size'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5136 "configure" +#line 5137 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char SLtt_get_screen_size(); below. */ @@ -5155,7 +5156,7 @@ SLtt_get_screen_size(); ; return 0; } EOF -if { (eval echo configure:5159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_SLtt_get_screen_size=yes" else @@ -5175,17 +5176,17 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for SLtt_get_screen_size in -lslang""... $ac_c" 1>&6 -echo "configure:5179: checking for SLtt_get_screen_size in -lslang" >&5 +echo "configure:5180: checking for SLtt_get_screen_size in -lslang" >&5 LIBS="-lslang $LIBS" cat > conftest.$ac_ext <<EOF -#line 5182 "configure" +#line 5183 "configure" #include "confdefs.h" #include <slang.h> int main() { SLtt_get_screen_size() ; return 0; } EOF -if { (eval echo configure:5189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cf_cv_have_lib_slang=yes @@ -5212,17 +5213,17 @@ test "$prefix" != /usr && cf_search="$cf_search /usr/lib /usr/lib/slan for cf_libdir in $cf_search do echo $ac_n "checking for -lslang in $cf_libdir""... $ac_c" 1>&6 -echo "configure:5216: checking for -lslang in $cf_libdir" >&5 +echo "configure:5217: checking for -lslang in $cf_libdir" >&5 LIBS="-L$cf_libdir -lslang $cf_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 5219 "configure" +#line 5220 "configure" #include "confdefs.h" #include <slang.h> int main() { SLtt_get_screen_size() ; return 0; } EOF -if { (eval echo configure:5226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cf_cv_have_lib_slang=yes @@ -5253,7 +5254,7 @@ esac cf_slang_LIBS3="$LIBS" echo $ac_n "checking if we can link slang without termcap""... $ac_c" 1>&6 -echo "configure:5257: checking if we can link slang without termcap" >&5 +echo "configure:5258: checking if we can link slang without termcap" >&5 if test -n "`echo $cf_slang_LIBS1 | sed -e 's/ //g'`" ; then cf_exclude=`echo ".$cf_slang_LIBS2" | sed -e "s@$cf_slang_LIBS1@@" -e 's@^.@@'` else @@ -5261,14 +5262,14 @@ else fi LIBS=`echo ".$cf_slang_LIBS3" | sed -e "s@$cf_exclude@@" -e 's@^.@@'` cat > conftest.$ac_ext <<EOF -#line 5265 "configure" +#line 5266 "configure" #include "confdefs.h" #include <slang.h> int main() { SLtt_get_screen_size() ; return 0; } EOF -if { (eval echo configure:5272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_result=yes else @@ -5288,7 +5289,7 @@ eval cf_libdir=$libdir cf_libdir=`echo $cf_libdir | sed -e s@'^NONE/'@$prefix/@ -e s@'^NONE/'@$ac_default_prefix/@` echo $ac_n "checking for location of config-file""... $ac_c" 1>&6 -echo "configure:5292: checking for location of config-file" >&5 +echo "configure:5293: checking for location of config-file" >&5 LYNX_CFG_FILE=$cf_libdir/lynx.cfg cat >> confdefs.h <<EOF #define LYNX_CFG_FILE "$LYNX_CFG_FILE" @@ -5297,8 +5298,8 @@ EOF echo "$ac_t""$LYNX_CFG_FILE" 1>&6 echo $ac_n "checking for location of site specific options-file""... $ac_c" 1>&6 -echo "configure:5301: checking for location of site specific options-file" >&5 -LYNX_COMPILE_OPTS=$cf_libdir/lynx_help/lynx_site.txt +echo "configure:5302: checking for location of site specific options-file" >&5 +LYNX_COMPILE_OPTS=$cf_libdir/lynx_site.txt cat >> confdefs.h <<EOF #define LYNX_COMPILE_OPTS "$LYNX_COMPILE_OPTS" EOF @@ -5307,12 +5308,12 @@ echo "$ac_t""$LYNX_COMPILE_OPTS" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:5311: checking for ANSI C header files" >&5 +echo "configure:5312: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5316 "configure" +#line 5317 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -5320,7 +5321,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5337,7 +5338,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 5341 "configure" +#line 5342 "configure" #include "confdefs.h" #include <string.h> EOF @@ -5355,7 +5356,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 5359 "configure" +#line 5360 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -5376,7 +5377,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 5380 "configure" +#line 5381 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -5387,7 +5388,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:5391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else @@ -5411,12 +5412,12 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:5415: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:5416: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5420 "configure" +#line 5421 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/time.h> @@ -5425,7 +5426,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:5429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -5450,12 +5451,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:5454: checking for $ac_hdr that defines DIR" >&5 +echo "configure:5455: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5459 "configure" +#line 5460 "configure" #include "confdefs.h" #include <sys/types.h> #include <$ac_hdr> @@ -5463,7 +5464,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:5467: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5468: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -5488,7 +5489,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:5492: checking for opendir in -ldir" >&5 +echo "configure:5493: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5496,7 +5497,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <<EOF -#line 5500 "configure" +#line 5501 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5507,7 +5508,7 @@ int main() { opendir() ; return 0; } EOF -if { (eval echo configure:5511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5529,7 +5530,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:5533: checking for opendir in -lx" >&5 +echo "configure:5534: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5537,7 +5538,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <<EOF -#line 5541 "configure" +#line 5542 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5548,7 +5549,7 @@ int main() { opendir() ; return 0; } EOF -if { (eval echo configure:5552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5587,17 +5588,17 @@ for ac_hdr in \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5591: checking for $ac_hdr" >&5 +echo "configure:5592: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5596 "configure" +#line 5597 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5601: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5602: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5625,13 +5626,13 @@ done echo $ac_n "checking termio.h and termios.h""... $ac_c" 1>&6 -echo "configure:5629: checking termio.h and termios.h" >&5 +echo "configure:5630: checking termio.h and termios.h" >&5 if eval "test \"`echo '$''{'cf_cv_termio_and_termios'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5635 "configure" +#line 5636 "configure" #include "confdefs.h" #if HAVE_TERMIO_H @@ -5644,7 +5645,7 @@ int main() { putchar (0x0a) ; return 0; } EOF -if { (eval echo configure:5648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5649: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_termio_and_termios=yes else @@ -5667,17 +5668,17 @@ for ac_hdr in sys/wait.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5671: checking for $ac_hdr" >&5 +echo "configure:5672: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5676 "configure" +#line 5677 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5682: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5714,17 +5715,17 @@ for ac_hdr in wait.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5718: checking for $ac_hdr" >&5 +echo "configure:5719: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5723 "configure" +#line 5724 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5754,17 +5755,17 @@ for ac_hdr in waitstatus.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5758: checking for $ac_hdr" >&5 +echo "configure:5759: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5763 "configure" +#line 5764 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5768: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5769: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5805,13 +5806,13 @@ fi echo $ac_n "checking for union wait""... $ac_c" 1>&6 -echo "configure:5809: checking for union wait" >&5 +echo "configure:5810: checking for union wait" >&5 if eval "test \"`echo '$''{'cf_cv_type_unionwait'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5815 "configure" +#line 5816 "configure" #include "confdefs.h" $cf_wait_headers int main() { @@ -5822,7 +5823,7 @@ int x; ; return 0; } EOF -if { (eval echo configure:5826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_type_unionwait=no echo compiles ok w/o union wait 1>&5 @@ -5833,7 +5834,7 @@ else rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 5837 "configure" +#line 5838 "configure" #include "confdefs.h" $cf_wait_headers int main() { @@ -5848,7 +5849,7 @@ union wait x; ; return 0; } EOF -if { (eval echo configure:5852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_type_unionwait=yes echo compiles ok with union wait and possibly macros too 1>&5 @@ -5875,20 +5876,20 @@ EOF if test $cf_cv_type_unionwait = yes; then echo $ac_n "checking if union wait can be used as wait-arg""... $ac_c" 1>&6 -echo "configure:5879: checking if union wait can be used as wait-arg" >&5 +echo "configure:5880: checking if union wait can be used as wait-arg" >&5 if eval "test \"`echo '$''{'cf_cv_arg_union_wait'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5885 "configure" +#line 5886 "configure" #include "confdefs.h" $cf_wait_headers int main() { union wait x; wait(&x) ; return 0; } EOF -if { (eval echo configure:5892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_arg_union_wait=yes else @@ -5908,20 +5909,20 @@ EOF echo $ac_n "checking if union wait can be used as waitpid-arg""... $ac_c" 1>&6 -echo "configure:5912: checking if union wait can be used as waitpid-arg" >&5 +echo "configure:5913: checking if union wait can be used as waitpid-arg" >&5 if eval "test \"`echo '$''{'cf_cv_arg_union_waitpid'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5918 "configure" +#line 5919 "configure" #include "confdefs.h" $cf_wait_headers int main() { union wait x; waitpid(0, &x, 0) ; return 0; } EOF -if { (eval echo configure:5925: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5926: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_arg_union_waitpid=yes else @@ -5943,12 +5944,12 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:5947: checking for uid_t in sys/types.h" >&5 +echo "configure:5948: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5952 "configure" +#line 5953 "configure" #include "confdefs.h" #include <sys/types.h> EOF @@ -5977,7 +5978,7 @@ EOF fi echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6 -echo "configure:5981: checking type of array argument to getgroups" >&5 +echo "configure:5982: checking type of array argument to getgroups" >&5 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5985,7 +5986,7 @@ else ac_cv_type_getgroups=cross else cat > conftest.$ac_ext <<EOF -#line 5989 "configure" +#line 5990 "configure" #include "confdefs.h" /* Thanks to Mike Rendell for this test. */ @@ -6010,7 +6011,7 @@ main() } EOF -if { (eval echo configure:6014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_type_getgroups=gid_t else @@ -6024,7 +6025,7 @@ fi if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext <<EOF -#line 6028 "configure" +#line 6029 "configure" #include "confdefs.h" #include <unistd.h> EOF @@ -6048,12 +6049,12 @@ EOF echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:6052: checking for pid_t" >&5 +echo "configure:6053: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6057 "configure" +#line 6058 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -6081,12 +6082,12 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:6085: checking for uid_t in sys/types.h" >&5 +echo "configure:6086: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6090 "configure" +#line 6091 "configure" #include "confdefs.h" #include <sys/types.h> EOF @@ -6115,12 +6116,12 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:6119: checking for mode_t" >&5 +echo "configure:6120: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6124 "configure" +#line 6125 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -6151,17 +6152,17 @@ fi ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:6155: checking for vfork.h" >&5 +echo "configure:6156: checking for vfork.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6160 "configure" +#line 6161 "configure" #include "confdefs.h" #include <vfork.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6165: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6186,18 +6187,18 @@ else fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:6190: checking for working vfork" >&5 +echo "configure:6191: checking for working vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then echo $ac_n "checking for vfork""... $ac_c" 1>&6 -echo "configure:6196: checking for vfork" >&5 +echo "configure:6197: checking for vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6201 "configure" +#line 6202 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char vfork(); below. */ @@ -6220,7 +6221,7 @@ vfork(); ; return 0; } EOF -if { (eval echo configure:6224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_vfork=yes" else @@ -6241,7 +6242,7 @@ fi else cat > conftest.$ac_ext <<EOF -#line 6245 "configure" +#line 6246 "configure" #include "confdefs.h" /* Thanks to Paul Eggert for this test. */ #include <stdio.h> @@ -6336,7 +6337,7 @@ main() { } } EOF -if { (eval echo configure:6340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_vfork_works=yes else @@ -6360,13 +6361,13 @@ fi echo $ac_n "checking if we should use fcntl or ioctl""... $ac_c" 1>&6 -echo "configure:6364: checking if we should use fcntl or ioctl" >&5 +echo "configure:6365: checking if we should use fcntl or ioctl" >&5 if eval "test \"`echo '$''{'cf_cv_fionbio'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6370 "configure" +#line 6371 "configure" #include "confdefs.h" #include <sys/types.h> @@ -6378,7 +6379,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:6382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6383: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_fionbio=ioctl else @@ -6387,7 +6388,7 @@ else rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 6391 "configure" +#line 6392 "configure" #include "confdefs.h" #include <sys/types.h> @@ -6404,7 +6405,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:6408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_fionbio=fcntl else @@ -6427,20 +6428,20 @@ EOF echo $ac_n "checking for broken/missing definition of remove""... $ac_c" 1>&6 -echo "configure:6431: checking for broken/missing definition of remove" >&5 +echo "configure:6432: checking for broken/missing definition of remove" >&5 if eval "test \"`echo '$''{'cf_cv_baddef_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6437 "configure" +#line 6438 "configure" #include "confdefs.h" #include <stdio.h> int main() { remove("dummy") ; return 0; } EOF -if { (eval echo configure:6444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_baddef_remove=no else @@ -6448,7 +6449,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 6452 "configure" +#line 6453 "configure" #include "confdefs.h" #include <stdio.h> int __unlink(name) { return unlink(name); } @@ -6456,7 +6457,7 @@ int main() { remove("dummy") ; return 0; } EOF -if { (eval echo configure:6460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_baddef_remove=yes else @@ -6480,13 +6481,13 @@ EOF echo $ac_n "checking for lstat""... $ac_c" 1>&6 -echo "configure:6484: checking for lstat" >&5 +echo "configure:6485: checking for lstat" >&5 if eval "test \"`echo '$''{'ac_cv_func_lstat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6490 "configure" +#line 6491 "configure" #include "confdefs.h" #include <sys/types.h> @@ -6495,7 +6496,7 @@ int main() { lstat(".", (struct stat *)0) ; return 0; } EOF -if { (eval echo configure:6499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_lstat=yes else @@ -6527,12 +6528,12 @@ for ac_func in \ do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6531: checking for $ac_func" >&5 +echo "configure:6532: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6536 "configure" +#line 6537 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6555,7 +6556,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6585,12 +6586,12 @@ for ac_func in \ do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6589: checking for $ac_func" >&5 +echo "configure:6590: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6594 "configure" +#line 6595 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6613,7 +6614,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6644,12 +6645,12 @@ for ac_func in strstr do echo $ac_n "checking for $ac_func declaration""... $ac_c" 1>&6 -echo "configure:6648: checking for $ac_func declaration" >&5 +echo "configure:6649: checking for $ac_func declaration" >&5 if eval "test \"`echo '$''{'ac_cv_func_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6653 "configure" +#line 6654 "configure" #include "confdefs.h" #include <string.h> int main() { @@ -6658,11 +6659,11 @@ extern int ${ac_func}(); #endif ; return 0; } EOF -if { (eval echo configure:6662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 6666 "configure" +#line 6667 "configure" #include "confdefs.h" #include <string.h> int main() { @@ -6671,7 +6672,7 @@ int (*p)() = ${ac_func}; #endif ; return 0; } EOF -if { (eval echo configure:6675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6676: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_func_decl_$ac_func=yes" @@ -6713,12 +6714,12 @@ for ac_func in getgrgid getgrnam do echo $ac_n "checking for $ac_func declaration""... $ac_c" 1>&6 -echo "configure:6717: checking for $ac_func declaration" >&5 +echo "configure:6718: checking for $ac_func declaration" >&5 if eval "test \"`echo '$''{'ac_cv_func_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6722 "configure" +#line 6723 "configure" #include "confdefs.h" #include <stdio.h> @@ -6729,11 +6730,11 @@ extern int ${ac_func}(); #endif ; return 0; } EOF -if { (eval echo configure:6733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6734: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 6737 "configure" +#line 6738 "configure" #include "confdefs.h" #include <stdio.h> @@ -6744,7 +6745,7 @@ int (*p)() = ${ac_func}; #endif ; return 0; } EOF -if { (eval echo configure:6748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6749: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_func_decl_$ac_func=yes" @@ -6786,13 +6787,13 @@ done echo $ac_n "checking if TRUE/FALSE are defined""... $ac_c" 1>&6 -echo "configure:6790: checking if TRUE/FALSE are defined" >&5 +echo "configure:6791: checking if TRUE/FALSE are defined" >&5 if eval "test \"`echo '$''{'cf_cv_bool_defs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6796 "configure" +#line 6797 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> @@ -6801,7 +6802,7 @@ int main() { int x = TRUE, y = FALSE ; return 0; } EOF -if { (eval echo configure:6805: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_bool_defs=yes else @@ -6828,13 +6829,13 @@ fi echo $ac_n "checking declaration of errno""... $ac_c" 1>&6 -echo "configure:6832: checking declaration of errno" >&5 +echo "configure:6833: checking declaration of errno" >&5 if eval "test \"`echo '$''{'cf_cv_dcl_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6838 "configure" +#line 6839 "configure" #include "confdefs.h" #if HAVE_STDLIB_H @@ -6847,7 +6848,7 @@ int main() { long x = (long) errno ; return 0; } EOF -if { (eval echo configure:6851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6852: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval 'cf_cv_dcl_'errno'=yes' else @@ -6877,9 +6878,9 @@ cf_result=`echo $cf_result | tr '[a-z]' '[A-Z]'` EOF echo $ac_n "checking existence of errno""... $ac_c" 1>&6 -echo "configure:6881: checking existence of errno" >&5 +echo "configure:6882: checking existence of errno" >&5 cat > conftest.$ac_ext <<EOF -#line 6883 "configure" +#line 6884 "configure" #include "confdefs.h" #undef errno @@ -6889,7 +6890,7 @@ int main() { errno = 2 ; return 0; } EOF -if { (eval echo configure:6893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval 'cf_cv_have_'errno'=yes' else @@ -6919,20 +6920,20 @@ EOF echo $ac_n "checking for setlocale()""... $ac_c" 1>&6 -echo "configure:6923: checking for setlocale()" >&5 +echo "configure:6924: checking for setlocale()" >&5 if eval "test \"`echo '$''{'cf_cv_locale'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6929 "configure" +#line 6930 "configure" #include "confdefs.h" #include <locale.h> int main() { setlocale(LC_ALL, "") ; return 0; } EOF -if { (eval echo configure:6936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_locale=yes else @@ -6953,13 +6954,13 @@ EOF echo $ac_n "checking if NGROUPS is defined""... $ac_c" 1>&6 -echo "configure:6957: checking if NGROUPS is defined" >&5 +echo "configure:6958: checking if NGROUPS is defined" >&5 if eval "test \"`echo '$''{'cf_cv_ngroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6963 "configure" +#line 6964 "configure" #include "confdefs.h" #if HAVE_SYS_PARAM_H @@ -6973,7 +6974,7 @@ int main() { int x = NGROUPS ; return 0; } EOF -if { (eval echo configure:6977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ngroups=yes else @@ -6981,7 +6982,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 6985 "configure" +#line 6986 "configure" #include "confdefs.h" #if HAVE_SYS_PARAM_H @@ -6995,7 +6996,7 @@ int main() { int x = NGROUPS_MAX ; return 0; } EOF -if { (eval echo configure:6999: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ngroups=NGROUPS_MAX else @@ -7029,13 +7030,13 @@ for cf_name in sys_nerr sys_errlist do echo $ac_n "checking declaration of $cf_name""... $ac_c" 1>&6 -echo "configure:7033: checking declaration of $cf_name" >&5 +echo "configure:7034: checking declaration of $cf_name" >&5 if eval "test \"`echo '$''{'cf_cv_dcl_$cf_name'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7039 "configure" +#line 7040 "configure" #include "confdefs.h" #if HAVE_STDLIB_H @@ -7048,7 +7049,7 @@ int main() { long x = (long) $cf_name ; return 0; } EOF -if { (eval echo configure:7052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval 'cf_cv_dcl_'$cf_name'=yes' else @@ -7078,9 +7079,9 @@ cf_result=`echo $cf_result | tr '[a-z]' '[A-Z]'` EOF echo $ac_n "checking existence of $cf_name""... $ac_c" 1>&6 -echo "configure:7082: checking existence of $cf_name" >&5 +echo "configure:7083: checking existence of $cf_name" >&5 cat > conftest.$ac_ext <<EOF -#line 7084 "configure" +#line 7085 "configure" #include "confdefs.h" #undef $cf_name @@ -7090,7 +7091,7 @@ int main() { $cf_name = 2 ; return 0; } EOF -if { (eval echo configure:7094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval 'cf_cv_have_'$cf_name'=yes' else @@ -7121,13 +7122,13 @@ done echo $ac_n "checking if struct utmp is declared""... $ac_c" 1>&6 -echo "configure:7125: checking if struct utmp is declared" >&5 +echo "configure:7126: checking if struct utmp is declared" >&5 if eval "test \"`echo '$''{'cf_cv_have_utmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7131 "configure" +#line 7132 "configure" #include "confdefs.h" #include <sys/types.h> @@ -7136,7 +7137,7 @@ int main() { struct utmp x; char *y = &x.ut_host[0] ; return 0; } EOF -if { (eval echo configure:7140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_have_utmp=yes else @@ -7144,14 +7145,14 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 7148 "configure" +#line 7149 "configure" #include "confdefs.h" #include <utmpx.h> int main() { struct utmpx x; char *y = &x.ut_host[0] ; return 0; } EOF -if { (eval echo configure:7155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_have_utmp=utmpx else @@ -7182,7 +7183,7 @@ EOF if test $cf_cv_screen != slang ; then echo $ac_n "checking if curses supports alternate-character set""... $ac_c" 1>&6 -echo "configure:7186: checking if curses supports alternate-character set" >&5 +echo "configure:7187: checking if curses supports alternate-character set" >&5 if eval "test \"`echo '$''{'cf_cv_alt_char_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7190,7 +7191,7 @@ else for mapname in acs_map _acs_map do cat > conftest.$ac_ext <<EOF -#line 7194 "configure" +#line 7195 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> @@ -7199,7 +7200,7 @@ int main() { chtype x = $mapname['l']; $mapname['m'] = 0 ; return 0; } EOF -if { (eval echo configure:7203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_alt_char_set=$mapname break @@ -7222,13 +7223,13 @@ EOF echo $ac_n "checking if curses supports fancy attributes""... $ac_c" 1>&6 -echo "configure:7226: checking if curses supports fancy attributes" >&5 +echo "configure:7227: checking if curses supports fancy attributes" >&5 if eval "test \"`echo '$''{'cf_cv_fancy_curses'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7232 "configure" +#line 7233 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> @@ -7241,7 +7242,7 @@ attrset(A_UNDERLINE|A_BOLD|A_REVERSE); ; return 0; } EOF -if { (eval echo configure:7245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_fancy_curses=yes else @@ -7261,7 +7262,7 @@ EOF echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:7265: checking for ncurses version" >&5 +echo "configure:7266: checking for ncurses version" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7286,7 +7287,7 @@ Autoconf "old" #endif EOF cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo configure:7290: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } + { (eval echo configure:7291: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } if test -f conftest.out ; then cf_out=`cat conftest.out | sed -e 's@^Autoconf @@' -e 's@^[^"]*"@@' -e 's@".*@@'` test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" @@ -7295,7 +7296,7 @@ EOF else cat > conftest.$ac_ext <<EOF -#line 7299 "configure" +#line 7300 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> @@ -7318,7 +7319,7 @@ int main() exit(0); } EOF -if { (eval echo configure:7322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then cf_cv_ncurses_version=`cat $cf_tempfile` @@ -7338,13 +7339,13 @@ echo "$ac_t""$cf_cv_ncurses_version" 1>&6 if test "$cf_cv_ncurses_version" != no ; then echo $ac_n "checking for obsolete/broken version of ncurses""... $ac_c" 1>&6 -echo "configure:7342: checking for obsolete/broken version of ncurses" >&5 +echo "configure:7343: checking for obsolete/broken version of ncurses" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_broken'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7348 "configure" +#line 7349 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> @@ -7358,7 +7359,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7362: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_broken=no else @@ -7383,13 +7384,13 @@ fi echo $ac_n "checking if curses supports color attributes""... $ac_c" 1>&6 -echo "configure:7387: checking if curses supports color attributes" >&5 +echo "configure:7388: checking if curses supports color attributes" >&5 if eval "test \"`echo '$''{'cf_cv_color_curses'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7393 "configure" +#line 7394 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> @@ -7404,7 +7405,7 @@ chtype x = COLOR_BLUE; ; return 0; } EOF -if { (eval echo configure:7408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_color_curses=yes else @@ -7431,7 +7432,7 @@ fi echo $ac_n "checking declaration of size-change""... $ac_c" 1>&6 -echo "configure:7435: checking declaration of size-change" >&5 +echo "configure:7436: checking declaration of size-change" >&5 if eval "test \"`echo '$''{'cf_cv_sizechange'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7445,7 +7446,7 @@ do CFLAGS="$cf_save_CFLAGS" test -n "$cf_opts" && CFLAGS="$CFLAGS -D$cf_opts" cat > conftest.$ac_ext <<EOF -#line 7449 "configure" +#line 7450 "configure" #include "confdefs.h" #include <sys/types.h> #if HAVE_TERMIOS_H @@ -7484,7 +7485,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_sizechange=yes else @@ -7516,20 +7517,20 @@ EOF echo $ac_n "checking if ttytype is declared in curses library""... $ac_c" 1>&6 -echo "configure:7520: checking if ttytype is declared in curses library" >&5 +echo "configure:7521: checking if ttytype is declared in curses library" >&5 if eval "test \"`echo '$''{'cf_cv_have_ttytype'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7526 "configure" +#line 7527 "configure" #include "confdefs.h" #include <${cf_cv_ncurses_header-curses.h}> int main() { char *x = &ttytype[1]; *x = 1 ; return 0; } EOF -if { (eval echo configure:7533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_have_ttytype=yes else @@ -7556,12 +7557,12 @@ EOF do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7560: checking for $ac_func" >&5 +echo "configure:7561: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7565 "configure" +#line 7566 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7584,7 +7585,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7613,32 +7614,8 @@ fi -echo $ac_n "checking if experimental 8-bit case-conversion should be used""... $ac_c" 1>&6 -echo "configure:7618: checking if experimental 8-bit case-conversion should be used" >&5 - -# Check whether --enable-8bit-toupper or --disable-8bit-toupper was given. -if test "${enable_8bit_toupper+set}" = set; then - enableval="$enable_8bit_toupper" - test "$enableval" != yes && enableval=no - if test "$enableval" != "no" ; then - use_8bit_toupper=$enableval - else - use_8bit_toupper=no - fi -else - enableval=no - use_8bit_toupper=no - -fi - -echo "$ac_t""$use_8bit_toupper" 1>&6 -test $use_8bit_toupper != no && cat >> confdefs.h <<\EOF -#define EXP_8BIT_TOUPPER 1 -EOF - - echo $ac_n "checking if experimental forms-based options screen should be used""... $ac_c" 1>&6 -echo "configure:7642: checking if experimental forms-based options screen should be used" >&5 +echo "configure:7619: checking if experimental forms-based options screen should be used" >&5 # Check whether --enable-forms-options or --disable-forms-options was given. if test "${enable_forms_options+set}" = set; then @@ -7662,7 +7639,7 @@ EOF echo $ac_n "checking if experimental persistent-cookie logic should be used""... $ac_c" 1>&6 -echo "configure:7666: checking if experimental persistent-cookie logic should be used" >&5 +echo "configure:7643: checking if experimental persistent-cookie logic should be used" >&5 # Check whether --enable-persistent-cookies or --disable-persistent-cookies was given. if test "${enable_persistent_cookies+set}" = set; then @@ -7686,7 +7663,7 @@ EOF echo $ac_n "checking if color-style code should be used""... $ac_c" 1>&6 -echo "configure:7690: checking if color-style code should be used" >&5 +echo "configure:7667: checking if color-style code should be used" >&5 # Check whether --enable-color-style or --disable-color-style was given. if test "${enable_color_style+set}" = set; then @@ -7734,7 +7711,7 @@ EOF echo "$ac_t""yes" 1>&6 echo $ac_n "checking for location of style-sheet file""... $ac_c" 1>&6 -echo "configure:7738: checking for location of style-sheet file" >&5 +echo "configure:7715: checking for location of style-sheet file" >&5 LYNX_LSS_FILE=$cf_libdir/lynx.lss cat >> confdefs.h <<EOF #define LYNX_LSS_FILE "$LYNX_LSS_FILE" @@ -7747,7 +7724,7 @@ esac echo $ac_n "checking if partial-display should be used""... $ac_c" 1>&6 -echo "configure:7751: checking if partial-display should be used" >&5 +echo "configure:7728: checking if partial-display should be used" >&5 # Check whether --enable-partial or --disable-partial was given. if test "${enable_partial+set}" = set; then @@ -7776,7 +7753,7 @@ test ".$ac_cv_func_use_default_colors" = ".yes" && use_dft_colors=maybe if test "$use_dft_colors" != no ; then echo $ac_n "checking if you want to use default-colors""... $ac_c" 1>&6 -echo "configure:7780: checking if you want to use default-colors" >&5 +echo "configure:7757: checking if you want to use default-colors" >&5 # Check whether --enable-default-colors or --disable-default-colors was given. if test "${enable_default_colors+set}" = set; then @@ -7801,7 +7778,7 @@ EOF fi echo $ac_n "checking if you want to use extended HTML DTD logic""... $ac_c" 1>&6 -echo "configure:7805: checking if you want to use extended HTML DTD logic" >&5 +echo "configure:7782: checking if you want to use extended HTML DTD logic" >&5 # Check whether --enable-extended-dtd or --disable-extended-dtd was given. if test "${enable_extended_dtd+set}" = set; then @@ -7825,7 +7802,7 @@ EOF echo $ac_n "checking if you want to use external commands""... $ac_c" 1>&6 -echo "configure:7829: checking if you want to use external commands" >&5 +echo "configure:7806: checking if you want to use external commands" >&5 # Check whether --enable-externs or --disable-externs was given. if test "${enable_externs+set}" = set; then @@ -7849,7 +7826,7 @@ EOF echo $ac_n "checking if you want to use setfont support""... $ac_c" 1>&6 -echo "configure:7853: checking if you want to use setfont support" >&5 +echo "configure:7830: checking if you want to use setfont support" >&5 # Check whether --enable-font-switch or --disable-font-switch was given. if test "${enable_font_switch+set}" = set; then @@ -7873,7 +7850,7 @@ EOF echo $ac_n "checking if you want cgi-link support""... $ac_c" 1>&6 -echo "configure:7877: checking if you want cgi-link support" >&5 +echo "configure:7854: checking if you want cgi-link support" >&5 # Check whether --enable-cgi-links or --disable-cgi-links was given. if test "${enable_cgi_links+set}" = set; then @@ -7891,8 +7868,46 @@ fi echo "$ac_t""$enableval" 1>&6 +echo $ac_n "checking if you want exec-links support""... $ac_c" 1>&6 +echo "configure:7873: checking if you want exec-links support" >&5 + +# Check whether --enable-exec-links or --disable-exec-links was given. +if test "${enable_exec_links+set}" = set; then + enableval="$enable_exec_links" + test "$enableval" != yes && enableval=no + if test "$enableval" != "no" ; then + cat >> confdefs.h <<\EOF +#define EXEC_LINKS 1 +EOF + + fi +else + enableval=no +fi + +echo "$ac_t""$enableval" 1>&6 + +echo $ac_n "checking if you want exec-scripts support""... $ac_c" 1>&6 +echo "configure:7892: checking if you want exec-scripts support" >&5 + +# Check whether --enable-exec-scripts or --disable-exec-scripts was given. +if test "${enable_exec_scripts+set}" = set; then + enableval="$enable_exec_scripts" + test "$enableval" != yes && enableval=no + if test "$enableval" != "no" ; then + cat >> confdefs.h <<\EOF +#define EXEC_SCRIPTS 1 +EOF + + fi +else + enableval=no +fi + +echo "$ac_t""$enableval" 1>&6 + echo $ac_n "checking if you want internal-links feature""... $ac_c" 1>&6 -echo "configure:7896: checking if you want internal-links feature" >&5 +echo "configure:7911: checking if you want internal-links feature" >&5 # Check whether --enable-internal-links or --disable-internal-links was given. if test "${enable_internal_links+set}" = set; then @@ -7916,7 +7931,7 @@ EOF echo $ac_n "checking if you want to fork NSL requests""... $ac_c" 1>&6 -echo "configure:7920: checking if you want to fork NSL requests" >&5 +echo "configure:7935: checking if you want to fork NSL requests" >&5 # Check whether --enable-nsl-fork or --disable-nsl-fork was given. if test "${enable_nsl_fork+set}" = set; then @@ -7940,7 +7955,7 @@ EOF echo $ac_n "checking if you want to log URL requests via syslog""... $ac_c" 1>&6 -echo "configure:7944: checking if you want to log URL requests via syslog" >&5 +echo "configure:7959: checking if you want to log URL requests via syslog" >&5 # Check whether --enable-syslog or --disable-syslog was given. if test "${enable_syslog+set}" = set; then @@ -7964,7 +7979,7 @@ EOF echo $ac_n "checking if you want to underline links""... $ac_c" 1>&6 -echo "configure:7968: checking if you want to underline links" >&5 +echo "configure:7983: checking if you want to underline links" >&5 # Check whether --enable-underlines or --disable-underlines was given. if test "${enable_underlines+set}" = set; then @@ -7988,7 +8003,7 @@ EOF echo $ac_n "checking if help files should be gzip'ed""... $ac_c" 1>&6 -echo "configure:7992: checking if help files should be gzip'ed" >&5 +echo "configure:8007: checking if help files should be gzip'ed" >&5 # Check whether --enable-gzip-help or --disable-gzip-help was given. if test "${enable_gzip_help+set}" = set; then @@ -8017,7 +8032,7 @@ fi echo $ac_n "checking if you want to use zlib for decompression of some gzip files""... $ac_c" 1>&6 -echo "configure:8021: checking if you want to use zlib for decompression of some gzip files" >&5 +echo "configure:8036: checking if you want to use zlib for decompression of some gzip files" >&5 # Check whether --with-zlib or --without-zlib was given. if test "${with_zlib+set}" = set; then @@ -8034,12 +8049,12 @@ if test ".$use_zlib" != ".no" ; then cf_cv_have_lib_z=no cf_libdir="" echo $ac_n "checking for gzopen""... $ac_c" 1>&6 -echo "configure:8038: checking for gzopen" >&5 +echo "configure:8053: checking for gzopen" >&5 if eval "test \"`echo '$''{'ac_cv_func_gzopen'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8043 "configure" +#line 8058 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gzopen(); below. */ @@ -8062,7 +8077,7 @@ gzopen(); ; return 0; } EOF -if { (eval echo configure:8066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gzopen=yes" else @@ -8082,17 +8097,17 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for gzopen in -lz""... $ac_c" 1>&6 -echo "configure:8086: checking for gzopen in -lz" >&5 +echo "configure:8101: checking for gzopen in -lz" >&5 LIBS="-lz $LIBS" cat > conftest.$ac_ext <<EOF -#line 8089 "configure" +#line 8104 "configure" #include "confdefs.h" #include <zlib.h> int main() { gzopen("name","mode") ; return 0; } EOF -if { (eval echo configure:8096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cf_cv_have_lib_z=yes @@ -8119,17 +8134,17 @@ test "$prefix" != /usr && cf_search="$cf_search /usr/lib /usr/lib/z" for cf_libdir in $cf_search do echo $ac_n "checking for -lz in $cf_libdir""... $ac_c" 1>&6 -echo "configure:8123: checking for -lz in $cf_libdir" >&5 +echo "configure:8138: checking for -lz in $cf_libdir" >&5 LIBS="-L$cf_libdir -lz $cf_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 8126 "configure" +#line 8141 "configure" #include "confdefs.h" #include <zlib.h> int main() { gzopen("name","mode") ; return 0; } EOF -if { (eval echo configure:8133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cf_cv_have_lib_z=yes @@ -8170,7 +8185,7 @@ fi # All DirEd functions that were enabled on compilation can be disabled # or modified at run time via DIRED_MENU symbols in lynx.cfg. echo $ac_n "checking if directory-editor code should be used""... $ac_c" 1>&6 -echo "configure:8174: checking if directory-editor code should be used" >&5 +echo "configure:8189: checking if directory-editor code should be used" >&5 # Check whether --enable-dired or --disable-dired was given. if test "${enable_dired+set}" = set; then @@ -8196,7 +8211,7 @@ EOF echo $ac_n "checking if you wish to allow extracting from archives via DirEd""... $ac_c" 1>&6 -echo "configure:8200: checking if you wish to allow extracting from archives via DirEd" >&5 +echo "configure:8215: checking if you wish to allow extracting from archives via DirEd" >&5 # Check whether --enable-dired-archive or --disable-dired-archive was given. if test "${enable_dired_archive+set}" = set; then @@ -8215,7 +8230,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if you wish to allow users to redefine DirEd keys""... $ac_c" 1>&6 -echo "configure:8219: checking if you wish to allow users to redefine DirEd keys" >&5 +echo "configure:8234: checking if you wish to allow users to redefine DirEd keys" >&5 # Check whether --enable-dired-override or --disable-dired-override was given. if test "${enable_dired_override+set}" = set; then @@ -8241,7 +8256,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if you wish to allow permissions commands via DirEd""... $ac_c" 1>&6 -echo "configure:8245: checking if you wish to allow permissions commands via DirEd" >&5 +echo "configure:8260: checking if you wish to allow permissions commands via DirEd" >&5 # Check whether --enable-dired-permit or --disable-dired-permit was given. if test "${enable_dired_permit+set}" = set; then @@ -8267,7 +8282,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if you wish to allow executable-permission commands via DirEd""... $ac_c" 1>&6 -echo "configure:8271: checking if you wish to allow executable-permission commands via DirEd" >&5 +echo "configure:8286: checking if you wish to allow executable-permission commands via DirEd" >&5 # Check whether --enable-dired-xpermit or --disable-dired-xpermit was given. if test "${enable_dired_xpermit+set}" = set; then @@ -8286,7 +8301,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if you wish to allow "tar" commands from DirEd""... $ac_c" 1>&6 -echo "configure:8290: checking if you wish to allow "tar" commands from DirEd" >&5 +echo "configure:8305: checking if you wish to allow "tar" commands from DirEd" >&5 # Check whether --enable-dired-tar or --disable-dired-tar was given. if test "${enable_dired_tar+set}" = set; then @@ -8312,7 +8327,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if you wish to allow "uudecode" commands from DirEd""... $ac_c" 1>&6 -echo "configure:8316: checking if you wish to allow "uudecode" commands from DirEd" >&5 +echo "configure:8331: checking if you wish to allow "uudecode" commands from DirEd" >&5 # Check whether --enable-dired-uudecode or --disable-dired-uudecode was given. if test "${enable_dired_uudecode+set}" = set; then @@ -8338,7 +8353,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if you wish to allow "zip" and "unzip" commands from DirEd""... $ac_c" 1>&6 -echo "configure:8342: checking if you wish to allow "zip" and "unzip" commands from DirEd" >&5 +echo "configure:8357: checking if you wish to allow "zip" and "unzip" commands from DirEd" >&5 # Check whether --enable-dired-zip or --disable-dired-zip was given. if test "${enable_dired_zip+set}" = set; then @@ -8364,7 +8379,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if you wish to allow "gzip" and "gunzip" commands from DirEd""... $ac_c" 1>&6 -echo "configure:8368: checking if you wish to allow "gzip" and "gunzip" commands from DirEd" >&5 +echo "configure:8383: checking if you wish to allow "gzip" and "gunzip" commands from DirEd" >&5 # Check whether --enable-dired-gzip or --disable-dired-gzip was given. if test "${enable_dired_gzip+set}" = set; then @@ -8391,7 +8406,7 @@ fi fi echo $ac_n "checking if you want long-directory listings""... $ac_c" 1>&6 -echo "configure:8395: checking if you want long-directory listings" >&5 +echo "configure:8410: checking if you want long-directory listings" >&5 # Check whether --enable-long-list or --disable-long-list was given. if test "${enable_long_list+set}" = set; then @@ -8417,7 +8432,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if parent-directory references are permitted""... $ac_c" 1>&6 -echo "configure:8421: checking if parent-directory references are permitted" >&5 +echo "configure:8436: checking if parent-directory references are permitted" >&5 # Check whether --enable-parent-dir-refs or --disable-parent-dir-refs was given. if test "${enable_parent_dir_refs+set}" = set; then diff --git a/configure.in b/configure.in index 1348a472..9516eb67 100644 --- a/configure.in +++ b/configure.in @@ -352,7 +352,7 @@ AC_DEFINE_UNQUOTED(LYNX_CFG_FILE,"$LYNX_CFG_FILE") AC_MSG_RESULT($LYNX_CFG_FILE) AC_MSG_CHECKING(for location of site specific options-file) -LYNX_COMPILE_OPTS=$cf_libdir/lynx_help/lynx_site.txt +LYNX_COMPILE_OPTS=$cf_libdir/lynx_site.txt AC_DEFINE_UNQUOTED(LYNX_COMPILE_OPTS,"$LYNX_COMPILE_OPTS") AC_MSG_RESULT($LYNX_COMPILE_OPTS) @@ -447,14 +447,6 @@ dnl -------------------------------------------------------------------------- CF_HELP_MESSAGE( Miscellaneous Options:) -AC_MSG_CHECKING(if experimental 8-bit case-conversion should be used) -CF_ARG_ENABLE(8bit-toupper, -[ --enable-8bit-toupper use experimental 8-bit case-conversion], - [use_8bit_toupper=$enableval], - [use_8bit_toupper=no]) -AC_MSG_RESULT($use_8bit_toupper) -test $use_8bit_toupper != no && AC_DEFINE(EXP_8BIT_TOUPPER) - AC_MSG_CHECKING(if experimental forms-based options screen should be used) CF_ARG_ENABLE(forms-options, [ --enable-forms-options use experimental forms-based options], @@ -558,6 +550,18 @@ CF_ARG_ENABLE(cgi-links, [AC_DEFINE(LYNXCGI_LINKS)]) AC_MSG_RESULT($enableval) +AC_MSG_CHECKING(if you want exec-links support) +CF_ARG_ENABLE(exec-links, +[ --enable-exec-links support cgi links w/o a http daemon], + [AC_DEFINE(EXEC_LINKS)]) +AC_MSG_RESULT($enableval) + +AC_MSG_CHECKING(if you want exec-scripts support) +CF_ARG_ENABLE(exec-scripts, +[ --enable-exec-scripts support cgi links w/o a http daemon], + [AC_DEFINE(EXEC_SCRIPTS)]) +AC_MSG_RESULT($enableval) + AC_MSG_CHECKING(if you want internal-links feature) CF_ARG_ENABLE(internal-links, [ --enable-internal-links handle following links to same doc differently], diff --git a/docs/IBMPC-charsets.announce b/docs/IBMPC-charsets.announce index 870abe5b..a06abf82 100644 --- a/docs/IBMPC-charsets.announce +++ b/docs/IBMPC-charsets.announce @@ -9,10 +9,11 @@ General Information =================== Lynx comes with built-in translation tables to map the 8-bit character codes or character entities coming in from an HTML document to their equivalent codes, -where possible, for various character sets. You should choose display -character set in Lynx Options Menu according to your font installed locally. -Please contact lynx-dev mailing list if you want any new codepage not listed -there. +where possible, for various character sets. + +IMPORTANT: you should choose display character set in Lynx Options Menu +according to your font installed locally. Please contact lynx-dev mailing list +if you want any new codepage not listed there. Note that all points of the connection between the display at your end and Lynx at the remote end must be 8-bit clean. If the high bit is being stripped at @@ -50,7 +51,7 @@ you're not. If you see box and line-drawing characters and mismatched letters and so on, you are likely displaying 7 bit data, not 8. Ensure that all points of your connection are 8-bit clean: - On any remote UNIX systems you must pass through, do + On any remote UNIX systems you must pass through, do 'stty cs8 -istrip' or 'stty pass8'. 'stty -a' should list your settings. On any remote VMS systems, do 'set terminal /eightbit'. @@ -62,9 +63,9 @@ of your connection are 8-bit clean: 8 bit, some 8-bit character sequences, including those passed by Lynx as well as those which are for your terminal type (vt100, etc.) will be processed by Procomm as ANSI screen - control codes and will most likely result in a garbled display. + control codes and will most likely result in a garbled display. Set it to 7 bit. - If going through a dialup terminal server, you may have to set the + If going through a dialup terminal server, you may have to set the terminal server itself to pass 8 bit data. How to do this varies with the make of the server, and in some cases only a system admin in charge of the box will have the authorization diff --git a/docs/README.chartrans b/docs/README.chartrans index 81aedd45..780c530f 100644 --- a/docs/README.chartrans +++ b/docs/README.chartrans @@ -1,22 +1,22 @@ Lynx CHARTRANS Features (in addition to those which Lynx 2.7.1 already has): - + - Can (attempt to) translate from any document charset to any display - character set, *IF* the document charset is known by a translation + character set, *IF* the document charset is known by a translation table (compiled in at installation). - New method to define character sets: used for input charset as well - as display character set, translation tables compiled in from + as display character set, translation tables compiled in from separate files (one per charset). One table is designated as default and can be used for fallback translation to 7-bit replacements for display. - New method for specifying translations of SGML entities. - - Unicode (UTF8) support: can (attempt to) decode and translate UTF8 to + - Unicode (UTF-8) support: can (attempt to) decode and translate UTF-8 to display character set, or pass through UTF to display (if terminal - or console understands UTF8). [raw display of UTF only tested with Slang + or console understands UTF-8). [raw display of UTF only tested with Slang so far, does not always position everything correctly on screen] - Support for CHARSET attribute on A tag (and sometimes LINK), as in HTML @@ -25,7 +25,7 @@ Lynx CHARTRANS - Support for ACCEPT-CHARSET attribute of FORM tags. - - EXPERIMENTAL, currently enabled only for Linux console: + - EXPERIMENTAL, currently enabled only for Linux console: can (attempt to) automatically switch terminal mode and load new code pages on change of display character set. @@ -68,7 +68,7 @@ Requirements: same as for Lynx in general :) The chartrans code is now merged with Wayne Buttle's changes for 32-bit MS Windows and DOS/DJGPP, with Thomas Dickey's and Jim Spath's emerging auto-configure mechanism, and with BUGFIXES from Foteos -Macrides. See the accompanying file CHANGES.new for the current +Macrides. See the accompanying file CHANGES for the current status. @@ -78,12 +78,6 @@ which are then interpreted as control chars, there is no protection against if strange things are defined in the table files. -HOW TO GET SOURCES: - -The development code is available at - <URL: http://sol.slcc.edu/lynx/current/> -in various formats. - HOW TO INSTALL: (4) before compiling: @@ -113,13 +107,13 @@ HOW TO INSTALL: (6) Some things to look at if compilation fails: In src/chrtrans/UCkd.h there is a typedef for an unsigned 16bit - numeric type which may need to be changed for your system. + numeric type which may need to be changed for your system. See comment near top there. For recompiling Lynx, `make clean' should not be necessary if only - files in src/chrtrans have been changed. On the other hand + files in src/chrtrans have been changed. On the other hand may not propagate to the src/chrtrans directory (depending how things - are going with auto-config), you may have to cd to that directory + are going with auto-config), you may have to cd to that directory and `make clean' there to really clean up there. (7) To customize (add/change translation tables etc.): @@ -131,7 +125,7 @@ HOW TO INSTALL: Note that definition of new character entities (if e.g. you want Lynx to recognize Ž) are not covered by these table files, - they have to be listed in entities.h. + they have to be listed in entities.h. _If you are on a Linux system_ and using Lynx on the console (i.e. not xterm, not a dialup *into* the Linux box), you can compile @@ -140,29 +134,29 @@ HOW TO INSTALL: change the console state. You need to have the Linux kbd package installed, with a working `setfont' command executable by the user, and the right font files - check the source in src/UCAuto.c for - the files used and/or to change them! + the files used and/or to change them! NOTE that with this enabled, - Lynx currently will not clean up the console state at exit, it will probably left like the last Display Character Set you used. - Loading a font is global across _all_ virtual text consoles, so using Lynx (compiled with this flag) may change the appearance of - text on other consoles (if that text contains characters - beyond ASCII). + text on other consoles (if that text contains characters + beyond US-ASCII). (8) Some suggested Web pages for testing: <URL: http://www.tezcat.com/~kweide/lynx-chartrans/test/> <URL: http://www.isoc.org:8080/>, - especially + especially <URL: http://www.isoc.org:8080/liste_ml.htm>. <URL: http://www.accentsoft.com/un/un-all.htm> -(9) Please report bugs, unexpected behavior, etc. +(9) Please report bugs, unexpected behavior, etc. to <lynx-dev@sig.net>. - Suggestions for improvement would be welcome, as well as + Suggestions for improvement would be welcome, as well as contributed translation tables (for stuff that is not available at ftp://dkuug.dk or ftp://ftp.unicode.org). diff --git a/lynx.cfg b/lynx.cfg index a2e6e571..369a0559 100644 --- a/lynx.cfg +++ b/lynx.cfg @@ -169,13 +169,13 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # default is defined in userdefs.h and can be changed here, and via the # 'o'ptions menu. The 'o'ptions menu setting will be stored in the user's RC # file whenever those settings are saved, and thereafter will be used as the -# default. For Lynx a "character set" has two names: a Display Character Set -# string for the Options screen and for setting CHARACTER_SET here, and a -# corresponding MIME name (for recognizing properly labeled charset parameters -# in HTTP headers etc.). Not all Display Character Set names correspond to -# exactly one valid MIME charset (for example "Chinese", "Transparent"), in +# default. For Lynx a "character set" has two names: MIME name (for +# recognizing properly labeled charset parameters in HTTP headers etc.), and a +# human-readable string for the 'O'ptions Menu (so you may find info about +# language or group of languages besides MIME name). Not all 'human-readable' +# names correspond to exactly one valid MIME charset (example is "Chinese"), in # that case an appropriate valid (and more specific) MIME name should be used -# where required. +# where required. Well-known synonyms are also processed in the code. # # Lynx normally translates characters from document's charset to display # charset, using ASSUME_CHARSET value (see below) if document's charset is not @@ -205,52 +205,58 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # control characters filtered out, etc. There is a "Transparent" pseudo # character set for more "rawness". # -# The default character sets include: -# Display Character Set name MIME name -# ========================== ========= -# 7 bit approximations us-ascii -# Chinese euc-cn -# DEC Multinational dec-mcs -# DosArabic (cp864) cp864 -# DosBaltRim (cp775) cp775 -# DosCyrillic (cp866) cp866 -# DosGreek (cp737) cp737 -# DosGreek2 (cp869) cp869 -# DosHebrew (cp862) cp862 -# DosLatin1 (cp850) cp850 -# DosLatin2 (cp852) cp852 -# DosLatinUS (cp437) cp437 -# ISO 8859-10 iso-8859-10 -# ISO 8859-5 Cyrillic iso-8859-5 -# ISO 8859-6 Arabic iso-8859-6 -# ISO 8859-7 Greek iso-8859-7 -# ISO 8859-8 Hebrew iso-8859-8 -# ISO 8859-9 (Latin 5) iso-8859-9 -# ISO Latin 1 iso-8859-1 -# ISO Latin 2 iso-8859-2 -# ISO Latin 3 iso-8859-3 -# ISO Latin 4 iso-8859-4 -# Japanese (EUC) euc-jp -# Japanese (SJIS) shift_jis -# KOI8-R Cyrillic koi8-r -# Korean euc-kr -# Macintosh (8 bit) macintosh -# NeXT character set next -# RFC 1345 Mnemonic mnemonic -# RFC 1345 w/o Intro mnemonic+ascii+0 -# Taipei (Big5) big5 -# Transparent x-transparent -# UNICODE UTF 8 utf-8 -# Vietnamese (VISCII) viscii -# WinArabic (cp1256) windows-1256 -# WinBaltRim (cp1257) windows-1257 -# WinCyrillic (cp1251) windows-1251 -# WinGreek (cp1253) windows-1253 -# WinHebrew (cp1255) windows-1255 -# WinLatin1 (cp1252) windows-1252 -# WinLatin2 (cp1250) windows-1250 -# -#CHARACTER_SET:ISO Latin 1 +# Since Lynx now supports a wide range of platforms it may be useful to note +# that cpXXX codepages used by IBM PC compatible computers, and windows-xxxx +# used by native MS-Windows apps. We also note that cpXXX pages rerely found +# on Internet but mostly for local needs on DOS. +# +# Recognized character sets include: +# +# string for 'O'ptions Menu MIME name +# =========================== ========= +# 7 bit approximations (US-ASCII) us-ascii +# Western (ISO-8859-1) iso-8859-1 +# Western (cp850) cp850 +# Western (windows-1252) windows-1251 +# IBM PC US codepage (cp437) cp437 +# DEC Multinational dec-mcs +# Macintosh (8 bit) macintosh +# NeXT character set next +# Chinese euc-cn +# Japanese (EUC-JP) euc-jp +# Japanese (Shift_JIS) shift_jis +# Korean euc-kr +# Taipei (Big5) big5 +# Vietnamese (VISCII) viscii +# Eastern European (ISO-8859-2) iso-8859-2 +# Eastern European (cp852) cp852 +# Eastern European (windows-1250) windows-1250 +# Latin 3 (ISO-8859-3) iso-8859-3 +# Latin 4 (ISO-8859-4) iso-8859-4 +# Baltic Rim (cp775) cp775 +# Baltic Rim (windows-1257) windows-1257 +# Cyrillic (ISO-8859-5) is-8859-5 +# Cyrillic (cp866) cp866 +# Cyrillic (windows-1251) windows-1251 +# Cyrillic (KOI8-R) koi8-r +# Arabic (ISO-8859-6) iso-8859-6 +# Arabic (cp864) cp864 +# Arabic (windows-1256) windows-1256 +# Greek (ISO-8859-7) iso-8859-7 +# Greek (cp737) cp737 +# Greek2 (cp869) cp869 +# Greek (windows-1253) windows-1253 +# Hebrew (ISO-8859-8) iso-8859-8 +# Hebrew (cp862) cp862 +# Hebrew (windows-1255) windows-1255 +# Turkish (ISO-8859-9) iso-8859-9 +# ISO-8859-10 iso-8859-10 +# UNICODE (UTF-8) utf-8 +# RFC 1345 w/o Intro mnemonic+ascii+0 +# RFC 1345 Mnemonic mnemonic +# Transparent x-transparent +# +#CHARACTER_SET:iso-8859-1 # ASSUME_CHARSET changes the handling of documents which do not # explicitly specify a charset. Normally Lynx assumes that 8-bit @@ -304,6 +310,13 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # #NCR_IN_BOOKMARKS:FALSE +# FORCE_8BIT_TOUPPER overrides locale settings and uses internal 8-bit +# case-conversion mechanism for case-insensitive searches in non-ASCII display +# character set, FALSE by default (should not be changed unless you encounter +# problems with case-insensitive searches). +# +#FORCE_8BIT_TOUPPER:FALSE + # If Lynx encounters a charset parameter it doesn't recognize, it will # replace the value given by ASSUME_UNREC_CHARSET (or a corresponding # -assume_unrec_charset command line option) for it. This can be used @@ -787,6 +800,11 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html #COOKIE_ACCEPT_DOMAINS: #COOKIE_REJECT_DOMAINS: +# COOKIE_FILE is the default file to store persistent downloaded cookies +# in, if Lynx was compiled with EXP_PERSISTENT_COOKIES. The cookie file +# can also be specified in .lynxrc or on the commandline. +#COOKIE_FILE:~/.lynx_cookies + # VMS: #===== # The mail command and qualifiers are defined in userdefs.h. Lynx diff --git a/lynx_help/Lynx_users_guide.html b/lynx_help/Lynx_users_guide.html index 43f4163e..5cc2ea98 100644 --- a/lynx_help/Lynx_users_guide.html +++ b/lynx_help/Lynx_users_guide.html @@ -18,7 +18,7 @@ well as files on remote systems running <em>http</em>, <em>gopher</em>, <em>cso</em>/<em>ph</em>/<em>qi</em> servers, and services accessible via logins to <em>telnet</em>, <em>tn3270</em> or <em>rlogin</em> accounts (see <a href="lynx_url_support.html">URL Schemes Supported by Lynx</a>). -<a href="#32">Current</a> versions of Lynx run on Unix, VMS, +<a href="#Hist">Current</a> versions of Lynx run on Unix, VMS, Windows95/NT, 386DOS and OS/2 EMX. <p>Lynx can be used to access information on the <em>WWW</em>, or to build @@ -27,57 +27,58 @@ has been used to build several <em>Campus Wide Information Systems</em> (<em>CWIS</em>). In addition, Lynx can be used to build systems isolated within a single LAN. -<h2><A NAME="TOC"><em>Table of Contents</em></A></h2> +<h2 ID="TOC"><A NAME="Contents"><em>Table of Contents</em></A></h2> <ul> -<li><A HREF="#1">Lynx online help</A> -<li><A HREF="#2">Viewing local files with Lynx</A> -<li><A HREF="#3">Leaving Lynx</A> -<li><A HREF="#4">Starting Lynx with a Remote File</A> -<li><A HREF="#5">Starting Lynx with the WWW_HOME environment variable.</A> -<li><A HREF="#6">Navigating hypertext documents with Lynx</A> -<li><A HREF="#7">Printing, Mailing, and Saving rendered files to disk.</A> -<li><A HREF="#8">Viewing the HTML document source and editing documents</A> -<li><A HREF="#9">Downloading and Saving source files.</A> -<li><A HREF="#10">Reloading files and refreshing the display</A> -<li><A HREF="#11">Lynx searching commands</A> -<li><A HREF="#12">Lynx Options Menu</A> -<li><A HREF="#13">Comments and mailto: links</A> -<li><A HREF="#14">USENET News posting</A> -<li><A HREF="#15">Lynx bookmarks</A> -<li><A HREF="#16">Jump command</A> -<li><A HREF="#17">Directory Editing</A> -<li><A HREF="#18">Scrolling and Other useful commands</A> -<li><a href="#19">Lynx and HTML Forms</a> -<li><a href="#20">Lynx and HTML Tables</a> -| <a href="#21">Lynx and HTML Tabs</a> -<li><a href="#22">Lynx and HTML Frames</a> -| <a href="#23">Lynx and HTML Banners</a> -<li><a href="#24">Lynx and HTML Footnotes</a> -| <a href="#25">Lynx and HTML Notes</a> -<li><a href="#26">Lynx and HTML Lists</a> -<li><a href="#27">Lynx and HTML Quotes</a> -<li><a href="#28">Lynx and Client-Side-Image-Maps</a> -<li><a href="#29">Lynx and Client-Side-Pull</a> -<li><a href="#30">Lynx and State Management</a> (Me want <em>cookie</em>!) -<li><A HREF="#31">The Lynx command line</A> -<li><A HREF="#32">Lynx development history</A> +<li><A HREF="#Help" NAME="ToC-Help">Lynx online help</A> +<li><A HREF="#Local" NAME="ToC-Local">Viewing local files with Lynx</A> +<li><A HREF="#Leaving" NAME="ToC-Leaving">Leaving Lynx</A> +<li><A HREF="#Remote" NAME="ToC-Remote">Starting Lynx with a Remote File</A> +<li><A HREF="#EnVar" NAME="ToC-EnVar">Starting Lynx with the WWW_HOME environment variable.</A> +<li><A HREF="#IntraDocNav" NAME="ToC-IntraDocNav">Navigating hypertext documents with Lynx</A> +<li><A HREF="#Disposing" NAME="ToC-Disposing">Printing, Mailing, and Saving rendered files to disk.</A> +<li><A HREF="#LocalSource" NAME="ToC-LocalSource">Viewing the HTML document source and editing documents</A> +<li><A HREF="#RemoteSource" NAME="ToC-RemoteSource">Downloading and Saving source files.</A> +<li><A HREF="#ReDo" NAME="ToC-ReDo">Reloading files and refreshing the display</A> +<li><A HREF="#Search" NAME="ToC-Search">Lynx searching commands</A> +<li><A HREF="#InteractiveOptions" NAME="ToC-InteractiveOptions">Lynx Options Menu</A> +<li><A HREF="#Mail" NAME="ToC-Mail">Comments and mailto: links</A> +<li><A HREF="#News" NAME="ToC-News">USENET News posting</A> +<li><A HREF="#Bookmarks" NAME="ToC-Bookmarks">Lynx bookmarks</A> +<li><A HREF="#Jumps" NAME="ToC-Jumps">Jump command</A> +<li><A HREF="#DirEd" NAME="ToC-DirEd">Directory Editing</A> +<li><A HREF="#MiscKeys" NAME="ToC-MiscKeys">Scrolling and Other useful commands</A> +<li><a href="#Forms" NAME="ToC-Forms">Lynx and HTML Forms</a> +<li><a href="#Tables" NAME="ToC-Tables">Lynx and HTML Tables</a> +| <a href="#Tabs" NAME="ToC-Tabs">Lynx and HTML Tabs</a> +<li><a href="#Frames" NAME="ToC-Frames">Lynx and HTML Frames</a> +| <a href="#Banners" NAME="ToC-Banners">Lynx and HTML Banners</a> +<li><a href="#Footnotes" NAME="ToC-Footnotes">Lynx and HTML Footnotes</a> +| <a href="#Notes" NAME="ToC-Notes">Lynx and HTML Notes</a> +<li><a href="#Lists" NAME="ToC-Lists">Lynx and HTML Lists</a> +<li><a href="#Quotes" NAME="ToC-Quotes">Lynx and HTML Quotes</a> +<li><a href="#USEMAP" NAME="ToC-USEMAP">Lynx and Client-Side-Image-Maps</a> +<li><a href="#Refresh" NAME="ToC-Refresh">Lynx and Client-Side-Pull</a> +<li><a href="#Cookies" NAME="ToC-Cookies">Lynx and State Management</a> (Me want <em>cookie</em>!) +<li><A HREF="#Invoking" NAME="ToC-Invoking">The Lynx command line</A> +<li><A HREF="#Hist" NAME="ToC-Hist">Lynx development history</A> </ul> -<h2><A NAME="1"><em>Lynx online help</em></A></h2> +<h2 ID="Help"><A NAME="Help"><em>Lynx online help</em></A></h2> Online help is available while viewing any document. Press the -'<em>?</em>' or '<em>H</em>' key (or the '<em>h</em> key if vi-like -key movement is not on) to see a list of help topics. See the section -titled <A HREF="#6">Navigating hypertext documents with Lynx</A> for -information on navigating through the help files. +'<em>?</em>' or '<em>H</em>' key (or the '<em>h</em> key if +vi-like key movement is not on) to see a list of help topics. +See the section titled <A HREF="#IntraDocNav">Navigating +hypertext documents with Lynx</A> for information on navigating +through the help files. <p>In addition, a summary description of all the Lynx keystroke commands and their key bindings is available by pressing the '<em>K</em>' key (or the '<em>k</em>' key if vi-like key movement is not on). -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Help">ToC</A>] -<h2><A NAME="2"><em>Viewing local files with Lynx</em></A></h2> +<h2 ID="Local"><A NAME="Local"><em>Viewing local files with Lynx</em></A></h2> Lynx can be started by entering the Lynx command along with the name of a file to display. For example these commands could @@ -153,16 +154,16 @@ present the user with a list of options. The only default option is <em>Save to disk</em>, which is disabled if Lynx is running in anonymous mode. Any number of additional download methods may be defined in the lynx.cfg file by the system administrator. Programs like kermit, zmodem -and FTP are some possible options. [<A HREF="#TOC">ToC</A>] +and FTP are some possible options. [<A HREF="#ToC-Local">ToC</A>] -<h2><A NAME="3"><em>Leaving Lynx</em></A></h2> +<h2 ID="Leaving"><A NAME="Leaving"><em>Leaving Lynx</em></A></h2> To exit Lynx use the '<em>q</em>' command. You will be asked whether you really want to quit. Answering '<em>y</em>' will exit and '<em>n</em>' will return you to the current document. Use '<em>Q</em>' or -<em>Control-D</em> to quit without verification. [<A HREF="#TOC">ToC</A>] +<em>Control-D</em> to quit without verification. [<A HREF="#ToC-Leaving">ToC</A>] -<h2><A NAME="4"><em>Starting Lynx with a Remote File</em></A></h2> +<h2 ID="Remote"><A NAME="Remote"><em>Starting Lynx with a Remote File</em></A></h2> If you wish to view a remote file (that is, a file residing on some computer system other than the one upon which you are running @@ -219,10 +220,10 @@ portions of it in the startfile argument. For example:<br> <tab indent="62">will be expanded to:<br> <tab indent="14"><em>ftp://ftp.more.net/pub</em><br> See <a href="lynx_url_support.html">URL Schemes Supported by Lynx</a> for -more detailed information. [<A HREF="#TOC">ToC</A>] +more detailed information. [<A HREF="#ToC-Remote">ToC</A>] -<h2><A NAME="5" -><em>Starting Lynx with the WWW_HOME environment variable.</em></A></h2> +<h2 ID="EnVar"><A NAME="EnVar"> +<em>Starting Lynx with the WWW_HOME environment variable.</em></A></h2> You may also specify a starting file for Lynx using the WWW_HOME environment variable, @@ -242,9 +243,9 @@ environment variable, </dl> Note that on VMS the double-quoting <em>must</em> be included to preserve -casing. +casing. [<A HREF="#ToC-EnVar">ToC</A>] -<h2><A NAME="6"><em>Navigating hypertext documents with Lynx</em></A></h2> +<h2 ID="IntraDocNav"><A NAME="IntraDocNav"><em>Navigating hypertext documents with Lynx</em></A></h2> The process of moving within a hypertext web, selecting and displaying links is known as "navigation." With Lynx almost all navigation can be @@ -268,7 +269,7 @@ accomplished with the arrow keys and the numeric keypad. There are also a few other keyboard commands to aid in navigation. The Control and Function keys used for navigation within the current document are described in <A -HREF="#18"><em>Scrolling and Other useful commands</em></A>. Some +HREF="#MiscKeys"><em>Scrolling and Other useful commands</em></A>. Some additional commands depend on the fact that Lynx keeps a list of each link you visited to reach the current document, called the <a href="keystrokes/history_help.html">History Page</a>, and a @@ -297,40 +298,39 @@ program you are using was configured. will automatically prompt for a username and a password. If you give the correct information, you will then be served the requested information. Lynx will automatically send your username and password to the same server -if it is needed again. [<A HREF="#TOC">ToC</A>] +if it is needed again. [<A HREF="#ToC-IntraDocNav">ToC</A>] -<h2><A NAME="7" +<h2 ID="Disposing"><A NAME="Disposing" ><em>Printing, Mailing, and Saving rendered files to disk.</em></A></h2> -To print, mail or save the document you have on-screen, enter '<em>p</em>', -which displays a menu of <em>Print Options</em>, including 4 pre-defined: -`Save to local file', `E-mail the file', `Print to screen' -and `Print to local printer attached to vt100'. -<p> -`Print to screen' allows file transfers in the absence of alternatives -and is often the only option allowed here for anonymous users; -`Print to local printer' prefixes the `Print to screen' routine -with the VT100 standard `printer on' escape sequence and appends to it -the escape sequences for `form feed' and `printer off'; -the 3rd & 4th options are not pre-defined for DOS/WINDOWS ports. -<p> -In most configurations, all Lynx users (including anonymous users) -can mail files to themselves and print the entire file to the screen; -users with named accounts (or individuals using Lynx on a personal computer) -can also save documents to files in their disk space; -if you have access to lynx.cfg, you can define your own options: -see the detailed advice in lynx.cfg. -<p> -Some options prompt for an output filename. These are saved -in a circular buffer, and any previous entries can be retrieved -for re-use by pressing the <em>up-arrow</em> or <em>down-arrow</em> keys -at the prompt. -<p> -NB if you want exact copies of text files without expansion of TABs -to spaces you should use the <a href="#9">Download</a> options. -[<A HREF="#TOC">ToC</A>] - -<h2><A NAME="8" +Rendered HTML documents, and plain text files, may be printed using the +'<em>p</em>' command while viewing the document. After pressing the +'<em>p</em>' key a menu of <em>Print Options</em> will be displayed. The +menu will vary according to several factors. First, some sites set up +special accounts to let users run Lynx to access local information systems. +Typically these accounts require no passwords and do not require users to +identify themselves. As a result such accounts are called "anonymous" +accounts, and their users are considered "anonymous" users. In most +configurations, all Lynx users (including anonymous users) are able to +mail files to themselves and print the entire file to the screen. + +<p>Additional print options are available for users who are using +Lynx from their own accounts (that is, so-called "non-anonymous +users"). In particular, the <em>Save to a local file</EM> +option allows you to save the document into a file on your disk +space. Any number of additional print options may also be +available as configured by your system administrator. + +<p>Some options, such as <em>Save to a local file</em>, involve prompting +for an output filename. All output filename entries are saved in a +circular buffer, and any previous entries can be retrieved for re-use by +pressing the <em>up-arrow</em> or <em>down-arrow</em> keys at the prompt. + +<p>Note that if you want exact copies of text files without any expansions +of TAB characters to spaces you should use the <a href="#RemoteSource"> +Download</a> options. [<A HREF="#ToC-Disposing">ToC</A>] + +<h2 ID="LocalSource"><A NAME="LocalSource" ><em>Viewing the HTML document source and editing documents</em></A></h2> When viewing HTML documents it is possible to retrieve and display the @@ -343,7 +343,7 @@ When viewing unrendered documents you may print them as any normal document. <p>Selecting the <em>Print to a local file</em> option from the Print Menu, makes it possible to save the source of the document to disk so that you may have a local copy of the document source, but it is better to <a -href="#9">Download</a> the source. +href="#RemoteSource">Download</a> the source. <p>NOTE: When saving an HTML document it is important to name the document with a <em>.html</em> extension, if you want to read it with @@ -367,32 +367,35 @@ documents by using the '<em>e</em>' command. When the '<em>e</em>' command is entered your specified editor is spawned to edit the file. After changes are completed, exit your editor and you will return to Lynx. Lynx will reload and render the file so that changes can be immediately -examined. [<A HREF="#TOC">ToC</A>] - -<h2><A NAME="9"><em>Downloading and Saving source files.</em></A></h2> - -If the DOWNLOAD keystroke command ('<em>d</em>' or <em>D</em>) is used -when positioned on a link for an HTML, plain text, or binary file, Lynx -will transfer the file, without rendering or modification, into a temporary -location and present the user with a list of options, as when a link for a -binary file of a type for which no viewer has been mapped is activated. -As described above, the only default <em>Download option</em> is -<em>Save to disk</em>, which is disabled if Lynx is running in -anonymous mode, and any number of additional download methods such as -kermit and zmodem may be defined in the <em>lynx.cfg</em> file by the -system administrator. Downloading the sources of HTML and plain text -files, instead of toggling to <a href="#8">display the source</a> -('<em>\</em>') and then using <a href="#7">Printing</a> options, ensures -that no modifications of the source (e.g., expansions of TAB characters -to a series of spaces) will occur. +examined. [<A HREF="#ToC-LocalSource">ToC</A>] + +<h2 ID="RemoteSource"><A NAME="RemoteSource"> +<em>Downloading and Saving source files.</em></A></h2> + +If the DOWNLOAD keystroke command ('<em>d</em>' or <em>D</em>) is +used when positioned on a link for an HTML, plain text, or binary +file, Lynx will transfer the file, without rendering or +modification, into a temporary location and present the user with +a list of options, as when a link for a binary file of a type for +which no viewer has been mapped is activated. As described +above, the only default <em>Download option</em> is <em>Save to +disk</em>, which is disabled if Lynx is running in anonymous +mode, and any number of additional download methods such as +kermit and zmodem may be defined in the <em>lynx.cfg</em> file by +the system administrator. Downloading the sources of HTML and +plain text files, instead of toggling to <a +href="#LocalSource">display the source</a> ('<em>\</em>') and +then using <a href="#Disposing">Printing</a> options, ensures +that no modifications of the source (e.g., expansions of TAB +characters to a series of spaces) will occur. <p>Some options, such as <em>Save to disk</em>, involve prompting for an output filename. All output filename entries are saved in a circular buffer, and any previous entries can be retrieved for re-use by pressing the <em>up-arrow</em> or <em>down-arrow</em> keys at the prompt. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-RemoteSource">ToC</A>] -<h2><A NAME="10" +<h2 ID="ReDo"><A NAME="ReDo" ><em>Reloading files and refreshing the display</em></A></h2> The RELOAD (<em>Control-R</em>) command will reload and re-render the file @@ -407,24 +410,26 @@ cache from a previous request or submission exits. The request or submission will include <em>Pragma: no-cache</em> and <em>Cache-Control: no-cache</em> in its headers. Note that FORMs with POST content will be resubmitted regardless of whether the NOCACHE or ACTIVATE command is used (see <A -HREF="#19"><em>Lynx and HTML Forms</em></A>). [<A HREF="#TOC">ToC</A>] +HREF="#Forms"><em>Lynx and HTML Forms</em></A>). +[<A HREF="#ToC-ReDo">ToC</A>] -<h2><A NAME="11"><em>Lynx searching commands</em></A></h2> +<h2 ID="Search"><A NAME="Search"><em>Lynx searching commands</em></A></h2> Two commands activate searching in Lynx: '<em>/</em>' and '<em>s</em>'. -<p>While viewing a normal document use the '<em>/</em>' command to find a -word or phrase within the current document. The search type will depend on -the search option setting in the <a href="#12">Options Menu</a>. The search -options are case sensitive and case insensitive. These searches are entirely -local to Lynx. +<p>While viewing a normal document use the '<em>/</em>' command +to find a word or phrase within the current document. The search +type will depend on the search option setting in the <a +href="#InteractiveOptions">Options Menu</a>. The search options +are case sensitive and case insensitive. These searches are +entirely local to Lynx. <p>Some documents are designated <em>index documents</em> by virtue of an ISINDEX element in their HEAD section. These documents can be used to retrieve additional information based on searches using words or phrases -submitted to an index server. The Lynx status line will indicate that you +submitted to an index server. The Lynx statusline will indicate that you are viewing such a document, and if so, the '<em>s</em>' key will invoke a -status line prompt to enter a query string. The prompt can be specified via +statusline prompt to enter a query string. The prompt can be specified via a PROMPT attribute in the ISINDEX element. Otherwise, Lynx will use an internally configured prompt. The address for submitting the search can be specified via an HREF or ACTION attribute. Otherwise, Lynx will use the @@ -442,7 +447,7 @@ documents, or if the current document is reloaded. The search cycles to the top of the document if the word or phrase is not located below your current position. -<p>Although <a href="#19">HTML Forms</a> have largely replaced index +<p>Although <a href="#Forms">HTML Forms</a> have largely replaced index documents for searches via http servers, they are still useful for performing searches directly via WAIS or Gopher servers in conjunction with the internal gateways for such servers. For example, an HTML index document can act as a @@ -451,9 +456,9 @@ strings for searching it, and include an element such as:<BR> <tab indent="12"><em><ISINDEX <tab id="idx">PROMPT="Enter WAIS query:"<BR> <tab to="idx">HREF="wais://net.bio.net/biologists-addresses"></em><BR> for submitting a search of the Biologist's Addresses database directly -to the net.bio.net WAIS server. [<A HREF="#TOC">ToC</A>] +to the net.bio.net WAIS server. [<A HREF="#ToC-Search">ToC</A>] -<h2><A NAME="12"><em>Lynx Options Menu</em></A></h2> +<h2 ID="InteractiveOptions"><A NAME="InteractiveOptions"><em>Lynx Options Menu</em></A></h2> The Lynx <em>Options Menu</em> may be accessed by pressing the '<em>o</em>' key. The current <em>Options Menu</em> contains the following configurable @@ -495,13 +500,14 @@ to get back to the <em>Command?</em> prompt. to toggle the choices and press the <em>Return</em> key to finish the change. -<p>For fields where you potentially have more than two choices, popup -windows may be evoked which function homologously to those for select -fields in <a href="#19">HTML Forms</a>. The popup windows will be invoked -only if you have popups for select fields set to ON (see below). Otherwise, -your cursor will be positioned at the current choice, and you can press any -key to cycle through the choices, then press the <em>Return</em> key to -finish the change. +<p>For fields where you potentially have more than two choices, +popup windows may be evoked which function homologously to those +for select fields in <a href="#Forms">HTML Forms</a>. The popup +windows will be invoked only if you have popups for select fields +set to ON (see below). Otherwise, your cursor will be positioned +at the current choice, and you can press any key to cycle through +the choices, then press the <em>Return</em> key to finish the +change. <p>When you are done changing options use the '<em>r</em>' command to return to Lynx or the '<em>></em>' command to save the options to a @@ -543,7 +549,8 @@ return to Lynx or the '<em>></em>' command to save the options to a href="keystrokes/edit_help.html">Line Editor</a>. Bookmark files allow frequently traveled links to be stored in personal easy to access files. Using the '<em>a</em>'dd bookmark - link command (see <a href="#15">Lynx bookmarks</a>) you may save + link command (see <a href="#Bookmarks"> + Lynx bookmarks</a>) you may save any link that does not have associated POST content into a bookmark file. All bookmark files must be in or under your account's home directory. If the location specified does not @@ -612,7 +619,10 @@ return to Lynx or the '<em>></em>' command to save the options to a according to your terminal's character set so that characters other than 7-bit ASCII can be displayed correctly, using approximations if necessary. You must have the selected - character set installed on your terminal. + character set installed on your terminal. (Since Lynx now + supports a wide range of platforms it may be useful to note + that cpXXX codepages used within IBM PC computers, and + windows-xxxx within native MS-Windows apps.) <dt>Raw 8-bit or CJK Mode <dd>Whether 8-bit characters are assumed to correspond with the @@ -620,7 +630,8 @@ return to Lynx or the '<em>></em>' command to save the options to a translation via the chartrans conversion tables. Should be ON by default when the display character set is one of the Asian (CJK) sets and the 8-bit characters are Kanji multibytes. - Should be OFF for the other display character sets, but can be turned ON + Should be OFF for the other display character sets, + but can be turned ON when the document's charset is unknown (e.g., is not ISO-8859-1 and no charset parameter was specified in a reply header from an HTTP server to indicate what it is) but you know by some @@ -723,9 +734,9 @@ return to Lynx or the '<em>></em>' command to save the options to a selected or made current by numbers as well as using the arrow keys, or having every link as well as every form field numbered so that they can be selected or sought by numbers. See the<br> -  <a href="keystrokes/follow_help.html" + <a href="keystrokes/follow_help.html" >Follow link (or page) number:</a> and<br> -  <a + <a href="keystrokes/follow_help.html#select-option" >Select option (or page) number:</a><br> help for more information. @@ -810,10 +821,10 @@ return to Lynx or the '<em>></em>' command to save the options to a executed Lynx will show the script within the Lynx window and inform the user that the script is not allowed to be executed and will ask the user to check his/her options. - [<A HREF="#TOC">ToC</A>] + [<A HREF="#ToC-InteractiveOptions">ToC</A>] </dl> -<h2><A NAME="13"><em>Comments and mailto: links</em></A></h2> +<h2 ID="Mail"><A NAME="Mail"><em>Comments and mailto: links</em></A></h2> At any time while viewing documents within Lynx, you may use the '<em>c</em>' command to send a mail message to the owner of the current @@ -842,9 +853,9 @@ message. If you press '<em>y</em>', you will be prompted whether to append your signature file if one was defined in lynx.cfg and is accessible, and then the message will be sent, whereas if you press '<em>n</em>' the message will be deleted. Entering Control-G in response to any prompts -also will cancel the mailing.[<A HREF="#TOC">ToC</A>] +also will cancel the mailing.[<A HREF="#ToC-Mail">ToC</A>] -<h2><A NAME="14"><em>USENET News posting</em></A></h2> +<h2 ID="News"><A NAME="News"><em>USENET News posting</em></A></h2> While reading <a href="http://www.w3.org/hypertext/DataSources/News/Groups/Overview.html" @@ -873,10 +884,10 @@ received the article supports posting from your site, a link that says href="lynx_url_support.html">Supported URLs</a> for more information about the URL schemes for posting or sending followups (replies) to nntp servers with Lynx. - [<A HREF="#TOC">ToC</A>] + [<A HREF="#ToC-News">ToC</A>] </dl> -<h2><A NAME="15"><em>Lynx bookmarks</em></A></h2> +<h2 ID="Bookmarks"><A NAME="Bookmarks"><em>Lynx bookmarks</em></A></h2> It is often useful to place a bookmark to aid in returning quickly to a document. To use the bookmark feature you must first use the @@ -924,16 +935,17 @@ and spacing (other than the <em>A</em>nchor content or <em>HREF</em> value) within lines is changed or other HTML markup is added, the '<em>a</em>'dd and '<em>r</em>'emove commands may not work properly. -<p>When multi-bookmarks (see <a href="#12">Options Menu</a>) is OFF, -you will always view or add links to the default bookmark file. When -it is STANDARD, a menu of up to 26 bookmark files will be invoked, -and you select the bookmark file by entering its letter token. When -it is ADVANCED, you will be prompted for the letter token, but can -enter '<em>=</em>' to invoke the STANDARD selection menu, or -<em>RETURN</em> for the default bookmark file. -[<A HREF="#TOC">ToC</A>] +<p>When multi-bookmarks (see <a +href="#InteractiveOptions">Options Menu</a>) is OFF, you will +always view or add links to the default bookmark file. When it +is STANDARD, a menu of up to 26 bookmark files will be invoked, +and you select the bookmark file by entering its letter +token. When it is ADVANCED, you will be prompted for the letter +token, but can enter '<em>=</em>' to invoke the STANDARD +selection menu, or <em>RETURN</em> for the default bookmark file. +[<A HREF="#ToC-Bookmarks">ToC</A>] -<h2><A NAME="16"><em>Jump Command</em></a></h2> +<h2 ID="Jumps"><A NAME="Jumps"><em>Jump Command</em></a></h2> A feature similar to the Lynx bookmarks is the jump command. The jump command allows you to enter a shortcut name to access a URL. If the jump @@ -947,9 +959,9 @@ previous entries can be retrieved for re-use by pressing the <p>Note to System Administrators: Read the <em>lynx.cfg</em> file on how to set up the jump command for your system and how to define shortcut names. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Jumps">ToC</A>] -<h2><A NAME="17"><em>Directory Editing</em></a></h2> +<h2 ID="DirEd"><A NAME="DirEd"><em>Directory Editing</em></a></h2> Lynx offers extended DIRED support on Unix (on VMS the more powerful CSwing program is recommended for character cell terminals, and can be @@ -993,9 +1005,9 @@ on your local system. The commands available in DIRED mode are <dd>Type '<em>u</em>' to upload a file to the present directory. Upload methods are defined by your system administrator. </dl> -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-DirEd">ToC</A>] -<h2><A NAME="18"><em>Scrolling and Other useful commands</em></A></h2> +<h2 ID="MiscKeys"><A NAME="MiscKeys"><em>Scrolling and Other useful commands</em></A></h2> A summary of all the keystroke commands and their key bindings can be invoked via the KEYMAP command, normally mapped to '<em>k</em>' and @@ -1022,7 +1034,8 @@ commands. the current document, and thus is a synonym for the Keypad and Function <em>Page-Up</em> keys. However, <em>Control-B</em> acts as <em>right-arrow</em> when emacs-like key movement is - enabled (see <A HREF="#12">Lynx Options Menu</A>). + enabled (see <A HREF="#InteractiveOptions">Lynx + Options Menu</A>). <dt><em>^F</em> <dd><em>Control-F</em> normally jumps you to the next page of the current document, and thus is a synonym for the Keypad and @@ -1102,7 +1115,7 @@ commands. <dt><em>^T</em> <dd><em>Control-T</em> toggles Lynx trace mode on and off. This is useful for diagnosing bad html. If you get a <em>Bad HTML</em> - status line message when loading a document, enter + statusline message when loading a document, enter <em>Control-T</em> and then <em>Control-R</em> to reload the document in trace mode. You also can submit the document for validation via links in the online help menu. If you are able @@ -1144,7 +1157,7 @@ commands. <dt><em>]</em> <dd>The '<em>]</em>' command is used to send HEAD requests for the current document or link. It applies only to documents or links - (or form submit buttons) of http servers. A status line message + (or form submit buttons) of http servers. A statusline message will notify you if the context for this command was inappropriate. The HEAD requests always are sent to the http server, i.e., Lynx does not retrieve any previous server replies from its cache. @@ -1156,10 +1169,10 @@ commands. href="keystrokes/cookie_help.html">Cookie Jar Page</a> if it contains cookies. <dt><em>z</em> - <dd>To interrupt a connect or transfer request, enter '<em>z</em>': - any data transferred before the interrupt will be displayed; - to allow interruption of the look-up phase with '<em>z</em>' - Lynx must be configured with --enable-nsl-fork when compiled. + <dd>Lynx supports completely interruptible I/O processes. Press the + '<em>z</em>' key at any time during a connect or transfer process + and the process will be halted. If any data was transferred + before the interrupt, it will be displayed. <dt><em>numbers</em> <dd>Lynx offers other, advanced navigation features when numbers are used to invoke the <a @@ -1169,10 +1182,10 @@ commands. href="keystrokes/follow_help.html#select-option" >Select option (or page) number:</a><br> prompts. - [<A HREF="#TOC">ToC</A>] + [<A HREF="#ToC-MiscKeys">ToC</A>] </dl> -<h2><A NAME="19"><em>Lynx and HTML Forms</em></a></h2> +<h2 ID="Forms"><A NAME="Forms"><em>Lynx and HTML Forms</em></a></h2> This section describes the Lynx Forms Interface. HTML gives document providers the ability to create on-line forms which may be filled out @@ -1209,10 +1222,11 @@ options from a list, and fields for entering text. <em>page-down</em>, and other navigation keys to move the cursor among options, and the <em>right-arrow</em> or <em>Return</em> key to select an option. You also can use the '<em>/</em>' and '<em>n</em>'ext - <a href="#11">searching</a> commands for navigating to options which + <a href="#Search">searching</a> commands for navigating to options which contain particular strings. <em>NOTE</em> that the popup menu feature can be disabled via compilation and/or configuration options, - or via the <a href="#12">Options Menu</a>, in which case the selection + or via the <a href="#InteractiveOptions">Options Menu</a>, + in which case the selection field options will be converted to a list of radio buttons. The default setting for use of popups or radio button lists can be toggled via the <em>-popup</em> command line switch. @@ -1304,7 +1318,7 @@ content. <p>Inlined images can be used as submit buttons in forms. If such buttons are assigned NAMEs in the markup, for graphic clients they can -also serve as <a href="#28">image maps</a>, and the x,y coordinates of +also serve as <a href="#USEMAP">image maps</a>, and the x,y coordinates of the graphic client's cursor position in the image when it was <em>clicked</em> are included in the form content. Since Lynx cannot inline the image, and the user could not have moved a cursor from the @@ -1399,9 +1413,9 @@ any document: <tab indent="12" ><em><META <tab id="cdis">HTTP-EQUIV="Content-Disposition"<BR> <tab to="cdis">CONTENT="file; filename=name.suffix"></em><BR> -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Forms">ToC</A>] -<h2><A NAME="20"><em>Lynx and HTML Tables</em></a></h2> +<h2 ID="Tables"><A NAME="Tables"><em>Lynx and HTML Tables</em></a></h2> HTML includes markup for creating <em>tables</em> structured as arrays of cells aligned by columns and rows on the displayed page. @@ -1421,11 +1435,11 @@ alignments intended for the <em>table</em> will be missed. <p>If inherently tabular data must be presented with Lynx, one can use PRE formatted content, or, if the <em>table</em> includes markup not allowed for PRE content, construct the <em>table</em> using <a -href="#21">HTML Tabs</a>. An example <em>table</em> using <em>TAB</em> +href="#Tabs">HTML Tabs</a>. An example <em>table</em> using <em>TAB</em> elements is included in the test subdirectory of the Lynx distribution. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Tables">ToC</A>] -<h2><A NAME="21"><em>Lynx and HTML Tabs</em></a></h2> +<h2 ID="Tabs"><A NAME="Tabs"><em>Lynx and HTML Tabs</em></a></h2> Lynx implements the <a href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> @@ -1443,11 +1457,11 @@ distribution as a model for using this functionality. <p>Note that this <em>Users Guide</em> and the <a href="lynx_url_support.html">Supported URLs</a> page include TAB markup in a manner which <em>degrades gracefully</em> for WWW browsers which do not -support it. Toggle to display of <a href="#8">source</a> and <a -href="#11">search</a> for <em><tab</em> to examine the use of TAB markup -in these documents. [<A HREF="#TOC">ToC</A>] +support it. Toggle to display of <a href="#LocalSource">source</a> and <a +href="#Search">search</a> for <em><tab</em> to examine the use of TAB markup +in these documents. [<A HREF="#ToC-Tabs">ToC</A>] -<h2><A NAME="22"><em>Lynx and HTML Frames</em></a></h2> +<h2 ID="Frames"><A NAME="Frames"><em>Lynx and HTML Frames</em></a></h2> Some implementations of HTML include markup, primarily designed for graphic clients, that is intended to create an array of simultaneously displayed, @@ -1465,14 +1479,14 @@ section or a link in it to a document suitable for text clients, you can usually guess from the labeling of the <em>frame</em> links which one has the substantive material (if there is any), or you can try each of those links to see if anything worthwhile is returned. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Frames">ToC</A>] <p>Some sites -- in ignorance of Lynx capabilities -- may tell you (for example) "to view this page you need Netscape Navigator". You can simply ignore such warnings and access the frames via the Lynx-generated links as above. -<h2><A NAME="23"><em>Lynx and HTML Banners</em></a></h2> +<h2 ID="Banners"><A NAME="Banners"><em>Lynx and HTML Banners</em></a></h2> Some implementations of HTML markup include provisions for creating a non-scrolling window to be positioned at the top of each page, containing @@ -1537,9 +1551,9 @@ content with a '<em>#</em>' because the content need not be only a series of links with brief, descriptive links names, but does add a '<em>#</em>' at the top, left-hand corner of the screen when the content is not being displayed, to indicate it's accessibility via the TOOLBAR keystroke command. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Banners">ToC</A>] -<h2><A NAME="24"><em>Lynx and HTML Footnotes</em></a></h2> +<h2 ID="Footnotes"><A NAME="Footnotes"><em>Lynx and HTML Footnotes</em></a></h2> Lynx implements the <a href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> @@ -1561,9 +1575,9 @@ does not use popups for FN blocks.</a></p><em></FN></em> you can return to your previous position in the document by pressing the <em>left-arrow</em> key. The content of an FN element can be any HTML markup that is valid in the BODY of the document. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Footnotes">ToC</A>] -<h2><A NAME="25"><em>Lynx and HTML Notes</em></a></h2> +<h2 ID="Notes"><A NAME="Notes"><em>Lynx and HTML Notes</em></a></h2> Lynx implements the <a href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> @@ -1576,7 +1590,8 @@ default label <em>NOTE:</em> will be used. Lynx recognizes the values <em>caution</em> and <em>warning</em>, for which, respectively, the labels <em>CAUTION:</em> or <em>WARNING:</em> will be used. The NOTE element can have an ID attribute, which will be treated as a named <em>A</em>nchor, as -for <a href="#24">HTML Footnotes</a>, but the NOTE block need not be placed +for <a href="#Footnotes">HTML Footnotes</a>, +but the NOTE block need not be placed at the bottom of the document. The content of a NOTE block can be any HTML markup that is valid in the BODY of the document. This is an example:<BR> <tab indent="12"><em><NOTE CLASS="warning" ID="too-bad"><BR> @@ -1585,9 +1600,9 @@ NOTE in the HTML 3.2 draft.</p><BR> <tab indent="12"></NOTE></em><BR> It will <em>degrade gracefully</em> for WWW browsers which do not support NOTE, except for recognition of the ID attribute as a named <em>A</em>nchor. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Notes">ToC</A>] -<h2><A NAME="26"><em>Lynx and HTML Lists</em></a></h2> +<h2 ID="Lists"><A NAME="Lists"><em>Lynx and HTML Lists</em></a></h2> Lynx implements the <a href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> @@ -1645,9 +1660,9 @@ nesting levels. by default, i.e., single spaces between LH and LI elements within those blocks. For DL blocks, double spacing will be used to separate the DT and DD elements unless the COMPACT attribute has been specified. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Lists">ToC</A>] -<h2><A NAME="27"><em>Lynx and HTML Quotes</em></a></h2> +<h2 ID="Quotes"><A NAME="Quotes"><em>Lynx and HTML Quotes</em></a></h2> The <a href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> and @@ -1670,10 +1685,11 @@ its first line. (<em>"</em>) versus grave accent (<em>`</em>) and apostrophe (<em>'</em>), respectively, for even versus odd depths in the nest. -<p>Any ID attributes in BLOCKQUOTE, BQ or Q elements will be treated as -named <em>A</em>nchors. [<A HREF="#TOC">ToC</A>] +<p>Any ID attributes in BLOCKQUOTE, BQ or Q elements can be the target +of a hyperlink in the form URL#id. It is treated just +like the NAME in <em>A</em>nchors. [<A HREF="#ToC-Quotes">ToC</A>] -<h2><A NAME="28"><em>Lynx and Client-Side-Image-Maps</em></a></h2> +<h2 ID="USEMAP"><A NAME="USEMAP"><em>Lynx and Client-Side-Image-Maps</em></a></h2> HTML includes markup, designed primarily for graphic clients, that treats inlined images as maps, such that areas of the image within which a mouse @@ -1739,9 +1755,9 @@ the SHAPES attribute equivalently to its handling of FIG. Lynx also handles OBJECT elements with the USEMAP and/or ISMAP attributes equivalently to its handling of IMG elements with <em>client-side-image-maps</em> and/or <em>server-side-image-maps</em>. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-USEMAP">ToC</A>] -<h2><A NAME="29"><em>Lynx and Client-Side-Pull</em></a></h2> +<h2 ID="Refresh"><A NAME="Refresh"><em>Lynx and Client-Side-Pull</em></a></h2> HTML includes provision for passing instructions to clients via directives in META elements, and one such instruction, via the token <em>Refresh</em>, @@ -1768,16 +1784,16 @@ is not critical and you can activate the link whenever you like. If it is long (e.g., 60 seconds), a server process may be generating new documents or images at that interval, and you would be wasting bandwidth by activating the link at a shorter interval. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Refresh">ToC</A>] -<h2><A NAME="30"><em>Lynx State Management</em></A> +<h2 ID="Cookies"><A NAME="Cookies"><em>Lynx State Management</em></A> (Me want <em>cookie</em>!)</h2> HTTP provides a means to carry state information across successive connections between a browser and an http server. Normally, http servers respond to each browser request without relating that request to previous or subsequent requests. Though the inclusion of INPUT fields with -TYPE="hidden" can be used as a sort of state management by <a href="#19" +TYPE="hidden" can be used as a sort of state management by <a href="#Forms" >HTML Forms</a>, a more general approach involves exchanges of MIME headers between the server and browser. When replying to a request, the server can send a <em>Set-Cookie</em> MIME header which contains @@ -1832,9 +1848,9 @@ about how they will be used in subsequent requests to that site, nor can infer how they will be used, you can <em>Gobble</em> (delete) the cookies and/or change the 'allow' setting for its <em>domain</em> via the <a href="keystrokes/cookie_help.html">Cookie Jar Page</a>. -[<A HREF="#TOC">ToC</A>] +[<A HREF="#ToC-Cookies">ToC</A>] -<h2><A NAME="31"><em>The Lynx command line</em></A></h2> +<h2 ID="Invoking"><A NAME="Invoking"><em>The Lynx command line</em></A></h2> A summary of the Lynx command line options (switches) is returned to stdout if Lynx is invoked with the <em>-help</em> switch. A description @@ -2033,7 +2049,7 @@ where <dt><code>-nolog</code> <dd>disable mailing of error messages to document owners. <dt><code>-nopause</code> - <dd>disable forced pauses for status line messages. + <dd>disable forced pauses for statusline messages. <dt><code>-noprint</code> <dd>disable print functions. <dt><code>-noredir</code> @@ -2248,9 +2264,9 @@ where <p>No options are required, nor is a startfile argument required. White space may be substituted for any equal sign ('<em>=</em>') -appearing in the option list above. [<A HREF="#TOC">ToC</A>] +appearing in the option list above. [<A HREF="#ToC-Invoking">ToC</A>] -<h2><A NAME="32"><em>Lynx development history</em></A></h2> +<h2 ID="Hist"><A NAME="Hist"><em>Lynx development history</em></A></h2> Lynx grew out of efforts to build a campus-wide information system at The University of Kansas. The earliest versions of Lynx provided a diff --git a/lynx_help/keystrokes/option_help.html b/lynx_help/keystrokes/option_help.html index 26783901..64a3d682 100644 --- a/lynx_help/keystrokes/option_help.html +++ b/lynx_help/keystrokes/option_help.html @@ -92,7 +92,11 @@ so that characters other than 7-bit ASCII can be displayed correctly, using approximations if necessary. You must have the selected character set - installed on your terminal. + installed on your terminal. (Since Lynx now supports + a wide range of platforms it may be useful to note + that cpXXX codepages are used within IBM PC + computers, and windows-xxxx within native MS-Windows + applications). Raw 8-bit or CJK - Toggles whether 8-bit characters are assumed to mode correspond with the display character set and diff --git a/makefile.in b/makefile.in index 28e2ec13..6a217647 100644 --- a/makefile.in +++ b/makefile.in @@ -24,10 +24,14 @@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ +## This is the version which we are developing (or, upon release, make this +## the same). Use no dots in the name, since it must work on VMS and MS-DOS. +VERSION = 2-8-1 + ##this is the name of the directory the lynx source code is in. ##(e.g. lynx2-8, not the full path) -lynxdir= lynx2-8 -lynxname= lynx2-8 +lynxdir= lynx$(VERSION) +lynxname= lynx$(VERSION) ## Where you want lynx installed bindir= @bindir@ @@ -129,7 +133,6 @@ SITE_DEFS = # Your defines here # -DLINKEDSTYLES # -DLONG_LIST # -DLY_FIND_LEAKS -# -DNCURSES # -DNO_CHANGE_EXECUTE_PERMS # -DNO_PARENT_DIR_REFERENCE # -DNSL_FORK diff --git a/src/GridText.c b/src/GridText.c index 49f65f08..5d7d2e0f 100644 --- a/src/GridText.c +++ b/src/GridText.c @@ -41,6 +41,8 @@ #include <LYexit.h> #include <LYLeaks.h> +#undef DEBUG_APPCH + #ifdef USE_COLOR_STYLE #include <AttrList.h> #include <LYHash.h> @@ -1606,14 +1608,18 @@ PRIVATE void split_line ARGS2( HTLine * previous = text->last_line; int ctrl_chars_on_previous_line = 0; char * cp; - HTLine * line = (HTLine *)LY_CALLOC(1, LINE_SIZE(MAX_LINE)); + /* can't wrap in middle of multibyte sequences, so allocate 2 extra */ + HTLine * line = (HTLine *)LY_CALLOC(1, LINE_SIZE(MAX_LINE)+2); if (line == NULL) outofmem(__FILE__, "split_line_1"); ctrl_chars_on_this_line = 0; /*reset since we are going to a new line*/ text->LastChar = ' '; - CTRACE(tfp,"GridText: split_line called\n"); +#ifdef DEBUG_APPCH + CTRACE(tfp,"GridText: split_line(%p,%d) called\n", text, split); + CTRACE(tfp," bold_on=%d, underline_on=%d\n", bold_on, underline_on); +#endif text->Lines++; @@ -1716,7 +1722,7 @@ PRIVATE void split_line ARGS2( line->styles[0].horizpos = 0xffffffff; if (previous->numstyles == 0) previous->styles[0].horizpos = 0xffffffff; -#endif +#endif /*USE_COLOR_STYLE*/ previous->next = line; text->last_line = line; line->size = 0; @@ -1839,7 +1845,8 @@ PRIVATE void split_line ARGS2( linedata[line->size] = '\0'; ctrl_chars_on_this_line++; SpecialAttrChars++;; - } + } else + bold_on = OFF; if (plen) { for (i = (plen - 1); i != 0; i--) { if (p[i] == LY_BOLD_START_CHAR) { @@ -2036,8 +2043,49 @@ PUBLIC void HText_appendCharacter ARGS2( HTStyle * style; int indent; - CTRACE(tfp, "add(%c) %d/%d\n", ch, - HTisDocumentSource(), HTOutputFormat != WWW_SOURCE); +#ifdef DEBUG_APPCH + if (TRACE) { + char * special = NULL; /* make trace a little more readable */ + switch(ch) { + case HT_NON_BREAK_SPACE: + special = "HT_NON_BREAK_SPACE"; + break; + case HT_EM_SPACE: + special = "HT_EM_SPACE"; + break; + case LY_UNDERLINE_START_CHAR: + special = "LY_UNDERLINE_START_CHAR"; + break; + case LY_UNDERLINE_END_CHAR: + special = "LY_UNDERLINE_END_CHAR"; + break; + case LY_BOLD_START_CHAR: + special = "LY_BOLD_START_CHAR"; + break; + case LY_BOLD_END_CHAR: + special = "LY_BOLD_END_CHAR"; + break; + case LY_SOFT_HYPHEN: + special = "LY_SOFT_HYPHEN"; + break; + case LY_SOFT_NEWLINE: + special = "LY_SOFT_NEWLINE"; + break; + default: + special = NULL; + break; + } + + if (special != NULL) { + CTRACE(tfp, "add(%s %d special char) %d/%d\n", special, ch, + HTisDocumentSource(), HTOutputFormat != WWW_SOURCE); + } else { + CTRACE(tfp, "add(%c) %d/%d\n", ch, + HTisDocumentSource(), HTOutputFormat != WWW_SOURCE); + } + } /* trace only */ +#endif /* DEBUG_APPCH */ + /* * Make sure we don't crash on NULLs. */ @@ -2081,19 +2129,11 @@ PUBLIC void HText_appendCharacter ARGS2( !text->T.transp && !text->T.output_utf8 && (unsigned char)ch < LYlowest_eightbit[current_char_set]) return; -#endif /* USE_SLANG */ +#endif /* !USE_SLANG */ if ((unsigned char)ch == 155 && HTCJK == NOCJK) { /* octal 233 */ if (!HTPassHighCtrlRaw && !text->T.transp && !text->T.output_utf8 && - (155 < LYlowest_eightbit[current_char_set]) && - strncmp(LYchar_set_names[current_char_set], - "DosLatin1 (cp850)", 17) && - strncmp(LYchar_set_names[current_char_set], - "DosLatinUS (cp437)", 18) && - strncmp(LYchar_set_names[current_char_set], - "Macintosh (8 bit)", 17) && - strncmp(LYchar_set_names[current_char_set], - "NeXT character set", 18)) { + (155 < LYlowest_eightbit[current_char_set])) { return; } } @@ -2242,6 +2282,7 @@ PUBLIC void HText_appendCharacter ARGS2( if (IsSpecialAttrChar(ch)) { #ifndef USE_COLOR_STYLE + if (line->size >= (MAX_LINE-1)) return; if (ch == LY_UNDERLINE_START_CHAR) { line->data[line->size++] = LY_UNDERLINE_START_CHAR; line->data[line->size] = '\0'; @@ -3160,9 +3201,7 @@ PUBLIC void HText_endAppend ARGS1( HText *, text) { int cur_line, cur_char, cur_shift; - TextAnchor *anchor_ptr; HTLine *line_ptr; - unsigned char ch; if (!text) return; @@ -3217,6 +3256,46 @@ PUBLIC void HText_endAppend ARGS1( * Fix up the anchor structure values and * create the hightext strings. - FM */ + HText_trimHightext(HTMainText, FALSE); +} + +/* +** This function gets the hightext from the text by finding the char +** position, and brings the anchors in line with the text by adding the text +** offset to each of the anchors. +** +** `Forms input' fields cannot be displayed properly without this function +** to be invoked (detected in display_partial mode). +** +** (BOOLEAN value allow us to disable annoying repeated trace messages +** for display_partial mode). +*/ +PUBLIC void HText_trimHightext ARGS2( + HText *, text, + BOOLEAN, disable_trace) +{ + int cur_line, cur_char, cur_shift; + TextAnchor *anchor_ptr; + HTLine *line_ptr; + unsigned char ch; + + if (!text) + return; + + CTRACE(tfp,"Gridtext: Entering HText_trimHightext\n"); + + /* + * Get the first line. + */ + line_ptr = text->last_line->next; + cur_char = line_ptr->size; + cur_line = 0; + cur_shift = 0; + + /* + * Fix up the anchor structure values and + * create the hightext strings. - FM + */ for (anchor_ptr = text->first_anchor; anchor_ptr; anchor_ptr=anchor_ptr->next) { re_parse: @@ -3238,6 +3317,7 @@ re_parse: if (anchor_ptr->line_pos < 0) anchor_ptr->line_pos = 0; + if (!disable_trace) CTRACE(tfp, "Gridtext: Anchor found on line:%d col:%d\n", cur_line, anchor_ptr->line_pos); @@ -3258,6 +3338,8 @@ re_parse: if (anchor_ptr->extent < 0) { anchor_ptr->extent = 0; } + + if (!disable_trace) CTRACE(tfp, "anchor text: '%s' col: %d\n", line_ptr->data, anchor_ptr->line_pos); /* @@ -3335,7 +3417,8 @@ re_parse: anchor_ptr->line_pos += line_ptr->offset; anchor_ptr->line_num = cur_line; - CTRACE(tfp, "GridText: add link on line %d in HText_endAppend\n", + if (!disable_trace) + CTRACE(tfp, "GridText: add link on line %d in HText_trimHightext\n", cur_line); /* @@ -3978,8 +4061,8 @@ PUBLIC CONST char * HText_getServer NOARGS /* * HText_pageDisplay displays a screen of text - * starting from the line 'line_num'-1 - * this is the primary call for lynx + * starting from the line 'line_num'-1. + * This is the primary call for lynx. */ PUBLIC void HText_pageDisplay ARGS2( int, line_num, @@ -3987,16 +4070,28 @@ PUBLIC void HText_pageDisplay ARGS2( { CTRACE(tfp, "GridText: HText_pageDisplay at line %d started\n", line_num); - display_page(HTMainText, line_num-1, target); +#ifdef DISP_PARTIAL + if (display_partial && !debug_display_partial) + /* + ** Garbage is reported from forms input fields in incremental mode. + ** So we start HText_trimHightext() to forget this side effect. + ** This function was split-out from HText_endAppend(). + ** It may not be the best solution but it works. - LP + ** (TRUE = to disable annoying repeated trace messages) + */ + HText_trimHightext(HTMainText, TRUE); +#endif - CTRACE(tfp, "GridText: HText_pageDisplay finished\n"); + display_page(HTMainText, line_num-1, target); #ifdef DISP_PARTIAL - if (display_partial && debug_display_partial) + if (display_partial && debug_display_partial) sleep(MessageSecs); #endif is_www_index = HTAnchor_isIndex(HTMainAnchor); + + CTRACE(tfp, "GridText: HText_pageDisplay finished\n"); } /* diff --git a/src/GridText.h b/src/GridText.h index 8465b99a..a17ceb23 100644 --- a/src/GridText.h +++ b/src/GridText.h @@ -10,6 +10,12 @@ #include <HTForms.h> #endif /* HTFORMS_H */ +#ifndef HT_NON_BREAK_SPACE +#define HT_NON_BREAK_SPACE ((char)1) /* remember it */ +#endif /* !HT_NON_BREAK_SPACE */ +#ifndef HT_EM_SPACE +#define HT_EM_SPACE ((char)2) /* remember it */ +#endif /* !HT_EM_SPACE */ #define LY_UNDERLINE_START_CHAR '\003' #define LY_UNDERLINE_END_CHAR '\004' #define LY_BOLD_START_CHAR '\005' @@ -18,8 +24,46 @@ #define LY_SOFT_HYPHEN ((char)7) #endif /* !LY_SOFT_HYPHEN */ #define LY_SOFT_NEWLINE ((char)8) + #define IsSpecialAttrChar(a) ((a > '\002') && (a <= '\010')) +/* just for information: +US-ASCII control characters <32 which are not defined in Unicode standard +=00 U+0000 NULL +=01 U+0001 START OF HEADING +=02 U+0002 START OF TEXT +=03 U+0003 END OF TEXT +=04 U+0004 END OF TRANSMISSION +=05 U+0005 ENQUIRY +=06 U+0006 ACKNOWLEDGE +=07 U+0007 BELL +=08 U+0008 BACKSPACE +=09 U+0009 HORIZONTAL TABULATION +=0A U+000A LINE FEED +=0B U+000B VERTICAL TABULATION +=0C U+000C FORM FEED +=0D U+000D CARRIAGE RETURN +=0E U+000E SHIFT OUT +=0F U+000F SHIFT IN +=10 U+0010 DATA LINK ESCAPE +=11 U+0011 DEVICE CONTROL ONE +=12 U+0012 DEVICE CONTROL TWO +=13 U+0013 DEVICE CONTROL THREE +=14 U+0014 DEVICE CONTROL FOUR +=15 U+0015 NEGATIVE ACKNOWLEDGE +=16 U+0016 SYNCHRONOUS IDLE +=17 U+0017 END OF TRANSMISSION BLOCK +=18 U+0018 CANCEL +=19 U+0019 END OF MEDIUM +=1A U+001A SUBSTITUTE +=1B U+001B ESCAPE +=1C U+001C FILE SEPARATOR +=1D U+001D GROUP SEPARATOR +=1E U+001E RECORD SEPARATOR +=1F U+001F UNIT SEPARATOR +=7F U+007F DELETE +*/ + extern int HTCurSelectGroupType; extern char * HTCurSelectGroupSize; extern HText * HTMainText; /* Equivalent of main window */ @@ -159,6 +203,9 @@ extern int HText_beginInput PARAMS(( HText * text, BOOL underline, InputFieldData *I)); +extern void HText_trimHightext PARAMS(( + HText * text, + BOOLEAN disable_trace)); extern void HText_SubmitForm PARAMS(( FormInfo * submit_item, document * doc, diff --git a/src/HTFWriter.c b/src/HTFWriter.c index 3d9ae874..f171905a 100644 --- a/src/HTFWriter.c +++ b/src/HTFWriter.c @@ -30,7 +30,6 @@ #include <LYUtils.h> #include <LYGlobalDefs.h> #include <LYSignal.h> -#include <LYSystem.h> #include <GridText.h> #include <LYexit.h> #include <LYLeaks.h> @@ -139,7 +138,7 @@ PRIVATE void HTFWriter_free ARGS1(HTStream *, me) * we want to convert to fixed records format. - FM */ #ifdef USE_COMMAND_FILE - system(FIXED_RECORD_COMMAND); + LYSystem(FIXED_RECORD_COMMAND); #else LYVMS_FixedLengthRecords(FIXED_RECORD_COMMAND); #endif /* USE_COMMAND_FILE */ @@ -147,7 +146,6 @@ PRIVATE void HTFWriter_free ARGS1(HTStream *, me) if (me->remove_command) { /* NEVER REMOVE THE FILE unless during an abort!*/ - /* system(me->remove_command); */ FREE(me->remove_command); } } else @@ -191,7 +189,7 @@ PRIVATE void HTFWriter_free ARGS1(HTStream *, me) * Uncompress it. - FM */ if (me->end_command && me->end_command[0]) - system(me->end_command); + LYSystem(me->end_command); fp = fopen(me->anchor->FileCache, "r"); } if (fp != NULL) { @@ -318,11 +316,10 @@ PRIVATE void HTFWriter_free ARGS1(HTStream *, me) HTProgress(me->end_command); stop_curses(); } - system(me->end_command); + LYSystem(me->end_command); if (me->remove_command) { /* NEVER REMOVE THE FILE unless during an abort!!!*/ - /* system(me->remove_command); */ FREE(me->remove_command); } if (!dump_output_immediately) @@ -348,7 +345,6 @@ PRIVATE void HTFWriter_free ARGS1(HTStream *, me) } if (me->remove_command) { /* NEVER REMOVE THE FILE unless during an abort!!!*/ - /* system(me->remove_command); */ FREE(me->remove_command); } } else if (strcmp(me->end_command, "SaveToFile")) { @@ -363,11 +359,10 @@ PRIVATE void HTFWriter_free ARGS1(HTStream *, me) _HTProgress(me->end_command); stop_curses(); } - system(me->end_command); + LYSystem(me->end_command); if (me->remove_command) { /* NEVER REMOVE THE FILE unless during an abort!!!*/ - /* system(me->remove_command); */ FREE(me->remove_command); } if (!dump_output_immediately) @@ -379,7 +374,6 @@ PRIVATE void HTFWriter_free ARGS1(HTStream *, me) */ if (me->remove_command) { /* NEVER REMOVE THE FILE unless during an abort!!!*/ - /* system(me->remove_command); */ FREE(me->remove_command); } } @@ -423,7 +417,7 @@ PRIVATE void HTFWriter_abort ARGS2( CTRACE(tfp, "HTFWriter: Aborting: file not executed.\n"); FREE(me->end_command); if (me->remove_command) { - system(me->remove_command); + LYSystem(me->remove_command); FREE(me->remove_command); } } diff --git a/src/HTInit.c b/src/HTInit.c index 69efa8e7..aac98355 100644 --- a/src/HTInit.c +++ b/src/HTInit.c @@ -26,24 +26,16 @@ #include <LYUtils.h> #include <LYGlobalDefs.h> #include <LYSignal.h> -#include <LYSystem.h> #include <LYexit.h> #include <LYLeaks.h> -#ifdef VMS -#define DISPLAY "DECW$DISPLAY" -#else -#define DISPLAY "DISPLAY" -#endif /* VMS */ - PRIVATE int HTLoadTypesConfigFile PARAMS((char *fn)); PRIVATE int HTLoadExtensionsConfigFile PARAMS((char *fn)); PUBLIC void HTFormatInit NOARGS { FILE *fp = NULL; - char *cp = NULL; #ifdef NeXT HTSetPresentation("application/postscript", "open %s", 1.0, 2.0, 0.0, 0); @@ -52,7 +44,7 @@ PUBLIC void HTFormatInit NOARGS HTSetPresentation("audio/basic", "open %s", 1.0, 2.0, 0.0, 0); HTSetPresentation("*", "open %s", 1.0, 0.0, 0.0, 0); #else - if ((cp = getenv(DISPLAY)) != NULL && *cp != '\0') { /* Must have X11 */ + if (LYgetXDisplay() != 0) { /* Must have X11 */ HTSetPresentation("application/postscript", "ghostview %s&", 1.0, 3.0, 0.0, 0); HTSetPresentation("image/gif", XLoadImageCommand, 1.0, 3.0, 0.0, 0); @@ -491,7 +483,6 @@ PRIVATE int PassesTest ARGS1( { int result; char *cmd, TmpFileName[TMPFILE_NAME_SIZE]; - char *cp = NULL; /* * Make sure we have a command @@ -505,7 +496,7 @@ PRIVATE int PassesTest ARGS1( if (0 == strcasecomp(mc->testcommand, "test -n \"$DISPLAY\"")) { FREE(mc->testcommand); CTRACE(tfp, "PassesTest: Testing for XWINDOWS environment.\n"); - if ((cp = getenv(DISPLAY)) != NULL && *cp != '\0') { + if (LYgetXDisplay() != NULL) { CTRACE(tfp, "PassesTest: Test passed!\n"); return(0 == 0); } else { @@ -516,7 +507,7 @@ PRIVATE int PassesTest ARGS1( if (0 == strcasecomp(mc->testcommand, "test -z \"$DISPLAY\"")) { FREE(mc->testcommand); CTRACE(tfp, "PassesTest: Testing for NON_XWINDOWS environment.\n"); - if (!((cp = getenv(DISPLAY)) != NULL && *cp != '\0')) { + if (LYgetXDisplay() == NULL) { CTRACE(tfp,"PassesTest: Test passed!\n"); return(0 == 0); } else { @@ -558,7 +549,7 @@ PRIVATE int PassesTest ARGS1( TmpFileName, strlen(TmpFileName)); CTRACE(tfp, "PassesTest: Executing test command: %s\n", cmd); - result = system(cmd); + result = LYSystem(cmd); FREE(cmd); LYRemoveTemp(TmpFileName); diff --git a/src/HTML.c b/src/HTML.c index f49116fd..ac10f00e 100644 --- a/src/HTML.c +++ b/src/HTML.c @@ -737,8 +737,7 @@ PRIVATE void HTML_start_element ARGS6( char *related = NULL; StrAllocCopy(base, value[HTML_BASE_HREF]); - if (!(url_type = LYLegitimizeHREF(me, (char**)&base, - TRUE, TRUE))) { + if (!(url_type = LYLegitimizeHREF(me, &base, TRUE, TRUE))) { CTRACE(tfp, "HTML: BASE '%s' is not an absolute URL.\n", (base ? base : "")); if (me->inBadBASE == FALSE) @@ -832,7 +831,7 @@ PRIVATE void HTML_start_element ARGS6( case HTML_META: if (present) - LYHandleMETA(me, present, value, (char **)&include); + LYHandleMETA(me, present, value, include); break; case HTML_TITLE: @@ -856,7 +855,7 @@ PRIVATE void HTML_start_element ARGS6( } } else { StrAllocCopy(href, value[HTML_LINK_HREF]); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); } /* @@ -874,7 +873,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '\0' && *href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); @@ -899,7 +898,7 @@ PRIVATE void HTML_start_element ARGS6( PARSE_ALL); StrAllocCopy(href, temp); FREE(temp); - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, (me->inBASE ? me->base_href : me->node_anchor->address)); @@ -1074,7 +1073,7 @@ PRIVATE void HTML_start_element ARGS6( * fingers. - FM */ SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } /* @@ -1163,8 +1162,7 @@ PRIVATE void HTML_start_element ARGS6( StrAllocCopy(isindex_href, value[HTML_ISINDEX_HREF]); else StrAllocCopy(isindex_href, value[HTML_ISINDEX_ACTION]); - url_type = LYLegitimizeHREF(me, (char**)&isindex_href, - TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &isindex_href, TRUE, TRUE); /* * Check whether a base tag is in effect. @@ -1260,7 +1258,7 @@ PRIVATE void HTML_start_element ARGS6( value[HTML_FRAME_SRC] && *value[HTML_FRAME_SRC] != '\0') { StrAllocCopy(href, value[HTML_FRAME_SRC]); CHECK_FOR_INTERN(href); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); /* * Check whether a base tag is in effect. - FM @@ -1277,14 +1275,14 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '\0' && *href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } me->CurrentA = HTAnchor_findChildAndLink( me->node_anchor, /* Parent */ @@ -1332,7 +1330,7 @@ PRIVATE void HTML_start_element ARGS6( value[HTML_IFRAME_SRC] && *value[HTML_IFRAME_SRC] != '\0') { StrAllocCopy(href, value[HTML_IFRAME_SRC]); CHECK_FOR_INTERN(href); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); /* * Check whether a base tag is in effect. - FM @@ -1349,13 +1347,13 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '\0' && *href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); if (me->inA) - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); me->CurrentA = HTAnchor_findChildAndLink( me->node_anchor, /* Parent */ NULL, /* Tag */ @@ -1544,7 +1542,7 @@ PRIVATE void HTML_start_element ARGS6( break; case HTML_P: - LYHandleP(me, present, value, (char **)&include, TRUE); + LYHandleP(me, present, value, include, TRUE); break; case HTML_BR: @@ -1791,7 +1789,7 @@ PRIVATE void HTML_start_element ARGS6( */ #ifdef NOTUSED_FOTEMODS if (me->inFONT == TRUE) - HTML_end_element(me, HTML_FONT, (char **)&include); + HTML_end_element(me, HTML_FONT, &include); #endif /* NOTUSED_FOTEMODS */ /* @@ -2394,7 +2392,7 @@ PRIVATE void HTML_start_element ARGS6( */ if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } /* * Set to know we are in an anchor. @@ -2441,7 +2439,7 @@ PRIVATE void HTML_start_element ARGS6( } else { StrAllocCopy(href, value[HTML_A_HREF]); } - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); /* * Deal with our ftp gateway kludge. - FM @@ -2473,7 +2471,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '\0' && *href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); @@ -2577,7 +2575,7 @@ PRIVATE void HTML_start_element ARGS6( */ if (href == NULL && me->inBoldA == FALSE) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, &include); } #endif /* NOTUSED_FOTEMODS */ FREE(href); @@ -2617,7 +2615,7 @@ PRIVATE void HTML_start_element ARGS6( value[HTML_IMG_USEMAP] && *value[HTML_IMG_USEMAP]) { StrAllocCopy(map_href, value[HTML_IMG_USEMAP]); CHECK_FOR_INTERN(map_href); - url_type = LYLegitimizeHREF(me, (char**)&map_href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &map_href, TRUE, TRUE); /* * If map_href ended up zero-length or otherwise doesn't * have a hash, it can't be valid, so ignore it. - FM @@ -2665,7 +2663,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&map_href, + LYFillLocalFileURL(&map_href, ((UseBASE && me->inBASE) ? me->base_href : me->node_anchor->address)); UseBASE = TRUE; @@ -2809,7 +2807,7 @@ PRIVATE void HTML_start_element ARGS6( present && present[HTML_IMG_SRC] && value[HTML_IMG_SRC] && *value[HTML_IMG_SRC] != '\0') { StrAllocCopy(href, value[HTML_IMG_SRC]); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); /* * Check whether a base tag is in effect. - FM @@ -2826,7 +2824,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '\0' && *href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); @@ -3151,7 +3149,7 @@ PRIVATE void HTML_start_element ARGS6( */ StrAllocCopy(href, value[HTML_AREA_HREF]); CHECK_FOR_INTERN(href); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); /* * Check whether a BASE tag is in effect, and use it @@ -3173,7 +3171,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((((me->inBASE && *href != '\0') && !(*href == '#' && LYSeekFragAREAinCur == TRUE))) @@ -3256,7 +3254,7 @@ PRIVATE void HTML_start_element ARGS6( me->inFIG = TRUE; if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } if (!present || (present && !present[HTML_FIG_ISOBJECT])) { @@ -3275,7 +3273,7 @@ PRIVATE void HTML_start_element ARGS6( value[HTML_FIG_SRC] && *value[HTML_FIG_SRC] != '\0') { StrAllocCopy(href, value[HTML_FIG_SRC]); CHECK_FOR_INTERN(href); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); if (*href) { /* * Check whether a base tag is in effect. - FM @@ -3292,7 +3290,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); @@ -3435,7 +3433,7 @@ PRIVATE void HTML_start_element ARGS6( value[HTML_OVERLAY_SRC] && *value[HTML_OVERLAY_SRC] != '\0') { StrAllocCopy(href, value[HTML_OVERLAY_SRC]); CHECK_FOR_INTERN(href); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); if (*href) { /* * Check whether a base tag is in effect. - FM @@ -3452,14 +3450,14 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } me->CurrentA = HTAnchor_findChildAndLink( me->node_anchor, /* Parent */ @@ -3555,14 +3553,13 @@ PRIVATE void HTML_start_element ARGS6( */ if (*base == '\0') StrAllocCopy(base, "/"); - if (base[strlen(base)-1] != '/') - StrAllocCat(base, "/"); - url_type = LYLegitimizeHREF(me, (char**)&base, TRUE, FALSE); + LYAddHtmlSep(&base); + url_type = LYLegitimizeHREF(me, &base, TRUE, FALSE); /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&base, + LYFillLocalFileURL(&base, (me->inBASE ? me->base_href : me->node_anchor->address)); @@ -3588,7 +3585,7 @@ PRIVATE void HTML_start_element ARGS6( } StrAllocCopy(code, value[HTML_APPLET_CODE]); - url_type = LYLegitimizeHREF(me, (char**)&code, TRUE, FALSE); + url_type = LYLegitimizeHREF(me, &code, TRUE, FALSE); href = HTParse(code, base, PARSE_ALL); FREE(base); FREE(code); @@ -3641,7 +3638,7 @@ PRIVATE void HTML_start_element ARGS6( value[HTML_BGSOUND_SRC] && *value[HTML_BGSOUND_SRC] != '\0') { StrAllocCopy(href, value[HTML_BGSOUND_SRC]); CHECK_FOR_INTERN(href); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); if (*href == '\0') { FREE(href); break; @@ -3662,7 +3659,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); @@ -3755,7 +3752,7 @@ PRIVATE void HTML_start_element ARGS6( value[HTML_EMBED_SRC] && *value[HTML_EMBED_SRC] != '\0') { StrAllocCopy(href, value[HTML_EMBED_SRC]); CHECK_FOR_INTERN(href); - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); if (*href != '\0') { /* * Check whether a base tag is in effect. - FM @@ -3772,7 +3769,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '#' && me->inBASE) ? me->base_href : me->node_anchor->address)); @@ -3901,7 +3898,7 @@ PRIVATE void HTML_start_element ARGS6( if (me->inFORM) { CTRACE(tfp, "HTML: Missing FORM end tag. Faking it!\n"); SET_SKIP_STACK(HTML_FORM); - HTML_end_element(me, HTML_FORM, (char **)&include); + HTML_end_element(me, HTML_FORM, include); } /* @@ -3919,7 +3916,7 @@ PRIVATE void HTML_start_element ARGS6( * Prepare to do housekeeping on the reference. - FM */ StrAllocCopy(action, value[HTML_FORM_ACTION]); - url_type = LYLegitimizeHREF(me, (char**)&action, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &action, TRUE, TRUE); /* * Check whether a base tag is in effect. Note that @@ -4355,7 +4352,7 @@ PRIVATE void HTML_start_element ARGS6( if (me->sp->tag_number != HTML_SELECT) { SET_SKIP_STACK(HTML_SELECT); } - HTML_end_element(me, HTML_SELECT, (char **)&include); + HTML_end_element(me, HTML_SELECT, include); } /* @@ -4401,7 +4398,7 @@ PRIVATE void HTML_start_element ARGS6( * SRC's value a link if it's still not zero-length * legitiimizing it. - FM */ - url_type = LYLegitimizeHREF(me, (char**)&href, TRUE, TRUE); + url_type = LYLegitimizeHREF(me, &href, TRUE, TRUE); if (*href) { /* * Check whether a base tag is in effect. - FM @@ -4418,7 +4415,7 @@ PRIVATE void HTML_start_element ARGS6( /* * Check whether to fill in localhost. - FM */ - LYFillLocalFileURL((char **)&href, + LYFillLocalFileURL(&href, ((*href != '#' && me->inBASE) ? me->base_href : @@ -4426,7 +4423,7 @@ PRIVATE void HTML_start_element ARGS6( if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } me->CurrentA = HTAnchor_findChildAndLink( me->node_anchor, /* Parent */ @@ -4798,7 +4795,7 @@ PRIVATE void HTML_start_element ARGS6( if (me->sp->tag_number != HTML_SELECT) { SET_SKIP_STACK(HTML_SELECT); } - HTML_end_element(me, HTML_SELECT, (char **)&include); + HTML_end_element(me, HTML_SELECT, include); } /* @@ -4806,7 +4803,7 @@ PRIVATE void HTML_start_element ARGS6( */ LYHandleSELECT(me, present, (CONST char **)value, - (char **)&include, + include, TRUE); break; @@ -5022,11 +5019,11 @@ PRIVATE void HTML_start_element ARGS6( */ if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } if (me->Underline_Level > 0) { SET_SKIP_STACK(HTML_U); - HTML_end_element(me, HTML_U, (char **)&include); + HTML_end_element(me, HTML_U, include); } me->inTABLE = TRUE; if (!strcmp(me->sp->style->name, "Preformatted")) { @@ -5076,11 +5073,11 @@ PRIVATE void HTML_start_element ARGS6( */ if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } if (me->Underline_Level > 0) { SET_SKIP_STACK(HTML_U); - HTML_end_element(me, HTML_U, (char **)&include); + HTML_end_element(me, HTML_U, include); } UPDATE_STYLE; if (HText_LastLineSize(me->text, FALSE)) { @@ -5128,11 +5125,11 @@ PRIVATE void HTML_start_element ARGS6( */ if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } if (me->Underline_Level > 0) { SET_SKIP_STACK(HTML_U); - HTML_end_element(me, HTML_U, (char **)&include); + HTML_end_element(me, HTML_U, include); } UPDATE_STYLE; CHECK_ID(HTML_TR_ID); @@ -5145,11 +5142,11 @@ PRIVATE void HTML_start_element ARGS6( */ if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } if (me->Underline_Level > 0) { SET_SKIP_STACK(HTML_U); - HTML_end_element(me, HTML_U, (char **)&include); + HTML_end_element(me, HTML_U, include); } UPDATE_STYLE; CHECK_ID(HTML_COL_ID); @@ -5158,11 +5155,11 @@ PRIVATE void HTML_start_element ARGS6( case HTML_TH: if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } if (me->Underline_Level > 0) { SET_SKIP_STACK(HTML_U); - HTML_end_element(me, HTML_U, (char **)&include); + HTML_end_element(me, HTML_U, include); } UPDATE_STYLE; CHECK_ID(HTML_TD_ID); @@ -5176,11 +5173,11 @@ PRIVATE void HTML_start_element ARGS6( case HTML_TD: if (me->inA) { SET_SKIP_STACK(HTML_A); - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, include); } if (me->Underline_Level > 0) { SET_SKIP_STACK(HTML_U); - HTML_end_element(me, HTML_U, (char **)&include); + HTML_end_element(me, HTML_U, include); } UPDATE_STYLE; CHECK_ID(HTML_TD_ID); @@ -5269,7 +5266,7 @@ PRIVATE void HTML_start_element ARGS6( #if defined(PREVAIL) start=strrchr(Style_className, '.'); if (start) - strcpy(prevailing_class, (char*)(start+1)); + strcpy(prevailing_class, (start+1)); else strcpy(prevailing_class, ""); #endif @@ -5489,7 +5486,7 @@ PRIVATE void HTML_end_element ARGS3( ((MBM_A_subdescript[i] && *MBM_A_subdescript[i]) ? MBM_A_subdescript[i] : "(none)")); - LYEntify((char **)&temp, TRUE); + LYEntify(&temp, TRUE); StrAllocCat(*include, temp); StrAllocCat(*include, "<BR><EM> Filepath:</EM> "); @@ -5497,7 +5494,7 @@ PRIVATE void HTML_end_element ARGS3( ((MBM_A_subbookmark[i] && *MBM_A_subbookmark[i]) ? MBM_A_subbookmark[i] : "(unknown)")); - LYEntify((char **)&temp, TRUE); + LYEntify(&temp, TRUE); StrAllocCat(*include, temp); FREE(temp); StrAllocCat(*include, "</H2>"); @@ -5626,7 +5623,7 @@ PRIVATE void HTML_end_element ARGS3( case HTML_P: LYHandleP(me, (CONST BOOL*)0, (CONST char **)0, - (char **)&include, + include, FALSE); break; @@ -6200,7 +6197,7 @@ End_Object: if (me->sp->tag_number != HTML_SELECT) { SET_SKIP_STACK(HTML_SELECT); } - HTML_end_element(me, HTML_SELECT, (char **)&include); + HTML_end_element(me, HTML_SELECT, include); } /* @@ -6651,7 +6648,7 @@ End_Object: { char *dot=strrchr(Style_className,'.'); LYstrncpy(prevailing_class, - dot ? (char*)(dot+1) : "", + dot ? (dot+1) : "", (TEMPSTRINGSIZE - 1)); } #endif @@ -6730,15 +6727,15 @@ PRIVATE void HTML_free ARGS1(HTStructured *, me) CTRACE(tfp,"HTML_free: Ending underline\n"); } if (me->inA) { - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, &include); me->inA = FALSE; } if (me->inFONT) { - HTML_end_element(me, HTML_FONT, (char **)&include); + HTML_end_element(me, HTML_FONT, &include); me->inFONT = FALSE; } if (me->inFORM) { - HTML_end_element(me, HTML_FORM, (char **)&include); + HTML_end_element(me, HTML_FORM, &include); me->inFORM = FALSE; } if (me->option.size > 0) { @@ -6795,14 +6792,14 @@ PRIVATE void HTML_free ARGS1(HTStructured *, me) if (!dump_output_immediately && HText_sourceAnchors(me->text) < 1 && HText_HiddenLinkCount(me->text) > 0) { - HTML_start_element(me, HTML_P, 0, 0, -1, (char **)&include); + HTML_start_element(me, HTML_P, 0, 0, -1, &include); HTML_put_character(me, '['); - HTML_start_element(me, HTML_EM, 0, 0, -1, (char **)&include); + HTML_start_element(me, HTML_EM, 0, 0, -1, &include); HTML_put_string(me, "Document has only hidden links. Use the 'l'ist command."); - HTML_end_element(me, HTML_EM, (char **)&include); + HTML_end_element(me, HTML_EM, &include); HTML_put_character(me, ']'); - HTML_end_element(me, HTML_P, (char **)&include); + HTML_end_element(me, HTML_P, &include); } /* @@ -6888,15 +6885,15 @@ PRIVATE void HTML_abort ARGS2(HTStructured *, me, HTError, e) me->Underline_Level = 0; } if (me->inA) { - HTML_end_element(me, HTML_A, (char **)&include); + HTML_end_element(me, HTML_A, &include); me->inA = FALSE; } if (me->inFONT) { - HTML_end_element(me, HTML_FONT, (char **)&include); + HTML_end_element(me, HTML_FONT, &include); me->inFONT = FALSE; } if (me->inFORM) { - HTML_end_element(me, HTML_FORM, (char **)&include); + HTML_end_element(me, HTML_FORM, &include); me->inFORM = FALSE; } diff --git a/src/LYBookmark.c b/src/LYBookmark.c index a75c5eaa..60dcda52 100644 --- a/src/LYBookmark.c +++ b/src/LYBookmark.c @@ -5,7 +5,6 @@ #include <LYBookmark.h> #include <LYGlobalDefs.h> #include <LYSignal.h> -#include <LYSystem.h> #include <LYKeymap.h> #include <LYCharUtils.h> /* need for META charset */ #include <LYCharSets.h> /* need for LYHaveCJKCharacterSet */ @@ -289,7 +288,7 @@ PUBLIC void save_bookmark_link ARGS2( */ StrAllocCopy(Title, string_buffer); LYEntify(&Title, TRUE); - if (LYSaveBookmarksInUnicode && + if (UCSaveBookmarksInUnicode && have8bit(Title) && (!LYHaveCJKCharacterSet)) StrAllocCopy(Title, title_convert8bit(Title)); @@ -525,7 +524,7 @@ PUBLIC void remove_bookmark_link ARGS2( RM_PATH, newfile); CTRACE(tfp, "remove_bookmark_link: %s\n", buffer); - if( system( buffer ) ) { + if( LYSystem( buffer ) ) { HTAlert(BOOKTEMP_COPY_FAIL); } else { return; @@ -563,7 +562,7 @@ PUBLIC void remove_bookmark_link ARGS2( { char buffer[2048]; sprintf(buffer, "%s %s %s", MV_PATH, newfile, filename_buffer); - system(buffer); + LYSystem(buffer); return; } #endif /* !VMS */ diff --git a/src/LYCgi.c b/src/LYCgi.c index 5c51fe9b..b5cdcb2e 100644 --- a/src/LYCgi.c +++ b/src/LYCgi.c @@ -545,9 +545,7 @@ PRIVATE int LYLoadCGI ARGS4( if (LYCgiDocumentRoot != NULL && path_info != NULL ) { /* Construct and add PATH_TRANSLATED to env */ StrAllocCopy(document_root, LYCgiDocumentRoot); - if (document_root[strlen(document_root) - 1] == '/') { - document_root[strlen(document_root) - 1] = '\0'; - } + LYTrimHtmlSep(document_root); path_translated = document_root; StrAllocCat(path_translated, path_info); cp = NULL; diff --git a/src/LYCharSets.c b/src/LYCharSets.c index 7fe7e749..415d1584 100644 --- a/src/LYCharSets.c +++ b/src/LYCharSets.c @@ -331,8 +331,8 @@ PUBLIC CONST char ** LYCharSets[MAXCHARSETS]={ SevenBitApproximations, /* Macintosh (8 bit) */ SevenBitApproximations, /* NeXT character set */ SevenBitApproximations, /* Chinese */ - SevenBitApproximations, /* Japanese (EUC) */ - SevenBitApproximations, /* Japanese (SJIS) */ + SevenBitApproximations, /* Japanese (EUC-JP) */ + SevenBitApproximations, /* Japanese (Shift_JIS) */ SevenBitApproximations, /* Korean */ SevenBitApproximations, /* Taipei (Big5) */ SevenBitApproximations, /* Vietnamese (VISCII) */ @@ -345,20 +345,20 @@ PUBLIC CONST char ** LYCharSets[MAXCHARSETS]={ * The order of LYCharSets and LYchar_set_names MUST be the same */ PUBLIC CONST char * LYchar_set_names[MAXCHARSETSP]={ - "ISO Latin 1 ", - "DosLatin1 (cp850) ", - "WinLatin1 (cp1252) ", - "DosLatinUS (cp437) ", + "Western (ISO-8859-1) ", + "Western (cp850) ", + "Western (windows-1252)", + "IBM PC US codepage (cp437)", "DEC Multinational ", "Macintosh (8 bit) ", "NeXT character set ", "Chinese ", - "Japanese (EUC) ", - "Japanese (SJIS) ", + "Japanese (EUC-JP) ", + "Japanese (Shift_JIS)", "Korean ", "Taipei (Big5) ", "Vietnamese (VISCII) ", - "7 bit approximations", + "7 bit approximations (US-ASCII)", "Transparent ", (char *) 0 }; @@ -469,7 +469,7 @@ PUBLIC void HTMLSetCharacterHandling ARGS1(int,i) { int chndl = -2; if (LYCharSet_UC[i].enc != UCT_ENC_CJK) { - chndl = 0; + chndl = UCGetLYhndl_byMIME("iso-8859-1"); if (UCAssume_MIMEcharset) chndl = UCGetLYhndl_byMIME(UCAssume_MIMEcharset); @@ -507,7 +507,7 @@ PUBLIC void HTMLSetCharacterHandling ARGS1(int,i) HTPassHighCtrlRaw = (HTCJK != NOCJK) ? TRUE : FALSE; HTPassHighCtrlNum = FALSE; - } else if (!strncmp(LYchar_set_names[i], "Japanese (EUC)", 14)) { + } else if (!strncmp(LYchar_set_names[i], "Japanese (EUC-JP)", 17)) { HTCJK = LYUseDefaultRawMode ? JAPANESE : NOCJK; LYRawMode = (HTCJK != NOCJK) ? TRUE : FALSE; kanji_code = EUC; @@ -516,7 +516,7 @@ PUBLIC void HTMLSetCharacterHandling ARGS1(int,i) HTPassHighCtrlRaw = (HTCJK != NOCJK) ? TRUE : FALSE; HTPassHighCtrlNum = FALSE; - } else if (!strncmp(LYchar_set_names[i], "Japanese (SJIS)", 15)) { + } else if (!strncmp(LYchar_set_names[i], "Japanese (Shift_JIS)", 20)) { HTCJK = LYUseDefaultRawMode ? JAPANESE : NOCJK; LYRawMode = (HTCJK != NOCJK) ? TRUE : FALSE; kanji_code = SJIS; @@ -557,7 +557,7 @@ PUBLIC void HTMLSetCharacterHandling ARGS1(int,i) UCLYhndl_for_unspec = i; } else { if (chndl == -2) { - chndl = 0; + chndl = UCGetLYhndl_byMIME("iso-8859-1"); if (UCAssume_MIMEcharset) chndl = UCGetLYhndl_byMIME(UCAssume_MIMEcharset); @@ -567,7 +567,7 @@ PUBLIC void HTMLSetCharacterHandling ARGS1(int,i) LYCharSet_UC[chndl].enc != UCT_ENC_CJK)) { UCLYhndl_for_unspec = chndl; } else { - UCLYhndl_for_unspec = 0; + UCLYhndl_for_unspec = UCGetLYhndl_byMIME("iso-8859-1"); } } @@ -593,10 +593,10 @@ PUBLIC void HTMLSetCharacterHandling ARGS1(int,i) */ PUBLIC void HTMLSetRawModeDefault ARGS1(int,i) { - if (!strncmp(LYchar_set_names[i], "ISO Latin 1", 11) || + if (!strncmp(LYchar_set_names[i], "Western (ISO-8859-1)", 20) || !strncmp(LYchar_set_names[i], "Chinese", 7) || - !strncmp(LYchar_set_names[i], "Japanese (EUC)", 14) || - !strncmp(LYchar_set_names[i], "Japanese (SJIS)", 15) || + !strncmp(LYchar_set_names[i], "Japanese (EUC-JP)", 17) || + !strncmp(LYchar_set_names[i], "Japanese (Shift_JIS)", 20) || !strncmp(LYchar_set_names[i], "Korean", 6) || !strncmp(LYchar_set_names[i], "Taipei (Big5)", 13)) { LYDefaultRawMode = TRUE; @@ -616,7 +616,7 @@ PUBLIC void HTMLSetUseDefaultRawMode ARGS2( BOOLEAN, modeflag) { if (LYCharSet_UC[i].enc != UCT_ENC_CJK) { - int chndl = 0; + int chndl = UCGetLYhndl_byMIME("iso-8859-1"); if (UCAssume_MIMEcharset) chndl = UCGetLYhndl_byMIME(UCAssume_MIMEcharset); @@ -624,10 +624,10 @@ PUBLIC void HTMLSetUseDefaultRawMode ARGS2( LYUseDefaultRawMode = modeflag; else LYUseDefaultRawMode = (!modeflag); - } else if (!strncmp(LYchar_set_names[i], "ISO Latin 1", 11) || + } else if (!strncmp(LYchar_set_names[i], "Western (ISO-8859-1)", 20) || !strncmp(LYchar_set_names[i], "Chinese", 7) || - !strncmp(LYchar_set_names[i], "Japanese (EUC)", 14) || - !strncmp(LYchar_set_names[i], "Japanese (SJIS)", 15) || + !strncmp(LYchar_set_names[i], "Japanese (EUC-JP)", 17) || + !strncmp(LYchar_set_names[i], "Japanese (Shift_JIS)", 20) || !strncmp(LYchar_set_names[i], "Korean", 6) || !strncmp(LYchar_set_names[i], "Taipei (Big5)", 13)) { if (modeflag == TRUE) { @@ -652,8 +652,8 @@ PUBLIC void HTMLSetUseDefaultRawMode ARGS2( PUBLIC void HTMLSetHaveCJKCharacterSet ARGS1(int,i) { if (!strncmp(LYchar_set_names[i], "Chinese", 7) || - !strncmp(LYchar_set_names[i], "Japanese (EUC)", 14) || - !strncmp(LYchar_set_names[i], "Japanese (SJIS)", 15) || + !strncmp(LYchar_set_names[i], "Japanese (EUC-JP)", 17) || + !strncmp(LYchar_set_names[i], "Japanese (Shift_JIS)", 20) || !strncmp(LYchar_set_names[i], "Korean", 6) || !strncmp(LYchar_set_names[i], "Taipei (Big5)", 13)) { LYHaveCJKCharacterSet = TRUE; @@ -671,33 +671,36 @@ PUBLIC void HTMLSetHaveCJKCharacterSet ARGS1(int,i) */ PRIVATE void HTMLSetDisplayCharsetMatchLocale ARGS1(int,i) { - if (strncasecomp(LYCharSet_UC[i].MIMEname, "cp", 2) || - strncasecomp(LYCharSet_UC[i].MIMEname, "windows", 7)) { + if (LYHaveCJKCharacterSet) { /* - ** Assume dos/windows displays usually on remote terminal, - ** so rarely match locale. - ** (in fact, MS Windows codepoints locale are never seen on UNIX). + ** We have no intention to pass CJK via UCTransChar if that happened. + ** Let someone from CJK correct this if necessary. + */ + DisplayCharsetMatchLocale = TRUE; /* old-style */ + return; + + } else if (strncasecomp(LYCharSet_UC[i].MIMEname, "cp", 2) || + strncasecomp(LYCharSet_UC[i].MIMEname, "windows", 7)) { + /* + ** Assume dos/windows displays usually on remote terminal, hence it + ** rarely matches locale. (In fact, MS Windows codepoints locale are + ** never seen on UNIX). */ DisplayCharsetMatchLocale = FALSE; } else { - DisplayCharsetMatchLocale = TRUE; - } + DisplayCharsetMatchLocale = TRUE; /* guess, but see below */ #if !defined(LOCALE) - /* - ** But we have no intention to pass CJK via UCTransChar if that happened. - ** Let someone from CJK correct this if necessary. - */ - if (!LYHaveCJKCharacterSet) - DisplayCharsetMatchLocale = FALSE; -#endif -#if defined(LOCALE) && defined(EXP_8BIT_TOUPPER) - /* - ** Force disable locale - */ - if (!LYHaveCJKCharacterSet) + DisplayCharsetMatchLocale = FALSE; +#else + if (UCForce8bitTOUPPER) { + /* + ** Force disable locale (from lynx.cfg) + */ DisplayCharsetMatchLocale = FALSE; + } #endif + } return; } @@ -897,7 +900,7 @@ PUBLIC int LYCharSetsDeclared NOPARAMS if (UCAssume_MIMEcharset && *UCAssume_MIMEcharset) { UCLYhndl_for_unspec = UCGetLYhndl_byMIME(UCAssume_MIMEcharset); } else { - UCLYhndl_for_unspec = 0; + UCLYhndl_for_unspec = UCGetLYhndl_byMIME("iso-8859-1"); } if (UCAssume_localMIMEcharset && *UCAssume_localMIMEcharset) UCLYhndl_HTFile_for_unspec = diff --git a/src/LYCharUtils.c b/src/LYCharUtils.c index fed8a24b..cc53b72f 100644 --- a/src/LYCharUtils.c +++ b/src/LYCharUtils.c @@ -335,7 +335,7 @@ PUBLIC void LYFillLocalFileURL ARGS2( StrAllocCopy(temp, (*href+7)); StrAllocCopy(*href, "file://localhost"); StrAllocCat(*href, temp); - } else if (!strncmp(*href, "file:/", 6) && *(*href+6) != '/') { + } else if (!strncmp(*href, "file:/", 6) && !LYIsHtmlSep(*(*href+6))) { StrAllocCopy(temp, (*href+5)); StrAllocCopy(*href, "file://localhost"); StrAllocCat(*href, temp); @@ -363,8 +363,7 @@ PUBLIC void LYFillLocalFileURL ARGS2( temp2 = curdir; #endif /* DOSPATH */ #endif /* VMS */ - if (temp2[0] != '/') - StrAllocCat(*href, "/"); + LYAddHtmlSep(href); /* * Check for pathological cases - current dir has chars which * MUST BE URL-escaped - kw @@ -3532,7 +3531,7 @@ PUBLIC int LYLegitimizeHREF ARGS4( PARSE_PATH+PARSE_PUNCTUATION)) != NULL && !strncmp(path, "/..", 3)) { cp = (path + 3); - if (*cp == '/' || *cp == '\0') { + if (LYIsHtmlSep(*cp) || *cp == '\0') { if ((me->inBASE ? me->base_href[4] : me->node_anchor->address[4]) == 's') { str = "s"; @@ -3550,7 +3549,7 @@ PUBLIC int LYLegitimizeHREF ARGS4( } if (*cp == '\0') { StrAllocCopy(*href, "/"); - } else if (*cp == '/') { + } else if (LYIsHtmlSep(*cp)) { while (!strncmp(cp, "/..", 3)) { if (*(cp + 3) == '/') { cp += 3; diff --git a/src/LYCookie.c b/src/LYCookie.c index 9f84e2f6..c82dd592 100644 --- a/src/LYCookie.c +++ b/src/LYCookie.c @@ -17,8 +17,6 @@ ** - FM 1997-08-02 ** ** TO DO: (roughly in order of decreasing priority) - * A means to specify "always allow" and "never allow" domains via - a configuration file is needed. * Hex escaping isn't considered at all. Any semi-colons, commas, or spaces actually in cookie names or values (i.e., not serving as punctuation for the overall Set-Cookie value) should be hex @@ -56,7 +54,6 @@ #include <LYGlobalDefs.h> #include <LYEdit.h> #include <LYStrings.h> -#include <LYSystem.h> #include <GridText.h> #include <LYUtils.h> #include <LYCharUtils.h> @@ -1908,14 +1905,13 @@ PUBLIC void LYLoadCookies ARGS1 ( /* rjp - experimental persistent cookie support */ PRIVATE void LYStoreCookies ARGS1 ( - CONST char *, cookie_fileX) + CONST char *, cookie_file) { char buf[1024]; HTList *dl, *cl; domain_entry *de; cookie *co; FILE *cookie_handle; - char *cookie_file = "cookies"; #ifdef VMS extern BOOLEAN HadVMSInterrupt; #endif /* VMS */ @@ -2016,7 +2012,7 @@ PRIVATE int LYHandleCookies ARGS4 ( #ifdef EXP_PERSISTENT_COOKIES /* rjp - this can go here for now */ - LYStoreCookies ("j"); + LYStoreCookies (LYCookieFile); #endif /* @@ -2481,7 +2477,7 @@ PUBLIC void cookie_add_acceptlist ARGS1( de = (domain_entry *)calloc(1, sizeof(domain_entry)); if (de == NULL) - outofmem(__FILE__, "cookie_accept_domain"); + outofmem(__FILE__, "cookie_add_acceptlist"); de->bv = ACCEPT_ALWAYS; @@ -2548,7 +2544,7 @@ PUBLIC void cookie_add_rejectlist ARGS1( de = (domain_entry *)calloc(1, sizeof(domain_entry)); if (de == NULL) - outofmem(__FILE__, "cookie_reject_domain"); + outofmem(__FILE__, "cookie_add_rejectlist"); de->bv = REJECT_ALWAYS; diff --git a/src/LYCurses.c b/src/LYCurses.c index 1794d363..4bbd8758 100644 --- a/src/LYCurses.c +++ b/src/LYCurses.c @@ -14,12 +14,6 @@ #include <LYexit.h> #include <LYLeaks.h> -#ifdef VMS -#define DISPLAY "DECW$DISPLAY" -#else -#define DISPLAY "DISPLAY" -#endif /* VMS */ - #if defined(VMS) && defined(__GNUC__) #include <gnu_hacks.h> #undef LINES @@ -944,10 +938,10 @@ PUBLIC BOOLEAN setup ARGS1( * If the display was not set by a command line option then * see if it is available from the environment. */ - if ((cp = getenv(DISPLAY)) != NULL && *cp != '\0') { - StrAllocCopy(display, cp); + if ((cp = LYgetXDisplay()) != 0) { + StrAllocCopy(x_display, cp); } else { - FREE(display); + FREE(x_display); } /* @@ -1041,10 +1035,10 @@ PUBLIC BOOLEAN setup ARGS1( * If the display was not set by a command line option then * see if it is available from the environment . */ - if ((cp = getenv(DISPLAY)) != NULL && *cp != '\0') { - StrAllocCopy(display, cp); + if ((cp = LYgetXDisplay()) != NULL) { + StrAllocCopy(x_display, cp); } else { - FREE(display); + FREE(x_display); } if (terminal != NULL) { @@ -1582,7 +1576,7 @@ void (*func)(); * Exception-handler routines for regulating interrupts and enabling * Control-T during spawns. Includes TRUSTED flag for versions of VMS * which require it in captive accounts. This code should be used - * instead of the VAXC or DECC system(), by including LYSystem.h in + * instead of the VAXC or DECC system(), by including LYUtils.h in * modules which have system() calls. It helps ensure that we return * to Lynx instead of breaking out to DCL if a user issues interrupts * or generates an ACCVIO during spawns. diff --git a/src/LYCurses.h b/src/LYCurses.h index cd658287..9df3b749 100644 --- a/src/LYCurses.h +++ b/src/LYCurses.h @@ -157,6 +157,7 @@ extern void LYstartTargetEmphasis NOPARAMS; extern void LYstopTargetEmphasis NOPARAMS; #ifdef VMS +extern int DCLsystem (char *command); extern void VMSexit(); extern int ttopen(); extern int ttclose(); diff --git a/src/LYDownload.c b/src/LYDownload.c index 73a82c6b..26b1eef9 100644 --- a/src/LYDownload.c +++ b/src/LYDownload.c @@ -10,7 +10,6 @@ #include <LYClean.h> #include <LYGetFile.h> #include <LYDownload.h> -#include <LYSystem.h> #ifdef VMS #include <HTVMSUtils.h> #endif /* VMS */ @@ -46,7 +45,7 @@ PUBLIC void LYDownload ARGS1( char command[512]; char *cp, *cp1; lynx_html_item_type *download_command = 0; - int c, len; + int c; FILE *fp; int ch, recall; int FnameTotal; @@ -236,8 +235,7 @@ check_recall: if ((cp = strchr(buffer, '~'))) { *(cp++) = '\0'; strcpy(command, buffer); - if ((len = strlen(command)) > 0 && command[len-1] == '/') - command[len-1] = '\0'; + LYTrimPathSep(command); #ifdef DOSPATH strcat(command, HTDOS_wwwName((char *)Home_Dir())); #else @@ -263,12 +261,22 @@ check_recall: strcpy(buffer, command); } #else + #ifndef __EMX__ - if (*buffer != '/') + if (!LYIsPathSep(*buffer)) { +#if defined(__DJGPP__) || defined(_WINDOWS) + if (strchr(buffer, ':') != NULL) + cp = NULL; + else +#endif /* __DJGPP__ || _WINDOWS */ cp = getenv("PWD"); + } else #endif /* __EMX__*/ cp = NULL; + + LYTrimPathSep(cp); + if (cp) { sprintf(command, "%s/%s", cp, buffer); #ifdef DOSPATH @@ -343,12 +351,8 @@ check_recall: CTRACE(tfp, " FAILED!\n"); sprintf(command, COPY_COMMAND, file, buffer); CTRACE(tfp, "command: %s\n", command); - fflush(stderr); - fflush(stdout); stop_curses(); - system(command); - fflush(stdout); - fflush(stderr); + LYSystem(command); start_curses(); } else { /* @@ -373,12 +377,8 @@ check_recall: sprintf(command, "%s %s %s", COPY_PATH, file, buffer); #endif /* __EMX__ */ CTRACE(tfp, "command: %s\n", command); - fflush(stderr); - fflush(stdout); stop_curses(); - system(command); - fflush(stdout); - fflush(stderr); + LYSystem(command); start_curses(); #if defined(UNIX) LYRelaxFilePermissions(buffer); @@ -542,11 +542,7 @@ check_recall: CTRACE(tfp, "command: %s\n", command); stop_curses(); - fflush(stderr); - fflush(stdout); - system(command); - fflush(stderr); - fflush(stdout); + LYSystem(command); start_curses(); /* don't remove(file); */ } @@ -617,11 +613,8 @@ PUBLIC int LYdownload_options ARGS2( LYforce_no_cache = TRUE; /* don't cache this doc */ - fprintf(fp0, "<head>\n<title>%s</title>\n</head>\n<body>\n", - DOWNLOAD_OPTIONS_TITLE); - fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", - LYNX_NAME, LYNX_VERSION, - helpfilepath, DOWNLOAD_OPTIONS_HELP, DOWNLOAD_OPTIONS_TITLE); + BeginInternalPage(fp0, DOWNLOAD_OPTIONS_TITLE, DOWNLOAD_OPTIONS_HELP); + fprintf(fp0, "<pre>\n"); fprintf(fp0, "\ <em>You download the link:</em> %s\n\ @@ -669,7 +662,8 @@ sections 'DOWNLOAD' and 'INCLUDE'. \ --> \n", LYNX_CFG_FILE); } - fprintf(fp0, "</pre>\n</body>\n"); + fprintf(fp0, "</pre>\n"); + EndInternalPage(fp0); LYCloseTempFP(fp0); /* diff --git a/src/LYEdit.c b/src/LYEdit.c index 3c8997c6..f433080d 100644 --- a/src/LYEdit.c +++ b/src/LYEdit.c @@ -8,7 +8,7 @@ #include <LYGlobalDefs.h> #include <LYEdit.h> #include <LYStrings.h> -#include <LYSystem.h> +#include <LYUtils.h> #ifdef VMS #include <unixio.h> #include <HTVMSUtils.h> @@ -161,12 +161,8 @@ PUBLIC int edit_current_file ARGS3( /* * Invoke the editor. - FM */ - fflush(stderr); - fflush(stdout); stop_curses(); - system(command); - fflush(stdout); - fflush(stderr); + LYSystem(command); start_curses(); /* diff --git a/src/LYExtern.c b/src/LYExtern.c index 78e7c235..8b6959e9 100644 --- a/src/LYExtern.c +++ b/src/LYExtern.c @@ -69,18 +69,7 @@ void run_external ARGS1(char *, c) HTUserMsg(command); stop_curses(); - fflush(stdout); -#ifdef __DJGPP__ - __djgpp_set_ctrl_c(0); - _go32_want_ctrl_break(1); -#endif /* __DJGPP__ */ - system(command); -#ifdef __DJGPP__ - __djgpp_set_ctrl_c(1); - _go32_want_ctrl_break(0); -#endif /* __DJGPP__ */ - - fflush(stdout); + LYSystem(command); start_curses(); } diff --git a/src/LYGetFile.c b/src/LYGetFile.c index 1a54c161..319deacf 100644 --- a/src/LYGetFile.c +++ b/src/LYGetFile.c @@ -20,7 +20,6 @@ #include <LYDownload.h> #include <LYNews.h> #include <LYMail.h> -#include <LYSystem.h> #include <LYKeymap.h> #include <LYBookmark.h> #include <LYMap.h> @@ -50,41 +49,6 @@ extern char * WWW_Download_File; extern BOOLEAN LYDidRename; #endif /* VMS */ -#if 0 /* UNUSED */ -#ifdef DIRED_SUPPORT -PRIVATE char * LYSanctify ARGS1( - char *, href) -{ - int i; - char *p, *cp, *tp; - char address_buffer[1024]; - - i = (strlen(href) - 1); - while (i && href[i] == '/') href[i--] = '\0'; - - if ((cp = (char *)strchr(href,'~')) != NULL) { - if (!strncmp(href, "file://localhost/", 17)) - tp = (href + 17); - else - tp = (href + 5); - if ((cp - tp) && *(cp-1) != '/') - return href; - LYstrncpy(address_buffer, href, (cp - href)); - if (address_buffer[(strlen(address_buffer) - 1)] == '/') - address_buffer[(strlen(address_buffer) - 1)] = '\0'; - p = (char *)Home_Dir(); - strcat(address_buffer, p); - if (strlen(++cp)) - strcat(address_buffer, cp); - if (strcmp(href, address_buffer)) - StrAllocCopy(href, address_buffer); - } - return href; -} -#endif /* DIRED_SUPPORT */ -#endif - - PUBLIC BOOLEAN getfile ARGS1( document *, doc) { @@ -426,14 +390,10 @@ Try_Redirected_URL: /* * Run the command. */ -#ifdef __DJGPP__ - __djgpp_set_ctrl_c(0); - _go32_want_ctrl_break(1); -#endif /* __DJGPP__ */ if (strstr(p,"//") == p+9) - system(p+11); + LYSystem(p+11); else - system(p+9); + LYSystem(p+9); if (url_type != LYNXPROG_URL_TYPE) { /* * Make sure user gets to see screen output. @@ -450,10 +410,6 @@ Try_Redirected_URL: HadVMSInterrupt = FALSE; } #endif /* VMS */ -#ifdef __DJGPP__ - __djgpp_set_ctrl_c(1); - _go32_want_ctrl_break(0); -#endif /* __DJGPP__ */ } start_curses(); LYAddVisitedLink(doc); @@ -1309,7 +1265,7 @@ PRIVATE int fix_http_urls ARGS1( * If it's an ftp URL with a trailing slash, trim it off. */ if (!strncmp(doc->address, "ftp", 3) && - doc->address[strlen(doc->address)-1] == '/') { + LYIsHtmlSep(doc->address[strlen(doc->address)-1])) { char * proxy; char *path = HTParse(doc->address, "", PARSE_PATH|PARSE_PUNCTUATION); @@ -1317,7 +1273,7 @@ PRIVATE int fix_http_urls ARGS1( * If the path is a lone slash, we're done. - FM */ if (path) { - if (path[0] == '/' && path[1] == '\0') { + if (LYIsHtmlSep(path[0]) && path[1] == '\0') { FREE(path); return 0; } @@ -1335,7 +1291,7 @@ PRIVATE int fix_http_urls ARGS1( * If we get to here, trim the trailing slash. - FM */ CTRACE(tfp, "fix_http_urls: URL '%s'\n", doc->address); - doc->address[strlen(doc->address)-1] = '\0'; + LYTrimHtmlSep(doc->address); CTRACE(tfp, " changed to '%s'\n", doc->address); CTRACE_SLEEP(MessageSecs); } @@ -1344,12 +1300,12 @@ PRIVATE int fix_http_urls ARGS1( * If there isn't a slash besides the two at the beginning, append one. */ if ((slash = strrchr(doc->address, '/')) != NULL) { - if (*(slash-1) != '/' || *(slash-2) != ':') { + if (!LYIsHtmlSep(*(slash-1)) || *(slash-2) != ':') { return(0); } } CTRACE(tfp, "fix_http_urls: URL '%s'\n", doc->address); - StrAllocCat(doc->address, "/"); + LYAddHtmlSep(&(doc->address)); CTRACE(tfp, " changed to '%s'\n",doc->address); CTRACE_SLEEP(MessageSecs); diff --git a/src/LYGlobalDefs.h b/src/LYGlobalDefs.h index 7b543738..ebc78984 100644 --- a/src/LYGlobalDefs.h +++ b/src/LYGlobalDefs.h @@ -135,7 +135,7 @@ extern char *helpfilepath; extern char *lynxjumpfile; extern char *lynxlistfile; extern char *lynxlinksfile; -extern char *display; +extern char *x_display; extern char *language; extern char *pref_charset; /* Lynx's preferred character set - MM */ extern BOOLEAN LYNewsPosting; /* News posting supported if TRUE */ @@ -289,7 +289,8 @@ extern BOOLEAN LYUseDefaultRawMode; extern char *UCAssume_MIMEcharset; extern char *UCAssume_localMIMEcharset; extern char *UCAssume_unrecMIMEcharset; -extern BOOLEAN LYSaveBookmarksInUnicode; /* in titles, chars >127 save as &#xUUUU */ +extern BOOLEAN UCSaveBookmarksInUnicode; /* in titles, chars >127 save as &#xUUUU */ +extern BOOLEAN UCForce8bitTOUPPER; /* disable locale case-conversion for >127 */ extern BOOLEAN LYisConfiguredForX; extern char *URLDomainPrefixes; extern char *URLDomainSuffixes; @@ -302,9 +303,12 @@ extern BOOLEAN LYMBMAdvanced; /* MBM statusline for ADVANCED? */ extern int LYStatusLine; /* Line for statusline() or -1 */ extern BOOLEAN LYCollapseBRs; /* Collapse serial BRs? */ extern BOOLEAN LYSetCookies; /* Process Set-Cookie headers? */ -extern BOOLEAN LYAcceptAllCookies; /* accept ALL cookies? */ +extern BOOLEAN LYAcceptAllCookies; /* accept ALL cookies? */ extern char *LYCookieAcceptDomains; /* domains to accept all cookies */ extern char *LYCookieRejectDomains; /* domains to reject all cookies */ +#ifdef EXP_PERSISTENT_COOKIES +extern char *LYCookieFile; /* file to store cookies in */ +#endif /* EXP_PERSISTENT_COOKIES */ extern char *XLoadImageCommand; /* Default image viewer for X */ #ifdef USE_EXTERNALS extern BOOLEAN no_externals; /* don't allow the use of externals */ diff --git a/src/LYHistory.c b/src/LYHistory.c index 4d39d58a..e046a9e5 100644 --- a/src/LYHistory.c +++ b/src/LYHistory.c @@ -118,6 +118,26 @@ PUBLIC void LYAddVisitedLink ARGS1( } /* + * Returns true if this is a page that we would push onto the stack if not + * forced. + */ +PUBLIC BOOLEAN LYwouldPush ARGS1( + char *, title) +{ + return (!strcmp(title, HISTORY_PAGE_TITLE) + || !strcmp(title, PRINT_OPTIONS_TITLE) + || !strcmp(title, DOWNLOAD_OPTIONS_TITLE) +#ifdef DIRED_SUPPORT + || !strcmp(title, DIRED_MENU_TITLE) + || !strcmp(title, UPLOAD_OPTIONS_TITLE) + || !strcmp(title, PERMIT_OPTIONS_TITLE) +#endif /* DIRED_SUPPORT */ + ) + ? FALSE + : TRUE; +} + +/* * Push the current filename, link and line number onto the history list. */ PUBLIC void LYpush ARGS2( @@ -138,26 +158,11 @@ PUBLIC void LYpush ARGS2( /* * Don't push the history, printer, or download lists. */ - if (!strcmp(doc->title, HISTORY_PAGE_TITLE) || - !strcmp(doc->title, PRINT_OPTIONS_TITLE) || - !strcmp(doc->title, DOWNLOAD_OPTIONS_TITLE)) { - if (!LYforce_no_cache) - LYoverride_no_cache = TRUE; - return; - } - -#ifdef DIRED_SUPPORT - /* - * Don't push DIRED menu, upload or permit lists. - */ - if (!strcmp(doc->title, DIRED_MENU_TITLE) || - !strcmp(doc->title, UPLOAD_OPTIONS_TITLE) || - !strcmp(doc->title, PERMIT_OPTIONS_TITLE)) { + if (!LYwouldPush(doc->title)) { if (!LYforce_no_cache) LYoverride_no_cache = TRUE; return; } -#endif /* DIRED_SUPPORT */ } /* @@ -402,13 +407,8 @@ PUBLIC int showhistory ARGS1( LYforce_HTML_mode = TRUE; /* force this file to be HTML */ LYforce_no_cache = TRUE; /* force this file to be new */ - fprintf(fp0, "<head>\n"); - LYAddMETAcharsetToFD(fp0, -1); - fprintf(fp0, "<title>%s</title>\n</head>\n<body>\n", - HISTORY_PAGE_TITLE); - fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", - LYNX_NAME, LYNX_VERSION, - helpfilepath, HISTORY_PAGE_HELP, HISTORY_PAGE_TITLE); + BeginInternalPage(fp0, HISTORY_PAGE_TITLE, HISTORY_PAGE_HELP); + fprintf(fp0, "<pre>\n"); fprintf(fp0, "<em>You selected:</em>\n"); for (x = nhist-1; x >= 0; x--) { @@ -440,7 +440,8 @@ PUBLIC int showhistory ARGS1( } fprintf(fp0, "<tab to=t%d>%s\n", x, Title); } - fprintf(fp0,"</pre>\n</body>\n"); + fprintf(fp0,"</pre>\n"); + EndInternalPage(fp0); LYCloseTempFP(fp0); FREE(Title); @@ -553,13 +554,8 @@ PUBLIC int LYShowVisitedLinks ARGS1( LYforce_HTML_mode = TRUE; /* force this file to be HTML */ LYforce_no_cache = TRUE; /* force this file to be new */ - fprintf(fp0, "<head>\n"); - LYAddMETAcharsetToFD(fp0, -1); - fprintf(fp0, "<title>%s</title>\n</head>\n<body>\n", - VISITED_LINKS_TITLE); - fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", - LYNX_NAME, LYNX_VERSION, - helpfilepath, VISITED_LINKS_HELP, VISITED_LINKS_TITLE); + BeginInternalPage(fp0, VISITED_LINKS_TITLE, VISITED_LINKS_HELP); + fprintf(fp0, "<pre>\n"); fprintf(fp0, "<em>You visited (POSTs, bookmark, menu and list files excluded):</em>\n"); @@ -596,7 +592,8 @@ PUBLIC int LYShowVisitedLinks ARGS1( fprintf(fp0, "<tab to=t%d>%s\n", x, ((Address != NULL) ? Address : "(no address)")); } - fprintf(fp0,"</pre>\n</body>\n"); + fprintf(fp0,"</pre>\n"); + EndInternalPage(fp0); LYCloseTempFP(fp0); FREE(Title); diff --git a/src/LYHistory.h b/src/LYHistory.h index 254889d1..7593a2ca 100644 --- a/src/LYHistory.h +++ b/src/LYHistory.h @@ -1,4 +1,3 @@ - #ifndef LYHISTORY_H #define LYHISTORY_H @@ -6,12 +5,13 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ +extern BOOLEAN LYwouldPush PARAMS((char *title)); +extern BOOLEAN historytarget PARAMS((document *newdoc)); +extern int LYShowVisitedLinks PARAMS((char **newfile)); +extern int showhistory PARAMS((char **newfile)); extern void LYAddVisitedLink PARAMS((document *doc)); -extern void LYpush PARAMS((document *doc, BOOLEAN force_push)); extern void LYpop PARAMS((document *doc)); extern void LYpop_num PARAMS((int number, document *doc)); -extern int showhistory PARAMS((char **newfile)); -extern BOOLEAN historytarget PARAMS((document *newdoc)); -extern int LYShowVisitedLinks PARAMS((char **newfile)); +extern void LYpush PARAMS((document *doc, BOOLEAN force_push)); #endif /* LYHISTORY_H */ diff --git a/src/LYList.c b/src/LYList.c index b7de7392..e31036fb 100644 --- a/src/LYList.c +++ b/src/LYList.c @@ -80,25 +80,8 @@ PUBLIC int showlist ARGS2( LYforce_HTML_mode = TRUE; /* force this file to be HTML */ LYforce_no_cache = TRUE; /* force this file to be new */ + BeginInternalPage(fp0, LIST_PAGE_TITLE, LIST_PAGE_HELP); - fprintf(fp0, "<head>\n"); - LYAddMETAcharsetToFD(fp0, -1); - if (strchr(HTLoadedDocumentURL(), '"') == NULL) { - /* - * Insert a BASE tag so there is some way to relate the List Page - * file to its underlying document after we are done. It won't - * be actually used for resolving relative URLs. - kw - */ - StrAllocCopy(Address, HTLoadedDocumentURL()); - LYEntify(&Address, FALSE); - fprintf(fp0, "<base href=\"%s\">\n", Address); - FREE(Address); - } - fprintf(fp0, "<title>%s</title>\n</head>\n<body>\n", - LIST_PAGE_TITLE); - fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", - LYNX_NAME, LYNX_VERSION, - helpfilepath, LIST_PAGE_HELP, LIST_PAGE_TITLE); StrAllocCopy(Address, HTLoadedDocumentURL()); LYEntify(&Address, FALSE); fprintf(fp0, "References in %s<p>\n", @@ -213,8 +196,10 @@ PUBLIC int showlist ARGS2( FREE(Address); } - fprintf(fp0,"\n</%s>\n</body>\n", ((keypad_mode == NUMBERS_AS_ARROWS) ? - "ol" : "ul")); + fprintf(fp0,"\n</%s>\n", ((keypad_mode == NUMBERS_AS_ARROWS) ? + "ol" : "ul")); + EndInternalPage(fp0); + LYCloseTempFP(fp0); /* * Make necessary changes to newdoc before returning to caller. @@ -236,7 +221,6 @@ PUBLIC int showlist ARGS2( } newdoc->isHEAD = FALSE; newdoc->safe = FALSE; - LYCloseTempFP(fp0); return(0); } diff --git a/src/LYLocal.c b/src/LYLocal.c index 57c821c9..21288e67 100644 --- a/src/LYLocal.c +++ b/src/LYLocal.c @@ -41,7 +41,6 @@ #include <LYHistory.h> #include <LYUpload.h> #include <LYLocal.h> -#include <LYSystem.h> #ifndef VMS #ifndef _WINDOWS @@ -247,7 +246,7 @@ PRIVATE BOOLEAN remove_tagged NOARGS char tmpbuf[1024]; char *testpath = NULL; struct stat dir_info; - int count, i; + int count; HTList *tag; char *args[5]; @@ -270,8 +269,7 @@ PRIVATE BOOLEAN remove_tagged NOARGS } StrAllocCopy(testpath, tp); HTUnEscape(testpath); - if ((i = strlen(testpath)) && testpath[i-1] == '/') - testpath[(i - 1)] = '\0'; + LYTrimPathSep(testpath); /* * Check the current status of the path to be deleted. @@ -406,9 +404,8 @@ PRIVATE BOOLEAN modify_tagged ARGS1( /* * If path is relative, prefix it with current location. */ - if (tmpbuf[0] != '/') { - if (savepath[(strlen(savepath) - 1)] != '/') - StrAllocCat(savepath,"/"); + if (!LYIsPathSep(tmpbuf[0])) { + LYAddPathSep(&savepath); StrAllocCat(savepath,tmpbuf); } else { StrAllocCopy(savepath,tmpbuf); @@ -616,7 +613,7 @@ PRIVATE BOOLEAN modify_location ARGS1( strcat(newpath, (tmpbuf + 1)); strcpy(tmpbuf, newpath); } - if (tmpbuf[0] != '/') { + if (!LYIsPathSep(tmpbuf[0])) { if ((cp = strrchr(newpath,'/')) != NULL) { *++cp = '\0'; strcat(newpath,tmpbuf); @@ -774,9 +771,7 @@ PRIVATE BOOLEAN create_file ARGS1( HTAlert("Illegal redirection \"//\" found! Request ignored."); } else if (strlen(tmpbuf) && strchr(bad_chars, tmpbuf[0]) == NULL) { strcpy(testpath,current_location); - if (testpath[(strlen(testpath) - 1)] != '/') { - strcat(testpath,"/"); - } + LYAddPathSep0(testpath); /* * Append the target filename to the current location. @@ -836,9 +831,8 @@ PRIVATE BOOLEAN create_directory ARGS1( HTAlert("Illegal redirection \"//\" found! Request ignored."); } else if (strlen(tmpbuf) && strchr(bad_chars, tmpbuf[0]) == NULL) { strcpy(testpath,current_location); - if (testpath[(strlen(testpath) - 1)] != '/') { - strcat(testpath,"/"); - } + LYAddPathSep0(testpath); + strcat(testpath, tmpbuf); /* @@ -1450,8 +1444,7 @@ PUBLIC int local_dired ARGS1( if (LYUpload(line_url)) LYforce_no_cache = TRUE; } else { - if (line[(strlen(line) - 1)] == '/') - line[strlen(line)-1] = '\0'; + LYTrimPathSep(line); if ((cp = strrchr(line, '/')) == NULL) { FREE(line); return 0; @@ -1586,8 +1579,7 @@ PUBLIC int local_dired ARGS1( _statusline(tmpbuf); stop_curses(); printf("%s\n", tmpbuf); - fflush(stdout); - system(buffer); + LYSystem(buffer); #ifdef VMS extern BOOLEAN HadVMSInterrupt HadVMSInterrupt = FALSE; @@ -1647,13 +1639,12 @@ PUBLIC int dired_options ARGS2( } else if (!strncmp(cp, "file:", 5)) { cp += 5; } - strcpy(dir, cp); StrAllocCopy(dir_url, cp); - if (dir_url[(strlen(dir_url) - 1)] == '/') - dir_url[(strlen(dir_url) - 1)] = '\0'; + LYTrimHtmlSep(dir_url); + + strcpy(dir, cp); HTUnEscape(dir); - if (dir[(strlen(dir) - 1)] == '/') - dir[(strlen(dir) - 1)] = '\0'; + LYTrimPathSep(dir); if (doc->link > -1 && doc->link < (nlinks+1)) { cp = links[doc->link].lname; @@ -1662,13 +1653,12 @@ PUBLIC int dired_options ARGS2( } else if (!strncmp(cp, "file:", 5)) { cp += 5; } - strcpy(path, cp); StrAllocCopy(path_url, cp); - if (*path_url && path_url[1] && path_url[(strlen(path_url) - 1)] == '/') - path_url[(strlen(path_url) - 1)] = '\0'; + LYTrimHtmlSep(path_url); + + strcpy(path, cp); HTUnEscape(path); - if (*path && path[1] && path[(strlen(path) - 1)] == '/') - path[(strlen(path) - 1)] = '\0'; + LYTrimPathSep(path); if (lstat(path, &dir_info) == -1 && stat(path, &dir_info) == -1) { sprintf(tmpbuf, "Unable to get status of '%s'.", path); @@ -1686,11 +1676,8 @@ PUBLIC int dired_options ARGS2( nothing_tagged = (HTList_isEmpty(tagged)); - fprintf(fp0, "<head>\n<title>%s</title></head>\n<body>\n", - DIRED_MENU_TITLE); - fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", - LYNX_NAME, LYNX_VERSION, - helpfilepath, DIRED_MENU_HELP, DIRED_MENU_TITLE); + BeginInternalPage(fp0, DIRED_MENU_TITLE, DIRED_MENU_HELP); + fprintf(fp0, "<em>Current directory:</em> %s<br>\n", dir); if (nothing_tagged) { @@ -1714,8 +1701,7 @@ PUBLIC int dired_options ARGS2( n, ((n == 1) ? ":" : "s:")); StrAllocCopy(cd, doc->address); HTUnEscapeSome(cd, "/"); - if (*cd && cd[(strlen(cd) - 1)] != '/') - StrAllocCat(cd, "/"); + LYAddHtmlSep(&cd); m = (n < NUM_TAGS_TO_WRITE) ? n : NUM_TAGS_TO_WRITE; for (i = 1; i <= m; i++) { cp1 = HTRelative(HTList_objectAt(tagged, i-1), @@ -1782,7 +1768,7 @@ PUBLIC int dired_options ARGS2( } } - fprintf(fp0, "</body>\n"); + EndInternalPage(fp0); LYCloseTempFP(fp0); FREE(dir_url); diff --git a/src/LYMail.c b/src/LYMail.c index 7c70f798..3d1138f3 100644 --- a/src/LYMail.c +++ b/src/LYMail.c @@ -18,7 +18,6 @@ #include <LYClean.h> #include <LYStrings.h> #include <GridText.h> -#include <LYSystem.h> #include <LYMail.h> #include <LYCharSets.h> /* to get current charset for mail header */ @@ -28,6 +27,27 @@ BOOLEAN term_letter; /* Global variable for async i/o. */ PRIVATE void terminate_letter PARAMS((int sig)); PRIVATE void remove_tildes PARAMS((char *string)); +/* HTUnEscape with control-code nuking */ +PRIVATE void SafeHTUnEscape ARGS1( + char *, string) +{ + int i; + int flg = FALSE; + + HTUnEscape(string); + for (i=0; string[i] != '\0'; i++) + { + /* FIXME: this is explicitly 7-bit ASCII */ + if (string[i] < ' ' || string[i] >= 127) + { + string[i] = '?'; + flg = TRUE; + } + } + if (flg) + HTAlert(MAILTO_SQUASH_CTL); +} + /* ** mailform() sends form content to the mailto address(es). - FM */ @@ -95,7 +115,7 @@ PUBLIC void mailform ARGS4( *cp1 = '\0'; } if (*cp) { - HTUnEscape(subject); + SafeHTUnEscape(subject); LYstrncpy(subject, cp, 70); } if (cp1) { @@ -202,7 +222,7 @@ PUBLIC void mailform ARGS4( } if (keywords != NULL) { if (*keywords != '\0') { - HTUnEscape(keywords); + SafeHTUnEscape(keywords); } else { FREE(keywords); } @@ -255,9 +275,9 @@ PUBLIC void mailform ARGS4( /* * Unescape the address and ccaddr fields. - FM */ - HTUnEscape(address); + SafeHTUnEscape(address); if (ccaddr != NULL) { - HTUnEscape(ccaddr); + SafeHTUnEscape(ccaddr); } /* @@ -531,7 +551,7 @@ PUBLIC void mailform ARGS4( stop_curses(); printf("Sending form content:\n\n$ %s\n\nPlease wait...", command); - system(command); + LYSystem(command); FREE(command); sleep(AlertSecs); start_curses(); @@ -545,7 +565,7 @@ PUBLIC void mailform ARGS4( StrAllocCat(command, my_tmpfile); stop_curses(); printf("Sending form content:\n\n$ %s\n\nPlease wait...", command); - system(command); + LYSystem(command); FREE(command); sleep(MessageSecs); start_curses(); @@ -658,7 +678,7 @@ PUBLIC void mailmsg ARGS4( /* * Unescape the address field. - FM */ - HTUnEscape(address); + SafeHTUnEscape(address); if (address[(strlen(address) - 1)] == ',') address[(strlen(address) - 1)] = '\0'; if (*address == '\0') { @@ -788,7 +808,7 @@ PUBLIC void mailmsg ARGS4( address_ptr1 = address_ptr2; } while (address_ptr1 != NULL); - system(command); + LYSystem(command); FREE(command); LYRemoveTemp(my_tmpfile); if (isPMDF) { @@ -800,7 +820,7 @@ PUBLIC void mailmsg ARGS4( StrAllocCat(command, address); StrAllocCat(command, "\" -F "); StrAllocCat(command, my_tmpfile); - system(command); + LYSystem(command); FREE(command); LYRemoveTemp(my_tmpfile); #endif @@ -934,7 +954,7 @@ PUBLIC void reply_by_mail ARGS3( if (*cp) { strncpy(subject, cp, 70); subject[70] = '\0'; - HTUnEscape(subject); + SafeHTUnEscape(subject); } if (cp1) { *cp1 = '&'; @@ -1041,7 +1061,7 @@ PUBLIC void reply_by_mail ARGS3( } if (keywords != NULL) { if (*keywords != '\0') { - HTUnEscape(keywords); + SafeHTUnEscape(keywords); } else { FREE(keywords); } @@ -1164,9 +1184,9 @@ PUBLIC void reply_by_mail ARGS3( /* * Unescape the address and ccaddr fields. - FM */ - HTUnEscape(address); + SafeHTUnEscape(address); if (ccaddr != NULL) { - HTUnEscape(ccaddr); + SafeHTUnEscape(ccaddr); } /* @@ -1563,7 +1583,7 @@ PUBLIC void reply_by_mail ARGS3( sprintf(user_input, "%s%s %s", editor, editor_arg, my_tmpfile); _statusline(SPAWNING_EDITOR_FOR_MAIL); stop_curses(); - if (system(user_input)) { + if (LYSystem(user_input)) { start_curses(); HTAlert(ERROR_SPAWNING_EDITOR); } else { @@ -1802,7 +1822,7 @@ PUBLIC void reply_by_mail ARGS3( stop_curses(); printf("Sending your comment:\n\n$ %s\n\nPlease wait...", command); - system(command); + LYSystem(command); FREE(command); sleep(AlertSecs); start_curses(); @@ -1844,7 +1864,7 @@ PUBLIC void reply_by_mail ARGS3( LYCloseTempFP(fp); /* Close the tmpfile. */ stop_curses(); printf("Sending your comment:\n\n$ %s\n\nPlease wait...", command); - system(command); + LYSystem(command); FREE(command); sleep(MessageSecs); start_curses(); diff --git a/src/LYMain.c b/src/LYMain.c index 78a8a10a..9d7f174a 100644 --- a/src/LYMain.c +++ b/src/LYMain.c @@ -51,12 +51,6 @@ #include <LYexit.h> #include <LYLeaks.h> -#ifdef VMS -#define DISPLAY "DECW$DISPLAY" -#else -#define DISPLAY "DISPLAY" -#endif /* VMS */ - /* ahhhhhhhhhh!! Global variables :-< */ #ifdef SOCKS PUBLIC BOOLEAN socks_flag=TRUE; @@ -259,7 +253,7 @@ PUBLIC char *lynxlinksfile = NULL; /* the current visited links file URL */ PUBLIC char *startrealm = NULL; /* the startfile realm */ PUBLIC char *indexfile = NULL; /* an index file if there is one */ PUBLIC char *personal_mail_address = NULL; /* the users mail address */ -PUBLIC char *display = NULL; /* display environment variable */ +PUBLIC char *x_display = NULL; /* display environment variable */ PUBLIC char *personal_type_map = NULL; /* .mailcap */ PUBLIC char *global_type_map = NULL; /* global mailcap */ PUBLIC char *global_extension_map = NULL; /* global mime.types */ @@ -301,7 +295,8 @@ PUBLIC BOOLEAN LYUseDefaultRawMode = TRUE; PUBLIC char *UCAssume_MIMEcharset = NULL; PUBLIC char *UCAssume_localMIMEcharset = NULL; PUBLIC char *UCAssume_unrecMIMEcharset = NULL; -PUBLIC BOOLEAN LYSaveBookmarksInUnicode = FALSE; +PUBLIC BOOLEAN UCSaveBookmarksInUnicode = FALSE; +PUBLIC BOOLEAN UCForce8bitTOUPPER = FALSE; /* override locale for case-conversion? */ PUBLIC int LYlines = 24; PUBLIC int LYcols = 80; PUBLIC int dump_output_width = 0; @@ -337,6 +332,9 @@ PUBLIC BOOLEAN LYSetCookies = SET_COOKIES; /* Process Set-Cookie headers? */ PUBLIC BOOLEAN LYAcceptAllCookies = ACCEPT_ALL_COOKIES; /* take all cookies? */ PUBLIC char *LYCookieAcceptDomains = NULL; /* domains to accept all cookies */ PUBLIC char *LYCookieRejectDomains = NULL; /* domains to reject all cookies */ +#ifdef EXP_PERSISTENT_COOKIES +PUBLIC char *LYCookieFile = NULL; /* default cookie file */ +#endif /* EXP_PERSISTENT_COOKIES */ PUBLIC char *XLoadImageCommand = NULL; /* Default image viewer for X */ PUBLIC BOOLEAN LYNoISMAPifUSEMAP = FALSE; /* Omit ISMAP link if MAP present? */ PUBLIC int LYHiddenLinks = HIDDENLINKS_SEPARATE; /* Show hidden links? */ @@ -357,7 +355,8 @@ PUBLIC BOOLEAN LYPrependCharsetToSource = FALSE; PUBLIC BOOLEAN LYQuitDefaultYes = QUIT_DEFAULT_YES; #ifdef DISP_PARTIAL -PUBLIC BOOLEAN display_partial = FALSE; /* Display document during download */ +PUBLIC BOOLEAN display_partial = TRUE; /* Display document during download */ +PUBLIC BOOLEAN debug_display_partial = FALSE; /* Show with MessageSecs delay */ #endif /* These are declared in cutil.h for current freeWAIS libraries. - FM */ @@ -441,7 +440,7 @@ PRIVATE void free_lynx_globals NOARGS FREE(jumpfile); #endif /* JUMPFILE */ FREE(indexfile); - FREE(display); + FREE(x_display); FREE(global_type_map); FREE(personal_type_map); FREE(global_extension_map); @@ -518,7 +517,6 @@ PUBLIC int main ARGS2( { int i; /* indexing variable */ int status = 0; /* exit status */ - int len; char *lynx_cfg_file = NULL; char *temp = NULL; char *cp; @@ -694,8 +692,7 @@ PUBLIC int main ARGS2( if ((cp = strchr(lynx_temp_space, '~'))) { *(cp++) = '\0'; StrAllocCopy(temp, lynx_temp_space); - if (((len = strlen(temp)) > 0) && temp[len-1] == '/') - temp[len-1] = '\0'; + LYTrimPathSep(temp); #ifdef DOSPATH StrAllocCat(temp, HTDOS_wwwName((char *)Home_Dir())); #else @@ -726,11 +723,10 @@ PUBLIC int main ARGS2( #ifdef VMS LYLowerCase(lynx_temp_space); if (strchr(lynx_temp_space, '/') != NULL) { - if ((len = strlen(lynx_temp_space)) == 1) { + if (strlen(lynx_temp_space) == 1) { StrAllocCopy(lynx_temp_space, "sys$scratch:"); } else { - if (lynx_temp_space[len-1] != '/') - StrAllocCat(lynx_temp_space, "/"); + LYAddPathSep(&lynx_temp_space); StrAllocCopy(temp, HTVMS_name("", lynx_temp_space)); StrAllocCopy(lynx_temp_space, temp); FREE(temp); @@ -741,17 +737,7 @@ PUBLIC int main ARGS2( StrAllocCat(lynx_temp_space, ":"); } #else -#if !defined(__DJGPP__) && !defined(_WINDOWS) - if (((len = strlen(lynx_temp_space)) > 1) && - lynx_temp_space[len-1] != '/') { - StrAllocCat(lynx_temp_space, "/"); - } -#else - if (((len = strlen(lynx_temp_space)) > 1) && - lynx_temp_space[len-1] != '\\') { - StrAllocCat(lynx_temp_space, "\\"); - } -#endif /* !__DJGPP__ && !_WINDOWS */ + LYAddPathSep(&lynx_temp_space); #endif /* VMS */ #ifdef VMS StrAllocCopy(mail_adrs, MAIL_ADRS); @@ -1068,7 +1054,7 @@ PUBLIC int main ARGS2( fprintf(stderr, "%s\n", TRACELOG_OPEN_FAILED); #if defined(__DJGPP__) || defined(_WINDOWS) - _fmode = O_BINARY; + _fmode = O_BINARY; #endif /* __DJGPP__ or _WINDOWS */ exit(-1); } @@ -1137,7 +1123,7 @@ PUBLIC int main ARGS2( */ #ifndef _WINDOWS /* avoid the whole ~ thing for now */ /* I think this should only be performed if lynx_cfg_file starts with ~/ */ - if ((lynx_cfg_file[0] == '~') && (lynx_cfg_file[1] == '/')) + if ((lynx_cfg_file[0] == '~') && LYIsPathSep(lynx_cfg_file[1])) { #ifdef VMS StrAllocCopy(temp, HTVMS_wwwName((char *)Home_Dir())); @@ -1198,8 +1184,7 @@ PUBLIC int main ARGS2( if ((cp = strchr(lynx_lss_file, '~'))) { *(cp++) = '\0'; StrAllocCopy(temp, lynx_lss_file); - if ((len=strlen(temp)) > 0 && temp[len-1] == '/') - temp[len-1] = '\0'; + LYTrimPathSep(temp); #ifdef VMS StrAllocCat(temp, HTVMS_wwwName((char *)Home_Dir())); #else @@ -1278,8 +1263,7 @@ PUBLIC int main ARGS2( if ((cp = strchr(lynx_save_space, '~')) != NULL) { *(cp++) = '\0'; StrAllocCopy(temp, lynx_save_space); - if (((len = strlen(temp)) > 0) && temp[len-1] == '/') - temp[len-1] = '\0'; + LYTrimPathSep(temp); #ifdef DOSPATH StrAllocCat(temp, HTDOS_wwwName((char *)Home_Dir())); #else @@ -1296,11 +1280,10 @@ PUBLIC int main ARGS2( #ifdef VMS LYLowerCase(lynx_save_space); if (strchr(lynx_save_space, '/') != NULL) { - if ((len = strlen(lynx_save_space)) == 1) { + if (strlen(lynx_save_space) == 1) { StrAllocCopy(lynx_save_space, "sys$login:"); } else { - if (lynx_save_space[len-1] != '/') - StrAllocCat(lynx_save_space, "/"); + LYAddPathSep(&lynx_save_space); StrAllocCopy(temp, HTVMS_name("", lynx_save_space)); StrAllocCopy(lynx_save_space, temp); FREE(temp); @@ -1311,12 +1294,7 @@ PUBLIC int main ARGS2( StrAllocCat(lynx_save_space, ":"); } #else - { - if (((len = strlen(lynx_save_space)) > 1) && - lynx_save_space[len-1] != '/') { - StrAllocCat(lynx_save_space, "/"); - } - } + LYAddPathSep(&lynx_save_space); #endif /* VMS */ } @@ -1523,7 +1501,37 @@ PUBLIC int main ARGS2( * Sod it, this looks like a reasonable place to load the * cookies file, probably. - RP */ - LYLoadCookies("cookies"); /* add command line options! */ + if(LYCookieFile == NULL) { +#ifdef VMS + /* I really don't know if this is going to work on VMS. Someone + * who knows needs to take a look. - BJP + */ + StrAllocCopy(LYCookieFile, "sys$login:cookies"); +#else + StrAllocCopy(LYCookieFile, Home_Dir()); + StrAllocCat(LYCookieFile, "/cookies"); +#endif /* VMS */ + } else { + if ((cp = strchr(LYCookieFile, '~'))) { + temp = NULL; + *(cp++) = '\0'; + StrAllocCopy(temp, cp); + LYTrimPathSep(temp); +#ifdef DOSPATH + StrAllocCopy(LYCookieFile, HTDOS_wwwName((char *)Home_Dir())); +#else +#ifdef VMS + StrAllocCopy(LYCookieFile, HTVMS_wwwName((char *)Home_Dir())); +#else + StrAllocCopy(LYCookieFile, Home_Dir()); +#endif /* VMS */ +#endif /* DOSPATH */ + + StrAllocCat(LYCookieFile, temp); + FREE(temp); + } + } + LYLoadCookies(LYCookieFile); #endif /* @@ -1654,14 +1662,9 @@ PUBLIC int main ARGS2( * Set up our help and about file base paths. - FM */ StrAllocCopy(helpfilepath, helpfile); - if ((cp=strrchr(helpfilepath, '/')) != NULL) - *cp = '\0'; - /* - * Remove code to merge the historical about_lynx - * directory into lynx_help. - HN - */ - StrAllocCat(helpfilepath, "/"); - + if ((cp = LYPathLeaf(helpfilepath)) != helpfilepath) + *cp = '\0'; + LYAddPathSep(&helpfilepath); /* * Make sure our bookmark default strings @@ -1695,7 +1698,7 @@ PUBLIC int main ARGS2( keypad_mode = LINKS_ARE_NUMBERED; } } - if (display != NULL && *display != '\0') { + if (x_display != NULL && *x_display != '\0') { LYisConfiguredForX = TRUE; } if (dump_output_width > 0) { @@ -1723,7 +1726,7 @@ PUBLIC int main ARGS2( * INTERACTIVE session. - FM */ if (setup(terminal)) { - if (display != NULL && *display != '\0') { + if (x_display != NULL && *x_display != '\0') { LYisConfiguredForX = TRUE; } ena_csi((LYlowest_eightbit[current_char_set] > 155)); @@ -1888,7 +1891,7 @@ static int assume_charset_fun ARGS3( char *, next_arg) { if (next_arg == 0) { - UCLYhndl_for_unspec = 0; + UCLYhndl_for_unspec = UCGetLYhndl_byMIME("iso-8859-1"); } else { LYLowerCase(next_arg); StrAllocCopy(UCAssume_MIMEcharset, next_arg); @@ -1905,7 +1908,7 @@ static int assume_local_charset_fun ARGS3( char *, next_arg) { if (next_arg == 0) { - UCLYhndl_HTFile_for_unspec = 0; + UCLYhndl_HTFile_for_unspec = UCGetLYhndl_byMIME("iso-8859-1"); } else { LYLowerCase(next_arg); StrAllocCopy(UCAssume_localMIMEcharset, next_arg); @@ -1923,7 +1926,7 @@ static int assume_unrec_charset_fun ARGS3( char *, next_arg) { if (next_arg == 0) { - UCLYhndl_for_unrec = 0; + UCLYhndl_for_unrec = UCGetLYhndl_byMIME("iso-8859-1"); } else { LYLowerCase(next_arg); StrAllocCopy(UCAssume_unrecMIMEcharset, next_arg); @@ -2037,19 +2040,9 @@ static int display_fun ARGS3( char *, next_arg) { if (next_arg != 0) { -#ifdef VMS - LYUpperCase(next_arg); - Define_VMSLogical(DISPLAY, next_arg); -#else - static char display_putenv_command[142]; - - sprintf(display_putenv_command, "DISPLAY=%s", next_arg); - putenv(display_putenv_command); -#endif /* VMS */ - - if ((0 != (next_arg = getenv(DISPLAY))) - && (*next_arg != '\0')) - StrAllocCopy(display, next_arg); + LYsetXDisplay(next_arg); + if ((next_arg = LYgetXDisplay()) != 0) + StrAllocCopy(x_display, next_arg); } return 0; @@ -2096,9 +2089,9 @@ static int error_file_fun ARGS3( #if defined(EXEC_LINKS) || defined(EXEC_SCRIPTS) /* -exec */ static int exec_fun ARGS3( - Parse_Args_Type*, p, - char **, argv, - char *, next_arg) + Parse_Args_Type*, p GCC_UNUSED, + char **, argv GCC_UNUSED, + char *, next_arg GCC_UNUSED) { #ifndef NEVER_ALLOW_REMOTE_EXEC local_exec = TRUE; @@ -2538,6 +2531,7 @@ static int width_fun ARGS3( return 0; } +/* NOTE: This table is sorted by name; the lookup relies on that. */ static Parse_Args_Type Arg_Table [] = { PARSE_SET( @@ -2608,6 +2602,12 @@ static Parse_Args_Type Arg_Table [] = "cookies", TOGGLE_ARG, &LYSetCookies, "toggles handling of Set-Cookie headers" ), +#ifdef EXP_PERSISTENT_COOKIES + PARSE_STR( + "cookie_file", LYSTRING_ARG, &LYCookieFile, + "=FILENAME\nspecifies a file to use to store cookies" + ), +#endif /* EXP_PERSISTENT_COOKIES */ #ifndef VMS PARSE_SET( "core", TOGGLE_ARG, &LYNoCore, @@ -2619,6 +2619,12 @@ static Parse_Args_Type Arg_Table [] = "with -traversal, output each page to a file\n\ with -dump, format output as with -traversal, but to stdout" ), +#ifdef DISP_PARTIAL + PARSE_SET( + "debug_partial", TOGGLE_ARG, &debug_display_partial, + "incremental display stages with MessageSecs delay" + ), +#endif PARSE_FUN( "display", NEED_FUNCTION_ARG, display_fun, "=DISPLAY\nset the display variable for X exec'ed programs" diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c index 2f8d856b..a65bee19 100644 --- a/src/LYMainLoop.c +++ b/src/LYMainLoop.c @@ -27,7 +27,6 @@ #include <LYEdit.h> #include <LYShowInfo.h> #include <LYBookmark.h> -#include <LYSystem.h> #include <LYKeymap.h> #include <LYJump.h> #include <LYDownload.h> @@ -90,7 +89,6 @@ PUBLIC char * LYRequestTitle = NULL; /* newdoc.title in calls to getfile() */ #ifdef DISP_PARTIAL PUBLIC int Newline_partial = 0; /* required for display_partial mode */ PUBLIC int NumOfLines_partial = -1; /* required for display_partial mode */ -PUBLIC BOOLEAN debug_display_partial; /* show with MessageSecs delay */ #endif PRIVATE document newdoc; @@ -1159,9 +1157,7 @@ try_again: FREE(temp); if (!(temp = HTParse(curdoc.address, "", PARSE_PATH+PARSE_PUNCTUATION))) { - if (startrealm[strlen(startrealm)-1] != '/') { - StrAllocCat(startrealm, "/"); - } + LYAddHtmlSep(&startrealm); } else { if (forced_HTML_mode && !dump_output_immediately && @@ -1219,9 +1215,7 @@ try_again: StrAllocCopy(traversal_host, "None"); } else { StrAllocCopy(traversal_host, temp); - if (traversal_host[strlen(traversal_host)-1] != '/') { - StrAllocCat(traversal_host, "/"); - } + LYAddHtmlSep(&traversal_host); } FREE(temp); } @@ -4548,8 +4542,7 @@ check_goto_URL: * We're viewing a local directory. Make * that the CSwing argument. - FM */ - if (cp[(strlen(cp) - 1)] != '/') - StrAllocCat(cp, "/"); + LYAddPathSep(&cp); StrAllocCopy(VMSdir, HTVMS_name("", cp)); FREE(cp); } else { @@ -4603,7 +4596,7 @@ check_goto_URL: refresh_screen = TRUE; /* redisplay */ } stop_curses(); - system(temp); + LYSystem(temp); start_curses(); FREE(temp); break; @@ -4840,37 +4833,7 @@ check_add_bookmark_to_self: if (!no_shell) { stop_curses(); printf(SPAWNING_MSG); - fflush(stdout); - fflush(stderr); -#ifdef DOSPATH -#ifdef __DJGPP__ - __djgpp_set_ctrl_c(0); - _go32_want_ctrl_break(1); -#endif /* __DJGPP__ */ - if (getenv("SHELL") != NULL) { - system(getenv("SHELL")); - } else { - system(getenv("COMSPEC") == NULL ? "command.com" : getenv("COMSPEC")); - } -#ifdef __DJGPP__ - __djgpp_set_ctrl_c(1); - _go32_want_ctrl_break(0); -#endif /* __DJGPP__ */ -#else -#ifdef __EMX__ - if (getenv("SHELL") != NULL) { - system(getenv("SHELL")); - } else { - system(getenv("COMSPEC") == NULL ? "cmd.exe" : getenv("COMSPEC")); - } -#else -#ifdef VMS - system(""); -#else - system("exec $SHELL"); -#endif /* __EMX__ */ -#endif /* VMS */ -#endif /* DOSPATH */ + LYSystem(LYSysShell()); start_curses(); refresh_screen = TRUE; /* for an HText_pageDisplay() */ } else { diff --git a/src/LYNews.c b/src/LYNews.c index b04e7a96..97e93e24 100644 --- a/src/LYNews.c +++ b/src/LYNews.c @@ -11,7 +11,6 @@ #include <LYStrings.h> #include <LYGetFile.h> #include <LYHistory.h> -#include <LYSystem.h> #include <GridText.h> #include <LYCharSets.h> #include <LYNews.h> @@ -240,7 +239,7 @@ PUBLIC char *LYNewsPost ARGS2( sprintf(user_input,"%s%s %s", editor, editor_arg, my_tempfile); _statusline(SPAWNING_EDITOR_FOR_NEWS); stop_curses(); - if (system(user_input)) { + if (LYSystem(user_input)) { start_curses(); HTAlert(ERROR_SPAWNING_EDITOR); } else { diff --git a/src/LYOptions.c b/src/LYOptions.c index cf1c3293..41017171 100644 --- a/src/LYOptions.c +++ b/src/LYOptions.c @@ -22,12 +22,6 @@ #include <LYLeaks.h> -#ifdef VMS -#define DISPLAY "DECW$DISPLAY" -#else -#define DISPLAY "DISPLAY" -#endif /* VMS */ - BOOLEAN term_options; PRIVATE void terminate_options PARAMS((int sig)); @@ -74,9 +68,6 @@ PUBLIC void LYoptions NOARGS * If the user changes the display we need memory to put it in. */ char display_option[256]; -#ifndef VMS - static char putenv_command[142]; -#endif /* !VMS */ char *choices[MAXCHOICES]; int CurrentCharSet = current_char_set; int CurrentAssumeCharSet = UCLYhndl_for_unspec; @@ -189,7 +180,7 @@ draw_options: move(L_DISPLAY, 5); addstr("D)ISPLAY variable : "); - addstr((display && *display) ? display : "NONE"); + addstr((x_display && *x_display) ? x_display : "NONE"); move(L_HOME, 5); addstr("mu(L)ti-bookmarks: "); @@ -430,8 +421,8 @@ draw_options: case 'd': /* Change the display. */ case 'D': - if (display && *display) { - strcpy(display_option, display); + if (x_display && *x_display) { + strcpy(display_option, x_display); } else { /* clear the NONE */ move(L_DISPLAY, COL_OPTION_VALUES); addstr(" "); @@ -445,18 +436,18 @@ draw_options: stop_bold(); move(L_DISPLAY, COL_OPTION_VALUES); if ((term_options || ch == -1) || - (display != NULL && + (x_display != NULL && #ifdef VMS - !strcasecomp(display, display_option))) + !strcasecomp(x_display, display_option))) #else - !strcmp(display, display_option))) + !strcmp(x_display, display_option))) #endif /* VMS */ { /* * Cancelled, or a non-NULL display string * wasn't changed. - FM */ - addstr((display && *display) ? display : "NONE"); + addstr((x_display && *x_display) ? x_display : "NONE"); clrtoeol(); if (ch == -1) { HTInfoMsg(CANCELLED); @@ -467,8 +458,8 @@ draw_options: response = ' '; break; } else if (*display_option == '\0') { - if ((display == NULL) || - (display != NULL && *display == '\0')) { + if ((x_display == NULL) || + (x_display != NULL && *x_display == '\0')) { /* * NULL or zero-length display string * wasn't changed. - FM @@ -483,28 +474,22 @@ draw_options: /* * Set the new DISPLAY variable. - FM */ -#ifdef VMS - LYUpperCase(display_option); - Define_VMSLogical(DISPLAY, display_option); -#else - sprintf(putenv_command, "DISPLAY=%s", display_option); - putenv(putenv_command); -#endif /* VMS */ - if ((cp = getenv(DISPLAY)) != NULL && *cp != '\0') { - StrAllocCopy(display, cp); + LYsetXDisplay(display_option); + if ((cp = LYgetXDisplay()) != NULL) { + StrAllocCopy(x_display, cp); } else { - FREE(display); + FREE(x_display); } cp = NULL; - addstr(display ? display : "NONE"); + addstr(x_display ? x_display : "NONE"); clrtoeol(); - if ((display == NULL && *display_option == '\0') || - (display != NULL && - !strcmp(display, display_option))) { - if (display == NULL && + if ((x_display == NULL && *display_option == '\0') || + (x_display != NULL && + !strcmp(x_display, display_option))) { + if (x_display == NULL && LYisConfiguredForX == TRUE) { _statusline(VALUE_ACCEPTED_WARNING_X); - } else if (display != NULL && + } else if (x_display != NULL && LYisConfiguredForX == FALSE) { _statusline(VALUE_ACCEPTED_WARNING_NONX); } else { @@ -786,8 +771,8 @@ draw_options: } /* - * Set the raw 8-bit or CJK mode defaults and - * character set if changed. - FM + * Set the raw 8-bit or CJK mode defaults and + * character set if changed. - FM */ if (CurrentAssumeCharSet != UCLYhndl_for_unspec || UCLYhndl_for_unspec != curval) { @@ -3110,106 +3095,116 @@ typedef struct { static CONST char selected_string[] = "selected"; static CONST char disabled_string[] = "disabled"; -static CONST char on_string[] = "ON"; -static CONST char off_string[] = "OFF"; +static CONST char on_string[] = "ON"; +static CONST char off_string[] = "OFF"; static CONST char never_string[] = "NEVER"; static CONST char always_string[] = "ALWAYS"; - -static char * secure_string = "secure"; -static char * secure_value = NULL; - -static char * editor_string = "editor"; - -static char * display_string = "display"; - -static char * mbm_string = "multi_bookmarks_mode"; -static char * mbm_off_string = "OFF"; -static char * mbm_standard_string = "STANDARD"; -static char * mbm_advanced_string = "ADVANCED"; -static char * single_bookmark_string = "single_bookmark_name"; - -static char * mail_address_string = "mail_address"; - -static char * save_options_string = "save_options"; - -static char * preferred_doc_lang_string = "preferred_doc_lang"; - -static char * preferred_doc_char_string = "preferred_doc_char"; - -static char * assume_char_set_string = "assume_char_set"; - -static char * display_char_set_string = "display_char_set"; - -static char * raw_mode_string = "raw_mode"; - -static char * show_color_string = "show_color"; - -static char * verbose_images_string = "verbose_images"; - -static char * vi_keys_string = "vi_keys"; - -static char * emacs_keys_string = "emacs_keys"; - -static char * show_dotfiles_string = "show_dotfiles"; - -static char * select_popups_string = "select_popups"; - -static char * show_cursor_string = "show_cursor"; - -static char * user_agent_string = "user_agent"; - static OptValues bool_values[] = { - { FALSE, "OFF", "OFF" }, - { TRUE, "ON", "ON" }, + { FALSE, "OFF", "OFF" }, + { TRUE, "ON", "ON" }, { 0, 0, 0 }}; -#ifdef DIRED_SUPPORT -static OptValues dired_values[] = { - { 0, "Directories first", "dired_dir" }, - { FILES_FIRST, "Files first", "dired_files" }, - { MIXED_STYLE, "Mixed style", "dired_mixed" }, - { 0, 0, 0 }}; -static char * dired_sort_string = "dired_sort"; -#endif /* DIRED_SUPPORT */ +static char * secure_string = "secure"; +static char * secure_value = NULL; +static char * save_options_string = "save_options"; -static OptValues ftp_sort_values[] = { - { FILE_BY_NAME, "By Name", "ftp_by_name" }, - { FILE_BY_TYPE, "By Type", "ftp_by_type" }, - { FILE_BY_SIZE, "By Size", "ftp_by_size" }, - { FILE_BY_DATE, "By Date", "ftp_by_date" }, +/* + * Personal Preferences + */ +static char * cookies_string = "cookies"; +static char * cookies_ignore_all_string = "ignore"; +static char * cookies_up_to_user_string = "ask user"; +static char * cookies_accept_all_string = "accept all"; +static char * display_string = "display"; +static char * editor_string = "editor"; +static char * emacs_keys_string = "emacs_keys"; +#ifdef ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS +#define EXEC_ALWAYS 2 +#define EXEC_LOCAL 1 +#define EXEC_NEVER 0 +static char * exec_links_string = "exec_options"; +static OptValues exec_links_values[] = { + { EXEC_NEVER, "ALWAYS OFF", "ALWAYS OFF" }, + { EXEC_LOCAL, "FOR LOCAL FILES ONLY", "FOR LOCAL FILES ONLY" }, +#ifndef NEVER_ALLOW_REMOTE_EXEC + { EXEC_ALWAYS, "ALWAYS ON", "ALWAYS ON" }, +#endif { 0, 0, 0 }}; -static char * ftp_sort_string = "ftp_sort"; - -static OptValues keypad_mode_values[] = { - { NUMBERS_AS_ARROWS, "Numbers act as arrows", "number_arrows" }, - { LINKS_ARE_NUMBERED, - "Links are numbered", - "links_numbered" }, +#endif /* ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS */ +static char * keypad_mode_string = "keypad_mode"; +static OptValues keypad_mode_values[] = { + { NUMBERS_AS_ARROWS, "Numbers act as arrows", "number_arrows" }, + { LINKS_ARE_NUMBERED, "Links are numbered", "links_numbered" }, { LINKS_AND_FORM_FIELDS_ARE_NUMBERED, - "Links and form fields are numbered", - "links_and_forms" }, + "Links and form fields are numbered", + "links_and_forms" }, { 0, 0, 0 }}; -static char * keypad_mode_string = "keypad_mode"; - +static char * mail_address_string = "mail_address"; +static char * search_type_string = "search_type"; static OptValues search_type_values[] = { - { FALSE, "Case insensitive", "case_insensitive" }, - { TRUE, "Case sensitive", "case_sensitive" }, + { FALSE, "Case insensitive", "case_insensitive" }, + { TRUE, "Case sensitive", "case_sensitive" }, { 0, 0, 0 }}; -static char * search_type_string = "search_type"; - +static char * select_popups_string = "select_popups"; +static char * show_color_string = "show_color"; static OptValues show_color_values[] = { - { SHOW_COLOR_NEVER, never_string, never_string }, - { SHOW_COLOR_OFF, off_string, off_string }, - { SHOW_COLOR_ON, on_string, on_string }, - { SHOW_COLOR_ALWAYS, always_string, always_string }, + { SHOW_COLOR_NEVER, never_string, never_string }, + { SHOW_COLOR_OFF, off_string, off_string }, + { SHOW_COLOR_ON, on_string, on_string }, + { SHOW_COLOR_ALWAYS, always_string, always_string }, { 0, 0, 0 }}; - +static char * show_cursor_string = "show_cursor"; +static char * user_mode_string = "user_mode"; static OptValues user_mode_values[] = { - { NOVICE_MODE, "Novice", "Novice" }, - { INTERMEDIATE_MODE, "Intermediate", "Intermediate" }, - { ADVANCED_MODE, "Advanced", "Advanced" }, + { NOVICE_MODE, "Novice", "Novice" }, + { INTERMEDIATE_MODE, "Intermediate", "Intermediate" }, + { ADVANCED_MODE, "Advanced", "Advanced" }, { 0, 0, 0 }}; -static char * user_mode_string = "user_mode"; +static char * verbose_images_string = "verbose_images"; +static char * vi_keys_string = "vi_keys"; + +/* + * Bookmark Options + */ +static char * mbm_advanced_string = "ADVANCED"; +static char * mbm_off_string = "OFF"; +static char * mbm_standard_string = "STANDARD"; +static char * mbm_string = "multi_bookmarks_mode"; +static char * single_bookmark_string = "single_bookmark_name"; + +/* + * Character Set Options + */ +static char * assume_char_set_string = "assume_char_set"; +static char * display_char_set_string = "display_char_set"; +static char * raw_mode_string = "raw_mode"; + +/* + * File Management Options + */ +static char * show_dotfiles_string = "show_dotfiles"; +#ifdef DIRED_SUPPORT +static char * dired_sort_string = "dired_sort"; +static OptValues dired_values[] = { + { 0, "Directories first", "dired_dir" }, + { FILES_FIRST, "Files first", "dired_files" }, + { MIXED_STYLE, "Mixed style", "dired_mixed" }, + { 0, 0, 0 }}; +#endif /* DIRED_SUPPORT */ +static char * ftp_sort_string = "ftp_sort"; +static OptValues ftp_sort_values[] = { + { FILE_BY_NAME, "By Name", "ftp_by_name" }, + { FILE_BY_TYPE, "By Type", "ftp_by_type" }, + { FILE_BY_SIZE, "By Size", "ftp_by_size" }, + { FILE_BY_DATE, "By Date", "ftp_by_date" }, + { 0, 0, 0 }}; + +/* + * Headers transferred to remote server + */ +static char * preferred_doc_char_string = "preferred_doc_char"; +static char * preferred_doc_lang_string = "preferred_doc_lang"; +static char * user_agent_string = "user_agent"; #define PutLabel(fp, text) \ fprintf(fp,"%-35s: ", text) @@ -3232,7 +3227,7 @@ static char * user_mode_string = "user_mode"; fprintf(fp,"</select>\n") PRIVATE void PutOptValues ARGS3( - FILE *, fp, + FILE *, fp, int, value, OptValues *, table) { @@ -3247,7 +3242,7 @@ PRIVATE void PutOptValues ARGS3( PRIVATE int GetOptValues ARGS2( OptValues *, table, - char *, value) + char *, value) { while (table->LongName != 0) { if (!strcmp(value, table->HtmlName)) @@ -3295,6 +3290,33 @@ PRIVATE PostPair * break_data ARGS1( * Clean them up a bit, in case user entered a funky string. */ HTUnEscape(q[count].tag); + + /* In the value field we have '+' instead of ' '. So do a simple + * find&replace on the value field before UnEscaping() - SKY + */ + { + size_t i, len; + len = strlen(q[count].value); + for (i = 0; i < len; i++) { + if (q[count].value[i] == '+') { +#ifdef UNIX + /* + * Allow for special case of options which begin with a "+" on + * Unix - TD + */ + if (i > 0 + && q[count].value[i+1] == '+' + && isalnum(q[count].value[i+2])) { + q[count].value[i++] = ' '; + i++; + continue; + } + +#endif + q[count].value[i] = ' '; + } + } + } HTUnEscape(q[count].value); count++; @@ -3322,13 +3344,18 @@ PRIVATE PostPair * break_data ARGS1( * initial rendering stages and can be changed only after reloading :-( * So we introduce boolean flag 'need_reload' (currently dummy). * - * Options processed in order according to gen_options(), - * to avoid possible dependencies we add boolean flags - * where the order is essential (save, character sets...) + * Options are processed in order according to gen_options(), we should not + * depend on it and add boolean flags where the order is essential (save, + * character sets...) + * + * Security: some options are disabled in gen_options() under certain + * conditions. We *should* duplicate the same conditions here in postoptions() + * to prevent user with a limited access from editing HTML options code + * manually and submit it to access the restricted items. - LP */ PUBLIC int postoptions ARGS1( - document *, newdoc) + document *, newdoc) { PostPair *data = 0; int i; @@ -3338,6 +3365,7 @@ PUBLIC int postoptions ARGS1( BOOLEAN assume_char_set_changed = FALSE; BOOLEAN need_reload = FALSE; char *link_info = NULL; + int CurrentShowColor = LYShowColor; /*------------------------------------------------- * kludge a link from mbm_menu, the URL was: @@ -3369,142 +3397,107 @@ PUBLIC int postoptions ARGS1( FREE(secure_value); } - /* - * editor - */ - if (!strcmp(data[i].tag, editor_string)) { - FREE(editor); - StrAllocCopy(editor, data[i].value); + /* Save options */ + if (!strcmp(data[i].tag, save_options_string) && (!no_option_save)) { + save_all = TRUE; } - /* - * display - */ + /* Cookies: SELECT */ + if (!strcmp(data[i].tag, cookies_string)) { + if (!strcmp(data[i].value, cookies_ignore_all_string)) { + LYSetCookies = FALSE; + } else if (!strcmp(data[i].value, cookies_up_to_user_string)) { + LYSetCookies = TRUE; + LYAcceptAllCookies = FALSE; + } else if (!strcmp(data[i].value, cookies_accept_all_string)) { + LYSetCookies = TRUE; + LYAcceptAllCookies = TRUE; + } + } + + /* Display: INPUT */ if (!strcmp(data[i].tag, display_string)) { - FREE(display); - StrAllocCopy(display, data[i].value); + LYsetXDisplay(data[i].value); } - /* - * multi-bookmarks mode - */ - if (!strcmp(data[i].tag, mbm_string)) { - if (!strcmp(data[i].value, mbm_off_string)) { - LYMultiBookmarks = FALSE; - } else if (!strcmp(data[i].value, mbm_standard_string)) { - LYMultiBookmarks = TRUE; - LYMBMAdvanced = FALSE; - } else if (!strcmp(data[i].value, mbm_advanced_string)) { - LYMultiBookmarks = TRUE; - LYMBMAdvanced = TRUE; - } + /* Editor: INPUT */ + if (!strcmp(data[i].tag, editor_string)) { + FREE(editor); + StrAllocCopy(editor, data[i].value); } - /* - * single bookmarks file name - */ - if (!strcmp(data[i].tag, single_bookmark_string)) { - if (strcmp(data[i].value, "")) { - FREE(bookmark_page); - StrAllocCopy(bookmark_page, data[i].value); + /* Emacs keys: ON/OFF */ + if (!strcmp(data[i].tag, emacs_keys_string)) { + if ((emacs_keys = GetOptValues(bool_values, data[i].value))) { + set_emacs_keys(); + } else { + reset_emacs_keys(); } } - /* - * ftp sort - */ - if (!strcmp(data[i].tag, ftp_sort_string)) { - HTfileSortMethod = GetOptValues(ftp_sort_values, data[i].value); + /* Execution links: SELECT */ +#ifdef ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS + if (!strcmp(data[i].tag, exec_links_string)) { + int code = GetOptValues(exec_links_values, data[i].value); +#ifndef NEVER_ALLOW_REMOTE_EXEC + local_exec = (code == EXEC_ALWAYS); +#endif /* !NEVER_ALLOW_REMOTE_EXEC */ + local_exec_on_local_files = (code == EXEC_LOCAL); } +#endif /* ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS */ - /* - * mail_address - */ + /* Keypad Mode: SELECT */ + if (!strcmp(data[i].tag, keypad_mode_string)) { + keypad_mode = GetOptValues(keypad_mode_values, data[i].value); + } + + /* Mail Address: INPUT */ if (!strcmp(data[i].tag, mail_address_string)) { FREE(personal_mail_address); StrAllocCopy(personal_mail_address, data[i].value); } - /* - * search_type - */ + /* Search Type: SELECT */ if (!strcmp(data[i].tag, search_type_string)) { case_sensitive = GetOptValues(search_type_values, data[i].value); } - /* - * preferred_doc_lang - */ - if (!strcmp(data[i].tag, preferred_doc_lang_string)) { - FREE(language); - StrAllocCopy(language, data[i].value); - } - - /* - * preferred_doc_char - */ - if (!strcmp(data[i].tag, preferred_doc_char_string)) { - FREE(pref_charset); - StrAllocCopy(pref_charset, data[i].value); - } - - /* - * display_char_set - */ - if (!strcmp(data[i].tag, display_char_set_string)) { - int newval; - - newval = atoi(data[i].value); - if (newval != current_char_set) { - current_char_set = newval; - display_char_set_changed = TRUE; - } + /* Select Popups: ON/OFF */ + if (!strcmp(data[i].tag, select_popups_string)) { + LYSelectPopups = GetOptValues(bool_values, data[i].value); } - /* - * raw_mode - */ - if (!strcmp(data[i].tag, raw_mode_string)) { - BOOLEAN newmode = GetOptValues(bool_values, data[i].value); - - if (newmode != LYRawMode) { - LYRawMode = newmode; - raw_mode_changed = TRUE; +#if defined(USE_SLANG) || defined(COLOR_CURSES) + /* Show Color: SELECT */ + if (!strcmp(data[i].tag, show_color_string)) { + LYShowColor = GetOptValues(show_color_values, data[i].value); + LYChosenShowColor = LYShowColor; + if (CurrentShowColor != LYShowColor) { + lynx_force_repaint(); } + CurrentShowColor = LYShowColor; +#ifdef USE_SLANG + SLtt_Use_Ansi_Colors = (LYShowColor > 1 ? 1 : 0); +#endif } +#endif /* USE_SLANG || COLOR_CURSES */ - /* - * assume_char_set - */ - if (!strcmp(data[i].tag, assume_char_set_string)) { - int newval; - - newval = UCGetLYhndl_byMIME(data[i].value); - if (newval != UCLYhndl_for_unspec) { - UCLYhndl_for_unspec = newval; - StrAllocCopy(UCAssume_MIMEcharset, data[i].value); - assume_char_set_changed = TRUE; - } + /* Show Cursor: ON/OFF */ + if (!strcmp(data[i].tag, show_cursor_string)) { + LYShowCursor = GetOptValues(bool_values, data[i].value); } - /* - * show_color - */ - if (!strcmp(data[i].tag, show_color_string)) { - LYShowColor = GetOptValues(show_color_values, data[i].value); - LYChosenShowColor = LYShowColor; + /* User Mode: Default: */ + if (!strcmp(data[i].tag, user_mode_string)) { + user_mode = GetOptValues(user_mode_values, data[i].value); } - /* - * verbose images mode - */ + /* Verbose Images: ON/OFF */ if (!strcmp(data[i].tag, verbose_images_string)) { verbose_img = GetOptValues(bool_values, data[i].value); } - /* - * vi_keys - */ + /* VI Keys: ON/OFF */ if (!strcmp(data[i].tag, vi_keys_string)) { if ((vi_keys = GetOptValues(bool_values, data[i].value))) { set_vi_keys(); @@ -3513,76 +3506,97 @@ PUBLIC int postoptions ARGS1( } } - /* - * emacs_keys - */ - if (!strcmp(data[i].tag, emacs_keys_string)) { - if ((emacs_keys = GetOptValues(bool_values, data[i].value))) { - set_emacs_keys(); - } else { - reset_emacs_keys(); + /* Bookmarks File Menu: SELECT */ + if (!strcmp(data[i].tag, mbm_string) && (!LYMBMBlocked)) { + if (!strcmp(data[i].value, mbm_off_string)) { + LYMultiBookmarks = FALSE; + } else if (!strcmp(data[i].value, mbm_standard_string)) { + LYMultiBookmarks = TRUE; + LYMBMAdvanced = FALSE; + } else if (!strcmp(data[i].value, mbm_advanced_string)) { + LYMultiBookmarks = TRUE; + LYMBMAdvanced = TRUE; } } - /* - * show_dotfiles - */ - if (!strcmp(data[i].tag, show_dotfiles_string)) { - show_dotfiles = GetOptValues(bool_values, data[i].value); + /* Single Bookmarks filename: INPUT */ + if (!strcmp(data[i].tag, single_bookmark_string)) { + if (strcmp(data[i].value, "")) { + FREE(bookmark_page); + StrAllocCopy(bookmark_page, data[i].value); + } } - /* - * select_popups - */ - if (!strcmp(data[i].tag, select_popups_string)) { - LYSelectPopups = GetOptValues(bool_values, data[i].value); + /* Assume Character Set: SELECT */ + if (!strcmp(data[i].tag, assume_char_set_string)) { + int newval; + + newval = UCGetLYhndl_byMIME(data[i].value); + if (newval != UCLYhndl_for_unspec) { + UCLYhndl_for_unspec = newval; + StrAllocCopy(UCAssume_MIMEcharset, data[i].value); + assume_char_set_changed = TRUE; + } } - /* - * show_cursor - */ - if (!strcmp(data[i].tag, show_cursor_string)) { - LYShowCursor = GetOptValues(bool_values, data[i].value); + /* Display Character Set: SELECT */ + if (!strcmp(data[i].tag, display_char_set_string)) { + int newval; + + newval = atoi(data[i].value); + if (newval != current_char_set) { + current_char_set = newval; + display_char_set_changed = TRUE; + } + } + + /* Raw Mode: ON/OFF */ + if (!strcmp(data[i].tag, raw_mode_string)) { + BOOLEAN newmode = GetOptValues(bool_values, data[i].value); + + if (newmode != LYRawMode) { + LYRawMode = newmode; + raw_mode_changed = TRUE; + } } /* - * keypad_mode + * ftp sort: SELECT */ - if (!strcmp(data[i].tag, keypad_mode_string)) { - keypad_mode = GetOptValues(keypad_mode_values, data[i].value); + if (!strcmp(data[i].tag, ftp_sort_string)) { + HTfileSortMethod = GetOptValues(ftp_sort_values, data[i].value); } #ifdef DIRED_SUPPORT - /* - * dired_sort - */ + /* Local Directory Sort: SELECT */ if (!strcmp(data[i].tag, dired_sort_string)) { dir_list_style = GetOptValues(dired_values, data[i].value); } #endif /* DIRED_SUPPORT */ - /* - * user_mode - */ - if (!strcmp(data[i].tag, user_mode_string)) { - user_mode = GetOptValues(user_mode_values, data[i].value); + /* Show dot files: ON/OFF */ + if (!strcmp(data[i].tag, show_dotfiles_string) && (!no_dotfiles)) { + show_dotfiles = GetOptValues(bool_values, data[i].value); } - /* - * user_agent header - */ - if (!strcmp(data[i].tag, user_agent_string)) { + /* Preferred Document Character Set: INPUT */ + if (!strcmp(data[i].tag, preferred_doc_char_string)) { + FREE(pref_charset); + StrAllocCopy(pref_charset, data[i].value); + } + + /* Preferred Document Language: INPUT */ + if (!strcmp(data[i].tag, preferred_doc_lang_string)) { + FREE(language); + StrAllocCopy(language, data[i].value); + } + + /* User Agent: INPUT */ + if (!strcmp(data[i].tag, user_agent_string) && (!no_useragent)) { FREE(LYUserAgent); /* ignore Copyright warning ? */ StrAllocCopy(LYUserAgent, data[i].value); } - - /* - * save_options - */ - if (!strcmp(data[i].tag, save_options_string)) { - save_all = TRUE; - } } /* end of loop */ /* @@ -3630,8 +3644,9 @@ PUBLIC int postoptions ARGS1( } } LYpop(newdoc); /* return to previous doc, not to options menu! */ + if (need_reload == TRUE) { - /* FIXME: currently dummy */ + /* FIXME: currently dummy */ } return(NULLFILE); } @@ -3643,6 +3658,9 @@ PUBLIC int postoptions ARGS1( * Basic Strategy: For each option, throw up the appropriate type of * control, giving defaults as appropriate. If nothing else, we're * probably going to test every control there is. MRC + * + * This function is synchronized with postoptions(). Read the comments in + * postoptions() header if you change something in gen_options(). */ PUBLIC int gen_options ARGS1( char **, newfile) @@ -3667,11 +3685,7 @@ PUBLIC int gen_options ARGS1( StrAllocCopy(*newfile, any_filename); LYforce_no_cache = TRUE; - fprintf(fp0, "<html>\n<head>\n<title>%s</title>\n</head>\n<body>\n", - OPTIONS_TITLE); - fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", - LYNX_NAME, LYNX_VERSION, - helpfilepath, OPTIONS_HELP, OPTIONS_TITLE); + BeginInternalPage(fp0, OPTIONS_TITLE, OPTIONS_HELP); /* * I do C, not HTML. Feel free to pretty this up. @@ -3691,20 +3705,18 @@ PUBLIC int gen_options ARGS1( * visible text begins here */ - /* - * save/reset - */ + /* Submit/Reset/Help */ fprintf(fp0,"<p align=center>\n"); - fprintf(fp0,"<input type=\"submit\" value=\"Accept Changes\">\n"); + fprintf(fp0,"<input type=\"submit\" value=\"Accept Changes\"> - \n"); fprintf(fp0,"<input type=\"reset\" value=\"Reset Changes\">\n"); - fprintf(fp0,"Left Arrow cancels changes<br>\n"); + fprintf(fp0,"Left Arrow cancels changes\n"); + fprintf(fp0, "<a href=\"%s%s\">HELP!</a>\n", + helpfilepath, OPTIONS_HELP); - /* - * save options - */ + /* Save options */ if (!no_option_save) { - fprintf(fp0, "<p>Save options to disk: "); - fprintf(fp0,"<input type=\"checkbox\" name=\"%s\">\n", + fprintf(fp0, "<p align=center>Save options to disk: "); + fprintf(fp0, "<input type=\"checkbox\" name=\"%s\">\n", save_options_string); } @@ -3714,82 +3726,86 @@ PUBLIC int gen_options ARGS1( fprintf(fp0,"<pre>\n"); fprintf(fp0,"\n<em>Personal Preferences</em>\n"); - /* - * user_mode - * - * This option is here because we come from LYMainLoop() with - * newdoc.links = 3, and land on 'save options', however if - * no_option_save is set we will land on 'Display' which is an input - * field and leaving back to previous document will be annoying. - * Thus 'user mode' is the most sensible option to put into the - * front lines. - SKY - */ - PutLabel(fp0, "User Mode"); - BeginSelect(fp0, user_mode_string); - PutOptValues(fp0, user_mode, user_mode_values); + /* Cookies: SELECT */ + PutLabel(fp0, "Cookies"); + BeginSelect(fp0, cookies_string); + PutOption(fp0, !LYSetCookies, + cookies_ignore_all_string, + cookies_ignore_all_string); + PutOption(fp0, LYSetCookies && !LYAcceptAllCookies, + cookies_up_to_user_string, + cookies_up_to_user_string); + PutOption(fp0, LYSetCookies && LYAcceptAllCookies, + cookies_accept_all_string, + cookies_accept_all_string); EndSelect(fp0); - /* - * display - */ + /* Display: Input */ PutLabel(fp0, "Display"); - PutTextInput(fp0, display_string, NOTEMPTY(display), text_len, ""); + PutTextInput(fp0, display_string, NOTEMPTY(x_display), text_len, ""); - /* - * editor - */ + /* Editor: Input */ PutLabel(fp0, "Editor"); PutTextInput(fp0, editor_string, NOTEMPTY(editor), text_len, DISABLED(no_editor || system_editor)); - /* - * emacs_keys - */ - PutLabel(fp0, "Emacs Keys"); + + /* Emacs keys: ON/OFF */ + PutLabel(fp0, "Emacs keys"); BeginSelect(fp0, emacs_keys_string); PutOptValues(fp0, emacs_keys, bool_values); EndSelect(fp0); - /* - * keypad_mode - */ - PutLabel(fp0, "Keypad Mode"); - BeginSelect(fp0, keypad_mode_string); - PutOptValues(fp0, keypad_mode, keypad_mode_values); + /* Execution links: SELECT */ +#ifdef ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS + PutLabel(fp0, "Execution links"); + BeginSelect(fp0, exec_links_string); +#ifndef NEVER_ALLOW_REMOTE_EXEC + PutOptValues(fp0, local_exec + ? EXEC_ALWAYS + : (local_exec_on_local_files + ? EXEC_LOCAL + : EXEC_NEVER), + exec_links_values); +#else + PutOptValues(fp0, local_exec_on_local_files + ? EXEC_LOCAL + : EXEC_NEVER, + exec_links_values); +#endif /* !NEVER_ALLOW_REMOTE_EXEC */ EndSelect(fp0); +#endif /* ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS */ - /* - * search_type - */ - PutLabel(fp0, "Searching type"); - BeginSelect(fp0, search_type_string); - PutOptValues(fp0, case_sensitive, search_type_values); + /* Keypad Mode: SELECT */ + PutLabel(fp0, "Keypad mode"); + BeginSelect(fp0, keypad_mode_string); + PutOptValues(fp0, keypad_mode, keypad_mode_values); EndSelect(fp0); - /* - * mail_address - */ + /* Mail Address: INPUT */ PutLabel(fp0, "Personal mail address"); PutTextInput(fp0, mail_address_string, NOTEMPTY(personal_mail_address), text_len, ""); - /* - * select_popups - */ + /* Select Popups: ON/OFF */ PutLabel(fp0, "Popups for select fields"); BeginSelect(fp0, select_popups_string); PutOptValues(fp0, LYSelectPopups, bool_values); EndSelect(fp0); - /* - * show_color - */ + /* Search Type: SELECT */ + PutLabel(fp0, "Searching type"); + BeginSelect(fp0, search_type_string); + PutOptValues(fp0, case_sensitive, search_type_values); + EndSelect(fp0); + + /* Show Color: SELECT */ #if defined(USE_SLANG) || defined(COLOR_CURSES) can_do_colors = 1; #if defined(COLOR_CURSES) can_do_colors = has_colors(); #endif - PutLabel(fp0, "Show Color"); - MaybeSelect(fp0, DISABLED(!can_do_colors), show_color_string); + PutLabel(fp0, "Show color"); + MaybeSelect(fp0, !can_do_colors, show_color_string); if (no_option_save) { if (LYShowColor == SHOW_COLOR_NEVER) { LYShowColor = SHOW_COLOR_OFF; @@ -3819,41 +3835,44 @@ PUBLIC int gen_options ARGS1( SHOW_COLOR_ON : SHOW_COLOR_OFF; } } - show_color_values[3].LongName = (can_do_colors)?always_string:"Always try"; + show_color_values[3].LongName = (can_do_colors) ? always_string + : "Always try"; PutOptValues(fp0, LYChosenShowColor, show_color_values); } EndSelect(fp0); #endif /* USE_SLANG || COLOR_CURSES */ - /* - * verbose images mode - */ - PutLabel(fp0, "Verbose images"); - BeginSelect(fp0, verbose_images_string); - PutOptValues(fp0, verbose_img, bool_values); - EndSelect(fp0); - - /* - * show_cursor - */ + /* Show cursor: ON/OFF */ PutLabel(fp0, "Show cursor"); BeginSelect(fp0, show_cursor_string); PutOptValues(fp0, LYShowCursor, bool_values); EndSelect(fp0); - /* - * vi_keys - */ - PutLabel(fp0, "VI Keys"); + /* User Mode: Default: */ + PutLabel(fp0, "User mode"); + BeginSelect(fp0, user_mode_string); + PutOptValues(fp0, user_mode, user_mode_values); + EndSelect(fp0); + + /* Verbose Images: ON/OFF */ + PutLabel(fp0, "Verbose images"); + BeginSelect(fp0, verbose_images_string); + PutOptValues(fp0, verbose_img, bool_values); + EndSelect(fp0); + + /* VI Keys: ON/OFF */ + PutLabel(fp0, "VI keys"); BeginSelect(fp0, vi_keys_string); PutOptValues(fp0, vi_keys, bool_values); EndSelect(fp0); - fprintf(fp0,"\n<em>Bookmarks Options</em>\n"); /* - * multi-bookmarks mode + * Bookmark Options */ + fprintf(fp0,"\n<em>Bookmark Options</em>\n"); + + /* Multi-Bookmark Mode: SELECT */ if (!LYMBMBlocked) { PutLabel(fp0, "Multi-bookmarks"); BeginSelect(fp0, mbm_string); @@ -3869,35 +3888,35 @@ PUBLIC int gen_options ARGS1( EndSelect(fp0); } - /* - * bookmarks files menu - */ + /* Bookmarks File Menu: LINK/INPUT */ if (LYMultiBookmarks) { - PutLabel(fp0, "Review/edit Bookmarks files"); - fprintf(fp0, + PutLabel(fp0, "Review/edit Bookmarks files"); + fprintf(fp0, "<a href=\"LYNXOPTIONS://MBM_MENU\">Goto multi-bookmark menu</a>\n"); } else { - PutLabel(fp0, "Bookmarks file"); - PutTextInput(fp0, single_bookmark_string, + PutLabel(fp0, "Bookmarks file"); + PutTextInput(fp0, single_bookmark_string, NOTEMPTY(bookmark_page), text_len, ""); } - fprintf(fp0,"\n<em>Character Set Options</em>\n"); - /* - * assume_char_set + * Character Set Options */ + fprintf(fp0,"\n<em>Character Set Options</em>\n"); + + /* Assume Character Set: SELECT */ + /* if (user_mode==ADVANCED_MODE) */ + { + int curval; + curval = UCLYhndl_for_unspec; + /* * FIXME: If bogus value in lynx.cfg, then in old way, that is the * string that was displayed. Now, user will never see that. Good * or bad? I don't know. MRC */ - /* if (user_mode==ADVANCED_MODE) */ { - int curval; - - curval = UCLYhndl_for_unspec; if (curval == current_char_set && UCAssume_MIMEcharset) { curval = UCGetLYhndl_byMIME(UCAssume_MIMEcharset); } @@ -3914,9 +3933,7 @@ PUBLIC int gen_options ARGS1( EndSelect(fp0); } - /* - * display_char_set - */ + /* Display Character Set: SELECT */ PutLabel(fp0, "Display character set"); BeginSelect(fp0, display_char_set_string); for (i = 0; LYchar_set_names[i]; i++) { @@ -3925,28 +3942,12 @@ PUBLIC int gen_options ARGS1( if (len > cset_len) cset_len = len; sprintf(temp, "%d", i); - PutOption(fp0, i==current_char_set, temp, LYchar_set_names[i]); + PutOption(fp0, i==current_char_set, temp, LYchar_set_names[i]); } EndSelect(fp0); - /* - * preferred_doc_char - */ - PutLabel(fp0, "Preferred document character set"); - PutTextInput(fp0, preferred_doc_char_string, - NOTEMPTY(pref_charset), cset_len+2, ""); - - /* - * preferred_doc_lang - */ - PutLabel(fp0, "Preferred document language"); - PutTextInput(fp0, preferred_doc_lang_string, - NOTEMPTY(language), cset_len+2, ""); - - /* - * raw_mode - */ - if (LYHaveCJKCharacterSet) + /* Raw Mode: ON/OFF */ + if (LYHaveCJKCharacterSet) /* * Since CJK people hardly mixed with other world * we split the header to make it more readable: @@ -3960,29 +3961,26 @@ PUBLIC int gen_options ARGS1( PutOptValues(fp0, LYRawMode, bool_values); EndSelect(fp0); - fprintf(fp0,"\n<em>File Management Options</em>\n"); - /* - * ftp sort + * File Management Options */ + fprintf(fp0,"\n<em>File Management Options</em>\n"); + + /* FTP sort: SELECT */ PutLabel(fp0, "Ftp sort criteria"); BeginSelect(fp0, ftp_sort_string); PutOptValues(fp0, HTfileSortMethod, ftp_sort_values); EndSelect(fp0); #ifdef DIRED_SUPPORT - /* - * dired_sort - */ + /* Local Directory Sort: SELECT */ PutLabel(fp0, "Local directory sort criteria"); BeginSelect(fp0, dired_sort_string); PutOptValues(fp0, dir_list_style, dired_values); EndSelect(fp0); #endif /* DIRED_SUPPORT */ - /* - * show_dotfiles - */ + /* Show dot files: ON/OFF */ if (!no_dotfiles) { PutLabel(fp0, "Show dot files"); BeginSelect(fp0, show_dotfiles_string); @@ -3990,32 +3988,41 @@ PUBLIC int gen_options ARGS1( EndSelect(fp0); } - fprintf(fp0,"\n"); - /* - * user_agent + * Headers transferred to remote server */ + fprintf(fp0,"\n<em>Headers transferred to remote server</em>\n"); + + /* Preferred Document Character Set: INPUT */ + PutLabel(fp0, "Preferred document character set"); + PutTextInput(fp0, preferred_doc_char_string, + NOTEMPTY(pref_charset), cset_len+2, ""); + + /* Preferred Document Language: INPUT */ + PutLabel(fp0, "Preferred document language"); + PutTextInput(fp0, preferred_doc_lang_string, + NOTEMPTY(language), cset_len+2, ""); + + /* User Agent: INPUT */ if (!no_useragent) { PutLabel(fp0, "User-Agent header"); - PutTextInput(fp0, user_agent_string, NOTEMPTY(LYUserAgent), text_len, ""); + PutTextInput(fp0, user_agent_string, + NOTEMPTY(LYUserAgent), text_len, ""); } fprintf(fp0,"\n</pre>\n"); - /* - * save/reset - */ + /* Submit/Reset */ fprintf(fp0,"<p align=center>\n"); - fprintf(fp0,"<input type=\"submit\" value=\"Accept Changes\">\n "); + fprintf(fp0,"<input type=\"submit\" value=\"Accept Changes\">\n - "); fprintf(fp0,"<input type=\"reset\" value=\"Reset Changes\">\n"); - fprintf(fp0,"Left Arrow cancels changes<br>\n"); + fprintf(fp0,"Left Arrow cancels changes\n"); /* * close HTML */ fprintf(fp0,"</form>\n"); - fprintf(fp0,"</body>\n"); - fprintf(fp0,"</html>\n"); + EndInternalPage(fp0); LYCloseTempFP(fp0); return(0); diff --git a/src/LYPrint.c b/src/LYPrint.c index 548a577f..24c824ee 100644 --- a/src/LYPrint.c +++ b/src/LYPrint.c @@ -13,7 +13,6 @@ #include <LYClean.h> #include <LYGetFile.h> #include <LYHistory.h> -#include <LYSystem.h> #include <LYList.h> #include <LYCharSets.h> /* To get current charset for mail header. */ #ifdef VMS @@ -74,7 +73,7 @@ PUBLIC int printfile ARGS1( int lines_in_file = 0; int printer_number = 0; int pages = 0; - int type = 0, c, len; + int type = 0, c; BOOLEAN Lpansi = FALSE; FILE *outfile_fp; char *cp = NULL; @@ -372,8 +371,7 @@ PUBLIC int printfile ARGS1( if ((cp = strchr(filename, '~'))) { *(cp++) = '\0'; strcpy(buffer, filename); - if ((len=strlen(buffer)) > 0 && buffer[len-1] == '/') - buffer[len-1] = '\0'; + LYTrimPathSep(buffer); #ifdef DOSPATH strcat(buffer, HTDOS_wwwName((char *)Home_Dir())); #else @@ -400,12 +398,21 @@ PUBLIC int printfile ARGS1( strcpy(buffer, filename); } #else + #ifndef __EMX__ - if (*filename != '/') + if (!LYIsPathSep(*filename)) { +#if defined(__DJGPP__) || defined(_WINDOWS) + if (strchr(buffer, ':') != NULL) + cp = NULL; + else +#endif /* __DJGPP__ || _WINDOWS */ cp = getenv("PWD"); + } else #endif cp = NULL; + + LYTrimPathSep(cp); if (cp) #ifdef DOSPATH sprintf(buffer, "%s/%s", cp, HTDOS_name(filename)); @@ -717,9 +724,7 @@ PUBLIC int printfile ARGS1( stop_curses(); printf(MAILING_FILE); - fflush(stdout); - system(buffer); - fflush(stdout); + LYSystem(buffer); sleep(AlertSecs); start_curses(); if (isPMDF) @@ -846,7 +851,7 @@ PUBLIC int printfile ARGS1( LYCloseTempFP(outfile_fp); /* Close the tmpfile. */ stop_curses(); printf("Sending \n\n$ %s\n\nPlease wait...", buffer); - system(buffer); + LYSystem(buffer); sleep(MessageSecs); start_curses(); LYRemoveTemp(tempfile); /* Delete the tmpfile. */ @@ -1181,8 +1186,7 @@ PUBLIC int printfile ARGS1( StrAllocCat(envbuffer, HText_getTitle()); putenv(envbuffer); #endif /* VMS */ - fflush(stdout); - system(buffer); + LYSystem(buffer); #ifdef VMS /* * Remove LYNX_PRINT_TITLE logical. - FM @@ -1264,14 +1268,10 @@ PUBLIC int print_options ARGS2( StrAllocCopy(*newfile, print_filename); - fprintf(fp0, "<html>\n<head>\n<title>%s</title>\n</head>\n<body>\n", - PRINT_OPTIONS_TITLE); - fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", - LYNX_NAME, LYNX_VERSION, - helpfilepath, PRINT_OPTIONS_HELP, PRINT_OPTIONS_TITLE); + BeginInternalPage(fp0, PRINT_OPTIONS_TITLE, PRINT_OPTIONS_HELP); - pages = (lines_in_file+65)/66; fprintf(fp0, "<pre>\n"); + pages = (lines_in_file+65)/66; sprintf(buffer, " \ <em>You print the document:</em> %s\n \ <em>Number of lines:</em> %d\n \ @@ -1315,7 +1315,8 @@ PUBLIC int print_options ARGS2( cur_printer->name : "No Name Given")); fprintf(fp0, "</a>\n"); } - fprintf(fp0, "</pre>\n</body>\n</html>\n"); + fprintf(fp0, "</pre>\n"); + EndInternalPage(fp0); LYCloseTempFP(fp0); LYforce_no_cache = TRUE; diff --git a/src/LYReadCFG.c b/src/LYReadCFG.c index 69bb6a32..f68c0d94 100644 --- a/src/LYReadCFG.c +++ b/src/LYReadCFG.c @@ -30,12 +30,6 @@ extern int HTNewsChunkSize; /* Number of news articles per chunk (HTNews.c) */ PUBLIC BOOLEAN have_read_cfg=FALSE; PUBLIC BOOLEAN LYUseNoviceLineTwo=TRUE; -#ifdef VMS -#define DISPLAY "DECW$DISPLAY" -#else -#define DISPLAY "DISPLAY" -#endif /* VMS */ - /* * Translate a TRUE/FALSE field in a string buffer. */ @@ -526,14 +520,16 @@ static int character_set_fun ARGS1( size_t len; len = strlen (value); - for (i = 0; LYchar_set_names[i]; i++) { + for (i = 0; LYchar_set_names[i]; i++) { /* search by name, compatibility */ if (!strncmp(value, LYchar_set_names[i], len)) { current_char_set = i; - HTMLSetRawModeDefault(i); - break; + HTMLSetRawModeDefault(current_char_set); + return 0; } } + current_char_set = UCGetLYhndl_byMIME(value); /* by MIME */ + HTMLSetRawModeDefault(current_char_set); return 0; } @@ -744,7 +740,6 @@ static int viewer_fun ARGS1( char *mime_type; char *viewer; char *environment; - char *cp; mime_type = value; @@ -767,10 +762,10 @@ static int viewer_fun ARGS1( * there is a $DISPLAY variable. */ if (!strcasecomp(environment,"XWINDOWS")) { - if ((cp = getenv(DISPLAY)) != NULL && *cp != '\0') + if (LYgetXDisplay() != NULL) HTSetPresentation(mime_type, viewer, 1.0, 3.0, 0.0, 0); } else if (!strcasecomp(environment,"NON_XWINDOWS")) { - if ((cp = getenv(DISPLAY)) == NULL || *cp == '\0') + if (LYgetXDisplay() == NULL) HTSetPresentation(mime_type, viewer, 1.0, 3.0, 0.0, 0); } else { HTSetPresentation(mime_type, viewer, 1.0, 3.0, 0.0, 0); @@ -807,6 +802,9 @@ static Config_Type Config_Table [] = PARSE_FUN("color", CONF_FUN, color_fun), #endif PARSE_STR("cookie_accept_domains", CONF_STR, LYCookieAcceptDomains), +#ifdef EXP_PERSISTENT_COOKIES + PARSE_STR("cookie_file", CONF_STR, LYCookieFile), +#endif /* EXP_PERSISTENT_COOKIES */ PARSE_STR("cookie_reject_domains", CONF_STR, LYCookieRejectDomains), PARSE_ENV("cso_proxy", CONF_ENV, 0 ), #ifdef VMS @@ -831,6 +829,7 @@ static Config_Type Config_Table [] = PARSE_ADD("external", CONF_ADD_ITEM, externals), #endif PARSE_ENV("finger_proxy", CONF_ENV, 0 ), + PARSE_SET("force_8bit_toupper", CONF_BOOL, UCForce8bitTOUPPER), PARSE_SET("force_ssl_cookies_secure", CONF_BOOL, LYForceSSLCookiesSecure), PARSE_ENV("ftp_proxy", CONF_ENV, 0 ), PARSE_STR("global_extension_map", CONF_STR, global_extension_map), @@ -875,7 +874,7 @@ static Config_Type Config_Table [] = PARSE_INT("messagesecs", CONF_INT, MessageSecs), PARSE_SET("minimal_comments", CONF_BOOL, minimal_comments), PARSE_INT("multi_bookmark_support", CONF_BOOL, LYMultiBookmarks), - PARSE_SET("ncr_in_bookmarks", CONF_BOOL, LYSaveBookmarksInUnicode), + PARSE_SET("ncr_in_bookmarks", CONF_BOOL, UCSaveBookmarksInUnicode), PARSE_FUN("news_chunk_size", CONF_FUN, news_chunk_size_fun), PARSE_FUN("news_max_chunk", CONF_FUN, news_max_chunk_fun), PARSE_FUN("news_posting", CONF_FUN, news_posting_fun), diff --git a/src/LYShowInfo.c b/src/LYShowInfo.c index 03f1cb02..7b88643c 100644 --- a/src/LYShowInfo.c +++ b/src/LYShowInfo.c @@ -71,19 +71,19 @@ PUBLIC int showinfo ARGS4( } } - fprintf(fp0, "<head>\n"); + fprintf(fp0, "<html>\n<head>\n"); LYAddMETAcharsetToFD(fp0, -1); fprintf(fp0, "<title>%s</title>\n</head>\n<body>\n", SHOWINFO_TITLE); #ifdef LYNX_COMPILE_OPTS - fprintf(fp0, "<h1>%s %s (<a href=\"%s\">%s</a>) - <a href=\"%s\">compile time settings</a>\n", + fprintf(fp0, "<h1>%s %s (<a href=\"%s\">%s</a>) - <a href=\"%s\">compile time settings</a></h1>\n", LYNX_NAME, LYNX_VERSION, (LYNX_RELEASE ? LYNX_WWW_HOME : LYNX_WWW_DIST), (LYNX_RELEASE ? "major release" : "development version"), LYNX_COMPILE_OPTS); #else - fprintf(fp0, "<h1>%s %s (<a href=\"%s\">%s</a>)\n", + fprintf(fp0, "<h1>%s %s (<a href=\"%s\">%s</a>)</h1>\n", LYNX_NAME, LYNX_VERSION, (LYNX_RELEASE ? LYNX_WWW_HOME : LYNX_WWW_DIST), (LYNX_RELEASE ? "major release" : "development version") ); @@ -346,7 +346,7 @@ PUBLIC int showinfo ARGS4( #ifdef DIRED_SUPPORT } #endif /* DIRED_SUPPORT */ - fprintf(fp0, "</body>\n"); + EndInternalPage(fp0); refresh(); diff --git a/src/LYSystem.h b/src/LYSystem.h deleted file mode 100644 index 6acd02b3..00000000 --- a/src/LYSystem.h +++ /dev/null @@ -1,10 +0,0 @@ - -#ifndef LYSYSTEM_H -#define LYSYSTEM_H - -#ifdef VMS -extern int DCLsystem PARAMS((char *command)); -#define system(a) DCLsystem(a) /* use LYCurses.c routines for spawns */ -#endif /* VMS */ - -#endif /* LYSYSTEM_H */ diff --git a/src/LYUpload.c b/src/LYUpload.c index 78609f2c..8d1c5e62 100644 --- a/src/LYUpload.c +++ b/src/LYUpload.c @@ -25,7 +25,6 @@ #include <LYClean.h> #include <LYGetFile.h> #include <LYUpload.h> -#include <LYSystem.h> #include <LYLocal.h> #include <LYexit.h> @@ -180,8 +179,7 @@ retry: FREE(dir); stop_curses(); CTRACE(tfp, "command: %s\n", cmd); - system(cmd); - fflush(stdout); + LYSystem(cmd); start_curses(); #ifdef UNIX chmod(buffer, HIDE_CHMOD); @@ -232,18 +230,14 @@ PUBLIC int LYUpload_options ARGS2( cp += 5; strcpy(curloc,cp); HTUnEscape(curloc); - if (curloc[strlen(curloc) - 1] == '/') - curloc[strlen(curloc) - 1] = '\0'; + LYTrimPathSep(curloc); #endif /* VMS */ LYLocalFileToURL(LYUploadFileURL, tempfile); StrAllocCopy(*newfile, LYUploadFileURL); - fprintf(fp0, "<head>\n<title>%s</title>\n</head>\n<body>\n", - UPLOAD_OPTIONS_TITLE); - fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", - LYNX_NAME, LYNX_VERSION, - helpfilepath, UPLOAD_OPTIONS_HELP, UPLOAD_OPTIONS_TITLE); + BeginInternalPage(fp0, UPLOAD_OPTIONS_TITLE, UPLOAD_OPTIONS_HELP); + fprintf(fp0, "<pre>\n"); fprintf(fp0, " <em>Upload To:</em> %s\n", curloc); fputs("\nUpload options:\n", fp0); @@ -266,7 +260,8 @@ Please refer to the <a href=\"%s\">lynx.cfg</a> file, \ sections 'UPLOAD' and 'INCLUDE'.\n", LYNX_CFG_FILE); } - fprintf(fp0, "</pre>\n</body>\n"); + fprintf(fp0, "</pre>\n"); + EndInternalPage(fp0); LYCloseTempFP(fp0); LYforce_no_cache = TRUE; diff --git a/src/LYUtils.c b/src/LYUtils.c index 532bd69d..caebd6b0 100644 --- a/src/LYUtils.c +++ b/src/LYUtils.c @@ -4,12 +4,14 @@ #include <HTCJK.h> #include <HTAlert.h> #include <LYCurses.h> +#include <LYHistory.h> #include <LYUtils.h> #include <LYStrings.h> #include <LYGlobalDefs.h> #include <LYSignal.h> #include <GridText.h> #include <LYCharSets.h> +#include <LYCharUtils.h> #ifdef DOSPATH #include <HTDOS.h> @@ -2393,7 +2395,7 @@ PUBLIC int LYCheckForProxyURL ARGS1( if (isdigit((unsigned char)*cp1)) { while (*cp1 && isdigit((unsigned char)*cp1)) cp1++; - if (*cp1 && *cp1 != '/') + if (*cp1 && !LYIsHtmlSep(*cp1)) return(UNKNOWN_URL_TYPE); } } @@ -2462,7 +2464,7 @@ PUBLIC int is_url ARGS1( * also to avoid false positives if there was * a colon later in the string. - KW */ - if (*cp == '/') + if (LYIsHtmlSep(*cp)) return(0); #if defined (DOSPATH) || defined (__EMX__) /* sorry! */ @@ -2510,7 +2512,7 @@ PUBLIC int is_url ARGS1( } else if (compare_type(cp, "file:", 5)) { if (LYisLocalFile(cp)) { return(FILE_URL_TYPE); - } else if (cp[5] == '/' && cp[6] == '/') { + } else if (LYIsHtmlSep(cp[5]) && LYIsHtmlSep(cp[6])) { return(FTP_URL_TYPE); } else { return(0); @@ -2742,8 +2744,11 @@ PUBLIC char * quote_pathname ARGS1( if (result == NULL) outofmem(__FILE__, "quote_pathname"); - result[0] = '\''; - for (i = 0, n = 1; i < strlen(pathname); i++) + n = 0; +#ifndef __DJGPP__ + result[n++] = '\''; +#endif /* __DJGPP__ */ + for (i = 0; i < strlen(pathname); i++) { if (pathname[i] == '\'') { result[n++] = '\''; result[n++] = '"'; @@ -2753,7 +2758,10 @@ PUBLIC char * quote_pathname ARGS1( } else { result[n++] = pathname[i]; } + } +#ifndef __DJGPP__ result[n++] = '\''; +#endif /* !__DJGPP__ */ result[n] = '\0'; return result; } @@ -2991,7 +2999,7 @@ PUBLIC void change_sug_filename ARGS1( #else cp = lynx_temp_space; #endif - if (*cp == '/') { + if (LYIsHtmlSep(*cp)) { sprintf(temp, "file://localhost%s%d", cp, (int)getpid()); } else { sprintf(temp, "file://localhost/%s%d", cp, (int)getpid()); @@ -3900,8 +3908,7 @@ have_VMS_URL: #else StrAllocCopy(temp, curdir); #endif - if(curdir[strlen(curdir)-1] != '/') - StrAllocCat(temp, "/"); + LYAddPathSep(&temp); LYstrncpy(curdir, temp, (DIRNAMESIZE - 1)); StrAllocCat(temp, old_string); } else { @@ -3939,8 +3946,7 @@ have_VMS_URL: } else { char *cp2 = NULL; StrAllocCopy(temp2, curdir); - if (curdir[0] != '\0' && curdir[strlen(curdir)-1] != '/') - StrAllocCat(temp2, "/"); + LYAddPathSep(&temp2); StrAllocCopy(cp, old_string); if ((fragment = strchr(cp, '#')) != NULL) *fragment = '\0'; /* keep as pointer into cp string */ @@ -3965,8 +3971,7 @@ have_VMS_URL: * old_string as given. - kw */ temp = HTEscape(curdir, URL_PATH); - if (curdir[0] != '\0' && curdir[strlen(curdir)-1] != '/') - StrAllocCat(temp, "/"); + LYAddHtmlSep(&temp); StrAllocCat(temp, old_string); } else { temp = HTEscape(temp2, URL_PATH); @@ -3996,8 +4001,7 @@ have_VMS_URL: * old_string as given. - kw */ temp = HTEscape(curdir, URL_PATH); - if (curdir[0] != '\0' && curdir[strlen(curdir)-1] != '/') - StrAllocCat(temp, "/"); + LYAddHtmlSep(&temp); StrAllocCat(temp, old_string); } else { temp = HTEscape(temp2, URL_PATH); @@ -4552,13 +4556,13 @@ PUBLIC void LYTrimRelFromAbsPath ARGS1( /* * Make sure we have a pointer to an absolute path. - FM */ - if (path == NULL || *path != '/') + if (path == NULL || !LYIsPathSep(*path)) return; /* * Check whether the path has a terminal slash. - FM */ - TerminalSlash = (path[(strlen(path) - 1)] == '/'); + TerminalSlash = LYIsPathSep(path[(strlen(path) - 1)]); /* * Simplify the path and then do any necessary trimming. - FM @@ -4571,7 +4575,7 @@ PUBLIC void LYTrimRelFromAbsPath ARGS1( * Eliminate trailing dot. - FM */ cp[1] = '\0'; - } else if (cp[2] == '/') { + } else if (LYIsPathSep(cp[2])) { /* * Skip over the "/." of a "/./". - FM */ @@ -4604,9 +4608,8 @@ PUBLIC void LYTrimRelFromAbsPath ARGS1( path[i] = cp[i]; path[i] = '\0'; } - if (TerminalSlash == FALSE && - path[(strlen(path) - 1)] == '/') { - path[(strlen(path) - 1)] = '\0'; + if (TerminalSlash == FALSE) { + LYTrimPathSep(path); } } @@ -4888,7 +4891,7 @@ PUBLIC BOOLEAN LYPathOffHomeOK ARGS2( /* * Check for a URL or absolute path, and reject if present. - FM */ - if (is_url(cp) || *cp == '/') { + if (is_url(cp) || LYIsPathSep(*cp)) { FREE(file); return(FALSE); } @@ -4910,8 +4913,11 @@ PUBLIC BOOLEAN LYPathOffHomeOK ARGS2( /* * Check for spoofing. - FM */ - if (*cp == '\0' || *cp == '/' || cp[(strlen(cp) - 1)] == '/' || - strstr(cp, "..") != NULL || !strcmp(cp, ".")) { + if (*cp == '\0' + || LYIsPathSep(*cp) + || LYIsPathSep(cp[(strlen(cp) - 1)]) + || strstr(cp, "..") != NULL + || !strcmp(cp, ".")) { FREE(file); return(FALSE); } @@ -5820,3 +5826,254 @@ PUBLIC void LYLocalFileToURL ARGS2( #endif /* VMS */ #endif /* DOSPATH */ } + +PUBLIC void BeginInternalPage ARGS3( + FILE *, fp0, + char*, Title, + char*, HelpURL) +{ + fprintf(fp0, "<html>\n<head>\n"); + LYAddMETAcharsetToFD(fp0, -1); + if (!strcmp(Title, LIST_PAGE_TITLE)) { + if (strchr(HTLoadedDocumentURL(), '"') == NULL) { + char *Address = NULL; + /* + * Insert a BASE tag so there is some way to relate the List Page + * file to its underlying document after we are done. It won't be + * actually used for resolving relative URLs. - kw + */ + StrAllocCopy(Address, HTLoadedDocumentURL()); + LYEntify(&Address, FALSE); + fprintf(fp0, "<base href=\"%s\">\n", Address); + FREE(Address); + } + } + fprintf(fp0, "<title>%s</title>\n</head>\n<body>\n", + Title); + + if ((user_mode == NOVICE_MODE) + && LYwouldPush(Title) + && (HelpURL != 0)) { + fprintf(fp0, "<h1>%s (%s), help on <a href=\"%s%s\">%s</a></h1>\n", + LYNX_NAME, LYNX_VERSION, + helpfilepath, HelpURL, Title); + } else { + fprintf(fp0, "<h1>%s (%s Version %s)</h1>\n", + Title, LYNX_NAME, LYNX_VERSION); + } +} + + +PUBLIC void EndInternalPage ARGS1( + FILE *, fp0) +{ + fprintf(fp0, "</body>\n</html>"); +} + +/* + * Trim a trailing path-separator to avoid confusing other programs when we concatenate + * to it. This only applies to local filesystems. + */ +PUBLIC void LYTrimPathSep ARGS1( + char *, path) +{ + size_t len; + + if (path != 0 + && (len = strlen(path)) != 0 + && LYIsPathSep(path[len-1])) + path[len-1] = 0; +} + +#ifdef DOSPATH +#define PATHSEP_STR "\\" +#else +#define PATHSEP_STR "/" +#endif + +/* + * Add a trailing path-separator to avoid confusing other programs when we concatenate + * to it. This only applies to local filesystems. + */ +PUBLIC void LYAddPathSep ARGS1( + char **, path) +{ + size_t len; + char *temp; + + if ((path != 0) + && ((temp = *path) != 0) + && (len = strlen(temp)) != 0 + && !LYIsPathSep(temp[len-1])) { + StrAllocCat(*path, PATHSEP_STR); + } +} + +/* + * Add a trailing path-separator to avoid confusing other programs when we concatenate + * to it. This only applies to local filesystems. + */ +PUBLIC void LYAddPathSep0 ARGS1( + char *, path) +{ + size_t len; + + if ((path != 0) + && (len = strlen(path)) != 0 + && !LYIsPathSep(path[len-1])) { + strcat(path, PATHSEP_STR); + } +} + +/* + * Trim a trailing path-separator to avoid confusing other programs when we concatenate + * to it. This only applies to HTML paths. + */ +PUBLIC void LYTrimHtmlSep ARGS1( + char *, path) +{ + size_t len; + + if (path != 0 + && (len = strlen(path)) != 0 + && LYIsHtmlSep(path[len-1])) + path[len-1] = 0; +} + +/* + * Add a trailing path-separator to avoid confusing other programs when we concatenate + * to it. This only applies to HTML paths. + */ +PUBLIC void LYAddHtmlSep ARGS1( + char **, path) +{ + size_t len; + char *temp; + + if ((path != 0) + && ((temp = *path) != 0) + && (len = strlen(temp)) != 0 + && !LYIsHtmlSep(temp[len-1])) { + StrAllocCat(*path, "/"); + } +} + +/* + * Add a trailing path-separator to avoid confusing other programs when we concatenate + * to it. This only applies to HTML paths. + */ +PUBLIC void LYAddHtmlSep0 ARGS1( + char *, path) +{ + size_t len; + + if ((path != 0) + && (len = strlen(path)) != 0 + && !LYIsHtmlSep(path[len-1])) { + strcat(path, "/"); + } +} + +/* + * Invoke a shell command + */ +PUBLIC int LYSystem ARGS1( + char *, command) +{ + int code; + + fflush(stdout); + fflush(stderr); + +#ifdef __DJGPP__ + __djgpp_set_ctrl_c(0); + _go32_want_ctrl_break(1); +#endif /* __DJGPP__ */ + +#ifdef VMS + code = DCLsystem(command); +#else + code = system(command); +#endif + +#ifdef __DJGPP__ + __djgpp_set_ctrl_c(1); + _go32_want_ctrl_break(0); +#endif /* __DJGPP__ */ + + fflush(stdout); + fflush(stderr); + + return code; +} + +/* + * Return a string which can be used in LYSystem() for spawning a subshell + */ +PUBLIC char *LYSysShell NOARGS +{ + char *shell = 0; +#ifdef DOSPATH + if (getenv("SHELL") != NULL) { + shell = getenv("SHELL"); + } else { + shell = (getenv("COMSPEC") == NULL) ? "command.com" : getenv("COMSPEC"); + } +#else +#ifdef __EMX__ + if (getenv("SHELL") != NULL) { + shell = getenv("SHELL"); + } else { + shell = (getenv("COMSPEC") == NULL) ? "cmd.exe" : getenv("COMSPEC"); + } +#else +#ifdef VMS + shell = ""; +#else + shell = "exec $SHELL"; +#endif /* __EMX__ */ +#endif /* VMS */ +#endif /* DOSPATH */ + return shell; +} + +#ifdef VMS +#define DISPLAY "DECW$DISPLAY" +#else +#define DISPLAY "DISPLAY" +#endif /* VMS */ + +/* + * Return the X-Window $DISPLAY string if it is nonnull/nonempty + */ +PUBLIC char *LYgetXDisplay NOARGS +{ + char *cp; + if ((cp = getenv(DISPLAY)) == NULL || *cp == '\0') + cp = 0; + return cp; +} + +/* + * Set the value of the X-Window $DISPLAY variable (yes it leaks memory, but + * that is putenv's fault). + */ +PUBLIC void LYsetXDisplay ARGS1( + char *, new_display) +{ + if (new_display != 0 && *new_display != '\0') { +#ifdef VMS + LYUpperCase(new_display); + Define_VMSLogical(DISPLAY, new_display); +#else + static char *display_putenv_command; + display_putenv_command = malloc(strlen(new_display) + 12); + + sprintf(display_putenv_command, "DISPLAY=%s", new_display); + putenv(display_putenv_command); +#endif /* VMS */ + if ((new_display = LYgetXDisplay()) != 0) { + StrAllocCopy(x_display, new_display); + } + } +} diff --git a/src/LYUtils.h b/src/LYUtils.h index 5fd0868b..fee1718e 100644 --- a/src/LYUtils.h +++ b/src/LYUtils.h @@ -5,71 +5,89 @@ #include <HTList.h> #endif /* HTLIST_H */ -extern void highlight PARAMS((int flag, int cur, char *target)); -extern void free_and_clear PARAMS((char **obj)); -extern void convert_to_spaces PARAMS((char *string, BOOL condense)); -extern char * strip_trailing_slash PARAMS((char * my_dirname)); -extern void statusline PARAMS((CONST char *text)); -extern void toggle_novice_line NOPARAMS; -extern void noviceline PARAMS((int more_flag)); -extern void LYFakeZap PARAMS((BOOL set)); -extern int HTCheckForInterrupt NOPARAMS; +#ifdef DOSPATH +#define LYIsPathSep(ch) ((ch) == '/' || (ch) == '\\') +#else +#define LYIsPathSep(ch) ((ch) == '/') +#endif + +#define LYIsHtmlSep(ch) ((ch) == '/') + +extern BOOLEAN LYAddSchemeForURL PARAMS((char **AllocatedString, char *default_scheme)); +extern BOOLEAN LYCachedTemp PARAMS((char *result, char **cached)); +extern BOOLEAN LYCanDoHEAD PARAMS((CONST char *address)); +extern BOOLEAN LYExpandHostForURL PARAMS((char **AllocatedString, char *prefix_list, char *suffix_list)); +extern BOOLEAN LYPathOffHomeOK PARAMS((char *fbuffer, size_t fbuffer_size)); +extern BOOLEAN LYisLocalAlias PARAMS((char *filename)); extern BOOLEAN LYisLocalFile PARAMS((char *filename)); extern BOOLEAN LYisLocalHost PARAMS((char *filename)); -extern void LYLocalhostAliases_free NOPARAMS; -extern void LYAddLocalhostAlias PARAMS((char *alias)); -extern BOOLEAN LYisLocalAlias PARAMS((char *filename)); +extern BOOLEAN inlocaldomain NOPARAMS; +extern CONST char *Home_Dir NOPARAMS; +extern FILE *LYAppendToTxtFile PARAMS((char * name)); +extern FILE *LYNewBinFile PARAMS((char * name)); +extern FILE *LYNewTxtFile PARAMS((char * name)); +extern FILE *LYOpenScratch PARAMS((char *result, CONST char *prefix)); +extern FILE *LYOpenTemp PARAMS((char *result, CONST char *suffix, CONST char *mode)); +extern FILE *LYReopenTemp PARAMS((char *name)); +extern char *LYPathLeaf PARAMS((char * pathname)); +extern char *LYSysShell NOPARAMS; +extern char *LYgetXDisplay NOPARAMS; +extern char *quote_pathname PARAMS((char *pathname)); +extern char *strip_trailing_slash PARAMS((char * my_dirname)); +extern int HTCheckForInterrupt NOPARAMS; extern int LYCheckForProxyURL PARAMS((char *filename)); +extern int LYSystem PARAMS((char *command)); extern int is_url PARAMS((char *filename)); -extern BOOLEAN LYCanDoHEAD PARAMS((CONST char *address)); -extern void remove_backslashes PARAMS((char *buf)); -extern char *quote_pathname PARAMS((char *pathname)); -extern BOOLEAN inlocaldomain NOPARAMS; -extern void size_change PARAMS((int sig)); -extern void HTSugFilenames_free NOPARAMS; -extern void HTAddSugFilename PARAMS((char *fname)); -extern void change_sug_filename PARAMS((char *fname)); extern int number2arrows PARAMS((int number)); -extern void parse_restrictions PARAMS((CONST char *s)); -extern void checkmail NOPARAMS; +extern time_t LYmktime PARAMS((char *string, BOOL absolute)); +extern void BeginInternalPage PARAMS((FILE *fp0, char *Title, char *HelpURL)); +extern void EndInternalPage PARAMS((FILE *fp0)); +extern void HTAddSugFilename PARAMS((char *fname)); +extern void HTSugFilenames_free NOPARAMS; +extern void LYAddHtmlSep PARAMS((char **path)); +extern void LYAddHtmlSep0 PARAMS((char *path)); +extern void LYAddLocalhostAlias PARAMS((char *alias)); +extern void LYAddPathSep PARAMS((char **path)); +extern void LYAddPathSep0 PARAMS((char *path)); +extern void LYAddPathToHome PARAMS((char *fbuffer, size_t fbuffer_size, char *fname)); extern void LYCheckMail NOPARAMS; -extern void LYEnsureAbsoluteURL PARAMS((char **href, CONST char *name)); +extern void LYCleanupTemp NOPARAMS; +extern void LYCloseTemp PARAMS((char *name)); +extern void LYCloseTempFP PARAMS((FILE *fp)); extern void LYConvertToURL PARAMS((char **AllocatedString)); -extern BOOLEAN LYExpandHostForURL PARAMS(( - char **AllocatedString, char *prefix_list, char *suffix_list)); -extern BOOLEAN LYAddSchemeForURL PARAMS(( - char **AllocatedString, char *default_scheme)); -extern void LYTrimRelFromAbsPath PARAMS((char *path)); extern void LYDoCSI PARAMS((char *url, CONST char *comment, char **csi)); +extern void LYEnsureAbsoluteURL PARAMS((char **href, CONST char *name)); +extern void LYFakeZap PARAMS((BOOL set)); +extern void LYLocalFileToURL PARAMS((char *target, char *source)); +extern void LYLocalhostAliases_free NOPARAMS; +extern void LYRemoveTemp PARAMS((char *name)); +extern void LYTrimHtmlSep PARAMS((char *path)); +extern void LYTrimPathSep PARAMS((char *path)); +extern void LYTrimRelFromAbsPath PARAMS((char *path)); +extern void LYsetXDisplay PARAMS((char *new_display)); +extern void change_sug_filename PARAMS((char *fname)); +extern void checkmail NOPARAMS; +extern void convert_to_spaces PARAMS((char *string, BOOL condense)); +extern void free_and_clear PARAMS((char **obj)); +extern void highlight PARAMS((int flag, int cur, char *target)); +extern void noviceline PARAMS((int more_flag)); +extern void parse_restrictions PARAMS((CONST char *s)); +extern void remove_backslashes PARAMS((char *buf)); +extern void size_change PARAMS((int sig)); +extern void statusline PARAMS((CONST char *text)); +extern void toggle_novice_line NOPARAMS; + #ifdef VMS -extern void Define_VMSLogical PARAMS(( - char *LogicalName, char *LogicalValue)); +extern void Define_VMSLogical PARAMS((char *LogicalName, char *LogicalValue)); #endif /* VMS */ -extern CONST char *Home_Dir NOPARAMS; -extern char *LYPathLeaf PARAMS((char * pathname)); -extern BOOLEAN LYPathOffHomeOK PARAMS((char *fbuffer, size_t fbuffer_size)); -extern void LYAddPathToHome PARAMS(( - char *fbuffer, size_t fbuffer_size, char *fname)); -extern time_t LYmktime PARAMS((char *string, BOOL absolute)); + #if ! HAVE_PUTENV extern int putenv PARAMS((CONST char *string)); #endif /* HAVE_PUTENV */ -extern FILE *LYNewBinFile PARAMS((char * name)); -extern FILE *LYNewTxtFile PARAMS((char * name)); -extern FILE *LYAppendToTxtFile PARAMS((char * name)); #ifdef UNIX extern void LYRelaxFilePermissions PARAMS((CONST char * name)); #endif -extern BOOLEAN LYCachedTemp PARAMS((char *result, char **cached)); -extern FILE *LYOpenTemp PARAMS((char *result, CONST char *suffix, CONST char *mode)); -extern FILE *LYReopenTemp PARAMS((char *name)); -extern FILE *LYOpenScratch PARAMS((char *result, CONST char *prefix)); -extern void LYCloseTemp PARAMS((char *name)); -extern void LYCloseTempFP PARAMS((FILE *fp)); -extern void LYRemoveTemp PARAMS((char *name)); -extern void LYCleanupTemp NOPARAMS; -extern void LYLocalFileToURL PARAMS((char *target, char *source)); /* * Whether or not the status line must be shown. diff --git a/src/LYrcFile.c b/src/LYrcFile.c index 77f5dca1..c5326615 100644 --- a/src/LYrcFile.c +++ b/src/LYrcFile.c @@ -451,7 +451,7 @@ PUBLIC void read_rc NOPARAMS cp = cp2 + 1; while (isspace(*cp)) cp++; /* get rid of spaces */ - cookie_add_acceptlist(cp); + cookie_add_acceptlist(cp); /* @@ -465,6 +465,19 @@ PUBLIC void read_rc NOPARAMS cp++; /* get rid of spaces */ cookie_add_rejectlist(cp); +#ifdef EXP_PERSISTENT_COOKIES + /* + * File to store cookies in. + */ + } else if ((cp = LYstrstr(line_buffer, "cookie_file")) + != NULL && cp-line_buffer < number_sign) { + if((cp2 = (char *)strchr(cp,'=')) != NULL) + cp = cp2 + 1; + while (isspace(*cp)) + cp++; /* get rid of spaces */ + + StrAllocCopy(LYCookieFile, cp); +#endif /* EXP_PERSISTENT_COOKIES */ /* * User mode. @@ -892,6 +905,44 @@ PUBLIC int save_rc NOPARAMS (user_mode == ADVANCED_MODE ? "ADVANCED" : "INTERMEDIATE"))); + /* + * Cookie options + */ + fprintf(fp, "\ +# accept_all_cookies allows the user to tell Lynx to automatically\n\ +# accept all cookies if desired. The default is \"FALSE\" which will\n\ +# prompt for each cookie. Set accept_all_cookies to \"TRUE\" to accept\n\ +# all cookies.\n"); + fprintf(fp, "accept_all_cookies=%s\n\n", + (LYAcceptAllCookies == FALSE ? "FALSE" : "TRUE")); + + fprintf(fp, "\ +# cookie_accept_domains and cookie_reject_domains are comma-delimited\n\ +# lists of domains (with a leading '.') to automatically accept or\n\ +# reject all cookies from. The accept_all_cookies parameter will\n\ +# override any settings made here. If a single domain is specified in\n\ +# both cookie_accept_domains and in cookie_reject_domains, the rejection\n\ +# will take precedence.\n"); + fprintf(fp, "# cookie_accept_domains=\n"); + fprintf(fp, "# cookie_reject_domains=\n\n"); + + /* + * cookie_accept_domains and cookie_reject_domains not set here because + * there's not currently a method on the options menu (maybe later?) + * to set them. + */ + +#ifdef EXP_PERSISTENT_COOKIES + /* + * Cookie file. + */ + fprintf(fp, "\ +# cookie_file specifies the file in which to store persistent cookies.\n\ +# The default is ~/.lynx_cookies.\n"); + fprintf(fp, "cookie_file=%s\n\n", + (LYCookieFile == NULL ? "~/.lynx_cookies" : LYCookieFile)); +#endif /* EXP_PERSISTENT_COOKIES */ + #if defined(EXEC_LINKS) || defined(EXEC_SCRIPTS) /* * Local execution mode - all links. diff --git a/src/UCAuto.c b/src/UCAuto.c index 7d910a20..a3584ecb 100644 --- a/src/UCAuto.c +++ b/src/UCAuto.c @@ -15,6 +15,7 @@ */ #include <HTUtils.h> +#include <LYUtils.h> #include <UCMap.h> #include <UCDefs.h> @@ -25,12 +26,6 @@ #ifdef EXP_CHARTRANS_AUTOSWITCH -#ifdef VMS -#define DISPLAY "DECW$DISPLAY" -#else -#define DISPLAY "DISPLAY" -#endif /* VMS */ - #ifdef LINUX typedef enum { Is_Unset, Is_Set, Dunno, Dont_Care @@ -83,7 +78,7 @@ PRIVATE void call_setfont ARGS3( if (*T_setfont_cmd) { CTRACE(tfp, "Executing setfont: '%s'\n", T_setfont_cmd); - system(T_setfont_cmd); + LYSystem(T_setfont_cmd); } } @@ -130,7 +125,6 @@ PUBLIC void UCChangeTerminalCodepage ARGS2( TGen_state_t HasUmap = Dunno; char tmpbuf1[100], tmpbuf2[20]; - char *cp; /* * Restore the original character set. @@ -149,7 +143,7 @@ PUBLIC void UCChangeTerminalCodepage ARGS2( sprintf(tmpbuf1, "%s %s %s", SETFONT, old_font, NOOUTPUT); } - system(tmpbuf1); + LYSystem(tmpbuf1); } remove(old_font); @@ -166,7 +160,7 @@ PUBLIC void UCChangeTerminalCodepage ARGS2( old_font = tempnam((char *)0, "font"); sprintf(tmpbuf1, "%s -o %s -ou %s %s", SETFONT, old_font, old_umap, NOOUTPUT); - system(tmpbuf1); + LYSystem(tmpbuf1); } name = p->MIMEname; @@ -182,8 +176,8 @@ PUBLIC void UCChangeTerminalCodepage ARGS2( /* * Use this for output of escape sequences. */ - if ((display != NULL) || - ((cp = getenv(DISPLAY)) != NULL && *cp != '\0')) { + if ((x_display != NULL) || + LYgetXDisplay() != NULL) { /* * We won't do anything in an xterm. Better that way... */ diff --git a/src/chrtrans/README.tables b/src/chrtrans/README.tables index b9311729..5993ccee 100644 --- a/src/chrtrans/README.tables +++ b/src/chrtrans/README.tables @@ -4,6 +4,7 @@ ftp://dkuug.dk/) and are believed to be correct in their mappings, but not checked in detail. The Unicode/UCS2 values for some of the RFC 1345 Mnemonic codes are out of date, a cleanup and update would be needed for serious use. +[See also http://czyborra.com/charsets/iso8859.html for codepages survey.] More translation files can be easily provided (and new character entities added to entities.h), this set is just to test whether the system works diff --git a/src/chrtrans/cp1250_uni.tbl b/src/chrtrans/cp1250_uni.tbl index e7b19995..49ba9008 100644 --- a/src/chrtrans/cp1250_uni.tbl +++ b/src/chrtrans/cp1250_uni.tbl @@ -2,7 +2,7 @@ Mwindows-1250 #Name as a Display Charset (used on Options screen) -OWinLatin2 (cp1250) +OEastern European (windows-1250) # # Name: cp1250 to Unicode table diff --git a/src/chrtrans/cp1251_uni.tbl b/src/chrtrans/cp1251_uni.tbl index ed4a1e18..541f8640 100644 --- a/src/chrtrans/cp1251_uni.tbl +++ b/src/chrtrans/cp1251_uni.tbl @@ -2,7 +2,7 @@ Mwindows-1251 #Name as a Display Charset (used on Options screen) -OWinCyrillic (cp1251) +OCyrillic (windows-1251) # # Name: cp1251 to Unicode table diff --git a/src/chrtrans/cp1252_uni.tbl b/src/chrtrans/cp1252_uni.tbl index d5912022..09ee9b6a 100644 --- a/src/chrtrans/cp1252_uni.tbl +++ b/src/chrtrans/cp1252_uni.tbl @@ -6,7 +6,7 @@ D0 Mwindows-1252 #Name as a Display Charset (used on Options screen) -OWinLatin1 (cp1252) +OWestern (windows-1252) # # Name: cp1252 to Unicode table diff --git a/src/chrtrans/cp1253_uni.tbl b/src/chrtrans/cp1253_uni.tbl index ed50b1ed..b53e44a2 100644 --- a/src/chrtrans/cp1253_uni.tbl +++ b/src/chrtrans/cp1253_uni.tbl @@ -2,7 +2,7 @@ Mwindows-1253 #Name as a Display Charset (used on Options screen) -OWinGreek (cp1253) +OGreek (windows-1253) # # Name: cp1253 to Unicode table @@ -26,7 +26,7 @@ OWinGreek (cp1253) 0x20-0x7e idem # -0x80 U+20AC #EURO SIGN +0x80 U+20AC #EURO SIGN 0x81 #UNDEFINED 0x82 U+201A #SINGLE LOW-9 QUOTATION MARK 0x83 U+0192 #LATIN SMALL LETTER F WITH HOOK diff --git a/src/chrtrans/cp1255_uni.tbl b/src/chrtrans/cp1255_uni.tbl index 67517353..6c4ca7d0 100644 --- a/src/chrtrans/cp1255_uni.tbl +++ b/src/chrtrans/cp1255_uni.tbl @@ -2,7 +2,7 @@ Mwindows-1255 #Name as a Display Charset (used on Options screen). -OWinHebrew (cp1255) +OHebrew (windows-1255) # # Name: cp1255 to Unicode table diff --git a/src/chrtrans/cp1256_uni.tbl b/src/chrtrans/cp1256_uni.tbl index 844e450d..23af4614 100644 --- a/src/chrtrans/cp1256_uni.tbl +++ b/src/chrtrans/cp1256_uni.tbl @@ -2,7 +2,7 @@ Mwindows-1256 #Name as a Display Charset (used on Options screen). -OWinArabic (cp1256) +OArabic (windows-1256) # # Name: cp1256 to Unicode table diff --git a/src/chrtrans/cp1257_uni.tbl b/src/chrtrans/cp1257_uni.tbl index 5339fa7c..4c1e70e6 100644 --- a/src/chrtrans/cp1257_uni.tbl +++ b/src/chrtrans/cp1257_uni.tbl @@ -2,7 +2,7 @@ Mwindows-1257 #Name as a Display Charset (used on Options screen) -OWinBaltRim (cp1257) +OBaltic Rim (windows-1257) # # Name: cp1257 to Unicode table diff --git a/src/chrtrans/cp437_uni.tbl b/src/chrtrans/cp437_uni.tbl index 621e730e..289f73ea 100644 --- a/src/chrtrans/cp437_uni.tbl +++ b/src/chrtrans/cp437_uni.tbl @@ -6,7 +6,7 @@ D0 Mcp437 #Name as a Display Charset (used on Options screen) -ODosLatinUS (cp437) +OLatinUS (cp437) # # Name: cp437_DOSLatinUS to Unicode table # Unicode version: 1.1 diff --git a/src/chrtrans/cp737_uni.tbl b/src/chrtrans/cp737_uni.tbl index 32f01c8c..81442ccc 100644 --- a/src/chrtrans/cp737_uni.tbl +++ b/src/chrtrans/cp737_uni.tbl @@ -2,7 +2,7 @@ Mcp737 #Name as a Display Charset (used on Options screen) -ODosGreek (cp737) +OGreek (cp737) # # Name: cp737_DOSGreek to Unicode table diff --git a/src/chrtrans/cp775_uni.tbl b/src/chrtrans/cp775_uni.tbl index 02a8b61b..8e56c3f4 100644 --- a/src/chrtrans/cp775_uni.tbl +++ b/src/chrtrans/cp775_uni.tbl @@ -2,7 +2,7 @@ Mcp775 #Name as a Display Charset (used on Options screen) -ODosBaltRim (cp775) +OBaltic Rim (cp775) # Name: cp775_DOSBaltRim to Unicode table # Unicode version: 2.0 diff --git a/src/chrtrans/cp850_uni.tbl b/src/chrtrans/cp850_uni.tbl index 05685971..816cc2db 100644 --- a/src/chrtrans/cp850_uni.tbl +++ b/src/chrtrans/cp850_uni.tbl @@ -8,7 +8,7 @@ D0 Mcp850 #Name as a Display Charset (used on Options screen) -ODosLatin1 (cp850) +OWestern (cp850) # # Name: cp850_DOSLatin1 to Unicode table diff --git a/src/chrtrans/cp852_uni.tbl b/src/chrtrans/cp852_uni.tbl index 0658d893..79047ace 100644 --- a/src/chrtrans/cp852_uni.tbl +++ b/src/chrtrans/cp852_uni.tbl @@ -2,7 +2,7 @@ Mcp852 #Name as a Display Charset (used on Options screen) -ODosLatin2 (cp852) +OEastern European (cp852) # # Name: cp852_DOSLatin2 to Unicode table diff --git a/src/chrtrans/cp862_uni.tbl b/src/chrtrans/cp862_uni.tbl index 3d21c138..60d9692e 100644 --- a/src/chrtrans/cp862_uni.tbl +++ b/src/chrtrans/cp862_uni.tbl @@ -2,7 +2,7 @@ Mcp862 #Name as a Display Charset (used on Options screen). -ODosHebrew (cp862) +OHebrew (cp862) # Name: cp862_DOSHebrew to Unicode table # Unicode version: 2.0 diff --git a/src/chrtrans/cp864_uni.tbl b/src/chrtrans/cp864_uni.tbl index d6e92431..8411f8b7 100644 --- a/src/chrtrans/cp864_uni.tbl +++ b/src/chrtrans/cp864_uni.tbl @@ -2,7 +2,7 @@ Mcp864 #Name as a Display Charset (used on Options screen). -ODosArabic (cp864) +OArabic (cp864) # Name: cp864_DOSArabic to Unicode table # Unicode version: 2.0 diff --git a/src/chrtrans/cp866_uni.tbl b/src/chrtrans/cp866_uni.tbl index 2d02ce1b..55ce0718 100644 --- a/src/chrtrans/cp866_uni.tbl +++ b/src/chrtrans/cp866_uni.tbl @@ -3,7 +3,7 @@ Mcp866 #Name as a Display Charset (used on Options screen) -ODosCyrillic (cp866) +OCyrillic (cp866) # # Name: cp866_DOSCyrillicRussian to Unicode table # Unicode version: 2.0 diff --git a/src/chrtrans/cp869_uni.tbl b/src/chrtrans/cp869_uni.tbl index 21cdeb95..1f418728 100644 --- a/src/chrtrans/cp869_uni.tbl +++ b/src/chrtrans/cp869_uni.tbl @@ -2,7 +2,7 @@ Mcp869 #Name as a Display Charset (used on Options screen) -ODosGreek2 (cp869) +OGreek2 (cp869) # Name: cp869_DOSGreek2 to Unicode table # Unicode version: 2.0 diff --git a/src/chrtrans/iso01_uni.tbl b/src/chrtrans/iso01_uni.tbl index f792164d..5b697e02 100644 --- a/src/chrtrans/iso01_uni.tbl +++ b/src/chrtrans/iso01_uni.tbl @@ -8,7 +8,7 @@ D0 Miso-8859-1 #Name as a Display Charset (used on Options screen) -OISO Latin 1 +OWestern (ISO-8859-1) # # Name: ISO 8859-1 (1987) to Unicode diff --git a/src/chrtrans/iso02_uni.tbl b/src/chrtrans/iso02_uni.tbl index af97bc55..7fa0df92 100644 --- a/src/chrtrans/iso02_uni.tbl +++ b/src/chrtrans/iso02_uni.tbl @@ -2,7 +2,7 @@ Miso-8859-2 #Name as a Display Charset (used on Options screen) -OISO Latin 2 +OEastern European (ISO-8859-2) # # Name: ISO 8859-2 (1987) to Unicode diff --git a/src/chrtrans/iso03_uni.tbl b/src/chrtrans/iso03_uni.tbl index bb8cd90f..a3c1f07a 100644 --- a/src/chrtrans/iso03_uni.tbl +++ b/src/chrtrans/iso03_uni.tbl @@ -2,7 +2,7 @@ Miso-8859-3 #Name as a Display Charset (used on Options screen) -OISO Latin 3 +OLatin 3 (ISO-8859-3) # # Name: ISO 8859-3 (1988) to Unicode diff --git a/src/chrtrans/iso04_uni.tbl b/src/chrtrans/iso04_uni.tbl index 3f54afda..29be0be5 100644 --- a/src/chrtrans/iso04_uni.tbl +++ b/src/chrtrans/iso04_uni.tbl @@ -2,7 +2,7 @@ Miso-8859-4 #Name as a Display Charset (used on Options screen) -OISO Latin 4 +OLatin 4 (ISO-8859-4) # # Name: ISO 8859-4 (1988) to Unicode diff --git a/src/chrtrans/iso05_uni.tbl b/src/chrtrans/iso05_uni.tbl index 40cdc24d..a715b64f 100644 --- a/src/chrtrans/iso05_uni.tbl +++ b/src/chrtrans/iso05_uni.tbl @@ -2,7 +2,7 @@ Miso-8859-5 #Name as a Display Charset (used on Options screen) -OISO 8859-5 Cyrillic +OCyrillic (ISO-8859-5) # # Name: ISO 8859-5 (1988) to Unicode diff --git a/src/chrtrans/iso06_uni.tbl b/src/chrtrans/iso06_uni.tbl index c9418864..549b592d 100644 --- a/src/chrtrans/iso06_uni.tbl +++ b/src/chrtrans/iso06_uni.tbl @@ -2,7 +2,7 @@ Miso-8859-6 #Name as a Display Charset (used on Options screen). -OISO 8859-6 Arabic +OArabic (ISO-8859-6) # # Name: ISO 8859-6 (1987) to Unicode diff --git a/src/chrtrans/iso07_uni.tbl b/src/chrtrans/iso07_uni.tbl index 368209bf..dffca758 100644 --- a/src/chrtrans/iso07_uni.tbl +++ b/src/chrtrans/iso07_uni.tbl @@ -2,7 +2,7 @@ Miso-8859-7 #Name as a Display Charset (used on Options screen) -OISO 8859-7 Greek +OGreek (ISO-8859-7) # # Name: ISO 8859-7 (1987) to Unicode diff --git a/src/chrtrans/iso08_uni.tbl b/src/chrtrans/iso08_uni.tbl index 4d83f5c4..050be29d 100644 --- a/src/chrtrans/iso08_uni.tbl +++ b/src/chrtrans/iso08_uni.tbl @@ -2,7 +2,7 @@ Miso-8859-8 #Name as a Display Charset (used on Options screen). -OISO 8859-8 Hebrew +OHebrew (ISO-8859-8) # # Name: ISO 8859-8 (1988) to Unicode diff --git a/src/chrtrans/iso09_uni.tbl b/src/chrtrans/iso09_uni.tbl index 1b204835..5abe799f 100644 --- a/src/chrtrans/iso09_uni.tbl +++ b/src/chrtrans/iso09_uni.tbl @@ -2,7 +2,7 @@ Miso-8859-9 #Name as a Display Charset (used on Options screen) -OISO 8859-9 (Latin 5) +OTurkish (ISO-8859-9) # # Name: ISO 8859-9 (1989) to Unicode diff --git a/src/chrtrans/iso10_uni.tbl b/src/chrtrans/iso10_uni.tbl index be3c02cd..ab8128f0 100644 --- a/src/chrtrans/iso10_uni.tbl +++ b/src/chrtrans/iso10_uni.tbl @@ -10,7 +10,7 @@ D0 Miso-8859-10 #Name as a Display Charset (used on Options screen) -OISO 8859-10 +OISO-8859-10 0x20-0x7e idem #0x7f U+2302 diff --git a/src/chrtrans/koi8r_uni.tbl b/src/chrtrans/koi8r_uni.tbl index 09e8743c..69eef3c2 100644 --- a/src/chrtrans/koi8r_uni.tbl +++ b/src/chrtrans/koi8r_uni.tbl @@ -1,5 +1,5 @@ # Options screen name for this character set -OKOI8-R Cyrillic +OCyrillic (KOI8-R) # MIME name for this charset Mkoi8-r diff --git a/src/chrtrans/utf8_uni.tbl b/src/chrtrans/utf8_uni.tbl index 67ff3460..9fc470ad 100644 --- a/src/chrtrans/utf8_uni.tbl +++ b/src/chrtrans/utf8_uni.tbl @@ -7,7 +7,7 @@ Mutf-8 #Name as a Display Charset (used on Options screen) -OUNICODE UTF-8 +OUNICODE (UTF-8) # Some kind of raw Unicode? # Use 6 for for really "raw" 16bit UCS-2, 7 for UTF-8, ... diff --git a/userdefs.h b/userdefs.h index a0537fcd..f3a2067a 100644 --- a/userdefs.h +++ b/userdefs.h @@ -610,53 +610,57 @@ * will be used as the default. Also see lynx.cfg for information about * the -raw switch and LYK_RAW_TOGGLE command. * - * The default character sets include: - * - * Display Character Set name MIME name - * ========================== ========= - * 7 bit approximations us-ascii - * Chinese euc-cn - * DEC Multinational dec-mcs - * DosArabic (cp864) cp864 - * DosBaltRim (cp775) cp775 - * DosCyrillic (cp866) cp866 - * DosGreek (cp737) cp737 - * DosGreek2 (cp869) cp869 - * DosHebrew (cp862) cp862 - * DosLatin1 (cp850) cp850 - * DosLatin2 (cp852) cp852 - * DosLatinUS (cp437) cp437 - * ISO 8859-10 iso-8859-10 - * ISO 8859-5 Cyrillic iso-8859-5 - * ISO 8859-6 Arabic iso-8859-6 - * ISO 8859-7 Greek iso-8859-7 - * ISO 8859-8 Hebrew iso-8859-8 - * ISO 8859-9 (Latin 5) iso-8859-9 - * ISO Latin 1 iso-8859-1 - * ISO Latin 2 iso-8859-2 - * ISO Latin 3 iso-8859-3 - * ISO Latin 4 iso-8859-4 - * Japanese (EUC) euc-jp - * Japanese (SJIS) shift_jis - * KOI8-R Cyrillic koi8-r - * Korean euc-kr - * Macintosh (8 bit) macintosh - * NeXT character set next - * RFC 1345 Mnemonic mnemonic - * RFC 1345 w/o Intro mnemonic+ascii+0 - * Taipei (Big5) big5 - * Transparent x-transparent - * UNICODE UTF-8 utf-8 - * Vietnamese (VISCII) viscii - * WinArabic (cp1256) windows-1256 - * WinBaltRim (cp1257) windows-1257 - * WinCyrillic (cp1251) windows-1251 - * WinGreek (cp1253) windows-1253 - * WinHebrew (cp1255) windows-1255 - * WinLatin1 (cp1252) windows-1252 - * WinLatin2 (cp1250) windows-1250 - */ -#define CHARACTER_SET "ISO Latin 1" + * Since Lynx now supports a wide range of platforms it may be useful + * to note that cpXXX codepages used by IBM PC compatible computers, + * and windows-xxxx used by native MS-Windows apps. + * + * Recognized character sets include: + * + * string for 'O'ptions Menu MIME name + * =========================== ========= + * 7 bit approximations (US-ASCII) us-ascii + * Western (ISO-8859-1) iso-8859-1 + * Western (cp850) cp850 + * Western (windows-1252) windows-1251 + * IBM PC US codepage (cp437) cp437 + * DEC Multinational dec-mcs + * Macintosh (8 bit) macintosh + * NeXT character set next + * Chinese euc-cn + * Japanese (EUC-JP) euc-jp + * Japanese (Shift_JIS) shift_jis + * Korean euc-kr + * Taipei (Big5) big5 + * Vietnamese (VISCII) viscii + * Eastern European (ISO-8859-2) iso-8859-2 + * Eastern European (cp852) cp852 + * Eastern European (windows-1250) windows-1250 + * Latin 3 (ISO-8859-3) iso-8859-3 + * Latin 4 (ISO-8859-4) iso-8859-4 + * Baltic Rim (cp775) cp775 + * Baltic Rim (windows-1257) windows-1257 + * Cyrillic (ISO-8859-5) is-8859-5 + * Cyrillic (cp866) cp866 + * Cyrillic (windows-1251) windows-1251 + * Cyrillic (KOI8-R) koi8-r + * Arabic (ISO-8859-6) iso-8859-6 + * Arabic (cp864) cp864 + * Arabic (windows-1256) windows-1256 + * Greek (ISO-8859-7) iso-8859-7 + * Greek (cp737) cp737 + * Greek2 (cp869) cp869 + * Greek (windows-1253) windows-1253 + * Hebrew (ISO-8859-8) iso-8859-8 + * Hebrew (cp862) cp862 + * Hebrew (windows-1255) windows-1255 + * Turkish (ISO-8859-9) iso-8859-9 + * ISO-8859-10 iso-8859-10 + * UNICODE (UTF-8) utf-8 + * RFC 1345 w/o Intro mnemonic+ascii+0 + * RFC 1345 Mnemonic mnemonic + * Transparent x-transparent + */ +#define CHARACTER_SET "iso-8859-1" /***************************** * PREFERRED_LANGUAGE is the language in MIME notation (e.g., "en", @@ -727,7 +731,7 @@ * cannot be opened as a local file (file://localhost/string). Both * can be comma-separated lists. Each prefix must end with a dot, each * suffix must begin with a dot, and either may contain other dots (e.g., - * .com.jp). The default lists are defined here, and can be changed + * .co.jp). The default lists are defined here, and can be changed * in lynx.cfg. Each prefix will be used with each suffix, in order, * until a valid Internet host is created, based on a successful DNS * lookup (e.g., foo will be tested as www.foo.com and then www.foo.edu @@ -1214,7 +1218,7 @@ * the version definition with the Project Version on checkout. Just * ignore it. - kw */ /* $Format: "#define LYNX_VERSION \"$ProjectVersion$\""$ */ -#define LYNX_VERSION "2.8.1dev.24" +#define LYNX_VERSION "2.8.1dev.25" #define LYNX_WWW_HOME "http://lynx.browser.org/" #define LYNX_WWW_DIST "http://www.slcc.edu/lynx/current/" #define LYNX_RELEASE FALSE |