diff options
84 files changed, 7809 insertions, 3224 deletions
diff --git a/.Lynx.prcs_aux b/.Lynx.prcs_aux deleted file mode 100644 index a127414d..00000000 --- a/.Lynx.prcs_aux +++ /dev/null @@ -1,395 +0,0 @@ -;; This file is automatically generated, editing may cause PRCS to do -;; REALLY bad things. -(Created-By-Prcs-Version 1 2 0) -(WWW/Library/djgpp/makefile 860 871777740 0_makefile 1.6) -(WWW/Library/Implementation/HTList.c 6153 856833014 h/4_HTList.c 1.1) -(WWW/Library/Implementation/HTGroup.h 5641 856833014 f/49_HTGroup.h 1.1) -(src/tcpwareolb.opt 24 856833014 d/8_tcpwareolb 1.1) -(src/LYGlobalDefs.h 12078 873831756 d/25_LYGlobalDe 1.1.3.1.2.1.1.1.1.1.1.2.1.6) -(CHANGES2-3 18114 856833014 h/46_CHANGES2-3 1.1) -(CHANGES2-4 48390 856833014 h/45_CHANGES2-4 1.1) -(WWW/Library/freebsd/Makefile 600 856833014 f/10_Makefile 1.1) -(lynx_help/Lynx_users_guide.html 116641 874389655 e/14_Lynx_users 1.8.1.1.1.1.1.1.1.2.1.3) -(CHANGES2-5 93256 856833014 h/44_CHANGES2-5 1.1) -(src/LYMail.h 475 860064663 c/43_LYMail.h 1.2) -(lynx_help/keystroke_commands/cookie_help.html 2652 856833014 e/15_cookie_hel 1.1) -(lynx_help/keystroke_commands/xterm_help.html 1162 856833014 e/19_xterm_help 1.1) -(CHANGES2-6 41847 856833014 b/0_CHANGES2-6 1.1) -(WWW/Library/Implementation/HTList.h 3636 856833014 g/17_HTList.h 1.1) -(WWW/Library/Implementation/HTUtils.h 10279 871654647 g/7_HTUtils.h 1.8) -(docs/README.txt 580 856833014 e/35_README.txt 1.1) -(src/LYSystem.h 211 856833014 c/38_LYSystem.h 1.1) -(WWW/Library/sco/Makefile 793 856833014 f/4_Makefile 1.1) -(utils/inews/version.c 100 856833014 c/0_version.c 1.1) -(WWW/Library/Implementation/LYexit.h 961 860064663 f/25_LYexit.h 1.1.1.2) -(about_lynx/COPYHEADER 825 856833014 e/40_COPYHEADER 1.1) -(src/chrtrans/rfc_suni.tbl 20516 860516309 i/0_rfc_suni.tbl 1.2) -(utils/inews/conf.h 3797 870050175 c/3_conf.h 1.1.1.2) -(WWW/README.txt 9430 856833014 e/47_README.txt 1.1) -(WWW/Library/Implementation/HTCJK.h 2933 860064663 f/30_HTCJK.h 1.2) -(src/LYDownload.c 16933 873383193 c/47_LYDownload 1.1.4.1.1.5) -(WWW/Library/apollo_m68k/Makefile 723 856833014 f/19_Makefile 1.1) -(src/chrtrans/cp852_uni.tbl 11362 860516309 i/6_cp852_uni. 1.2) -(test/ISO_LATIN1_test.html 3608 856833014 c/14_ISO_LATIN1 1.1) -(build.com 8386 868451907 e/38_build.com 1.2) -(lynx_help/lynx_url_support.html 28106 862290745 e/13_lynx_url_s 1.2) -(lynx_help/keystroke_commands/follow_help.html 7617 868266973 43_follow_hel 1.1.1.1.1.2) -(configure.in 12734 874539253 10_configure. 1.15) -(makefile.in 8238 874539253 8_makefile.i 1.1.1.13) -(src/LYDownload.h 315 856833014 c/46_LYDownload 1.1) -(src/chrtrans/cp1252_uni.tbl 10789 856856948 h/51_cp1252_uni 1.1) -(utils/inews/config.h-dist 13461 856833014 b/51_config.h-d 1.1) -(WWW/Library/Implementation/HTFTP.c 91171 868775901 h/14_HTFTP.c 1.6) -(src/GridText.c 194784 873651850 e/5_GridText.c 1.1.3.1.1.1.1.1.1.2.2.2.1.2.1.2.1.1.1.1.1.1.1.1.1.3.1.4) -(src/LYMain.c 87892 873831756 d/44_LYMain.c 1.1.2.1.1.1.1.1.1.2.2.1.1.1.1.1.1.1.1.1.1.1.1.3.1.6) -(src/tcpwareshr.opt 30 856833014 d/6_tcpwareshr 1.1) -(src/LYGetFile.c 36874 873651850 d/48_LYGetFile. 1.5.2.3.2.1.1.1.1.1.1.1.1.1.1.2.1.2) -(src/chrtrans/iso05_uni.tbl 1865 856925688 i/8_iso05_uni. 1.2) -(src/chrtrans/mnem_suni.tbl 24067 856856948 h/50_mnem_suni. 1.1) -(README.configure 7637 873383193 14_README.con 1.7) -(src/UCAuto.c 7083 868451907 b/17_UCAuto.c 1.1) -(src/LYTraversal.c 4411 873383193 c/25_LYTraversa 1.1.2.6) -(WWW/Makefile 203 856833014 e/44_Makefile 1.1) -(README 4344 856833014 h/34_README 1.1) -(WWW/Library/Implementation/HTVMSUtils.c 32765 868451907 h/23_HTVMSUtils 1.2) -(WWW/Library/Implementation/HTAAProt.c 16206 857148169 g/40_HTAAProt.c 1.2) -(WWW/Library/Implementation/HTFTP.h 1458 856833014 g/31_HTFTP.h 1.1) -(WWW/Library/Implementation/crypt.c 3468 856833014 f/38_crypt.c 1.1) -(src/GridText.h 6701 871141740 d/33_GridText.h 1.1.1.1.1.3.1.1.1.1.1.1.1.2) -(src/LYGetFile.h 687 863136190 d/18_LYGetFile. 1.1.2.2.1.2) -(utils/inews/config.h 13461 856833014 b/50_config.h 1.1) -(docs/RFC-MAILCAP.txt 31538 856833014 e/34_RFC-MAILCA 1.1) -(src/UCAuto.h 133 868451907 b/16_UCAuto.h 1.1) -(WWW/Library/unix/Makefile 713 861154810 f/9_Makefile 1.2) -(test/README.txt 377 856833014 c/15_README.txt 1.1) -(fixed512.com 1726 856833014 e/33_fixed512.c 1.1) -(src/LYTraversal.h 497 856833014 c/24_LYTraversa 1.1) -(WWW/Library/Implementation/HTAAProt.h 7708 856833014 f/46_HTAAProt.h 1.1) -(lynx_help/keystroke_commands/gopher_types_help.html 1091 856833014 e/26_gopher_typ 1.1) -(WWW/Library/Implementation/HTVMSUtils.h 2354 856833014 f/39_HTVMSUtils 1.1) -(src/LYExtern.c 2223 870960374 39_LYExtern.c 1.5.1.2) -(LYMessages_en.h 33083 873828926 h/37_LYMessages 1.4.1.4.1.2.1.1.1.1.1.1.3.1.1.1.1.4) -(lynx_help/keystroke_commands/keystroke_help.html 5115 868266973 e/28_keystroke_ 1.3.1.2) -(WWW/Library/umaxv-m88k/Makefile 678 856833014 e/48_Makefile 1.1) -(about_lynx/lynx-dev.html 2500 870960374 b/0_lynx-dev.h 1.1) -(WWW/Library/Implementation/HTBTree.c 26907 856833014 h/15_HTBTree.c 1.1) -(src/LYCookie.c 65029 873651850 c/18_LYCookie.c 1.2.1.6.1.1.1.1.1.3) -(src/LYExtern.h 174 868719652 38_LYExtern.h 1.1.1.1) -(src/DefaultStyle.c 9413 871141740 c/51_DefaultSty 1.1.2.2) -(VMSWAIS.announce 1549 856833014 h/29_VMSWAIS.an 1.1) -(WWW/Copyright.txt 944 856833014 e/46_Copyright. 1.1) -(src/chrtrans/Makefile 2170 873651850 b/18_Makefile 1.5) -(WWW/Library/Implementation/HTBTree.h 2196 856833014 g/32_HTBTree.h 1.1) -(src/LYKeymap.c 26856 864148507 d/31_LYKeymap.c 1.1.2.6.1.1) -(src/LYCookie.h 537 868688257 c/17_LYCookie.h 1.2) -(utils/lpansi/vmsbuild.com 1582 856833014 b/45_vmsbuild.c 1.1) -(src/chrtrans/cp866_uni.tbl 7986 871141740 c/0_cp866_uni. 1.1) -(CMU.announce 1178 856833014 h/43_CMU.announ 1.1) -(WWW/Library/convex/Makefile 723 856833014 f/2_Makefile 1.1) -(config.sub 19236 861154810 30_config.sub 1.1) -(src/AttrList.h 1306 864519259 33_AttrList.h 1.3) -(src/LYKeymap.h 4048 869443761 d/30_LYKeymap.h 1.1.2.5) -(src/gnuc.opt 84 856833014 d/12_gnuc.opt 1.1) -(WWW/Library/Implementation/HTML.h 5861 871707027 g/28_HTML.h 1.1.2.2.1.1.1.1.1.1.1.3) -(src/LYSearch.c 10569 868435012 d/38_LYSearch.c 1.2.2.5) -(WWW/Library/Implementation/ufc-crypt.h 2491 856833014 f/33_ufc-crypt. 1.1) -(src/socketshr_tcp.opt 16 856833014 d/9_socketshr_ 1.1) -(src/HTAlert.c 13496 871141740 e/4_HTAlert.c 1.1.2.1.1.2) -(src/LYUtils.c 137004 874539253 d/27_LYUtils.c 1.1.4.1.2.2.1.1.1.1.1.1.1.1.4.2.1.1.1.5) -(src/LYCharUtils.c 75183 874539253 c/22_LYCharUtil 1.2.1.1.2.1.2.2.1.2.1.1.1.2.1.1.1.1.1.1.2.3.1.7) -(PROBLEMS 7324 868157008 h/35_PROBLEMS 1.3) -(src/LYSearch.h 326 861212923 d/28_LYSearch.h 1.2) -(WWW/Library/next/Makefile 992 856833014 f/16_Makefile 1.1) -(src/LYCgi.c 15502 874539253 c/28_LYCgi.c 1.1.1.6) -(utils/lpansi/lpansi.c 4570 856833014 b/49_lpansi.c 1.1) -(src/chrtrans/iso09_uni.tbl 857 856925688 i/11_iso09_uni. 1.2) -(src/HTAlert.h 3353 871141740 d/1_HTAlert.h 1.2.1.2) -(lynx_help/lynx_help_main.html 2720 870960374 e/29_lynx_help_ 1.4) -(src/LYUtils.h 4197 873383193 d/34_LYUtils.h 1.1.2.4) -(src/LYCharUtils.h 2343 873828926 c/19_LYCharUtil 1.1.2.4) -(WWW/Library/decstation/Makefile 409 856833014 f/18_Makefile 1.1) -(src/LYCgi.h 133 856833014 c/27_LYCgi.h 1.1) -(WWW/Library/Implementation/HTChunk.c 2033 856833014 h/8_HTChunk.c 1.1) -(WWW/Library/clix/Makefile 683 856833014 e/49_Makefile 1.1) -(RELEASE_STATEMENT 1212 860264978 h/33_RELEASE_ST 1.2) -(utils/inews/README 2391 856833014 c/7_README 1.1) -(src/LYHistory.c 18771 873383193 d/21_LYHistory. 1.1.2.1.4.1.1.1.1.6) -(src/chrtrans/makeuctb.c 13972 873957320 b/19_makeuctb.c 1.1.1.1) -(utils/inews/Makefile 1484 857398594 c/9_Makefile 1.1.1.1) -(WWW/Library/Implementation/HTChunk.h 3543 856833014 g/26_HTChunk.h 1.1) -(src/ucxolb.opt 28 856833014 c/36_ucxolb.opt 1.1) -(lynx_help/keystroke_commands/option_help.html 15911 874389655 e/23_option_hel 1.8) -(lynx_help/keystroke_commands/bookmark_help.html 891 856833014 e/27_bookmark_h 1.1) -(src/LYList.c 7927 873383193 d/3_LYList.c 1.1.3.2.1.1.1.4) -(src/LYHistory.h 623 856833014 d/11_LYHistory. 1.1) -(src/chrtrans/cp850_uni.tbl 10229 860516309 i/19_cp850_uni. 1.2) -(src/chrtrans/README.tables 2959 868451907 b/23_README.tab 1.1) -(WWW/Library/Implementation/HTStyle.c 8994 860475643 h/5_HTStyle.c 1.3) -(samples/jumpsUnix.html 3328 856833014 e/8_jumpsUnix. 1.1) -(WWW/Library/Implementation/HTMLGen.c 14383 874539253 h/9_HTMLGen.c 1.1.2.5) -(WWW/Library/Implementation/HTStream.h 1802 856833014 g/21_HTStream.h 1.1) -(src/chrtrans/viscii_uni.tbl 4573 873651850 b/0_viscii_uni 1.1) -(src/chrtrans/build-header.com 932 868567209 c/0_build-head 1.1) -(src/chrtrans/iso04_uni.tbl 1858 856925688 i/15_iso04_uni. 1.2) -(WWW/Library/Implementation/HTFormat.c 26858 871654647 h/0_HTFormat.c 1.1.1.3) -(WWW/Library/Implementation/HTUU.c 7512 860064663 g/37_HTUU.c 1.2) -(WWW/Library/vms/libmake.com 6288 856833014 f/21_libmake.co 1.1) -(src/chrtrans/koi8r_uni.tbl 4799 871141740 b/29_koi8r_uni. 1.2.1.1) -(DESC 664 856833014 h/41_DESC 1.1) -(WWW/Library/Implementation/CommonMakefile 12740 873651850 f/41_CommonMake 1.4) -(src/LYVMSdef.h 562 856833014 c/16_LYVMSdef.h 1.1) -(src/LYList.h 262 861212923 c/26_LYList.h 1.2) -(src/chrtrans/cp1250_uni.tbl 10813 856856948 h/48_cp1250_uni 1.1) -(src/decc.opt 58 856833014 d/13_decc.opt 1.1) -(WWW/Library/Implementation/HTStyle.h 6777 871141740 g/18_HTStyle.h 1.1.1.2) -(CHANGES.new 133901 874539253 6_CHANGES.ne 1.18.1.4.1.1.2.1.1.2.2.2.1.2.1.1.1.1.1.4.2.7.1.3.1.4.1.28) -(WWW/Library/Implementation/HTMLGen.h 753 856833014 g/22_HTMLGen.h 1.1) -(WWW/Library/Implementation/HTFormat.h 11480 871654647 g/13_HTFormat.h 1.3) -(WWW/Library/Implementation/HTUU.h 964 856833014 f/43_HTUU.h 1.1) -(WWW/Library/Implementation/HTWSRC.c 11119 862857695 h/20_HTWSRC.c 1.1.1.1) -(src/chrtrans/UCkd.h 1425 868451907 b/20_UCkd.h 1.1) -(WWW/Library/Implementation/HTFile.c 61444 873831756 h/27_HTFile.c 1.1.3.1.1.8) -(src/chrtrans/mnemonic_suni.tbl 22265 868451907 b/28_mnemonic_s 1.1) -(WWW/Library/vms/COPYING.LIB 25265 856833014 f/20_COPYING.LI 1.1) -(src/chrtrans/MAKEW32.BAT 1019 873651850 3_MAKEW32.BA 1.5) -(WWW/Library/Implementation/HTWSRC.h 1320 856833014 g/3_HTWSRC.h 1.1) -(WWW/Library/sgi/Makefile 683 856833014 f/14_Makefile 1.1) -(WWW/Library/Implementation/HTFile.h 4772 856856948 g/33_HTFile.h 1.2) -(WWW/Library/isc/Makefile 679 856833014 e/50_Makefile 1.1) -(src/LYMap.c 10459 869443761 c/21_LYMap.c 1.1.2.1.1.2.1.2.1.2) -(src/LYPrint.c 31438 873831756 d/40_LYPrint.c 1.1.1.1.1.1.1.1.1.1.1.6) -(WWW/Library/Implementation/HTTelnet.c 15664 870960374 h/24_HTTelnet.c 1.5) -(about_lynx/about_lynx.html 4123 870960374 e/43_about_lynx 1.2) -(samples/mime.types 1057 856833014 e/9_mime.types 1.1) -(src/HTNestedList.h 1188 856833014 c/30_HTNestedLi 1.1) -(src/chrtrans/iso10_uni.tbl 1565 856925688 i/10_iso10_uni. 1.2) -(src/LYMap.h 240 861212923 c/20_LYMap.h 1.2) -(samples/jumpsVMS.html 1417 856833014 e/7_jumpsVMS.h 1.1) -(src/LYReadCFG.c 34052 873831756 d/39_LYReadCFG. 1.1.1.1.3.2.3.1.1.2.1.7) -(WWW/Library/vms/descrip.mms 9051 856833014 f/22_descrip.mm 1.1) -(src/LYPrint.h 304 856833014 d/7_LYPrint.h 1.1) -(Makefile.old 46228 872699434 h/36_Makefile 1.1.1.1.1.1.1.2.3.1.3.4) -(WWW/Library/Implementation/HTAccess.c 36271 870159729 h/17_HTAccess.c 1.5.2.2) -(WWW/Library/Implementation/HTTelnet.h 582 856833014 g/5_HTTelnet.h 1.1) -(WWW/Library/Implementation/HTAnchor.c 33588 873828926 h/6_HTAnchor.c 1.1.4.2.1.4) -(utils/inews/inews.c 7996 856833014 c/2_inews.c 1.1) -(src/LYReadCFG.h 219 856833014 c/41_LYReadCFG. 1.1) -(docs/README.html 686 856833014 e/36_README.htm 1.1) -(src/LYrcFile.c 29624 873383193 d/15_LYrcFile.c 1.1.3.8) -(src/UCAux.c 6869 873651850 b/15_UCAux.c 1.3.1.2) -(WWW/Library/Implementation/HTAccess.h 7620 860064663 g/35_HTAccess.h 1.3) -(WWW/Library/Implementation/HTAtom.c 3883 869552380 h/7_HTAtom.c 1.1.2.1) -(WWW/Library/Implementation/HTAAFile.c 5620 856833014 g/44_HTAAFile.c 1.1) -(WWW/Library/Implementation/HTPasswd.c 7766 856833014 g/43_HTPasswd.c 1.1) -(samples/mailcap 4772 871016304 e/11_mailcap 1.2) -(WWW/Library/Implementation/HTAnchor.h 14096 871141740 g/19_HTAnchor.h 1.1.4.3) -(src/chrtrans/iso06_uni.tbl 1663 873651850 b/34_iso06_uni. 1.3) -(src/LYrcFile.h 194 856833014 d/5_LYrcFile.h 1.1) -(src/LYUpload.c 8018 873383193 d/35_LYUpload.c 1.1.4.1.3.1.1.1.1.5) -(src/HTForms.h 3316 861212923 d/32_HTForms.h 1.2) -(WWW/Library/Implementation/HTAtom.h 1210 856833014 g/20_HTAtom.h 1.1) -(WWW/Library/Implementation/HTAAFile.h 4408 856833014 f/51_HTAAFile.h 1.1) -(WWW/Library/Implementation/HTPasswd.h 4717 856833014 f/50_HTPasswd.h 1.1) -(src/descrip.mms 5045 868451907 e/6_descrip.mm 1.2) -(src/LYSignal.h 300 856833014 d/23_LYSignal.h 1.1) -(lynx_help/keystroke_commands/other_help.html 6511 868266973 e/22_other_help 1.4) -(aclocal.m4 35309 874539253 12_aclocal.m4 1.20) -(WWW/Library/Implementation/patchlevel.h 959 856833014 f/34_patchlevel 1.1) -(userdefs.h 56784 873901913 c/10_userdefs.h 1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.3) -(TCPWARE.announce 1352 856833014 h/31_TCPWARE.an 1.1) -(WWW/Library/Implementation/HTMLDTD.c 63155 874539253 h/26_HTMLDTD.c 1.1.2.10) -(WWW/Library/Implementation/HTAssoc.c 1736 856833014 g/39_HTAssoc.c 1.1) -(WWW/Library/sun4/Makefile 578 856833014 f/11_Makefile 1.1) -(WWW/Library/vax_ultrix/Makefile 678 856833014 f/8_Makefile 1.1) -(src/LYUpload.h 300 856833014 c/49_LYUpload.h 1.1) -(lynx_help/keystroke_commands/edit_help.html 1409 856833014 e/17_edit_help. 1.1) -(src/LYLeaks.c 14710 873383193 c/31_LYLeaks.c 1.1.1.4) -(src/LYMainLoop.c 147911 873831756 d/43_LYMainLoop 1.2.4.2.2.1.2.6.1.2.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.5) -(about_lynx/about_lynx-dev.html 2500 856833014 e/42_about_lynx 1.1) -(VMSPrint.com 616 856833014 h/30_VMSPrint.c 1.1) -(WWW/Library/netbsd/Makefile 613 856833014 f/0_Makefile 1.1) -(WWW/Library/Implementation/UCAux.h 1084 873651850 f/0_UCAux.h 1.2) -(WWW/Library/Implementation/HTMLDTD.h 28548 874539253 g/27_HTMLDTD.h 1.1.2.7) -(WWW/Library/Implementation/HTAssoc.h 1096 856833014 f/45_HTAssoc.h 1.1) -(src/Makefile 2466 873651850 d/29_Makefile 1.1.4.1.2.4) -(WWW/Library/Implementation/HTAAUtil.c 15696 856833014 g/47_HTAAUtil.c 1.1) -(lynx.man 14570 870708759 e/30_lynx.man 1.5.2.6.1.2) -(WWW/Library/osf/Makefile 388 856833014 f/7_Makefile 1.1) -(src/LYMainLoop.h 101 860064663 d/19_LYMainLoop 1.2) -(build-slang.com 9442 868451907 e/39_build-slan 1.2) -(WWW/Library/unix/makefile.in 1329 874539253 16_makefile.i 1.6) -(samples/lynx.com 2192 856833014 e/10_lynx.com 1.1) -(src/chrtrans/README.format 3551 860516309 i/5_README.for 1.2) -(src/HTFont.h 438 871016304 d/0_HTFont.h 1.2) -(src/LYStrings.c 36219 874171801 d/36_LYStrings. 1.1.3.3.2.9) -(src/LYCharSets.c 110574 868567209 c/45_LYCharSets 1.1.1.1.1.2) -(WWW/Library/Implementation/Makefile 15116 856833014 f/40_Makefile 1.1) -(WWW/Library/Implementation/HTDOS.c 1855 860588360 28_HTDOS.C 1.1) -(utils/inews/README.NN 3051 856833014 c/6_README.NN 1.1) -(src/LYShowInfo.c 10826 873383193 d/37_LYShowInfo 1.1.2.1.5.1.1.1.2.4) -(src/chrtrans/iso01_uni.tbl 5204 860516309 i/18_iso01_uni. 1.2) -(WWW/Library/Implementation/HTAAUtil.h 12046 856833014 g/2_HTAAUtil.h 1.1) -(src/LYEdit.c 4287 868567209 d/50_LYEdit.c 1.1.2.1.1.2) -(utils/inews/clientlib.c 11163 856833014 c/5_clientlib. 1.1) -(src/HTML.c 215334 874539253 e/2_HTML.c 1.1.4.1.1.1.1.2.1.4.1.2.1.3.1.2.1.2.2.2.1.5) -(lynx_help/keystroke_commands/movement_help.html 1795 856833014 e/24_movement_h 1.1) -(src/LYStrings.h 4977 873651850 d/20_LYStrings. 1.1.1.5) -(WWW/Library/sun3/Makefile 636 856833014 f/12_Makefile 1.1) -(src/LYCharSets.h 1071 856856948 c/44_LYCharSets 1.2) -(WWW/Library/Implementation/HTDOS.h 771 860588360 27_HTDOS.H 1.1) -(CHANGES 58482 860264978 h/47_CHANGES 1.2) -(WWW/Library/Implementation/HTWAIS.c 29769 862857695 h/22_HTWAIS.c 1.1.1.1) -(install.sh 4771 858077955 9_install.sh 1.1) -(WWW/Library/Implementation/SGML.c 75324 874539253 h/12_SGML.c 1.1.1.1.1.1.2.4.1.9) -(WWW/Library/Implementation/HTRules.c 11040 856833014 h/1_HTRules.c 1.1) -(src/LYShowInfo.h 316 856833014 c/39_LYShowInfo 1.1) -(src/LYEdit.h 134 856833014 d/16_LYEdit.h 1.1) -(utils/inews/clientlib.h 230 856833014 c/4_clientlib. 1.1) -(src/HTML.h 6067 873828926 c/48_HTML.h 1.1.2.2.2.1.1.1.1.5) -(src/LYStyle.c 9096 874539253 36_LYStyle.c 1.7) -(newfiles.chartrans 1399 873651850 b/0_newfiles.chartrans 1.5) -(WWW/Library/Implementation/HTParse.c 20852 860064663 h/18_HTParse.c 1.3) -(src/HTFWriter.c 35073 873831756 d/2_HTFWriter. 1.1.3.1.3.1.1.1.1.1.3.1.1.8) -(WWW/Library/Implementation/HTWAIS.h 1554 856833014 g/4_HTWAIS.h 1.1) -(WWW/Library/unix_x/Makefile 15482 856833014 f/1_Makefile 1.1) -(WWW/Library/Implementation/SGML.h 8810 874539253 g/29_SGML.h 1.1.2.3) -(WWW/Library/Implementation/HTRules.h 4105 856833014 g/14_HTRules.h 1.1) -(lynx.cfg 77771 873831756 e/32_lynx.cfg 1.2.1.2.1.1.2.1.1.2.1.3.1.5) -(src/HTInit.c 31186 873828926 e/3_HTInit.c 1.1.4.1.3.1.1.4) -(WWW/Library/snake/Makefile 649 856833014 f/13_Makefile 1.1) -(src/LYStyle.h 682 874539253 b/5_LYStyle.h 1.3) -(WWW/Library/Implementation/UCDefs.h 2687 873651850 e/0_UCDefs.h 1.2) -(test/tabtest.html 1412 856833014 c/11_tabtest.ht 1.1) -(SOCKETSHR.announce 1704 856833014 h/32_SOCKETSHR. 1.1) -(WWW/Library/Implementation/HTParse.h 4930 856833014 g/36_HTParse.h 1.1) -(src/chrtrans/build-chrtrans.com 3791 873651850 b/22_build-chrt 1.5) -(WWW/Library/Implementation/HTInit.c 9452 856833014 g/51_HTInit.c 1.1) -(WWW/Library/Implementation/HTAAServ.c 18320 856833014 g/46_HTAAServ.c 1.1) -(lynx_help/keystroke_commands/print_help.html 1235 856833014 e/21_print_help 1.1) -(src/LYStructs.h 3277 868401363 d/26_LYStructs. 1.1.3.4) -(utils/lpansi/lpansi.1 3039 856833014 b/47_lpansi.1 1.1) -(WWW/Library/Implementation/HTMIME.c 63875 873831756 g/50_HTMIME.c 1.1.2.2.1.1.1.1.1.4) -(WWW/Library/Implementation/HTVMS_WaisProt.c 70622 856833014 f/32_HTVMS_Wais 1.1) -(src/cmu_tcp.opt 34 856833014 d/14_cmu_tcp.op 1.1) -(WWW/Library/ptx/Makefile 626 856833014 e/51_Makefile 1.1) -(src/chrtrans/makefile.in 2741 874539253 18_makefile.i 1.8) -(WWW/Library/Implementation/HTAuth.c 5776 856833014 h/28_HTAuth.c 1.1) -(lynx.hlp 14941 870708759 e/31_lynx.hlp 1.10.1.2) -(src/HTSaveToFile.h 554 856833014 c/50_HTSaveToFi 1.1) -(src/LYCurses.c 39987 874539253 d/51_LYCurses.c 1.1.5.1.1.1.1.1.1.9) -(WWW/Library/Implementation/HTInit.h 657 873828926 g/12_HTInit.h 1.2) -(WWW/Library/Implementation/HTAAServ.h 4950 856833014 g/1_HTAAServ.h 1.1) -(WWW/Library/mips/Makefile 663 856833014 f/3_Makefile 1.1) -(test/iso8859-1.html 12169 856833014 c/12_iso8859-1. 1.1) -(WWW/Library/Implementation/HTTP.c 53564 872229662 h/16_HTTP.c 1.1.1.1.1.1.1.1.1.2.1.1.1.5) -(WWW/Library/Implementation/UCMap.h 932 870983973 i/22_UCMap.h 1.4) -(about_lynx/COPYING 17982 856833014 e/41_COPYING 1.1) -(styles/lynx.lss 1490 862005876 37_lynx.lss 1.1) -(README.win-386 1477 857398594 2_386-WIN.TX 1.2) -(WWW/Library/Implementation/HTString.c 3364 856833014 h/3_HTString.c 1.1) -(WWW/Library/Implementation/HTMIME.h 2336 868688257 g/11_HTMIME.h 1.2) -(WWW/Library/Implementation/LYLeaks.h 4165 856833014 f/29_LYLeaks.h 1.1) -(WWW/Library/Implementation/HTVMS_WaisProt.h 13173 856833014 f/28_HTVMS_Wais 1.1) -(WWW/Library/Implementation/HTAuth.h 1791 856833014 f/47_HTAuth.h 1.1) -(src/chrtrans/utf8_uni.tbl 928 873651850 i/7_utf8_uni.t 1.2) -(WWW/Library/Implementation/HTTCP.c 30059 871707027 h/13_HTTCP.c 1.2.3.1.1.1.1.1.1.2) -(src/LYCurses.h 9728 873901913 d/22_LYCurses.h 1.1.4.1.1.1.1.10) -(descrip.mms 3765 868451907 e/37_descrip.mm 1.2) -(WWW/Library/Implementation/HTTP.h 672 869443761 g/34_HTTP.h 1.2) -(test/TestComment.html 2032 856833014 c/13_TestCommen 1.1) -(src/makefile.dos 2364 871863841 1_makefile.d 1.7) -(WWW/Library/Implementation/HTString.h 1153 856833014 g/16_HTString.h 1.1) -(WWW/Library/Implementation/Version.make 10 856833014 f/42_Version.ma 1.1) -(MAKEFILE.W32 17568 862109152 5_MAKEFILE.W 1.2) -(WWW/Library/djgpp/CommonMakefile 13108 870960374 26_CommonMake 1.2) -(src/chrtrans/iso03_uni.tbl 1872 856925688 i/16_iso03_uni. 1.2) -(WWW/Library/Implementation/HTTCP.h 3160 860899928 g/30_HTTCP.h 1.3) -(src/win_tcp.opt 36 856833014 c/33_win_tcp.op 1.1) -(config.guess 20446 862326975 31_config.gue 1.2) -(src/LYHash.c 981 868224571 35_LYHash.c 1.3) -(config.hin 4280 874539253 11_config.hin 1.16) -(FM.announce 3655 856833014 h/40_FM.announc 1.1) -(src/chrtrans/cp1251_uni.tbl 6144 871141740 b/0_cp1251_uni 1.2) -(src/LYHash.h 791 868224571 34_LYHash.h 1.4) -(WWW/Library/Implementation/HTPlain.c 15618 873651850 h/11_HTPlain.c 1.1.2.3) -(WWW/Library/svr4/Makefile 590 856833014 f/5_Makefile 1.1) -(src/LYGCurses.h 6123 856833014 c/32_LYGCurses. 1.1) -(WWW/Library/Implementation/HTAlert.c 3066 868157008 h/2_HTAlert.c 1.2) -(src/vaxc.opt 54 856833014 c/34_vaxc.opt 1.1) -(src/chrtrans/MAKEFILE.W32 1857 857398594 4_MAKEFILE.W 1.1) -(configure 193746 874539253 13_configure 1.20) -(WWW/Library/Implementation/HTPlain.h 460 856833014 g/25_HTPlain.h 1.1) -(WWW/Library/Implementation/HTLex.c 3090 856833014 g/38_HTLex.c 1.1) -(utils/inews/Manifest 649 856833014 c/8_Manifest 1.1) -(src/ucxshr.opt 28 856833014 c/35_ucxshr.opt 1.1) -(WWW/Library/Implementation/HTAlert.h 3353 871016304 g/15_HTAlert.h 1.3) -(WWW/Library/Implementation/HText.h 6874 868157008 g/6_HText.h 1.3) -(lynx_help/keystroke_commands/dired_help.html 1683 856833014 e/18_dired_help 1.1) -(WWW/Library/Implementation/getpass.c 1649 856833014 f/35_getpass.c 1.1) -(WWW/Library/Implementation/HTLex.h 1293 856833014 f/44_HTLex.h 1.1) -(src/LYJump.c 11339 864519259 d/47_LYJump.c 1.3) -(WWW/Library/Implementation/HTWriter.c 3883 856833014 h/21_HTWriter.c 1.1) -(lynx_help/keystroke_commands/visited_help.html 1401 856833014 e/16_visited_he 1.1) -(WWW/Library/Implementation/crypt_util.c 25993 856833014 f/37_crypt_util 1.1) -(src/LYLocal.c 58445 874539253 d/46_LYLocal.c 1.2.3.1.3.10) -(src/LYJump.h 553 860064663 c/29_LYJump.h 1.2) -(WWW/Library/Implementation/HTWriter.h 632 856833014 g/24_HTWriter.h 1.1) -(CHANGES.configure 9809 874539253 15_CHANGES.co 1.1.1.14) -(INSTALLATION 19916 873651850 h/38_INSTALLATI 1.2) -(WWW/Library/Implementation/HTVMS_WaisUI.c 60814 856833014 f/27_HTVMS_Wais 1.1) -(utils/inews/nntp.h 2530 856833014 c/1_nntp.h 1.1) -(src/LYLocal.h 2561 856833014 c/37_LYLocal.h 1.1) -(src/chrtrans/iso07_uni.tbl 1791 856925688 i/13_iso07_uni. 1.2) -(src/LYOptions.c 74505 873383193 d/41_LYOptions. 1.1.2.1.1.1.1.1.1.3.1.5) -(WWW/Library/Implementation/HTNews.c 70630 874539253 h/25_HTNews.c 1.1.2.1.1.4) -(WWW/Library/Implementation/HTVMS_WaisUI.h 21281 856833014 f/26_HTVMS_Wais 1.1) -(src/LYNews.c 11698 873383193 d/42_LYNews.c 1.2.4.1.1.1.2.4) -(WWW/Library/rs6000/Makefile 610 856833014 f/15_Makefile 1.1) -(utils/lpansi/README 3202 856833014 b/48_README 1.1) -(WWW/Library/Implementation/BSDI_Makefile 13904 859167360 f/31_BSDI_Makef 1.2) -(WWW/BUILD 1376 856833014 e/45_BUILD 1.1) -(CRAWL.announce 5978 856833014 h/42_CRAWL.anno 1.1) -(WWW/Library/Implementation/HTACL.c 6107 856833014 g/41_HTACL.c 1.1) -(src/LYOptions.h 1290 869904256 d/17_LYOptions. 1.1.2.5) -(WWW/Library/Implementation/HTNews.h 1150 856833014 g/9_HTNews.h 1.1) -(src/LYNews.h 240 869443761 c/42_LYNews.h 1.2) -(CHANGES.chartrans 8256 873651850 c/0_CHANGES.chartrans 1.9.1.4.1.1.1.1.1.5) -(src/UCdomap.c 46858 873651850 b/14_UCdomap.c 1.3.1.3) -(WWW/Library/Implementation/HTACL.h 3535 856833014 f/48_HTACL.h 1.1) -(IBMPC-charsets.announce 7674 856833014 h/39_IBMPC-char 1.1) -(WWW/Library/Implementation/HTFinger.c 11422 874539253 f/24_HTFinger.c 1.2) -(src/chrtrans/iso08_uni.tbl 1667 873651850 b/32_iso08_uni. 1.3) -(src/makefile.in 3469 874539253 17_makefile.i 1.12) -(src/UCdomap.h 1174 868567209 b/0_UCdomap.h 1.2) -(src/chrtrans/cp437_uni.tbl 10794 860516309 i/9_cp437_uni. 1.2) -(WWW/Library/Implementation/HTAABrow.c 36175 868266973 g/45_HTAABrow.c 1.2.1.2) -(src/chrtrans/iso02_uni.tbl 2035 860516309 i/17_iso02_uni. 1.3) -(WWW/Library/Implementation/HTFinger.h 476 856833014 f/23_HTFinger.h 1.1) -(src/LYBookmark.c 23027 873383193 e/1_LYBookmark 1.1.2.1.1.8) -(lynx_help/keystroke_commands/scrolling_help.html 2366 856833014 e/20_scrolling_ 1.1) -(src/LYClean.c 3603 869443761 e/0_LYClean.c 1.1.4.1.1.4) -(WWW/Library/Implementation/HTHistory.c 3973 856833014 g/49_HTHistory. 1.1) -(WWW/Library/Implementation/HTAABrow.h 5323 868157008 g/0_HTAABrow.h 1.2) -(src/chrtrans/def7_uni.tbl 25142 874030712 25_def7_uni.t 1.4) -(src/LYBookmark.h 534 857148169 c/40_LYBookmark 1.2) -(WWW/Library/Implementation/getline.c 1882 856833014 f/36_getline.c 1.1) -(newfiles.configure 272 861154810 7_newfiles.c 1.4) -(WWW/Library/Implementation/HTFWriter.c 7487 856833014 h/10_HTFWriter. 1.1) -(src/LYEditmap.c 5899 856833014 c/23_LYEditmap. 1.1) -(src/LYForms.c 36862 873383193 d/49_LYForms.c 1.1.4.1.2.1.1.1.1.7) -(WWW/Library/Implementation/HTGopher.c 53197 874539253 g/48_HTGopher.c 1.4) -(src/LYClean.h 390 869443761 d/24_LYClean.h 1.1.2.1) -(WWW/Library/Implementation/HTGroup.c 18502 856833014 g/42_HTGroup.c 1.1) -(WWW/Library/Implementation/HTHistory.h 2830 856833014 g/10_HTHistory. 1.1) -(lynx_help/keystroke_commands/history_help.html 1801 856833014 e/25_history_he 1.1) -(src/multinet.opt 39 856833014 d/10_multinet.o 1.1) -(utils/lpansi/Makefile 447 856833014 b/46_Makefile 1.1) -(README.chartrans 8305 863760678 d/0_README.chartrans 1.6) -(WWW/Library/Implementation/tcp.h 16670 874030712 h/19_tcp.h 1.1.1.1.3.3) -(WWW/Library/Implementation/HTFWriter.h 998 856833014 g/23_HTFWriter. 1.1) -(src/LYexit.c 3615 869552380 d/4_LYexit.c 1.6) -(src/LYMail.c 30870 873831756 d/45_LYMail.c 1.1.1.1.1.1.3.1.1.1.2.5) -(WWW/Library/solaris2/Makefile 655 856833014 f/6_Makefile 1.1) -(WWW/Library/Implementation/HTGopher.h 562 856833014 g/8_HTGopher.h 1.1) -(samples/lynx.cfg 77665 873831756 e/12_lynx.cfg 1.2.1.2.1.1.2.1.1.1.1.1.1.3.1.5) -(WWW/Library/duns/Makefile 15116 856833014 f/17_Makefile 1.1) diff --git a/CHANGES.configure b/CHANGES.configure index 3cd7a4cd..8d7c190c 100644 --- a/CHANGES.configure +++ b/CHANGES.configure @@ -1,3 +1,12 @@ +97-10-21 +-------- +* revised tests for wait/waitpid/union-wait. - TD +* correct/update handling of default prefix in CF_WITH_PATH macro, used for + parsing --with-cfg-file and --with-lss-file options. - TD +* add uninstall target to top-level makefile. - TD +* remove redundant install options from $(INSTALL_DATA). - TD +* add configure --with-lss-file option. +* minor cleanup of gcc warnings, ifdefs. - TD 97-10-08 -------- * add logic to implement mouse button 2 "previous document" for diff --git a/CHANGES.new b/CHANGES.new index 2f765a09..317761d0 100644 --- a/CHANGES.new +++ b/CHANGES.new @@ -10,6 +10,81 @@ README.configure), and miscellaneous other changes. Note that the 2.7 -> 2.7.1 changes (which are listed at the beginning of the current CHANGES file) are duplicated here. - KW] +1997-10-27 +* Updated links to www.w3.org in help files. - KW +* Some changes for DOS compilation. - DK +* Changes to INSTALLATION file. - NHE +* Tweaks of internal links stuff. - KW +* Allow HEAD on URLs starting with LYNXIMGMAP:http by stripping the + prefix. - KW +* Reverted LYCheckForCSI() to previous incarnation. - KW +1997-10-26 +* If compiled with -DDONT_TRACK_INTERNAL_LINKS, behavior with respect to + internal links as in FM's code. - KW +* Some chartrans tweaks. - KW +1997-10-25 +* Changes to INSTALLATION file. - NHE +* Make temp file names conform to 8+3 naming convention for DOS, and + give LYNX_TEMP_SPACE priority over TEMP and TMP for DOS. - DK +* Create temp file names with '-' char as separator between pid and + sequential number for non-8+3 systems, to prevent (unlikely) + collision. - KW +1997-10-24 +* Change in HTML.c to use the base (rather than current document, if the + base differs) in all cases for form ACTIONs (i.e., if the ACTION is + empty, or has a lone fragment, or an ACTION attribute is not included) + as specified in the -07 to -09 Fielding URL drafts. - FM +1997-10-23 +* Fixed a few typos and glued together a few URLs to make it easier for + folk to cut and paste them, in the new INSTALLATION file. - LVW +1997-10-22 +* Many locations of files changed, about_lynx/ directory and references to + aboutfilepath removed, userdefs.h reorganized, changed README, new + INSTALLATION file, doc changes, some doc files removed. - NHE + (Removed paragraph in README which doesn't apply yet, some files still + not done - KW) +* Patch to WWW/Library/djgpp/makefile - WS +* Added entity names from HTML 4.0 draft to extra entities in HTMLDTD.c - KW +* Understand lists in ACCEPT-CHARSET attributes. Added a list of forms + to GridText structure (currently underused). - KW +* Don't try to use box drawing chars in UTF-8 display mode. - KW +* Changed chartrans mechanism (UCdomap.c, makeuctb.c) so that the "default" + translation table is now used as a fallback for other translation tables. + This also applies to display character sets which do not have a chartrans + table file but are listed in LYCharSets.c. Changed syntax of table files + (see src/chrtrans/README.format), added a keyword to disable using the + fallback. Currently def7_uni (corresponding to "7 bit approximations" + and the MIME charset "us-ascii") is used as default table, as before; + but previously the default table didn't have any real meaning. + Conceptually every translation table (unless it disables fallback) is + extended as if it included all the replacements from the default table. + Note that mappings for some characters in the default table file still + differ from the old mappings given in LYCharSets.c, and what is displayed + e.g. for umlaut characters may not be consistent, this still has to be + sorted out. It may just have become more visible now. - KW +* Tweaks to some replacement strings in def7_uni.tbl; contributions of + more useful strings would be welcome... - KW +* Removed mappings for invalid chars from some chartrans files, removed + Ethiopic chars from iso01_uni.tbl. - KW +* Some other corrections and tweaks for chartrans mechanisms. - KW +1997-11-21 +* Fixed handling of Control-D (delete character under the cursor) in the + line editor when the cursor is at the end of the line instead of on a + character in the string being edited. - FM +* revised tests for wait/waitpid/union-wait. - TD +* correct/update handling of default prefix in CF_WITH_PATH macro, used for + parsing --with-cfg-file and --with-lss-file options. - TD +* add uninstall target to top-level makefile. - TD +* remove redundant install options from $(INSTALL_DATA). - TD +* add configure --with-lss-file option. +* minor cleanup of gcc warnings, ifdefs. - TD +1997-10-20 +* Mods in the CSO/PH gateway to set the anchor's safe flag to TRUE so the + user need not be bothered with confirmation prompts on resubmissions of + the search form. - FM +* Tweaked the break point setting code in GridText.c for CJK di-bytes + so that one is set after a recognized "ESC(" ISO 2022 escape sequence + has been found. - FM 1997-10-16 * Tweaks to recognition of Japanese (better recognize x-euc-*), and to the mechanism in GridText.c keeping track of which encoding is used for @@ -25,7 +100,7 @@ file) are duplicated here. - KW] may still revert to the usual assumption about charset, which means a charset specified in a META tag may be forgotten at that point; this may be considered a feature... - KW -* Refer to TagSoup and SortaSGML parsing (coinded by FM), rather than "old" +* Refer to TagSoup and SortaSGML parsing (coined by FM), rather than "old" and "new" DTD. - KW * Made some of the changes concerning and removal and location changes of files proposed by NHE. - KW @@ -41,7 +116,7 @@ file) are duplicated here. - KW] * Added LYLeakSACopy and LYLeakSACat to LYLeaks.c. Running Lynx compiled with LY_FIND_LEAKS defined will now give the source locations where StrAllocCopy and StrAllocCat are used, if those create leaks. Added - missing incude of LYLeaks.h in LYCookie.c. - KW + missing include of LYLeaks.h in LYCookie.c. - KW * More heavy tweaks in LYCharUtils.c. Associated changes in HTChunk.c (new functions), small change for -raw (in connection with attribute values) in SGML_character. LYCharUtils.c is still a work in @@ -86,8 +161,8 @@ file) are duplicated here. - KW] * A tweak of color style memory allocation. - KW 1997-10-09 * Some more tweaks from FM for VMS build - KW -* For DJGPP compilation, src/chrtrans/makefile.dos - Bill Schiavo - <Wschiavo@concentric.net> +* For DJGPP compilation, src/chrtrans/makefile.dos - WS (Bill Schiavo + <Wschiavo@concentric.net>) * Some cleanup in Hext_SubmitForm (needs more). Start using ACCEPT-CHARSET (doesn't recognize list yet, only recognized if on the INPUT field that causes submission). - KW diff --git a/COPYHEADER b/COPYHEADER new file mode 100644 index 00000000..b441aee7 --- /dev/null +++ b/COPYHEADER @@ -0,0 +1,20 @@ +/* Copyright (C) 1995 University of Kansas. + + This file is part of Lynx, a text-based, WWW browser. + + Lynx is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License, version 2, as + published by the Free Software Foundation. + + Lynx is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with Lynx; see the file COPYING. If not, write to the Free + Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + + Any licensing or usage questions should be directed to Michael + Grobe <grobe@ukans.edu>. +*/ diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..a43ea212 --- /dev/null +++ b/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/INSTALLATION b/INSTALLATION index a73294e3..48ae1628 100644 --- a/INSTALLATION +++ b/INSTALLATION @@ -1,92 +1,279 @@ -For a description of Lynx please read the README file. - - Lynx Installation guide. - - Last Updated February 1997 - -UNIX & VMS Step 1a. - Most of the variables that you are likely to change are in the - userdefs.h file. There are a few that you must change or verify, - and a few more that you will probably want to change. The variables - that must be changed are marked as such in the userdefs.h file. - Just edit it and the changes should be straight forward. You also - should check LYMessages_en.h for tailoring the Lynx statusline - prompts, messages and warnings to requirements of your site. - - NOTE: Many of the variables in userdefs.h are now configurable in - the lynx.cfg file. Please read the lynx.cfg file as well. - Also see the example mime.types, mailcap and jumps files - in the samples subdirectory. - -UNIX & VMS Step 1b. (optional) - Set up local printers and downloaders - in the lynx.cfg file. (see lynx.cfg for details) - -UNIX & VMS Step 1c. (optional) - If your system requires the PASV FTP code instead of - the standard PORT FTP code (e.g., to deal with a - firewall) then edit WWW/Library/Implementation/HTFTP.c - and comment out line 43 like so: - /* #define LISTEN /* @@@@ Test LJM */ - On Unix you can define NOPORT in the top Makefile instead - of changing HTFTP.c - -UNIX Extra Step: !! CONFIGURATION !! - There now is a configure script which takes care of system-dependent - setting automatically. See the file README.configure for more details. - You may want to run "./configure --help" first to see what flags are - available. - - Run configure, eg "./configure", and - wait while it figures out what software is on your - computer, what type of computer and operating system - you have, etc, and then finally uses makefile.in - to produce the makefile that will get used when - you finally (later on) say "make". - - The rest of this file has not yet been updated for installation with - the configure script. The information in README.configure is newer - and should be consulted. In particular UNIX Steps 1f and 2 below should - not be necessary on most systems after "./configure" has been run - (running "make" is of course still required, but it does not reqire - specifying a system type). Other points mostly still apply. If you - need or want to make manual change in addition to the auto configuration, - note that "makefile" is now used instead of "Makefile". - -UNIX Step 1d. (WAIS support is built into Lynx for VMS, skip to step 1e) - Adding Direct WAIS support. - Get the freeWAIS distribution from: - ftp://ftp.cnidr.org/pub/NIDR.tools/freewais - and compile it. The compile process will create some libraries, you will - need wais.a and client.a. Edit the Makefile in the top level directory - and add the library locations under the DIRECT WAIS ACCESS heading. - Edit the Makefile for the WWW Library in the - WWW/Library/Implementation/CommonMakefile to make the WAIS.c sources - in the library. If everything goes well you should - be able to make and have direct WAIS access. - -UNIX & VMS Step 1e. - Adding NEWS support. - To set your site's NTTP server as the default host for news reading - and posting via Lynx, set the environment variable NNTPSERVER so that - it points to its Internet address (see Step 5). - - For news posting ability to be enabled in Lynx, in userdefs.h (and - optionally in lynx.cfg) the NEWS_POSTING symbol must be defined to - TRUE. Also define LYNX_SIG_FILE in usersdefs.h or lynx.cfg so that - it points to users' signature files for appending to posted messages. - For the Organization: header in news postings, Lynx checks for an - ORGANIZATION or NEWS_ORGANIZATION environment variable. On Unix, - Lynx also checks for an /etc/organization file. - -UNIX Step 1f. (Sun systems) - Sun resolv library. - On Sun systems you may need to define RESOLVLIB in the top Makefile - to enable access to remote hosts. See the comments in the Makefile - and PROBLEMS file for more information. - -VMS Step 1f. - Downloading binary files. + + Lynx Installation Guide + +This file describes how to compile and install Lynx. A description of +Lynx can be found in the README file. Lynx has been ported to UN*X, VMS, +Win32 and 386DOS. The procedures for compiling these ports are quite +divergent, and are detailed respectively in Sections II, III, IV and V. + +First, however, you must configure Lynx for your system regardless of the +port you will be using. Follow the instructions given immediately below to +configure for your system, and then go to the respective section concerning +the port you wish to compile. General installation and environment +variables are covered in Sections VI and VII. + + +I. General configuration instructions (all ports). + +Step 1. (define compile-time variables) + There are a few variables that you MUST change or verify, and a few + more that you will probably want to change. The variables that must be + changed are marked as such in the userdefs.h file. Just edit it, and + the changes should be straight forward. Check LYMessages_en.h for + tailoring the Lynx statusline prompts, messages and warnings to the + requirements of your site. The strings in LYMessages_en.h may be + translated into a language of your choice. If you rename the file, + be sure to change the definition in "userdefs.h". + +Step 2. (define run-time variables -- See the lynx.cfg file for details.) + Set up local printers, downloaders, assumed character set, key mapping, + and colors in the lynx.cfg file. Many of the variables in "userdefs.h" + are now configurable in the lynx.cfg file. Please read "lynx.cfg" + thoroughly as many of the features of Lynx, and how to use them, are + explained. Also see the example mime.types, mailcap and jumps files in + the samples subdirectory. Lynx must be able to find the lynx.cfg file + at start-up. The location of the lynx.cfg file may be compiled in using + the LYNX_CFG_FILE define in userdefs.h, specified with an environment + variable, LYNX_CFG, or specified with the "-cfg" command line option. + +Step 3. (Skip this step if you only use English: iso-8859-1 or US-ASCII.) + People who will be running Lynx in an environment with different and + incompatible character sets should configure CHARACTER_SET (the Display + character set) and ASSUME_LOCAL_CHARSET to work correctly for them + before starting to create bookmark files et cetera. Please read + "lynx.cfg" for detailed instructions. + +Step 4. (optional -- news for UNIX and VMS) + Set NNTPSERVER in "lynx.cfg" to your site's NNTP server, or set the + environment variable externally. (See "VII. Setting environment + variables before running Lynx" for help on setting this and other + environment variables which affect Lynx.) For news posting ability + to be enabled in Lynx, in userdefs.h (and optionally in lynx.cfg) the + NEWS_POSTING symbol must be defined to TRUE. Also define LYNX_SIG_FILE + in usersdefs.h or lynx.cfg so that it points to users' signature files + for appending to posted messages. + +Step 5. (optional -- UNIX only) + To add direct WAIS support, get the freeWAIS distribution from + "ftp://ftp.cnidr.org/pub/NIDR.tools/freewais", and compile it. The compile + process will create the libraries you will need, wais.a and client.a. Edit + the Makefile in the top level directory and add the library locations under + the DIRECT WAIS ACCESS heading. Edit the Makefile for the WWW Library in + "WWW/Library/Implementation/CommonMakefile" to point to the include + directory for the freewais distribution. Precompiled libraries are + available for many platforms if you don't wish to compile one yourself. + +Step 6. (Anonymous account -- VERY IMPORTANT!!!!! -- ) + If you are building Lynx for your personal use only you may skip this + step. If you are setting up an anonymous account with Lynx, you are + STRONGLY advised to use the -anonymous command line option. If you do + not use this option, users may be able to gain access to all readable + files on your machine! ALSO NOTE that many implementations of telnetd + allow passing of environment variables, which might be used by + unscrupulous people to modify the environment in anonymous accounts. + When making Lynx and Web access publicly available via anonymous + accounts intended to run Lynx captively, be sure the wrapper uses the + -cfg switch to specify the startfile, rather than relying on the + LYNX_CFG, LYNX_CFG_FILE, or WWW_HOME variables. + + +II. Compile instructions -- UNIX + +1a. Auto-configure. The auto-configure script uses autoconf 2.12 to generate + a Bourne shell script, configure, which can be run on a UNIX platform to + create "lynx_cfg.h" and "makefile" to replace the top-level Makefile. + + To use the configure script, simply type + + ./configure + or ./configure --with-screen=ncurses + or ./configure --with-screen=slang + + and + make + + NOTE: Lynx is a curses-based application, so you must have a curses + library available to link to. Native curses (on the system when it was + installed) are often broken, so you may get superior performance if you + have either "ncurses" ("ftp://ftp.clark.net/pub/dickey/ncurses" or "slang" + ("ftp://space.mit.edu/pub/davis/slang"). If you install these libraries + in your home directory or a non-default location, you may need to set the + CPPFLAGS (full path to include files) and LIBS (full path to library files) + environment variables BEFORE running configure. See "1d. Environment". + +1b. Platforms. Configure should work properly on any Unix-style system. + It has been tested on the following platforms. + + AIX 3.2.5 (cc with curses) + CLIX (cc with curses and ncurses) + DGUX + Digital Unix 3.2C (gcc and cc with slang) + FreeBSD 2.1.5 (gcc 2.6.3 with curses and ncurses) + HP-UX (K&R and ANSI cc, gcc with curses, ncurses and slang) + IRIX 5.2 and 6.2 (cc and gcc with curses, ncurses and slang) + Linux 2.0.0 (gcc 2.7.2 with curses, ncurses and slang) + NetBSD + SCO (cc with curses) + Solaris 2.5 (cc and gcc with curses, ncurses and slang) + SunOS 4.1 (cc curses, gcc ncurses and slang) + + NOTE: SunOS and HP-UX come with a bundled K&R compiler, which is only + useful for compiling with the bundled curses. Both ncurses and slang + require a compiler that recognizes prototypes. + +1c. Options + To get a list of the configure script's options, type + + ./configure --help + + Here's an alphabetical listing of the Lynx-specific options. The actual + order shown by the -help option is different due to the requirements of + the script: + + --disable-dired (defines DIRED_SUPPORT) + Use this option to enable or disable the optional + directory-editor. + + Lynx supports directory editing (DirEd) for local directories. + This allows users to do things like view, copy and remove files + using a tabular display of the directory and single-keystroke + commands instead of using the command line. From inside Lynx, + the keystroke sequence "g.<enter>" switches Lynx to DirEd mode + on the current directory. If you're building a Lynx that is to + be used as a kind of restricted shell for users who do not have + access to the command line and should not have access to + equivalent capabilities, you must disable DirEd with this + option. You can also disable some DirEd functions while + allowing others. + + All DirEd functions that were enabled on compilation can be + disabled or modified at run time via DIRED_MENU symbols in + lynx.cfg. + + If you have disabled DirEd completely, you can ignore all the + other DirEd options. + + --disable-dired-archive (define ARCHIVE_ONLY) + Use this option to prevent DirEd from extracting files from an + archive file, + + --disable-dired-gzip (prevent defining OK_GZIP) + Use this option to prevent DirEd from using gzip and gunzip. + + --disable-dired-override (prevent defining OK_OVERRIDE) + Lynx users can customize their keymaps by creating private + versions of lynx.cfg and modifying them to override the default + keymap. Use this option to prevent DirEd keymap overriding. + + --disable-dired-permit (prevent defining OK_PERMIT) + Use this option to prevent DirEd from changing the permissions + on directories or files (i.e., from doing what the Unix chmod + command or the DOS attrib command does). + + --disable-dired-tar (prevent defining OK_TAR) + Use this option to prevent DirEd from using the tar program. + + --disable-dired-uudecode (prevent defining OK_UUDECODE) + Use this option to prevent DirEd from using uudecode. + + --disable-dired-xpermit (define NO_CHANGE_EXECUTE_PERMS) + Use this option if you do not disable out the dired-permit + option, but want to restrict changes of the eXecute permission + to directories (i.e., not allow it to be changed for files). If + you don't do this, you can still block changes of the eXecute + permission for files but not directories via the + "change_exec_perms" command line restriction. + + --disable-dired-zip (prevent defining OK_ZIP) + Use this option to prevent DirEd from using zip and unzip. + + --disable-echo + Use this option to suppress the "compiling" commands during a build. + Doing this makes it easier to find and read warning messages. + + --disable-full-paths + Use this option to control whether full utility pathnames are used. + By default, configure substitutes full pathnames. + + --disable-long-list (prevent defining LONG_LIST) + Use this option to disable long "ls -l" directory listings. + + --disable-parent-dir-refs (define NO_PARENT_DIR_REFERENCE) + Use this option to disable "Up-to" parent-links in directory listings. + + --enable-color-style (define USE_COLOR_STYLE) + Use this option to enable optional/experimental color style. + (Also defines USEHASH, UNPAINT_CACHE, LINKEDSTYLES) + + --enable-debug + Use this option to compile-in support for debugging. + (The symbol DEBUG is always defined). + + --enable-find-leaks (defines LY_FIND_LEAKS) + Use this option to compile-in logic for testing memory leaks. + + --enable-warnings + Use this option to turn on GCC compiler warnings. + + --with-cfg-file=XXX (defines LYNX_CFG_FILE) + Use this option to override the location of the site + configuration file's pathname. It defaults to $libdir/lynx.cfg, + where $libdir is set in the configure script, e.g., to + /usr/local/lib. + + --with-screen=XXX + Use this option to select the screen type. The option value, + XXX must be one of curses (the default), ncurses or slang. + Specifying a screen type causes the configure script to look in + standard locations for the associated header and library files, + unless you have preset the $CFLAGS and $LIBS variables. + + --with-screen=ncurses (defines NCURSES) + --with-screen=slang (defines USE_SLANG) + + --with-zlib (defines USE_ZLIB) + Use zlib for decompression of some gzip files. + +1d. Environment (documented in great detail in the autoconf package) + + The configure script looks for programs and libraries in known/standard + locations. You can override the behavior of the script by presetting + environment variables. If they are set, the script will try to use these + values rather than computing new ones. Useful variables include: + + CC - the C compiler. If you do not override this, configure + will try to use gcc. + + CFLAGS - the C compiler options. These also include C + preprocessor options (such as -I), since the $CFLAGS and + $CPPFLAGS variables are maintained separately. + + CPPFLAGS - the C preprocessor options. For some configuration + tests, you may need to set both $CFLAGS and $CPPFLAGS if + you are compiling against header files in nonstandard + locations. + + LDFLAGS - linker/loader options. + + LIBS - the libraries to be linked, with -L and -l options. If + you are linking against libraries in nonstandard locations + unrelated to the install prefix (that you can specify in + the configure script) you may have to specify these via + the $LIBS variable. + +-- 1997/7/27 - T. Dickey <dickey@clark.net> + +2. Manual compile + If auto-configure does not work for you, or you prefer to compile + Lynx manually, "docs/Makefile.old" will serve as a template for the + top-level Makefile, and instructions on how to compile are given in + "docs/INSTALLATION.old". Compilation symbols for which there are no + configure options are listed and explained in "docs/Makefile.old". + + +III. Compile instructions -- VMS + +Step 1. Downloading binary files. Lynx must handle all IO as streams, and on VMS, output files are always created with Stream_LF format via the C RTL's fopen(). The file headers indicate Implied Carriage Control, even when the transfer was in binary @@ -101,40 +288,17 @@ VMS Step 1f. command on current versions of VMS, to modify the headers. See the comments in FIXED512.COM, userdefs.h and lynx.cfg for more information. +Step 2. Passive FTP + If your system requires the PASV FTP code instead of the standard + PORT FTP code (e.g., to deal with a firewall) then edit "WWW/Library/ + Implementation/HTFTP.c" and comment out line 43 like so: + /* #define LISTEN /* @@@@ Test LJM */. -UNIX Step 2. - VMS users skip to 'VMS step 2' - - Check the top level Makefile for any site-specific definitions - you require or desire. Then, you should be ready to compile! - - If you type "make" with no arguments you will see a list of - supported systems. If your system type IS listed you just - need to type "make SYSTEM_TYPE". For instance, if you are - running under IBM's RS/6000 AIX 3.2 you would just type - "make aix32". If you were running Ultrix you would type - "make ultrix". - - If you are on a SUN workstation and do not have 'gcc' you - may change 'gcc' to '/usr/5bin/cc' in the Makefile - - If you are on a system that is not listed in the makefile it may be - more difficult. The first thing you should try is just "make generic", - this will compile with the "fancy_curses" option, and will give a much - nicer screen display. If it doesn't compile or if the screen display - looks strange (real strange), try compiling with the "low_curses" option. - Edit the Makefile and remove the '-DFANCY_CURSES' definition under the - 'generic:' entry. There may be some compatibility problems on some - systems, but we don't know what they might be at this point. If you - are running on a currently unsupported system please contact us via - the lynx-dev email list (see RELEASE_STATEMENT). If there are any - problems we will try to fix them as soon as possible. - -VMS step 2. +Step 3a. Lynx uses the VMS port of gzip for uncompressing streams which have Content-Encoding headers indicated compression with gzip or the Unix compress. If you do not have gzip installed on your system - you can get it from ftp://ftp.wku.edu/ in the fileserv directory. + you can get it from "ftp://ftp.wku.edu/" in the fileserv directory. The command Lynx uses to uncompress on VMS is "gzip -d". If you are using the SOCKETSHR library, read SOCKETSHR.announce and @@ -162,7 +326,7 @@ VMS step 2. use DECC to benefit from the newer and more efficient memory management functions. - (optional compilation method) +Step 3b. (optional compilation method) If you have and want to use MMS, read the header of descrip.mms in the top directory and be sure you include the appropriate macro definitions when you invoke it: @@ -201,73 +365,166 @@ VMS step 2. not just Lynx. -UNIX Step 3. - Go ahead and test it out with the about_lynx/about_lynx.html file. - You shouldn't need to install Lynx to test it. - Once you are satisfied that it works, go ahead and install it. - - VERY IMPORTANT!!!!! - If you are setting up an anonymous account with Lynx you - are strongly advised to use the -anonymous command line - option. If you do not use this option, users may be able - to gain access to all readable files on your machine. - ALSO NOTE that many implementations of telnetd allow passing - of environment variables, which might be used by unscrupulous - people to modify the environment in anonymous accounts. When - making Lynx and Web access publicly available via anonymous - accounts intended to run Lynx captively, be sure the wrapper - uses the -cfg switch and specifies the startfile, rather than - relying on the LYNX_CFG, LYNX_CFG_FILE, or WWW_HOME variables. - -VMS Step 3. - Go ahead and test it out with the [.about_lynx]about_lynx.html file. - You shouldn't need to install Lynx to test it. - Once you are satisfied that it works, go ahead and install it. - - VERY IMPORTANT!!!!! - If you are setting up an anonymous account with Lynx you - are strongly advised to use the -anonymous command line - option. If you do not use this option, users will be able - to gain access to all readable files on your machine. - ALSO NOTE that some implementations of telnet allow passing - of environment variables, which might be used by unscrupulous - people to modify the environment in anonymous accounts. When - making Lynx and Web access publicly available via anonymous - accounts intended to run Lynx captively, be sure the wrapper - uses the -cfg switch and specifies the startfile, rather than - relying on the LYNX_CFG, LYNX_CFG_FILE, or WWW_HOME variables. - - -UNIX Step 4. (Installation) - Lynx is very easy to install, if you want Lynx installed anywhere - besides "/usr/local/bin", with the man files in "/usr/man/man1", you - need to edit the Makefile and change the "exec" and "doc" defines. - Otherwise just "su" to root and type "make install" and make will - copy "lynx", "lynx.cfg" and "lynx.1" to the specified directories. - Those are the only two files necessary to run Lynx. - lynx.1 isn't really necessary, but it should be available. - lynx.cfg isn't absolutely necessary either but is the only way - to configure printers and downloaders (and uploaders if DIRED_SUPPORT - is implemented), so it is highly recommended. - Also check out the mailcaps, mime.types and jumps file samples in the - samples directory. - -VMS Step 4. - You need to have the executable in a public place, make it accessible, - define it as a foreign command, and copy lynx.cfg to "Lynx_Dir". Look - at lynx.com in the samples directory as a model for installing Lynx. - Also check out the mailcaps, mime.types and jumps file samples in the - samples directory. To include lynx.hlp in the system HELP library, - use the command: - - $ library/replace sys$help:helplib.hlb lynx.hlp - - -UNIX and VMS Step 5. - Lynx uses some environment variables to regulate it's behavior. - - The variable "NNTPSERVER" is used to specify the host which will - be used as the default for news URLs. +IV. Compile instructions -- Win32 (Windows95/NT) + + Ports have been added for Win32 (95/NT) and 386 DOS systems (see + below). I created the following four defines to accomplish this: + _WINDOWS Defined for Win32 specific code (Mostly TCP related) + DJGPP Defined for 386 specific code (Mostly TCP related) + DOSPATH Defined for any DOS'ish computer + NOSIGHUP Defined for computers not supporting sighup signal calls. + + The original Win32 port was built with Borland C++ 4.52. Later versions + of Borland C++ reportedly can be used, but this is not documented, and no + other compilers have been tested. Before compiling the Lynx sources, you + need a curses library, and you are recommended to have the zlib library. + Get pdcurses2.3 from "http://www.lightlink.com/hessling/". I have + modified it so that mouse support is no longer broken for Lynx (available + from "http://www.fdisk.com/doslynx/"). You will want to get zlib from + "http://www.cdrom.com/pub/infozip/zlib/". Compile these libraries, and + put them in a convenient place (pdcurses inside the Lynx directory). + + Unpack the latest Lynx source distribution, and make an obj directory + under the source root to contain the compile output. Copy in your + IDE file. A sample IDE file and helper libraries are available at + "http://www.fdisk.com/doslynx/wlynx/source/". + + First build the .h files in src\chrtrans using "MAKEW32.BAT". Double + check for new .tbl files; hand edit in any new ones, and then do "makew32". + Jump into Borland C++, load the project (IDE file) and compile Lynx. + Alternately, after compiling the chartrans tables, you can come back to + the top directory and do "make -f makefile.w32". + + I also have a binary available at "http://www.fdisk.com/doslynx/". This + binary was compiled with pdcurses 2.3, hacked so win32 mouse support works, + and with zlib, so Lynx can do gzip routines internally. More hints and + information can be found in "http://www.fdisk.com/doslynx/lynxport.htm". + +-- 1997/10/12 - W. Buttles <lynx-port@fdisk.com> + + +V. Compile instructions -- 386 DOS + + Compiling for DOS with DJGPP is a multistep procedure. First install + the c compiler and its libraries. DJGPP, as distributed from the + usual DJGPP archives, will not successfully compile lynx. You need to + "stubedit" your "cc1.exe" file. The following parameters have worked + successfully: minstack=800k, bufsize=64k. To accomplish this, move to + the djgpp\bin directory and type the command: + "stubedit cc1.exe bufsize=64k minstack=800k". + Or do it interactively with the command: "stubedit cc1.exe". + (see "http://www.flora.org/lynx-dev/html/month0897/msg00145.html"). + + Unpack the source code using a DOS "unzip" program like UNZIP386, DOS + port of GNU "gzip" or "gunzip", or the command line zip available from + "http://www.itribe.net/virtunix/". If you must use PKUNZIP to unpack the + .zip archive, be sure to use the -d command line switch to restore the + directory structure contained in the archive ("pkunzip -d lynx-cur.zip"). + This is not necessary if you use UNZIP386, as it will automatically create + the necessary directories. If you are doing development with DJGPP under + a Win95 or NT DOS shell, DO NOT USE Winzip, because that will create long + long filenames that will not be recognized by DJGPP tools like 'make' and + 'gcc'. In order to compile, all filenames MUST be in DOS 8.3 format. + + If you wish to compile with "USE_ZLIB" (recommended), you must have the + zlib library. Get the source from "http://www.cdrom.com/pub/infozip/zlib/" + and compile it. Put libz.a in the lib subdirectory of DJGPP, and put + zlib.h and zconf.h in the include subdirectory. + + In addition to the files in the Lynx distribution, you will need a + curses package and a TCP package. You can use PDCurses (available at + "http://www.lightlink.com/hessling/") and the DJGPP port of WATTCP + (available in two different versions at "ftp://neonatal.sm.ic.ac.uk/" + and at "http://lab1.psy.univie.ac.at/~michael/tcplib-dj200.html"). + You can also use slang ("ftp://space.mit.edu/pub/davis/slang") as your + curses library. It has not been fully ported to DOS yet, however. + See "http://www.flora.org/lynx-dev/html/month1097/msg00390.html". You + need to compile these before you go any further. If you wish to use the + beta version of PDCurses 2.3, you need to first apply a patch (available at + "http://www.flora.org/lynx-dev/html/month0997/msg00441.html"). If you have + trouble applying the patch, we recommend that you use the "patch" program, + ("http://www.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/pat25b.zip"). To + read the Unix man style documentation, use, for example, "less" + ("http://www.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/lss332b.zip"). + + Move to the "lynx2-*/WWW/Library/djgpp" directory and do "make". This + should compile libwww.a. Next move to the "lynx2-*/src/chrtrans" + directory and do "make -f makefile.dos" to compile the character tables. + Then move to the "lynx2-*/src" directory and do "make -f makefile.dos". + If all goes well, you will have a lynx.exe file. + + You probably want to test lynx now, but lynx_386 won't work without a + packet driver installed. For testing purposes, you can use + slip8250.com. It is available in the CRYNWR package (available at + "http://www.simtel.net/pub/simtelnet/msdos/pktdrvr/pktd11.zip"). + Usage is "slip8250 0x60". For connecting over a dialup PPP connection + you need a package such as dosppp or klos' pppshare (available at + "http://www.simtel.net/pub/simtelnet/msdos/pktdrvr/dosppp05.zip" and + "ftp://ftp.klos.com/demo/pppshare.exe"). + + See "http://www.fdisk.com/doslynx/lynxport.htm" for more hints and some + precompiled libraries. + +-- 1997/9/29 - D. Kaufman <dkaufman@rahul.net> +-- 1997/10/3 - B. Schiavo <Wschiavo@concentric.net> + + +VI. General installation instructions + + Once you have compiled Lynx, test it out on "lynx_help/about_lynx.html". + You shouldn't need to install Lynx to test it. Once you are satisfied + that it works, go ahead and install Lynx. + + For Unix, type "make install". + + For VMS, you need to have the executable in a public place, make it + accessible, define it as a foreign command, and copy lynx.cfg to + "Lynx_Dir". Look at lynx.com in the samples directory as a model for + installing Lynx. To include lynx.hlp in the system HELP library, use + the command: "$ library/replace sys$help:helplib.hlb lynx.hlp". + + If you have old, pre-existing bookmark files from earlier versions of + Lynx, those files may have to be updated. Conversion may just consist + of adding one META line near the top, or may require creating new book- + mark files and editing in bookmarks from outdated files. + + IMPORTANT! Be sure you have read the warnings about setting up an + anonymous account with Lynx if you plan to give public access to Lynx. + + You are urged to make local copies of the Lynx online help accessible in + response to the Lynx 'h'elp command by defining HELPFILE in userdefs.h + and/or lynx.cfg to an appropriate file://localhost/path URL. Copy the + files "COPYHEADER" and "COPYING" into the lynx_help directory (on Unix, + do "cp COPY* lynx_help") BEFORE moving the lynx_help tree to its final + location. These files are referenced hypertextually from help documents. + See "http://www.irm.nara.kindai.ac.jp/lynxdev/README.help" for tips on + installation of the help file tree. + + After applying patches or editing files to correct for an unsuccessful + build, be certain to do a "make clean" (or "make distclean" for those + using auto-configure) before attempting to compile again. + + If something doesn't work, or you can't get it to compile at all, or + you can't figure out what one of the defines means, read the PROBLEMS + file and *.announce files in the docs subdirectory. The docs/CHANGES* + files record the complete history of Lynx development and are an invaluable + resource for understanding how Lynx should perform. + + If you still have difficulties, send an email message to the Lynx-Dev + mailing list (see the README file). Try to include pertinent information + about your system, the OS you are using, the name and version of your + compiler, which curses library you are using and the compile-time errors. + Be sure to say what version and image-number (alternately the top date + of the CHANGES file) of Lynx you are trying to build. + + +VII. Setting environment variables before running Lynx (optional) + +1. Unix and VMS + To set your site's NTTP server as the default host for news reading + and posting via Lynx, set the environment variable NNTPSERVER so that + it points to its Internet address. The variable "NNTPSERVER" is used + to specify the host which will be used as the default for news URLs. UNIX setenv NNTPSERVER "news.server.dom" @@ -275,31 +532,26 @@ UNIX and VMS Step 5. VMS define/system NNTPSERVER "news.server.dom" - The environment variables "ORGANIZATION" or "NEWS_ORGANIZATION", if set, - will be used for the Organization: header in news postings. - + will be used for the Organization: header in news postings. (On Unix, + Lynx also checks for an /etc/organization file.) The environment variable "LYNX_CFG", if set, will override the default location and name of the global configuration file (lynx.cfg) that was defined via the constant "LYNX_CFG_FILE" in userdefs.h. See userdefs.h for more information. - The environment variable "LYNX_TEMP_SPACE", if set, will override the default path prefix for temporary files that was defined via the constant "TEMP_SPACE" in userdefs.h. See userdefs.h for more information. - The environment variable "LYNX_SAVE_SPACE", if set, will override the default path prefix for files saved to disk that was defined via the constant "SAVE_SPACE" in lynx.cfg. See lynx.cfg for more information. - The variable "WWW_HOME", if set, will override the default startup URL specified in any of the configuration files. - Lynx still supports use of gateway servers, with the servers specified via the variables "WWW_access_GATEWAY", where "access" is lower case and can be "http", "ftp", "gopher" or "wais". Most of the gateway @@ -307,7 +559,6 @@ UNIX and VMS Step 5. available for wais searches (note that you do not include a terminal '/' for gateways, but do for proxies; see below). - Lynx version 2.2 and beyond supports the use of proxy servers that can act as firewall gateways and caching servers. They are preferable to the older gateway servers. Each protocol used by Lynx can be mapped @@ -383,17 +634,32 @@ UNIX and VMS Step 5. The proxy and no_proxy variables also can be set at run time via lynx.cfg. - - Copies of the Lynx online help are included in the lynx_help - subdirectory tree and should be made accessible in response to - the Lynx 'h'elp command by defining HELPFILE in userdefs.h and/or - lynx.cfg to an appropriate file://localhost/path URL. +2. Win32 (95/NT) and 386 DOS (adapted from "readme.txt" by Wayne Buttles) -UNIX & VMS Step 6. (Hopefully Optional) - If something doesn't work, or you can't get it to compile at all, or - you can't figure out what one of the defines means, or if you just - want to make a comment, send an email message to the Lynx-Dev mailing - list (see the README file about subscribing to Lynx-Dev). Until Lynx - has been ported to all the world's operating systems, we expect there - will be some compatibility problems, but we'll do our best to help you. + HOME Where to keep the bookmark file and personal config files. + LYNX_CFG The full path and filename for lynx.cfg + TEMP or TMP Bookmarks are kept here with no HOME. Temp files here. + TERM Set TERM=vt100 to stop that annoying terminal type message. + USER Tells Lynx you are real instead of an anonymous user(?) + + 386 version only: + WATCONF Where to find the wattcp.cfg file. + WATTCP.CFG Where to find the wattcp.cfg file. + (only one applies, depending on how you compiled your tcp library) + + Define these in your batch file for running Lynx. For example, if your + application line is "D:\win32\lynx.bat", lynx.bat may look like: + @ECHO OFF + set home=d:\win32 + set temp=d:\tmp + set lynx_cfg=d:\win32\lynx.cfg + d:\win32\lynx.exe %1 %2 %3 %4 %5 + + +VIII. Acknowledgment + + Thanks to the many volunteers who offered suggestions for making this + installation manual as accurate and complete as possible. + +-- 1997/10/27 - H. Nelson <lynx-admin@irm.nara.kindai.ac.jp> diff --git a/Lynx.prj b/Lynx.prj deleted file mode 100644 index f738744c..00000000 --- a/Lynx.prj +++ /dev/null @@ -1,467 +0,0 @@ -;; -*- Lisp -*- -(Created-By-Prcs-Version 1 2 0) -(Project-Description "PRCS Project for The Lynx browser") -(Project-Version Lynx 2.7.1ac-0 68) -(Parent-Version Lynx 2.7.1ac-0 67) - -(Version-Log "misc configure script fixes. rebuilt on all of the platforms I've got -(Linux, Solaris, SunOS, IRIX, CLIX, SCO, AIX, HP-UX). Probably will work -_now_ on HP-UX 10.x -") -(New-Version-Log "") -(Checkin-Time "Wed, 17 Sep 1997 17:34:13 -0600") -(Checkin-Login dickey) -(Populate-Ignore ("\\.o$" "\\.a$" "~$" "^a.out$" "^core$" - "\\.dvi$" "\\.aux$" "^\\..*_aux$" "\\.log" - "\\.zip$" "^obsolete" "/obsolete" - "/chrtrans/.*uni_h" "\\.h_old$" - "^lynx$" "/lynx$" "\\.bak$" "\\.old$" "\\.rej$" "\\.orig$" - "w3chttp\\.")) -(Project-Keywords) -(Files -;; This is a comment. Fill in files here. -;; For example: (prcs/checkout.cc ()) - -;; Files added by populate at Mon, 24 Feb 1997 18:11:17 -0600: - - (CHANGES2-6 (Lynx/b/0_CHANGES2-6 1.1 644)) - (utils/lpansi/vmsbuild.com (Lynx/b/45_vmsbuild.c 1.1 644)) - (utils/lpansi/Makefile (Lynx/b/46_Makefile 1.1 644)) - (utils/lpansi/lpansi.1 (Lynx/b/47_lpansi.1 1.1 644)) - (utils/lpansi/README (Lynx/b/48_README 1.1 644)) - (utils/lpansi/lpansi.c (Lynx/b/49_lpansi.c 1.1 644)) - (utils/inews/config.h (Lynx/b/50_config.h 1.1 644)) - (utils/inews/config.h-dist (Lynx/b/51_config.h-d 1.1 644)) - (utils/inews/version.c (Lynx/c/0_version.c 1.1 644)) - (utils/inews/nntp.h (Lynx/c/1_nntp.h 1.1 644)) - (utils/inews/inews.c (Lynx/c/2_inews.c 1.1 644)) - (utils/inews/conf.h (Lynx/c/3_conf.h 1.1.1.2 644) :no-keywords) - (utils/inews/clientlib.h (Lynx/c/4_clientlib. 1.1 644)) - (utils/inews/clientlib.c (Lynx/c/5_clientlib. 1.1 644)) - (utils/inews/README.NN (Lynx/c/6_README.NN 1.1 644)) - (utils/inews/README (Lynx/c/7_README 1.1 644)) - (utils/inews/Manifest (Lynx/c/8_Manifest 1.1 644)) - (utils/inews/Makefile (Lynx/c/9_Makefile 1.1.1.1 644) :no-keywords) - (userdefs.h (Lynx/c/10_userdefs.h 1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.3 644)) - (test/tabtest.html (Lynx/c/11_tabtest.ht 1.1 644)) - (test/iso8859-1.html (Lynx/c/12_iso8859-1. 1.1 644)) - (test/TestComment.html (Lynx/c/13_TestCommen 1.1 644)) - (test/ISO_LATIN1_test.html (Lynx/c/14_ISO_LATIN1 1.1 644)) - (test/README.txt (Lynx/c/15_README.txt 1.1 644)) - (src/LYVMSdef.h (Lynx/c/16_LYVMSdef.h 1.1 644)) - (src/LYCookie.h (Lynx/c/17_LYCookie.h 1.2 644)) - (src/LYCookie.c (Lynx/c/18_LYCookie.c 1.2.1.6.1.1.1.1.1.3 644)) - (src/LYCharUtils.h (Lynx/c/19_LYCharUtil 1.1.2.4 644)) - (src/LYMap.h (Lynx/c/20_LYMap.h 1.2 644)) - (src/LYMap.c (Lynx/c/21_LYMap.c 1.1.2.1.1.2.1.2.1.2 644)) - - (src/LYEditmap.c (Lynx/c/23_LYEditmap. 1.1 644)) - (src/LYTraversal.h (Lynx/c/24_LYTraversa 1.1 644)) - (src/LYTraversal.c (Lynx/c/25_LYTraversa 1.1.2.6 644)) - (src/LYList.h (Lynx/c/26_LYList.h 1.2 644)) - (src/LYCgi.h (Lynx/c/27_LYCgi.h 1.1 644)) - (src/LYCgi.c (Lynx/c/28_LYCgi.c 1.1.1.6 644)) - (src/LYJump.h (Lynx/c/29_LYJump.h 1.2 644)) - (src/HTNestedList.h (Lynx/c/30_HTNestedLi 1.1 644)) - (src/LYLeaks.c (Lynx/c/31_LYLeaks.c 1.1.1.4 644)) - (src/LYGCurses.h (Lynx/c/32_LYGCurses. 1.1 644)) - (src/win_tcp.opt (Lynx/c/33_win_tcp.op 1.1 644)) - (src/vaxc.opt (Lynx/c/34_vaxc.opt 1.1 644)) - (src/ucxshr.opt (Lynx/c/35_ucxshr.opt 1.1 644)) - (src/ucxolb.opt (Lynx/c/36_ucxolb.opt 1.1 644)) - (src/LYLocal.h (Lynx/c/37_LYLocal.h 1.1 644)) - (src/LYSystem.h (Lynx/c/38_LYSystem.h 1.1 644)) - (src/LYShowInfo.h (Lynx/c/39_LYShowInfo 1.1 644)) - (src/LYBookmark.h (Lynx/c/40_LYBookmark 1.2 644)) - (src/LYReadCFG.h (Lynx/c/41_LYReadCFG. 1.1 644)) - (src/LYNews.h (Lynx/c/42_LYNews.h 1.2 644)) - (src/LYMail.h (Lynx/c/43_LYMail.h 1.2 644)) - (src/LYCharSets.h (Lynx/c/44_LYCharSets 1.2 644)) - (src/LYCharSets.c (Lynx/c/45_LYCharSets 1.1.1.1.1.2 644)) - (src/LYDownload.h (Lynx/c/46_LYDownload 1.1 644)) - (src/LYDownload.c (Lynx/c/47_LYDownload 1.1.4.1.1.5 644)) - (src/HTML.h (Lynx/c/48_HTML.h 1.1.2.2.2.1.1.1.1.5 644)) - (src/LYUpload.h (Lynx/c/49_LYUpload.h 1.1 644)) - (src/HTSaveToFile.h (Lynx/c/50_HTSaveToFi 1.1 644)) - (src/DefaultStyle.c (Lynx/c/51_DefaultSty 1.1.2.2 644)) - (src/HTFont.h (Lynx/d/0_HTFont.h 1.2 644)) - (src/HTAlert.h (Lynx/d/1_HTAlert.h 1.2.1.2 644)) - (src/HTFWriter.c (Lynx/d/2_HTFWriter. 1.1.3.1.3.1.1.1.1.1.3.1.1.8 644)) - (src/LYList.c (Lynx/d/3_LYList.c 1.1.3.2.1.1.1.4 644)) - (src/LYexit.c (Lynx/d/4_LYexit.c 1.6 644)) - (src/LYrcFile.h (Lynx/d/5_LYrcFile.h 1.1 644)) - (src/tcpwareshr.opt (Lynx/d/6_tcpwareshr 1.1 644)) - (src/LYPrint.h (Lynx/d/7_LYPrint.h 1.1 644)) - (src/tcpwareolb.opt (Lynx/d/8_tcpwareolb 1.1 644)) - (src/socketshr_tcp.opt (Lynx/d/9_socketshr_ 1.1 644)) - (src/multinet.opt (Lynx/d/10_multinet.o 1.1 644)) - (src/LYHistory.h (Lynx/d/11_LYHistory. 1.1 644)) - (src/gnuc.opt (Lynx/d/12_gnuc.opt 1.1 644)) - (src/decc.opt (Lynx/d/13_decc.opt 1.1 644)) - (src/cmu_tcp.opt (Lynx/d/14_cmu_tcp.op 1.1 644)) - (src/LYrcFile.c (Lynx/d/15_LYrcFile.c 1.1.3.8 644)) - (src/LYEdit.h (Lynx/d/16_LYEdit.h 1.1 644)) - (src/LYOptions.h (Lynx/d/17_LYOptions. 1.1.2.5 644)) - (src/LYGetFile.h (Lynx/d/18_LYGetFile. 1.1.2.2.1.2 644)) - (src/LYMainLoop.h (Lynx/d/19_LYMainLoop 1.2 644)) - (src/LYStrings.h (Lynx/d/20_LYStrings. 1.1.1.5 644)) - (src/LYHistory.c (Lynx/d/21_LYHistory. 1.1.2.1.4.1.1.1.1.6 644)) - (src/LYCurses.h (Lynx/d/22_LYCurses.h 1.1.4.1.1.1.1.10 644)) - (src/LYSignal.h (Lynx/d/23_LYSignal.h 1.1 644)) - (src/LYClean.h (Lynx/d/24_LYClean.h 1.1.2.1 644)) - (src/LYGlobalDefs.h (Lynx/d/25_LYGlobalDe 1.1.3.1.2.1.1.1.1.1.1.2.1.6 644)) - (src/LYStructs.h (Lynx/d/26_LYStructs. 1.1.3.4 644)) - - (src/LYSearch.h (Lynx/d/28_LYSearch.h 1.2 644)) - (src/Makefile (Lynx/d/29_Makefile 1.1.4.1.2.4 644)) - (src/LYKeymap.h (Lynx/d/30_LYKeymap.h 1.1.2.5 644)) - (src/LYKeymap.c (Lynx/d/31_LYKeymap.c 1.1.2.6.1.1 644)) - (src/HTForms.h (Lynx/d/32_HTForms.h 1.2 644)) - (src/GridText.h (Lynx/d/33_GridText.h 1.1.1.1.1.3.1.1.1.1.1.1.1.2 644)) - (src/LYUtils.h (Lynx/d/34_LYUtils.h 1.1.2.4 644)) - (src/LYUpload.c (Lynx/d/35_LYUpload.c 1.1.4.1.3.1.1.1.1.5 644)) - (src/LYStrings.c (Lynx/d/36_LYStrings. 1.1.3.3.2.9 644)) - (src/LYShowInfo.c (Lynx/d/37_LYShowInfo 1.1.2.1.5.1.1.1.2.4 644)) - (src/LYSearch.c (Lynx/d/38_LYSearch.c 1.2.2.5 644)) - (src/LYReadCFG.c (Lynx/d/39_LYReadCFG. 1.1.1.1.3.2.3.1.1.2.1.7 644)) - (src/LYPrint.c (Lynx/d/40_LYPrint.c 1.1.1.1.1.1.1.1.1.1.1.6 644)) - (src/LYOptions.c (Lynx/d/41_LYOptions. 1.1.2.1.1.1.1.1.1.3.1.5 644)) - (src/LYNews.c (Lynx/d/42_LYNews.c 1.2.4.1.1.1.2.4 644)) - (src/LYMainLoop.c (Lynx/d/43_LYMainLoop 1.2.4.2.2.1.2.6.1.2.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.5 644)) - (src/LYMain.c (Lynx/d/44_LYMain.c 1.1.2.1.1.1.1.1.1.2.2.1.1.1.1.1.1.1.1.1.1.1.1.3.1.6 644)) - (src/LYMail.c (Lynx/d/45_LYMail.c 1.1.1.1.1.1.3.1.1.1.2.5 644)) - (src/LYLocal.c (Lynx/d/46_LYLocal.c 1.2.3.1.3.10 644)) - (src/LYJump.c (Lynx/d/47_LYJump.c 1.3 644)) - (src/LYGetFile.c (Lynx/d/48_LYGetFile. 1.5.2.3.2.1.1.1.1.1.1.1.1.1.1.2.1.2 644)) - (src/LYForms.c (Lynx/d/49_LYForms.c 1.1.4.1.2.1.1.1.1.7 644)) - (src/LYEdit.c (Lynx/d/50_LYEdit.c 1.1.2.1.1.2 644)) - - (src/LYClean.c (Lynx/e/0_LYClean.c 1.1.4.1.1.4 644)) - (src/LYBookmark.c (Lynx/e/1_LYBookmark 1.1.2.1.1.8 644)) - (src/HTML.c (Lynx/e/2_HTML.c 1.1.4.1.1.1.1.2.1.4.1.2.1.3.1.2.1.2.2.2.1.5 644)) - (src/HTInit.c (Lynx/e/3_HTInit.c 1.1.4.1.3.1.1.4 644)) - (src/HTAlert.c (Lynx/e/4_HTAlert.c 1.1.2.1.1.2 644)) - (src/GridText.c (Lynx/e/5_GridText.c 1.1.3.1.1.1.1.1.1.2.2.2.1.2.1.2.1.1.1.1.1.1.1.1.1.3.1.4 644)) - (src/descrip.mms (Lynx/e/6_descrip.mm 1.2 644)) - (samples/jumpsVMS.html (Lynx/e/7_jumpsVMS.h 1.1 644)) - (samples/jumpsUnix.html (Lynx/e/8_jumpsUnix. 1.1 644)) - (samples/mime.types (Lynx/e/9_mime.types 1.1 644)) - (samples/lynx.com (Lynx/e/10_lynx.com 1.1 644)) - (samples/mailcap (Lynx/e/11_mailcap 1.2 644)) - (samples/lynx.cfg (Lynx/e/12_lynx.cfg 1.2.1.2.1.1.2.1.1.1.1.1.1.3.1.5 644)) - (lynx_help/lynx_url_support.html (Lynx/e/13_lynx_url_s 1.2 644)) - (lynx_help/Lynx_users_guide.html (Lynx/e/14_Lynx_users 1.8.1.1.1.1.1.1.1.2.1.3 644)) - (lynx_help/keystroke_commands/cookie_help.html (Lynx/e/15_cookie_hel 1.1 644)) - (lynx_help/keystroke_commands/visited_help.html (Lynx/e/16_visited_he 1.1 644)) - (lynx_help/keystroke_commands/edit_help.html (Lynx/e/17_edit_help. 1.1 644)) - (lynx_help/keystroke_commands/dired_help.html (Lynx/e/18_dired_help 1.1 644)) - (lynx_help/keystroke_commands/xterm_help.html (Lynx/e/19_xterm_help 1.1 644)) - (lynx_help/keystroke_commands/scrolling_help.html (Lynx/e/20_scrolling_ 1.1 644)) - (lynx_help/keystroke_commands/print_help.html (Lynx/e/21_print_help 1.1 644)) - (lynx_help/keystroke_commands/other_help.html (Lynx/e/22_other_help 1.4 644)) - (lynx_help/keystroke_commands/option_help.html (Lynx/e/23_option_hel 1.8 644)) - (lynx_help/keystroke_commands/movement_help.html (Lynx/e/24_movement_h 1.1 644)) - (lynx_help/keystroke_commands/history_help.html (Lynx/e/25_history_he 1.1 644)) - (lynx_help/keystroke_commands/gopher_types_help.html (Lynx/e/26_gopher_typ 1.1 644)) - (lynx_help/keystroke_commands/bookmark_help.html (Lynx/e/27_bookmark_h 1.1 644)) - (lynx_help/keystroke_commands/keystroke_help.html (Lynx/e/28_keystroke_ 1.3.1.2 644)) - (lynx_help/lynx_help_main.html (Lynx/e/29_lynx_help_ 1.4 644)) - (lynx.man (Lynx/e/30_lynx.man 1.5.2.6.1.2 644)) - (lynx.hlp (Lynx/e/31_lynx.hlp 1.10.1.2 644)) - (lynx.cfg (Lynx/e/32_lynx.cfg 1.2.1.2.1.1.2.1.1.2.1.3.1.5 644)) - (fixed512.com (Lynx/e/33_fixed512.c 1.1 644)) - (docs/RFC-MAILCAP.txt (Lynx/e/34_RFC-MAILCA 1.1 644)) - (docs/README.txt (Lynx/e/35_README.txt 1.1 644)) - (docs/README.html (Lynx/e/36_README.htm 1.1 644)) - (descrip.mms (Lynx/e/37_descrip.mm 1.2 644)) - (build.com (Lynx/e/38_build.com 1.2 644)) - (build-slang.com (Lynx/e/39_build-slan 1.2 644)) - (about_lynx/COPYHEADER (Lynx/e/40_COPYHEADER 1.1 644)) - (about_lynx/COPYING (Lynx/e/41_COPYING 1.1 644)) - (about_lynx/about_lynx-dev.html (Lynx/e/42_about_lynx 1.1 644)) - (about_lynx/about_lynx.html (Lynx/e/43_about_lynx 1.2 644)) - (WWW/Makefile (Lynx/e/44_Makefile 1.1 644)) - (WWW/BUILD (Lynx/e/45_BUILD 1.1 644)) - (WWW/Copyright.txt (Lynx/e/46_Copyright. 1.1 644)) - (WWW/README.txt (Lynx/e/47_README.txt 1.1 644)) - (WWW/Library/umaxv-m88k/Makefile (Lynx/e/48_Makefile 1.1 644)) - (WWW/Library/clix/Makefile (Lynx/e/49_Makefile 1.1 644)) - (WWW/Library/isc/Makefile (Lynx/e/50_Makefile 1.1 644)) - (WWW/Library/ptx/Makefile (Lynx/e/51_Makefile 1.1 644)) - (WWW/Library/netbsd/Makefile (Lynx/f/0_Makefile 1.1 644)) - (WWW/Library/unix_x/Makefile (Lynx/f/1_Makefile 1.1 644)) - (WWW/Library/convex/Makefile (Lynx/f/2_Makefile 1.1 644)) - (WWW/Library/mips/Makefile (Lynx/f/3_Makefile 1.1 644)) - (WWW/Library/sco/Makefile (Lynx/f/4_Makefile 1.1 644)) - (WWW/Library/svr4/Makefile (Lynx/f/5_Makefile 1.1 644)) - (WWW/Library/solaris2/Makefile (Lynx/f/6_Makefile 1.1 644)) - (WWW/Library/osf/Makefile (Lynx/f/7_Makefile 1.1 644)) - (WWW/Library/vax_ultrix/Makefile (Lynx/f/8_Makefile 1.1 644)) - (WWW/Library/unix/Makefile (Lynx/f/9_Makefile 1.2 644)) - (WWW/Library/freebsd/Makefile (Lynx/f/10_Makefile 1.1 644)) - (WWW/Library/sun4/Makefile (Lynx/f/11_Makefile 1.1 644)) - (WWW/Library/sun3/Makefile (Lynx/f/12_Makefile 1.1 644)) - (WWW/Library/snake/Makefile (Lynx/f/13_Makefile 1.1 644)) - (WWW/Library/sgi/Makefile (Lynx/f/14_Makefile 1.1 644)) - (WWW/Library/rs6000/Makefile (Lynx/f/15_Makefile 1.1 644)) - (WWW/Library/next/Makefile (Lynx/f/16_Makefile 1.1 644)) - (WWW/Library/duns/Makefile (Lynx/f/17_Makefile 1.1 644)) - (WWW/Library/decstation/Makefile (Lynx/f/18_Makefile 1.1 644)) - (WWW/Library/apollo_m68k/Makefile (Lynx/f/19_Makefile 1.1 644)) - (WWW/Library/vms/COPYING.LIB (Lynx/f/20_COPYING.LI 1.1 644)) - (WWW/Library/vms/libmake.com (Lynx/f/21_libmake.co 1.1 644)) - (WWW/Library/vms/descrip.mms (Lynx/f/22_descrip.mm 1.1 644)) - (WWW/Library/Implementation/HTFinger.h (Lynx/f/23_HTFinger.h 1.1 644)) - (WWW/Library/Implementation/HTFinger.c (Lynx/f/24_HTFinger.c 1.2 644)) - (WWW/Library/Implementation/LYexit.h (Lynx/f/25_LYexit.h 1.1.1.2 644)) - (WWW/Library/Implementation/HTVMS_WaisUI.h (Lynx/f/26_HTVMS_Wais 1.1 644)) - (WWW/Library/Implementation/HTVMS_WaisUI.c (Lynx/f/27_HTVMS_Wais 1.1 644)) - (WWW/Library/Implementation/HTVMS_WaisProt.h (Lynx/f/28_HTVMS_Wais 1.1 644)) - (WWW/Library/Implementation/LYLeaks.h (Lynx/f/29_LYLeaks.h 1.1 644)) - (WWW/Library/Implementation/HTCJK.h (Lynx/f/30_HTCJK.h 1.2 644)) - (WWW/Library/Implementation/BSDI_Makefile (Lynx/f/31_BSDI_Makef 1.2 644)) - (WWW/Library/Implementation/HTVMS_WaisProt.c (Lynx/f/32_HTVMS_Wais 1.1 644)) - (WWW/Library/Implementation/ufc-crypt.h (Lynx/f/33_ufc-crypt. 1.1 644)) - (WWW/Library/Implementation/patchlevel.h (Lynx/f/34_patchlevel 1.1 644)) - (WWW/Library/Implementation/getpass.c (Lynx/f/35_getpass.c 1.1 644)) - (WWW/Library/Implementation/getline.c (Lynx/f/36_getline.c 1.1 644)) - (WWW/Library/Implementation/crypt_util.c (Lynx/f/37_crypt_util 1.1 644)) - (WWW/Library/Implementation/crypt.c (Lynx/f/38_crypt.c 1.1 644)) - (WWW/Library/Implementation/HTVMSUtils.h (Lynx/f/39_HTVMSUtils 1.1 644)) - (WWW/Library/Implementation/Makefile (Lynx/f/40_Makefile 1.1 644)) - (WWW/Library/Implementation/CommonMakefile (Lynx/f/41_CommonMake 1.4 644)) - (WWW/Library/Implementation/Version.make (Lynx/f/42_Version.ma 1.1 644)) - (WWW/Library/Implementation/HTUU.h (Lynx/f/43_HTUU.h 1.1 644)) - (WWW/Library/Implementation/HTLex.h (Lynx/f/44_HTLex.h 1.1 644)) - (WWW/Library/Implementation/HTAssoc.h (Lynx/f/45_HTAssoc.h 1.1 644)) - (WWW/Library/Implementation/HTAAProt.h (Lynx/f/46_HTAAProt.h 1.1 644)) - (WWW/Library/Implementation/HTAuth.h (Lynx/f/47_HTAuth.h 1.1 644)) - (WWW/Library/Implementation/HTACL.h (Lynx/f/48_HTACL.h 1.1 644)) - (WWW/Library/Implementation/HTGroup.h (Lynx/f/49_HTGroup.h 1.1 644)) - (WWW/Library/Implementation/HTPasswd.h (Lynx/f/50_HTPasswd.h 1.1 644)) - (WWW/Library/Implementation/HTAAFile.h (Lynx/f/51_HTAAFile.h 1.1 644)) - (WWW/Library/Implementation/HTAABrow.h (Lynx/g/0_HTAABrow.h 1.2 644)) - (WWW/Library/Implementation/HTAAServ.h (Lynx/g/1_HTAAServ.h 1.1 644)) - (WWW/Library/Implementation/HTAAUtil.h (Lynx/g/2_HTAAUtil.h 1.1 644)) - (WWW/Library/Implementation/HTWSRC.h (Lynx/g/3_HTWSRC.h 1.1 644)) - (WWW/Library/Implementation/HTWAIS.h (Lynx/g/4_HTWAIS.h 1.1 644)) - (WWW/Library/Implementation/HTTelnet.h (Lynx/g/5_HTTelnet.h 1.1 644)) - (WWW/Library/Implementation/HText.h (Lynx/g/6_HText.h 1.3 644)) - (WWW/Library/Implementation/HTUtils.h (Lynx/g/7_HTUtils.h 1.8 644)) - (WWW/Library/Implementation/HTGopher.h (Lynx/g/8_HTGopher.h 1.1 644)) - (WWW/Library/Implementation/HTNews.h (Lynx/g/9_HTNews.h 1.1 644)) - (WWW/Library/Implementation/HTHistory.h (Lynx/g/10_HTHistory. 1.1 644)) - (WWW/Library/Implementation/HTMIME.h (Lynx/g/11_HTMIME.h 1.2 644)) - (WWW/Library/Implementation/HTInit.h (Lynx/g/12_HTInit.h 1.2 644)) - (WWW/Library/Implementation/HTFormat.h (Lynx/g/13_HTFormat.h 1.3 644)) - (WWW/Library/Implementation/HTRules.h (Lynx/g/14_HTRules.h 1.1 644)) - (WWW/Library/Implementation/HTAlert.h (Lynx/g/15_HTAlert.h 1.3 644)) - (WWW/Library/Implementation/HTString.h (Lynx/g/16_HTString.h 1.1 644)) - (WWW/Library/Implementation/HTList.h (Lynx/g/17_HTList.h 1.1 644)) - (WWW/Library/Implementation/HTStyle.h (Lynx/g/18_HTStyle.h 1.1.1.2 644)) - (WWW/Library/Implementation/HTAnchor.h (Lynx/g/19_HTAnchor.h 1.1.4.3 644)) - (WWW/Library/Implementation/HTAtom.h (Lynx/g/20_HTAtom.h 1.1 644)) - (WWW/Library/Implementation/HTStream.h (Lynx/g/21_HTStream.h 1.1 644)) - (WWW/Library/Implementation/HTMLGen.h (Lynx/g/22_HTMLGen.h 1.1 644)) - (WWW/Library/Implementation/HTFWriter.h (Lynx/g/23_HTFWriter. 1.1 644)) - (WWW/Library/Implementation/HTWriter.h (Lynx/g/24_HTWriter.h 1.1 644)) - (WWW/Library/Implementation/HTPlain.h (Lynx/g/25_HTPlain.h 1.1 644)) - (WWW/Library/Implementation/HTChunk.h (Lynx/g/26_HTChunk.h 1.1 644)) - (WWW/Library/Implementation/HTMLDTD.h (Lynx/g/27_HTMLDTD.h 1.1.2.7 644)) - (WWW/Library/Implementation/HTML.h (Lynx/g/28_HTML.h 1.1.2.2.1.1.1.1.1.1.1.3 644)) - (WWW/Library/Implementation/SGML.h (Lynx/g/29_SGML.h 1.1.2.3 644)) - (WWW/Library/Implementation/HTTCP.h (Lynx/g/30_HTTCP.h 1.3 644)) - (WWW/Library/Implementation/HTFTP.h (Lynx/g/31_HTFTP.h 1.1 644)) - (WWW/Library/Implementation/HTBTree.h (Lynx/g/32_HTBTree.h 1.1 644)) - (WWW/Library/Implementation/HTFile.h (Lynx/g/33_HTFile.h 1.2 644)) - (WWW/Library/Implementation/HTTP.h (Lynx/g/34_HTTP.h 1.2 644)) - (WWW/Library/Implementation/HTAccess.h (Lynx/g/35_HTAccess.h 1.3 644)) - (WWW/Library/Implementation/HTParse.h (Lynx/g/36_HTParse.h 1.1 644)) - (WWW/Library/Implementation/HTUU.c (Lynx/g/37_HTUU.c 1.2 644)) - (WWW/Library/Implementation/HTLex.c (Lynx/g/38_HTLex.c 1.1 644)) - (WWW/Library/Implementation/HTAssoc.c (Lynx/g/39_HTAssoc.c 1.1 644)) - (WWW/Library/Implementation/HTAAProt.c (Lynx/g/40_HTAAProt.c 1.2 644)) - (WWW/Library/Implementation/HTACL.c (Lynx/g/41_HTACL.c 1.1 644)) - (WWW/Library/Implementation/HTGroup.c (Lynx/g/42_HTGroup.c 1.1 644)) - (WWW/Library/Implementation/HTPasswd.c (Lynx/g/43_HTPasswd.c 1.1 644)) - (WWW/Library/Implementation/HTAAFile.c (Lynx/g/44_HTAAFile.c 1.1 644)) - (WWW/Library/Implementation/HTAABrow.c (Lynx/g/45_HTAABrow.c 1.2.1.2 644)) - (WWW/Library/Implementation/HTAAServ.c (Lynx/g/46_HTAAServ.c 1.1 644)) - (WWW/Library/Implementation/HTAAUtil.c (Lynx/g/47_HTAAUtil.c 1.1 644)) - (WWW/Library/Implementation/HTGopher.c (Lynx/g/48_HTGopher.c 1.4 644)) - (WWW/Library/Implementation/HTHistory.c (Lynx/g/49_HTHistory. 1.1 644)) - (WWW/Library/Implementation/HTMIME.c (Lynx/g/50_HTMIME.c 1.1.2.2.1.1.1.1.1.4 644)) - (WWW/Library/Implementation/HTInit.c (Lynx/g/51_HTInit.c 1.1 644)) - (WWW/Library/Implementation/HTFormat.c (Lynx/h/0_HTFormat.c 1.1.1.3 644)) - (WWW/Library/Implementation/HTRules.c (Lynx/h/1_HTRules.c 1.1 644)) - (WWW/Library/Implementation/HTAlert.c (Lynx/h/2_HTAlert.c 1.2 644)) - (WWW/Library/Implementation/HTString.c (Lynx/h/3_HTString.c 1.1 644)) - (WWW/Library/Implementation/HTList.c (Lynx/h/4_HTList.c 1.1 644)) - (WWW/Library/Implementation/HTStyle.c (Lynx/h/5_HTStyle.c 1.3 644)) - (WWW/Library/Implementation/HTAnchor.c (Lynx/h/6_HTAnchor.c 1.1.4.2.1.4 644)) - (WWW/Library/Implementation/HTAtom.c (Lynx/h/7_HTAtom.c 1.1.2.1 644)) - (WWW/Library/Implementation/HTChunk.c (Lynx/h/8_HTChunk.c 1.1 644)) - (WWW/Library/Implementation/HTMLGen.c (Lynx/h/9_HTMLGen.c 1.1.2.5 644)) - (WWW/Library/Implementation/HTFWriter.c (Lynx/h/10_HTFWriter. 1.1 644)) - (WWW/Library/Implementation/HTPlain.c (Lynx/h/11_HTPlain.c 1.1.2.3 644)) - (WWW/Library/Implementation/SGML.c (Lynx/h/12_SGML.c 1.1.1.1.1.1.2.4.1.9 644)) - (WWW/Library/Implementation/HTTCP.c (Lynx/h/13_HTTCP.c 1.2.3.1.1.1.1.1.1.2 644)) - (WWW/Library/Implementation/HTFTP.c (Lynx/h/14_HTFTP.c 1.6 644)) - (WWW/Library/Implementation/HTBTree.c (Lynx/h/15_HTBTree.c 1.1 644)) - (WWW/Library/Implementation/HTTP.c (Lynx/h/16_HTTP.c 1.1.1.1.1.1.1.1.1.2.1.1.1.5 644)) - (WWW/Library/Implementation/HTAccess.c (Lynx/h/17_HTAccess.c 1.5.2.2 644)) - (WWW/Library/Implementation/HTParse.c (Lynx/h/18_HTParse.c 1.3 644)) - (WWW/Library/Implementation/tcp.h (Lynx/h/19_tcp.h 1.1.1.1.3.3 644)) - (WWW/Library/Implementation/HTWSRC.c (Lynx/h/20_HTWSRC.c 1.1.1.1 644)) - (WWW/Library/Implementation/HTWriter.c (Lynx/h/21_HTWriter.c 1.1 644)) - (WWW/Library/Implementation/HTWAIS.c (Lynx/h/22_HTWAIS.c 1.1.1.1 644)) - (WWW/Library/Implementation/HTVMSUtils.c (Lynx/h/23_HTVMSUtils 1.2 644)) - (WWW/Library/Implementation/HTTelnet.c (Lynx/h/24_HTTelnet.c 1.5 644)) - (WWW/Library/Implementation/HTNews.c (Lynx/h/25_HTNews.c 1.1.2.1.1.4 644)) - (WWW/Library/Implementation/HTMLDTD.c (Lynx/h/26_HTMLDTD.c 1.1.2.10 644)) - (WWW/Library/Implementation/HTFile.c (Lynx/h/27_HTFile.c 1.1.3.1.1.8 644)) - (WWW/Library/Implementation/HTAuth.c (Lynx/h/28_HTAuth.c 1.1 644)) - (VMSWAIS.announce (Lynx/h/29_VMSWAIS.an 1.1 644)) - (VMSPrint.com (Lynx/h/30_VMSPrint.c 1.1 644)) - (TCPWARE.announce (Lynx/h/31_TCPWARE.an 1.1 644)) - (SOCKETSHR.announce (Lynx/h/32_SOCKETSHR. 1.1 644)) - (RELEASE_STATEMENT (Lynx/h/33_RELEASE_ST 1.2 644)) - (README (Lynx/h/34_README 1.1 644)) - (PROBLEMS (Lynx/h/35_PROBLEMS 1.3 644)) - (Makefile.old (Lynx/h/36_Makefile 1.1.1.1.1.1.1.2.3.1.3.4 644)) - (LYMessages_en.h (Lynx/h/37_LYMessages 1.4.1.4.1.2.1.1.1.1.1.1.3.1.1.1.1.4 644)) - (INSTALLATION (Lynx/h/38_INSTALLATI 1.2 644)) - (IBMPC-charsets.announce (Lynx/h/39_IBMPC-char 1.1 644)) - (FM.announce (Lynx/h/40_FM.announc 1.1 644)) - (DESC (Lynx/h/41_DESC 1.1 644)) - (CRAWL.announce (Lynx/h/42_CRAWL.anno 1.1 644)) - (CMU.announce (Lynx/h/43_CMU.announ 1.1 644)) - (CHANGES2-5 (Lynx/h/44_CHANGES2-5 1.1 644)) - (CHANGES2-4 (Lynx/h/45_CHANGES2-4 1.1 644)) - (CHANGES2-3 (Lynx/h/46_CHANGES2-3 1.1 644)) - (CHANGES (Lynx/h/47_CHANGES 1.2 644)) - -;; Files added by populate at Mon, 24 Feb 1997 20:09:28 -0600: - - - - - (newfiles.chartrans (Lynx/b/0_newfiles.chartrans 1.5 644)) - (CHANGES.chartrans (Lynx/c/0_CHANGES.chartrans 1.9.1.4.1.1.1.1.1.5 644)) - (README.chartrans (Lynx/d/0_README.chartrans 1.6 644)) - (src/UCdomap.h (Lynx/b/0_UCdomap.h 1.2 644)) - (src/UCAux.c (Lynx/b/15_UCAux.c 1.3.1.2 644)) - (src/UCAuto.h (Lynx/b/16_UCAuto.h 1.1 644)) - (src/UCAuto.c (Lynx/b/17_UCAuto.c 1.1 644)) - (src/chrtrans/cp1250_uni.tbl (Lynx/h/48_cp1250_uni 1.1 644)) - (src/chrtrans/mnemonic_suni.tbl (Lynx/b/28_mnemonic_s 1.1 644)) - (src/chrtrans/mnem_suni.tbl (Lynx/h/50_mnem_suni. 1.1 644)) - (src/chrtrans/cp1252_uni.tbl (Lynx/h/51_cp1252_uni 1.1 644)) - (src/chrtrans/rfc_suni.tbl (Lynx/i/0_rfc_suni.tbl 1.2 644)) - (src/chrtrans/makeuctb.c (Lynx/b/19_makeuctb.c 1.1.1.1 644)) - (src/chrtrans/UCkd.h (Lynx/b/20_UCkd.h 1.1 644)) - (src/chrtrans/Makefile (Lynx/b/18_Makefile 1.5 644)) - (src/chrtrans/README.tables (Lynx/b/23_README.tab 1.1 644)) - (src/chrtrans/README.format (Lynx/i/5_README.for 1.2 644)) - (src/chrtrans/cp852_uni.tbl (Lynx/i/6_cp852_uni. 1.2 644)) - (src/chrtrans/utf8_uni.tbl (Lynx/i/7_utf8_uni.t 1.2 644)) - (src/chrtrans/iso05_uni.tbl (Lynx/i/8_iso05_uni. 1.2 644)) - (src/chrtrans/cp437_uni.tbl (Lynx/i/9_cp437_uni. 1.2 644)) - (src/chrtrans/iso10_uni.tbl (Lynx/i/10_iso10_uni. 1.2 644)) - (src/chrtrans/iso09_uni.tbl (Lynx/i/11_iso09_uni. 1.2 644)) - (src/chrtrans/iso08_uni.tbl (Lynx/b/32_iso08_uni. 1.3 644)) - (src/chrtrans/iso07_uni.tbl (Lynx/i/13_iso07_uni. 1.2 644)) - (src/chrtrans/iso06_uni.tbl (Lynx/b/34_iso06_uni. 1.3 644)) - (src/chrtrans/iso04_uni.tbl (Lynx/i/15_iso04_uni. 1.2 644)) - (src/chrtrans/iso03_uni.tbl (Lynx/i/16_iso03_uni. 1.2 644)) - (src/chrtrans/iso02_uni.tbl (Lynx/i/17_iso02_uni. 1.3 644)) - (src/chrtrans/iso01_uni.tbl (Lynx/i/18_iso01_uni. 1.2 644)) - (src/chrtrans/cp850_uni.tbl (Lynx/i/19_cp850_uni. 1.2 644)) - (src/UCdomap.c (Lynx/b/14_UCdomap.c 1.3.1.3 644)) - (WWW/Library/Implementation/UCDefs.h (Lynx/e/0_UCDefs.h 1.2 644)) - (WWW/Library/Implementation/UCMap.h (Lynx/i/22_UCMap.h 1.4 644)) - (WWW/Library/Implementation/UCAux.h (Lynx/f/0_UCAux.h 1.2 644)) - - (WWW/Library/djgpp/makefile (Lynx/0_makefile 1.6 644)) - (src/makefile.dos (Lynx/1_makefile.d 1.7 644)) - (README.win-386 (Lynx/2_386-WIN.TX 1.2 644)) -;; Files added by populate at Mon, 03 Mar 1997 04:38:33 -0600: - - (src/chrtrans/MAKEW32.BAT (Lynx/3_MAKEW32.BA 1.5 644)) - (src/chrtrans/MAKEFILE.W32 (Lynx/4_MAKEFILE.W 1.1 644)) - (MAKEFILE.W32 (Lynx/5_MAKEFILE.W 1.2 644)) - -;; Files added by populate at Mon, 03 Mar 1997 06:05:56 -0600: - - (CHANGES.new (Lynx/6_CHANGES.ne 1.18.1.4.1.1.2.1.1.2.2.2.1.2.1.1.1.1.1.4.2.7.1.3.1.4.1.28 644)) - -;; Files added by populate at Tue, 11 Mar 1997 04:22:39 -0600: - - (newfiles.configure (Lynx/7_newfiles.c 1.4 644)) - (makefile.in (Lynx/8_makefile.i 1.1.1.13 644)) - (install.sh (Lynx/9_install.sh 1.1 755)) - (configure.in (Lynx/10_configure. 1.15 644)) - (config.hin (Lynx/11_config.hin 1.16 644)) - (aclocal.m4 (Lynx/12_aclocal.m4 1.20 644)) - (configure (Lynx/13_configure 1.20 755)) - (README.configure (Lynx/14_README.con 1.7 644)) - (CHANGES.configure (Lynx/15_CHANGES.co 1.1.1.14 644)) - -;; Files added by populate at Wed, 09 Apr 1997 06:18:01 -0600: - - (WWW/Library/djgpp/CommonMakefile (Lynx/26_CommonMake 1.2 644)) - (WWW/Library/Implementation/HTDOS.h (Lynx/27_HTDOS.H 1.1 644)) - (WWW/Library/Implementation/HTDOS.c (Lynx/28_HTDOS.C 1.1 644)) - - - (WWW/Library/unix/makefile.in (Lynx/16_makefile.i 1.6 644)) - (src/makefile.in (Lynx/17_makefile.i 1.12 644)) - (src/chrtrans/makefile.in (Lynx/18_makefile.i 1.8 644)) - - (src/chrtrans/koi8r_uni.tbl (Lynx/b/29_koi8r_uni. 1.2.1.1 644)) - (src/chrtrans/def7_uni.tbl (Lynx/25_def7_uni.t 1.4 644)) -;; Files added by populate at Thu, 24 Apr 1997 21:51:47 -0600: - - (src/LYExtern.h (Lynx/38_LYExtern.h 1.1.1.1 644)) - (src/LYExtern.c (Lynx/39_LYExtern.c 1.5.1.2 644)) - - - (config.sub (Lynx/30_config.sub 1.1 755)) - (config.guess (Lynx/31_config.gue 1.2 755)) - - (lynx_help/keystroke_commands/follow_help.html (Lynx/43_follow_hel 1.1.1.1.1.2 644)) - - (src/AttrList.h (Lynx/33_AttrList.h 1.3 644)) - (src/LYHash.h (Lynx/34_LYHash.h 1.4 644)) - (src/LYHash.c (Lynx/35_LYHash.c 1.3 644)) - (src/LYStyle.c (Lynx/36_LYStyle.c 1.7 644)) - (styles/lynx.lss (Lynx/37_lynx.lss 1.1 644)) - (src/LYStyle.h (Lynx/b/5_LYStyle.h 1.3 644)) -;; Files added by populate at Tue, 08 Jul 1997 20:40:02 -0600: - - (src/LYCurses.c (Lynx/d/51_LYCurses.c 1.1.5.1.1.1.1.1.1.9 644)) - (src/LYCharUtils.c (Lynx/c/22_LYCharUtil 1.2.1.1.2.1.2.2.1.2.1.1.1.2.1.1.1.1.1.1.2.3.1.7 644)) - -;; Files added by populate at Wed, 09 Jul 1997 05:12:01 -0600: - - (src/LYUtils.c (Lynx/d/27_LYUtils.c 1.1.4.1.2.2.1.1.1.1.1.1.1.1.4.2.1.1.1.5 644)) - - - (src/chrtrans/build-chrtrans.com (Lynx/b/22_build-chrt 1.5 644)) - (src/chrtrans/build-header.com (Lynx/c/0_build-head 1.1 644)) - - (src/chrtrans/cp1251_uni.tbl (Lynx/b/0_cp1251_uni 1.2 644)) -;; Files added by populate at Thu, 07 Aug 1997 07:25:30 -0600: - - (about_lynx/lynx-dev.html (Lynx/b/0_lynx-dev.h 1.1 644)) - -;; Files added by populate at Sat, 09 Aug 1997 09:42:43 -0600: - - (src/chrtrans/cp866_uni.tbl (Lynx/c/0_cp866_uni. 1.1 644)) - -;; Files added by populate at Fri, 05 Sep 1997 17:30:43 -0600: - - (src/chrtrans/viscii_uni.tbl (Lynx/b/0_viscii_uni 1.1 644)) -) -(Merge-Parents) -(New-Merge-Parents) diff --git a/Makefile.old b/Makefile.old index f5ef704a..7d44f84c 100644 --- a/Makefile.old +++ b/Makefile.old @@ -83,8 +83,8 @@ WWWINC= WWW/Library/Implementation # Rob Partington's Character Style color support code (which may currently # only work with ncurses, not other curses or the slang library). # Or modify and experiment... -kw -# RP_LYDEFS = -I../../../src -DUSE_COLOR_STYLE -DUSEHASH -# RP_DEFS = -DUSE_COLOR_STYLE -DUNPAINT_CACHE -DTEST -DUSEHASH +# RP_LYDEFS = -I../../../src -DUSE_COLOR_STYLE -DUSE_HASH +# RP_DEFS = -DUSE_COLOR_STYLE -DUSE_HASH # !!!!!!!!!!! Lynx Local Directory Listing Formats !!!!!!!!!!!!!!!!!!!!!!!!!!! # Lynx supports "ls -l" format for local directory listings on Unix if the @@ -717,10 +717,10 @@ solaris2-ncurses: STYLE=LYStyle solaris2-ncurses-develop: - cd WWW/Library/solaris2; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS) -g -I../../../src -DUSE_COLOR_STYLE -DUSEHASH" + cd WWW/Library/solaris2; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS) -g -I../../../src -DUSE_COLOR_STYLE -DUSE_HASH" cd src; $(MAKE) all CC="gcc" MCFLAGS="-g -DFANCY_CURSES \ - -DUNPAINT_CACHE -DTEST -DUSE_COLOR_STYLE \ - -DUSEHASH" \ + -DUSE_COLOR_STYLE \ + -DUSE_HASH" \ -DNCURSES -DUNIX -DSVR4 -DSOLARIS2 \ -DUTMPX_FOR_UTMP -DUSE_DIRENT -DLOCALE -DHAVE_TERMIOS_H \ -I../$(WWWINC) $(SITE_DEFS)" \ @@ -865,21 +865,21 @@ linux-slang: SLANGLIB="$(SLANGLIB) -lslang -lm" SLANGINC="$(SLANGINC)" develop: - cd WWW/Library/unix; $(MAKE) LYFLAGS="-DLINUX $(SITE_LYDEFS) -I../../../src -DUSE_COLOR_STYLE -DUSEHASH" + cd WWW/Library/unix; $(MAKE) LYFLAGS="-DLINUX $(SITE_LYDEFS) -I../../../src -DUSE_COLOR_STYLE -DUSE_HASH" cd src; $(MAKE) all CC="gcc" \ - MCFLAGS="-O -DUNPAINT_CACHE -DUNIX -DLINUX -DNCURSES \ - -DFANCY_CURSES -DNO_KEYPAD -DNO_TTYTYPE -DTEST -DUSE_COLOR_STYLE \ - -I/usr/include/ncurses -I../$(WWWINC) $(SITE_DEFS) -DUSEHASH" \ + MCFLAGS="-O -DUNIX -DLINUX -DNCURSES \ + -DFANCY_CURSES -DNO_KEYPAD -DNO_TTYTYPE -DUSE_COLOR_STYLE \ + -I/usr/include/ncurses -I../$(WWWINC) $(SITE_DEFS) -DUSE_HASH" \ LIBS="-lncurses $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ WWWLIB="../WWW/Library/unix/libwww.a" \ STYLE=LYStyle linux-style: - cd WWW/Library/unix; $(MAKE) LYFLAGS="-DLINUX $(SITE_LYDEFS) -I../../../src -DUSEHASH -DUSE_COLOR_STYLE" + cd WWW/Library/unix; $(MAKE) LYFLAGS="-DLINUX $(SITE_LYDEFS) -I../../../src -DUSE_HASH -DUSE_COLOR_STYLE" cd src; $(MAKE) all CC="gcc" \ - MCFLAGS="-O -DUNPAINT_CACHE -DUNIX -DLINUX -DNCURSES \ - -DFANCY_CURSES -DNO_KEYPAD -DNO_TTYTYPE -DTEST -DUSE_COLOR_STYLE \ - -I/usr/include/ncurses -I../$(WWWINC) $(SITE_DEFS) -DUSEHASH" \ + MCFLAGS="-O -DUNIX -DLINUX -DNCURSES \ + -DFANCY_CURSES -DNO_KEYPAD -DNO_TTYTYPE -DUSE_COLOR_STYLE \ + -I/usr/include/ncurses -I../$(WWWINC) $(SITE_DEFS) -DUSE_HASH" \ LIBS="-lncurses $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ WWWLIB="../WWW/Library/unix/libwww.a" \ STYLE=LYStyle diff --git a/README b/README index d0bda757..2db87b71 100644 --- a/README +++ b/README @@ -1,44 +1,51 @@ - Lynx README file + Lynx README file + WHAT IS LYNX? Lynx is a fully-featured World Wide Web (WWW) client for users running - cursor-addressable, character-cell display devices (e.g., vt100 + cursor-addressable, character-cell display devices such as vt100 terminals, vt100 emulators running on PCs or Macs, or any other - character-cell display). It will display Hypertext Markup Language + character-cell display. It will display Hypertext Markup Language (HTML) documents containing links to files on the local system, as well as files on remote systems running http, gopher, ftp, wais, nntp, finger, or cso/ph/qi servers, and services accessible via logins to telnet, tn3270 or rlogin accounts. Current versions of Lynx run on - Unix and VMS. + Unix, VMS, Windows95/NT and 386DOS. - Lynx can be used to access information on the WWW, or to build - information systems intended primarily for local access. For example, - Lynx has been used to build several Campus Wide Information Systems - (CWIS). In addition, Lynx can be used to build systems isolated within - a single LAN. + Lynx can be used to access information on the WWW, or to establish + information systems intended primarily for local access. Lynx has been + used to build several Campus Wide Information Systems (CWIS). Lynx can + also be used to build systems isolated within a single LAN. - For information about Lynx, including new updates, go to the - "Lynx links" - <URL:http://www.crl.com/~subir/lynx.html>. + Links to the current sources and support materials for Lynx are + maintained at: + "Lynx links" + <URL:http://www.crl.com/~subir/lynx.html> + and at the Lynx homepage: + "Lynx Information" + <URL:http://lynx.browser.org/>. + View these pages for information about Lynx, including new updates. - Lynx is distributed under the GNU General Public License without - restrictions on usage or redistribution, and is supported by the - Lynx user community. See the accompanying COPYHEADER and COPYING - files (in the about_lynx subdirectory) for more details. + Lynx is distributed under the GNU General Public License (GPL) without + restrictions on usage or redistribution. The Lynx copyright statement, + "COPYHEADER", and GNU GPL, "COPYING", are included in the top-level + directory of the distribution. Lynx is supported by the Lynx user + community, an entirely volunteer (and unofficial) organization. Certain portions of the Lynx source distribution were originally created by CERN and have been modified during the development of Lynx. See WWW/Copyright.txt for copyright info regarding CERN - products used in Lynx + products used in Lynx. DOCUMENTATION A users guide is included in this distribution along with a man page for Unix systems and a help file for VMS systems. All documentation is - contained in this directory and the doc and samples subdirectories. - + contained in the top directory and the docs, samples and lynx_help + subdirectories. + While running Lynx, type 'h', 'H', or '?' to invoke the help menu system. From the help menu you may access several useful documents pertaining to Lynx and the World Wide Web. The most important of @@ -46,58 +53,70 @@ DOCUMENTATION Enhanced Pages, which includes http links for help and FAQs conerning Lynx. It is recommended that you install your own help menu system at your site in order to lessen the load on http servers. This also will - allow you to customize the help menu system for your site. + allow you to customize the help menu system for your site and greatly + speed up access for those using Lynx over a slow connection. - To install the help menu system, copy the lynx_help/ and about_lynx/ - directories to a public place on your system. Then, edit the lynx.cfg - file so that the HELPFILE line is defined as follows: + To install the help menu system, copy COPYHEADER and COPYING into the + lynx_help/ subdirectory. Then copy the lynx_help subdirectory to a public + place on your system, or into your $HOME directory if you are a single + user. Finally, edit the lynx.cfg file so that the HELPFILE line is + defined as follows: - HELPFILE:file://localhost/[public_path]/lynx_help/lynx_help_main.html where [public_path] is the absolute path to the lynx_help directory. - Customizing the help menu system is just a matter of editing a set of - HTML files. + HTML files. Additional information about installing and customizing + the help file set is available at <URL:http://www.irm.nara.kindai.ac.jp/ + lynxdev/README.help>. INSTALLING LYNX - To install Lynx, follow the steps listed in the INSTALLATION file - located in the source distribution. + To install Lynx, follow the steps in the INSTALLATION file, which is + located in the top directory of the source distribution. PROBLEMS - If you experience problems installing or compiling Lynx, please read - the PROBLEMS file located in the source distribution. If your problem - is not addressed there, there is a mailing list called lynx-dev which - is frequented by Lynx experts. To subscribe to lynx-dev, send email to - majordomo@sig.net with only the following message in the body: + If you experience problems configuring, compiling or installing Lynx, + please read Section VI. "General installation instructions" in the + INSTALLATION file. Instructions are given there for reporting your + problem to the "lynx-dev" mailing list, which is frequented by experienced + Lynx users. + +LYNX-DEV MAILING LIST + + To subscribe to lynx-dev, send email to majordomo@sig.net with only the + following message in the body: SUBSCRIBE LYNX-DEV address - where inclusion of your email address is optional if it can be - obtained, correctly, from the mail headers of your subscription - request. + where inclusion of your email address is optional if it can be obtained, + correctly, from the mail headers of your subscription request. - If you wish to unsubscribe from lynx-dev, send email to - majordomo@sig.net with only the following message in the - body: + If you wish to unsubscribe from lynx-dev, send email to majordomo@sig.net + with only the following message in the body: UNSUBSCRIBE LYNX-DEV address - where inclusion of your email address is optional if it can be - obtained, correctly, from the mail headers of your request. + where inclusion of your email address is optional if it can be obtained, + correctly, from the mail headers of your request. Also, to get a list of useful majordomo commands, send email to majordomo@sig.net with the following command: - + ^^^^^^^^^ HELP - Finally, please...please...please do not send commands to the - lynx-dev mailing list. BTW, any messages you wish to post should - be sent to lynx-dev@sig.net. + PLEASE!!! do not send commands to the lynx-dev mailing list itself. + Any messages you wish to post should be sent to lynx-dev@sig.net. PLEASE use the lynx-dev list, NOT private email to the developers, for questions or discussion about Lynx, or contributions of patches. Patches should use the context diff format (diff -c). + You need not be subscribed to the lynx-dev list in order to post. If + you post without subscribing, though, you should read replies to your + questions or comments in the archive since more often than not nobody + will send a carbon copy to you. View the archives at: + + "lynx-dev Mailing list archives" + <URL:http://www.flora.org/lynx-dev/html/> diff --git a/README.configure b/README.configure index f920f1d6..6c5e72f7 100644 --- a/README.configure +++ b/README.configure @@ -1,4 +1,4 @@ --- 1997/7/27 - T.Dickey <dickey@clark.net> +-- 1997/10/21 - T.Dickey <dickey@clark.net> -------------------------------------------------------------------------------- @@ -141,7 +141,7 @@ the script: --enable-color-style (define USE_COLOR_STYLE) Use this option to enable optional/experimental color style. - (Also defines USEHASH, UNPAINT_CACHE, LINKEDSTYLES) + (Also defines USE_HASH, LINKEDSTYLES) --enable-debug Use this option to compile-in support for debugging. @@ -159,6 +159,12 @@ the script: where $libdir is set in the configure script, e.g., to /usr/local/lib. + --with-lss-file=XXX (defines LYNX_LSS_FILE) + Use this option to override the location of the site + style-sheet file's pathname. It defaults to $libdir/lynx.lss, + where $libdir is set in the configure script, e.g., to + /usr/local/lib. + --with-screen=XXX Use this option to select the screen type. The option value, XXX must be one of curses (the default), ncurses or slang. diff --git a/WWW/Library/Implementation/HTAccess.c b/WWW/Library/Implementation/HTAccess.c index 2f21eaad..6dedbeb9 100644 --- a/WWW/Library/Implementation/HTAccess.c +++ b/WWW/Library/Implementation/HTAccess.c @@ -62,7 +62,6 @@ #include "HTAlert.h" #include "HTCJK.h" #include "UCMap.h" -#include "LYGlobalDefs.h" #include "LYexit.h" #include "LYLeaks.h" @@ -539,6 +538,8 @@ PRIVATE int get_physical ARGS2( * has finished. - kw @@@ */ +extern char*UCAssume_MIMEcharset; + PUBLIC void LYUCPushAssumed ARGS1( HTParentAnchor *, anchor) { @@ -550,11 +551,11 @@ PUBLIC void LYUCPushAssumed ARGS1( anchor_UCI = HTAnchor_getUCInfoStage(anchor, UCT_STAGE_PARSER); if (anchor_UCI && anchor_UCI->MIMEname) { - pushed_assume_LYhndl = anchor_LYhndl; - UCLYhndl_for_unspec = anchor_LYhndl; pushed_assume_MIMEname = UCAssume_MIMEcharset; UCAssume_MIMEcharset = NULL; StrAllocCopy(UCAssume_MIMEcharset, anchor_UCI->MIMEname); + pushed_assume_LYhndl = anchor_LYhndl; + UCLYhndl_for_unspec = anchor_LYhndl; return; } } @@ -748,23 +749,60 @@ PRIVATE BOOL HTLoadDocument ARGS4( */ if (!LYforce_no_cache && (text = (HText *)HTAnchor_document(anchor))) { /* - ** Already loaded. Check it it's OK to use it. - FM + ** We have a cached rendition of the target document. + ** Check if it's OK to re-use it. We consider it OK if: + ** (1) the anchor does not have the no_cache element set, or + ** (2) we've overridden it, e.g., because we are acting on + ** a PREV_DOC command or a link in the History Page and + ** it's not a reply from a POST with the LYresubmit_posts + ** flag set, or + ** (3) we are repositioning within the currently loaded document + ** based on the target anchor's address (URL_Reference). + * + * If DONT_TRACK_INTERNAL_LINKS is defined, HText_AreDifferent() + * is used to determine whether (3) applies. If the target address + * differs from that of the current document only by a fragment + * and the taget address has an appended fragment, repositioning + * without reloading is always assumed. + * Note that HText_AreDifferent() currently always returns TRUE + * if the target has a LYNXIMGMAP URL, so that an internally + * generated pseudo-document will normally not be re-used unless + * condition (2) appplies. (Condition (1) cannot apply since in + * LYMap.c, no_cache is always set in the anchor object). This + * doesn't guarantee that the resource from which the MAP element + * is taken will be read again (reloaded) when the list of links + * for a client-side image map is regenerated, when in some cases + * it should (e.g. user requested RELOAD, or HTTP response with + * no-cache header and we are not overriding). + * + * If DONT_TRACK_INTERNAL_LINKS is undefined, a target address that + * points to the same URL as the current document may still result in + * reloading, depending on whether the original URL-Reference + * was given as an internal link in the context of the previously + * loaded document. HText_AreDifferent() is not used here for + * testing whether we are just repositioning. For an internal + * link, the potential callers of this function from mainloop() + * down will either avoid making the call (and do the repositioning + * differently) or set LYoverride_no_cache. + * Note that (a) LYNXIMGMAP pseudo-documents and (b) The "List Page" + * document are treated logically as being part of the document on + * which they are based, for the purpose of whether to treat a link + * as internal, but the logic for this (by setting LYoverride_no_cache + * as necessary) is implemented elsewhere. For LYNXIMGMAP the same + * caveat as above applies. + * + ** We also should be checking other aspects of cache + ** regulation (e.g., based on an If-Modified-Since check, + ** etc.) but the code for doing those other things isn't + ** available yet. */ -#ifdef NOTUSED_FOTEMODS - /* not sure whether this is always the right thing to do, - * and anyway, we have a far more complete (and complicated...) - * way to prevent reloading on internal URL references now... - * - kw - */ - if ((cp = strchr(address_to_load, '#')) != NULL) { - *cp = '\0'; - if (!strcmp(address_to_load, HTLoadedDocumentURL()) && - strncasecomp(address_to_load, "LYNXIMGMAP:", 11)) - LYoverride_no_cache = TRUE; - *cp = '#'; - } -#endif /* NOTUSED_FOTEMODS */ - if (LYoverride_no_cache || !HText_hasNoCacheSet(text)) { +#ifdef DONT_TRACK_INTERNAL_LINKS + if (LYoverride_no_cache || !HText_hasNoCacheSet(text) || + !HText_AreDifferent(anchor, full_address)) +#else + if (LYoverride_no_cache || !HText_hasNoCacheSet(text)) +#endif /* TRACK_INTERNAL_LINKS */ + { if (TRACE) fprintf(stderr, "HTAccess: Document already in memory.\n"); HText_select(text); diff --git a/WWW/Library/Implementation/HTAnchor.c b/WWW/Library/Implementation/HTAnchor.c index 6db5f974..d3c3f34e 100644 --- a/WWW/Library/Implementation/HTAnchor.c +++ b/WWW/Library/Implementation/HTAnchor.c @@ -20,18 +20,14 @@ #include <ctype.h> #include "HTAnchor.h" #include "HTParse.h" -#ifdef EXP_CHARTRANS #include "UCAux.h" #include "UCMap.h" -#endif /* EXP_CHARTRANS */ #include "LYLeaks.h" #define FREE(x) if (x) {free(x); x = NULL;} -#ifdef EXP_CHARTRANS extern LYUCcharset LYCharSet_UC[]; -#endif #ifdef NOT_DEFINED /* @@ -501,10 +497,11 @@ PRIVATE void deleteLinks ARGS1( me->parent != parent) { HTAnchor_delete(parent); } - /* The link structure has to be deleted, too! - ** That was missing, but this code probably never - ** got exercised by Lynx. - kw - */ + /* + * The link structure has to be deleted, too! + * That was missing, but this code probably never + * got exercised by Lynx. - KW + */ FREE(target); } @@ -663,7 +660,7 @@ PUBLIC BOOL HTAnchor_delete ARGS1( FREE(me->expires); FREE(me->last_modified); FREE(me->server); -#ifdef USEHASH +#ifdef USE_HASH FREE(me->style); #endif @@ -829,7 +826,7 @@ PUBLIC BOOL HTAnchor_hasChildren ARGS1( return me ? ! HTList_isEmpty(me->children) : NO; } -#if defined(USEHASH) +#if defined(USE_HASH) /* Style handling. */ PUBLIC CONST char * HTAnchor_style ARGS1( @@ -1159,8 +1156,6 @@ PUBLIC void HTAnchor_setPhysical ARGS2( } } -#ifdef EXP_CHARTRANS - /* ** We store charset info in the HTParentAnchor object, for several ** "stages". (See UCDefs.h) @@ -1312,13 +1307,10 @@ PUBLIC LYUCcharset * HTAnchor_copyUCInfoStage ARGS4( me->UCStages->s[to_stage].lock = set_by; me->UCStages->s[to_stage].LYhndl = me->UCStages->s[from_stage].LYhndl; - if (p_to != p_from) memcpy(p_to, p_from, sizeof(LYUCcharset)); - return p_to; } } return NULL; } -#endif /* EXP_CHARTRANS */ diff --git a/WWW/Library/Implementation/HTAnchor.h b/WWW/Library/Implementation/HTAnchor.h index 8818b36d..458cac40 100644 --- a/WWW/Library/Implementation/HTAnchor.h +++ b/WWW/Library/Implementation/HTAnchor.h @@ -98,7 +98,7 @@ struct _HTParentAnchor { char * title; /* Title of document */ char * owner; /* Owner of document */ char * RevTitle; /* TITLE in REV="made" or REV="owner" LINK */ -#ifdef USEHASH +#ifdef USE_HASH char * style; #endif @@ -263,7 +263,7 @@ extern BOOL HTAnchor_isISMAPScript PARAMS(( extern BOOL HTAnchor_hasChildren PARAMS(( HTParentAnchor * me)); -#if defined(USEHASH) +#if defined(USE_HASH) extern CONST char * HTAnchor_style PARAMS(( HTParentAnchor * me)); diff --git a/WWW/Library/Implementation/HTGopher.c b/WWW/Library/Implementation/HTGopher.c index c94c89d8..d4e1673e 100644 --- a/WWW/Library/Implementation/HTGopher.c +++ b/WWW/Library/Implementation/HTGopher.c @@ -1583,6 +1583,7 @@ PUBLIC int HTLoadCSO ARGS4( } } } + anAnchor->safe = TRUE; if (!(anAnchor->post_data && *anAnchor->post_data)) { generate_cso_form(host, port, buf, Target); (*Target->isa->_free)(Target); diff --git a/WWW/Library/Implementation/HTMLDTD.c b/WWW/Library/Implementation/HTMLDTD.c index cef1eaef..a519fb82 100644 --- a/WWW/Library/Implementation/HTMLDTD.c +++ b/WWW/Library/Implementation/HTMLDTD.c @@ -161,133 +161,285 @@ static CONST char* entities[] = { static CONST UC_entity_info extra_entities[] = { {"Aacute", 0x00c1}, /* A with acute */ {"Abreve", 0x0102}, /* A with breve */ - {"Acirc", 0x00c2}, /* A with circumflex */ + {"Acirc", 0x00c2}, /* capital A, circumflex accent */ + {"Alpha", 0x0391}, /* greek capital letter alpha, u+0391 */ {"Aogon", 0x0104}, /* A with ogonek */ - {"Auml", 0x00c4}, /* A with diaeresis */ + {"Auml", 0x00c4}, /* capital A, dieresis or umlaut mark */ + {"Beta", 0x0392}, /* greek capital letter beta, u+0392 */ {"Cacute", 0x0106}, /* C with acute */ {"Ccaron", 0x010c}, /* C with caron */ - {"Ccedil", 0x00c7}, /* C with cedilla */ + {"Ccedil", 0x00c7}, /* capital C, cedilla */ + {"Chi", 0x03a7}, /* greek capital letter chi, u+03A7 */ + {"Dagger", 0x2021}, /* double dagger, u+2021 ISOpub */ {"Dcaron", 0x010e}, /* D with caron */ + {"Delta", 0x0394}, /* greek capital letter delta, u+0394 ISOgrk3 */ {"Dstrok", 0x0110}, /* D with stroke */ {"Eacute", 0x00c9}, /* E with acute */ {"Ecaron", 0x011a}, /* E with caron */ {"Eogon", 0x0118}, /* E with ogonek */ - {"Euml", 0x00cb}, /* E with diaeresis */ + {"Epsilon", 0x0395}, /* greek capital letter epsilon, u+0395 */ + {"Eta", 0x0397}, /* greek capital letter eta, u+0397 */ + {"Euml", 0x00cb}, /* capital E, dieresis or umlaut mark */ + {"Gamma", 0x0393}, /* greek capital letter gamma, u+0393 ISOgrk3 */ {"Iacute", 0x00cd}, /* I with acute */ - {"Icirc", 0x00ce}, /* I with circumflex */ + {"Icirc", 0x00ce}, /* capital I, circumflex accent */ + {"Iota", 0x0399}, /* greek capital letter iota, u+0399 */ + {"Kappa", 0x039a}, /* greek capital letter kappa, u+039A */ {"Lacute", 0x0139}, /* L with acute */ + {"Lambda", 0x039b}, /* greek capital letter lambda, u+039B ISOgrk */ {"Lcaron", 0x013d}, /* L with caron */ {"Lstrok", 0x0141}, /* L with stroke */ + {"Mu", 0x039c}, /* greek capital letter mu, u+039C */ {"Nacute", 0x0143}, /* N with acute */ {"Ncaron", 0x0147}, /* N with caron */ + {"Ntilde", 0x00d1}, /* capital N, tilde */ + {"Nu", 0x039d}, /* greek capital letter nu, u+039D */ + {"OElig", 0x0152}, /* latin capital ligature oe, u+0152 ISOlat2 - */ {"Oacute", 0x00d3}, /* O with acute */ {"Ocirc", 0x00d4}, /* O with circumflex */ {"Odblac", 0x0150}, /* O with double acute */ + {"Ograve", 0x00d2}, /* capital O, grave accent */ + {"Omega", 0x03a9}, /* greek capital letter omega, u+03A9 ISOgrk3 */ + {"Omicron", 0x039f}, /* greek capital letter omicron, u+039F */ {"Ouml", 0x00d6}, /* O with diaeresis */ + {"Phi", 0x03a6}, /* greek capital letter phi, u+03A6 ISOgrk3 - */ + {"Pi", 0x03a0}, /* greek capital letter pi, u+03A0 ISOgrk3 -- */ + {"Prime", 0x2033}, /* double prime, =seconds, =inches, u+2033 IS */ + {"Psi", 0x03a8}, /* greek capital letter psi, u+03A8 ISOgrk3 - */ {"Racute", 0x0154}, /* R with acute */ {"Rcaron", 0x0158}, /* R with caron */ + {"Rho", 0x03a1}, /* greek capital letter rho, u+03A1 */ {"Sacute", 0x015a}, /* S with acute */ {"Scaron", 0x0160}, /* S with caron */ {"Scedil", 0x015e}, /* S with cedilla */ + {"Sigma", 0x03a3}, /* greek capital letter sigma, u+03A3 ISOgrk3 */ + {"Tau", 0x03a4}, /* greek capital letter tau, u+03A4 */ {"Tcaron", 0x0164}, /* T with caron */ {"Tcedil", 0x0162}, /* T with cedilla */ + {"Theta", 0x0398}, /* greek capital letter theta, u+0398 ISOgrk3 */ {"Uacute", 0x00da}, /* U with acute */ {"Udblac", 0x0170}, /* U with double acute */ + {"Ugrave", 0x00d9}, /* capital U, grave accent */ + {"Upsilon", 0x03a5}, /* greek capital letter upsilon, u+03A5 IS */ {"Uring", 0x016e}, /* U with ring above */ - {"Uuml", 0x00dc}, /* U with diaeresis */ - {"Yacute", 0x00dd}, /* Y with acute */ + {"Uuml", 0x00dc}, /* capital U, dieresis or umlaut mark */ + {"Xi", 0x039e}, /* greek capital letter xi, u+039E ISOgrk3 -- */ + {"Yacute", 0x00dd}, /* capital Y, acute accent */ + {"Yuml", 0x0178}, /* latin capital letter y with diaeresis, u+01 */ {"Zacute", 0x0179}, /* Z with acute */ {"Zcaron", 0x017d}, /* Z with caron */ {"Zdot", 0x017b}, /* Z with dot above */ + {"Zeta", 0x0396}, /* greek capital letter zeta, u+0396 */ {"aacute", 0x00e1}, /* a with acute */ {"abreve", 0x0103}, /* a with breve */ {"acirc", 0x00e2}, /* a with circumflex */ {"acute", 0x00b4}, /* acuteaccent */ - {"amp", 0x0026}, /* ampersand */ + {"alefsym", 0x2135}, /* alef symbol, =first transfinite cardinal, */ + {"alpha", 0x03b1}, /* greek small letter alpha, u+03B1 ISOgrk3 -- */ + {"amp", 0x0026}, /* ampersand, u+0026 ISOnum */ + {"and", 0x2227}, /* logical and, =wedge, u+2227 ISOtech */ + {"ang", 0x2220}, /* angle, u+2220 ISOamso */ {"aogon", 0x0105}, /* a with ogonek */ {"apos", 0x0027}, /* apostrophe */ {"ast", 0x002a}, /* asterisk */ - {"auml", 0x00e4}, /* a with diaeresis */ + {"asymp", 0x2248}, /* almost equal to, =asymptotic to, u+2248 IS */ + {"auml", 0x00e4}, /* small a, dieresis or umlaut mark */ + {"bdquo", 0x201e}, /* double low-9 quotation mark, u+201E NEW -- */ + {"beta", 0x03b2}, /* greek small letter beta, u+03B2 ISOgrk3 -- */ {"breve", 0x02d8}, /* breve */ {"bsol", 0x005c}, /* reversesolidus */ + {"bull", 0x2022}, /* bullet, =black small circle, u+2022 ISOpub */ {"cacute", 0x0107}, /* c with acute */ + {"cap", 0x2229}, /* intersection, =cap, u+2229 ISOtech */ {"caron", 0x02c7}, /* caron */ {"ccaron", 0x010d}, /* c with caron */ {"ccedil", 0x00e7}, /* c with cedilla */ {"cedil", 0x00b8}, /* cedilla */ - {"circ", 0x005e}, /* circumflexaccent */ + {"cent", 0x00a2}, /* cent sign */ + {"chi", 0x03c7}, /* greek small letter chi, u+03C7 ISOgrk3 */ + {"circ", 0x02c6}, /* modifier letter circumflex accent, u+02C6 */ + {"clubs", 0x2663}, /* black club suit, =shamrock, u+2663 ISOpub */ {"colon", 0x003a}, /* colon */ {"comma", 0x002c}, /* comma */ {"commat", 0x0040}, /* commercialat */ - {"curren", 0x00a4}, /* currencysign */ + {"cong", 0x2245}, /* approximately equal to, u+2245 ISOtech */ + {"crarr", 0x21b5}, /* downwards arrow with corner leftwards, =ca */ + {"cup", 0x222a}, /* union, =cup, u+222A ISOtech */ + {"curren", 0x00a4}, /* general currency sign */ + {"dArr", 0x21d3}, /* downwards double arrow, u+21D3 ISOamsa */ + {"dagger", 0x2020}, /* dagger, u+2020 ISOpub */ + {"darr", 0x2193}, /* downwards arrow, u+2193 ISOnum */ {"dblac", 0x02dd}, /* doubleacuteaccent */ {"dcaron", 0x010f}, /* d with caron */ {"deg", 0x00b0}, /* degreesign */ + {"delta", 0x03b4}, /* greek small letter delta, u+03B4 ISOgrk3 - */ + {"diams", 0x2666}, /* black diamond suit, u+2666 ISOpub */ {"divide", 0x00f7}, /* divisionsign */ {"dollar", 0x0024}, /* dollarsign */ {"dot", 0x02d9}, /* dotabove */ {"dstrok", 0x0111}, /* d with stroke */ {"eacute", 0x00e9}, /* e with acute */ {"ecaron", 0x011b}, /* e with caron */ + {"ecirc", 0x00ea}, /* small e, circumflex accent */ + {"empty", 0x2205}, /* empty set, =null set, =diameter, u+2205 IS */ + {"emsp", 0x2003}, /* em space, u+2003 ISOpub */ + {"ensp", 0x2002}, /* en space, u+2002 ISOpub */ {"eogon", 0x0119}, /* e with ogonek */ + {"epsilon", 0x03b5}, /* greek small letter epsilon, u+03B5 ISOg */ {"equals", 0x003d}, /* equalssign */ + {"equiv", 0x2261}, /* identical to, u+2261 ISOtech */ + {"eta", 0x03b7}, /* greek small letter eta, u+03B7 ISOgrk3 */ {"euml", 0x00eb}, /* e with diaeresis */ {"excl", 0x0021}, /* exclamationmark */ + {"exist", 0x2203}, /* there exists, u+2203 ISOtech */ + {"fnof", 0x0192}, /* latin small f with hook, =function, =flori */ + {"forall", 0x2200}, /* for all, u+2200 ISOtech */ + {"frasl", 0x2044}, /* fraction slash, u+2044 NEW */ + {"gamma", 0x03b3}, /* greek small letter gamma, u+03B3 ISOgrk3 - */ + {"ge", 0x2265}, /* greater-than or equal to, u+2265 ISOtech - */ {"grave", 0x0060}, /* graveaccent */ {"gt", 0x003e}, /* greater-thansign */ + {"hArr", 0x21d4}, /* left right double arrow, u+21D4 ISOamsa -- */ + {"harr", 0x2194}, /* left right arrow, u+2194 ISOamsa */ + {"hearts", 0x2665}, /* black heart suit, =valentine, u+2665 ISOpu */ + {"hellip", 0x2026}, /* horizontal ellipsis, =three dot leader, u+ */ {"hyphen", 0x002d}, /* hyphen-minus */ {"iacute", 0x00ed}, /* i with acute */ - {"icirc", 0x00ee}, /* i with circumflex */ + {"icirc", 0x00ee}, /* small i, circumflex accent */ + {"image", 0x2111}, /* blackletter capital I, =imaginary part, u+ */ + {"infin", 0x221e}, /* infinity, u+221E ISOtech */ + {"int", 0x222b}, /* integral, u+222B ISOtech */ + {"iota", 0x03b9}, /* greek small letter iota, u+03B9 ISOgrk3 -- */ + {"isin", 0x2208}, /* element of, u+2208 ISOtech */ + {"kappa", 0x03ba}, /* greek small letter kappa, u+03BA ISOgrk3 - */ + {"lArr", 0x21d0}, /* leftwards double arrow, u+21D0 ISOtech */ {"lacute", 0x013a}, /* l with acute */ + {"lambda", 0x03bb}, /* greek small letter lambda, u+03BB ISOgrk3 */ + {"lang", 0x2329}, /* left-pointing angle bracket, =bra, u+2329 */ + {"larr", 0x2190}, /* leftwards arrow, u+2190 ISOnum */ {"lcaron", 0x013e}, /* l with caron */ + {"lceil", 0x2308}, /* left ceiling, =apl upstile, u+2308, ISOams */ {"lcub", 0x007b}, /* leftcurlybracket */ + {"ldquo", 0x201c}, /* left double quotation mark, u+201C ISOnum */ + {"le", 0x2264}, /* less-than or equal to, u+2264 ISOtech */ + {"lfloor", 0x230a}, /* left floor, =apl downstile, u+230A, ISOams */ + {"lowast", 0x2217}, /* asterisk operator, u+2217 ISOtech */ {"lowbar", 0x005f}, /* lowline */ + {"loz", 0x25ca}, /* lozenge, u+25CA ISOpub */ {"lpar", 0x0028}, /* leftparenthesis */ - {"lrm", 8206}, /* left-to-right mark */ + {"lrm", 0x200e}, /* left-to-right mark, u+200E NEW RFC 2070 -- */ + {"lsaquo", 0x2039}, /* single left-pointing angle quotation mark, */ {"lsqb", 0x005b}, /* leftsquarebracket */ + {"lsquo", 0x2018}, /* left single quotation mark, u+2018 ISOnum */ {"lstrok", 0x0142}, /* l with stroke */ {"lt", 0x003c}, /* less-thansign */ + {"macr", 0x00af}, /* macron */ + {"mdash", 0x2014}, /* em dash, u+2014 ISOpub */ + {"minus", 0x2212}, /* minus sign, u+2212 ISOtech */ + {"mu", 0x03bc}, /* greek small letter mu, u+03BC ISOgrk3 */ + {"nabla", 0x2207}, /* nabla, =backward difference, u+2207 ISOtec */ {"nacute", 0x0144}, /* n with acute */ - {"nbsp", 0x00a0}, /* no-breakspace */ + {"nbsp", 0x00a0}, /* no-break space */ {"ncaron", 0x0148}, /* n with caron */ + {"ndash", 0x2013}, /* en dash, u+2013 ISOpub */ + {"ne", 0x2260}, /* not equal to, u+2260 ISOtech */ + {"ni", 0x220b}, /* contains as member, u+220B ISOtech */ + {"notin", 0x2209}, /* not an element of, u+2209 ISOtech */ + {"nsub", 0x2284}, /* not a subset of, u+2284 ISOamsn */ + {"nu", 0x03bd}, /* greek small letter nu, u+03BD ISOgrk3 */ {"num", 0x0023}, /* numbersign */ {"oacute", 0x00f3}, /* o with acute */ {"ocirc", 0x00f4}, /* o with circumflex */ {"odblac", 0x0151}, /* o with double acute */ + {"oelig", 0x0153}, /* latin small ligature oe, u+0153 ISOlat2 */ {"ogon", 0x02db}, /* ogonek */ - {"ouml", 0x00f6}, /* o with diaeresis */ + {"ograve", 0x00f2}, /* small o, grave accent */ + {"oline", 0x203e}, /* overline, =spacing overscore, u+203E NEW - */ + {"omega", 0x03c9}, /* greek small letter omega, u+03C9 ISOgrk3 - */ + {"omicron", 0x03bf}, /* greek small letter omicron, u+03BF NEW */ + {"oplus", 0x2295}, /* circled plus, =direct sum, u+2295 ISOamsb */ + {"or", 0x2228}, /* logical or, =vee, u+2228 ISOtech */ + {"oslash", 0x00f8}, /* small o, slash */ + {"otimes", 0x2297}, /* circled times, =vector product, u+2297 ISO */ + {"ouml", 0x00f6}, /* small o, dieresis or umlaut mark */ + {"part", 0x2202}, /* partial differential, u+2202 ISOtech */ {"percnt", 0x0025}, /* percentsign */ {"period", 0x002e}, /* fullstop */ + {"permil", 0x2030}, /* per mille sign, u+2030 ISOtech */ + {"perp", 0x22a5}, /* up tack, =orthogonal to, =perpendicular, u */ + {"phi", 0x03c6}, /* greek small letter phi, u+03C6 ISOgrk3 */ + {"pi", 0x03c0}, /* greek small letter pi, u+03C0 ISOgrk3 */ + {"piv", 0x03d6}, /* greek pi symbol, u+03D6 ISOgrk3 */ {"plus", 0x002b}, /* plussign */ + {"plusmn", 0x00b1}, /* plus-or-minus sign */ + {"prime", 0x2032}, /* prime, =minutes, =feet, u+2032 ISOtech */ + {"prod", 0x220f}, /* n-ary product, =product sign, u+220F ISOam */ + {"prop", 0x221d}, /* proportional to, u+221D ISOtech */ + {"psi", 0x03c8}, /* greek small letter psi, u+03C8 ISOgrk3 */ {"quest", 0x003f}, /* questionmark */ {"quot", 0x0022}, /* quotationmark */ + {"rArr", 0x21d2}, /* rightwards double arrow, u+21D2 ISOtech -- */ {"racute", 0x0155}, /* r with acute */ + {"radic", 0x221a}, /* square root, =radical sign, u+221A ISOtech */ + {"rang", 0x232a}, /* right-pointing angle bracket, =ket, u+232A */ + {"rarr", 0x2192}, /* rightwards arrow, u+2192 ISOnum */ {"rcaron", 0x0159}, /* r with caron */ + {"rceil", 0x2309}, /* right ceiling, u+2309, ISOamsc */ {"rcub", 0x007d}, /* rightcurlybracket */ + {"rdquo", 0x201d}, /* right double quotation mark, u+201D ISOnum */ + {"real", 0x211c}, /* blackletter capital R, =real part symbol, */ + {"rfloor", 0x230b}, /* right floor, u+230B, ISOamsc */ + {"rho", 0x03c1}, /* greek small letter rho, u+03C1 ISOgrk3 */ {"rlm", 8207}, /* right-to-left mark */ {"rpar", 0x0029}, /* rightparenthesis */ + {"rsaquo", 0x203a}, /* single right-pointing angle quotation mark */ {"rsqb", 0x005d}, /* rightsquarebracket */ + {"rsquo", 0x2019}, /* right single quotation mark, u+2019 ISOnum */ {"sacute", 0x015b}, /* s with acute */ - {"scaron", 0x0161}, /* s with caron */ + {"sbquo", 0x201a}, /* single low-9 quotation mark, u+201A NEW -- */ + {"scaron", 0x0161}, /* latin small letter s with caron, u+0161 ISO */ {"scedil", 0x015f}, /* s with cedilla */ - {"sect", 0x00a7}, /* sectionsign */ + {"sdot", 0x22c5}, /* dot operator, u+22C5 ISOamsb */ + {"sect", 0x00a7}, /* section sign */ {"semi", 0x003b}, /* semicolon */ - {"shy", 0x00ad}, /* softhyphen */ + {"shy", 0x00ad}, /* soft hyphen */ + {"sigma", 0x03c3}, /* greek small letter sigma, u+03C3 ISOgrk3 - */ + {"sigmaf", 0x03c2}, /* greek small letter final sigma, u+03C2 ISO */ + {"sim", 0x223c}, /* tilde operator, =varies with, =similar to, */ {"sol", 0x002f}, /* solidus */ + {"spades", 0x2660}, /* black spade suit, u+2660 ISOpub */ + {"sub", 0x2282}, /* subset of, u+2282 ISOtech */ + {"sube", 0x2286}, /* subset of or equal to, u+2286 ISOtech */ + {"sum", 0x2211}, /* n-ary sumation, u+2211 ISOamsb */ + {"sup", 0x2283}, /* superset of, u+2283 ISOtech */ + {"supe", 0x2287}, /* superset of or equal to, u+2287 ISOtech -- */ + {"tau", 0x03c4}, /* greek small letter tau, u+03C4 ISOgrk3 */ {"tcaron", 0x0165}, /* t with caron */ {"tcedil", 0x0163}, /* t with cedilla */ - {"tilde", 0x007e}, /* tilde */ - {"times", 0x00d7}, /* multiplicationsign */ + {"there4", 0x2234}, /* therefore, u+2234 ISOtech */ + {"theta", 0x03b8}, /* greek small letter theta, u+03B8 ISOgrk3 - */ + {"thetasym", 0x03d1}, /* greek small letter theta symbol, u+03D1 */ + {"thinsp", 0x2009}, /* thin space, u+2009 ISOpub */ + {"tilde", 0x02dc}, /* small tilde, u+02DC ISOdia */ + {"times", 0x00d7}, /* multiply sign */ + {"trade", 0x2122}, /* trade mark sign, u+2122 ISOnum */ + {"uArr", 0x21d1}, /* upwards double arrow, u+21D1 ISOamsa */ {"uacute", 0x00fa}, /* u with acute */ + {"uarr", 0x2191}, /* upwards arrow, u+2191 ISOnum--> */ {"udblac", 0x0171}, /* u with double acute */ - {"uml", 0x00a8}, /* diaeresis */ + {"uml", 0x00a8}, /* umlaut (dieresis) */ + {"upsih", 0x03d2}, /* greek upsilon with hook symbol, u+03D2 NEW */ + {"upsilon", 0x03c5}, /* greek small letter upsilon, u+03C5 ISOg */ {"uring", 0x016f}, /* u with ring above */ {"uuml", 0x00fc}, /* u with diaeresis */ {"verbar", 0x007c}, /* verticalline */ + {"weierp", 0x2118}, /* script capital P, =power set, =Weierstrass */ + {"xi", 0x03be}, /* greek small letter xi, u+03BE ISOgrk3 */ {"yacute", 0x00fd}, /* y with acute */ {"zacute", 0x017a}, /* z with acute */ {"zcaron", 0x017e}, /* z with caron */ {"zdot", 0x017c}, /* z with dot above */ + {"zeta", 0x03b6}, /* greek small letter zeta, u+03B6 ISOgrk3 -- */ {"zwj", 8205}, /* zero width joiner */ {"zwnj", 8204}, /* zero width non-joiner */ diff --git a/WWW/Library/Implementation/HTString.c b/WWW/Library/Implementation/HTString.c index 9f693924..3f3c9f4b 100644 --- a/WWW/Library/Implementation/HTString.c +++ b/WWW/Library/Implementation/HTString.c @@ -154,3 +154,135 @@ PUBLIC char * HTNextField ARGS1( *pstr = p; return start; } + +/* Find next Token +** --------------- +** Finds the next token in a string +** On entry, +** *pstr points to a string to be parsed. +** delims lists characters to be recognized as delimiters. +** If NULL default is white white space "," ";" or "=". +** The word can optionally be quoted or enclosed with +** chars from bracks. +** Comments surrrounded by '(' ')' are filtered out +** unless they are specifically reqested by including +** ' ' or '(' in delims or bracks. +** bracks lists bracketing chars. Some are recognized as +** special, for those give the opening char. +** If NULL defaults to <"> and "<" ">". +** found points to location to fill with the ending delimiter +** found, or is NULL. +** +** On exit, +** *pstr has been moved to the first delimiter past the +** field +** THE STRING HAS BEEN MUTILATED by a 0 terminator +** found points to the delimiter found unless it was NULL. +** Returns a pointer to the first word or NULL on error +*/ +PUBLIC char * HTNextTok (char ** pstr, + const char * delims, const char * bracks, char * found) +{ + char * p = *pstr; + char * start = NULL; + BOOL get_blanks, skip_comments; + BOOL get_comments; + BOOL get_closing_char_too = FALSE; + char closer; + if (!pstr || !*pstr) return NULL; + if (!delims) delims = " ;,=" ; + if (!bracks) bracks = "<\"" ; + + get_blanks = (!strchr(delims,' ') && !strchr(bracks,' ')); + get_comments = (strchr(bracks,'(') != NULL); + skip_comments = (!get_comments && !strchr(delims,'(') && !get_blanks); +#define skipWHITE(c) (!get_blanks && WHITE(c)) + + while (*p && skipWHITE(*p)) + p++; /* Strip white space */ + if (!*p) { + *pstr = p; + if (found) *found = '\0'; + return NULL; /* No first field */ + } + while (1) { + /* Strip white space and other delimiters */ + while (*p && (skipWHITE(*p) || strchr(delims,*p))) p++; + if (!*p) { + *pstr = p; + if (found) *found = *(p-1); + return NULL; /* No field */ + } + + if (*p == '(' && (skip_comments || get_comments)) { /* Comment */ + int comment_level = 0; + if (get_comments && !start) start = p+1; + for(;*p && (*p!=')' || --comment_level>0); p++) { + if (*p == '(') comment_level++; + else if (*p == '"') { /* quoted field within Comment */ + for(p++; *p && *p!='"'; p++) + if (*p == '\\' && *(p+1)) p++; /* Skip escaped chars */ + if (!*p) break; /* (invalid) end of string found, leave */ + } + if (*p == '\\' && *(p+1)) p++; /* Skip escaped chars */ + } + if (get_comments) + break; + if (*p) p++; + if (get_closing_char_too) { + if (!*p || (!strchr(bracks,*p) && strchr(delims,*p))) { + break; + } else + get_closing_char_too = (strchr(bracks,*p) != NULL); + } + } else if (strchr(bracks,*p)) { /* quoted or bracketted field */ + switch (*p) { + case '<': closer = '>'; break; + case '[': closer = ']'; break; + case '{': closer = '}'; break; + case ':': closer = ';'; break; + default: closer = *p; + } + if (!start) start = ++p; + for(;*p && *p!=closer; p++) + if (*p == '\\' && *(p+1)) p++; /* Skip escaped chars */ + if (get_closing_char_too) { + p++; + if (!*p || (!strchr(bracks,*p) && strchr(delims,*p))) { + break; + } else + get_closing_char_too = (strchr(bracks,*p) != NULL); + } else + break; /* kr95-10-9: needs to stop here */ +#if 0 + } else if (*p == '<') { /* quoted field */ + if (!start) start = ++p; + for(;*p && *p!='>'; p++) + if (*p == '\\' && *(p+1)) p++; /* Skip escaped chars */ + break; /* kr95-10-9: needs to stop here */ +#endif + } else { /* Spool field */ + if (!start) start = p; + while(*p && !skipWHITE(*p) && !strchr(bracks,*p) && + !strchr(delims,*p)) + p++; + if (*p && strchr(bracks,*p)) { + get_closing_char_too = TRUE; + } else { + if (*p=='(' && skip_comments) { + *pstr = p; + HTNextTok(pstr, NULL, "(", found); /* Advance pstr */ + *p = '\0'; + if (*pstr && **pstr) (*pstr)++; + return start; + } + break; /* Got it */ + } + } + } + if (found) *found = *p; + + if (*p) *p++ = '\0'; + *pstr = p; + return start; +} diff --git a/WWW/Library/Implementation/HTString.h b/WWW/Library/Implementation/HTString.h index 7fad84bb..ffc79e64 100644 --- a/WWW/Library/Implementation/HTString.h +++ b/WWW/Library/Implementation/HTString.h @@ -42,6 +42,9 @@ Next word or quoted string */ extern char * HTNextField PARAMS ((char** pstr)); +/* A more general parser - kw */ +extern char * HTNextTok (char ** pstr, + const char * delims, const char * bracks, char * found); #endif /* diff --git a/WWW/Library/Implementation/Makefile.old b/WWW/Library/Implementation/Makefile.old new file mode 100644 index 00000000..7f028976 --- /dev/null +++ b/WWW/Library/Implementation/Makefile.old @@ -0,0 +1,489 @@ +# Makefile generated by imake - do not edit! +# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $ +# +# The cpp used on this machine replaces all newlines and multiple tabs and +# spaces in a macro expansion with a single space. Imake tries to compensate +# for this, but is not always successful. +# + +########################################################################### +# Makefile generated from "Imake.tmpl" and </tmp/IIf.a00214> +# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $ +# +# Platform-specific parameters may be set in the appropriate .cf +# configuration files. Site-wide parameters may be set in the file +# site.def. Full rebuilds are recommended if any parameters are changed. +# +# If your C preprocessor doesn't define any unique symbols, you'll need +# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing +# "make Makefile", "make Makefiles", or "make World"). +# +# If you absolutely can't get imake to work, you'll need to set the +# variables at the top of each Makefile as well as the dependencies at the +# bottom (makedepend will do this automatically). +# + +########################################################################### +# platform-specific configuration parameters - edit sun.cf to change + +# platform: $XConsortium: sun.cf,v 1.38 89/12/23 16:10:10 jim Exp $ +# operating system: SunOS 4.0.3 + +########################################################################### +# site-specific configuration parameters - edit site.def to change + + SHELL = /bin/sh + + TOP = . + CURRENT_DIR = . + + AR = ar clq + BOOTSTRAPCFLAGS = + CC = cc + + COMPRESS = compress + CPP = /lib/cpp $(STD_CPP_DEFINES) + PREPROCESSCMD = cc -E $(STD_CPP_DEFINES) + INSTALL = install + LD = ld + LINT = lint + LINTLIBFLAG = -C + LINTOPTS = -axz + LN = ln -s + MAKE = make + MV = mv + CP = cp + RANLIB = ranlib + RANLIBINSTFLAGS = + RM = rm -f + STD_INCLUDES = + STD_CPP_DEFINES = + STD_DEFINES = + EXTRA_LOAD_FLAGS = + EXTRA_LIBRARIES = + TAGS = ctags + + SHAREDCODEDEF = -DSHAREDCODE + SHLIBDEF = -DSUNSHLIB + + PROTO_DEFINES = + + INSTPGMFLAGS = + + INSTBINFLAGS = -m 0755 + INSTUIDFLAGS = -m 4755 + INSTLIBFLAGS = -m 0664 + INSTINCFLAGS = -m 0444 + INSTMANFLAGS = -m 0444 + INSTDATFLAGS = -m 0444 + INSTKMEMFLAGS = -m 4755 + + DESTDIR = + + TOP_INCLUDES = -I$(INCROOT) + + CDEBUGFLAGS = -O + CCOPTIONS = + COMPATFLAGS = + + ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) + ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS) + CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES) + LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) + LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) + LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) + LDCOMBINEFLAGS = -X -r + + MACROFILE = sun.cf + RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut + + IMAKE_DEFINES = + + IRULESRC = $(CONFIGDIR) + IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) + + ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \ + $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \ + $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES) + +########################################################################### +# X Window System Build Parameters +# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $ + +########################################################################### +# X Window System make variables; this need to be coordinated with rules +# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $ + + PATHSEP = / + USRLIBDIR = $(DESTDIR)/usr/lib + BINDIR = $(DESTDIR)/usr/bin/X11 + INCROOT = $(DESTDIR)/usr/include + BUILDINCROOT = $(TOP) + BUILDINCDIR = $(BUILDINCROOT)/X11 + BUILDINCTOP = .. + INCDIR = $(INCROOT)/X11 + ADMDIR = $(DESTDIR)/usr/adm + LIBDIR = $(USRLIBDIR)/X11 + CONFIGDIR = $(LIBDIR)/config + LINTLIBDIR = $(USRLIBDIR)/lint + + FONTDIR = $(LIBDIR)/fonts + XINITDIR = $(LIBDIR)/xinit + XDMDIR = $(LIBDIR)/xdm + AWMDIR = $(LIBDIR)/awm + TWMDIR = $(LIBDIR)/twm + GWMDIR = $(LIBDIR)/gwm + MANPATH = $(DESTDIR)/usr/man + MANSOURCEPATH = $(MANPATH)/man + MANDIR = $(MANSOURCEPATH)n + LIBMANDIR = $(MANSOURCEPATH)3 + XAPPLOADDIR = $(LIBDIR)/app-defaults + + SOXLIBREV = 4.2 + SOXTREV = 4.0 + SOXAWREV = 4.0 + SOOLDXREV = 4.0 + SOXMUREV = 4.0 + SOXEXTREV = 4.0 + + FONTCFLAGS = -t + + INSTAPPFLAGS = $(INSTDATFLAGS) + + IMAKE = imake + DEPEND = makedepend + RGB = rgb + FONTC = bdftosnf + MKFONTDIR = mkfontdir + MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier.sh + + CONFIGSRC = $(TOP)/config + CLIENTSRC = $(TOP)/clients + DEMOSRC = $(TOP)/demos + LIBSRC = $(TOP)/lib + FONTSRC = $(TOP)/fonts + INCLUDESRC = $(TOP)/X11 + SERVERSRC = $(TOP)/server + UTILSRC = $(TOP)/util + SCRIPTSRC = $(UTILSRC)/scripts + EXAMPLESRC = $(TOP)/examples + CONTRIBSRC = $(TOP)/../contrib + DOCSRC = $(TOP)/doc + RGBSRC = $(TOP)/rgb + DEPENDSRC = $(UTILSRC)/makedepend + IMAKESRC = $(CONFIGSRC) + XAUTHSRC = $(LIBSRC)/Xau + XLIBSRC = $(LIBSRC)/X + XMUSRC = $(LIBSRC)/Xmu + TOOLKITSRC = $(LIBSRC)/Xt + AWIDGETSRC = $(LIBSRC)/Xaw + OLDXLIBSRC = $(LIBSRC)/oldX + XDMCPLIBSRC = $(LIBSRC)/Xdmcp + BDFTOSNFSRC = $(FONTSRC)/bdftosnf + MKFONTDIRSRC = $(FONTSRC)/mkfontdir + EXTENSIONSRC = $(TOP)/extensions + + DEPEXTENSIONLIB = + EXTENSIONLIB = -lXext + + DEPXLIB = $(DEPEXTENSIONLIB) + XLIB = $(EXTENSIONLIB) -lX11 + + DEPXAUTHLIB = $(USRLIBDIR)/libXau.a + XAUTHLIB = -lXau + + DEPXMULIB = + XMULIB = -lXmu + + DEPOLDXLIB = + OLDXLIB = -loldX + + DEPXTOOLLIB = + XTOOLLIB = -lXt + + DEPXAWLIB = + XAWLIB = -lXaw + + LINTEXTENSIONLIB = $(USRLIBDIR)/llib-lXext.ln + LINTXLIB = $(USRLIBDIR)/llib-lX11.ln + LINTXMU = $(USRLIBDIR)/llib-lXmu.ln + LINTXTOOL = $(USRLIBDIR)/llib-lXt.ln + LINTXAW = $(USRLIBDIR)/llib-lXaw.ln + + DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) + + DEPLIBS1 = $(DEPLIBS) + DEPLIBS2 = $(DEPLIBS) + DEPLIBS3 = $(DEPLIBS) + +########################################################################### +# Imake rules for building libraries, programs, scripts, and data files +# rules: $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $ + +########################################################################### +# start of Imakefile + +# Make WWW under unix for a.n.other unix system (bsd) +# Use this as a template + +TK_WWW_SOURCE_PATH=/a/dxcern/userd/tbl/hypertext/WWW/TkWWW/Tcl + +TK_WWW_INSTALL_PATH=/a/dxcern/userd/tbl/hypertext/WWW/TkWWW/$(WWW_MACH) + +TK_WWW_HOME_PAGE=http://www.w3.org/default.html +TK_WWW_START_PAGE=$(TK_WWW_HOME_PAGE) + +CC = gcc -fno-builtin -Wall + +CDEBUGFLAGS = -O3 -pipe + +COMPATFLAGS = -I/afs/athena.mit.edu/course/other/cdsdev/www-compat +CCOPTIONS = + +BINDIR = $(TK_WWW_INSTALL_PATH) + +# For W3 distribution, machine type for subdirectories +WWW_MACH = unix_x + +# The ASIS repository's name for the machine we are on +ASIS_MACH = hardware/os + +#_________________ OK if normal W3 distribution +# Where is the WWW source root? +WWW = ../.. + +# Where should temporary (object) files go? +WTMP = /tmp + +# Common Makefile for W3 Library Code +# ----------------------------------- +# +# (c) CERN 1990, 1991 -- see Copyright.html for conditions +# +# This file should be invariant between systems. +# DEPENDENCIES NOT COMPLETE + +# +# make Compile and link the software (private version) +# make clean Remove intermediate files + +WC = $(WWW)/Library +CMN = $(WWW)/Library/Implementation/ + +# Where shall we put the objects and built library? + +LOB = $(WTMP)/Library/$(WWW_MACH) + +# Bug: This path, if relative, is taken relative to the directory +# in which this makefile is, not the pwd. This screws up the +# recursive invocation + +VC = 2.14 + +CFLAGS2 = $(CFLAGS) -I$(CMN) + +CERNLIBBIN = $(WWW)/bin + +COMMON = $(LOB)/HTParse.o $(LOB)/HTAccess.o $(LOB)/HTTP.o \ + $(LOB)/HTFile.o $(LOB)/HTFTP.o $(LOB)/HTTCP.o \ + $(LOB)/SGML.o $(LOB)/HTMLDTD.o $(LOB)/HTChunk.o \ + $(LOB)/HTPlain.o $(LOB)/HTWriter.o $(LOB)/HTFWriter.o \ + $(LOB)/HTMLGen.o \ + $(LOB)/HTAtom.o $(LOB)/HTAnchor.o $(LOB)/HTStyle.o \ + $(LOB)/HTList.o $(LOB)/HTString.o $(LOB)/HTAlert.o \ + $(LOB)/HTRules.o $(LOB)/HTFormat.o $(LOB)/HTInit.o $(LOB)/HTMIME.o \ + $(LOB)/HTHistory.o $(LOB)/HTNews.o $(LOB)/HTGopher.o \ + $(LOB)/HTTelnet.o $(LOB)/HTWSRC.o $(HTWAIS) + +CFILES = $(CMN)HTParse.c $(CMN)HTAccess.c $(CMN)HTTP.c $(CMN)HTFile.c \ + $(CMN)HTFTP.c $(CMN)HTTCP.c $(CMN)SGML.c \ + $(CMN)HTMLDTD.c \ + $(CMN)HTPlain.c $(CMN)HTWriter.c $(CMN)HTFWriter.c $(CMN)HTMLGen.c \ + $(CMN)HTChunk.c $(CMN)HTAtom.c $(CMN)HTAnchor.c $(CMN)HTStyle.c \ + $(CMN)HTList.c $(CMN)HTString.c $(CMN)HTAlert.c $(CMN)HTRules.c \ + $(CMN)HTFormat.c $(CMN)HTInit.c $(CMN)HTMIME.c $(CMN)HTHistory.c \ + $(CMN)HTNews.c $(CMN)HTGopher.c $(CMN)HTTelnet.c \ + $(CMN)HTWAIS.c $(CMN)HTWSRC.c + +HFILES = $(CMN)HTParse.h $(CMN)HTAccess.h $(CMN)HTTP.h $(CMN)HTFile.h \ + $(CMN)HTFTP.h $(CMN)HTTCP.h \ + $(CMN)SGML.h $(CMN)HTML.h $(CMN)HTMLDTD.h $(CMN)HTChunk.h \ + $(CMN)HTPlain.h $(CMN)HTWriter.h \ + $(CMN)HTFWriter.h $(CMN)HTMLGen.h \ + $(CMN)HTStream.h \ + $(CMN)HTAtom.h $(CMN)HTAnchor.h $(CMN)HTStyle.h \ + $(CMN)HTList.h \ + $(CMN)HTString.h $(CMN)HTAlert.h $(CMN)HTRules.h \ + $(CMN)HTFormat.h $(CMN)HTInit.h \ + $(CMN)HTMIME.h $(CMN)HTHistory.h $(CMN)HTNews.h \ + $(CMN)HTGopher.h \ + $(CMN)HTUtils.h $(CMN)tcp.h $(CMN)WWW.h $(CMN)HText.h \ + $(CMN)HTTelnet.h \ + $(CMN)HTWAIS.h $(CMN)HTWSRC.h + +SOURCES = $(CFILES) $(HFILES) $(CMN)Version.make $(CMN)CommonMakefile \ + $(WWW)/README.txt $(WWW)/Copyright.txt $(WWW)/BUILD +SPECIFIC = $(WWW)/All + +# Library +# +# On SGI, ranlib is unnecessary and does not exist so we ignore errors +# for that step +all: $(LOB)/libwww.a + $(MV) $(LOB)/libwww.a $(WC)/$(WWW_MACH) + +$(LOB)/libwww.a : $(COMMON) + ar r $(LOB)/libwww.a $(COMMON) + -ranlib $(LOB)/libwww.a + +# Clean up everything generatable except final products +clean :: + $(RM) $(LOB) + +# Clean up everything generatable including final products + +cleanall :: clean + $(RM) $(LOB)/libwww.a + +# Common code +# ----------- + +# Directory for object files - .created checks it exists + +OE = $(LOB)/.created +$(OE) : + -mkdir $(WTMP) + -mkdir $(WTMP)/Library + -mkdir $(WTMP)/Library/$(WWW_MACH) + touch $@ + +$(LOB)/HTList.o : $(OE) $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTList.c + +$(LOB)/HTAnchor.o : $(OE) $(CMN)HTAnchor.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAnchor.c + +$(LOB)/HTFormat.o : $(OE) $(CMN)HTFormat.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFormat.c + +$(LOB)/HTInit.o : $(OE) $(CMN)HTInit.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTInit.c + +$(LOB)/HTMIME.o : $(OE) $(CMN)HTMIME.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMIME.c + +$(LOB)/HTHistory.o : $(OE) $(CMN)HTHistory.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTHistory.c + +$(LOB)/HTNews.o : $(OE) $(CMN)HTNews.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTNews.c + +$(LOB)/HTGopher.o : $(OE) $(CMN)HTGopher.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTGopher.c + +$(LOB)/HTTelnet.o : $(OE) $(CMN)HTTelnet.c $(CMN)HTUtils.h $(CMN)HTTelnet.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTelnet.c + +$(LOB)/HTStyle.o : $(OE) $(CMN)HTStyle.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTStyle.c + +$(LOB)/HTAtom.o : $(OE) $(CMN)HTAtom.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAtom.c + +$(LOB)/HTChunk.o : $(OE) $(CMN)HTChunk.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTChunk.c + +$(LOB)/HTString.o : $(OE) $(CMN)HTString.c $(CMN)HTUtils.h $(CMN)Version.make + $(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTString.c + +$(LOB)/HTAlert.o : $(OE) $(CMN)HTAlert.c $(CMN)HTUtils.h $(CMN)Version.make + $(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTAlert.c + +$(LOB)/HTRules.o : $(OE) $(CMN)HTRules.c $(CMN)HTUtils.h $(CMN)Version.make + $(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTRules.c + +$(LOB)/SGML.o : $(OE) $(CMN)SGML.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)SGML.c + +$(LOB)/HTMLGen.o : $(OE) $(CMN)HTMLGen.c $(CMN)HTUtils.h $(CMN)HTMLDTD.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMLGen.c + +$(LOB)/HTMLDTD.o : $(OE) $(CMN)HTMLDTD.c $(CMN)SGML.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMLDTD.c + +$(LOB)/HTPlain.o : $(OE) $(CMN)HTPlain.c $(CMN)HTPlain.h $(CMN)HTStream.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTPlain.c + +$(LOB)/HTWAIS.o : $(OE) $(CMN)HTWAIS.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(WAISINC) $(CMN)HTWAIS.c + +$(LOB)/HTWSRC.o : $(OE) $(CMN)HTWSRC.c $(CMN)HTUtils.h $(CMN)HTList.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTWSRC.c + +$(LOB)/HTWriter.o : $(OE) $(CMN)HTWriter.c $(CMN)HTWriter.h $(CMN)HTStream.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTWriter.c + +$(LOB)/HTFWriter.o : $(OE) $(CMN)HTFWriter.c $(CMN)HTFWriter.h $(CMN)HTStream.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFWriter.c + +# Communications & Files + +$(LOB)/HTTP.o : $(OE) $(CMN)HTTP.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTP.c + +$(LOB)/HTTCP.o : $(OE) $(CMN)HTTCP.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTCP.c + +$(LOB)/HTFile.o : $(OE) $(CMN)HTFile.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFile.c + +$(LOB)/HTFTP.o : $(OE) $(CMN)HTFTP.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFTP.c + +$(LOB)/HTAccess.o : $(OE) $(CMN)HTAccess.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAccess.c + +$(LOB)/HTParse.o : $(OE) $(CMN)HTParse.c $(CMN)HTUtils.h + $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTParse.c + +########################################################################### +# common rules for all Makefiles - do not edit + +emptyrule:: + +clean:: + $(RM_CMD) \#* + +Makefile:: + -@if [ -f Makefile ]; then \ + echo " $(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \ + $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ + else exit 0; fi + $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) + +tags:: + $(TAGS) -w *.[ch] + $(TAGS) -xw *.[ch] > TAGS + +saber: + #load $(ALLDEFINES) $(SRCS) + +osaber: + #load $(ALLDEFINES) $(OBJS) + +########################################################################### +# empty rules for directories that do not have SUBDIRS - do not edit + +install:: + @echo "install in $(CURRENT_DIR) done" + +install.man:: + @echo "install.man in $(CURRENT_DIR) done" + +Makefiles:: + +includes:: + +########################################################################### +# dependencies generated by makedepend + diff --git a/WWW/Library/Implementation/SGML.c b/WWW/Library/Implementation/SGML.c index 2a210561..c2cadecd 100644 --- a/WWW/Library/Implementation/SGML.c +++ b/WWW/Library/Implementation/SGML.c @@ -479,7 +479,7 @@ PRIVATE void handle_comment ARGS1( if (context->csi == NULL && strncmp(s, "!--#", 4) == 0 && - LYCheckForCSI(context->target, (char **)&context->url) == TRUE) { + LYCheckForCSI(context->node_anchor, (char **)&context->url) == TRUE) { LYDoCSI(context->url, s, (char **)&context->csi); } diff --git a/WWW/Library/Implementation/SGML.h b/WWW/Library/Implementation/SGML.h index 0799c055..d8f90c19 100644 --- a/WWW/Library/Implementation/SGML.h +++ b/WWW/Library/Implementation/SGML.h @@ -222,10 +222,11 @@ typedef struct _HTStructuredClass{ }HTStructuredClass; /* - The following functions possibly should be generalised into - additional HTStructuredClass memebers. - kw + Equivalents to the following functions possibly could be generalised + into additional HTStructuredClass members. FOr now they don't do + anything target-specific. - kw */ -extern BOOLEAN LYCheckForCSI PARAMS((HTStructured *target, char **url)); +extern BOOLEAN LYCheckForCSI PARAMS((HTParentAnchor *anchor, char **url)); extern void LYDoCSI PARAMS((char *url, CONST char *comment, char **csi)); /* diff --git a/WWW/Library/Implementation/UCAux.h b/WWW/Library/Implementation/UCAux.h index a21521c4..36c17050 100644 --- a/WWW/Library/Implementation/UCAux.h +++ b/WWW/Library/Implementation/UCAux.h @@ -53,6 +53,13 @@ extern void UCSetTransParams PARAMS(( extern void UCTransParams_clear PARAMS(( UCTransParams * pT)); +extern void UCSetBoxChars PARAMS(( + int cset, + int * pvert_out, + int * phori_out, + int vert_in, + int hori_in)); + #ifndef HTSTREAM_H #include "HTStream.h" #endif /* HTSTREAM_H */ diff --git a/WWW/Library/djgpp/CommonMakefile b/WWW/Library/djgpp/CommonMakefile index 8543aaf3..1fdaf314 100644 --- a/WWW/Library/djgpp/CommonMakefile +++ b/WWW/Library/djgpp/CommonMakefile @@ -146,7 +146,7 @@ $(LOB)/libwww.a : $(COMMON) # Clean up everything generatable except final products clean : - rm $(LOB)/*.o $(LOB)/created + rm $(LOB)/*.o -rmdir $(LOB) # Clean up everything generatable including final products @@ -212,15 +212,7 @@ $(WWW)/Copyright.txt : $(WWW)/../Copyright.html # Common code # ----------- -# Directory for object files - created checks it exists - -OE = $(LOB)/created -$(OE) : - if [ ! -r $(WTMP) ] ; then mkdir $(WTMP); else echo OK ; fi - if [ ! -r $(WTMP)/Library ] ; then mkdir $(WTMP)/Library; else echo OK ; fi - if [ ! -r $(WTMP)/Library/$(WWW_MACH) ] ; \ - then mkdir $(WTMP)/Library/$(WWW_MACH); else echo OK ; fi - touch $@ +# Directory for object files $(LOB)/HTList.o : $(OE) $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTList.c diff --git a/WWW/Library/djgpp/makefile b/WWW/Library/djgpp/makefile index cf37f9f1..103b4c04 100644 --- a/WWW/Library/djgpp/makefile +++ b/WWW/Library/djgpp/makefile @@ -7,7 +7,8 @@ WWW_MACH = djgpp # The ASIS repository's name for the machine we are on #ASIS_MACH = hardware/os -CFLAGS = -O3 -DEXP_CHARTRANS -DCOLOR_CURSES -DDOSPATH -DNOUSERS -DDEBUG -I../../../djgpp/tcplib/include -I../../../djgpp/tcplib/include/tcp +CFLAGS = -O3 -DUSE_ZLIB -DEXP_CHARTRANS -DDOSPATH -DNOUSERS -DDEBUG -I../../../djgpp/tcplib/include -I../../../djgpp/tcplib/include/tcp \ +-I../../../src -I../../.. LFLAGS = CC = gcc diff --git a/WWW/Library/unix/Makefile.old b/WWW/Library/unix/Makefile.old new file mode 100644 index 00000000..5fea7dd7 --- /dev/null +++ b/WWW/Library/unix/Makefile.old @@ -0,0 +1,30 @@ +# Make WWW under unix for a.n.other unix system (bsd) +# Use this as a template + +# For W3 distribution, machine type for subdirectories +WWW_MACH = unix + +# The ASIS repository's name for the machine we are on +ASIS_MACH = hardware/os + + +CFLAGS = -g -DDEBUG +LFLAGS = +CC = cc + +# Directory for installed binary: +BINDIR = /usr/local/bin + +# Where is the W3 object library to be installed (not normally done)? +LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) + +#_________________ OK if normal W3 distribution +# Where is the WWW source root? +WWW = ../.. + +# Where should temporary (object) files go? +WTMP = ../.. + + +include $(WWW)/Library/Implementation/Version.make +include $(WWW)/Library/Implementation/CommonMakefile diff --git a/aclocal.m4 b/aclocal.m4 index eb580790..47eef98f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -32,6 +32,22 @@ do done ])dnl dnl --------------------------------------------------------------------------- +dnl Check for existence of alternate-character-set support in curses, so we +dnl can decide to use it for box characters. +dnl +AC_DEFUN([CF_ALT_CHAR_SET], +[ +AC_MSG_CHECKING([if curses supports alternate-character set]) +AC_CACHE_VAL(cf_cv_alt_char_set,[ + AC_TRY_LINK([ +#include <$cf_cv_ncurses_header> + ],[chtype x = acs_map['l']; acs_map['m'] = 0], + [cf_cv_alt_char_set=yes], + [cf_cv_alt_char_set=no])]) +AC_MSG_RESULT($cf_cv_alt_char_set) +test $cf_cv_alt_char_set = yes && AC_DEFINE(ALT_CHAR_SET) +])dnl +dnl --------------------------------------------------------------------------- dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES' dnl in the sharutils 4.2 distribution. AC_DEFUN([CF_ANSI_CC_CHECK], @@ -76,22 +92,6 @@ fi fi ])dnl dnl --------------------------------------------------------------------------- -dnl Check for existence of alternate-character-set support in curses, so we -dnl can decide to use it for box characters. -dnl -AC_DEFUN([CF_ALT_CHAR_SET], -[ -AC_MSG_CHECKING([if curses supports alternate-character set]) -AC_CACHE_VAL(cf_cv_alt_char_set,[ - AC_TRY_LINK([ -#include <$cf_cv_ncurses_header> - ],[chtype x = acs_map['l']; acs_map['m'] = 0], - [cf_cv_alt_char_set=yes], - [cf_cv_alt_char_set=no])]) -AC_MSG_RESULT($cf_cv_alt_char_set) -test $cf_cv_alt_char_set = yes && AC_DEFINE(ALT_CHAR_SET) -])dnl -dnl --------------------------------------------------------------------------- dnl Allow user to disable a normally-on option. AC_DEFUN([CF_ARG_DISABLE], [CF_ARG_OPTION($1,[$2 (default: on)],[$3],[$4],yes)])dnl @@ -105,7 +105,7 @@ dnl values. dnl dnl Parameters: dnl $1 = option name -dnl $2 = help-string +dnl $2 = help-string dnl $3 = action to perform if option is not default dnl $4 = action if perform if option is default dnl $5 = default option value (either 'yes' or 'no') @@ -367,6 +367,44 @@ if test $cf_cv_have_lib_$1 = no ; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl Test for the presence of <sys/wait.h>, 'union wait', arg-type of 'wait()' +dnl and/or 'waitpid()'. +dnl +dnl Note that we cannot simply grep for 'union wait' in the wait.h file, +dnl because some Posix systems turn this on only when a BSD variable is +dnl defined. +dnl +dnl I don't use AC_HEADER_SYS_WAIT, because it defines HAVE_SYS_WAIT_H, which +dnl would conflict with an attempt to test that header directly. +dnl +AC_DEFUN([CF_FUNC_WAIT], +[ +AC_REQUIRE([CF_UNION_WAIT]) +if test $cf_cv_type_unionwait = yes; then + + AC_MSG_CHECKING(if union wait can be used as wait-arg) + AC_CACHE_VAL(cf_cv_arg_union_wait,[ + AC_TRY_COMPILE($cf_wait_headers, + [union wait x; wait(&x)], + [cf_cv_arg_union_wait=yes], + [cf_cv_arg_union_wait=no]) + ]) + AC_MSG_RESULT($cf_cv_arg_union_wait) + test $cf_cv_arg_union_wait = yes && AC_DEFINE(WAIT_USES_UNION) + + AC_MSG_CHECKING(if union wait can be used as waitpid-arg) + AC_CACHE_VAL(cf_cv_arg_union_waitpid,[ + AC_TRY_COMPILE($cf_wait_headers, + [union wait x; waitpid(0, &x, 0)], + [cf_cv_arg_union_waitpid=yes], + [cf_cv_arg_union_waitpid=no]) + ]) + AC_MSG_RESULT($cf_cv_arg_union_waitpid) + test $cf_cv_arg_union_waitpid = yes && AC_DEFINE(WAITPID_USES_UNION) + +fi +])dnl +dnl --------------------------------------------------------------------------- dnl Check if the compiler supports useful warning options. There's a few that dnl we don't use, simply because they're too noisy: dnl @@ -377,7 +415,7 @@ dnl -Wwrite-strings (too noisy, but should review occasionally) dnl -pedantic dnl AC_DEFUN([CF_GCC_WARNINGS], -[EXTRA_CFLAGS="" +[ if test -n "$GCC" then changequote(,)dnl @@ -389,6 +427,8 @@ EOF AC_CHECKING([for gcc warning options]) cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-W -Wall" + cf_warn_CONST="" + test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" for cf_opt in \ Wbad-function-cast \ Wcast-align \ @@ -399,7 +439,7 @@ EOF Wnested-externs \ Wpointer-arith \ Wshadow \ - Wstrict-prototypes + Wstrict-prototypes $cf_warn_CONST do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" if AC_TRY_EVAL(ac_compile); then @@ -528,8 +568,9 @@ dnl Check for pre-1.9.9g ncurses (among other problems, the most obvious is dnl that color combinations don't work). AC_DEFUN([CF_NCURSES_BROKEN], [ -AC_MSG_CHECKING(for obsolete/broken version of ncurses) +AC_REQUIRE([CF_NCURSES_VERSION]) if test "$cf_cv_ncurses_version" != no ; then +AC_MSG_CHECKING(for obsolete/broken version of ncurses) AC_CACHE_VAL(cf_cv_ncurses_broken,[ AC_TRY_COMPILE([ #include <$cf_cv_ncurses_header>],[ @@ -542,7 +583,7 @@ AC_TRY_COMPILE([ [cf_cv_ncurses_broken=no], [cf_cv_ncurses_broken=yes]) ]) -AC_MSG_RESULT($cf_cv_ncurses_broken=yes) +AC_MSG_RESULT($cf_cv_ncurses_broken) if test "$cf_cv_ncurses_broken" = yes ; then AC_MSG_WARN(hmm... you should get an up-to-date version of ncurses) AC_DEFINE(NCURSES_BROKEN) @@ -589,7 +630,7 @@ make an error ncurses.h do if egrep "NCURSES" $cf_incdir/$cf_header 1>&5 2>&1; then - cf_cv_ncurses_header=$cf_incdir/$cf_header + cf_cv_ncurses_header=$cf_incdir/$cf_header test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6 break fi @@ -658,7 +699,7 @@ if test -n "$cf_ncurses_LIBS" ; then fi done AC_TRY_LINK([#include <$cf_cv_ncurses_header>], - [initscr(); tgoto((char *)0, 0, 0);], + [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) LIBS="$cf_ncurses_SAVE"]) @@ -903,7 +944,7 @@ do CFLAGS="$cf_save_CFLAGS" if test "$cf_cv_sizechange" = yes ; then - echo "size-change succeeded ($cf_opts)" >&AC_FD_MSG + echo "size-change succeeded ($cf_opts)" >&AC_FD_CC test -n "$cf_opts" && AC_DEFINE_UNQUOTED($cf_opts) break fi @@ -975,6 +1016,22 @@ $1=`echo ${$1} | sed -e 's/-O[1-9]\? //' -e 's/-O[1-9]\?$//'` changequote([,])dnl ])dnl dnl --------------------------------------------------------------------------- +AC_DEFUN([CF_SYSTEM_MAIL_FLAGS], +[ +AC_MSG_CHECKING([system mail flags]) +AC_CACHE_VAL(cf_cv_system_mail_flags,[ + case $cf_cv_SYSTEM_MAIL in + */mmdf/*) + [cf_cv_system_mail_flags="-mlruxto,cc\\\\*"] + ;; + *) + [cf_cv_system_mail_flags="-t -oi"] + esac + ]) +AC_MSG_RESULT($cf_cv_system_mail_flags) +AC_DEFINE_UNQUOTED(SYSTEM_MAIL_FLAGS, "$cf_cv_system_mail_flags") +])dnl +dnl --------------------------------------------------------------------------- dnl Check for declaration of sys_errlist in one of stdio.h and errno.h. dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration. dnl Reported by Keith Bostic. @@ -1004,22 +1061,6 @@ if test $cf_cv_dcl_sys_errlist = no ; then fi ])dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([CF_SYSTEM_MAIL_FLAGS], -[ -AC_MSG_CHECKING([system mail flags]) -AC_CACHE_VAL(cf_cv_system_mail_flags,[ - case $cf_cv_SYSTEM_MAIL in - */mmdf/*) - [cf_cv_system_mail_flags="-mlruxto,cc\\\\*"] - ;; - *) - [cf_cv_system_mail_flags="-t -oi"] - esac - ]) -AC_MSG_RESULT($cf_cv_system_mail_flags) -AC_DEFINE_UNQUOTED(SYSTEM_MAIL_FLAGS, "$cf_cv_system_mail_flags") -])dnl -dnl --------------------------------------------------------------------------- dnl Look for termcap libraries, needed by some versions of slang. AC_DEFUN([CF_TERMCAP_LIBS], [ @@ -1081,35 +1122,53 @@ AC_MSG_RESULT($cf_cv_have_ttytype) test $cf_cv_have_ttytype = yes && AC_DEFINE(HAVE_TTYTYPE) ]) dnl --------------------------------------------------------------------------- -dnl Make an uppercase version of a variable -dnl $1=uppercase($2) -AC_DEFUN([CF_UPPER], -[ -changequote(,)dnl -$1=`echo $2 | tr '[a-z]' '[A-Z]'` -changequote([,])dnl -])dnl -dnl --------------------------------------------------------------------------- +dnl Check to see if the BSD-style union wait is declared. Some platforms may +dnl use this, though it is deprecated in favor of the 'int' type in Posix. +dnl Some vendors provide a bogus implementation that declares union wait, but +dnl uses the 'int' type instead; we try to spot these by checking for the +dnl associated macros. +dnl +dnl Ahem. Some implementers cast the status value to an int*, as an attempt to +dnl use the macros for either union wait or int. So we do a check compile to +dnl see if the macros are defined and apply to an int. +dnl +dnl Sets: $cf_cv_type_unionwait +dnl Defines: HAVE_TYPE_UNIONWAIT AC_DEFUN([CF_UNION_WAIT], [ +AC_REQUIRE([CF_WAIT_HEADERS]) AC_MSG_CHECKING([for union wait]) AC_CACHE_VAL(cf_cv_type_unionwait,[ - AC_TRY_COMPILE([ -#include <sys/types.h> -#if HAVE_SYS_WAIT_H -#include <sys/wait.h> + AC_TRY_COMPILE($cf_wait_headers, + [union wait x; + int y = WEXITSTATUS(x); + int z = WTERMSIG(x); + ], + [cf_cv_type_unionwait=no],[ + AC_TRY_COMPILE($cf_wait_headers, + [union wait x; +#ifdef WEXITSTATUS + int y = WEXITSTATUS(x); #endif -#if HAVE_WAITSTATUS_H -#include <waitstatus.h> +#ifdef WTERMSIG + int z = WTERMSIG(x); #endif -], - [union wait x], + ], [cf_cv_type_unionwait=yes], - [cf_cv_type_unionwait=no])]) + [cf_cv_type_unionwait=no])])]) AC_MSG_RESULT($cf_cv_type_unionwait) test $cf_cv_type_unionwait = yes && AC_DEFINE(HAVE_TYPE_UNIONWAIT) ])dnl dnl --------------------------------------------------------------------------- +dnl Make an uppercase version of a variable +dnl $1=uppercase($2) +AC_DEFUN([CF_UPPER], +[ +changequote(,)dnl +$1=`echo $2 | tr '[a-z]' '[A-Z]'` +changequote([,])dnl +])dnl +dnl --------------------------------------------------------------------------- AC_DEFUN([CF_UTMP], [ AC_MSG_CHECKING(if struct utmp is declared) @@ -1130,6 +1189,35 @@ test $cf_cv_have_utmp != no && AC_DEFINE(HAVE_UTMP) test $cf_cv_have_utmp = utmpx && AC_DEFINE(UTMPX_FOR_UTMP) ]) dnl --------------------------------------------------------------------------- +dnl Build up an expression $cf_wait_headers with the header files needed to +dnl compile against the prototypes for 'wait()', 'waitpid()', etc. Assume it's +dnl Posix, which uses <sys/types.h> and <sys/wait.h>, but allow SVr4 variation +dnl with <wait.h>. +AC_DEFUN([CF_WAIT_HEADERS], +[ +AC_HAVE_HEADERS(sys/wait.h) +cf_wait_headers="#include <sys/types.h> +" +if test $ac_cv_header_sys_wait_h = yes; then +cf_wait_headers="$cf_wait_headers +#include <sys/wait.h> +" +else +AC_HAVE_HEADERS(wait.h) +AC_HAVE_HEADERS(waitstatus.h) +if test $ac_cv_header_wait_h = yes; then +cf_wait_headers="$cf_wait_headers +#include <wait.h> +" +fi +if test $ac_cv_header_waitstatus_h = yes; then +cf_wait_headers="$cf_wait_headers +#include <waitstatus.h> +" +fi +fi +])dnl +dnl --------------------------------------------------------------------------- dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just dnl defaulting to yes/no. dnl @@ -1145,7 +1233,7 @@ ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl case ".$withval" in #(vi ./*) #(vi ;; -.\${*) #(vi +.\[$]{*prefix}*) #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) @@ -1153,6 +1241,9 @@ case ".$withval" in #(vi ;; esac ;; #(vi +.NONE/*) + withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@` + ;; *) AC_ERROR(expected a pathname for $1) ;; diff --git a/config.hin b/config.hin index b6431d54..9a17c6ef 100644 --- a/config.hin +++ b/config.hin @@ -2,18 +2,13 @@ #ifndef LYNX_CFG_H #define LYNX_CFG_H 1 -#undef USE_COLOR_STYLE /* FIXME: was 'CS' */ -#undef USEHASH /* FIXME: rename to USE_HASHING */ -#undef UNPAINT_CACHE /* FIXME: for RP's code */ -/* #undef TEST ** FIXME: for RP's code */ -#undef LINKEDSTYLES /* FIXME: for RP's code */ -#undef ALT_CHAR_SET +#undef ALT_CHAR_SET /* CF_ALT_CHAR_SET */ #undef ARCHIVE_ONLY /* CF_ARG_DISABLE(dired-archive) */ #undef CHMOD_PATH /* CF_PATH_PROG(chmod) */ #undef COLOR_CURSES /* defined by CF_COLOR_CURSES */ #undef COMPRESS_PATH /* CF_PATH_PROG(compress) */ #undef COPY_PATH /* CF_PATH_PROG(cp) */ -#undef CURS_PERFORMANCE +#undef CURS_PERFORMANCE /* CF_CURS_PERFORMANCE */ #undef DEBUG /* configure --enable-debug */ #undef DECL_SYS_ERRLIST #undef DIRED_SUPPORT /* AC_ARG_WITH(dired) */ @@ -47,6 +42,7 @@ #undef IGNORE_CTRL_C /* FIXME: make tests? */ #undef INSTALL_ARGS /* CF_PATH_PROG(install) */ #undef INSTALL_PATH /* CF_PATH_PROG(install) */ +#undef LINKEDSTYLES /* see USE_COLOR_STYLE */ #undef LINUX /* FIXME: make tests? */ #undef LOCALE /* for locale support */ #undef LONG_LIST /* CF_ARG_DISABLE(long-list) */ @@ -78,10 +74,14 @@ #undef UNCOMPRESS_PATH /* CF_PATH_PROG(gunzip) */ #undef UNIX #undef UNZIP_PATH /* CF_PATH_PROG(unzip) */ +#undef USE_COLOR_STYLE /* CF_ARG_ENABLE(color-style) */ +#undef USE_HASH /* see USE_COLOR_STYLE */ #undef USE_SLANG /* AC_ARG_WITH(screen=slang) */ #undef USE_ZLIB /* AC_ARG_WITH(zlib) */ #undef UTMPX_FOR_UTMP /* use <utmpx.h> since <utmp.h> not found */ #undef UUDECODE_PATH /* CF_PATH_PROG(uudecode) */ +#undef WAITPID_USES_UNION /* CF_FUNC_WAIT */ +#undef WAIT_USES_UNION /* CF_FUNC_WAIT */ #undef ZCAT_PATH /* CF_PATH_PROG(zcat) */ #undef ZIP_PATH /* CF_PATH_PROG(zip) */ #undef const /* defined by AC_C_CONST */ diff --git a/configure b/configure index 61e24720..a4f866fb 100755 --- a/configure +++ b/configure @@ -30,7 +30,7 @@ ac_help="$ac_help --with-screen=XXX select screen type (XXX is curses (default), ncurses or slang)" ac_help="$ac_help - --with-cfg-file=XXXX specify config-pathname (default: LIBDIR/lynx.cfg)" + --with-cfg-file=XXXX specify config-file path (default: LIBDIR/lynx.cfg)" ac_help="$ac_help Miscellaneous Options:" ac_help="$ac_help @@ -38,6 +38,8 @@ ac_help="$ac_help ac_help="$ac_help --enable-color-style use optional/experimental color style (default: off)" ac_help="$ac_help + --with-lss-file=XXXX specify style-sheet path (default: LIBDIR/lynx.lss)" +ac_help="$ac_help --with-zlib use zlib for decompression of some gzip files" ac_help="$ac_help Directory Editor Options:" @@ -600,7 +602,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:604: checking host system type" >&5 +echo "configure:606: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -625,7 +627,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:629: checking for $ac_word" >&5 +echo "configure:631: 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 @@ -654,7 +656,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:658: checking for $ac_word" >&5 +echo "configure:660: 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 @@ -702,7 +704,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:706: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:708: 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. @@ -712,11 +714,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 716 "configure" +#line 718 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:722: \"$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 @@ -736,12 +738,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:740: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:742: 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:745: checking whether we are using GNU C" >&5 +echo "configure:747: 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 @@ -750,7 +752,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:754: \"$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:756: \"$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 @@ -765,7 +767,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:769: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:771: 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 @@ -793,7 +795,7 @@ else fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:797: checking how to run the C preprocessor" >&5 +echo "configure:799: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -808,13 +810,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 812 "configure" +#line 814 "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:818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:820: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -825,13 +827,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 829 "configure" +#line 831 "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:835: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:837: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -856,7 +858,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:860: checking for $ac_word" >&5 +echo "configure:862: 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 @@ -883,7 +885,7 @@ else fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:887: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:889: 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 @@ -911,7 +913,7 @@ fi echo $ac_n "checking for style of include in makefiles""... $ac_c" 1>&6 -echo "configure:915: checking for style of include in makefiles" >&5 +echo "configure:917: checking for style of include in makefiles" >&5 make_include_left="" make_include_right="" @@ -972,7 +974,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:976: checking for a BSD compatible install" >&5 +echo "configure:978: 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 @@ -1026,7 +1028,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:1030: checking for $ac_word" >&5 +echo "configure:1032: 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 @@ -1060,7 +1062,7 @@ done echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6 -echo "configure:1064: checking if you want to see long compiling messages" >&5 +echo "configure:1066: 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 enableval="$enable_echo" @@ -1099,7 +1101,7 @@ echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if you want to check memory-leaks""... $ac_c" 1>&6 -echo "configure:1103: checking if you want to check memory-leaks" >&5 +echo "configure:1105: 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 enableval="$enable_find_leaks" @@ -1122,7 +1124,7 @@ EOF echo $ac_n "checking if you want to enable debug-code""... $ac_c" 1>&6 -echo "configure:1126: checking if you want to enable debug-code" >&5 +echo "configure:1128: 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 enableval="$enable_debug" @@ -1166,7 +1168,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:1170: checking if you want to turn on gcc warnings" >&5 +echo "configure:1172: 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 enableval="$enable_warnings" @@ -1185,17 +1187,19 @@ fi echo "$ac_t""$with_warnings" 1>&6 if test "$with_warnings" = "yes" then - EXTRA_CFLAGS="" + if test -n "$GCC" then cat > conftest.$ac_ext <<EOF -#line 1193 "configure" +#line 1195 "configure" int main(int argc, char *argv[]) { return argv[argc-1] == 0; } EOF echo "checking for gcc warning options" 1>&6 -echo "configure:1197: checking for gcc warning options" >&5 +echo "configure:1199: checking for gcc warning options" >&5 cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-W -Wall" + cf_warn_CONST="" + test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" for cf_opt in \ Wbad-function-cast \ Wcast-align \ @@ -1206,10 +1210,10 @@ echo "configure:1197: checking for gcc warning options" >&5 Wnested-externs \ Wpointer-arith \ Wshadow \ - Wstrict-prototypes + Wstrict-prototypes $cf_warn_CONST do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo configure:1213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:1217: \"$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" @@ -1227,7 +1231,7 @@ fi echo $ac_n "checking if you want full utility pathnames""... $ac_c" 1>&6 -echo "configure:1231: checking if you want full utility pathnames" >&5 +echo "configure:1235: 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 enableval="$enable_full_paths" @@ -1247,7 +1251,7 @@ echo "$ac_t""$with_full_paths" 1>&6 echo $ac_n "checking for system mailer""... $ac_c" 1>&6 -echo "configure:1251: checking for system mailer" >&5 +echo "configure:1255: 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 @@ -1274,7 +1278,7 @@ EOF echo $ac_n "checking system mail flags""... $ac_c" 1>&6 -echo "configure:1278: checking system mail flags" >&5 +echo "configure:1282: 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 @@ -1302,7 +1306,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:1306: checking for $ac_word" >&5 +echo "configure:1310: 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 @@ -1333,7 +1337,7 @@ fi else echo $ac_n "checking for chmod""... $ac_c" 1>&6 -echo "configure:1337: checking for chmod" >&5 +echo "configure:1341: checking for chmod" >&5 echo "$ac_t""$CHMOD" 1>&6 fi @@ -1367,7 +1371,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:1371: checking for $ac_word" >&5 +echo "configure:1375: 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 @@ -1398,7 +1402,7 @@ fi else echo $ac_n "checking for compress""... $ac_c" 1>&6 -echo "configure:1402: checking for compress" >&5 +echo "configure:1406: checking for compress" >&5 echo "$ac_t""$COMPRESS" 1>&6 fi @@ -1432,7 +1436,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:1436: checking for $ac_word" >&5 +echo "configure:1440: 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 @@ -1463,7 +1467,7 @@ fi else echo $ac_n "checking for cp""... $ac_c" 1>&6 -echo "configure:1467: checking for cp" >&5 +echo "configure:1471: checking for cp" >&5 echo "$ac_t""$COPY" 1>&6 fi @@ -1497,7 +1501,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:1501: checking for $ac_word" >&5 +echo "configure:1505: 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 @@ -1528,7 +1532,7 @@ fi else echo $ac_n "checking for gzip""... $ac_c" 1>&6 -echo "configure:1532: checking for gzip" >&5 +echo "configure:1536: checking for gzip" >&5 echo "$ac_t""$GZIP" 1>&6 fi @@ -1562,7 +1566,7 @@ if test "$with_full_paths" = yes ; then # Extract the first word of "install", so it can be a program name with args. set dummy install; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1566: checking for $ac_word" >&5 +echo "configure:1570: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_INSTALL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1593,7 +1597,7 @@ fi else echo $ac_n "checking for install""... $ac_c" 1>&6 -echo "configure:1597: checking for install" >&5 +echo "configure:1601: checking for install" >&5 echo "$ac_t""$INSTALL" 1>&6 fi @@ -1627,7 +1631,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:1631: checking for $ac_word" >&5 +echo "configure:1635: 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 @@ -1658,7 +1662,7 @@ fi else echo $ac_n "checking for mkdir""... $ac_c" 1>&6 -echo "configure:1662: checking for mkdir" >&5 +echo "configure:1666: checking for mkdir" >&5 echo "$ac_t""$MKDIR" 1>&6 fi @@ -1692,7 +1696,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:1696: checking for $ac_word" >&5 +echo "configure:1700: 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 @@ -1723,7 +1727,7 @@ fi else echo $ac_n "checking for mv""... $ac_c" 1>&6 -echo "configure:1727: checking for mv" >&5 +echo "configure:1731: checking for mv" >&5 echo "$ac_t""$MV" 1>&6 fi @@ -1757,7 +1761,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:1761: checking for $ac_word" >&5 +echo "configure:1765: 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 @@ -1788,7 +1792,7 @@ fi else echo $ac_n "checking for rm""... $ac_c" 1>&6 -echo "configure:1792: checking for rm" >&5 +echo "configure:1796: checking for rm" >&5 echo "$ac_t""$RM" 1>&6 fi @@ -1822,7 +1826,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:1826: checking for $ac_word" >&5 +echo "configure:1830: 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 @@ -1853,7 +1857,7 @@ fi else echo $ac_n "checking for tar""... $ac_c" 1>&6 -echo "configure:1857: checking for tar" >&5 +echo "configure:1861: checking for tar" >&5 echo "$ac_t""$TAR" 1>&6 fi @@ -1887,7 +1891,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:1891: checking for $ac_word" >&5 +echo "configure:1895: 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 @@ -1918,7 +1922,7 @@ fi else echo $ac_n "checking for touch""... $ac_c" 1>&6 -echo "configure:1922: checking for touch" >&5 +echo "configure:1926: checking for touch" >&5 echo "$ac_t""$TOUCH" 1>&6 fi @@ -1952,7 +1956,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:1956: checking for $ac_word" >&5 +echo "configure:1960: 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 @@ -1983,7 +1987,7 @@ fi else echo $ac_n "checking for gunzip""... $ac_c" 1>&6 -echo "configure:1987: checking for gunzip" >&5 +echo "configure:1991: checking for gunzip" >&5 echo "$ac_t""$UNCOMPRESS" 1>&6 fi @@ -2017,7 +2021,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:2021: checking for $ac_word" >&5 +echo "configure:2025: 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 @@ -2048,7 +2052,7 @@ fi else echo $ac_n "checking for unzip""... $ac_c" 1>&6 -echo "configure:2052: checking for unzip" >&5 +echo "configure:2056: checking for unzip" >&5 echo "$ac_t""$UNZIP" 1>&6 fi @@ -2082,7 +2086,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:2086: checking for $ac_word" >&5 +echo "configure:2090: 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 @@ -2113,7 +2117,7 @@ fi else echo $ac_n "checking for uudecode""... $ac_c" 1>&6 -echo "configure:2117: checking for uudecode" >&5 +echo "configure:2121: checking for uudecode" >&5 echo "$ac_t""$UUDECODE" 1>&6 fi @@ -2147,7 +2151,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:2151: checking for $ac_word" >&5 +echo "configure:2155: 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 @@ -2178,7 +2182,7 @@ fi else echo $ac_n "checking for zcat""... $ac_c" 1>&6 -echo "configure:2182: checking for zcat" >&5 +echo "configure:2186: checking for zcat" >&5 echo "$ac_t""$ZCAT" 1>&6 fi @@ -2212,7 +2216,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:2216: checking for $ac_word" >&5 +echo "configure:2220: 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 @@ -2243,7 +2247,7 @@ fi else echo $ac_n "checking for zip""... $ac_c" 1>&6 -echo "configure:2247: checking for zip" >&5 +echo "configure:2251: checking for zip" >&5 echo "$ac_t""$ZIP" 1>&6 fi @@ -2281,7 +2285,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:2285: checking for ${CC-cc} option to accept ANSI C" >&5 +echo "configure:2289: 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 @@ -2299,7 +2303,7 @@ for cf_arg in "-DCC_HAS_PROTOS" "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" -Xc do CFLAGS="$cf_save_CFLAGS $cf_arg" cat > conftest.$ac_ext <<EOF -#line 2303 "configure" +#line 2307 "configure" #include "confdefs.h" #ifndef CC_HAS_PROTOS @@ -2315,7 +2319,7 @@ int main() { struct s2 {int (*f) (double a);}; ; return 0; } EOF -if { (eval echo configure:2319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ansi_cc="$cf_arg"; break else @@ -2343,12 +2347,12 @@ fi fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2347: checking for working const" >&5 +echo "configure:2351: 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 2352 "configure" +#line 2356 "configure" #include "confdefs.h" int main() { @@ -2397,7 +2401,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:2401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2437,7 +2441,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:2441: checking for strcmp in -lc_s" >&5 +echo "configure:2445: 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 @@ -2445,7 +2449,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lc_s $LIBS" cat > conftest.$ac_ext <<EOF -#line 2449 "configure" +#line 2453 "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 @@ -2456,7 +2460,7 @@ int main() { strcmp() ; return 0; } EOF -if { (eval echo configure:2460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2464: \"$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 @@ -2534,7 +2538,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:2538: checking for $ac_word" >&5 +echo "configure:2542: 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 @@ -2578,17 +2582,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:2582: checking for $ac_hdr" >&5 +echo "configure:2586: 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 2587 "configure" +#line 2591 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2592: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2632,17 +2636,17 @@ ultrix*) do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2636: checking for $ac_hdr" >&5 +echo "configure:2640: 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 2641 "configure" +#line 2645 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2646: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2675,7 +2679,7 @@ esac cf_test_netlibs=no echo $ac_n "checking for network libraries""... $ac_c" 1>&6 -echo "configure:2679: checking for network libraries" >&5 +echo "configure:2683: checking for network libraries" >&5 if eval "test \"`echo '$''{'cf_cv_netlibs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2686,12 +2690,12 @@ cf_test_netlibs=yes for ac_func in gethostname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2690: checking for $ac_func" >&5 +echo "configure:2694: 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 2695 "configure" +#line 2699 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2714,7 +2718,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2737,7 +2741,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6 -echo "configure:2741: checking for gethostname in -lnsl" >&5 +echo "configure:2745: 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 @@ -2745,7 +2749,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 2749 "configure" +#line 2753 "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 @@ -2756,7 +2760,7 @@ int main() { gethostname() ; return 0; } EOF -if { (eval echo configure:2760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2764: \"$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 @@ -2789,7 +2793,7 @@ else echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6 -echo "configure:2793: checking for gethostname in -lsocket" >&5 +echo "configure:2797: 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 @@ -2797,7 +2801,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 2801 "configure" +#line 2805 "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 @@ -2808,7 +2812,7 @@ int main() { gethostname() ; return 0; } EOF -if { (eval echo configure:2812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2816: \"$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 @@ -2852,21 +2856,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:2856: checking for -linet" >&5 +echo "configure:2860: 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 2863 "configure" +#line 2867 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:2870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_lib_inet=yes else @@ -2889,12 +2893,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:2893: checking for $ac_func" >&5 +echo "configure:2897: 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 2898 "configure" +#line 2902 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2917,7 +2921,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2940,7 +2944,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:2944: checking for socket in -lsocket" >&5 +echo "configure:2948: 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 @@ -2948,7 +2952,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 2952 "configure" +#line 2956 "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 @@ -2959,7 +2963,7 @@ int main() { socket() ; return 0; } EOF -if { (eval echo configure:2963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2967: \"$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 @@ -2992,7 +2996,7 @@ else echo $ac_n "checking for socket in -lbsd""... $ac_c" 1>&6 -echo "configure:2996: checking for socket in -lbsd" >&5 +echo "configure:3000: 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 @@ -3000,7 +3004,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbsd $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3004 "configure" +#line 3008 "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 @@ -3011,7 +3015,7 @@ int main() { socket() ; return 0; } EOF -if { (eval echo configure:3015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3019: \"$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 @@ -3056,12 +3060,12 @@ fi for ac_func in gethostbyname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3060: checking for $ac_func" >&5 +echo "configure:3064: 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 3065 "configure" +#line 3069 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3084,7 +3088,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3107,7 +3111,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:3111: checking for gethostbyname in -lnsl" >&5 +echo "configure:3115: 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 @@ -3115,7 +3119,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3119 "configure" +#line 3123 "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 @@ -3126,7 +3130,7 @@ int main() { gethostbyname() ; return 0; } EOF -if { (eval echo configure:3130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3134: \"$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 @@ -3167,12 +3171,12 @@ done for ac_func in strcasecmp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3171: checking for $ac_func" >&5 +echo "configure:3175: 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 3176 "configure" +#line 3180 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3195,7 +3199,7 @@ $ac_func(); ; 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:3203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3218,7 +3222,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for strcasecmp in -lresolv""... $ac_c" 1>&6 -echo "configure:3222: checking for strcasecmp in -lresolv" >&5 +echo "configure:3226: 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 @@ -3226,7 +3230,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <<EOF -#line 3230 "configure" +#line 3234 "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 @@ -3237,7 +3241,7 @@ int main() { strcasecmp() ; return 0; } EOF -if { (eval echo configure:3241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3245: \"$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 @@ -3282,7 +3286,7 @@ test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&6 echo $ac_n "checking for screen type""... $ac_c" 1>&6 -echo "configure:3286: checking for screen type" >&5 +echo "configure:3290: checking for screen type" >&5 if eval "test \"`echo '$''{'cf_cv_screen'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3313,12 +3317,12 @@ curses) fi echo $ac_n "checking for initscr""... $ac_c" 1>&6 -echo "configure:3317: checking for initscr" >&5 +echo "configure:3321: 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 3322 "configure" +#line 3326 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char initscr(); below. */ @@ -3341,7 +3345,7 @@ initscr(); ; return 0; } EOF -if { (eval echo configure:3345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_initscr=yes" else @@ -3362,7 +3366,7 @@ else case $host_os in #(vi freebsd*) #(vi echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6 -echo "configure:3366: checking for tgoto in -lmytinfo" >&5 +echo "configure:3370: 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 @@ -3370,7 +3374,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <<EOF -#line 3374 "configure" +#line 3378 "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 @@ -3381,7 +3385,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:3385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3389: \"$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 @@ -3404,7 +3408,7 @@ fi ;; *hp-hpux10.*) echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6 -echo "configure:3408: checking for initscr in -lHcurses" >&5 +echo "configure:3412: 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 @@ -3412,7 +3416,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lHcurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 3416 "configure" +#line 3420 "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 @@ -3423,7 +3427,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3431: \"$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 @@ -3447,7 +3451,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for initscr in -lcur_color""... $ac_c" 1>&6 -echo "configure:3451: checking for initscr in -lcur_color" >&5 +echo "configure:3455: checking for initscr in -lcur_color" >&5 ac_lib_var=`echo cur_color'_'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 @@ -3455,7 +3459,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcur_color $LIBS" cat > conftest.$ac_ext <<EOF -#line 3459 "configure" +#line 3463 "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 @@ -3466,7 +3470,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3474: \"$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 @@ -3505,12 +3509,12 @@ fi cf_save_LIBS="$LIBS" echo $ac_n "checking for tgoto""... $ac_c" 1>&6 -echo "configure:3509: checking for tgoto" >&5 +echo "configure:3513: 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 3514 "configure" +#line 3518 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char tgoto(); below. */ @@ -3533,7 +3537,7 @@ tgoto(); ; return 0; } EOF -if { (eval echo configure:3537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_tgoto=yes" else @@ -3549,7 +3553,7 @@ if eval "test \"`echo '$ac_cv_func_'tgoto`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for initscr in -lcurses""... $ac_c" 1>&6 -echo "configure:3553: checking for initscr in -lcurses" >&5 +echo "configure:3557: 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 @@ -3557,7 +3561,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 3561 "configure" +#line 3565 "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 @@ -3568,7 +3572,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3576: \"$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 @@ -3602,7 +3606,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6 -echo "configure:3606: checking for tgoto in -ltermcap" >&5 +echo "configure:3610: 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 @@ -3610,7 +3614,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <<EOF -#line 3614 "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 @@ -3621,7 +3625,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:3625: \"$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 @@ -3639,7 +3643,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then LIBS="-ltermcap $cf_save_LIBS" echo $ac_n "checking for initscr in -lcurses""... $ac_c" 1>&6 -echo "configure:3643: checking for initscr in -lcurses" >&5 +echo "configure:3647: 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 @@ -3647,7 +3651,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 3651 "configure" +#line 3655 "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 @@ -3658,7 +3662,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3666: \"$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 @@ -3685,7 +3689,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for initscr in -lcursesX""... $ac_c" 1>&6 -echo "configure:3689: checking for initscr in -lcursesX" >&5 +echo "configure:3693: checking for initscr in -lcursesX" >&5 ac_lib_var=`echo cursesX'_'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 @@ -3693,7 +3697,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcursesX $LIBS" cat > conftest.$ac_ext <<EOF -#line 3697 "configure" +#line 3701 "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 @@ -3704,7 +3708,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3712: \"$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 @@ -3731,7 +3735,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for initscr in -ljcurses""... $ac_c" 1>&6 -echo "configure:3735: checking for initscr in -ljcurses" >&5 +echo "configure:3739: checking for initscr in -ljcurses" >&5 ac_lib_var=`echo jcurses'_'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 @@ -3739,7 +3743,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ljcurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 3743 "configure" +#line 3747 "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 @@ -3750,7 +3754,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3758: \"$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 @@ -3788,7 +3792,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for initscr in -lcurses""... $ac_c" 1>&6 -echo "configure:3792: checking for initscr in -lcurses" >&5 +echo "configure:3796: 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 @@ -3796,7 +3800,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 3800 "configure" +#line 3804 "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 @@ -3807,7 +3811,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:3811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3815: \"$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 @@ -3846,14 +3850,14 @@ fi echo $ac_n "checking for curses performance tradeoff""... $ac_c" 1>&6 -echo "configure:3850: checking for curses performance tradeoff" >&5 +echo "configure:3854: 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 3857 "configure" +#line 3861 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> @@ -3867,11 +3871,11 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3875: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 3875 "configure" +#line 3879 "configure" #include "confdefs.h" #define CURS_PERFORMANCE @@ -3886,7 +3890,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_curs_performance=yes else @@ -3911,13 +3915,13 @@ EOF ncurses) echo $ac_n "checking for ncurses header file""... $ac_c" 1>&6 -echo "configure:3915: checking for ncurses header file" >&5 +echo "configure:3919: 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 3921 "configure" +#line 3925 "configure" #include "confdefs.h" #include <curses.h> int main() { @@ -3934,7 +3938,7 @@ make an error ; return 0; } EOF -if { (eval echo configure:3938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_header=predefined else @@ -3963,7 +3967,7 @@ test "$prefix" != /usr && cf_search="$cf_search /usr/include /usr/incl ncurses.h do if egrep "NCURSES" $cf_incdir/$cf_header 1>&5 2>&1; then - cf_cv_ncurses_header=$cf_incdir/$cf_header + cf_cv_ncurses_header=$cf_incdir/$cf_header test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6 break fi @@ -4027,7 +4031,7 @@ esac cf_ncurses_LIBS="" echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:4031: checking for Gpm_Open in -lgpm" >&5 +echo "configure:4035: 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 @@ -4035,7 +4039,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <<EOF -#line 4039 "configure" +#line 4043 "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 @@ -4046,7 +4050,7 @@ int main() { Gpm_Open() ; return 0; } EOF -if { (eval echo configure:4050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4054: \"$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 @@ -4062,7 +4066,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:4066: checking for initscr in -lgpm" >&5 +echo "configure:4070: 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 @@ -4070,7 +4074,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <<EOF -#line 4074 "configure" +#line 4078 "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 @@ -4081,7 +4085,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4089: \"$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 @@ -4119,7 +4123,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:4123: checking for tgoto in -lmytinfo" >&5 +echo "configure:4127: 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 @@ -4127,7 +4131,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <<EOF -#line 4131 "configure" +#line 4135 "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 @@ -4138,7 +4142,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4146: \"$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 @@ -4166,12 +4170,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:4170: checking for initscr" >&5 +echo "configure:4174: 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 4175 "configure" +#line 4179 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char initscr(); below. */ @@ -4194,7 +4198,7 @@ initscr(); ; return 0; } EOF -if { (eval echo configure:4198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_initscr=yes" else @@ -4214,17 +4218,17 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6 -echo "configure:4218: checking for initscr in -lncurses" >&5 +echo "configure:4222: checking for initscr in -lncurses" >&5 LIBS="-lncurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 4221 "configure" +#line 4225 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4232: \"$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 @@ -4251,17 +4255,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:4255: checking for -lncurses in $cf_libdir" >&5 +echo "configure:4259: checking for -lncurses in $cf_libdir" >&5 LIBS="-L$cf_libdir -lncurses $cf_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 4258 "configure" +#line 4262 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4269: \"$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 @@ -4288,7 +4292,7 @@ fi 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:4292: checking if we can link ncurses without $cf_ncurses_LIBS" >&5 +echo "configure:4296: 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'$//'` @@ -4297,14 +4301,14 @@ echo "configure:4292: checking if we can link ncurses without $cf_ncurses_LIBS" fi done cat > conftest.$ac_ext <<EOF -#line 4301 "configure" +#line 4305 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> int main() { -initscr(); tgoto((char *)0, 0, 0); +initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); ; return 0; } EOF -if { (eval echo configure:4308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -4328,7 +4332,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:4332: checking for tigetstr in -ltermlib" >&5 +echo "configure:4336: 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 @@ -4336,7 +4340,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermlib $LIBS" cat > conftest.$ac_ext <<EOF -#line 4340 "configure" +#line 4344 "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 @@ -4347,7 +4351,7 @@ int main() { tigetstr() ; return 0; } EOF -if { (eval echo configure:4351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4355: \"$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 @@ -4370,7 +4374,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:4374: checking for tgoto in -ltermlib" >&5 +echo "configure:4378: 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 @@ -4378,7 +4382,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermlib $LIBS" cat > conftest.$ac_ext <<EOF -#line 4382 "configure" +#line 4386 "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 @@ -4389,7 +4393,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4397: \"$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 @@ -4413,7 +4417,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:4417: checking for initscr in -lcurses" >&5 +echo "configure:4421: 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 @@ -4421,7 +4425,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 4425 "configure" +#line 4429 "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 @@ -4432,7 +4436,7 @@ int main() { initscr() ; return 0; } EOF -if { (eval echo configure:4436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4440: \"$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 @@ -4453,7 +4457,7 @@ else fi echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6 -echo "configure:4457: checking for tgoto in -ltermcap" >&5 +echo "configure:4461: 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 @@ -4461,7 +4465,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <<EOF -#line 4465 "configure" +#line 4469 "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 @@ -4472,7 +4476,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4480: \"$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 @@ -4495,7 +4499,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:4499: checking for tgoto in -ltermcap" >&5 +echo "configure:4503: 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 @@ -4503,7 +4507,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <<EOF -#line 4507 "configure" +#line 4511 "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 @@ -4514,7 +4518,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4522: \"$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 @@ -4537,7 +4541,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:4541: checking for tgoto in -lncurses" >&5 +echo "configure:4545: 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 @@ -4545,7 +4549,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lncurses $LIBS" cat > conftest.$ac_ext <<EOF -#line 4549 "configure" +#line 4553 "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 @@ -4556,7 +4560,7 @@ int main() { tgoto() ; return 0; } EOF -if { (eval echo configure:4560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4564: \"$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 @@ -4586,20 +4590,20 @@ fi echo $ac_n "checking for slang header file""... $ac_c" 1>&6 -echo "configure:4590: checking for slang header file" >&5 +echo "configure:4594: 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 4596 "configure" +#line 4600 "configure" #include "confdefs.h" #include <slang.h> int main() { printf("%s\n", SLANG_VERSION) ; return 0; } EOF -if { (eval echo configure:4603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4607: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_slang_header=predefined else @@ -4676,12 +4680,12 @@ esac echo $ac_n "checking for acos""... $ac_c" 1>&6 -echo "configure:4680: checking for acos" >&5 +echo "configure:4684: 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 4685 "configure" +#line 4689 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char acos(); below. */ @@ -4704,7 +4708,7 @@ acos(); ; return 0; } EOF -if { (eval echo configure:4708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_acos=yes" else @@ -4723,7 +4727,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for acos in -lm""... $ac_c" 1>&6 -echo "configure:4727: checking for acos in -lm" >&5 +echo "configure:4731: 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 @@ -4731,7 +4735,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS $LIBS" cat > conftest.$ac_ext <<EOF -#line 4735 "configure" +#line 4739 "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 @@ -4742,7 +4746,7 @@ int main() { acos() ; return 0; } EOF -if { (eval echo configure:4746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4750: \"$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 @@ -4782,12 +4786,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:4786: checking for SLtt_get_screen_size" >&5 +echo "configure:4790: 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 4791 "configure" +#line 4795 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char SLtt_get_screen_size(); below. */ @@ -4810,7 +4814,7 @@ SLtt_get_screen_size(); ; return 0; } EOF -if { (eval echo configure:4814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4818: \"$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 @@ -4830,17 +4834,17 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for SLtt_get_screen_size in -lslang""... $ac_c" 1>&6 -echo "configure:4834: checking for SLtt_get_screen_size in -lslang" >&5 +echo "configure:4838: checking for SLtt_get_screen_size in -lslang" >&5 LIBS="-lslang $LIBS" cat > conftest.$ac_ext <<EOF -#line 4837 "configure" +#line 4841 "configure" #include "confdefs.h" #include <slang.h> int main() { SLtt_get_screen_size() ; return 0; } EOF -if { (eval echo configure:4844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4848: \"$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 @@ -4867,17 +4871,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:4871: checking for -lslang in $cf_libdir" >&5 +echo "configure:4875: checking for -lslang in $cf_libdir" >&5 LIBS="-L$cf_libdir -lslang $cf_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 4874 "configure" +#line 4878 "configure" #include "confdefs.h" #include <slang.h> int main() { SLtt_get_screen_size() ; return 0; } EOF -if { (eval echo configure:4881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4885: \"$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 @@ -4905,6 +4909,8 @@ fi ;; esac +echo $ac_n "checking for location of config-file""... $ac_c" 1>&6 +echo "configure:4914: checking for location of config-file" >&5 # Check whether --with-cfg-file or --without-cfg-file was given. if test "${with_cfg_file+set}" = set; then withval="$with_cfg_file" @@ -4915,7 +4921,7 @@ fi case ".$withval" in #(vi ./*) #(vi ;; -.\${*) #(vi +.\${*prefix}*) #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) @@ -4923,6 +4929,9 @@ case ".$withval" in #(vi ;; esac ;; #(vi +.NONE/*) + withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@` + ;; *) { echo "configure: error: expected a pathname for cfg-file" 1>&2; exit 1; } ;; @@ -4933,15 +4942,16 @@ cat >> confdefs.h <<EOF #define LYNX_CFG_FILE "$LYNX_CFG_FILE" EOF +echo "$ac_t""$LYNX_CFG_FILE" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:4940: checking for ANSI C header files" >&5 +echo "configure:4950: 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 4945 "configure" +#line 4955 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -4949,7 +4959,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -4966,7 +4976,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 4970 "configure" +#line 4980 "configure" #include "confdefs.h" #include <string.h> EOF @@ -4984,7 +4994,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 4988 "configure" +#line 4998 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -5005,7 +5015,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 5009 "configure" +#line 5019 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -5016,7 +5026,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:5020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else @@ -5040,12 +5050,12 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:5044: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:5054: 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 5049 "configure" +#line 5059 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/time.h> @@ -5054,7 +5064,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:5058: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5068: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -5079,12 +5089,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:5083: checking for $ac_hdr that defines DIR" >&5 +echo "configure:5093: 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 5088 "configure" +#line 5098 "configure" #include "confdefs.h" #include <sys/types.h> #include <$ac_hdr> @@ -5092,7 +5102,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:5096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -5117,7 +5127,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:5121: checking for opendir in -ldir" >&5 +echo "configure:5131: 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 @@ -5125,7 +5135,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <<EOF -#line 5129 "configure" +#line 5139 "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 @@ -5136,7 +5146,7 @@ int main() { opendir() ; return 0; } EOF -if { (eval echo configure:5140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5150: \"$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 @@ -5158,7 +5168,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:5162: checking for opendir in -lx" >&5 +echo "configure:5172: 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 @@ -5166,7 +5176,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <<EOF -#line 5170 "configure" +#line 5180 "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 @@ -5177,7 +5187,7 @@ int main() { opendir() ; return 0; } EOF -if { (eval echo configure:5181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5191: \"$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 @@ -5208,26 +5218,24 @@ for ac_hdr in \ sys/ioctl.h \ sys/param.h \ sys/time.h \ - sys/wait.h \ termio.h \ termios.h \ unistd.h \ - waitstatus.h \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5221: checking for $ac_hdr" >&5 +echo "configure:5229: 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 5226 "configure" +#line 5234 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5239: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5255,13 +5263,13 @@ done echo $ac_n "checking termio.h and termios.h""... $ac_c" 1>&6 -echo "configure:5259: checking termio.h and termios.h" >&5 +echo "configure:5267: 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 5265 "configure" +#line 5273 "configure" #include "confdefs.h" #if HAVE_TERMIO_H @@ -5274,7 +5282,7 @@ int main() { putchar (0x0a) ; return 0; } EOF -if { (eval echo configure:5278: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5286: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_termio_and_termios=yes else @@ -5293,29 +5301,188 @@ EOF +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:5309: 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 5314 "configure" +#include "confdefs.h" +#include <$ac_hdr> +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:5319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <<EOF +#define $ac_tr_hdr 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi +done + +cf_wait_headers="#include <sys/types.h> +" +if test $ac_cv_header_sys_wait_h = yes; then +cf_wait_headers="$cf_wait_headers +#include <sys/wait.h> +" +else +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:5356: 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 5361 "configure" +#include "confdefs.h" +#include <$ac_hdr> +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:5366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <<EOF +#define $ac_tr_hdr 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi +done + +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:5396: 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 5401 "configure" +#include "confdefs.h" +#include <$ac_hdr> +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:5406: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <<EOF +#define $ac_tr_hdr 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi +done + +if test $ac_cv_header_wait_h = yes; then +cf_wait_headers="$cf_wait_headers +#include <wait.h> +" +fi +if test $ac_cv_header_waitstatus_h = yes; then +cf_wait_headers="$cf_wait_headers +#include <waitstatus.h> +" +fi +fi + + + echo $ac_n "checking for union wait""... $ac_c" 1>&6 -echo "configure:5298: checking for union wait" >&5 +echo "configure:5447: 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 5304 "configure" +#line 5453 "configure" #include "confdefs.h" - -#include <sys/types.h> -#if HAVE_SYS_WAIT_H -#include <sys/wait.h> +$cf_wait_headers +int main() { +union wait x; + int y = WEXITSTATUS(x); + int z = WTERMSIG(x); + +; return 0; } +EOF +if { (eval echo configure:5463: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cf_cv_type_unionwait=no +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + + cat > conftest.$ac_ext <<EOF +#line 5472 "configure" +#include "confdefs.h" +$cf_wait_headers +int main() { +union wait x; +#ifdef WEXITSTATUS + int y = WEXITSTATUS(x); #endif -#if HAVE_WAITSTATUS_H -#include <waitstatus.h> +#ifdef WTERMSIG + int z = WTERMSIG(x); #endif - -int main() { -union wait x + ; return 0; } EOF -if { (eval echo configure:5319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_type_unionwait=yes else @@ -5326,6 +5493,8 @@ else fi rm -f conftest* fi +rm -f conftest* +fi echo "$ac_t""$cf_cv_type_unionwait" 1>&6 test $cf_cv_type_unionwait = yes && cat >> confdefs.h <<\EOF @@ -5335,13 +5504,85 @@ 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:5511: 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 5517 "configure" +#include "confdefs.h" +$cf_wait_headers +int main() { +union wait x; wait(&x) +; return 0; } +EOF +if { (eval echo configure:5524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cf_cv_arg_union_wait=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cf_cv_arg_union_wait=no +fi +rm -f conftest* + +fi + + echo "$ac_t""$cf_cv_arg_union_wait" 1>&6 + test $cf_cv_arg_union_wait = yes && cat >> confdefs.h <<\EOF +#define WAIT_USES_UNION 1 +EOF + + + echo $ac_n "checking if union wait can be used as waitpid-arg""... $ac_c" 1>&6 +echo "configure:5544: 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 5550 "configure" +#include "confdefs.h" +$cf_wait_headers +int main() { +union wait x; waitpid(0, &x, 0) +; return 0; } +EOF +if { (eval echo configure:5557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cf_cv_arg_union_waitpid=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cf_cv_arg_union_waitpid=no +fi +rm -f conftest* + +fi + + echo "$ac_t""$cf_cv_arg_union_waitpid" 1>&6 + test $cf_cv_arg_union_waitpid = yes && cat >> confdefs.h <<\EOF +#define WAITPID_USES_UNION 1 +EOF + + +fi + + + echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:5340: checking for pid_t" >&5 +echo "configure:5581: 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 5345 "configure" +#line 5586 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -5370,17 +5611,17 @@ fi ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:5374: checking for vfork.h" >&5 +echo "configure:5615: 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 5379 "configure" +#line 5620 "configure" #include "confdefs.h" #include <vfork.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5405,18 +5646,18 @@ else fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:5409: checking for working vfork" >&5 +echo "configure:5650: 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:5415: checking for vfork" >&5 +echo "configure:5656: 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 5420 "configure" +#line 5661 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char vfork(); below. */ @@ -5439,7 +5680,7 @@ vfork(); ; return 0; } EOF -if { (eval echo configure:5443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_vfork=yes" else @@ -5460,7 +5701,7 @@ fi else cat > conftest.$ac_ext <<EOF -#line 5464 "configure" +#line 5705 "configure" #include "confdefs.h" /* Thanks to Paul Eggert for this test. */ #include <stdio.h> @@ -5555,7 +5796,7 @@ main() { } } EOF -if { (eval echo configure:5559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5800: \"$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 @@ -5579,20 +5820,20 @@ fi echo $ac_n "checking for broken/missing definition of remove""... $ac_c" 1>&6 -echo "configure:5583: checking for broken/missing definition of remove" >&5 +echo "configure:5824: 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 5589 "configure" +#line 5830 "configure" #include "confdefs.h" #include <stdio.h> int main() { remove("dummy") ; return 0; } EOF -if { (eval echo configure:5596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_baddef_remove=no else @@ -5600,7 +5841,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 5604 "configure" +#line 5845 "configure" #include "confdefs.h" #include <stdio.h> int __unlink(name) { return unlink(name); } @@ -5608,7 +5849,7 @@ int main() { remove("dummy") ; return 0; } EOF -if { (eval echo configure:5612: \"$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_baddef_remove=yes else @@ -5639,12 +5880,12 @@ for ac_func in \ do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5643: checking for $ac_func" >&5 +echo "configure:5884: 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 5648 "configure" +#line 5889 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5667,7 +5908,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5695,13 +5936,13 @@ done echo $ac_n "checking if TRUE/FALSE are defined""... $ac_c" 1>&6 -echo "configure:5699: checking if TRUE/FALSE are defined" >&5 +echo "configure:5940: 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 5705 "configure" +#line 5946 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> @@ -5710,7 +5951,7 @@ int main() { int x = TRUE, y = FALSE ; return 0; } EOF -if { (eval echo configure:5714: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5955: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_bool_defs=yes else @@ -5736,13 +5977,13 @@ fi echo $ac_n "checking for errno external decl""... $ac_c" 1>&6 -echo "configure:5740: checking for errno external decl" >&5 +echo "configure:5981: checking for errno external decl" >&5 if eval "test \"`echo '$''{'cf_cv_extern_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5746 "configure" +#line 5987 "configure" #include "confdefs.h" #include <errno.h> @@ -5750,7 +5991,7 @@ int main() { int x = errno ; return 0; } EOF -if { (eval echo configure:5754: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_extern_errno=yes else @@ -5770,20 +6011,20 @@ EOF echo $ac_n "checking for setlocale()""... $ac_c" 1>&6 -echo "configure:5774: checking for setlocale()" >&5 +echo "configure:6015: 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 5780 "configure" +#line 6021 "configure" #include "confdefs.h" #include <locale.h> int main() { setlocale(LC_ALL, "") ; return 0; } EOF -if { (eval echo configure:5787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_locale=yes else @@ -5804,13 +6045,13 @@ EOF echo $ac_n "checking if NGROUPS is defined""... $ac_c" 1>&6 -echo "configure:5808: checking if NGROUPS is defined" >&5 +echo "configure:6049: 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 5814 "configure" +#line 6055 "configure" #include "confdefs.h" #if HAVE_SYS_PARAM_H @@ -5824,7 +6065,7 @@ int main() { int x = NGROUPS ; return 0; } EOF -if { (eval echo configure:5828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6069: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ngroups=yes else @@ -5832,7 +6073,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 5836 "configure" +#line 6077 "configure" #include "confdefs.h" #if HAVE_SYS_PARAM_H @@ -5846,7 +6087,7 @@ int main() { int x = NGROUPS_MAX ; return 0; } EOF -if { (eval echo configure:5850: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ngroups=NGROUPS_MAX else @@ -5877,13 +6118,13 @@ fi echo $ac_n "checking declaration of sys_errlist""... $ac_c" 1>&6 -echo "configure:5881: checking declaration of sys_errlist" >&5 +echo "configure:6122: checking declaration of sys_errlist" >&5 if eval "test \"`echo '$''{'cf_cv_dcl_sys_errlist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5887 "configure" +#line 6128 "configure" #include "confdefs.h" #include <stdio.h> @@ -5893,7 +6134,7 @@ int main() { char *c = (char *) *sys_errlist ; return 0; } EOF -if { (eval echo configure:5897: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_dcl_sys_errlist=yes else @@ -5914,20 +6155,20 @@ if test $cf_cv_dcl_sys_errlist = no ; then EOF echo $ac_n "checking existence of sys_errlist""... $ac_c" 1>&6 -echo "configure:5918: checking existence of sys_errlist" >&5 +echo "configure:6159: checking existence of sys_errlist" >&5 if eval "test \"`echo '$''{'cf_cv_have_sys_errlist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5924 "configure" +#line 6165 "configure" #include "confdefs.h" #include <errno.h> int main() { char *c = (char *) *sys_errlist ; return 0; } EOF -if { (eval echo configure:5931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_have_sys_errlist=yes else @@ -5944,13 +6185,13 @@ fi echo $ac_n "checking if struct utmp is declared""... $ac_c" 1>&6 -echo "configure:5948: checking if struct utmp is declared" >&5 +echo "configure:6189: 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 5954 "configure" +#line 6195 "configure" #include "confdefs.h" #include <sys/types.h> @@ -5959,7 +6200,7 @@ int main() { struct utmp x; char *y = &x.ut_host[0] ; return 0; } EOF -if { (eval echo configure:5963: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6204: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_have_utmp=yes else @@ -5967,14 +6208,14 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <<EOF -#line 5971 "configure" +#line 6212 "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:5978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6219: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_have_utmp=utmpx else @@ -6005,13 +6246,13 @@ EOF if test $cf_cv_screen != slang ; then echo $ac_n "checking if curses supports alternate-character set""... $ac_c" 1>&6 -echo "configure:6009: checking if curses supports alternate-character set" >&5 +echo "configure:6250: 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 cat > conftest.$ac_ext <<EOF -#line 6015 "configure" +#line 6256 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> @@ -6020,7 +6261,7 @@ int main() { chtype x = acs_map['l']; acs_map['m'] = 0 ; return 0; } EOF -if { (eval echo configure:6024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_alt_char_set=yes else @@ -6040,13 +6281,13 @@ EOF echo $ac_n "checking if curses supports fancy attributes""... $ac_c" 1>&6 -echo "configure:6044: checking if curses supports fancy attributes" >&5 +echo "configure:6285: 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 6050 "configure" +#line 6291 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> @@ -6059,7 +6300,7 @@ attrset(A_UNDERLINE|A_BOLD|A_REVERSE); ; return 0; } EOF -if { (eval echo configure:6063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_fancy_curses=yes else @@ -6079,7 +6320,7 @@ EOF echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:6083: checking for ncurses version" >&5 +echo "configure:6324: 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 @@ -6096,7 +6337,7 @@ Autoconf "old" #endif EOF cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo configure:6100: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } + { (eval echo configure:6341: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } if test -f conftest.out ; then cf_out=`cat conftest.out | sed -e 's@^[^\"]*\"@@' -e 's@\".*@@'` test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" @@ -6107,15 +6348,16 @@ fi echo "$ac_t""$cf_cv_ncurses_version" 1>&6 -echo $ac_n "checking for obsolete/broken version of ncurses""... $ac_c" 1>&6 -echo "configure:6112: checking for obsolete/broken version of ncurses" >&5 + if test "$cf_cv_ncurses_version" != no ; then +echo $ac_n "checking for obsolete/broken version of ncurses""... $ac_c" 1>&6 +echo "configure:6355: 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 6119 "configure" +#line 6361 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> @@ -6129,7 +6371,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:6133: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6375: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_broken=no else @@ -6142,7 +6384,7 @@ rm -f conftest* fi -echo "$ac_t""$cf_cv_ncurses_broken=yes" 1>&6 +echo "$ac_t""$cf_cv_ncurses_broken" 1>&6 if test "$cf_cv_ncurses_broken" = yes ; then echo "configure: warning: hmm... you should get an up-to-date version of ncurses" 1>&2 cat >> confdefs.h <<\EOF @@ -6154,13 +6396,13 @@ fi echo $ac_n "checking if curses supports color attributes""... $ac_c" 1>&6 -echo "configure:6158: checking if curses supports color attributes" >&5 +echo "configure:6400: 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 6164 "configure" +#line 6406 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> @@ -6175,7 +6417,7 @@ chtype x = COLOR_BLUE; ; return 0; } EOF -if { (eval echo configure:6179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_color_curses=yes else @@ -6202,7 +6444,7 @@ fi echo $ac_n "checking declaration of size-change""... $ac_c" 1>&6 -echo "configure:6206: checking declaration of size-change" >&5 +echo "configure:6448: 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 @@ -6216,7 +6458,7 @@ do CFLAGS="$cf_save_CFLAGS" test -n "$cf_opts" && CFLAGS="$CFLAGS -D$cf_opts" cat > conftest.$ac_ext <<EOF -#line 6220 "configure" +#line 6462 "configure" #include "confdefs.h" #include <sys/types.h> #if HAVE_TERMIOS_H @@ -6251,7 +6493,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:6255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6497: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_sizechange=yes else @@ -6264,7 +6506,7 @@ rm -f conftest* CFLAGS="$cf_save_CFLAGS" if test "$cf_cv_sizechange" = yes ; then - echo "size-change succeeded ($cf_opts)" >&6 + echo "size-change succeeded ($cf_opts)" >&5 test -n "$cf_opts" && cat >> confdefs.h <<EOF #define $cf_opts 1 EOF @@ -6283,20 +6525,20 @@ EOF echo $ac_n "checking if ttytype is declared in curses library""... $ac_c" 1>&6 -echo "configure:6287: checking if ttytype is declared in curses library" >&5 +echo "configure:6529: 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 6293 "configure" +#line 6535 "configure" #include "confdefs.h" #include <$cf_cv_ncurses_header> int main() { char *x = &ttytype[1]; *x = 1 ; return 0; } EOF -if { (eval echo configure:6300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* cf_cv_have_ttytype=yes else @@ -6321,12 +6563,12 @@ EOF do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6325: checking for $ac_func" >&5 +echo "configure:6567: 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 6330 "configure" +#line 6572 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6349,7 +6591,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6382,7 +6624,7 @@ fi echo $ac_n "checking if character-translation code should be used""... $ac_c" 1>&6 -echo "configure:6386: checking if character-translation code should be used" >&5 +echo "configure:6628: checking if character-translation code should be used" >&5 # Check whether --enable-char-trans or --disable-char-trans was given. if test "${enable_char_trans+set}" = set; then enableval="$enable_char_trans" @@ -6410,7 +6652,7 @@ EOF fi echo $ac_n "checking if color-style code should be used""... $ac_c" 1>&6 -echo "configure:6414: checking if color-style code should be used" >&5 +echo "configure:6656: 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 enableval="$enable_color_style" @@ -6435,11 +6677,7 @@ if test $use_color_style != no ; then { echo "configure: error: Configuration does not support color-styles" 1>&2; exit 1; } fi cat >> confdefs.h <<\EOF -#define USEHASH 1 -EOF - - cat >> confdefs.h <<\EOF -#define UNPAINT_CACHE 1 +#define USE_HASH 1 EOF cat >> confdefs.h <<\EOF @@ -6458,11 +6696,46 @@ no) EOF echo "$ac_t""curses-style" 1>&6 + + echo $ac_n "checking for location of style-sheet file""... $ac_c" 1>&6 +echo "configure:6702: checking for location of style-sheet file" >&5 + # Check whether --with-lss-file or --without-lss-file was given. +if test "${with_lss_file+set}" = set; then + withval="$with_lss_file" + : +else + withval="${LYNX_LSS_FILE-$libdir/lynx.lss}" +fi +case ".$withval" in #(vi +./*) #(vi + ;; +.\${*prefix}*) #(vi + eval withval="$withval" + case ".$withval" in #(vi + .NONE/*) + withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@` + ;; + esac + ;; #(vi +.NONE/*) + withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@` + ;; +*) + { echo "configure: error: expected a pathname for lss-file" 1>&2; exit 1; } + ;; +esac +eval LYNX_LSS_FILE="$withval" + + cat >> confdefs.h <<EOF +#define LYNX_LSS_FILE "$LYNX_LSS_FILE" +EOF + + echo "$ac_t""$LYNX_LSS_FILE" 1>&6 ;; esac echo $ac_n "checking if you want to use zlib for decompression of some gzip files""... $ac_c" 1>&6 -echo "configure:6466: checking if you want to use zlib for decompression of some gzip files" >&5 +echo "configure:6739: 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 withval="$with_zlib" @@ -6478,12 +6751,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:6482: checking for gzopen" >&5 +echo "configure:6755: 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 6487 "configure" +#line 6760 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gzopen(); below. */ @@ -6506,7 +6779,7 @@ gzopen(); ; return 0; } EOF -if { (eval echo configure:6510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gzopen=yes" else @@ -6526,17 +6799,17 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for gzopen in -lz""... $ac_c" 1>&6 -echo "configure:6530: checking for gzopen in -lz" >&5 +echo "configure:6803: checking for gzopen in -lz" >&5 LIBS="-lz $LIBS" cat > conftest.$ac_ext <<EOF -#line 6533 "configure" +#line 6806 "configure" #include "confdefs.h" #include <zlib.h> int main() { gzopen("name","mode") ; return 0; } EOF -if { (eval echo configure:6540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6813: \"$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 @@ -6563,17 +6836,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:6567: checking for -lz in $cf_libdir" >&5 +echo "configure:6840: checking for -lz in $cf_libdir" >&5 LIBS="-L$cf_libdir -lz $cf_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 6570 "configure" +#line 6843 "configure" #include "confdefs.h" #include <zlib.h> int main() { gzopen("name","mode") ; return 0; } EOF -if { (eval echo configure:6577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6850: \"$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 @@ -6609,7 +6882,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:6613: checking if directory-editor code should be used" >&5 +echo "configure:6886: 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 enableval="$enable_dired" @@ -6634,7 +6907,7 @@ EOF echo $ac_n "checking if you wish to allow extracting from archives via DirEd""... $ac_c" 1>&6 -echo "configure:6638: checking if you wish to allow extracting from archives via DirEd" >&5 +echo "configure:6911: 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 enableval="$enable_dired_archive" @@ -6652,7 +6925,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:6656: checking if you wish to allow users to redefine DirEd keys" >&5 +echo "configure:6929: 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 enableval="$enable_dired_override" @@ -6677,7 +6950,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:6681: checking if you wish to allow permissions commands via DirEd" >&5 +echo "configure:6954: 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 enableval="$enable_dired_permit" @@ -6702,7 +6975,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:6706: checking if you wish to allow executable-permission commands via DirEd" >&5 +echo "configure:6979: 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 enableval="$enable_dired_xpermit" @@ -6720,7 +6993,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:6724: checking if you wish to allow \"tar\" commands from DirEd" >&5 +echo "configure:6997: 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 enableval="$enable_dired_tar" @@ -6745,7 +7018,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:6749: checking if you wish to allow \"uudecode\" commands from DirEd" >&5 +echo "configure:7022: 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 enableval="$enable_dired_uudecode" @@ -6770,7 +7043,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:6774: checking if you wish to allow \"zip\" and \"unzip\" commands from DirEd" >&5 +echo "configure:7047: 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 enableval="$enable_dired_zip" @@ -6795,7 +7068,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:6799: checking if you wish to allow \"gzip\" and \"gunzip\" commands from DirEd" >&5 +echo "configure:7072: 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 enableval="$enable_dired_gzip" @@ -6821,7 +7094,7 @@ fi fi echo $ac_n "checking if you want long-directory listings""... $ac_c" 1>&6 -echo "configure:6825: checking if you want long-directory listings" >&5 +echo "configure:7098: 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 enableval="$enable_long_list" @@ -6846,7 +7119,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking if parent-directory references are permitted""... $ac_c" 1>&6 -echo "configure:6850: checking if parent-directory references are permitted" >&5 +echo "configure:7123: 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 enableval="$enable_parent_dir_refs" @@ -7037,6 +7310,7 @@ s%@ZIP@%$ZIP%g s%@LYNX_CFG_FILE@%$LYNX_CFG_FILE%g s%@EXTRA_OBJS@%$EXTRA_OBJS%g s%@EXTRA_DEPS@%$EXTRA_DEPS%g +s%@LYNX_LSS_FILE@%$LYNX_LSS_FILE%g CEOF EOF diff --git a/configure.in b/configure.in index f10c968b..906d197b 100644 --- a/configure.in +++ b/configure.in @@ -268,10 +268,12 @@ slang) ;; esac +AC_MSG_CHECKING(for location of config-file) CF_WITH_PATH(cfg-file, -[ --with-cfg-file=XXXX specify config-pathname], +[ --with-cfg-file=XXXX specify config-file path], LYNX_CFG_FILE,LIBDIR/lynx.cfg,[$]libdir/lynx.cfg) AC_DEFINE_UNQUOTED(LYNX_CFG_FILE,"$LYNX_CFG_FILE") +AC_MSG_RESULT($LYNX_CFG_FILE) dnl -------------------------------------------------------------------------- dnl Checks for standard headers @@ -289,14 +291,12 @@ AC_CHECK_HEADERS( \ sys/ioctl.h \ sys/param.h \ sys/time.h \ - sys/wait.h \ termio.h \ termios.h \ unistd.h \ - waitstatus.h \ ) CF_TERMIO_AND_TERMIOS -CF_UNION_WAIT +CF_FUNC_WAIT dnl -------------------------------------------------------------------------- dnl Checks for library units @@ -374,8 +374,7 @@ if test $use_color_style != no ; then if test $cf_cv_screen = slang ; then AC_ERROR(Configuration does not support color-styles) fi - AC_DEFINE(USEHASH) - AC_DEFINE(UNPAINT_CACHE) + AC_DEFINE(USE_HASH) AC_DEFINE(LINKEDSTYLES) fi @@ -386,6 +385,13 @@ no) *) AC_DEFINE(USE_COLOR_STYLE) AC_MSG_RESULT(curses-style) + + AC_MSG_CHECKING(for location of style-sheet file) + CF_WITH_PATH(lss-file, + [ --with-lss-file=XXXX specify style-sheet path], + LYNX_LSS_FILE,LIBDIR/lynx.lss,[$]libdir/lynx.lss) + AC_DEFINE_UNQUOTED(LYNX_LSS_FILE,"$LYNX_LSS_FILE") + AC_MSG_RESULT($LYNX_LSS_FILE) ;; esac diff --git a/docs/CHANGES b/docs/CHANGES new file mode 100644 index 00000000..bd648e06 --- /dev/null +++ b/docs/CHANGES @@ -0,0 +1,1001 @@ +--- Release of Lynx2-7 + BUGFIXES as Lynx v2.7.1 (April 4, 1997) --- +======================================================================= +1997-04-04 +* Fixed typos in LYHistory.c, LYMail.c and LYMain.c which caused + failures of flag setting in the distributed code. - TD +1997-03-31 +* Added a missing check for whether the fragment token is NULL in + LYConvertToURL() of LYUtils.c. Without the check, the for-Unix code + could crash if a local file spec was entered as a startfile or goto + with escaped characters. - KW +* Mod in HTML.c to retain "[INLINE]" as the default ALT string if an + IMG element has an ISMAP attribute but is not in Anchor content such + that it could not in fact function as a server-side image map. - FM +1997-03-28 +* In mainloop(), after the call to HText_pageDisplay() following a change + of the document view, ensure that curdoc.link does not remain set to -1 + if there are any links on the screen. This would otherwise happen if + a document is pushed to the history stack while there are no links, and + later popped (and refreshed) after one or more links have been created. + This change prevents segmentation faults which occurred after creation + of a new file in a previously empty directory via the DIRED menu. The + access to invalid memory only occurred if the screen showing the empty + directory did not have a parent dir reference link (which is always the + case if NO_PARENT_DIR_REFERENCE was specified at compilation time). - KW +1997-03-27 +* Fixed a typo and added comments for the code in LYMainLoop.c which + decides whether to load the URLs for homepage and/or startfile into + the goto buffer at startup. The typo in the distributed code caused + the startfile URL always to be added to the goto buffer, even if + it had POST content such that it could be resent inappropriately + as a GET request via the goto buffer. - FM +* Added a bsdi-slang target to the Makefile. - LE +1997-03-26 +* Modified the HTStream structure and associated code in src/HTFWriter.c + so that we save and use the relevant content of the associated + HTPresentation structure as two HTFormat elements rather than via a + pointer to the HTPresentation structure itself, because the latter + structure might not be valid under some circumstances when + HTFWriter_free() is called. The distributed code might indirectly + result in segmentation faults during downloading on linux and some + other flavors of Unix (though they don't occur for most flavors, or + on VMS). - KW +1997-03-21 +* Mods in LYPrint.c to use ".txt" as the output file extension for + all rendered text/html files regardless of their original extension. + The distributed code was doing this only for ones with an extension + of ".html". The original extension still is retained if the file + is being output as source. - FM +* Added protection against passing a NULL pointer for path_url to + render_item() from dired_options() in LYLocal.c. - GN +1997-03-20 +* Tweaked the protection against URLs directed to port 19 or port 25 so + that it can't be circumvented via lead zeros in the port numbers. - FM +* Changed the compilation default so as not to send From MIME headers to + http or https servers. The default can still be changed via lynx.cfg. + Replaced the -nofrom disabling switch to a -from switch for toggling + the compilation or configuration default. Sending the From header + has become widely regarded as an invasion of privacy risk, particularly + in conjunction with cookie support. - FM +* Corrected a typo in the lynx.cfg comments concerning TRUSTED_LYNXCGI + rules. - KW +1997-03-17 +* Mods of LYNews.c and LYMail.c to prepend a "-- " separator before + appending the LYNX_SIG_FILE signature file to news and email + messages. - FM +* Made the installation mode 755 in the top-level Makefile. The + distributed code used 555, and some install commands were unable + to do the strip. - LWV +1997-03-14 +* Corrected typos and expanded the comments concerning lynxcgi symbols + in userdefs.h and lynx.cfg. - FM +* Modified SGML.c, LYCharSets.c and LYCharUtils.c to handle the numeric + character reference ™ as the named entity ™ and use "(TM)" + as the ASCII substitution if the current character set does not have the + trademark character. The distributed code was substituting ®. - FM +* Include time.h via tcp.h for SVR4 systems. The tcp.h header does include + sys/time.h for Unix systems, but this apparently doesn't get struct tm + and extern char * ctime() declared for SVR4. - FM +1997-03-13 +* Added protection in LYGetFile.c against connections to the port 25 + ESMTP service. - FM +1997-03-11 +* Added protection in LYGetFile.c against denial of service attacks via + the port 19 CHARGEN service. The distributed code left Lynx or proxies + vulnerable to such attacks via direct or redirection URLs. - FM +1997-03-10 +* Fixed error in the handling of numeric character references with values + greater than 255 in SGML.c. The distributed code was breaking after + substitutions instead of falling through to reset the string chunk and + recycle the terminator if not a semi-colon. - FM +1997-03-08 +* Fixed error in the switch positioning of checks for XLOADIMAGE_COMMAND + and wais_proxy in LYReadCFG.c. The distributed code had them reversed + under case 'W' versus case 'X'. - PDS +* Expanded the copyright and licensing statements in the -version + output. - FM +1997-03-04 +* Corrected the offset computation in textsearch() of LYSearch.c so that + WHEREIS searches repeated on a page with no links seek the target + starting at the line immediately following the last displayed. The + distributed code was setting a greater offset. - JS +1997-03-02 +* Don't entify post content for the showinfo display, now that we are + making it an XMP block in that display to handle all of the supported + enctypes. - FM +1997-02-28 +* Changed all references to "image/*" to just "image" in the userdefs.h + and lynx.cfg comments about XLOADIMAGE_COMMAND. The "/*" within the + userdefs.h comments was generating warnings from some compilers. - FM +* Added a snake-slang target to the Makefile, and added -DUNIX to the + LYFLAGS for the snake3 and snake3-slang targets (HP-UX apparently does + not define "unix" itself with the -Ae switch, and thus needs to have + that definition forced via -DUNIX). - HL +1997-02-26 +* Close both descriptors of the pipe() for the NSL_FORK enabled code + in HTTCP.c. The distributed code was closing only one of them on + completed gethostbyname() calls, and neither on 'z'aps. - FM +* Changed the HREF for the "Lynx FAQ" link in the online 'h'elp to + its new URL (http://www.slcc.edu/lynx/faq.html). - FM +1997-02-25 +* More reverse engineering to cope with Netscape's bogus cookie header + parsing. The parser must not require an '=' between the expires + attribute name and value, because Set-Cookie headers are being + transmitted without it (e.g., by http://law.agps.gov.au). So Lynx + now treats that as another special case. - FM +* Cope with invalid use of expires attributes in Version 1 cookies. + An -06 State Management draft recommends that for "backward + compatibility", and has been severely criticized in the HTTP-WG, + but it would be foolish not to assume Netscape will do that. See the + expanded comments in LYSetCookie() of LYCookie.c for more information. + Note that "expires" thus cannot be used as a Version 1 cookie name, but + a provider would be foolish to use that, anyway. Note also that the + possibility of using different header names for Version 1 versus + Version 0 (a.k.a., "Netscape") cookies is being discussed in the + HTTP-WG, which might have been better to do in the first place, but + the -05 draft has been approved as RFC 2109: + http://info.internet.isi.edu/in-notes/rfc/files/rfc2109.txt + so it would be a while before that were done, if ever. - FM +1997-02-22 +* Fixed a memory management glitch which could cause a crash if the + MIME type of a reply to a FORM submission with METHOD=POST caused a + download offer to be invoked. - FM +* Don't simplify ftp URLs by trimming trailing slashes if the URL is + being proxied. The Netscape proxy server for some unknown reason + can return redirection for ftp URLs with the slash appended, and + trimming it can result in a redirection loop. Based on a posted + patch from KW. - FM +* Fixed two typos in the checks for HTPassHighCtrlRaw in LYExpandString() + of LYCharUtils.c. - KW +* Fixed typo in the equality check on line 1553 in HTGopher.c. - AM +1997-02-19 +* Reset the host string after an '@', if present, when trimming default + ":port" fields in the new code aimed at compliance with the Masinter + and Fielding URL drafts, expected to replace RFCs 1738 and 1808. The + distributed code neglected to do that, and was ending up on a ":password" + field, if present, instead of on the ":port" field, causing the username + to be treated as the host name. - FM +* Expand the default port trimming so as to include all of the registered + URL schemes which support a port field in the v2.7 release. - FM +* Correctly uncache the current directory listing when invoking an 'u'pload, + so that it will be updated to include the uploaded file if placed in the + current directory. The released code attempted to do this in a manner + which prevented a pop, so that the directory listing couldn't be restored + on return from the uploader menu. - FM +* Recognize a bookmark file used as the startfile, whether it resides in the + home directory or in a subdirectory off home. The released code failed if + the file was in home, and not in a subdirectory, unless the -book switch + was used instead of a startfile entry or WWW_HOME variable. - FM +======================================================================= +--- Start of v2.7 bug fixes --- +======================================================================= +--- Release of Lynx2-6FM as Lynx v2.7 (February 15, 1997) --- +======================================================================= +1997-02-15 +* Release of Lynx2-6FM as Lynx v2.7. - FM +* Included -Ae when compiling the Implementation modules for the snake3 + target. - FM +1997-02-14 +* Mods to issue an alert about a BASE tag not having an absolute URL only + once per document. - FM +* Added code for appending LYNX_SIG_FILE to email messages as well as to + news posts or followups, and updated the Users Guide accordingly. - FM +* Updated build-slang.com. - FM +1997-02-12 +* Fixed some problems in the code for using a hookless Lynx image with + snew_proxy, snewspost_proxy, and snewsreply_proxy set to + "nntp://host:port/" so that it uses Tom Zerucha's (tz@execpc.com) + daemon which handles the SSL communications on behalf of the Lynx + image. Also polished up all of the news gateway code, and added + comments for the benefit of new developers. - FM +* Added an ECGOTO command mapped by default to 'G', complementary to the + GOTO command (default 'g'), to edit the current document's URL and then + go to it. Using case-sensitive letters with different command definitions + ensures that both will appear with their brief explanations in the 'k'eymap + listing. For ECGOTO, Control-G, failure to modify the URL, or complete + deletion of it, all act as a cancel. If the current document has POST + content associated with it, a warning will be issued before offering the + URL to edit. The POST content is retained if the modification merely + involves a change in fragment for the URL. Otherwise, the modified URL + (if it has an http scheme) will be submitted with method GET and no POST + content. If the ECGOTO command is not cancelled, or not simply a fragment + change, the modified URL will be added to the 'g'oto buffer, and can be + re-accessed, to edit further, via the GOTO command. See the updated online + 'h'elp for more information. - FM +1997-02-10 +* Amplified the comments concerning deletion of prototypes for MultiNet + socket library functions as they get added to MultiNet's own headers + in newer versions of it's socket library. - FM +* Added a missing fclose() in post_article() of HTNews.c, and added code + to delete the temporary file there, so it's gone as soon as we're done + with it. - FM +02-09-97 +* Enhanced the Set-Cookie header parser to handle values that contain + spaces but were not enclosed in double-quotes, and to use such + quoting or not when sending Cookie headers, depending on whether + this was done in the Set-Cookie header. Also added anti-crash + checks should the parser's efforts to handle both historical (a.k.a. + original Netscape) cookies and Version 1 cookies go awry (does deal + successfully now with all the cookies which had been reported as + problematic). - FM +* Mods of the screen handling in LYNews.c for cleaning up any screen + trash created by the external editor. - FM +* Tracked down an uninitialized pointer in LYNews.c that probably was + behind reports of crashes when posting to newsgroups. - FM +* Plugged a memory leak in LYMainLoop.c. - TJC +* Added posting ability to the news gateway, in lieu of the previous, + variably reliable, use of a spawned news client for posting. The + news, nntp, and snews URLs now all return links for posting new + messages or followups (replies) to the server from which a newsgroup + listing or news article was retrieved, unless the server indicates + that it does not accept posts from the site at which Lynx is running. + See the updated INSTALLATION, userdefs.h, and lynx.cfg files, the + "USENET News posting" section of the Users Guide, and "Supported URLs" + page of the online 'h'elp for more information. +* Fixed typo for e-dieresis in the KOI8-R charset. - AJF +* Replaced an inappropriate _user_message() call in HTConfirmCookie() + of HTAlert.c with a _statusline() call. The original code could + cause crashes with some cookie values. - FM +02-06-97 +* Added support for both hex escaped and unescaped white characters + in lynxexec and lynxprog URLs. Normally, Lynx strips out any white + characters that are not hex escaped in attribute values that are + to be resolved as URLs, on the assumption that they were derived + from wrapping in the markup. Any serial white characters in + lynxexec and lynxprog URLs are condensed to one space (' '), and + any lead or trailing white characters are trimmed. Note that we + still require hex escaping of spaces in mailto URLs, e.g, + HREF="mailto:lynx-dev@sig.net%20(I%20found%20a%20bug.)". - FM +* Removed the 'e' switch from tar commands in LYLocal.c for greater + portability across all supported Unix flavors. - FM +* Expanded the information in the PROBLEMS file on how to deal with + DECC and MultiNet header incompatibilites for different combinations + of the VMS compiler and socket library versions. - FM +* Added TRACE message of the edit command created for the system() + call in LYEdit.c. - LWV +* Fixed a typo in the userdefs.h comments. - NHE +02-04-97 +* Mod in LYMainLoop.c to bypass mailing "not found" messages when + MAIL_SYSTEM_ERROR_LOGGING was set TRUE (which it should NOT be, + indescriminately) if the document's owner is the lynx-dev list. - FM +* Added crash protection checks for the actual presence of anchors + in all HText structure anchor scans in GridText.c, based on a crash + report and suggested fix for one of them from Jonathan Sergent + (sergent@hillres55-129.cc.purdue.edu). - FM +* Eliminated the typecast for ttytype (apparently varies across flavors, + and each flavor should know it's own typing; we'll see) in LYCurses.c, + and moved VMS system definitions with non-ANSI conformant tokens to a + separate header for VMS (LYVMSdef.h). - BL +* Made the description of HISTORY in the 'k'eymap page more clear that + it invokes a list of the "suspended" documents currently held in the + history stack. - DC +* Typo fixes in the help files and lynx.cfg. - LWV +02-03-97 +* Today's distribution is a pre-release of v2.7. The projected official + release date is 02-15-97. All header, help and documentation files, + and the top directory name, have been updated for v2.7. - FM +* Made xli, which is freeware, the default XLOADIMAGE_COMMAND for Unix + in userdefs.h (still xv on VMS, since its port is freeware), and + expanded the "self-documentation" to indicate where to get this + freeware. Added XLOADIMAGE_COMMAND as a configuration symbol in + lynx.cfg, so that the compilation default can be overridden on + systems which have and prefer xv (all users can override the default + mappings for image helper apps via their mailcap files) - FM +* Added a -base command line switch which can be used with -source or + -mime_header to prepend the request URL as a comment, and a BASE tag + (which may or may not be the same as the request URL, depending on + HTTP/1.1 headers) for text/html documents, equivalent to the prepend + kludge for 'd'ownloads (see 09-20-96 mods). - FM +* Added a check for an "ORGANIZATION" environment variable for inclusion + as a news post header on Unix (all system logicals intended for news + post headers automatically are included on VMS), and a sleep() before + restoring curses mode after the post, to allow reading of any error + messages from the news software. - FM +* Fixed bug which yielded a "[LINK]" instead of "[INLINE]" pseduo-ALT + for ALT-less IMG tags used as the content for NAME-ed Anchors without + an HREF. - FM +* Portability tweaks for the mini inews utility. - FM +* Fixed an old and irrelevant typo in HTWriter.c. - JS +01-29-97 +* Added more REL tokens that are acceptible for banner links. - FM +* Ifdef'ed the standard foo_PATH definitions for FreeBSD at the bottom of + userdefs.h, based on a patch from AAC, and assuming they also apply for + NetBSD, BSDI, and Linux (we'll see 8-). - FM +* Added make freebsd-slang target. - AAC +01-28-97 +* Mods of LYSetCookie() to ensure setting of 443 as the default port for + https URLs, and force the secure flag on for https URLs whether or not + the Set-Cookie header had a secure parameter (too many Version 0 + cookies don't, when they should). - FM +* Removed -ltermcap from make for all ncurses targets. - FM +* Tweaks of make for FreeBSD. - AAC +* Use SLtt_get_screen_size() instead of the apparently less portable + code for slang in size_change() of LYUtils.c. - JED +01-27-97 +* Made ALT a synonym for VALUE in INPUTs with TYPE="image" to cooperate + with well-intentioned (though misinformed) providers who use ALT instead + of VALUE for the benefit of text clients or GUIs with image handling + turned off. - FM +* Modified the code for submission of form content with TYPE="image" NAME-ed + INPUTs that have a VALUE (or ALT) to "fake" a 0,0 coordinate pair, as when + a VALUE (or ALT) is absent, instead of sending a single name=value pair. + Requests that using a name=value pair in such cases to indicate that the + submission was from a text client or GUI with image handling turned off + be included in the HTML specifications keep falling on deaf ears, so we + may as well "fake" something closer to what the CGI scripts are expecting, + and hope that the script interprets 0,0 as an indicator that the user did + not see the image and make a conscious choice within it. +* Added code to offer a link for the SRC of the image in INPUTs with + TYPE="image", distinct from the submit button, when clickable images + is on. - FM +* Updated the "HTML Forms" section of the Users Guide. - FM +* Fixed a typo in the parsing of Cache-Control MIME headers and META + directives. - FM +01-25-97 +* Updated lynx_help_main.html, about_lynx.html and about_lynx-dev.html. - FM +* Mods to indicate a toolbar by a '#' preceding its first link when the + toolbar is being displayed, and to indicate the availability of a toolbar + by a '#' in the top, left-hand corner of the screen when the toolbar is + not being displayed. Added explanation of this in the online 'h'elp. - FM +* Indicate the 'allow' setting (always, never, or via prompt) for each + domain in the Cookie Jar Page. - AK +* Don't delete cookie-less domains silently during garbage collections if + they have their 'allow' set to always or never. - AK & FM +* Added ability to change the 'allow' settings for domains via the Cookie + Jar Page. - FM +* Added basic protection against "denial of service attacks" by limiting + a domain to 50 cookies, the total number of stored cookies to 500, and + the maximum processed size of a cookie to 4096 bytes. - FM +* SGML escape any ampersands or angle brackets in the cookie names, values, + parameters, and comments when creating the HTML stream for the Cookie + Jar Page, and only include entries for comments if they were present in + the servers' Set-Cookie headers. - FM +* Updated the online 'h'elp for cookies. - FM +* Removed -DNO_KEYPAD from all ncurses targets in the Makefile. - FM +01-23-97 +* Added a "Lynx State Management (Me want cookie!)" section to the Lynx + Users Guide, and a cross-linked cookie_help.html file for the Cookie + Jar Page. - FM +* Added prompting for whether to show the body of a 401 status reply or + simply return to the current document when an activated link requires + authentication via a username and password, and the user has none for + that realm, or forgot them. - FM +01-22-97 +* Added handling of expires attribute values in Version 0 (a.k.a. Netscape) + Set-Cookie MIME headers or META tags, and added "Maximum Gobble Date" + entries in the Cookie Jar Page which indicate the maximum intended age + for each cookie based on the Version 0 expires or Version 1 max-age + attribute values. - FM +* Added an LYmktime() function in LYUtils.c which accepts strings in the + format "Day, dd-Mon-yy hh:mm:ss GMT" or "Day, dd Mon yyyy hh:mm:ss GMT", + parses and converts them to time_t format (seconds since 00:00:00 Jan 1 + 1970), and returns the time_t value, or zero if the date is in the + past. It is used for handling Expires headers or attribute values. - FM +* Added parsing of Cache-Control and Expires MIME headers and META tags + sufficient to determine whether the no_cache element should be set in + the document's structures. - FM +* Eliminated the "; $Path=foo; $Domain=blah" attr=value pairs when sending + Version 0 (a.k.a. Netscape) cookies in request headers, because too may + CGI scripts in the real world have brain-dead parsers and fail when they + are included. - FM +* Added handling of Set-Cookie directives in META tags. - AK +01-20-97 +* Added confirmation prompts for deletions from the Cookie Jar, expanded + the garbage collecting for expired cookies, debugged and implemented the + code for security checks based on lead and embedded dots in domain values + and host prefixes as described in Section 4.3.2 of the -05 State Management + draft, added requirement for https URLs (direct, or via proxy) to include + cookies which have the secure flag set in request headers, and extensively + annotated the cookie support code for ease of further development. - FM +* Added ability to set SHOW_CURSOR in lynx.cfg, to override the compilation + setting in userdefs.h, and made the -show_cursor command line switch a + toggle for the compilation or configuration default. - FM +01-18-97 +* Bug fixes and memory leak plugs for the cookie support. Added ability + to delete individual cookies or entire domains via the Cookie Jar Page + (Ctrl-K). The domains and cookies are displayed as DL/DT/DD blocks, + with links for each domain and cookies name. The deletions are done + by activating those links, which can be numbered, so it should be OK + for blind users. - FM +* Tweaks of the news/nntp/snews gateway. - FM +* Tweaks of paragraphing if ADDRESS, BANNER, BLOCKQUOTE, BQ, FN, MARQUEE + or NOTE blocks are nested (note that nesting does not yield progressive + indentations of these blocks). - FM +01-16-97 +* Added "first pass" cookie support based on patches from Andrew Kuchling + (amk@magnet.com). Still needs work (see comments at top of LYCookie.c). + A SET_COOKIE symbol in userdefs.h and lynx.cfg determines whether cookie + support will be on or off by default, and the default can be toggled + via a -cookies command line switch. When on, Set-Cookie headers invoke + confirmations with possible replies of 'Y'es or 'N'o for that cookie, + 'A'lways, to accept all cookies from that domain, or ne'V'er to never + accept cookies from that domain. The Cookie Jar can be examined via + the COOKIE_JAR keystroke command, mapped by default to Ctrl-K. The + Cookie Jar, and any 'A'lways or ne'V'er settings, do not presently + outlast the Lynx session. - FM +01-14-97 +* Added use of DEFAULT_INDEX_FILE or the URL from an -index=URL command + line switch as the the HREF for a banner LINK with REL="Index" and no + HREF of its own (see the 01-01-97 mods and the HTML Banners section of + the Lynx Users Guide). - FM +01-13-97 +* Tweaks of the news gateway. - FM +* Added "Negotiate: trans" header for GET and HEAD requests. Shouldn't + be necessary to get 300 instead of 406 replies when nothing matches + the Accept and Accept-foo request headers, but some HTTP/1.1 servers + apparently want it when the UA declares itself as HTTP/1.0, as Lynx + still does. - FM +01-12-97 +* More updates of the online 'h'elp files. - FM +* Simplified the code for checking whether a startfile is a bookmark file + entered as a URL instead of invoked via the -book switch. The previous + code was tripping up some versions of the osf and linux compilers. - FM +01-10-97 +* Replaced the realloc() in split_line() of GridText.c with a calloc(), + memcpy(), FREE() sequence for all systems, not just AIX and ultrix, + based on analysis of memory wastage by Hans Reiser + (dl9rdz@cip.e-technik.uni-erlangen.de). - FM +* Tweaks of the body= handling in mailto URLs. - FM +* Tweaks of the ftp gateway. - FM +* Restored inheritence when resolving versus a base with the same scheme, + because the RFC1808 and Fielding Draft behavior of not doing so yields + too many failures in the real world (sigh...). - FM +01-09-97 +* Ugh! The distribution zip still had the Nov 4, 1996 HTTCP.c instead of + the one I modified on Christmas. No wonder people were still reporting + the wrong messaging with -DNSL_FORK. The right HTTCP.c is in there + now. - FM +* Mods to resolve the HREFs for LINKs with REV="made" or REV="owner" + versus the base (a many, many year old bug finally caught 8-). - FM +* Added HTAlert messages about BASE HREF vaules, Location header values, + and Refresh URL values that were not received as absolute URLs. We + still resolve them versus the RequestURI, since that's invariably + what is intended, and thus the optimum "error recovery" strategy. - FM +* Added handling of cc= and body= fields in ?searchpart strings of mailto + URLs. They are described in draft-hoffman-mailto-url-00.txt recently + posted to the URI-WG list. This draft ignores the objections which have + been filed about changing the semantics of mailto and breaking clients + which are fully conformant with the mailto specs in RFC1738, instead of + using a new scheme name (e.g., smtp:) for URLs with mail headers, and it + extends the ill-advised use of '&' as puctuation in URLs instead of + honoring the previous IETF effort to seek it's replacement by ';' as the + URL name=value separator and, in effect, treating them as parameters + without need to worry about confusions with entities when the URLs are + attribute values in text/html. However, the chairman of the URI-WG is + a co-author of this draft, so, sigh... As far as this Lynx code is + concerned, the mods are more "error recovery" to cope with the sad things + which have afflicted the Web during the past 2-3 years, and use of a + ?searchpart in mailto URLs is still DISadvised. Lynx uses only subject=, + cc=, and body= fields from a ?searchpart, using it's own "safe" rules for + other mail headers, and ignoring ones other than those three in the + ?searchpart as "unsafe". The cc= values in a ?searchpart are added to + the primary address as a comma-separated list for the mail agent, and + Lynx's own Cc: is that entered, optionally, by the user. Any body= field + is passed to the external editor, if one has been defined, for review and + possible modification. Otherwise, it is scrolled for review. The mailing + can be cancelled at any time (via Ctrl-G), and via a statusline prompt + after everything has been reviewed, if the user judges the body and/or + addresses to be unsafe or inappropriate. - FM +* Moved information and prompt strings in LYMail.c to installer-modifiable + symbols in LYMessages_en.h. - FM +01-07-97 +* Eliminated forced exits for keyboard input buffer overruns on VMS. + There's no perfect way to deal with it, but Lynx should recover + gracefully most of the time now, and do nothing bad if ungraceful. - FM +* Added handling of Content-Base and Content-Location MIME headers when + 'd'ownloading, 'p'rinting, or mailing HTML source. For this, as + for rendered HTML streams (see 01-06-97 mods) the base is determined + according to HTTP/1.1 rules: If a Content-Base header was received, + that's the base. Otherwise, if a Content-Location header was received + and it's an absolute URL, that's the base. Otherwise, the URL used + to retrieve the document is the base. When actually rendering, any + BASE tag in the document overrides the base derived from headers. + When 'd'ownloading, or outputting HTML source for a 'p'rint option, + an X-URL comment with the URL used to retrieve the document and a + BASE tag with the header or URL-derived base are inserted at the top + of the document. These should be moved down into the actual HEAD + section to make the HTML fully legal, but will work as is if the + output is used in conjunction with automatic invocation of Lynx or + Netscape as a text/html helper application. When mailing with an + SMTP-conformant mailer, the actual URL used to retrieve the document + is indicated via an X-URL header, and for HTML source, a Content-Base + and a Content-Location header are included, set to what was actually + received by Lynx via MIME headers, or to the retrieval URL. - FM +01-06-97 +* More updates of the online 'h'elp. The Visited Links Page ('V'), + multi-bookmark file support, REL/REV and META enhancements, and new + switches are now all fully documented in the 'h'elp. - FM +* Added handling of Content-Base and Content-Location MIME headers for + rendered HTML streams (still using the document's URL in the 'd'ownload + and 'p'rint (and mailing) BASE prepending kludge). - FM +* Added code to avoid getting tripped up by double-quoted header values + in HTMIME.c. We still need more sophisticated parsing of possibly + compound HTTP/1.1 headers, but we don't yet use any of those. - FM +* Tweak of the efficiency mods for command line parsing in LYMain.c. - FM +* Simplified some code in LYMainLoop.c that was tripping up the AIX32 + compiler. - FM +01-04-97 +* More updates of the online 'h'elp. - FM +* Added DIRED_MENU support for .tgz files as for .tar.gz files. - FM +01-03-97 +* Made the command line parsing in LYMain.c more efficient. - FM +* Added -nopause switch for setting InfoSecs, MessageSecs, and AlertSecs + to zero. Can be used to eliminate forced statusline pauses during + traversals. - FM +* Mods to allow absolute zero quality values for Accept headers, so that + in mailcap files users can do things like map image/* to a helper app + but exclude particular image subtypes which the app can't handle by + assigning q=0 for that subtype. HTTP/1.1 still specifies 4 significant + figures for quality values, so if the value is non-zero, Lynx still + forces a minimum of q=0.001. - FM +* Typo fixes in lynx.cfg. - LWV +01-02-97 +* Updates of the online 'h'elp files. - FM +* Made the parsing of lynx.cfg in LYReadCFG.c more efficient. - FM +01-01-97 -- Happy New Year! +* More partial/relative HREF resolving enhancements. Everything is now + handled as recommended in Larry Masinter's -03 revision of Roy Fielding's + -02 URL ID, except file and ftp URLs (which Lynx handles as described + in the online 'h'elp ). Note, though, that Lynx handles known schemes + on a scheme-by-scheme basis, and for schemes that involve substitutions + of "/" for a NULL/zero-length path, Lynx inserts the "/" at the resolving + stage, so those slashes are present where the Fielding test suite doesn't + indicate them, but the actual requests sent to servers (or bad URL message + if it's a scheme that requires a host field and doesn't have a default) + will be the same. Note, also, that Lynx sends only the path<?searchpart> + ("absolute path") in it's direct http requests and indicates the host of + the URL in the Host: header, i.e., sends the absolute URL only to proxies. + Note, as well, that Lynx treats a zero-length attribute value for an HREF, + SRC, etc. as a reference to the currently displayed document, but still + uses the base (which might not be the current document's address) as the + default for FORMs without an ACTION specified, or ISINDEX tags without + an HREF or ACTION specified. - FM +* Expanded REL/REV handling. All of the REL values in the (expired) Maloney + and Quin draft-ietf-relrev-00.txt ID which make sense for banner links in + Lynx have been added. For REL="Help" without an HREF in the LINK, Lynx + uses its helpfile URL. For REL="Home" without an HREF in the LINK, it + uses the configuration startfile or WWW_HOME URL (i.e., not a startfile + specified on the command line), or the command line homepage, if it was + specified. - FM +* Added handling of fragments in conjunction with URL expansion guessing for + startfile, homepage and 'g'oto strings. Note that any '#' that is not a + fragment delimiter should be hex escaped (%23), and ideally all reserved + or unsafe characters will be hex escaped in the user-entered string, though + you can get away with not using the hex codes for most others, depending on + their positions in the string. Also note that on VMS if you include the + version for local files it must precede the fragment (e.g., foo.html;3#frag) + as for parameters. - FM +12-26-96 +* Mods of HREF resolving to be more consistent with the latest IETF draft + (http://www.ics.uci.edu/pub/ietf/uri/draft-fielding-url-syntax-02.txt). + Most importantly, lone fragments (HREF="#fragment") are resolved versus + the current document's URL, and no longer versus the BASE, if present. + There are a few things in the draft which are at odds with what virtually + all currently deployed browsers do, and so I stuck with the "deployed" + behavior. Try the tests in http://www.ics.uci.edu/~fielding/url/ to + see where Lynx still differs from the draft. - FM +* Tweaks of 'z'ap handling. - FM +12-24-96 +* Tweaks of DIRED_SUPPORT and make for osf. - FM +12-23-96 +* Added code to check if the startfile has BOOKMARK_TITLE as its title, + and if so, and it's in the bookmark file list, add the bookmark element + and reload to have it treated as if it were invoked with -book. - FM +12-21-96 +* Added code for the DIRED_MENU command ('f' and 'F' by default) to invoke + CSwing on VMS if CSWING_PATH is defined, as explained in userdefs.h and + lynx.cfg . - FM +12-20-96 +* More improvements in the fatal error and memory exhaustion handling, and + plugging of memory leaks. - FM +* Changed "newline" to "Newline" in LYMainLoop.c to deal with another + reported, ill-advised, macro in the AIX 4.2 curses.h. - FM +* More tweaks of lynx.cfg. - FM +12-19-96 +* Improvements in the messaging and cleanups for aborts on fatal errors + and exits on memory exhaustion. - FM +* Worked v2.1 of lpansi.c into the distribution. - FM +* Modified lynx.cfg to reflect the compilation defaults consistently, and + changed the compilation default for SUBSTITUTE_UNDERSCORES to FALSE. - FM +* Changed the "lines" element to "Lines" in the HText structure and the + "tab" structure name to "Tab" to cope with some unwise employee reportedly + using all lower case "lines" and "tab" strings as macros in the AIX 4.2 + curses.h. - FM +12-17-96 +* Restored use of the -l format in the parent links of local Unix directory + listings if LONG_LIST is defined, without the v2.6 bug of creating strange, + trailing relative or escaped strings. As far as I can tell from exercizing + them, the DIRED_SUPPORT and LONG_LIST handling are now fully debugged + (famous last words... 8-). - FM +12-16-96 +* Don't reiterate parent links in local directory listings. They are + offered only in the top, up to parent link if NO_PARENT_DIR_REFERENCE + is not defined. - FM +* Moved more HTML.c functions to LYCharUtils.c. - FM +* Tweak of META handling, which was causing crashes (due to freeing an + anchor structure prematurely in the 12-13-96 mods for moving HTML.c + code to LYCharUtils.c). - FM +* Block Unix relative path strings in lynxexec and lynxprog URLs. - DT +12-14-96 +* Added a COLLAPSE_BR_TAGS compilation and configuration symbol for + determinining whether Lynx collapses serial BR tags. Note that the + valid way to create extra blank lines in HTML is with PRE blocks that + contain only newlines. - FM +* Fixed a longstanding glitch in the alignment handling which could + cause a Paragraph's ALIGN value to cross embebbed blocks, rather than + restoring the appropriate alignment for the outer division or block + on close of the embedded block. - FM +* Modified HR handling so that it inserts the same before and after + spacing regardless of whether P end and/or start tags are present + before and/or after the HR. - FM +* Don't insert the bookmark file description and filepath if multiple + bookmark file support has been turned off, and this is the default + bookmark file (but they will still be inserted if it's not the default, + e.g., if it's another bookmark file viewed before the support was + turned off, and retrieved as a previous document). - FM +12-13-96 +* Added parsing of Content-Disposition in META tags and setting the + suggested file name if file; filename=name.suffix is in the value + of the Content attribute and we don't already have that via a server + header. - FM +* Incorporated almost all globals related to stream parsing and page + display in HTML.c and GridText.c into the HTML object structure and + HText structure to make the parsing and display functions more nearly + re-entrant, and moved several functions from HTML.c to LYCharUtils.c + to reduce the size of HTML.c. - FM +* Added -cckr to the libwww Makefile compiler options for SGI. - Carl + Buxbaum (crb@world.std.com) +* Fixed typo in LYMainLoop.c that affected the 'd'ownload command when + DIRED_SUPPORT is enabled. - FM +12-10-96 +* Implemented Safe header handling and prompting about resubmissions of + forms with method POST along the lines described in the 24-Nov-96 IETF + ID: http://gewis.win.tue.nl/~koen/draft-holtman-http-safe-01.txt + Lynx prompts for confirmation whenever it detects that a resubmission + would occur, unless the previous reply included "Safe: yes". Prompts + always will occur if the -resubmit_post toggle is on (since resubmission + always would occur; not advised). If not toggled on, resubmissions + would occur when no_cache is set or the previous reply has been dumped + from the cache. When using the PREV_DOC command or History Page, if + confirmation is not obtained, Lynx will skip to the yet earlier document, + or cancel, as appropriate. - FM +* Added parsing of the Safe header in HTMIME.c, and added a safe element + to the anchor and document structures. Will be FALSE unless a Safe + header is received that specifies "YES" or "TRUE" (case-insensitive, + only "YES" is in the specs), and applies only to replies from form + submissions with the POST method. - FM +* Cleanup of code in HTAccess.c. May correct problem of crashes for + ISINDEX searches on some systems, though I couldn't reproduce that + problem here. - FM +12-09-96 +* Added an HTSetPresentation() for image/x-xbitmap in HTInit.c when DISPLAY + is set. - FM +* Added an LYOutOfMemory boolean that is set by the outofmem() macro, and + code in the Unix FatalProblem() and VMS exit handler for reporting the + memory exhaustion instead of the misleading "bug" message when they are + invoked due to memory exhaustion. May not be reported reliably for + linux, because for some reason I don't understand, the SIGBUS trapping + is ifdef'ed out for linux in LYMain.c. - FM +* Fixed typo in the new LYAddVisitedLink() in LYHistory.c of yesterday's + mods. - KW +12-08-96 +* Added a VLINKS command, mapped by default to upper case 'V', and code + for creating a list of all links 'V'isited during the current Lynx session + in order of recency (most recent highest in the list). Lower case 'v' is + still mapped to VIEW_BOOKMARKS. The VLINKS listing is complementary to + the History Page listing, and formatted similarly. It excludes POST + replies, and bookmark, menu and list files (use the History Page or + direct keystroke commands for those). It includes any links that were + downloaded, or passed to a helper app (except mailto and newsreply or + newsfollowup links, since those require activation in the original + document for proper inclusion of it in the email message or news + post). You can print the Visited Links Page, or 'd'ownload it via + the History Page. - FM +* Added reporting of the Charset parameter, if present in a server reply + header, META tag, or by virtue of a suffix map, to the showinfo ('=') + display. - FM +12-07-96 +* Added 'p'rint menu support for the History Page. - FM +* Added a content_length element to the anchor structure and use that, + if a Content-Length header has been received, to indicate the total + bytes in the statusline when receiving the stream. - FM +* Include HTTP_ACCEPT_LANGUAGE in the lynxcgi environment. - David Trueman + (david@cs.dal.ca). +12-06-96 +* Many more cleanups and commenting of the code for the benefit of new + developers. - FM +* Tweaks of URL parsing and path simplifications. Added simplification + of the file://localhost paths from startup and 'g'oto guesses. - FM +* More anti-crash protections for bad HTML in SELECT blocks. - FM +* Usability enhancement for DIRED's 'F' menu: list number and names of + (some of) the tagged items, and provide a way to untag all items. - KW +* Force screen refresh after a DIRED system command has failed. - KW +* Modified HTFile.c to handle relative and "Up to parent" links more + effectively. - KW +* Added KEYGEN to the DTD (but no code to do anything with it yet). - FM +12-05-96 +* Fixed typo in the for-Unix section of LYAddPathToHome() that was added + yesterday in LYUtils.c. - James Troup (J.J.Troup@comp.brad.ac.uk) +12-04-96 +* Numerous cleanups and commenting of the LYfoo.c and LYfoo.h modules, + for the benefit of new Lynx developers. - FM +* More security-related enhancements and polishing up of the multiple + bookmark file support. - FM +* Increased the sizes of MAXHIST and MAXLINKS, added statusline messages + should they ever be exceeded (not likely now 8-), and code for freeing + all excess pointers on each page draw instead of letting them grow and + freeing them on exit (should help for memory-limited systems 8-). - FM +* Tweaks of DIRED_SUPPORT. - KW +12-02-96 +* Show nntp server status messages in group listings when not 221 (normal + reply to HEAD request), so the user will know that the articles are + not available from the server, rather than a bug in Lynx. - FM +* Tweaks of BASE resolving. - FM +* Added "trick" to send hostname guesses to stdout when the startfile or + homepage are not URLs, as we send to the statusline for 'g'oto guesses + (but don't use stdout if we are not interactive and the desired output + is going to stdout). If the DNS lookup stalls, one thus can Control-C + out, instead of wondering why Lynx is taking so long to start up. - FM +* Cleaned up the read_rc() and save_rc() functions in LYrcFile.c. - FM +* Eliminated all printw() calls to avoid problems with non-ASCII and/or + multibyte/CJK characters. - FM +* Numerous additional bug fixes and enhancements of the multiple bookmark + file support. - FM +* Got rid of the ADVANCED_MULTI_BOOKMARKS symbol now that the choice can + be made in the 'o'ptions menu and saved in the .lynxrc file. - FM +11-30-96 +* Added the ability to set the advanced mode for multiple bookmarks from + the options menu and save the defaults in the .lynxrc file - HL +* Various typo corrections including one which kept LYMainLoop.c from + compiling under Unix when DIRED_SUPPORT was defined. - HL +11-29-96 +* Numerous additional refinements and enhancements of the multiple bookmark + support. Added support for REFRESH and PREV_DOC in the options and bookmark + menus, and NEXT_PAGE, PREV_PAGE, and ACTIVATE in the bookmark menus or + prompts. Expanded the anchor and document structures to keep track of + different bookmark files in conjunction with VIEW_BOOKMARK, ADD_BOOKMARK, + and DEL_BOOKMARK commands, to restore the proper bookmark files on reloads + (overt, or because the cache was dumped for subsequent documents accessed + via bookmark links), and in conjunction with security-related restrictions. + Multiple bookmark support can be regulated via MULTI_BOOKMARK_SUPPORT, + BLOCK_MULTI_BOOKMARKS and ADVANCED_MULTI_BOOKMARKS symbols in userdefs.h + (or as SITE_DEFS in the Makefile) and lynx.cfg. The multiple bookmark + support can be blocked via a -restrictions=multibook command line switch, + which is also set for -anonymous and -validate. Prompting or display of + the bookmark file selection menu occurs only if bookmark files in addition + to the startup default have been defined (via the B)ookmark command in the + 'o'ptions menu, if mu(L)ti bookmarks has been turned on; the setting and + definitions can be saved in the .lynxrc file). Plugged memory leaks in + the previous implementation of multiple bookmark support. Added code for + inserting the current description and filepath for each bookmark file + dynamically during rendering. - FM +* Another tweak of attribute order in HTMLDTD.c. - KW +11-28-96 +* Tweaked multiple bookmark support to fix an error which was causing a + crash on some systems and incorrect behavior on others - HL +* Tweaked editing of multiple bookmark filenames to correct shifting of + screen between multiple pages - HL +11-26-96 +* Added support for setting the rendering of SELECT OPTIONs as popup menus + versus radio button lists via the 'o'ptions menu, and saving the default + in the RC file. Changed NO_SELECT_POPUPS to USE_SELECT_POPUPS in lynx.cfg + and userdefs.h. The -popup switch still overrides everything. - FM +* Added multiple bookmark support along the lines of the patch from Filip M. + Gieszczykiewicz (filipg@paranoia.com), plus numerous enhancements of the + 'o'ptions menu and bookmark handling. - FM +* Tweaks of attribute orders in HTMLDTD.h and HTMLDTD.c. - KW +11-25-96 +* Updated the "Lynx Enhanced Pages" links to the new "Lynx links" + (http://www.crl.com/~subir/lynx.html) throughout the help, docs, + and code. - FM +11-24-96 +* Modified the ENCTYPE="multipart/form-data" handling to indicate the + Content-Type with charset parameter, when known, within each part + rather than in the main Content-Type header. - FM +* Corrected typo in HTNews.c. - FM +* Added support for setting the suggested filename in 'd'ownload and + 'p'rint options based on the Content-Disposition header if it included + the string file; filename=name.suffix in its value. Can be used by + CGI scripts to set the suggested filename for saves to disk, downloads + or mailings of the script's reply body, so it won't be the last symbolic + element in the path field of the form's ACTION (which is normally the + the script, itself, or a PATH_INFO element, and thus misleading). - FM +* Tweaks of change_sug_filename() in LYUtils.c for better handling of + gzipped files on VMS. - FM +11-23-96 +* Added reporting of the Server, Date and Last-Modified headers, if present + in server replies, to the showinfo ('=') display. - FM +* Added the ability to store the NO_SELECT_POPUPS in the .lynxrc, but the + .lynxrc must be edited manually until the options handling is converted + to a form-like interface that accommodates more options. For now, select + 'O'ptions and write out the options with '>' to create a block in .lynxrc + with an explanation of the switch. The switch is "select_popups" and + can have the values of "on", "off", or nothing. If nothing, the default + set in userdefs.h or lynx.cfg will persist. Otherwise, "on" will set use + of popups and "off" will set use of radio buttons as the default. The + startup default always can be toggled via the -popup switch. - HL & FM +* Corrected a couple of typos in the help files. - HL +11-22-96 +* Added support for WHEREIS ('/') and 'n'ext searches within SELECT popups. + The buffering for 'n'ext is separate from that in the main loop (i.e., + for non-form field document searches), but all previously entered search + strings are still combined into a circular buffer and can be accessed via + the up-arrow or down-arrow keys at the prompt for a search string. The + searches within popup menus do not yield highlighting of the search string, + but simply positioning of the cursor on successive options which contain + the search string. - FM +* Added support for all of the navigation commands within SELECT popup + windows, including HOME, END, UP_TWO, DOWN_TWO, UP_HALF and DOWN_HALF, + in addition to the single line and paging navigation commands. - FM +* Added support for the REFRESH command within SELECT popup windows. - FM +* Tweak of hookless snews handling. - FM +11-21-96 +* Added handling of forms with ENCTYPE="multipart/form-data". Note that + we still don't support INPUTs with TYPE="file" or TYPE="range", and + thus still set the DISABLED attribute for all fields in the form if + either of those two TYPEs are present in it. - FM +* Tweak of -mime_header handling. - FM +* Typo fixes of comments in HTML.c. - Albert S Woodhull + (aswNS@hamp.hampshire.edu) +11-20-96 +* Added a NO_SELECT_POPUPS compilation (userdefs.h) and configuration + (lynx.cfg) definition, normally set FALSE. If set TRUE, single-choice + SELECT blocks (i.e., ones without the MULTIPLE attribute) will be handled + as a list of radio buttons instead of via a popup window. Also added a + -popup command line switch for toggling the compilation or configuration + setting. - FM +11-18-96 +* Tweak of LYFindEndOfComment() in LYCharUtils.c. - Brian Borowski + (brianb@braille.uwo.ca) +11-17-96 +* Added links to the lynx-dev hypertext archive at FLORA in the online + 'h'elp. - FM +* Tweaks of my_spawn() in LYLocal.c. - KW +11-16-96 +* Added support for use of the 'd'ownload command on TYPE="submit" and + TYPE="image" submit buttons. You still must use the History Page for + TYPE="text" INPUT fields that also act as submit buttons by virtue of + being the only non-hidden field, because the 'd'ownload command key + could be a text entry into the field, and thus must be treated as + such. - FM +11-15-96 +* Mods of HTFormat.c and HTTP.c for better handling of unexpected server + disconnects. - FM +11-13-96 +* Wind down the element stack on EOF if any unclosed tags were received. - FM +* Fixed typos in the HTMLDTD.c BODYTEXT definitions. - FM +11-10-96 +* More tweaks of hook-less snews handling. - FM +* Changed the default STARTFILE to http://lynx.browser.org/ and the default + HELPFILE to the v2.6 set at NYU in userdefs.h and lynx.cfg. - FM +* New function HTUnEscapeSome() in HTParse.c for unescaping selected + characters in a string.. - KW +* Numerous changes to make DIRED_SUPPORT work as intended, to use the + library's HTList functions and macros for managing the list of tagged + file URLs, and to keep track of proper levels of URL escaping so that + unusual filenames which contain #% etc. are handled properly. Can now + edit, move, etc. Abc%25252525def.html, #xy#~, etc. - KW +11-09-96 +* Treat 301 or 302 redirection of a POST as 303 when the Lynx process is + non-interactive, rather than rejecting the redirection, since 303 is + still most likely what the CGI script actually intends (will still + prompt if the process is interactive). - FM +* Added parsing and trace mode reporting of Content-Disposition headers + in HTMIME.c (should be used, someday, to set the suggested file name + for disk saves and downloads based on any filename=foo.blah field). - FM +* Further mods of HTNews.c to facilitate use of Lynx without SSL-hooks + in conjunction with an SSL-capable daemon/proxy for snews URLs that + returns NNTP streams for Lynx itself to convert into HTML, instead + of already converted streams as from a standard proxy. - TZ & FM +11-08-96 +* Changed information returned by "-version" in LYMain.c to point to + lynx.browser.org and added a date to the copyright info. - HL +11-07-96 +* Mods of HTNews.c to facilitate use of Lynx without SSL-hooks in + conjunction with an SSL-capable daemon/proxy for snews URLs. - TZ +11-05-96 +* Typo fixes in HTMIME.c. - KW +* Tweak of NSL_FORK mods. - FM +11-04-96 +* Tweaks of host parsing when a password and/or username is present + in override_proxy() of HTAccess.c. - FM +* Tweaks of the UNDERSCORES and STARS macro setup and useage to avoid + possible crashes for FORMs with long values. - FM +* Worked in Tom Zerucha's (tz@execpc.com) code for fork-based name + server lookups that can be 'z'apped. May not yet be portable to + all flavors of Unix. Add -DNSL_FORK to your SITE_LYDEFS to try + it. - FM +11-02-96 +* Fixed typo in HTAlert.h. - FM +* Cleaned up HTTCP.c code, simplified some of its spaghetti + ifdef'ing, and worked in mods to bypass connection confirmations + when Lynx is SOCKSified and the socks_flag is set. - FM +* Added recognition and acceptance of text/x-sgml and text/sgml + MIME types (all that I've encountered thus far work fine with + Lynx, though it doesn't yet interpret marked sections). - FM +* Added socket function prototypes for MultiNet in tcp.h. - FM +* Mods to facilitate application of the SSL patches (after some + corrections in the patches to keep HTLoadHTTP re-entrant, make + CONNECT work as intended again, and eliminate memory leaks in + the SSLeay adaption) - FM +* Adding info about -DNO_TTYTYPE in top level Makefile. - FM +* Use clrtoeol() in LYOptions.c to ensure that no terminals which use + reverse video for standout() will have trailing reverse fields on + edits of option vaules. - DK +* Offer user@host instead of WebMaster@host for the 'c'omment command + if the path for the URL begins with a tilde and there is no + LINK REV="made" present. - FM +* Tweaks of inews Makefile and clientlib.c. - Christopher R. Maden + (crm@ebt.com) +* Check nhist before attempting a DIRED_SUPPORT directory listing in + LYShowInfo.c. - KW +10-21-96 +* Offer WebMaster@host for the 'c'omment command if no LINK REV="made" + was present in a text/html document, and save a known owner URL when + toggling to source ('\') so that the 'c'omment command can still be + used with that owner's (mailto or homepage) URL, but the source can + be included in the comment, as would be desireable (instead of a bad + rendering) when sending a comment about bad HTML in the document. - FM +10-20-96 +* Added code for traversing the pseudo-documents created for client-side + image MAPs. See the updated CRAWL.announce for more information. - FM +10-19-96 +* Added definitions in LYCurses.h relating curses function calls to slang + functions or emulations for compatibility with new versions of slang, + based on patch from John E. Davis (davis@space.mit.edu). - FM +* Added unescaping of the full address fields in mailto URLs or ACTIONs, + and improved the reliability of the parsing of the subject header from + the ?searchpart Netscapism when present. - FM +* Give user option to use 303-like coversion of POST to GET in confirmation + requests for redirection of POSTs, base on patches from Drazen Kacar + (dave@fly.cc.fer.hr). - FM +* Tweaks of POST content submissions in HTTP.c, based on patch from + KW. - FM +* Fixed EOF checks in HTAAFile.c, HTGroup.c and HTPasswd.c, and improved + host address parsing in HTTCP.c, based on patches from Larry Schwimmer + (schwim@cyclone.stanford.edu) and Klaus Weide (kweide@tezcat.com). - FM +* Added targets for umaxv and umaxv-slang for Encore's UMAXV - Thanh Ma + (tma@encore.com) +10-16-96 +* Send the rendering of decompressed files to stdout with -dump, don't + spawn a viewer under any circumstances if -dump was used instead of + -source for Content-Types that are not text/html, and remove the + temporary decompressed files before exiting with -dump or -source. - FM +* Properly handle TYPE="radio" versus TYPE="checkbox" INPUTs with NULL + or zero-length VALUEs. - FM +* Added a continuation line token for the netbsd-ncurses target - HL +* Fixed a typo in HTMIME.c in the trace output - HL +* Block predictable buffer overrun in GridText.c if a page has more + than MAXLINKS links in it. - FM +10-01-96 +* Add a Mime-Version header to the other headers in LYPrint.c so that the + 09-20-96 mods for mailing source do what they were intended to do. :) - + Hamish MacEwan (macewanh@diatp.dia.govt.nz) +09-20-96 +* Add a BASE tag to the tops of HTML source files, a la Netscape, when + mailing or downloading, and don't worry, for now, if that creates + technically invalid HTML (since Lynx copes with it as of the 09-15-96 + mods 8-). - FM +* Include Content-Type, Content-Location and Content-Base headers when + mailing HTML source on Unix. - FM +* Use .txt versus .html suffixes when submitting rendered versus HTML source + temporary files to VMS MAIL, so that transports such as PMDF will indicate + the appropriate Content-Type. - FM +09-17-96 +* Handle illegally positioned BASE tags. - FM +* Tweak of Q nesting level checks. - Pawel Wiecek + (coven@i17linuxb.ists.pwr.wroc.pl) +* Fixed typo in HTMIME.c for parsing of Pragma header. - Wilson Cheung + (wcheung@netcom.com) +* Added parsing of Set-Cookie header in HTMIME.c (see IETF ID + http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-mgmt-03.txt + for info on how to implement it's use). - FM +* Fixed typo in LYMainLoop.c for display of error message when up arrow is + pressed at the top of a document. - Hiram Lester, Jr. (hwlester@pobox.com) +09-16-96 +* Use standard ls -l parsing of LIST output for Windows_NT ftp servers in + Lynx v2.6 as in v2.5. - FM + +--- Rename of Lynx2-5FM and release as Lynx2-6 (02-Sep-1996) --- + (see CHANGES2-6, CHANGES2-5, CHANGES2-4 and CHANGES2-3) +============================================================================== diff --git a/docs/CHANGES.chartrans b/docs/CHANGES.chartrans new file mode 100644 index 00000000..d7bd8d7d --- /dev/null +++ b/docs/CHANGES.chartrans @@ -0,0 +1,204 @@ +$Id: CHANGES.chartrans,v 1.1 1997/09/07 17:04:10 tom Exp $ +$ProjectHeader: Lynx 2.7.1ac-0.89 Mon, 27 Oct 1997 12:05:04 -0700 kweide $ + +1997-09-06 + Lynx 2.7.1ac-0.61 + Several new translation tables have been added or modified recently, + associated code changes. +1997-07-25 + Lynx 2.7.1ac-0.42 +* Map charsets of the form "ibmNNN<...>" to "cpNNN<...>" in UCdomap.c + if not already recognized. Also recognize "windows-1252". +1997-07-17 + Lynx 2.7.1ac-0.35 +* Since 1997-06-29 the chartrans code (with minor changes; most relating + to functions in LYStrings.c) is part of Foteos Macrides's "fotemods" + to Lynx 2.7.1. This code ("developmet code") has been compared against + fotemods. Some functions renamed to FM's names. +* Now also include FM's recognition of &xnnnn; character references. + In general more detailed change info can be found in CHANGES.new. +1997-05-15 + Lynx 2.7.1wb+ct-0.26 +* Mods in LYMainLoop.c to not force a cache refresh on a proxy any more + when INLINE_TOGGLE, IMAGE_TOGGLE, RAW_TOGGLE are used. On the other + hand, do force a proxy cache refresh after one of the variables relevant + for content negotiation `language' or `pref_charset' has been changed + from the Options screen, if the current document is from a http, https, or + lynxcgi resource. +* Set HTTP_ACCEPT_CHARSET environment variable for the child process in + LYCgi.c if pref_charset is not NULL. +* Write a META tag with the current display character sets to + the files generated for Bookmarks, List, Info, History, and Visited Links + pages, so title strings contained in those files will (hopefully) not + get erroneously translated again. Use new function add_META_charset_to_fd() + in LUCharUtils for this purpose. +* makeuctb now sets RawUni to UCT_ENC_8BIT if not otherwise set + and if there are char values above 127. +* Change in HTuncache_current_document() to prevent caching of + UCStages info which should be discarded. Still allow caching for this + in the node_anchor for source display, so that a META tag in the parsed + HTML can influence the display after using the SOURCE '\' key. - KW +* Changed display_title() in GridText.c to not rely on sprintf() to get + the number of blanks right. There were problems with C1 characters. +* Added new lynx.cfg symbols ASSUME_CHARSET, + ASSUME_LOCAL_CHARSET, and ASSUME_UNREC_CHARSET. They are only + recognized if compiled with -DEXP_CHARTRANS. They correspond to the + command line options -assume_charset, -assume_local_charset, and + -assume_unrec_charset. + The default for ASSUME_CHARSET is iso-8859-1 (corresponding to display + character set "ISO Latin 1"). If no ASSUME_LOCAL_CHARSET is set, + the explicit or default value for ASSUME_CHARSET will also be used for + local files. ASSUME_UNREC_CHARSET has no default. See added text + in lynx.cfg. +* Changes in LYCharSets.c to HTMLSetCharacterHandling() and + HTMLSetUseDefaultRawMode() to support (hopefully) more consistent + and user-friendly handling of raw mode and its default. + +1997-05-03 + Lynx 2.7.1wb+ct-0.20 + Now always check for LYlowest_eightbit[current_char_set] + near the top of HText_appendCharacter(), to prevent writing C1 control + chars to the terminal if they are not valid as displayabable characters + according to the selected "display character set" Option. + All this should be handled earlier in processing, and this check may + disappear again for testing, but somebody asked for it... + Slightly updated some doc files. + +1997-04-12 + Lynx 2.7.1wb+ct-0.11 + Added TRACE output to UCAuto.c + Changes in LYMail.c and LYPrint.c to send Content-Transfer-Encoding + header and/or charset parameter in mail + +1997-04-08 + Lynx 2.7.1wb+ct-0.3 + New translation tables def7_uni and koi8r_uni. Use them. + Table def7 is based on RFC1345 and mnemonic,ds from ftp://dkuug.dk/i18n/ + and previous Lynx replacements in LYCharSets.c and some IPA FAQ + convention and stuff for Ethiopic and KOI8-R. It maps many of + the accented Latin characters to their unaccented counterparts. + Make def7_uni default table and associate it with us-ascii and + "7 bit approximations". + Lots of new entities from Hynek Med finally integrated. + Those include ascii characters and characters common between + Latin1 and Latin2. Let's see what happens. + Added mappings for some "smart quote" characters to several + translation tables. + Make makeuctb slightly more flexible (accept Unicode range for + mapping to single code point). + Also changes for Đ, ETH;, and ð in LYCharSets.c. + These are basically just data changes; code still hasn't progressed + much, so for example translation of ALT strings (from anything but + iso-8859-1) still doesn't work. + +1997-03-20 + Lynx 2.7ac-0.20 + merged with FM's 27bugfixes up to 1997-03-20 + +1997-03-20 + Lynx 2.7ac-0.9 + merged with FM's 27bugfixes up to 1997-03-17; adapted part of + FM's change re trademark character to the present chartrans code, + as follows: +* Modified SGML.c to handle the numeric character reference ™ as + the named entity ™ also in the non-chartrans case. The + trademark character (given by ™ or ™) will be shown as + "(TM)" as the ASCII substitution unless the current display character + has a code point for the trademark character or unless overridden by a + chartrans translation table. The code of 1997-02-25 prevented showing + the trademark sign as "(R)" but did not work in all non-chartrans + cases. - KW + +1997-03-12 + Lynx 2.7ac-0.6 + some doc changes, make compilation in src/chrtrans less verbose, + no more *.h_old backup copies. + +1997-03-12 + Lynx 2.7ac-0.5 + patch from Tom Dickey for refinement of SVr4 (ncurses) color support + +1997-03-11 + Lynx 2.7ac-0.4 + New patches from Wayne for Win32/DOS applied. + +1997-03-11 + Lynx 2.7ac-0.3 + today's 27bugfixes also merged in. + +1997-03-11 + Lynx 2.7ac-0.2 +* Merged code from Thomas E. Dickey and Jim Spath for auto configuration + and simple (SLang-like) curses color, which was based on 2.7wb+ct-0.4, + with 27bugfixes up to 1997-03-10. + +1997-03-03 + Lynx 2.7wb+ct-0.4 +* (chartrans) Minor cleanups (makeuctb.c, chrtrans/Makefile, HTPlain.c) + to enable successful compilation on Win32. + Also changes and new files from Wayne to fix FTP and enable Mail for Win32, + and to compile chartrans code. + +1997-03-03 + Lynx 2.7ct-0.8 + Lynx 2.7 chartrans + 27bugfixes up to 1997-03-02 + +1997-02-28 + Lynx 2.7ct-0.7 + Lynx 2.7 chartrans + 27bugfixes up to 1997-02-28 + small correction in SGML.c (set_chartrans_handling) + +1997-02-27 + Lynx 2.7ct-0.6 + Lynx 2.7 chartrans + 27bugfixes up to 1997-02-26 + +1997-02-26 + Lynx 2.7ct-0.5 + minor tweaks for packaging + +1997-02-26 + Lynx 2.7ct-0.4 + Ok, now really remove local configuration changes (for distribution)... + +1997-02-25 + Lynx 2.7ct-0.3 + merged with Fote's 27bugfixes up to 1997-02-25 + +1997-02-25 + Lynx 2.7ct-0.2 + Removed some local changes from userdefs.h and Makefile. + Mapping of U+fffd (replacement) to 0x00 removed from the used + iso0x table files. + +1997-02-25 + Lynx 2.7ct-0.1 + Update to work with official Lynx 2.7 distribution. + Add showing of effective charset in LYShowInfo.c even if not explicitly + given. + No showing of (TM) as (R) any more - mostly changes in LYCharUtils.c + (but these are independent of the chartrans stuff, translation routines + in LYCharUtils.c still not chartrans-ified). + Prefer HTTP-EQUIV over NAME in META tags. + Start managing changes with PRCS - the Project Revision Control System. + +1996-12-01 + lynx-patch-2.6ct-0.2.pch + Update to work with 11-30-96 Composite Patch. + Two new translation tables: cp852, windows-1250. + Compiling without -DEXP_CHARTRANS now also works... but one still has to + manually remove (comment out) first line of src/Makefile for that. + Minor changes to README files, this file. + +1996-11-29 + add-to-cp-2.6ct-0.1a.zip - install over Lynx2.6 + 11-28-96 CP. + Full files no diffs. + add-to-offi-2.6ct-0.1a.zip - install over Lynx2.6 to get 11-28-96 CP + + chartrans. Full files, no diffs. + + lynx-patch-2.6ct-0.1a.pch + Update to work with 11-28-96 Composite Patch. + +1996-11-28 + lynx-newfiles-2.6ct-0.1.{zip,tar.gz}, lynx-patch-2.6ct-0.1.pch + First packaged and announced. Works with 11-24-96 Composite Patch + from Hiram Lester. diff --git a/docs/INSTALLATION.old b/docs/INSTALLATION.old new file mode 100644 index 00000000..a73294e3 --- /dev/null +++ b/docs/INSTALLATION.old @@ -0,0 +1,399 @@ +For a description of Lynx please read the README file. + + Lynx Installation guide. + + Last Updated February 1997 + +UNIX & VMS Step 1a. + Most of the variables that you are likely to change are in the + userdefs.h file. There are a few that you must change or verify, + and a few more that you will probably want to change. The variables + that must be changed are marked as such in the userdefs.h file. + Just edit it and the changes should be straight forward. You also + should check LYMessages_en.h for tailoring the Lynx statusline + prompts, messages and warnings to requirements of your site. + + NOTE: Many of the variables in userdefs.h are now configurable in + the lynx.cfg file. Please read the lynx.cfg file as well. + Also see the example mime.types, mailcap and jumps files + in the samples subdirectory. + +UNIX & VMS Step 1b. (optional) + Set up local printers and downloaders + in the lynx.cfg file. (see lynx.cfg for details) + +UNIX & VMS Step 1c. (optional) + If your system requires the PASV FTP code instead of + the standard PORT FTP code (e.g., to deal with a + firewall) then edit WWW/Library/Implementation/HTFTP.c + and comment out line 43 like so: + /* #define LISTEN /* @@@@ Test LJM */ + On Unix you can define NOPORT in the top Makefile instead + of changing HTFTP.c + +UNIX Extra Step: !! CONFIGURATION !! + There now is a configure script which takes care of system-dependent + setting automatically. See the file README.configure for more details. + You may want to run "./configure --help" first to see what flags are + available. + + Run configure, eg "./configure", and + wait while it figures out what software is on your + computer, what type of computer and operating system + you have, etc, and then finally uses makefile.in + to produce the makefile that will get used when + you finally (later on) say "make". + + The rest of this file has not yet been updated for installation with + the configure script. The information in README.configure is newer + and should be consulted. In particular UNIX Steps 1f and 2 below should + not be necessary on most systems after "./configure" has been run + (running "make" is of course still required, but it does not reqire + specifying a system type). Other points mostly still apply. If you + need or want to make manual change in addition to the auto configuration, + note that "makefile" is now used instead of "Makefile". + +UNIX Step 1d. (WAIS support is built into Lynx for VMS, skip to step 1e) + Adding Direct WAIS support. + Get the freeWAIS distribution from: + ftp://ftp.cnidr.org/pub/NIDR.tools/freewais + and compile it. The compile process will create some libraries, you will + need wais.a and client.a. Edit the Makefile in the top level directory + and add the library locations under the DIRECT WAIS ACCESS heading. + Edit the Makefile for the WWW Library in the + WWW/Library/Implementation/CommonMakefile to make the WAIS.c sources + in the library. If everything goes well you should + be able to make and have direct WAIS access. + +UNIX & VMS Step 1e. + Adding NEWS support. + To set your site's NTTP server as the default host for news reading + and posting via Lynx, set the environment variable NNTPSERVER so that + it points to its Internet address (see Step 5). + + For news posting ability to be enabled in Lynx, in userdefs.h (and + optionally in lynx.cfg) the NEWS_POSTING symbol must be defined to + TRUE. Also define LYNX_SIG_FILE in usersdefs.h or lynx.cfg so that + it points to users' signature files for appending to posted messages. + For the Organization: header in news postings, Lynx checks for an + ORGANIZATION or NEWS_ORGANIZATION environment variable. On Unix, + Lynx also checks for an /etc/organization file. + +UNIX Step 1f. (Sun systems) + Sun resolv library. + On Sun systems you may need to define RESOLVLIB in the top Makefile + to enable access to remote hosts. See the comments in the Makefile + and PROBLEMS file for more information. + +VMS Step 1f. + Downloading binary files. + Lynx must handle all IO as streams, and on VMS, output files are always + created with Stream_LF format via the C RTL's fopen(). The file headers + indicate Implied Carriage Control, even when the transfer was in binary + mode, which can confuse downloading software and cause corruption of + the file contents. To deal with this, you should define the symbol + USE_FIXED_RECORDS as TRUE in userdefs.h and/or lynx.cfg. This will + instruct Lynx to correct the header information to indicate FIXED 512 + records, with No Implied Carriage Control. If Lynx fails to do the + conversion (because the file wasn't mapped to a binary MIME type) you can + execute FIXED512.COM externally to correct the header information. The + command file uses Joe Meadow's FILE utility, or the SET FILE/ATTRIBUTES + command on current versions of VMS, to modify the headers. See the + comments in FIXED512.COM, userdefs.h and lynx.cfg for more information. + + +UNIX Step 2. + VMS users skip to 'VMS step 2' + + Check the top level Makefile for any site-specific definitions + you require or desire. Then, you should be ready to compile! + + If you type "make" with no arguments you will see a list of + supported systems. If your system type IS listed you just + need to type "make SYSTEM_TYPE". For instance, if you are + running under IBM's RS/6000 AIX 3.2 you would just type + "make aix32". If you were running Ultrix you would type + "make ultrix". + + If you are on a SUN workstation and do not have 'gcc' you + may change 'gcc' to '/usr/5bin/cc' in the Makefile + + If you are on a system that is not listed in the makefile it may be + more difficult. The first thing you should try is just "make generic", + this will compile with the "fancy_curses" option, and will give a much + nicer screen display. If it doesn't compile or if the screen display + looks strange (real strange), try compiling with the "low_curses" option. + Edit the Makefile and remove the '-DFANCY_CURSES' definition under the + 'generic:' entry. There may be some compatibility problems on some + systems, but we don't know what they might be at this point. If you + are running on a currently unsupported system please contact us via + the lynx-dev email list (see RELEASE_STATEMENT). If there are any + problems we will try to fix them as soon as possible. + +VMS step 2. + Lynx uses the VMS port of gzip for uncompressing streams which have + Content-Encoding headers indicated compression with gzip or the + Unix compress. If you do not have gzip installed on your system + you can get it from ftp://ftp.wku.edu/ in the fileserv directory. + The command Lynx uses to uncompress on VMS is "gzip -d". + + If you are using the SOCKETSHR library, read SOCKETSHR.announce and + make sure you have defined SOCKETSHR and SOCKETSHR_LIBRARY as explained + therein. + + A "build.com" and "build-slang.com" script for building Lynx with curses + or slang is in the top level directory. All you have to do is type + "@build" or "@build-slang" and answer its prompt for your system's TCP-IP + software. Current choices are: + MULTINET (default) + UCX + WIN_TCP + CMU_TCP + SOCKETSHR_TCP + TCPWARE + It will autosense whether you have VAXC, DECC or GNUC on VAX or AXP + and build appropriately. If a WWWLib already exists for that TCP-IP + software, it will prompt you for whether you want to rebuild it. If + you want to build a WWWLib separately, you can type "@libmake.com" + with your default directory set to [.WWW.Library.vms] instead doing + it via "build.com" in the top directory. You may need to modify + "build-slang.com", as described in its header, so that it can find + slang.olb on your system. If you have both DECC and VAXC, it will + use DECC to benefit from the newer and more efficient memory management + functions. + + (optional compilation method) + If you have and want to use MMS, read the header of descrip.mms + in the top directory and be sure you include the appropriate macro + definitions when you invoke it: + $ MMS /Macro = (MULTINET=1) for VAXC - MultiNet + $ MMS /Macro = (WIN_TCP=1) for VAXC - Wollongong TCP/IP + $ MMS /Macro = (UCX=1) for VAXC - UCX + $ MMS /Macro = (CMU_TCP=1) for VAXC - OpenCMU TCP/IP + $ MMS /Macro = (SOCKETSHR_TCP=1) for VAXC - SOCKETSHR/NETLIB + $ MMS /Macro = (TCPWARE=1) for VAXC - TCPWare TCP/IP + + $ MMS /Macro = (MULTINET=1, DEC_C=1) for DECC - MultiNet + $ MMS /Macro = (WIN_TCP=1, DEC_C=1) for DECC - Wollongong TCP/IP + $ MMS /Macro = (UCX=1, DEC_C=1) for DECC - UCX + $ MMS /Macro = (CMU_TCP=1, DEC_C=1) for DECC - OpenCMU TCP/IP + $ MMS /Macro = (SOCKETSHR_TCP=1,DEC_C=1) for DECC - SOCKETSHR/NETLIB + $ MMS /Macro = (TCPWARE=1, DEC_C=1) for DECC - TCPWare TCP/IP + + $ MMS /Macro = (MULTINET=1, GNU_C=1) for GNUC - MultiNet + $ MMS /Macro = (WIN_TCP=1, GNU_C=1) for GNUC - Wollongong TCP/IP + $ MMS /Macro = (UCX=1, GNU_C=1) for GNUC - UCX + $ MMS /Macro = (CMU_TCP=1, GNU_C=1) for GNUC - OpenCMU TCP/IP + $ MMS /Macro = (SOCKETSHR_TCP=1,GNU_C=1) for GNUC - SOCKETSHR/NETLIB + $ MMS /Macro = (TCPWARE=1, GNU_C=1) for GNUC - TCPWare TCP/IP + + If you just type "MMS" it will default to the MULTINET and VAXC + configuration. MMS will build the WWW library and Lynx sources, + and link the executable. However, not all of the header dependencies + are specified. If you are not a developer, and need a clean build, + you should use build.com instead of the MMS utility. + + If you want SOCKS support on VMS, you must add SOCKS as a compilation + definition, and the SOCKS library to the link command. However, instead + of SOCKSifying Lynx for use behind a firewall, you are better off if you + build Lynx normally, and set up Lynx to use a proxy server (see below). + You instead can SOCKSify the proxy server, and it will handle all clients, + not just Lynx. + + +UNIX Step 3. + Go ahead and test it out with the about_lynx/about_lynx.html file. + You shouldn't need to install Lynx to test it. + Once you are satisfied that it works, go ahead and install it. + + VERY IMPORTANT!!!!! + If you are setting up an anonymous account with Lynx you + are strongly advised to use the -anonymous command line + option. If you do not use this option, users may be able + to gain access to all readable files on your machine. + ALSO NOTE that many implementations of telnetd allow passing + of environment variables, which might be used by unscrupulous + people to modify the environment in anonymous accounts. When + making Lynx and Web access publicly available via anonymous + accounts intended to run Lynx captively, be sure the wrapper + uses the -cfg switch and specifies the startfile, rather than + relying on the LYNX_CFG, LYNX_CFG_FILE, or WWW_HOME variables. + +VMS Step 3. + Go ahead and test it out with the [.about_lynx]about_lynx.html file. + You shouldn't need to install Lynx to test it. + Once you are satisfied that it works, go ahead and install it. + + VERY IMPORTANT!!!!! + If you are setting up an anonymous account with Lynx you + are strongly advised to use the -anonymous command line + option. If you do not use this option, users will be able + to gain access to all readable files on your machine. + ALSO NOTE that some implementations of telnet allow passing + of environment variables, which might be used by unscrupulous + people to modify the environment in anonymous accounts. When + making Lynx and Web access publicly available via anonymous + accounts intended to run Lynx captively, be sure the wrapper + uses the -cfg switch and specifies the startfile, rather than + relying on the LYNX_CFG, LYNX_CFG_FILE, or WWW_HOME variables. + + +UNIX Step 4. (Installation) + Lynx is very easy to install, if you want Lynx installed anywhere + besides "/usr/local/bin", with the man files in "/usr/man/man1", you + need to edit the Makefile and change the "exec" and "doc" defines. + Otherwise just "su" to root and type "make install" and make will + copy "lynx", "lynx.cfg" and "lynx.1" to the specified directories. + Those are the only two files necessary to run Lynx. + lynx.1 isn't really necessary, but it should be available. + lynx.cfg isn't absolutely necessary either but is the only way + to configure printers and downloaders (and uploaders if DIRED_SUPPORT + is implemented), so it is highly recommended. + Also check out the mailcaps, mime.types and jumps file samples in the + samples directory. + +VMS Step 4. + You need to have the executable in a public place, make it accessible, + define it as a foreign command, and copy lynx.cfg to "Lynx_Dir". Look + at lynx.com in the samples directory as a model for installing Lynx. + Also check out the mailcaps, mime.types and jumps file samples in the + samples directory. To include lynx.hlp in the system HELP library, + use the command: + + $ library/replace sys$help:helplib.hlb lynx.hlp + + +UNIX and VMS Step 5. + Lynx uses some environment variables to regulate it's behavior. + + The variable "NNTPSERVER" is used to specify the host which will + be used as the default for news URLs. + + UNIX + setenv NNTPSERVER "news.server.dom" + + VMS + define/system NNTPSERVER "news.server.dom" + + + The environment variables "ORGANIZATION" or "NEWS_ORGANIZATION", if set, + will be used for the Organization: header in news postings. + + + The environment variable "LYNX_CFG", if set, will override the default + location and name of the global configuration file (lynx.cfg) that was + defined via the constant "LYNX_CFG_FILE" in userdefs.h. See userdefs.h + for more information. + + + The environment variable "LYNX_TEMP_SPACE", if set, will override the + default path prefix for temporary files that was defined via the constant + "TEMP_SPACE" in userdefs.h. See userdefs.h for more information. + + + The environment variable "LYNX_SAVE_SPACE", if set, will override the + default path prefix for files saved to disk that was defined via the + constant "SAVE_SPACE" in lynx.cfg. See lynx.cfg for more information. + + + The variable "WWW_HOME", if set, will override the default startup + URL specified in any of the configuration files. + + + Lynx still supports use of gateway servers, with the servers specified + via the variables "WWW_access_GATEWAY", where "access" is lower case + and can be "http", "ftp", "gopher" or "wais". Most of the gateway + servers have been discontinued, but "http://www.w3.org:8001" is + available for wais searches (note that you do not include a terminal + '/' for gateways, but do for proxies; see below). + + + Lynx version 2.2 and beyond supports the use of proxy servers that can + act as firewall gateways and caching servers. They are preferable to + the older gateway servers. Each protocol used by Lynx can be mapped + separately using PROTOCOL_proxy environment variables of the form: + + UNIX + setenv http_proxy "http://some.server.dom:port/" + setenv https_proxy "http://some.server.dom:port/" + setenv ftp_proxy "http://some.server.dom:port/" + setenv gopher_proxy "http://some.server.dom:port/" + setenv news_proxy "http://some.server.dom:port/" + setenv newspost_proxy "http://some.server.dom:port/" + setenv newsreply_proxy "http://some.server.dom:port/" + setenv snews_proxy "http://some.server.dom:port/" + setenv snewspost_proxy "http://some.server.dom:port/" + setenv snewsreply_proxy "http://some.server.dom:port/" + setenv nntp_proxy "http://some.server.dom:port/" + setenv wais_proxy "http://some.server.dom:port/" + setenv finger_proxy "http://some.server.dom:port/" + setenv cso_proxy "http://some.server.dom:port/" + + VMS + define "http_proxy" "http://some.server.dom:port/" + define "https_proxy" "http://some.server.dom:port/" + define "ftp_proxy" "http://some.server.dom:port/" + define "gopher_proxy" "http://some.server.dom:port/" + define "news_proxy" "http://some.server.dom:port/" + define "newspost_proxy" "http://some.server.dom:port/" + define "newsreply_proxy" "http://some.server.dom:port/" + define "snews_proxy" "http://some.server.dom:port/" + define "snewspost_proxy" "http://some.server.dom:port/" + define "snewsreply_proxy" "http://some.server.dom:port/" + define "nntp_proxy" "http://some.server.dom:port/" + define "wais_proxy" "http://some.server.dom:port/" + define "finger_proxy" "http://some.server.dom:port/" + define "cso_proxy" "http://some.server.dom:port/" + (Encase *BOTH* strings in double-quotes to maintain + lower case for the PROTOCOL_proxy variable and for + the http access type; include /system if you want + proxying for all clients on your system.) + + If you wish to override the use of a proxy server for specific hosts or + entire domains you may use the "no_proxy" environment variable. Here is + an example use of "no_proxy": + + UNIX + setenv no_proxy "host.domain.dom, domain1.dom, domain2" + + VMS + define "no_proxy" "host.domain.dom, domain1.dom, domain2" + + You can include a port number in the no_proxy list to override use + of a proxy server for the host accessed via that port, but not via + other ports. For example, if you use "host.domain.dom:119" and/or + "host.domain.dom:210", then news (port 119) URLs and/or any wais + (port 210) searches on that host would be excluded, but http, ftp, + and gopher services (if normally proxied) would still be included, + as would any news or wais services on other hosts. + + If you wish to override the use of a proxy server completely (i.e., + globally override any existing proxy variables), set the value of + "no_proxy" to "*". + + Note that Lynx treats file URLs on the local host as requests for + direct access to the file, and does not attempt ftp if that fails. + It treats both ftp URLs and file URLs on remote hosts as ftp URLs, + and does not attempt direct file access for either. If ftp URLs are + being proxied, file URLs on a remote host will be converted to ftp + URLs before submission by Lynx to the proxy server, so no special + procedure for inducing the proxy server to handle them is required. + Other WWW clients may require that the http server's configuration + file have "Map file:* ftp:*" in it to perform that conversion. + + The proxy and no_proxy variables also can be set at run time via + lynx.cfg. + + Copies of the Lynx online help are included in the lynx_help + subdirectory tree and should be made accessible in response to + the Lynx 'h'elp command by defining HELPFILE in userdefs.h and/or + lynx.cfg to an appropriate file://localhost/path URL. + + +UNIX & VMS Step 6. (Hopefully Optional) + If something doesn't work, or you can't get it to compile at all, or + you can't figure out what one of the defines means, or if you just + want to make a comment, send an email message to the Lynx-Dev mailing + list (see the README file about subscribing to Lynx-Dev). Until Lynx + has been ported to all the world's operating systems, we expect there + will be some compatibility problems, but we'll do our best to help you. diff --git a/docs/Makefile.old b/docs/Makefile.old new file mode 100644 index 00000000..7d44f84c --- /dev/null +++ b/docs/Makefile.old @@ -0,0 +1,1106 @@ +##makefile for lynx + +SHELL = /bin/sh + +##uncomment the next line if your make fails to set $(MAKE) +#MAKE= make + +##this is the name of the directory the lynx source code is in. +##(e.g. lynx2-7-1, not the full path) +lynxdir= lynx2-7-1 + +##this is the filename for .zip, .tar and .tar.Z archives. +lynxname= lynx2-7-1 + +##change the next line if you want lynx installed somewhere +##besides /usr/local/bin +exec= /usr/local/bin + +##change the next line if you want the lynx man file installed somewhere +##besides /usr/local/man/man1 +doc= /usr/local/man/man1 + +##change the next line if you want the lynx.cfg file installed somewhere +##besides /usr/local/lib +cfg= /usr/local/lib + +installbin= install -c -s -m 755 +installdoc= install -c -m 444 + +##set the relative location of the WWW library Implementation directory, +##from this directory +##do not set this to be an absolute path!!! +WWWINC= WWW/Library/Implementation + +# !!!!!!!!!!! SUN resolv LIBRARY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# To include resolv in the LIBS="" list for SUN 3, 4 or Solaris OS, +# point RESOLVLIB to that library. You need this if you get the message +# "Alert!: Unable to connect to remote host" whenever you try to +# access a host other than localhost and have made Lynx without it. +# See the PROBLEMS file for more information. +#RESOLVLIB= -lresolv + +# !!!!!!!!!!! Alternate socket functions for SOCKS !!!!!!!!!!!!!!!!!! +# To make a SOCKSified lynx, include -DSOCKS in your SITE_LYDEFS and +# SITE_DEFS, below, and point SOCKSLIB to your SOCKS library. Note +# that you may have problems accessing FTP servers. Also, instead of +# SOCKSifying lynx for use behind a firewall, you are better off if +# you make it normally, and set it up to use a proxy server. You can +# SOCKSify the proxy server, and it will handle all clients, not just +# Lynx (see the INSTALLATION file in this distribution). If your SOCKS +# server was compiled to use the short version of Rbind, also include +# -DSHORTENED_RBIND in your SITE_LYDEFS and SITE_DEFS. If you do +# SOCKSify lynx, you can turn off SOCKS proxy usage via a -nosocks +# command line switch. +#SOCKSLIB= /usr/local/lib/libsocks.a + +# !!!!!!!!!!!!! DIRECT WAIS ACCESS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# If you are adding direct wais access you must fill in the +# location of wais.a, client.a and the standard math library, libm.a. +# You can pick up the most current freeWAIS sources from +# ftp://ftp.cnidr.org/pub/NIDR.tools/freewais +# If you are using freeWAIS-0.202 or older, include -DDECLARE_WAIS_LOGFILES +# in your SITE_DEFS. +# Plese put an ABSOLUTE address here if you want it to work! +#WAISLIB= ../../freeWAIS-0.202/bin/client.a ../../freeWAIS-0.202/bin/wais.a /usr/lib/libm.a + +# !!!!!!!!!!!!! SLANG Support (For color version of Lynx). !!!!!!!!!!!!!!!! +# The slang library is an alternative to curses, developed by John E. Davis +# (davis@space.mit.edu). Version 0.99-27 or higher is available from +# ftp://space.mit.edu/pub/davis +# It provides color support for Lynx. If you wish to try it and are not +# on a supported system (see list, below), include -DUSE_SLANG in your +# SITE_DEFS and define the locations of the slang library (libslang.a) +# and headers (slang.h and slcurses.h) here. They may be left commented +# out if the library and headers are in their canonical locations (usr/lib, +# and usr/include). +#SLANGINC = -I../../slang/src# location of slang.h and slcurses.h +#SLANGLIB = -L../../slang/src/$(ARCH)objs# location of libslang.a +#SLANGRRLIB = -R../../slang/src/$(ARCH)objs# for solaris + +# !!!!!!!!!!! Support for Character Styles !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# Comment out the following lines if you do *not* want to activate +# Rob Partington's Character Style color support code (which may currently +# only work with ncurses, not other curses or the slang library). +# Or modify and experiment... -kw +# RP_LYDEFS = -I../../../src -DUSE_COLOR_STYLE -DUSE_HASH +# RP_DEFS = -DUSE_COLOR_STYLE -DUSE_HASH + +# !!!!!!!!!!! Lynx Local Directory Listing Formats !!!!!!!!!!!!!!!!!!!!!!!!!!! +# Lynx supports "ls -l" format for local directory listings on Unix if the +# LONG_LIST compilation symbol is defined, and includes links to the parent +# directory if the compilation symbol NO_PARENT_DIR_REFERENCE is not defined. +# If "ls -l" format is enabled here, the listing format can be modifed via a +# LIST_FORMAT symbol in userdefs.h and/or lynx.cfg. Otherwise, only file and +# directory names will be included in the listings. +# +# If you are not including DirEd Support (see below) and wish to disable +# "ls -l" emulation in local directory listings, prepend "#" to this line: +DIR_LONG_LIST = -DLONG_LIST +# +# To disable "Up to" parent links in local directory listings, +# remove "#" from this line: +#DIR_PARENT = -DNO_PARENT_DIR_REFERENCE + +# !!!!!!!!!!! Lynx DirEd Support !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# Lynx now supports directory editing (DirEd) for local directories. +# This allows users to do things like view, copy, & remove files using +# a tabular display of the directory & single-keystroke commands instead +# of using the command line. From inside Lynx, the keystroke sequence +# "g.<enter>" switches Lynx to DirEd mode on the current directory. +# If you're building a Lynx that is to be used as a kind of restricted +# shell for users who do not have access to the command line & should +# not have access to equivalent capabilities, you need to disable DirEd +# here. You can also disable some DirEd functions while allowing others. +# +# DirEd functions are disabled by inserting or removing "#" signs at +# the beginnings of lines that contain variable assignments here. +# All DirEd functions that were enabled on compilation can be disabled +# or modified at run time via DIRED_MENU symbols in lynx.cfg. +# +# To disable DirEd completely, prepend "#" to this line: +DIRED_SUPPORT = -DDIRED_SUPPORT +#(If you have disabled DirEd completely, you can ignore all the +#other DirEd stuff here.) +# +# To prevent DirEd from extracting files from an archive file, +# remove "#" from this line: +#DIRED_ARCHIVE = -DARCHIVE_ONLY +# +# To prevent DirEd from using the tar program, prepend "#" to this line: +DIRED_TAR = -DOK_TAR +# +# To prevent DirEd from using zip & unzip, prepend "#" to this line: +DIRED_ZIP = -DOK_ZIP +# +# To prevent DirEd from using gzip & gunzip, prepend "#" to this line: +DIRED_GZIP = -DOK_GZIP +# +# To prevent DirEd from using uudecode, prepend "#" to this line: +DIRED_UUDECODE = -DOK_UUDECODE +# +# Lynx users can customize their keymaps by creating private versions +# of lynx.cfg & modifying them, overriding the default keymap. +# To prevent DirEd keymap overriding, prepend "#" to this line: +DIRED_OVERRIDE = -DOK_OVERRIDE +# +# To prevent DirEd from changing the permissions on directories or files +# (i.e. from doing what the Unix chmod command or the DOS attrib command +# does), prepend "#" to this line: +DIRED_PERMIT = -DOK_PERMIT +# +# If you do not comment out the DIRED_PERMIT line, but want to restrict +# changes of the eXecute permission to directories (i.e., not allow it to +# be changed for files), remove "#" from this line (if you don't remove it, +# you can still block changes of the eXecute permission for files but not +# directories via the "change_exec_perms" command line restriction): +#DIRED_NOXPERMS = -DNO_CHANGE_EXECUTE_PERMS + +# !!!!!!!!!!! NOTE: NetBSD and FreeBSD !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# On NetBSD 1.1 and earlier, as well as FreeBSD 2.0.5 and earlier, +# the system make program uses different syntax for including files +# than the GNU make program. If you get the following error -- +# * "Makefile", line 27: Need an operator * +# you have several choices to run GNU make: +# +# * Install GNU make as `/usr/bin/make', after moving /usr/bin/make +# to /usr/bin/old-make +# +# * Install GNU make in a different directory which is earlier in +# your search path. +# +# * Install GNU make as gmake, and change occurrences of `make' to +# `gmake' in any Makefile used by your install. You won't need to +# change all of the Makefiles, just the top-level one, and the one +# in WWW/Library/???bsd + +# !!!!!!!!!!! Lynx Wishful Thinking !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# If you are on one of the supported systems (see all: list below) +# you should not have to modify anything from here down (but check +# it out for your system, anyway)! +# If you are not, then you should edit the generic: entry below. +# +# If you need ncurses, the latest version can always be found in +# ftp://ftp.clark.net/pub/dickey/ncurses/ +# or ftp://ftp.netcom.com/pub/zm/zmbenhal/ncurses/ +# (you may need -DHAVE_NCURSES_H in addition to -DNCURSES for old +# versions of ncurses; see below). +# +# Also be sure to check out the compilation symbols in userdefs.h +# before building Lynx! + +all: + @echo + @echo "Please run make with one of the following arguments" + @echo "aix4 -- for RS/6000 running AIX 4.n and some 3.2" + @echo "aix32 -- for RS/6000 running AIX 3.2" + @echo "aix31 -- for RS/6000 running AIX 3.1 with curses bug" + @echo "apollo -- apollo systems (untested)" + @echo "bsdi -- BSD Interactive" + @echo "bsdi-ncurses -- BSD/OS(v2.0 or later) using ncurses(v1.9.4 or later) package." + @echo "bsdi-slang -- BSD/OS(v2.0 or later) using the slang package." + @echo "clix -- for Intergraph CLIX" + @echo "convex -- for Convex C-series" + @echo "convex-ncurses -- for Convex C-series with ncurses package" + @echo "dgux -- for DGUX " + @echo "freebsd -- for FreeBSD" + @echo "freebsd-ncurses -- for FreeBSD using ncurses package" + @echo "freebsd-slang -- for FreeBSD with color slang package" + @echo "generic -- for generic UNIX" + @echo "isc -- for Interactive Machines (untested)" + @echo "linux -- for PC linux" + @echo "linux-ncurses -- for PC linux using ncurses package" + @echo "linux-slang -- for linux with color slang package" + @echo "mips -- for MIPS, svr3/bsd flavour (untested)" + @echo "netbsd -- for NetBSD" + @echo "netbsd-ncurses -- for NetBSD using ncurses package" + @echo "news -- for SONY NEWS-OS 4.2.1R" + @echo "news-ncurses -- for SONY NEWS-OS 4.2.1R using ncurses package" + @echo "news-slang -- for SONY NEWS-OS 4.2.1R with color slang package" + @echo "next -- for NeXT OS" + @echo "next-ncurses -- for NeXT OS using ncurses package" + @echo "osf -- for Alpha OSF/1" + @echo "osf-slang -- for Alpha OSF/1 with color slang package" + @echo "ptx -- for Sequent's DYNIX/ptx, version 4, (current version)" + @echo "ptx-slang -- for Sequent's DYNIX/ptx, version 4, with color slang package" + @echo "ptx -- for Sequent's DYNIX/ptx, current version" + @echo "ptx2 -- for Sequent's DYNIX/ptx, version 2" + @echo "riscos -- Control Data Unix machine running EP/IX" + @echo "sco -- for SCO machines" + @echo "sco5 -- for SCO OpenServer Release 5 machines" + @echo "sgi -- for SGI machines" + @echo "sun3 -- for SUN 3 OS with System V curses" + @echo "sun4 -- for SUN 4 OS with System V curses" + @echo "sun4-ncurses -- for SUN 4 OS using ncurses package" + @echo "sun4-pure -- for SUN 4 OS with PURIFY and System V curses" + @echo "sun4-slang -- for SUN 4 OS with color slang package" + @echo "svr4 -- for SVR4" + @echo "snake -- for HP-UX lt 9.01 (gcc)" + @echo "snake-slang -- for HP-UX lt 9.01 (gcc) with color slang" + @echo "snake2 -- for HP-UX gte 9.01 (gcc)" + @echo "snake2-slang -- for HP-UX gte 9.01 (gcc) with color slang" + @echo "snake3 -- for HP-UX (purchased compiler)" + @echo "snake3-slang -- for HP-UX (purchased compiler) with color slang" + @echo "solaris2 -- for solaris 2.x" + @echo "solaris2cc -- for Solaris 2.x using Sun's unbundled C compiler" + @echo "solaris2-slang -- for Solaris 2 and color slang package" + @echo "solaris2-slangcc -- for Solaris 2 slang using Sun's unbundled C compiler" + @echo "ultrix -- for DEC Ultrix" + @echo "decstation -- for DEC Ultrix (same as ultrix)" + @echo "ultrix-slang -- for DEC Ultrix and color slang package" + @echo "decstation-slang -- for DEC Ultrix and color slang (same as ultrix-slang)" + @echo "umaxv -- for Encore's UMAXV (SVR3.x) " + @echo "umaxv-slang -- for Encore's UMAXV and color slang package" + @echo "unixware -- for Novell's Unixware" + @echo "univell -- for Novell's Unixware" + @echo "unixware-slang -- for Unixware and color slang package" + @echo "univell-slang -- for Unixware and color slang package" + @echo "clean -- removes all '.o' and 'core' files" + @echo "tar -- runs clean, removes executable, and tars the whole directory" + @echo "compress -- runs tar, then compresses the result" + @echo "zip -- runs clean, removes executable, and zips the whole directory" + @echo + +# Map some extra commands to existing ones +unix: generic +decstation: ultrix +decstation-slang: ultrix-slang +univell: unixware +univell-slang: unixware-slang + +DIR_LYDEFS = $(DIRED_SUPPORT) $(DIR_LONG_LIST) $(DIR_PARENT) + +DIR_DEFS = $(DIRED_SUPPORT) $(DIRED_ARCHIVE) $(DIRED_TAR) $(DIRED_ZIP) $(DIRED_GZIP) $(DIRED_UUDECODE) $(DIRED_OVERRIDE) $(DIRED_PERMIT) $(DIRED_NOXPERMS) + +# If you apply patches which require linking to site-specific libraries, +# uncomment the following and point SITE_LIBS to those libraries. +#SITE_LIBS= # Your libraries here (remove the "#") + +# Set SITE_LYDEFS to one or more of the defines for the WWW Library: +SITE_LYDEFS = $(DIR_LYDEFS) $(RP_LYDEFS) -DEXP_CHARTRANS # Your defines here + +# Set SITE_DEFS to one or more of the defines for lynx below: +SITE_DEFS = $(DIR_DEFS) $(RP_DEFS) -DEXP_CHARTRANS -DNSL_FORK -DLYNXCGI_LINKS -DUSE_EXTERNALS # Your defines here + +# if you are compiling on a previously unsupported system, modify +# this generic entry!! +# +# defines include: +# -DNO_CUSERID if you don't have cuserid() +# -DNO_UTMP if you don't have utmp capibilities +# -Dvfork=fork if you don't have vfork() +# -DMMDF if you use MMDF instead of sendmail +# -DFANCY_CURSES enables fancy curses (bold, underline, reverse) +# -DCOLOR_CURSES enables color in SVr4 curses & clones such as ncurses +# -DNCURSES for ncurses support (also indicate the LIBS path) +# -DHAVE_NCURSES_H seek ncurses.h instead of ncurses/curses.h in LYCurses.h +# -DNO_KEYPAD if you don't have keypad() and related defines +# -DNO_SIZECHANGE Disables window sizechange code +# -DNO_CPU_LIMIT Disables Max CPU timeout (includes CLOCKS_PER_SECOND) +# -DNO_PUTENV Define if you don't have a putenv call. +# -DNO_CBREAK if you don't have cbreak() (use crmode() instead) +# -DUNDERLINE_LINKS Define if you want links underlined instead of bold. +# -DIGNORE_CTRL_C Define if Control-C shouldn't exit lynx. +# -DHP_TERMINAL For DIM workaround to REVERSE problems on HP terminals. +# -DLOCALE For LOCALE support for international characters. +# -DSOCKS For making a SOCKSified lynx. +# -DSHORTENED_RBIND For a SOCKSified lynx with the short version of Rbind. +# -DNO_UNISTD_H if you don't have <unistd.h> +# -DNOPORT if you must use PASV instead of PORT for FTP +# -DNO_TTYTYPE if your system lacks a ttytype variable +# -DNSL_FORK For fork-based name server lookups that can be 'z'apped. +# -DEXP_CHARTRANS enable chartrans support w/ new charsets, UTF8 mode etc. +# (needed in SITE_DEFS *and* SITE_LYDEFS !) +# -DEXP_CHARTRANS_AUTOSWITCH also let lynx switch term mode(Linux console only) +# -DSLANG_MBCS_HACK prevent cutoff lines when using UTF8 console (slang only) +# -DUSE_ZLIB To use some functions from zlib library if you have it. +# +# if you are linking to freeWAIS-0.202 or older, you should define this +# in MCFLAGS (SITE_DEFS) +# +# -DDECLARE_WAIS_LOGFILES +# +# if you have the reverse clear screen problem of some SUN4 systems you +# should define this in MCFLAGS (SITE_DEFS) +# +# -DREVERSE_CLEAR_SCREEN_PROBLEM +# +# if you have an SVR4 system with the "type any key" problem, try defining +# this in LYFLAGS (SITE_LYDEFS) and MCFLAGS (SITE_DEFS) +# +# -DSVR4_BSDSELECT +# +# Old Data General systems may need this in their SITE_LYDEFS +# for their inet_addr(host) calls. +# +# -DDGUX_OLD +# +# if you would like logging of client requests via syslog(), you should +# define this in MCFLAGS (SITE_DEFS) +# +# -DSYSLOG_REQUESTED_URLS +# +# if you would like to enable code to detect memory leaks define this in both +# LYFLAGS (SITE_LYDEFS) and MCFLAGS (SITE_DEFS) +# +# -DLY_FIND_LEAKS +# +# for installation of local execution links, please see the file userdefs.h + +#generic machines with original Berkeley curses +generic: + @echo "You must first compile the WWW library in WWW/Library" + cd WWW/Library/unix; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/unix/libwww.a" + +# Contributed by Alex Matulich (matuli_a@marlin.navsea.navy.mil). +# Note that some of the online help files in this distribution need +# to be edited and renamed to conform with the Intergraph CLIX 14 +# character file name limit. +clix: + cd WWW/Library/clix; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX -DUSG \ + -DCLIX -DNO_UTMP \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lmalloc -lcurses -ltermcap -lbsd -lc_s \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/clix/libwww.a" + +# Tested on C3 series under ConvexOS 10.1, CC V5.0; +# Should work on other C-series +convex: + cd WWW/Library/convex; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O \ + -D__STDC__ \ + -DNO_PUTENV -DNO_CBREAK -DNO_KEYPAD -DUSE_DIRENT -DUNIX \ + -DSTDC_HEADERS -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/convex/libwww.a" + +convex-ncurses: + cd WWW/Library/convex; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O \ + -I/usr/local/include \ + -DNCURSES -DCOLOR_CURSES -DFANCY_CURSES \ + -D__STDC__ \ + -DNO_PUTENV -DNO_CBREAK -DUSE_DIRENT -DUNIX \ + -DSTDC_HEADERS -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/local/lib -lncurses \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/convex/libwww.a" + +# You may need to remove -DUTMPX_FOR_UTMP for some versions of DGUX. +dgux: + cd WWW/Library/unix; $(MAKE) LYFLAGS="-DDGUX $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -I../$(WWWINC) -DDGUX -DUTMPX_FOR_UTMP $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap -lsocket -lnsl \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/unix/libwww.a" + +mips: + cd WWW/Library/mips; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-systype svr3 -O \ + -DFANCY_CURSES -DUNIX -I/svr3/usr/include/bsd \ + -I../$(WWWINC) -DNO_UTMP $(SITE_DEFS)" \ + LIBS="-lcurses -lnsl -lbsd \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/mips/libwww.a" + +# FreeBSD doesn't have or need ranlib. (ignore the error message about that :) +freebsd: + cd WWW/Library/freebsd; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX -DNO_KEYPAD -DNO_CUSERID \ + -I../$(WWWINC) $(SITE_DEFS)"\ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/freebsd/libwww.a" + +# FreeBSD doesn't have or need ranlib. (ignore the error message about that :) +freebsd-ncurses: + cd WWW/Library/freebsd; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all MCFLAGS="$(CFLAGS) -DFANCY_CURSES -DCOLOR_CURSES -DNCURSES \ + -DHAVE_NCURSES_H -DUNIX -DNO_TTYTYPE -DNO_CUSERID -DLOCALE \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lncurses -lmytinfo \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/freebsd/libwww.a" + +# FreeBSD doesn't have or need ranlib. (ignore the error message about that :) +freebsd-slang: + cd WWW/Library/freebsd; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all MCFLAGS="$(CFLAGS) -DUSE_SLANG -DUNIX \ + -DNO_TTYTYPE -DNO_CUSERID -DLOCALE \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="$(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/freebsd/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang -ltermcap -lm" \ + SLANGINC="$(SLANGINC)" + +# NetBSD doesn't have or need ranlib. (ignore the error message about that :) +netbsd: + cd WWW/Library/netbsd; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX -DNO_KEYPAD -DNO_CUSERID \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/netbsd/libwww.a" + +# NetBSD doesn't have or need ranlib. (ignore the error message about that :) +netbsd-ncurses: + cd WWW/Library/netbsd; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DCOLOR_CURSES -DNCURSES \ + -DUNIX -DNO_CUSERID -I../$(WWWINC) $(SITE_DEFS) \ + -I/usr/include/ncurses" \ + LIBS="-lncurses -lcompat \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/netbsd/libwww.a" + +# Tested on DN 3500 & 4500's running Domain O/S 10.4 BSD +# -Acpu,mathchip may have to be changed on other machines - see man cpuhep +apollo: + cd WWW/Library/apollo_m68k; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX -DNO_KEYPAD -DNO_CUSERID \ + -D_BUILTINS -W0,-opt,4 -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/apollo_m68k/libwww.a $(MYWWWLIB)" + +riscos: + cd WWW/Library/unix; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -DNO_GETCWD -DNO_PUTENV -Dremove=unlink \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/unix/libwww.a" + +# Lynx will not compile with the "free" cc compiler supplied +# with HP-UX. You must use a purchased cc compiler to compile Lynx. +snake: + cd WWW/Library/snake; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -DSNAKE -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/snake/libwww.a" + +snake-slang: + cd WWW/Library/snake; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DUNIX \ + -DUSE_SLANG -DSNAKE -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/snake/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang" SLANGINC="$(SLANGINC)" + +snake2: + cd WWW/Library/snake; $(MAKE) CC="gcc" LYFLAGS="-D_INCLUDE_HPUX_SOURCE \ + -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_AES_SOURCE \ + -D_INCLUDE_XOPEN_SOURCE $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -DSNAKE -I../$(WWWINC) -D_INCLUDE_HPUX_SOURCE \ + -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_AES_SOURCE \ + -D_INCLUDE_XOPEN_SOURCE $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/snake/libwww.a" + +snake2-slang: + cd WWW/Library/snake; $(MAKE) CC="gcc" LYFLAGS="-D_INCLUDE_HPUX_SOURCE \ + -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_AES_SOURCE \ + -D_INCLUDE_XOPEN_SOURCE $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DUNIX \ + -DUSE_SLANG -DSNAKE -I../$(WWWINC) -D_INCLUDE_HPUX_SOURCE \ + -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_AES_SOURCE \ + -D_INCLUDE_XOPEN_SOURCE $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/snake/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang" SLANGINC="$(SLANGINC)" + +# Lynx will compile with the purchased cc compiler added to HP-UX. +# contributed by Andy Finkenstadt (genie@panix.com) +# Note that initial releases of HP/UX 10.10 have a broken select() in +# libcurses.a and will malfunction with Lynx. See the PROBLEMS file. +snake3: + cd WWW/Library/snake; $(MAKE) CC="cc" LYFLAGS="-Ae -DUNIX \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -Ae -DFANCY_CURSES -DUNIX \ + -DSNAKE -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/snake/libwww.a" + +snake3-slang: + cd WWW/Library/snake; $(MAKE) CC="cc" LYFLAGS="-Ae -DUNIX \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -Ae -DUSE_SLANG -DUNIX \ + -DSNAKE -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/snake/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang" SLANGINC="$(SLANGINC)" + +svr4: + cd WWW/Library/svr4; $(MAKE) LYFLAGS="-DSVR4_BSDSELECT $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -I../$(WWWINC) -DUTMPX_FOR_UTMP -DSVR4 -DSVR4_BSDSELECT \ + -DTRUE=1 -DFALSE=0 $(SITE_DEFS)" \ + LIBS="-lcurses -lsocket -lnsl \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/svr4/libwww.a" + +# SEQUENT doesn't have or need ranlib. (ignore the error message about that :) +ptx: + cd WWW/Library/ptx; $(MAKE) $(MFLAGS) LYFLAGS="-DNO_BCOPY \ + -DSVR4_BSDSELECT -DNO_FILIO_H $(SITE_LYDEFS)" + cd src; $(MAKE) $(MFLAGS) all CC="cc" MCFLAGS="-O -DUNIX -DSVR4 \ + -DFANCY_CURSES -DNO_FILIO_H -DUTMPX_FOR_UTMP -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -lsocket -linet -lnsl \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/ptx/libwww.a" + +# SEQUENT doesn't have or need ranlib. (ignore the error message about that :) +ptx-slang: + cd WWW/Library/ptx; $(MAKE) $(MFLAGS) LYFLAGS="-DNO_BCOPY \ + -DSVR4_BSDSELECT -DNO_FILIO_H $(SITE_LYDEFS)" + cd src; $(MAKE) $(MFLAGS) all CC="cc" MCFLAGS="-O -DUNIX -DSVR4 \ + -DUSE_SLANG -DNO_FILIO_H -DUTMPX_FOR_UTMP -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -lsocket -linet -lnsl \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/ptx/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang" SLANGINC="$(SLANGINC)" + +# SEQUENT doesn't have or need ranlib. (ignore the error message about that :) +ptx2: + cd WWW/Library/ptx; $(MAKE) LYFLAGS="-DPTX2 -DNO_BCOPY -DNOPORT \ + -DSVR4_BSDSELECT -DNO_FILIO_H $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DPTX2 -DFANCY_CURSES -DUNIX \ + -DNO_FILIO_H -DUTMPX_FOR_UTMP -DSVR4 \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -lsocket -linet -lnsl \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/ptx/libwww.a" + +# Contributed by Thanh Ma (tma@encore.com). +umaxv: + cd WWW/Library/umaxv-m88k; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -D_SYSV3 -DHAVE_TERMIOS -DUSE_DIRENT -DNO_UTMP \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/umaxv-m88k/libwww.a" + +# Contributed by Thanh Ma (tma@encore.com). +umaxv-slang: + cd WWW/Library/umaxv-m88k; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUSE_SLANG -DUNIX \ + -D_SYSV3 -DHAVE_TERMIOS -DUSE_DIRENT -DNO_UTMP \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="$(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/umaxv-m88k/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang -lm" SLANGINC="$(SLANGINC)" + +unixware: + cd WWW/Library/svr4; $(MAKE) LYFLAGS="-DNO_BCOPY -DUNIXWARE \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -I../$(WWWINC) -DUTMPX_FOR_UTMP -DSVR4 -DTRUE=1 -DFALSE=0 \ + -DNO_BCOPY -DUNIXWARE $(SITE_DEFS)" \ + LIBS="-lcurses -lsocket -lnsl \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/svr4/libwww.a" + +unixware-slang: + cd WWW/Library/svr4; $(MAKE) LYFLAGS="-DNO_BCOPY -DUNIXWARE \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX -DUSE_SLANG \ + -DCURS_PERFORMANCE \ + -I../$(WWWINC) -DUTMPX_FOR_UTMP -DSVR4 -DTRUE=1 -DFALSE=0 \ + -DNO_BCOPY -DUNIXWARE $(SITE_DEFS)" \ + LIBS="-lsocket -lnsl \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/svr4/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang -lm" SLANGINC="$(SLANGINC)" + +# SCO doesn't have or need ranlib. (ignore the error message about that :) +# can build lynx with its native rcc compiler. (if you replace "gcc" +# with "rcc" for CC= :) +# has a const/volatile bug in its native cc compiler. (don't use it ;) +sco: + cd WWW/Library/sco; $(MAKE) CC="gcc" LYFLAGS="-DNO_FILIO_H -DUNIX \ + -DSCO $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -s -DNO_FILIO_H -DUNIX -DSCO \ + -DFANCY_CURSES -DMMDF -DNO_UTMP -DNO_SIZECHANGE \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -lsocket -ltermcap -lmalloc \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/sco/libwww.a" + +sco5: + cd WWW/Library/sco; $(MAKE) CC="cc -belf" LYFLAGS="-DNO_FILIO_H \ + -DUNIX -DSCO $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc -belf" MCFLAGS="-O -s -DNO_FILIO_H -DUNIX \ + -DSCO -DFANCY_CURSES -DMMDF -DUTMPX_FOR_UTMP \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -lsocket \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/sco/libwww.a" + +bsdi: + cd WWW/Library/Implementation; $(MAKE) -f BSDI_Makefile \ + LYFLAGS="-DBSDI $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DNO_CUSERID -DUNIX \ + -DNO_FILIO_H \ + -I../$(WWWINC) -DNO_UTMP -DSVR4 -DNO_KEYPAD $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/svr4/libwww.a" + +#IMPORTANT: To compile you need ncurses package (version 1.9.4 or later) +# installed on your system. You can download ncurses package from +# ftp://ftp.netcom.com/pub/zm/zmbenhal/ncurses +bsdi-ncurses: + cd WWW/Library/Implementation; $(MAKE) -f BSDI_Makefile CC="gcc" \ + LYFLAGS="-DBSDI $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DNO_CUSERID -DUNIX -DCOLOR_CURSES -DNCURSES \ + -DFANCY_CURSES -DBSDI -DSVR4 \ + -I/usr/include/ncurses -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lncurses \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/svr4/libwww.a" + +bsdi-slang: + cd WWW/Library/Implementation; $(MAKE) -f BSDI_Makefile \ + LYFLAGS="-DBSDI $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DNO_CUSERID -DUNIX \ + -DNO_FILIO_H -DUSE_SLANG \ + -I../$(WWWINC) -DNO_UTMP -DSVR4 -DNO_KEYPAD $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/svr4/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang -lm" SLANGINC="$(SLANGINC)" + +# define RESOLVLIB (above) for the "LIBS" entry if needed +# Solaris2 doesn't have or need ranlib. (ignore the error message about that :) +# (Solaris 2.5 and later actually have a ranlib program - but it does +# nothing and is only there to make Makefiles like this one happy) +solaris2: + cd WWW/Library/solaris2; $(MAKE) CC="gcc" LYFLAGS="-DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DCOLOR_CURSES -DFANCY_CURSES -DUNIX -DSVR4 \ + -DSOLARIS2 -DCURS_PERFORMANCE -DUTMPX_FOR_UTMP -DUSE_DIRENT \ + -DLOCALE -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/ccs/lib -R/usr/ccs/lib -lcurses -lnsl -lsocket \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/solaris2/libwww.a" + +solaris2-ncurses: + cd WWW/Library/solaris2; $(MAKE) CC="cc" LYFLAGS="$(SITE_LYDEFS) -g" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-g -DFANCY_CURSES \ + -DNCURSES -DUNIX -DSVR4 -DSOLARIS2 \ + -DUTMPX_FOR_UTMP -DUSE_DIRENT -DLOCALE -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/ccs/lib -R/usr/ccs/lib -lncurses -lnsl -lsocket \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/solaris2/libwww.a" \ + STYLE=LYStyle + +solaris2-ncurses-develop: + cd WWW/Library/solaris2; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS) -g -I../../../src -DUSE_COLOR_STYLE -DUSE_HASH" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-g -DFANCY_CURSES \ + -DUSE_COLOR_STYLE \ + -DUSE_HASH" \ + -DNCURSES -DUNIX -DSVR4 -DSOLARIS2 \ + -DUTMPX_FOR_UTMP -DUSE_DIRENT -DLOCALE -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/ccs/lib -R/usr/ccs/lib -lncurses -lnsl -lsocket \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/solaris2/libwww.a" \ + STYLE=LYStyle + +solaris2-ncurses-NHE: + cd WWW/Library/solaris2; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O4 -s -DUSE_COLOR_STYLE -DFANCY_CURSES \ + -DNCURSES -DUNIX -DSVR4 -DSOLARIS2 -DCURS_PERFORMANCE \ + -DUTMPX_FOR_UTMP -DUSE_DIRENT -DLOCALE -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/ccs/lib -R/usr/ccs/lib -lncurses -lnsl -lsocket \ + -lresolv" \ + WWWLIB="../WWW/Library/solaris2/libwww.a" \ + STYLE=NCStyle + +# Solaris 2 using Sun's unbundled C compiler +# define RESOLVLIB (above) for the "LIBS" entry if needed +# Solaris2 doesn't have or need ranlib. (ignore the error message about that :) +solaris2cc: + cd WWW/Library/solaris2; $(MAKE) CC="cc" LYFLAGS="-DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DCOLOR_CURSES -DFANCY_CURSES -DUNIX -DSVR4 \ + -DSOLARIS2 -DCURS_PERFORMANCE -DUTMPX_FOR_UTMP -DUSE_DIRENT \ + -DLOCALE -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/ccs/lib -R/usr/ccs/lib -lcurses -lnsl -lsocket \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/solaris2/libwww.a" + +# define RESOLVLIB (above) for the "LIBS" entry if needed +# Solaris2 doesn't have or need ranlib. (ignore the error message about that :) +solaris2-slang: + cd WWW/Library/solaris2; $(MAKE) CC="gcc" LYFLAGS="-DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DUNIX -DSVR4 -DSOLARIS2 \ + -DUSE_SLANG -DCURS_PERFORMANCE -DUTMPX_FOR_UTMP -DUSE_DIRENT \ + -DLOCALE -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/ccs/lib -R/usr/ccs/lib -lcurses -lnsl -lsocket \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/solaris2/libwww.a" \ + SLANGLIB="$(SLANGLIB) $(SLANGRRLIB) -lslang -lm" \ + SLANGINC="$(SLANGINC)" + +# Solaris 2 slang using Sun's unbundled C compiler +# define RESOLVLIB (above) for the "LIBS" entry if needed +# Solaris2 doesn't have or need ranlib. (ignore the error message about that :) +solaris2-slangcc: + cd WWW/Library/solaris2; $(MAKE) CC="cc" LYFLAGS="-DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX -DSVR4 -DSOLARIS2 \ + -DUSE_SLANG -DCURS_PERFORMANCE -DUTMPX_FOR_UTMP -DUSE_DIRENT \ + -DLOCALE -DHAVE_TERMIOS_H \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/ccs/lib -R/usr/ccs/lib -lcurses -lnsl -lsocket \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/solaris2/libwww.a" \ + SLANGLIB="$(SLANGLIB) $(SLANGRRLIB) -lslang -lm" \ + SLANGINC="$(SLANGINC)" + +osf: + cd WWW/Library/osf; $(MAKE) LYFLAGS="-Olimit 2000 -DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -Olimit 4000 -DUNIX \ + -DFANCY_CURSES -DNO_TTYTYPE $(ADDFLAGS) \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/osf/libwww.a" + +osf-slang: + cd WWW/Library/osf; $(MAKE) LYFLAGS="-Olimit 2000 -DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -Olimit 4000 -DUNIX \ + -DUSE_SLANG -DNO_TTYTYPE $(ADDFLAGS) \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/osf/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang -lm" SLANGINC="$(SLANGINC)" + +# for some reason loc_t isn't defined when compiling for debug on my system. +# needed for NLchar.h +dbg: + cd WWW/Library/osf; $(MAKE) CC="gcc" LYFLAGS="-DDIRED_SUPPORT \ + -DLY_FIND_LEAKS" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -Wall $(ADDFLAGS) \ + -DFANCY_CURSES -DLY_FIND_LEAKS \ + -Dloc_t=_LC_locale_t -D_locp=__lc_locale\ + -DDIRED_SUPPORT -DOK_TAR -DOK_GZIP -DOK_OVERRIDE \ + -DUNIX -I../$(WWWINC) -DEXEC_LINKS \ + -DALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/osf/libwww.a" + +sgi: +# SGI doesn't have or need ranlib. (ignore the error message about that :) + cd WWW/Library/sgi; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -cckr -DFANCY_CURSES \ + -DNO_CUSERID -DUNIX -DSGI -Dvfork=fork \ + -I../$(WWWINC) -DNO_UTMP $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap -DSYSV -DPERFORMANCE \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/sgi/libwww.a" + +##linux +# Add -DDECL_SYS_ERRLIST to the LYFLAGS if sys_errlist and sys_nerr +# are not declared in your system headers. +linux: + cd WWW/Library/unix; $(MAKE) CC="gcc" LYFLAGS="-DLINUX -DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DUNIX -DLINUX \ + -DNO_KEYPAD -DNO_TTYTYPE \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/unix/libwww.a" + +linux-ncurses: + cd WWW/Library/unix; $(MAKE) CC="gcc" LYFLAGS="-DLINUX -DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DUNIX -DLINUX -DNCURSES \ + -DFANCY_CURSES -DCOLOR_CURSES -DNO_TTYTYPE \ + -I/usr/include/ncurses -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lncurses -lgpm \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/unix/libwww.a" + +linux-slang: + cd WWW/Library/unix; $(MAKE) CC="gcc" LYFLAGS="-DLINUX -DNSL_FORK \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DUNIX -DLINUX -DUSE_SLANG \ + -DNO_KEYPAD -DNO_TTYTYPE \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="$(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/unix/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang -lm" SLANGINC="$(SLANGINC)" + +develop: + cd WWW/Library/unix; $(MAKE) LYFLAGS="-DLINUX $(SITE_LYDEFS) -I../../../src -DUSE_COLOR_STYLE -DUSE_HASH" + cd src; $(MAKE) all CC="gcc" \ + MCFLAGS="-O -DUNIX -DLINUX -DNCURSES \ + -DFANCY_CURSES -DNO_KEYPAD -DNO_TTYTYPE -DUSE_COLOR_STYLE \ + -I/usr/include/ncurses -I../$(WWWINC) $(SITE_DEFS) -DUSE_HASH" \ + LIBS="-lncurses $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/unix/libwww.a" \ + STYLE=LYStyle + +linux-style: + cd WWW/Library/unix; $(MAKE) LYFLAGS="-DLINUX $(SITE_LYDEFS) -I../../../src -DUSE_HASH -DUSE_COLOR_STYLE" + cd src; $(MAKE) all CC="gcc" \ + MCFLAGS="-O -DUNIX -DLINUX -DNCURSES \ + -DFANCY_CURSES -DNO_KEYPAD -DNO_TTYTYPE -DUSE_COLOR_STYLE \ + -I/usr/include/ncurses -I../$(WWWINC) $(SITE_DEFS) -DUSE_HASH" \ + LIBS="-lncurses $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/unix/libwww.a" \ + STYLE=LYStyle + +##Various AIX environments +aix: + @echo "Run make again and use \"make aix4\" or \"make aix32\"" + +# For AIX 4.n, and AIX 3.2.5 with POWER2 architectures, L2 caches, +# and APAR#IX58890 +aix4: + cd WWW/Library/rs6000; $(MAKE) LYFLAGS="-D_BSD=44 \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX -DAIX4 \ + -D_BSD=44 -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -lbsd \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/rs6000/libwww.a" + +aix32: + cd WWW/Library/rs6000; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -lbsd \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/rs6000/libwww.a" + +aix31: + cd WWW/Library/rs6000; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -lbsd \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/rs6000/libwww.a" + +##ultrix - DEC Ultrix +ultrix: + cd WWW/Library/decstation; $(MAKE) LYFLAGS="-G 7 $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -Olimit 600 -G 7 \ + -DFANCY_CURSES -DUNIX -DULTRIX -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcursesX -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/decstation/libwww.a" + +ultrix-slang: + cd WWW/Library/decstation; $(MAKE) LYFLAGS="-G 7 $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -Olimit 600 -G 7 \ + -DUSE_SLANG -DUNIX -DULTRIX -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcursesX -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/decstation/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang -lm" SLANGINC="$(SLANGINC)" + +##Various SunOS environments +sun: + @echo "Run make again and use \"make sun3\" or \"make sun4\"" + +# define RESOLVLIB (above) for the "LIBS" entry if needed +sun3: + cd WWW/Library/sun3; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" CC="gcc" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DUNIX -DFANCY_CURSES \ + -I../$(WWWINC) -DSUN -DLOCALE -I/usr/5include $(SITE_DEFS)"\ + LIBS="-lcurses -ltermcap -L/usr/5lib \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/sun3/libwww.a" + +# define RESOLVLIB (above) for the "LIBS" entry if needed +sun4: + cd WWW/Library/sun4; $(MAKE) CC="gcc" LYFLAGS="$(CCFLAGS) \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="$(CCFLAGS) -O -DUNIX -DSUN \ + -DSUN4 -DFANCY_CURSES -DLOCALE \ + -I../$(WWWINC) -I/usr/5include \ + $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap -L/usr/5lib \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/sun4/libwww.a" + +# define RESOLVLIB (above) for the "LIBS" entry if needed +sun4-ncurses: + cd WWW/Library/sun4; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" \ + MCFLAGS="-O -DUNIX -DFANCY_CURSES -DCOLOR_CURSES -DNCURSES \ + -I/usr/local/include -I../$(WWWINC) -DSUN -DSUN4 \ + -DLOCALE $(SITE_DEFS)" \ + LIBS="-L/usr/local/lib -lncurses \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/sun4/libwww.a" + +# use the holiest of holiest --- PURIFY +# define RESOLVLIB (above) for the "LIBS" entry if needed +sun4-pure: + cd WWW/Library/sun4; $(MAKE) CC="gcc" LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="purify -cache-dir=/home/purify-cache \ + -always-use-cache-dir=yes -optimize-save-o7=no gcc" \ + MCFLAGS="-O -DUNIX -DFANCY_CURSES \ + -I../$(WWWINC) -DSUN -DSUN4 -DLOCALE -I/usr/5include \ + $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap -L/usr/5lib \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/sun4/libwww.a" + +# define RESOLVLIB (above) for the "LIBS" entry if needed +sun4-slang: + cd WWW/Library/sun4; $(MAKE) CC="gcc" LYFLAGS="$(CCFLAGS) \ + $(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc" MCFLAGS="-O -DUNIX -DSUN -DSUN4 \ + -DUSE_SLANG -DLOCALE \ + -I../$(WWWINC) -I/usr/5include \ + $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap -L/usr/5lib \ + $(RESOLVLIB) $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/sun4/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang -lm" SLANGINC="$(SLANGINC)" + +# news - SONY NEWS-OS 4.2.1R +news: + @echo "You must first compile the WWW library in WWW/Library" + cd WWW/Library/unix; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc -O" MCFLAGS="-O -DUNIX -DNO_KEYPAD \ + -DNO_CUSERID -DLOCALE \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-ljcurses -ltermcap $(WAISLIB) $(SOCKSLIB)" \ + WWWLIB="../WWW/Library/unix/libwww.a" + +news-ncurses: + @echo "You must first compile the WWW library in WWW/Library" + cd WWW/Library/unix; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc -O" MCFLAGS="-O -DUNIX \ + -DNO_CUSERID -DNCURSES -DCOLOR_CURSES -DFANCY_CURSES \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lncurses $(WAISLIB) $(SOCKSLIB)" \ + WWWLIB="../WWW/Library/unix/libwww.a" + +news-slang: + @echo "You must first compile the WWW library in WWW/Library" + cd WWW/Library/unix; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="gcc -O" MCFLAGS="-O -DUNIX -DNO_KEYPAD \ + -DNO_CUSERID -DUSE_SLANG -DLOCALE \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="$(WAISLIB) $(SOCKSLIB)" \ + WWWLIB="../WWW/Library/unix/libwww.a" \ + SLANGLIB="$(SLANGLIB) -lslang" SLANGINC="$(SLANGINC)" + +# next - Nextstep +next: + cd WWW/Library/next; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX -DNEXT -DNO_UNISTD_H \ + -DNO_CUSERID -DNO_GETCWD -DNO_PUTENV -DNO_KEYPAD \ + -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/next/libwww.a" + +next-ncurses: + cd WWW/Library/next; $(MAKE) LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX -DNEXT -DNO_UNISTD_H \ + -DNCURSES -DCOLOR_CURSES -DFANCY_CURSES \ + -DNO_CUSERID -DNO_GETCWD -DNO_PUTENV \ + -I/usr/local/include -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-L/usr/local/lib -lncurses \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/next/libwww.a" + +# isc - Interactive Unix for i386 and i486 machines +# According to Robert Salter (salter1@mster.nsbf.nasa.gov), +# cc should be used instead of gcc. +# According to Walter Skorski (walt@clyde.jmp.tju.edu), +# -DPOSIX_JC is necessary, else LYBookmark.c never finds out +# what a mode_t is. +isc: + cd WWW/Library/isc; $(MAKE) CC="cc" LYFLAGS="$(SITE_LYDEFS)" + cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DISC -DFANCY_CURSES -DUNIX \ + -DNO_UTMP -Dvfork=fork -DPOSIX_JC -I../$(WWWINC) $(SITE_DEFS)" \ + LIBS="-lcurses -ltermcap -linet -lnsl_s -lcposix \ + $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \ + WWWLIB="../WWW/Library/isc/libwww.a" + +##Miscellaneous actions +clean: + rm -f WWW/Library/*/*.[aob] + rm -f WWW/Library/*/.created + cd src; $(MAKE) clean + rm -f *.b src/lynx core Lynx.leaks + +distclean: clean + -rm -f WWW/Library/*/*~ + -rm -f WWW/Library/*/*.bak + -rm -rf WWW/Library/*/obsolete + -rm -rf src/obsolete + -cd src; $(MAKE) clean + -cd src/chrtrans; $(MAKE) distclean + -rm -f Lynx.prj *~ *.bak *.sav .*_aux + rm lynx + +tar: clean + rm -f lynx + $(MAKE) save + +turnover: clean + $(MAKE) save + +zipcompress: compress zip + echo "done!" + +zip: clean + rm -f src/lynx + rm -f lynx + rm -f src/a.out + rm -f ../$(lynxname).zip + cd ..; rm -f $(lynxname).zip; zip -r $(lynxname).zip $(lynxdir) + +save: + cd ..; rm -f $(lynxname).tar; tar -cf - $(lynxdir) > $(lynxname).tar + +compress: tar + cd ..; rm -f $(lynxname).tar.Z; compress -f -v $(lynxname).tar + +install: + -mv -f $(exec)/lynx $(exec)/lynx.old + -mv -f $(cfg)/lynx.cfg $(cfg)/lynx.oldcfg + $(installbin) lynx $(exec)/lynx + $(installdoc) lynx.man $(doc)/lynx.1 + $(installdoc) lynx.cfg $(cfg)/lynx.cfg diff --git a/docs/README.chartrans b/docs/README.chartrans new file mode 100644 index 00000000..0c0ebd9c --- /dev/null +++ b/docs/README.chartrans @@ -0,0 +1,197 @@ +Lynx CHARTRANS + + Features (in addition to those which Lynx already has): + +- Can (attempt to) translate from any document charset to any display + character set, *IF* the document charset is known by a translation + table (compiled in at installation). + + - Old method for specifying translations of Latin1 characters and + SGML entities still supported. (IBMPC-charsets.announce is still + relevant.) + + - New method to define character sets: used for input charset as well + as display character set, translation tables compiled in from + separate files (one per charset). + + - Unicode (UTF8) support: can (attempt to) decode and translate UTF8 to + display character set, or pass through UTF to display (if terminal + or console understands UTF8). [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 [but not yet on LINK], as in + HTML i18n RFC 2070. A link can suggest the target's charset in this way. + + - 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. + + - some minor changes: sometimes invalid characters are displayed in a hex + notation Uxxxx (helps debugging, but I also regard it as at least not + worse than showing the wrong char without warning). + +Additions/changes to user interface: + + - many new Display Character Sets are available on O)ptions screen. + (also can now use arrow keys, HOME, END etc. for cycling through the list). + + - new command line flags: + -assume_charset=... assume this as charset for documents that don't + specify a charset parameter in HTTP headers + -assume_unknown_charset=... in case a charset parameter is not recognized + -assume_local_charset=... assume this as charset of local file: docs + also available as ASSUME_CHARSET etc. in lynx.cfg + + - The "Raw" toggle (from -raw flag, '@' key, or Options screen) + o should work as before for CJK charsets, + o otherwise toggles the assumption "Default remote charset is same + as Display Character Set" on or off. + Toggling of the assumed charset is between Display Character Set and + the specified ASSUME_CHARSET or, if they are the same, between the + specified ASSUME_CHARSET and ISO-8859-1. + o The default for raw mode now depends on the Display Character Set as + well as on the specified ASSUME_CHARSET value. + (Try the "Transparent" Display Character Set for more "rawness".) + +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.few for the current +status. + + +A WARNING BEFORE YOU PROCEDE: + +This is experimental. It works already nicely for me, but I have only +tested it on Linux, compiled with Slang. In some cases undisplayable bytes +may get sent to the terminal which are then interpreted as control chars. +Other usual warnings about alpha software apply... + + +HOW TO GET SOURCES: + +The location of files mentioned below is currently at + <URL: http://sol.slcc.edu/lynx/klaus/merged/all/> +but it is probably easier to get a full package of the development code +from + <URL: http://sol.slcc.edu/lynx/current/> +(different formats there, check it out.) +Check both locations to find the newest version. + +There are three alternatives: +( Replace the * in the followin filenames with the appropriate subversion ) + +(1.) + Provided as a full Lynx distribution (for now..) - in zip format. + This contains the complete Lynx source package. + + Just get lynx-2.7.1ac-*.zip. + +(2.) + Provided as add-on over the Lynx 2.7.1 distribution, i.e. all files that + are new or have changed - in zip format. + (a) Get the official Lynx 2.7.1 distribution - see list of download sites at + <URL: http://www.crl.com/~subir/lynx/sources.html>. + (b) Get add-to-offi-2.7.1ac-*.zip. + (c) Unpack the official 2.7.1 package, then unzip add-to-offi-2.7.1ac-*.zip + over that directory tree. + +(3.) + Provided in two files (for minimal download time) to install over the + Lynx 2.7.1 distribution - needs gunzip, tar, and patch. + (a) Get the official Lynx 2.7.1 distribution - see list of download sites at + <URL: http://www.crl.com/~subir/lynx/sources.html>. + (b) Get lynx-newfiles-2.7.1ac-*.tar.gz. + (c) Get lynx-patch-2.7.1ac-*.pch.gz. + (d) Unpack the official 2.7.1 package, then unpack + lynx-newfiles-2.7.1ac-*.tar.gz over that directory tree. + (d) Apply patches from lynx-patch-2.7.1ac-*.pch. + + +HOW TO INSTALL: + +(4) before compiling: + + Check top level makefile or Makefile and userdefs.h as usual. + + NOTE that there is a new "#define" in userdefs.h for MAX_CHARSETS + near the end (in "Section 3."). + + NOTE that in the top-level Makefile, the -DEXP_CHARTRANS must be + in *both* SITE_DEFS *and* SITE_LYDEFS. + +(5) Building Lynx: + + If you are compiling for VMS you have to figure out for yourself + how to modify the procedure, sorry. + + What's supposed to happen (in addition to the usual things when + building Lynx): in the new subdirectory src/chrtrans, make should + first compile the auxiliary program `makeuctb', then invoke that + program to create xxxxx_yyy.h files from the provided xxxxx.yyy + translation table files. (See README.* files in src/chrtrans for + more info.) + + If all goes well, just invoking make from the top-level Lynx dir + as usual should do everything automatically. If not, the makefiles + may need some tweaking... or: + +(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. + 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 + may not propagate to the src/chrtrans directory (depending how things + 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.): + + See README.* files in src/chrtrans. + Make the necessary changes there, then recompile. + (A general `make clean' should not be necessary, but make sure + the ...uni.h file in src/chrtrans gets regenerated.) + + 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 HTMLDTD.c. + + _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 + with -DEXP_CHARTRANS_AUTOSWITCH. This is very useful for testing + the various Display Character Sets, Lynx will try to automatically + chage 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! + 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). + +(8) Some suggested Web pages for testing: + + <URL: http://www.tezcat.com/~kweide/lynx-chartrans/test/> + + <URL: http://www.isoc.org:8080/>, + 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. + to <lynx-dev@sig.net> or <kweide@tezcat.com>. + + Suggestions for improvement would be welcome, as well as + contributed translation tables (for stuff that is not available + at ftp://dkuug.dk or ftp://unicode.org). + +KW 1996-05-03 diff --git a/lynx.cfg b/lynx.cfg index 6b4b33a5..10e99559 100644 --- a/lynx.cfg +++ b/lynx.cfg @@ -173,14 +173,14 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # tables in the src/chrtrans directory. It is not necessary to change # src/LYCharSets.c to make these new character sets known to Lynx, (although # definitions for the "older" character sets are still there), but the new ones -# have to be listed in src/UCdomap.c and, currently, the makefiles in src/ -# and src/chrtrans to be automatically used. See README.* files in src/chrtrans/. +# have to be listed in src/UCdomap.c and, currently, the makefiles in src/ and +# src/chrtrans to be automatically used. See README.* files in src/chrtrans/. # # For Lynx a "character set" has two names: a Display Character Set string -# for the Options scree and for setting CHARACTER_SET here, and a +# for the Options screen and for setting CHARACTER_SET here, and a # corresponding MIME name (for recognizing properly labelled charset # parameters in HTTP headers etc.). Not all Display Character Set names -# crrespond to exactly one valid MIME charset (for example "Other ISO Latin", +# correspond to exactly one valid MIME charset (for example "Other ISO Latin", # "Chinese", "Transparent"), in that case an appropriate valid (and more # specific) MIME name should be used where required. # @@ -190,10 +190,9 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # either this file or an -assume_charset command line option. The mode # defaults to ON if the ASSUME_CHARSET value corresponds to the display # character set, otherwise to OFF. Note that "raw" does not mean that every -# byte will be passed to the screen. HTML character entities may get -# expanded and translated, inappropriate control characters filtered out, etc. -# Raw mode effectively changes the charset assumption about unlabelled -# documents. +# byte will be passed to the screen. HTML character entities may get expanded +# and translated, inappropriate control characters filtered out, etc. Raw +# mode effectively changes the charset assumption about unlabelled documents. # (There is a "Transparent" pseudo character set for more "rawness".) # # The default character sets include: @@ -238,7 +237,7 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html # IF compiled with -DEXP_CHARTRANS: # ASSUME_CHARSET changes the handling of documents which do not # explicitly specify a charset. Normally Lynx assumes that 8-bit -# characters in those document are encoded according to iso-8859-1 +# characters in those documents are encoded according to iso-8859-1 # (the official default for the HTTP protocol). When ASSUME_CHARSET # given here or by an -assume_charset command line flag is in effect, # Lynx will treat documents as if they were encoded accordingly. diff --git a/lynx_help/Lynx_users_guide.html b/lynx_help/Lynx_users_guide.html index ca81d1a2..7d431aa0 100644 --- a/lynx_help/Lynx_users_guide.html +++ b/lynx_help/Lynx_users_guide.html @@ -1307,7 +1307,7 @@ to keep track of information across a series of related form submissions, but have the potential for including information about the user that might be considered to represent an invasion of privacy. NOTE, in this regard, that Lynx has implemented the <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> <em>DISABLED</em> attribute for <em>all</em> of its form fields. These can be used to keep track of information across submissions, and to cast it unmodifiable in the current form, but keep the user aware that it will @@ -1392,7 +1392,7 @@ elements is included in the test subdirectory of the Lynx distribution. <h2><A NAME="21"><em>Lynx and HTML Tabs</em></a></h2> Lynx implements the <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> TAB element only when LEFT alignment is in effect. If the alignment is CENTER or RIGHT (JUSTIFY is not yet implemented in Lynx, and is treated as a synonym for LEFT), or if the TAB element indicates a position to the @@ -1439,7 +1439,7 @@ links with brief, descriptive link names, analogous to a Windows toolbar. Such windows have been termed <em>banners</em>. <p>Lynx recognizes and processes all of the <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> REL attribute tokens in LINK elements for creating a <em>banner</em>, and a number of others which have subsequently been proposed. These <em>banner</em> tokens are <em>Home</em>, <em>ToC</em>, <em>Contents</em>, @@ -1486,7 +1486,7 @@ a '<em>#</em>' at the top, left-hand corner of the screen when the second or subsequent pages of the document are being displayed. <p>Lynx also recognizes the <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> BANNER container element, and will create a <em>banner</em> based on its content if one has not already been created based on LINK elements. Lynx treats the MicroSoft MARQUEE element as a synonym for BANNER (i.e., @@ -1501,7 +1501,7 @@ displayed, to indicate it's accessibility via the TOOLBAR keystroke command. <h2><A NAME="24"><em>Lynx and HTML Footnotes</em></a></h2> Lynx implements the <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> FN element similarly to a named <em>A</em>nchor within the current document, and assumes that the footnotes will be positioned at the bottom of the document. However, in contrast to named <em>A</em>nchors, the FN container @@ -1525,7 +1525,7 @@ markup that is valid in the BODY of the document. <h2><A NAME="25"><em>Lynx and HTML Notes</em></a></h2> Lynx implements the <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> NOTE element (<em>Admonishment</em>) as a labeled block, i.e., as if a new paragraph were indicated whether or not paragraphing markup is included in its content, with greater than normal left and right margins, and with @@ -1549,19 +1549,19 @@ NOTE, except for recognition of the ID attribute as a named <em>A</em>nchor. <h2><A NAME="26"><em>Lynx and HTML Lists</em></a></h2> Lynx implements the <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> list elements UL (<em>Unordered List</em>), OL (<em>Ordered List</em>), and DL (<em>Definition List</em>), and their associated attributes, and elements (LH, LI, DT, and DD) for the most part as described in that specification. The lists can be nested, yielding progressively greater indentation, up to six levels. The <a -href="http://www.w3.org/pub/WWW/MarkUp/html-spec/html-spec_toc.html" +href="http://www.w3.org/MarkUp/html-spec/html-spec_toc.html" >HTML 2.0</a> MENU and DIR elements <em>both</em> are treated as synonyms for UL with the PLAIN attribute (no <em>bullets</em>, see below). Note, thus, that neither DIR nor MENU yields a series of columns with 24-character spacing. A single nesting index is maintained, so that different types of List elements can be used for different levels within the nest. Also, the -<a href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +<a href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> FIG, CAPTION and CREDIT elements are treated as valid within list blocks. They will be rendered with indentation appropriate for the current nesting depth, and the CAPTION or CREDIT elements will have a <em>CAPTION:</em> or @@ -1609,7 +1609,7 @@ DD elements unless the COMPACT attribute has been specified. <h2><A NAME="27"><em>Lynx and HTML Quotes</em></a></h2> The <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> and +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> and later specifications provide for two classes of quotation in HTML documents. Block quotes, designated by the BLOCKQUOTE element (or it's abbreviated synonym BQ in HTML 3.0), have implied paragraph breaks preceding and following @@ -1684,7 +1684,7 @@ disabled by default via the configuration file (lynx.cfg), and the default can be toggled via the <em>-ismap</em> command line switch. <p>Lynx also recognizes the <a -href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html">HTML 3.0</a> +href="http://www.w3.org/MarkUp/html3/Contents.html">HTML 3.0</a> FIG and OVERLAY elements, and will handle them as intended for text clients. These are the ideal way to handle <em>client-side-image-maps</em>, because the FIG content provides complete alternative markup, rather than relying @@ -2234,14 +2234,13 @@ of Academic Computing Services at The University of Kansas. Lynx was implemented by Lou Montulli and maintained by Garrett Arch Blythe and Craig Lavender. -<p><em>Foteos Macrides</em> and members of the -<a href="../about_lynx/about_lynx-dev.html">lynx-dev</a> list have -developed and supported Lynx since release of v2.3 in May 1994. The -Lynx2-3FM code set was released as v2.4 in June 1995. The Lynx2-4FM -code set was released as v2.5 in May 1996. The Lynx2-5FM code set was -released as v2.6 in September 1996. The Lynx2-6FM code set was released -as v2.7 in February 1997, and v2.7.1 with bug fixes for v2.7 was -released in April 1997. +<p><em>Foteos Macrides</em> and members of the <a href="lynx-dev.html"> +lynx-dev</a> list have developed and supported Lynx since release of v2.3 +in May 1994. The Lynx2-3FM code set was released as v2.4 in June 1995. +The Lynx2-4FM code set was released as v2.5 in May 1996. The Lynx2-5FM +code set was released as v2.6 in September 1996. The Lynx2-6FM code set +was released as v2.7 in February 1997, and v2.7.1 with bug fixes for v2.7 +was released in April 1997. <p>Lynx has incorporated code from a variety of sources along the way. The earliest versions of Lynx included code from Earl Fogel diff --git a/lynx_help/about_lynx.html b/lynx_help/about_lynx.html new file mode 100644 index 00000000..33faa7cd --- /dev/null +++ b/lynx_help/about_lynx.html @@ -0,0 +1,97 @@ +<!DOCTYPE html public "-//IETF//DTD HTML 3.0//EN"> +<HTML> +<HEAD> +<TITLE>About Lynx</TITLE> +<LINK rev="made" href="mailto:lynx-dev@sig.net"> +</HEAD> + +<BODY> +<BANNER> +[ <A HREF="lynx-dev.html">About Lynx-Dev</A> | +<A HREF="http://www.flora.org/lynx-dev/html/">Lynx-Dev Archives</A> ] +</BANNER> + +<h1><em>About Lynx</em></h1> + +Lynx is a fully featured World-Wide Web browser for users on both Unix and +VMS platforms who are connected to those systems via cursor-addressable, +character-cell terminals or emulators. That includes VT100 terminals, +and desktop-based software packages emulating VT100 terminals (e.g., +Kermit, Procomm, etc.). + +<P>For information on how to use Lynx see the +<A HREF="../lynx_help/Lynx_users_guide.html">Lynx User's Guide</A>, or the +<A HREF="../lynx_help/lynx_help_main.html">Lynx help files</A>. + +<H2><EM>Credits and Copyright</EM></H2> + +Lynx was a product of the Distributed Computing Group within +Academic Computing Services of <A +HREF="http://www.cc.ukans.edu/index.html">The University of Kansas</A>. + +<P>Lynx was originally developed by +<A HREF="http://www.cc.ukans.edu/cwis/people/Lou.Montulli.html" +>Lou Montulli,</A> +<A HREF="http://www.cc.ukans.edu/cwis/people/Michael.Grobe/Michael.Grobe.html" +>Michael Grobe,</A> +and <A HREF="http://www.cc.ukans.edu/cwis/people/Charles.Rezac.html" +>Charles Rezac.</A> +<A HREF="http://www.cc.ukans.edu/cwis/people/Garrett/Garrett_Arch_Blythe.html" +>Garrett Blythe</A> created +<A HREF="http://www.cc.ukans.edu/about_doslynx/doslynx.html">DosLynx</A> +and later joined the Lynx effort as well. Following the departures of +Lou and Garrett for positions at Netscape in the summer of 1994, +<EM>Craig Lavender</EM> provided support services for Lynx, and +<EM>Ravikumar Kolli</EM> for DosLynx. + +<P>Currently Lynx is being maintained and supported by members of the +Internet community coordinated via the +<A HREF="#lynx-dev_list"><EM>lynx-dev mailing list</EM></A>. + +<P>Lynx is copyrighted by the University of Kansas and is distributed +<A HREF="COPYHEADER">without restrictions on usage or redistribution</A> +under the <A HREF="COPYING">GNU General Public License</A>. + +<P>Lynx was built over an early version of the Common Code Library +developed by the CERN WWW Project. That code is copyrighted by CERN. +Lynx contains other sections of code that are copyrighted +by other institutions or individuals. +The Lynx copyright does not override or invalidate those copyrights. + +<P>Thanks to <A NAME="13" +HREF="http://www.w3.org/hypertext/WWW/People.html#BernersLee" +>Tim Berners-Lee</A> and the other <A NAME="14" +HREF="http://www.w3.org/hypertext/WWW/People.html">CERN World Wide +Web wizards</A> for the WWW client library code and all of their other +work on the WWW project, NCSA and the +<A HREF="http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/NCSAMosaicHome.html" +>Mosaic</A> developers, and to everyone out in netland who has +contributed to Lynx's development either directly (through comments +or bug reports) or indirectly (through inspiration and development of +other systems). + +<P>Also, special thanks go to <EM>Foteos Macrides</EM> who ported much of +Lynx to VMS and did much of it's development following Lou Montulli's +and Garrett Blythe's departures from the University of Kansas, and to +<EM>Earl Fogel</EM> of the University of Saskatchewan. Earl implemented +the hypertext engine HYPERREZ in the Unix environment. HYPERREZ was +developed by Niel Larson of Think.com and served as the model for +the early versions of Lynx which did not use the WWW libraries and +had their own hypertext format. + +<H2><A NAME="availability"><EM>Availability</EM></A></H2> + +<p>Information on obtaining the most current version of Lynx is +available via <a href="http://www.crl.com/~subir/lynx.html" +>Lynx links</a>. + +<H2><A NAME="lynx-dev_list"><EM>Mailing List</EM></A></H2> + +We have a listserv mailing list running for lynx development discussion. +If you are interested in joining the list, follow this <A +HREF="lynx-dev.html">link</A>. There also are links to <A +HREF="http://www.flora.org/lynx-dev/html/">archives</A> in html +format for this mailing list. + +</BODY> +</HTML> diff --git a/lynx_help/lynx-dev.html b/lynx_help/lynx-dev.html new file mode 100644 index 00000000..f062f674 --- /dev/null +++ b/lynx_help/lynx-dev.html @@ -0,0 +1,70 @@ +<!DOCTYPE html public "-//IETF//DTD HTML 3.0//EN"> +<html> +<head> +<title>Lynx-Dev Discussion List</title> +<link rev="made" href="mailto:lynx-dev@sig.net"> +</head> + +<body> +<banner> +[ <a href="http://www.flora.org/lynx-dev/html/">Lynx-Dev Archives</a> | +<a href="about_lynx.html">About Lynx</a> ] +</banner> + +<h1><em>Lynx-Dev Discussion List</em></h1> + +Lynx-dev is a majordomo mailing list used by developers and interested +users as a forum to discuss the further development of the Lynx World +Wide Web browser. Topic issues include fixing known bugs, porting Lynx +to various systems, and increasing the usability of Lynx. + +<h2><em>Subscribing to Lynx-Dev</em></h2> + +If you are interested in <em>joining</em> this mailing list, +send email to <a href="mailto:majordomo@sig.net" +>majordomo@sig.net</a> with only the following request +in the body of your message: <em>SUBSCRIBE LYNX-DEV address</em><br> +where inclusion of your email address is optional if it can be obtained, +correctly, from the mail headers of your subscription request. + +<p><em>NOTE:</em> Subject headers are ignored by the majordomo. + +<h2><em>Unsubscribing from Lynx-Dev</em></h2> + +To <em>unsubscribe</em>, send an email message to +<a href="mailto:majordomo@sig.net" +>majordomo@sig.net</a> with only the following request +in the body: <em>UNSUBSCRIBE LYNX-DEV address</em><br> +where inclusion of your email address is optional if it can be obtained, +correctly, from the mail headers of your request. + +<h2><em>Majordomo Commands</em></h2> + +To receive a brief description of majordomo <em>commands</em>, place +the following request in a message to <a href="mailto:majordomo@sig.net" +>majordomo@sig.net</a>: <em>HELP</em> + +<h2><em>Contacting Lynx-Dev</em></h2> + +If you have questions, problems, or comments about using Lynx or +installing it on your system, send email to +<a href="mailto:lynx-dev@sig.net" +>lynx-dev@sig.net</a> (<em>after you've subscribed</em>). + +<p>If you have problems with majordomo not responding to your requests, +send email to the <em>list owner</em>: <a +href="mailto:majordomo-owner@sig.net" +>majordomo-owner@sig.net</a>. Please, +<em>DO NOT</em> send them to <em>lynx-dev@sig.net</em> as they +will be distributed to everyone on the list and will clutter +up their mailboxes. + +<h2><em>Lynx-Dev Archives</em></h2> + +Archives of messages posted to lynx-dev are now in html format so that +you can view them using Lynx. + +<p>Go to the <a href="http://www.flora.org/lynx-dev/html/" +>Lynx-Dev Archives</a>. +</body> +</html> diff --git a/lynx_help/lynx_help_main.html b/lynx_help/lynx_help_main.html index 32702484..5ff1221d 100644 --- a/lynx_help/lynx_help_main.html +++ b/lynx_help/lynx_help_main.html @@ -15,7 +15,7 @@ <li><a href="keystrokes/keystroke_help.html">Key-stroke Commands</a> | <a href="keystrokes/edit_help.html">Line Editor</a> <li><a href="lynx_url_support.html">Supported URLs</a> -| <a href="http://www.w3.org/pub/WWW/Addressing/Addressing.html" +| <a href="http://www.w3.org/Addressing/Addressing.html" >Help on URLs</a> <li><a href="http://leb.net/blinux/blynx/" >Speech-Friendly Lynx Help Files</a> @@ -24,20 +24,20 @@ >Lynx links</a> | <a href="http://www.slcc.edu/lynx/faq.html" >Lynx FAQ</a> -<li><a href="../about_lynx/about_lynx.html">About Lynx</a> -| <a href="../about_lynx/lynx-dev.html">About Lynx-Dev</a> +<li><a href="about_lynx.html">About Lynx</a> +| <a href="lynx-dev.html">About Lynx-Dev</a> | <a href="http://www.access.digex.net/~asgilman/lynx/FAQ/" >Al's Picks (FAQ)</a> </ul> <li><a -href="http://www.w3.org/pub/WWW/MarkUp/html-spec/html-spec_toc.html" +href="http://www.w3.org/MarkUp/html-spec/html-spec_toc.html" >HTML 2.0</a> -| <a href="http://www.w3.org/pub/WWW/MarkUp/html3/Contents.html" +| <a href="http://www.w3.org/MarkUp/html3/Contents.html" >HTML 3.0</a> | <a href="http://www.alis.com:8085/ietf/html/" >HTML i18n</a> -| <a href="http://www.w3.org/pub/WWW/MarkUp/" +| <a href="http://www.w3.org/MarkUp/" >HTML 3.2</a> | <a href="http://www.w3.org/TR/WD-html40/" >HTML 4.0</a> @@ -64,11 +64,11 @@ href="http://ugweb.cs.ualberta.ca/~gerald/validate/" <li><a href="http://ds.internic.net/rfc/rfc1945.txt" >HTTP 1.0</a> -| <a href="http://www.w3.org/pub/WWW/Protocols/" +| <a href="http://www.w3.org/Protocols/" >HTTP 1.1</a> <li><a -href="http://www.w3.org/pub/WWW/TheProject.html" +href="http://www.w3.org/TheProject.html" >The World Wide Web Consortium (W3C)</a> <li><a href="http://www.altavista.digital.com/">Alta Vista</a> diff --git a/lynx_help/lynx_url_support.html b/lynx_help/lynx_url_support.html index d17c5c88..37f78679 100644 --- a/lynx_help/lynx_url_support.html +++ b/lynx_help/lynx_url_support.html @@ -28,8 +28,8 @@ Lynx handles a number of URL types, that are enumerated below. For more details about URLs (Uniform Resource Locators) see <em>RFC1738</em>: <ul plain> -<li><a href="http://www.w3.org/pub/WWW/Addressing/rfc1738.txt" ->http://www.w3.org/pub/WWW/Addressing/rfc1738.txt</a> +<li><a href="http://www.w3.org/Addressing/rfc1738.txt" +>http://www.w3.org/Addressing/rfc1738.txt</a> <li><a href="ftp://ds.internic.net/rfc/rfc1738.txt" >ftp://ds.internic.net/rfc/rfc1738.txt</a> </ul> @@ -38,8 +38,8 @@ more details about URLs (Uniform Resource Locators) see <em>RFC1738</em>: the BASE if one was specified, otherwise with respect to the document's absolute URL, using the rules described in <em>RFC1808</em>: <ul plain> -<li><a href="http://www.w3.org/pub/WWW/Addressing/rfc1808.txt" ->http://www.w3.org/pub/WWW/Addressing/rfc1808.txt</a> +<li><a href="http://www.w3.org/Addressing/rfc1808.txt" +>http://www.w3.org/Addressing/rfc1808.txt</a> <li><a href="ftp://ds.internic.net/rfc/rfc1808.txt" >ftp://ds.internic.net/rfc/rfc1808.txt</a> </ul> diff --git a/makefile.in b/makefile.in index 115fbbcb..321547ca 100644 --- a/makefile.in +++ b/makefile.in @@ -36,7 +36,7 @@ mandir= @mandir@/man1 libdir= @libdir@ installbin= @INSTALL_PROGRAM@ -c -s -m 755 -installdoc= @INSTALL_DATA@ -c -m 444 +installdoc= @INSTALL_DATA@ ##set the relative location of the WWW library Implementation directory, ##from this directory @@ -102,7 +102,8 @@ SITE_DEFS = # Your defines here # defines include: # -DARCHIVE_ONLY (see README.configure) # -DDIRED_SUPPORT (see README.configure) -# -DEXP_CHARTRANS (see README.configure) +# -DDONT_TRACK_INTERNAL_LINKS - Handle following links to same doc differently. +# -DEXP_CHARTRANS (see README.configure - needs to be set) # -DEXP_CHARTRANS_AUTOSWITCH also let lynx switch term mode(Linux console only) # -DHP_TERMINAL For DIM workaround to REVERSE problems on HP terminals. # -DIGNORE_CTRL_C Define if Control-C shouldn't exit lynx. @@ -125,9 +126,8 @@ SITE_DEFS = # Your defines here # -DSLANG_MBCS_HACK prevent cutoff lines when using UTF8 console (slang only) # -DSOCKS For making a SOCKSified lynx. # -DUNDERLINE_LINKS Define if you want links underlined instead of bold. -# -DUNPAINT_CACHE (see README.configure) -# -DUSEHASH (see README.configure) # -DUSE_COLOR_STYLE (see README.configure) +# -DUSE_HASH (see README.configure) # -DUSE_SLANG (see README.configure) # -DUSE_ZLIB To use some functions from zlib library if you have it. # @@ -235,3 +235,8 @@ install: lynx $(installbin) lynx $(bindir)/lynx $(installdoc) lynx.man $(mandir)/lynx.1 $(installdoc) lynx.cfg $(libdir)/lynx.cfg + +uninstall: + -rm -f $(bindir)/lynx + -rm -f $(mandir)/lynx.1 + -rm -f $(libdir)/lynx.cfg diff --git a/src/GridText.c b/src/GridText.c index f7dfd402..3eb1cf0a 100644 --- a/src/GridText.c +++ b/src/GridText.c @@ -33,14 +33,12 @@ #include "LYList.h" #include "LYCharSets.h" #include "LYCharUtils.h" /* LYUCTranslateBack... */ -#ifdef EXP_CHARTRANS #include "UCDefs.h" #include "UCAux.h" #include "UCMap.h" #ifdef EXP_CHARTRANS_AUTOSWITCH #include "UCAuto.h" #endif /* EXP_CHARTRANS_AUTOSWITCH */ -#endif /* EXP_CHARTRANS */ #include "LYexit.h" #include "LYLeaks.h" @@ -172,6 +170,7 @@ struct _HText { int chars; /* Number of them */ TextAnchor * first_anchor; /* Singly linked list */ TextAnchor * last_anchor; + HTList * forms; /* also linked internally */ int last_anchor_number; /* user number */ BOOL source; /* Is the text source? */ BOOL toolbar; /* Toolbar set? */ @@ -202,11 +201,9 @@ struct _HText { int halted; /* emergency halt */ BOOL have_8bit_chars; /* Any non-ASCII chars? */ -#ifdef EXP_CHARTRANS LYUCcharset * UCI; /* node_anchor UCInfo */ int UCLYhndl; /* charset we are fed */ UCTransParams T; -#endif HTStream * target; /* Output stream */ HTStreamClass targetClass; /* Output routines */ @@ -358,13 +355,13 @@ PRIVATE void * LY_check_calloc ARGS2( #define LY_CALLOC LY_check_calloc -#else +#else /* CHECK_FREE_MEM */ + /* using the regular calloc */ #define LY_CALLOC calloc #endif /* CHECK_FREE_MEM */ -#ifdef EXP_CHARTRANS PRIVATE void HText_getChartransInfo ARGS1( HText *, me) { @@ -378,7 +375,26 @@ PRIVATE void HText_getChartransInfo ARGS1( } me->UCI = HTAnchor_getUCInfoStage(me->node_anchor, UCT_STAGE_HTEXT); } -#endif /* EXP_CHARTRANS */ + +PRIVATE void PerFormInfo_free ARGS1( + PerFormInfo *, form) +{ + if (form) { + FREE(form->accept_cs); + FREE(form->thisacceptcs); + FREE(form); + } +} + +PRIVATE void FormList_delete ARGS1( + HTList *, forms) +{ + HTList *cur = forms; + PerFormInfo *form; + while ((form = (PerFormInfo *)HTList_nextObject(cur)) != NULL) + PerFormInfo_free(form); + HTList_delete(forms); +} /* Creation Method ** --------------- @@ -475,14 +491,12 @@ PUBLIC HText * HText_new ARGS1( self->state = S_text; self->kanji_buf = '\0'; self->in_sjis = 0; -#ifdef EXP_CHARTRANS self->have_8bit_chars = NO; HText_getChartransInfo(self); UCSetTransParams(&self->T, self->UCLYhndl, self->UCI, current_char_set, &LYCharSet_UC[current_char_set]); -#endif /* EXP_CHARTRANS */ /* * Check the kcode setting if the anchor has a charset element. - FM @@ -499,13 +513,13 @@ PUBLIC HText * HText_new ARGS1( */ if (underscore_string[0] != '.') { /* - * Create and array of dots for the UNDERSCORES macro. - FM + * Create an array of dots for the UNDERSCORES macro. - FM */ memset(underscore_string, '.', (MAX_LINE-1)); underscore_string[(MAX_LINE-1)] = '\0'; underscore_string[MAX_LINE] = '\0'; /* - * Create and array of underscores for the STARS macro. - FM + * Create an array of underscores for the STARS macro. - FM */ memset(star_string, '_', (MAX_LINE-1)); star_string[(MAX_LINE-1)] = '\0'; @@ -618,6 +632,7 @@ PUBLIC void HText_free ARGS1( FREE(l); } + FormList_delete(self->forms); /* * Free the tabs list. - FM @@ -652,12 +667,10 @@ PUBLIC void HText_free ARGS1( * if it is not a destination of other links. - FM */ if (self->node_anchor) { -#ifdef EXP_CHARTRANS HTAnchor_resetUCInfoStage(self->node_anchor, -1, UCT_STAGE_STRUCTURED, UCT_SETBY_NONE); HTAnchor_resetUCInfoStage(self->node_anchor, -1, UCT_STAGE_HTEXT, UCT_SETBY_NONE); -#endif /* EXP_CHARTRANS */ if (HTAnchor_delete(self->node_anchor)) /* * Make sure HTMainAnchor won't point @@ -684,9 +697,7 @@ PRIVATE int display_line ARGS2( register int i, j; char buffer[7]; char *data; -#ifdef EXP_CHARTRANS size_t utf_extra = 0; -#endif #ifdef USE_COLOR_STYLE int current_style = 0; #endif @@ -793,8 +804,7 @@ PRIVATE int display_line ARGS2( } default: - i++; -#ifdef EXP_CHARTRANS + i++; if (text->T.output_utf8 && !isascii(buffer[0])) { if ((*buffer & 0xe0) == 0xc0) { utf_extra = 1; @@ -827,9 +837,7 @@ PRIVATE int display_line ARGS2( buffer[1] = '\0'; data += utf_extra; utf_extra = 0; - } else -#endif /* EXP_CHARTRANS */ - if (HTCJK != NOCJK && !isascii(buffer[0])) { + } else if (HTCJK != NOCJK && !isascii(buffer[0])) { /* * For CJK strings, by Masanobu Kimura. */ @@ -1016,9 +1024,7 @@ PRIVATE void display_page ARGS3( BOOL display_flag = FALSE; HTAnchor *link_dest, *link_dest_intl = NULL; static int last_nlinks = 0; -#ifdef EXP_CHARTRANS static int charset_last_displayed = -1; -#endif /* EXP_CHARTRANS */ lynx_mode = NORMAL_LYNX_MODE; @@ -1033,7 +1039,7 @@ PRIVATE void display_page ARGS3( refresh(); clear(); } - addstr("\n\nError accessing document\nNo data available\n"); + addstr("\n\nError accessing document.\nNo data available.\n"); refresh(); nlinks = 0; /* set number of links to 0 */ return; @@ -1076,7 +1082,6 @@ PRIVATE void display_page ARGS3( #endif /* !VMS */ } -#ifdef EXP_CHARTRANS if (LYlowest_eightbit[current_char_set] <= 255 && (current_char_set != charset_last_displayed) && /* @@ -1111,8 +1116,6 @@ PRIVATE void display_page ARGS3( #endif /* EXP_CHARTRANS_AUTOSWITCH */ } -#endif /* EXP_CHARTRANS */ - /* * Check whether to force a screen clear to enable scrollback, * or as a hack to fix a reverse clear screen problem for some @@ -1189,9 +1192,7 @@ PRIVATE void display_page ARGS3( int written = 0; int x_pos = offset + (int)(cp - data); int len = strlen(target); -#ifdef EXP_CHARTRANS size_t utf_extra = 0; -#endif /* EXP_CHARTRANS */ int y; text->page_has_target = YES; @@ -1218,7 +1219,6 @@ PRIVATE void display_page ARGS3( * First printable character of target. */ move((i + 1), x_pos); -#ifdef EXP_CHARTRANS if (text->T.output_utf8 && !isascii(tmp[0])) { if ((*tmp & 0xe0) == 0xc0) { utf_extra = 1; @@ -1251,9 +1251,7 @@ PRIVATE void display_page ARGS3( tmp[1] = '\0'; written += (utf_extra + 1); utf_extra = 0; - } else -#endif /* EXP_CHARTRANS */ - if (HTCJK != NOCJK && !isascii(tmp[0])) { + } else if (HTCJK != NOCJK && !isascii(tmp[0])) { /* * For CJK strings, by Masanobu Kimura. */ @@ -1270,7 +1268,6 @@ PRIVATE void display_page ARGS3( /* * Output all the other printable target chars. */ -#ifdef EXP_CHARTRANS if (text->T.output_utf8 && !isascii(tmp[0])) { if ((*tmp & 0xe0) == 0xc0) { utf_extra = 1; @@ -1303,9 +1300,7 @@ PRIVATE void display_page ARGS3( tmp[1] = '\0'; written += (utf_extra + 1); utf_extra = 0; - } else -#endif /* EXP_CHARTRANS */ - if (HTCJK != NOCJK && !isascii(tmp[0])) { + } else if (HTCJK != NOCJK && !isascii(tmp[0])) { /* * For CJK strings, by Masanobu Kimura. */ @@ -1396,6 +1391,7 @@ PRIVATE void display_page ARGS3( if (traversal) cp_AnchorAddress = stub_HTAnchor_address(link_dest); else { +#ifndef DONT_TRACK_INTERNAL_LINKS if (Anchor_ptr->link_type == INTERNAL_LINK_ANCHOR) { link_dest_intl = HTAnchor_followTypedLink( (HTAnchor *)Anchor_ptr->anchor, LINK_INTERNAL); @@ -1410,14 +1406,17 @@ PRIVATE void display_page ARGS3( link_dest_intl = NULL; if (link_dest_intl) { char *cp2 = HTAnchor_address(link_dest_intl); +#if 0 cp = strchr(cp2, '#'); if (cp && cp != cp2 && 0!=strncmp(cp2, "LYNXIMGMAP:", 11)) { StrAllocCopy(cp_AnchorAddress, cp); FREE(cp2); } else +#endif cp_AnchorAddress = cp2; } else +#endif cp_AnchorAddress = HTAnchor_address(link_dest); } FREE(links[nlinks].lname); @@ -1552,13 +1551,8 @@ PRIVATE void display_page ARGS3( addstr("\n Document is empty"); } - - if (HTCJK != NOCJK || -#ifdef EXP_CHARTRANS - text->T.output_utf8 || -#endif /* EXP_CHARTRANS */ - TRACE) { - /* + if (HTCJK != NOCJK || text->T.output_utf8 || TRACE) { + /* * For non-multibyte curses. */ lynx_force_repaint(); @@ -1607,7 +1601,10 @@ PRIVATE void split_line ARGS2( { HTStyle * style = text->style; HTLine * temp; - int spare, inew; + int spare; +#if defined(USE_COLOR_STYLE) + int inew; +#endif int indent = text->in_line_1 ? text->style->indent1st : text->style->leftIndent; TextAnchor * a; @@ -1867,9 +1864,7 @@ PRIVATE void split_line ARGS2( for (i = (plen - 1); i >= 0; i--) { if (p[i] == LY_BOLD_START_CHAR || p[i] == LY_BOLD_END_CHAR || -#ifdef EXP_CHARTRANS IS_UTF_EXTRA(p[i]) || -#endif /* EXP_CHARTRANS */ p[i] == LY_SOFT_HYPHEN) { ctrl_chars_on_this_line++; } @@ -1920,9 +1915,7 @@ PRIVATE void split_line ARGS2( *cp == LY_UNDERLINE_END_CHAR || *cp == LY_BOLD_START_CHAR || *cp == LY_BOLD_END_CHAR || -#ifdef EXP_CHARTRANS IS_UTF_EXTRA(*cp) || -#endif /* EXP_CHARTRANS */ *cp == LY_SOFT_HYPHEN) ctrl_chars_on_previous_line++; } @@ -2059,7 +2052,17 @@ PUBLIC void HText_appendCharacter ARGS2( return; if (text->halted > 1) { + /* + * We should stop outputting more text, because low memory was + * detected. - kw + */ if (text->halted == 2) { + /* + * But if we haven't done so yet, first append a warning. + * We should still have a few bytes left for that :). + * We temporarily reset test->halted to 0 for this, since + * this function will get called recursively. - kw + */ text->halted = 0; text->kanji_buf = '\0'; HText_appendText(text, " *** MEMORY EXHAUSTED ***"); @@ -2072,12 +2075,20 @@ PUBLIC void HText_appendCharacter ARGS2( */ if (ch == '\033' && HTCJK == NOCJK) /* decimal 27 */ return; -#ifdef EXP_CHARTRANS +#ifndef USE_SLANG + /* + * Block 8-bit chars not allowed by the current display character + * set if they are below what LYlowest_eightbit indicates. + * Slang used its own replacements, so for USE_SLANG blocking her + * is not necessary to protect terminas from those characters. + * They should have been filtered out or translated by an earlier + * processing stage anyway. - kw + */ if ((unsigned char)ch >= 128 && HTCJK == NOCJK && !text->T.transp && !text->T.output_utf8 && (unsigned char)ch < LYlowest_eightbit[current_char_set]) return; -#endif /* EXP_CHARTRANS */ +#endif /* USE_SLANG */ if ((unsigned char)ch == 155 && HTCJK == NOCJK) { /* octal 233 */ if (!HTPassHighCtrlRaw && #ifdef EXP_CHARTRANS @@ -2105,6 +2116,10 @@ PUBLIC void HText_appendCharacter ARGS2( switch(text->state) { case S_text: if (ch == '\033') { + /* + ** Setting up for CJK escape sequence handling (based on + ** Takuya ASADA's (asada@three-a.co.jp) CJK Lynx). - FM + */ text->state = S_esc; text->kanji_buf = '\0'; return; @@ -2112,6 +2127,9 @@ PUBLIC void HText_appendCharacter ARGS2( break; case S_esc: + /* + * Expecting '$'or '(' following CJK ESC. + */ if (ch == '$') { text->state = S_dollar; return; @@ -2123,6 +2141,9 @@ PUBLIC void HText_appendCharacter ARGS2( } case S_dollar: + /* + * Expecting '@', 'B', 'A' or '(' after CJK "ESC$". + */ if (ch == '@' || ch == 'B' || ch=='A') { text->state = S_nonascii_text; return; @@ -2135,6 +2156,9 @@ PUBLIC void HText_appendCharacter ARGS2( break; case S_dollar_paren: + /* + * Expecting 'C' after CJK "ESC$(". + */ if (ch == 'C') { text->state = S_nonascii_text; return; @@ -2144,11 +2168,22 @@ PUBLIC void HText_appendCharacter ARGS2( break; case S_paren: + /* + * Expecting 'B', 'J', 'T' or 'I' after CJK "ESC(". + */ if (ch == 'B' || ch == 'J' || ch == 'T') { + /* + * Can split here. - FM + */ + text->permissible_split = (int)text->last_line->size; text->state = S_text; return; } else if (ch == 'I') { text->state = S_jisx0201_text; + /* + * Can split here. - FM + */ + text->permissible_split = (int)text->last_line->size; return; } else { text->state = S_text; @@ -2197,7 +2232,10 @@ PUBLIC void HText_appendCharacter ARGS2( text->kanji_buf = (char)kb; } else { text->kanji_buf = ch; - text->permissible_split = line->size; /* Can split here */ + /* + * Can split here. - FM + */ + text->permissible_split = (int)text->last_line->size; return; } } @@ -2265,14 +2303,12 @@ PUBLIC void HText_appendCharacter ARGS2( #endif } -#ifdef EXP_CHARTRANS if (IS_UTF_EXTRA(ch)) { line->data[line->size++] = ch; line->data[line->size] = '\0'; ctrl_chars_on_this_line++; return; } -#endif /* EXP_CHARTRANS */ /* * New Line. @@ -2431,12 +2467,11 @@ check_IgnoreExcess: } } else if ((int)line->size >= (int)(MAX_LINE-1)) { /* - * Never overrun memory if LYcols is set to a large value - kw + * Never overrun memory if LYcols is set to a large value - KW */ new_line(text); } - /* * Insert normal characters. */ @@ -2444,16 +2479,14 @@ check_IgnoreExcess: ch = ' '; } -#ifdef EXP_CHARTRANS if (ch & 0x80) text->have_8bit_chars = YES; -#endif { - HTLine * line = text->last_line; /* May have changed */ HTFont font = style->font; unsigned char hi, lo, tmp[2]; + line = text->last_line; /* May have changed */ if (HTCJK != NOCJK && text->kanji_buf) { hi = (unsigned char)text->kanji_buf, lo = (unsigned char)ch; if (HTCJK == JAPANESE && text->kcode == NOKANJI) { @@ -2606,11 +2639,14 @@ PUBLIC int HText_beginAnchor ARGS3( a->anchor = anc; a->extent = 0; text->last_anchor = a; - + +#ifndef DONT_TRACK_INTERNAL_LINKS if (HTAnchor_followTypedLink((HTAnchor*)anc, LINK_INTERNAL)) { a->number = ++(text->last_anchor_number); a->link_type = INTERNAL_LINK_ANCHOR; - } else if (HTAnchor_followMainLink((HTAnchor*)anc)) { + } else +#endif + if (HTAnchor_followMainLink((HTAnchor*)anc)) { a->number = ++(text->last_anchor_number); a->link_type = HYPERTEXT_ANCHOR; } else { @@ -3124,6 +3160,11 @@ PUBLIC void HText_endAppend ARGS1( new_line(text); if (text->halted) { + /* + * If output was stopped becasue memory was low, and we made + * it to the end of the document, reset those flags and hope + * things are better now. - kw + */ LYFakeZap(NO); text->halted = 0; } @@ -3575,6 +3616,7 @@ PUBLIC int HTGetLinkInfo ARGS6( if (traversal) { cp_freeme = stub_HTAnchor_address(link_dest); } else { +#ifndef DONT_TRACK_INTERNAL_LINKS if (a->link_type == INTERNAL_LINK_ANCHOR) { link_dest_intl = HTAnchor_followTypedLink( (HTAnchor *)a->anchor, LINK_INTERNAL); @@ -3588,6 +3630,7 @@ PUBLIC int HTGetLinkInfo ARGS6( } if (link_dest_intl) { char *cp2 = HTAnchor_address(link_dest_intl); +#if 0 char *cp = strchr(cp2, '#'); if (cp && cp != cp2 && 0!=strncmp(cp2, "LYNXIMGMAP:", 11)) { @@ -3595,11 +3638,15 @@ PUBLIC int HTGetLinkInfo ARGS6( FREE(cp2); return(WWW_INTERN_LINK_TYPE); } else { +#endif FREE(*lname); *lname = cp2; return(WWW_INTERN_LINK_TYPE); +#if 0 } +#endif } else +#endif cp_freeme = HTAnchor_address(link_dest); } StrAllocCopy(*lname, cp_freeme); @@ -3716,7 +3763,7 @@ PUBLIC char * HText_getTitle NOARGS (char *) HTAnchor_title(HTMainText->node_anchor) : NULL); } -#ifdef USEHASH +#ifdef USE_HASH PUBLIC char *HText_getStyle NOARGS { return(HTMainText ? @@ -4708,9 +4755,11 @@ PUBLIC void print_crawl_to_fd ARGS3( return; line = HTMainText->last_line->next; - fprintf(fp,"THE_URL:%s\n",thelink); - if (thetitle != NULL)fprintf(fp,"THE_TITLE:%s\n",thetitle);; - + fprintf(fp, "THE_URL:%s\n", thelink); + if (thetitle != NULL) { + fprintf(fp, "THE_TITLE:%s\n", thetitle); + } + for (;; line = line->next) { /* * Add offset. @@ -5364,7 +5413,6 @@ PUBLIC char * HTLoadedDocumentCharset NOARGS return (NULL); } -#ifdef EXP_CHARTRANS PUBLIC BOOL HTLoadedDocumentEightbit NOARGS { if (!HTMainText) @@ -5372,7 +5420,6 @@ PUBLIC BOOL HTLoadedDocumentEightbit NOARGS else return (HTMainText->have_8bit_chars); } -#endif PUBLIC void HText_setNodeAnchorBookmark ARGS1( CONST char *, bookmark) @@ -5431,28 +5478,21 @@ PRIVATE int HText_TrueLineSize ARGS3( if (IgnoreSpaces) { for (i = 0; i < line->size; i++) { if (!IsSpecialAttrChar((unsigned char)line->data[i]) && -#ifdef EXP_CHARTRANS (!(text && text->T.output_utf8) || (unsigned char)line->data[i] < 128 || ((unsigned char)(line->data[i] & 0xc0) == 0xc0)) && -#endif !isspace((unsigned char)line->data[i]) && (unsigned char)line->data[i] != HT_NON_BREAK_SPACE && (unsigned char)line->data[i] != HT_EM_SPACE) { -#ifdef EXP_CHARTRANS - if (!text->T.output_utf8 || (unsigned char)line->data[i] < 128 || - ((unsigned char)(line->data[i] & 0xc0) == 0xc0)) -#endif /* EXP_CHARTRANS */ true_size++; } } } else { for (i = 0; i < line->size; i++) { - if (!IsSpecialAttrChar(line->data[i])) { -#ifdef EXP_CHARTRANS - if (!text->T.output_utf8 || (unsigned char)line->data[i] < 128 || - ((unsigned char)(line->data[i] & 0xc0) == 0xc0)) -#endif /* EXP_CHARTRANS */ + if (!IsSpecialAttrChar(line->data[i]) && + (!(text && text->T.output_utf8) || + (unsigned char)line->data[i] < 128 || + ((unsigned char)(line->data[i] & 0xc0) == 0xc0))) { true_size++; } } @@ -5674,8 +5714,9 @@ PRIVATE int HTFormMethod; PRIVATE char * HTFormAction = NULL; PRIVATE char * HTFormEnctype = NULL; PRIVATE char * HTFormTitle = NULL; -PRIVATE char * HTFormAcceptCharset = NULL; /* !!! NEED TO DO SOMETHING WITH IT */ +PRIVATE char * HTFormAcceptCharset = NULL; PRIVATE BOOLEAN HTFormDisabled = FALSE; +PRIVATE PerFormInfo * HTCurrentForm; PUBLIC void HText_beginForm ARGS5( char *, action, @@ -5684,6 +5725,7 @@ PUBLIC void HText_beginForm ARGS5( char *, title, CONST char *, accept_cs) { + PerFormInfo * newform; HTFormMethod = URL_GET_METHOD; HTFormNumber++; HTFormFields = 0; @@ -5709,12 +5751,6 @@ PUBLIC void HText_beginForm ARGS5( HTFormMethod = URL_POST_METHOD; /* - * Check the ACCEPT_CHARSET. - kw - */ - if (accept_cs != NULL) - StrAllocCopy(HTFormAcceptCharset, accept_cs); - - /* * Check the ENCTYPE. - FM */ if ((enctype != NULL) && *enctype) { @@ -5734,6 +5770,35 @@ PUBLIC void HText_beginForm ARGS5( else FREE(HTFormTitle); + /* + * Check for an ACCEPT_CHARSET. If present, store it and + * convert to lowercase and collapse spaces. - kw + */ + if (accept_cs != NULL) { + int i; + StrAllocCopy(HTFormAcceptCharset, accept_cs); + collapse_spaces(HTFormAcceptCharset); + for (i = 0; HTFormAcceptCharset[i]; i++) + HTFormAcceptCharset[i] = TOLOWER(HTFormAcceptCharset[i]); + } + + /* + * Create a new "PerFormInfo" structure to hold info on the current + * form. The HTForm* variables could all migrate there, currently + * this isn't done (yet?) but it might be less confusing. + * Currently the only data saved in this structure that will actually + * be used is the accept_cs string. + * This will be appended to the forms list kept by the HText object + * if and when we reach a HText_endForm. - kw + */ + newform = (PerFormInfo *)calloc(1, sizeof(PerFormInfo)); + if (newform == NULL) + outofmem(__FILE__,"HText_beginForm"); + newform->number = HTFormNumber; + + PerFormInfo_free(HTCurrentForm); /* shouldn't happen here - kw */ + HTCurrentForm = newform; + if (TRACE) fprintf(stderr, "BeginForm: action:%s Method:%d%s%s%s%s%s%s\n", @@ -5783,6 +5848,28 @@ PUBLIC void HText_endForm ARGS1( a = a->next; } } + /* + * Append info on the current form to the HText object's list of + * forms. + * HText_beginInput call will have set some of the data in the + * PerFormInfo structure (if there were any form fields at all), + * we also fill in the ACCEPT-CHARSET data now (this could have + * been done earlier). - kw + */ + if (HTCurrentForm) { + if (HTFormDisabled) + HTCurrentForm->disabled = TRUE; + HTCurrentForm->accept_cs = HTFormAcceptCharset; + HTFormAcceptCharset = NULL; + if (!text->forms) + text->forms = HTList_new(); + HTList_appendObject(text->forms, HTCurrentForm); + HTCurrentForm = NULL; + } else { + if (TRACE) + fprintf(stderr, "endForm: HTCurrentForm is missing!\n"); + } + FREE(HTCurSelectGroup); FREE(HTCurSelectGroupSize); FREE(HTCurSelectedOptionValue); @@ -6239,11 +6326,6 @@ PUBLIC int HText_beginInput ARGS3( } } - if (text->last_anchor) { - text->last_anchor->next = a; - } else { - text->first_anchor = a; - } a->next = 0; a->anchor = NULL; a->link_type = INPUT_ANCHOR; @@ -6420,6 +6502,15 @@ PUBLIC int HText_beginInput ARGS3( } } + /* + * Add this anchor to the anchor list + */ + if (text->last_anchor) { + text->last_anchor->next = a; + } else { + text->first_anchor = a; + } + /* * Set VALUE, if it exists. Otherwise, if it's not * an option list make it a zero-length string. - FM @@ -6502,7 +6593,8 @@ PUBLIC int HText_beginInput ARGS3( } /* - * Store accept-charset if present. - kw + * Store accept-charset if present, converting to lowercase + * and collapsing spaces. - kw */ if (I->accept_cs) { StrAllocCopy(f->accept_cs, I->accept_cs); @@ -6607,10 +6699,31 @@ PUBLIC int HText_beginInput ARGS3( } /* - * Add this anchor to the anchor list + * Finalise adding this anchor to the anchor list */ text->last_anchor = a; + if (HTCurrentForm) { /* should always apply! - kw */ + if (!HTCurrentForm->first_field) { + HTCurrentForm->first_field = f; + } + HTCurrentForm->last_field = f; + HTCurrentForm->nfields++; /* will count hidden fields - kw */ + /* + * Propagate form field's accept-charset attribute to enclosing + * form if the form itself didn't have an accept-charset - kw + */ + if (f->accept_cs && !HTFormAcceptCharset) { + StrAllocCopy(HTFormAcceptCharset, f->accept_cs); + } + if (!text->forms) { + text->forms = HTList_new(); + } + } else { + if (TRACE) + fprintf(stderr, "beginInput: HTCurrentForm is missing!\n"); + } + if (TRACE) { fprintf(stderr,"Input link: name=%s\nvalue=%s\nsize=%d\n", f->name, @@ -6640,6 +6753,102 @@ PUBLIC int HText_beginInput ARGS3( return(f->size); } +/* + * Get a translation (properly: transcoding) quality, factoring in + * our ability to translate (an UCTQ_t) and a possible q parameter + * on the given charset string, for cs_from -> givenmime. + * The parsed input string will be mutilated on exit(!). + * Note that results are not normalised to 1.0, but results from + * different calls of this function can be compared. - kw + */ +PRIVATE double get_trans_q ARGS2( + int, cs_from, + char *, givenmime) +{ + double dq = 0.0, df = 1.0; + UCTQ_t tq; + char *p; + if (!givenmime || !(*givenmime)) + return dq; + if ((p = strchr(givenmime,';')) != NULL) { + *p++ = '\0'; + } + if (!strcmp(givenmime, "*")) + tq = UCCanTranslateFromTo(cs_from, + UCGetLYhndl_byMIME("utf-8")); + else + tq = UCCanTranslateFromTo(cs_from, + UCGetLYhndl_byMIME(givenmime)); + if (tq <= TQ_NO) + return dq; + dq = 1.0; + if (p && *p) { + char *pair, *field = p, *pval, *ptok; + /* Get all the parameters to the Charset */ + while ((pair = HTNextTok(&field, ";", "\"", NULL)) != NULL) { + if ((ptok = HTNextTok(&pair, "= ", NULL, NULL)) != NULL && + (pval = HTNextField(&pair)) != NULL) { + if (0==strcasecomp(ptok,"q")) { + df = strtod(pval, NULL); + break; + } + } + } + return (df * tq); + } else { + return tq; + } +} + +/* + * Find the best charset for submission, if we have an ACCEPT_CHARSET + * list. It factors in how well we can translate (just as guess, and + * not a very good one..) and possible ";q=" factors. Yes this is + * more general than it needs to be here. + * + * Input is cs_in and acceptstring. + * + * Will return charset handle as int. + * best_csname will point to a newly allocated MIME string for the + * charset corresponding to the return value if return value >= 0. + * - kw + */ +PRIVATE int find_best_target_cs ARGS3( + char **, best_csname, + int, cs_from, + CONST char *, acceptstring) +{ + char *paccept = NULL; + double bestq = -1.0; + char *bestmime = NULL; + char *field, *nextfield; + StrAllocCopy(paccept, acceptstring); + nextfield = paccept; + while ((field = HTNextTok(&nextfield, ",", "\"", NULL)) != NULL) { + double q; + if (*field != '\0') { + /* Get the Charset*/ + q = get_trans_q(cs_from, field); + if (q > bestq) { + bestq = q; + bestmime = field; + } + } + } + if (bestmime) { + if (!strcmp(bestmime, "*")) /* non-standard for HTML attribute.. */ + StrAllocCopy(*best_csname, "utf-8"); + else + StrAllocCopy(*best_csname, bestmime); + FREE(paccept); + if (bestq > 0) + return (UCGetLYhndl_byMIME(*best_csname)); + else + return (-1); + } + FREE(paccept); + return (-1); +} PUBLIC void HText_SubmitForm ARGS4( FormInfo *, submit_item, @@ -6650,6 +6859,7 @@ PUBLIC void HText_SubmitForm ARGS4( TextAnchor *anchor_ptr; int form_number = submit_item->number; FormInfo *form_ptr; + PerFormInfo *thisform; int len; char *query = NULL; char *escaped1 = NULL, *escaped2 = NULL; @@ -6664,7 +6874,7 @@ PUBLIC void HText_SubmitForm ARGS4( int target_cs = -1; CONST char *out_csname; CONST char *target_csname = NULL; - char *name_used; + char *name_used = ""; #ifdef EXP_CHARTRANS BOOL form_has_8bit = NO, form_has_special = NO; BOOL field_has_8bit = NO, field_has_special = NO; @@ -6672,7 +6882,7 @@ PUBLIC void HText_SubmitForm ARGS4( BOOL have_accept_cs = NO; BOOL success; BOOL had_chartrans_warning = NO; - char *val_used; + char *val_used = ""; char *copied_val_used = NULL; char *copied_name_used = NULL; #endif @@ -6680,6 +6890,21 @@ PUBLIC void HText_SubmitForm ARGS4( if (!HTMainText) return; + thisform = HTList_objectAt(HTMainText->forms, form_number - 1); + /* Sanity check */ + if (!thisform) { + if (TRACE) + fprintf(stderr, + "SubmitForm: form %d not in HTMainText's list!\n", + form_number); + } else if (thisform->number != form_number) { + if (TRACE) + fprintf(stderr, + "SubmitForm: failed sanity check, %d!=%d !\n", + thisform->number, form_number); + thisform = NULL; + } + if (submit_item->submit_action) { /* * If we're mailing, make sure it's a mailto ACTION. - FM @@ -6737,17 +6962,26 @@ PUBLIC void HText_SubmitForm ARGS4( * charset to submit */ #ifdef EXP_CHARTRANS - - if (submit_item->accept_cs && - strcasecomp(submit_item->accept_cs, "UNKNOWN")) - have_accept_cs = YES; - if (submit_item->accept_cs && *submit_item->accept_cs && - strcmp(submit_item->accept_cs, "*") && + + /* Look at ACCEPT-CHARSET on the submitting field if we have one. */ + if (thisform && submit_item->accept_cs && strcasecomp(submit_item->accept_cs, "UNKNOWN")) { - target_cs = UCGetLYhndl_byMIME(submit_item->accept_cs); - if (target_cs >= 0) { - target_csname = submit_item->accept_cs; - } + have_accept_cs = YES; + target_cs = find_best_target_cs(&thisform->thisacceptcs, + current_char_set, + submit_item->accept_cs); + } + /* Look at ACCEPT-CHARSET on form as a whole if submitting field + * didn't have one. */ + if (thisform && !have_accept_cs && thisform->accept_cs && + strcasecomp(thisform->accept_cs, "UNKNOWN")) { + have_accept_cs = YES; + target_cs = find_best_target_cs(&thisform->thisacceptcs, + current_char_set, + thisform->accept_cs); + } + if (have_accept_cs && (target_cs >= 0) && thisform->thisacceptcs) { + target_csname = thisform->thisacceptcs; } if (target_cs < 0 && @@ -7798,6 +8032,7 @@ PRIVATE void free_all_texts NOARGS FREE(HTFormEnctype); FREE(HTFormTitle); FREE(HTFormAcceptCharset); + PerFormInfo_free(HTCurrentForm); return; } @@ -7846,13 +8081,11 @@ PUBLIC BOOL HText_hasNoCacheSet ARGS1( return ((text && text->no_cache) ? TRUE : FALSE); } -#ifdef EXP_CHARTRANS PUBLIC BOOL HText_hasUTF8OutputSet ARGS1( HText *, text) { return ((text && text->T.output_utf8) ? TRUE : FALSE); } -#endif /* ** Check charset and set the kcode element. - FM @@ -7873,7 +8106,7 @@ PUBLIC void HText_setKcode ARGS3( return; /* - ** Check whether we have some king of info. - kw + ** Check whether we have some kind of info. - kw */ if (!charset && !p_in) { return; @@ -7897,7 +8130,8 @@ PUBLIC void HText_setKcode ARGS3( ** so check the charset value and set the text->kcode element ** appropriately. - FM */ - if (!strcmp(charset, "shift_jis")) { + if (!strcmp(charset, "shift_jis") || + !strcmp(charset, "x-shift-jis")) { text->kcode = SJIS; } else if ((p_in && (p_in->enc == UCT_ENC_CJK)) || !strcmp(charset, "euc-jp") || @@ -7935,7 +8169,10 @@ PUBLIC void HText_setBreakPoint ARGS1( if (!text) return; - text->permissible_split = (int)text->last_line->size; /* Can split here */ + /* + * Can split here. - FM + */ + text->permissible_split = (int)text->last_line->size; return; } diff --git a/src/GridText.h b/src/GridText.h index 9247e14d..42a50c0c 100644 --- a/src/GridText.h +++ b/src/GridText.h @@ -83,7 +83,7 @@ extern char * HText_getServer NOPARAMS; extern char * HText_getOwner NOPARAMS; extern char * HText_getContentBase NOPARAMS; extern char * HText_getContentLocation NOPARAMS; -#ifdef USEHASH +#ifdef USE_HASH extern char * HText_getStyle NOPARAMS; #endif extern void HText_setMainTextOwner PARAMS((CONST char * owner)); diff --git a/src/HTForms.h b/src/HTForms.h index b140f4d7..3d6f608d 100644 --- a/src/HTForms.h +++ b/src/HTForms.h @@ -81,6 +81,27 @@ typedef struct _FormInfo { char * accept_cs; } FormInfo; +/* + * As structure for info associated with a form. + * There is some redundancy here, this shouldn't waste too much memory + * since the total number of forms (as opposed to form fields) per doc + * is expected to be rather small. + * More things which are per form rather than per field could be moved + * here. - kw + */ +typedef struct _PerFormInfo +{ + int number; /* form number, see GridText.c */ + /* except for the last two, the followign fields aren't actually used.. */ + int disabled; /* If YES, can't change values */ + struct _PerFormInfo * next; /* pointer to next form in doc */ + int nfields; /* number of fields */ + FormInfo * first_field; + FormInfo * last_field; /* pointer to last field in form */ + char * accept_cs; + char * thisacceptcs; /* used during submit */ +} PerFormInfo; + #define HYPERTEXT_ANCHOR 1 #define INPUT_ANCHOR 2 /* forms mode input fields */ #define INTERNAL_LINK_ANCHOR 5 /* 1+4, can be used as bitflag... - kw */ diff --git a/src/HTInit.c b/src/HTInit.c index 540c1c67..38856772 100644 --- a/src/HTInit.c +++ b/src/HTInit.c @@ -46,7 +46,6 @@ PUBLIC void HTFormatInit NOARGS { FILE *fp = NULL; char *cp = NULL; - extern char * personal_type_map, * global_type_map; #ifdef NeXT HTSetPresentation("application/postscript", "open %s", 1.0, 2.0, 0.0, 0); @@ -679,8 +678,6 @@ PRIVATE int HTLoadTypesConfigFile ARGS1(char *,fn) PUBLIC void HTFileInit NOARGS { FILE *fp; - extern char *global_extension_map; - extern char *personal_extension_map; if (TRACE) fprintf (stderr, "@@@ Using default extension map\n"); diff --git a/src/HTML.c b/src/HTML.c index 5da10c39..15ed71c6 100644 --- a/src/HTML.c +++ b/src/HTML.c @@ -26,15 +26,13 @@ #include "HTMLGen.h" #include "HTParse.h" #include "HTList.h" +#include "UCMap.h" +#include "UCDefs.h" +#include "UCAux.h" #include "LYGlobalDefs.h" #include "LYCharUtils.h" #include "LYCharSets.h" -#ifdef EXP_CHARTRANS -#include "UCMap.h" -#include "UCDefs.h" -#include "UCAux.h" -#endif #include "HTAlert.h" #include "HTFont.h" @@ -500,16 +498,26 @@ PUBLIC void HTML_write ARGS3(HTStructured *, me, CONST char*, s, int, l) HTML_put_character(me, *p); } +#ifndef DONT_TRACK_INTERNAL_LINKS + /* A flag is used to keep track of whether an "URL reference" encountered had a real "URL" or not. (This is the terminology of the Fielding Internet Draft.) In the latter case, it will be marked as an "internal" - link. The flag is set before we stard messing around with the string + link. The flag is set before we start messing around with the string (resolution of relative URLs etc.). - kw */ #define CHECK_FOR_INTERN(s) intern_flag = (s && (*s=='#' || *s=='\0')) ? TRUE : FALSE; + /* Last argument to pass to HTAnchor_findChildAndLink() calls, just an abbreviation. - kw */ #define INTERN_LT (HTLinkType *)(intern_flag ? LINK_INTERNAL : NULL) +#else /* TRACK_INTERNAL_LINKS */ + +#define CHECK_FOR_INTERN(s) /* do nothing */ ; +#define INTERN_LT (HTLinkType *)NULL + +#endif /* TRACK_INTERNAL_LINKS */ + #ifdef USE_COLOR_STYLE char class_string[TEMPSTRINGSIZE]; char prevailing_class[TEMPSTRINGSIZE]; @@ -615,9 +623,7 @@ PRIVATE void HTML_start_element ARGS6( char *title = NULL; char *I_value = NULL, *I_name = NULL; char *temp = NULL; -#ifdef EXP_CHARTRANS int dest_char_set = -1; -#endif HTParentAnchor *dest = NULL; /* An anchor's destination */ BOOL dest_ismap = FALSE; /* Is dest an image map script? */ BOOL UseBASE = TRUE; /* Resoved vs. BASE if present? */ @@ -801,7 +807,7 @@ PRIVATE void HTML_start_element ARGS6( if (!me->text) UPDATE_STYLE; if (present) - LYHandleMETA(me, present, (CONST char **)value, (char **)&include); + LYHandleMETA(me, present, value, (char **)&include); break; case HTML_TITLE: @@ -1091,14 +1097,14 @@ PRIVATE void HTML_start_element ARGS6( INTERN_LT); /* Type */ if ((dest = HTAnchor_parent( HTAnchor_followMainLink((HTAnchor*)me->CurrentA) - )) != 0) { + )) != NULL) { if (!HTAnchor_title(dest)) HTAnchor_setTitle(dest, title); dest = NULL; #ifdef EXP_CHARTRANS - if (present[HTML_A_CHARSET] && - value[HTML_A_CHARSET] && *value[HTML_A_CHARSET] != '\0') { - dest_char_set = UCGetLYhndl_byMIME(value[HTML_A_CHARSET]); + if (present[HTML_LINK_CHARSET] && + value[HTML_LINK_CHARSET] && *value[HTML_LINK_CHARSET] != '\0') { + dest_char_set = UCGetLYhndl_byMIME(value[HTML_LINK_CHARSET]); if (dest_char_set < 0) dest_char_set = UCLYhndl_for_unrec; } @@ -1861,7 +1867,8 @@ PRIVATE void HTML_start_element ARGS6( * The INDENT value is in "en" (enval per column) units. * Divide it by enval, rounding odd values up. - FM */ - target = ((1.0 * atoi(value[HTML_TAB_INDENT])) / enval) + 0.5; + target = + (int)(((1.0 * atoi(value[HTML_TAB_INDENT])) / enval)+(0.5)); } FREE(temp); /* @@ -2156,8 +2163,9 @@ PRIVATE void HTML_start_element ARGS6( CHECK_ID(HTML_GEN_ID); HText_setLastChar(me->text, ' '); /* absorb white space */ if (!me->style_change) { - if (HText_LastLineSize(me->text, FALSE)) + if (HText_LastLineSize(me->text, FALSE)) { HText_appendCharacter(me->text, '\r'); + } } else { UPDATE_STYLE; HText_appendCharacter(me->text, '\t'); @@ -2549,6 +2557,8 @@ PRIVATE void HTML_start_element ARGS6( * Set to know we are in an anchor. */ me->inA = TRUE; + if (!me->text) + UPDATE_STYLE; /* * Load id_string if we have an ID or NAME. - FM @@ -2571,11 +2581,12 @@ PRIVATE void HTML_start_element ARGS6( * Handle the reference. - FM */ if (present && present[HTML_A_HREF]) { - +#ifndef DONT_TRACK_INTERNAL_LINKS if (present[HTML_A_ISMAP]) intern_flag = FALSE; else CHECK_FOR_INTERN(value[HTML_A_HREF]); +#endif /* * Prepare to do housekeeping on the reference. - FM */ @@ -2679,37 +2690,38 @@ PRIVATE void HTML_start_element ARGS6( } if (present[HTML_A_ISMAP]) dest_ismap = TRUE; -#ifdef EXP_CHARTRANS - if (present[HTML_A_CHARSET] && - value[HTML_A_CHARSET] && *value[HTML_A_CHARSET] != '\0') { - dest_char_set = UCGetLYhndl_byMIME(value[HTML_A_CHARSET]); + if (present[HTML_A_CHARSET] && + value[HTML_A_CHARSET] && *value[HTML_A_CHARSET] != '\0') { + /* + ** Set up to load the anchor's chartrans structures. + */ + StrAllocCopy(temp, value[HTML_A_CHARSET]); + TRANSLATE_AND_UNESCAPE_TO_STD(&temp); + dest_char_set = UCGetLYhndl_byMIME(temp); if (dest_char_set < 0) { dest_char_set = UCLYhndl_for_unrec; } - } - if (title != NULL || dest_ismap == TRUE || dest_char_set >= 0) -#else - if (title != NULL || dest_ismap == TRUE) -#endif /* EXP_CHARTRANS */ + } + if (title != NULL || dest_ismap == TRUE || dest_char_set >= 0) { dest = HTAnchor_parent( HTAnchor_followMainLink((HTAnchor*)me->CurrentA) ); + } if (dest && title != NULL && HTAnchor_title(dest) == NULL) HTAnchor_setTitle(dest, title); if (dest && dest_ismap) dest->isISMAPScript = TRUE; -#ifdef EXP_CHARTRANS - if (dest && dest_char_set >= 0) - HTAnchor_setUCInfoStage(dest, dest_char_set, - UCT_STAGE_PARSER, - UCT_SETBY_LINK); - dest_char_set = -1; -#endif /* EXP_CHARTRANS */ + if (dest && dest_char_set >= 0) { + HTAnchor_setUCInfoStage(dest, dest_char_set, + UCT_STAGE_PARSER, + UCT_SETBY_LINK); + } + FREE(temp); dest = NULL; dest_ismap = FALSE; + dest_char_set = -1; FREE(title); } - UPDATE_STYLE; me->CurrentANum = HText_beginAnchor(me->text, me->inUnderline, me->CurrentA); if (me->inBoldA == TRUE && me->inBoldH == FALSE) @@ -2740,7 +2752,7 @@ PRIVATE void HTML_start_element ARGS6( if (me->inA && me->CurrentA) { if ((dest = HTAnchor_parent( HTAnchor_followMainLink((HTAnchor*)me->CurrentA) - )) != 0) { + )) != NULL) { if (dest->isISMAPScript == TRUE) { dest_ismap = TRUE; if (TRACE) @@ -2768,17 +2780,19 @@ PRIVATE void HTML_start_element ARGS6( CHECK_FOR_INTERN(map_href); url_type = LYLegitimizeHREF(me, (char**)&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 + * If map_href ended up zero-length or otherwise doesn't + * have a hash, it can't be valid, so ignore it. - FM */ if (strchr(map_href, '#') == NULL) { FREE(map_href); } } - if (map_href) { + + if (map_href) { /* - * Check whether a base tag is in effect. - FM + * If the MAP reference doesn't yet begin with a scheme, + * check whether a base tag is in effect. - FM */ if (!url_type && me->inBASE) { /* @@ -3032,7 +3046,7 @@ PRIVATE void HTML_start_element ARGS6( if (me->CurrentA && title) { if ((dest = HTAnchor_parent( HTAnchor_followMainLink((HTAnchor*)me->CurrentA) - )) != 0) { + )) != NULL) { if (!HTAnchor_title(dest)) HTAnchor_setTitle(dest, title); } @@ -3089,7 +3103,7 @@ PRIVATE void HTML_start_element ARGS6( if (me->CurrentA && title) { if ((dest = HTAnchor_parent( HTAnchor_followMainLink((HTAnchor*)me->CurrentA) - )) != 0) { + )) != NULL) { if (!HTAnchor_title(dest)) HTAnchor_setTitle(dest, title); } @@ -3183,7 +3197,7 @@ PRIVATE void HTML_start_element ARGS6( if (me->CurrentA && title) { if ((dest = HTAnchor_parent( HTAnchor_followMainLink((HTAnchor*)me->CurrentA) - )) != 0) { + )) != NULL) { if (!HTAnchor_title(dest)) HTAnchor_setTitle(dest, title); } @@ -4160,9 +4174,11 @@ PRIVATE void HTML_start_element ARGS6( url_type = LYLegitimizeHREF(me, (char**)&action, TRUE, TRUE); /* - * Check whether a base tag is in effect. + * Check whether a base tag is in effect. Note that + * actions always are resolved w.r.t. to the base, + * even if the action is empty. - FM */ - if ((me->inBASE && *action != '\0' && *action != '#') && + if ((me->inBASE && me->base_href && *me->base_href) && (temp = HTParse(action, me->base_href, PARSE_ALL)) && *temp != '\0') { /* @@ -4262,7 +4278,6 @@ PRIVATE void HTML_start_element ARGS6( FREE(method); FREE(enctype); FREE(title); - FREE(title); } CHECK_ID(HTML_FORM_ID); break; @@ -5254,10 +5269,12 @@ PRIVATE void HTML_start_element ARGS6( /* * Convert any HTML entities or decimal escaping. - FM */ +#ifndef EXP_CHARTRANS int CurrentCharSet = current_char_set; BOOL CurrentEightBitRaw = HTPassEightBitRaw; BOOLEAN CurrentUseDefaultRawMode = LYUseDefaultRawMode; HTCJKlang CurrentHTCJK = HTCJK; +#endif StrAllocCopy(I_value, value[HTML_OPTION_VALUE]); me->HiddenValue = TRUE; @@ -5354,10 +5371,12 @@ PRIVATE void HTML_start_element ARGS6( /* * Convert any HTML entities or decimal escaping. - FM */ +#ifndef EXP_CHARTRANS int CurrentCharSet = current_char_set; BOOL CurrentEightBitRaw = HTPassEightBitRaw; BOOLEAN CurrentUseDefaultRawMode = LYUseDefaultRawMode; HTCJKlang CurrentHTCJK = HTCJK; +#endif StrAllocCopy(I_value, value[HTML_OPTION_VALUE]); me->HiddenValue = TRUE; @@ -5585,11 +5604,11 @@ PRIVATE void HTML_start_element ARGS6( { if (TRACE) fprintf(stderr, "STYLE:begin_element:ending EMPTY element style\n"); -#if !defined(USEHASH) +#if !defined(USE_HASH) HText_characterStyle(me->text, element_number+STARTAT, STACK_OFF); #else HText_characterStyle(me->text, hcode, STACK_OFF); -#endif /* USEHASH */ +#endif /* USE_HASH */ { char *end, *start=NULL, *lookfrom; char tmp[64]; @@ -6755,6 +6774,14 @@ End_Object: I.disabled = me->textarea_disabled; I.id = me->textarea_id; + /* + * SGML unescape any character references in TEXTAREA + * content, then parse it into individual lines + * to be handled as a series of INPUT fields (ugh!). + * Any raw 8-bit or multibye characters already have been + * handled in relation to the display character set + * in SGML_character(). + */ me->UsePlainSpace = TRUE; #ifndef EXP_CHARTRANS @@ -6828,7 +6855,6 @@ End_Object: } } FREE(temp); - me->UsePlainSpace = FALSE; HTChunkClear(&me->textarea); @@ -7065,11 +7091,11 @@ End_Object: { if (TRACE) fprintf(stderr, "STYLE:end_element: ending non-EMPTY style\n"); -#if !defined(USEHASH) +#if !defined(USE_HASH) HText_characterStyle(me->text, element_number+STARTAT, STACK_OFF); #else HText_characterStyle(me->text, hcode, STACK_OFF); -#endif /* USEHASH */ +#endif /* USE_HASH */ #if defined(PREVAIL) /* reset the prevailing class to the previous one */ { diff --git a/src/LYCgi.c b/src/LYCgi.c index 86d2db58..4f6d0171 100644 --- a/src/LYCgi.c +++ b/src/LYCgi.c @@ -301,7 +301,7 @@ PRIVATE int LYLoadCGI ARGS4( int fd1[2], fd2[2]; char buf[1024]; pid_t pid; -#if HAVE_TYPE_UNIONWAIT && !HAVE_WAITPID +#if HAVE_TYPE_UNIONWAIT union wait wstatus; #else int wstatus; @@ -388,7 +388,7 @@ PRIVATE int LYLoadCGI ARGS4( (*target->isa->put_block)(target, buf, chars); } -#if HAVE_TYPE_UNIONWAIT && !HAVE_WAITPID +#if !HAVE_WAITPID while (wait(&wstatus) != pid) ; /* do nothing */ #else @@ -403,7 +403,7 @@ PRIVATE int LYLoadCGI ARGS4( #endif /* ERESTARTSYS */ break; } -#endif /* HAVE_TYPE_UNIONWAIT && !HAVE_WAITPID */ +#endif /* !HAVE_WAITPID */ if (anAnchor->post_data) { close(fd1[1]); } diff --git a/src/LYCharUtils.c b/src/LYCharUtils.c index 25ca634d..e41a9047 100644 --- a/src/LYCharUtils.c +++ b/src/LYCharUtils.c @@ -825,15 +825,18 @@ PUBLIC void LYGetChartransInfo ARGS1( if (chndl < 0) { chndl = current_char_set; - HTAnchor_setUCInfoStage(me->node_anchor, chndl, UCT_STAGE_HTEXT, + HTAnchor_setUCInfoStage(me->node_anchor, chndl, + UCT_STAGE_HTEXT, UCT_SETBY_STRUCTURED); } HTAnchor_setUCInfoStage(me->node_anchor, chndl, - UCT_STAGE_STRUCTURED, UCT_SETBY_STRUCTURED); + UCT_STAGE_STRUCTURED, + UCT_SETBY_STRUCTURED); me->UCLYhndl = HTAnchor_getUCLYhndl(me->node_anchor, UCT_STAGE_STRUCTURED); } - me->UCI = HTAnchor_getUCInfoStage(me->node_anchor, UCT_STAGE_STRUCTURED); + me->UCI = HTAnchor_getUCInfoStage(me->node_anchor, + UCT_STAGE_STRUCTURED); } #endif /* EXP_CHARTRANS */ @@ -1026,23 +1029,23 @@ PRIVATE char ** LYUCFullyTranslateString_1 ARGS9( char * p; char *q, *qs; HTChunk *chunk = NULL; - char * cp; - char cpe; + char * cp = 0; + char cpe = 0; char *esc = NULL; char replace_buf[64]; int uck; int lowest_8; - UCode_t code; + UCode_t code = 0; long int lcode; - BOOL output_utf8, repl_translated_C0; + BOOL output_utf8 = 0, repl_translated_C0 = 0; size_t len; int high, low, diff = 0, i; CONST char ** entities = HTML_dtd.entity_names; CONST UC_entity_info * extra_entities = HTML_dtd.extra_entity_info; - CONST char * name; + CONST char * name = 0; BOOLEAN no_bytetrans; UCTransParams T; - BOOL from_is_utf8; + BOOL from_is_utf8 = FALSE; char * puni; enum _state { S_text, S_esc, S_dollar, S_paren, S_nonascii_text, S_dollar_paren, @@ -1480,17 +1483,23 @@ PRIVATE char ** LYUCFullyTranslateString_1 ARGS9( ** the Lynx special character. - FM */ if (code == 173) { - if (hidden) { - ; - } else if (plain_space) { + if (plain_space) { replace_buf[0] = '\0'; state = S_got_outstring; break; + } else if (Back && + !(LYCharSet_UC[cs_to].enc == UCT_ENC_8859 || + (LYCharSet_UC[cs_to].like8859 & + UCT_R_8859SPECL))) { + ; /* nothing, may be translated later */ + } else if (hidden || Back) { + state = S_got_outchar; + break; } else { code = LY_SOFT_HYPHEN; + state = S_got_outchar; + break; } - state = S_got_outchar; - break; } /* ** Seek a translation from the chartrans tables. @@ -1538,7 +1547,7 @@ PRIVATE char ** LYUCFullyTranslateString_1 ARGS9( */ (uck = UCTransUniCharStr(replace_buf, 60, code, - current_char_set, + cs_to, 0) >= 0)) { state = S_got_outstring; break; @@ -1606,7 +1615,7 @@ PRIVATE char ** LYUCFullyTranslateString_1 ARGS9( } else if (code < 161 || (code < 256 && (HTPassEightBitNum || - !strncmp(LYchar_set_names[current_char_set], + !strncmp(LYchar_set_names[cs_to], "ISO Latin 1", 11)))) { /* ** No conversion needed. @@ -2122,10 +2131,10 @@ PRIVATE char ** LYUCFullyTranslateString_1 ARGS9( ** Seek a translation from the chartrans tables. */ if ((uck = UCTransUniChar(code, - current_char_set)) >= 32 && + cs_to)) >= 32 && uck < 256 && (uck < 127 || uck >= lowest_8)) { - if (uck == 160 && current_char_set == 0) { + if (uck == 160 && cs_to == 0) { /* ** Would only happen if some other unicode ** is mapped to Latin-1 160. @@ -2142,7 +2151,7 @@ PRIVATE char ** LYUCFullyTranslateString_1 ARGS9( *p = cpe; } continue; - } else if (uck == 173 && current_char_set == 0) { + } else if (uck == 173 && cs_to == 0) { /* ** Would only happen if some other unicode ** is mapped to Latin-1 173. @@ -3343,7 +3352,6 @@ PUBLIC void LYHandleMETA ARGS4( cp1 += 7; while (*cp1 == ' ' || *cp1 == '=' || *cp1 == '"') cp1++; -#ifdef EXP_CHARTRANS StrAllocCopy(cp3, cp1); /* copy to mutilate more */ for (cp4 = cp3; (*cp4 != '\0' && *cp4 != '"' && *cp4 != ';' && *cp4 != ':' && @@ -3381,7 +3389,6 @@ PUBLIC void LYHandleMETA ARGS4( UCT_SETBY_STRUCTURED); } } - FREE(cp3); if (chartrans_ok) { LYUCcharset * p_out = HTAnchor_setUCInfoStage(me->node_anchor, @@ -3410,22 +3417,44 @@ PUBLIC void LYHandleMETA ARGS4( HTAnchor_setUCInfoStage(me->node_anchor, HTAnchor_getUCLYhndl(me->node_anchor, UCT_STAGE_PARSER), - UCT_STAGE_HTEXT, - UCT_SETBY_DEFAULT); + UCT_STAGE_HTEXT, + UCT_SETBY_DEFAULT); } - if ((p_in->enc != UCT_ENC_CJK) && - (p_in->codepoints & UCT_CP_SUBSETOF_LAT1)) { + if (p_in->enc != UCT_ENC_CJK) { HTCJK = NOCJK; - } else if (chndl == current_char_set) { - HTPassEightBitRaw = TRUE; + if (!(p_in->codepoints & + UCT_CP_SUBSETOF_LAT1) && + chndl == current_char_set) { + HTPassEightBitRaw = TRUE; + } + } else if (p_out->enc == UCT_ENC_CJK) { + if (LYRawMode) { + if ((!strcmp(p_in->MIMEname, "euc-jp") || + !strcmp(p_in->MIMEname, "shift_jis")) && + (!strcmp(p_out->MIMEname, "euc-jp") || + !strcmp(p_out->MIMEname, "shift_jis"))) { + HTCJK = JAPANESE; + } else if (!strcmp(p_in->MIMEname, "euc-cn") && + !strcmp(p_out->MIMEname, "euc-cn")) { + HTCJK = CHINESE; + } else if (!strcmp(p_in->MIMEname, "big-5") && + !strcmp(p_out->MIMEname, "big-5")) { + HTCJK = TAIPEI; + } else if (!strcmp(p_in->MIMEname, "euc-kr") && + !strcmp(p_out->MIMEname, "euc-kr")) { + HTCJK = KOREAN; + } else { + HTCJK = NOCJK; + } + } else { + HTCJK = NOCJK; + } } LYGetChartransInfo(me); /* * Fall through to old behavior. */ - } else -#endif /* EXP_CHARTRANS */ - if (!strncmp(cp1, "us-ascii", 8) || + } else if (!strncmp(cp1, "us-ascii", 8) || !strncmp(cp1, "iso-8859-1", 10)) { StrAllocCopy(me->node_anchor->charset, "iso-8859-1"); HTCJK = NOCJK; @@ -3436,14 +3465,18 @@ PUBLIC void LYHandleMETA ARGS4( StrAllocCopy(me->node_anchor->charset, "iso-8859-2"); HTPassEightBitRaw = TRUE; - } else if (!strncmp(cp1, "iso-8859-", 9) && + } else if (!strncmp(cp4, "iso-8859-", 9) && !strncmp(LYchar_set_names[current_char_set], "Other ISO Latin", 15)) { /* * Hope it's a match, for now. - FM */ - StrAllocCopy(me->node_anchor->charset, "iso-8859- "); - me->node_anchor->charset[9] = cp1[9]; + cp1 = &cp4[10]; + while (*cp1 && + isdigit((unsigned char)(*cp1))) + cp1++; + *cp1 = '\0'; + StrAllocCopy(me->node_anchor->charset, cp4); HTPassEightBitRaw = TRUE; HTAlert(me->node_anchor->charset); @@ -3489,10 +3522,11 @@ PUBLIC void LYHandleMETA ARGS4( } else if (!strncmp(cp1, "iso-2022-cn", 11) && HTCJK == CHINESE) { StrAllocCopy(me->node_anchor->charset, "iso-2022-cn"); } + FREE(cp3); if (TRACE && me->node_anchor->charset) { fprintf(stderr, - "HTML: New charset: %s\n", + "LYHandleMETA: New charset: %s\n", me->node_anchor->charset); } } @@ -3894,7 +3928,7 @@ PUBLIC void LYHandleSELECT ARGS5( */ if (TRACE) fprintf(stderr, - "HTML: Ignoring SIZE=\"%s\" for SELECT.\n", + "LYHandleSELECT: Ignoring SIZE=\"%s\" for SELECT.\n", (char *)value[HTML_SELECT_SIZE]); #endif /* NOTDEFINED */ } @@ -4419,66 +4453,35 @@ PUBLIC void LYResetParagraphAlignment ARGS1( } /* -** This is an example interface for accessing elements of the HTML -** parser's HTStructured object by the SGML parser. The SGML parser -** knows the HTML parsers's HTStructured objects as context->target -** elements, and, homologously, uses them as an argument in calls to -** HTML_start_element() and HTML_end_element(), but should not -** manipulate the context->target's elements, itself, because those -** are defined in the Lynx_HTML_Handler section of HTML.h, to which -** SGML.c is blind. This *example* function check's whether the -** node_anchor element of an HTML parser HTStructured object has +** This example function checks whether the given anchor has ** an address with a file scheme, and if so, loads it into the ** the SGML parser's context->url element, which was passed as ** the second argument. The handle_comment() calling function in ** SGML.c then calls LYDoCSI() in LYUtils.c to insert HTML markup ** into the corresponding stream, homologously to an SSI by an ** HTTP server. - FM -** Since SGML.c is blind to the HTML parsers's HTStructured object -** details it may be calling this function inappropriately when -** its context->target isn't actually the HTStructured object -** implemented in HTML.c but one in HTMLDTD.c. Therefore this -** function checks for the expected HTStructuredClass's signature -** in me->isa->name before doing anything else which requires -** access to the expected HTStructured object's data fields, and -** returns a failure indication if it finds that it has been called -** inappropriately. - kw -** Functions such as this also could -** be used to set the values of elements (existing ones, or any -** new ones needed for future development) in the HTML parser's -** HTStructured objects, so that they will be accessible to all -** Lynx_HTML_Handler utility functions, thus avoiding the need -** to increase the number of arguments in the calls to those -** functions, and keeping them object-specific via their 'me' -** arguments. - FM -** But to generalize the SGML.c -> HTStructured calling mechanism -** so that it can deal with more than one implementation of what -** SGML.c sees as context->target, new functions will either have -** to check whether they are called for the expected kind of target -** object (such as here), or they have to come in several object- -** specific versions to work across all possible target object classes; -** in the latter case they should become new member functions of the -** Structured Object definition in SGML.h. - kw +** +** For functions similar to this but which depend on details of +** the HTML handler's internal data, the calling interface should +** be changed, and functions in SGML.c would have to make sure not +** to call such functions inappropriately (e.g. calling a function +** specific to the Lynx_HTML_Handler when SGML.c output goes to +** some other HTStructured object like in HTMLGen.c), or the new +** functions could be added to the SGML.h interface. */ PUBLIC BOOLEAN LYCheckForCSI ARGS2( - HTStructured *, me, + HTParentAnchor *, anchor, char **, url) { - if (!me) + if (!(anchor && anchor->address)) return FALSE; - if (!me->isa || strcmp(me->isa->name, "Lynx_HTML_Handler")) - return FALSE; - - if (!(me->node_anchor && me->node_anchor->address)) - return FALSE; - - if (strncasecomp(me->node_anchor->address, "file:", 5)) + if (strncasecomp(anchor->address, "file:", 5)) return FALSE; - if (!LYisLocalHost(me->node_anchor->address)) + if (!LYisLocalHost(anchor->address)) return FALSE; - - StrAllocCopy(*url, me->node_anchor->address); + + StrAllocCopy(*url, anchor->address); return TRUE; } diff --git a/src/LYCharUtils.h b/src/LYCharUtils.h index f276ad0a..c1c58f40 100644 --- a/src/LYCharUtils.h +++ b/src/LYCharUtils.h @@ -109,7 +109,7 @@ extern void LYEnsureSingleSpace PARAMS(( extern void LYResetParagraphAlignment PARAMS(( HTStructured * me)); extern BOOLEAN LYCheckForCSI PARAMS(( - HTStructured * me, + HTParentAnchor * anchor, char ** url)); #endif /* Lynx_HTML_Handler */ diff --git a/src/LYCurses.c b/src/LYCurses.c index d134f4b9..35bfc6eb 100644 --- a/src/LYCurses.c +++ b/src/LYCurses.c @@ -667,7 +667,7 @@ PUBLIC void start_curses NOARGS if (first_time) { /* - * If we're not VMS then only do initsrc() one time, + * If we're not VMS then only do initscr() one time, * and one time only! */ if (initscr() == NULL) { /* start curses */ @@ -684,6 +684,9 @@ PUBLIC void start_curses NOARGS #endif /* SIGTSTP */ exit (-1); } +#if defined(SIGWINCH) && defined(NCURSES_VERSION) + size_change(0); +#endif /* SIGWINCH */ /* * This is a workaround for a bug in SVr4 curses, observed on Solaris diff --git a/src/LYForms.c b/src/LYForms.c index 26f54f74..12e6f032 100644 --- a/src/LYForms.c +++ b/src/LYForms.c @@ -6,6 +6,7 @@ #include "LYCurses.h" #include "GridText.h" #include "LYCharSets.h" +#include "UCAux.h" #include "LYUtils.h" #include "LYStructs.h" /* includes HTForms.h */ #include "LYStrings.h" @@ -468,7 +469,7 @@ breakfor: * truthfully) the user confirms by changing the field that * the character encoding is right. - kw */ - if (*p) + if (form->value && *form->value) form->value_cs = current_char_set; } return(ch); @@ -747,13 +748,17 @@ redraw: #ifdef VMS VMSbox(form_window, (bottom - top), (width + 4)); #else + { + int boxvert, boxhori; + UCSetBoxChars(current_char_set, &boxvert, &boxhori, BOXVERT, BOXHORI); #ifdef CSS - wcurses_css(form_window, "frame", ABS_ON); - box(form_window, BOXVERT, BOXHORI); - wcurses_css(form_window, "frame", ABS_OFF); + wcurses_css(form_window, "frame", ABS_ON); + box(form_window, boxvert, boxhori); + wcurses_css(form_window, "frame", ABS_OFF); #else - box(form_window, BOXVERT, BOXHORI); + box(form_window, boxvert, boxhori); #endif + } #endif /* VMS */ wrefresh(form_window); #endif /* USE_SLANG */ diff --git a/src/LYGetFile.c b/src/LYGetFile.c index e8787cfd..08551035 100644 --- a/src/LYGetFile.c +++ b/src/LYGetFile.c @@ -197,8 +197,6 @@ Try_Redirected_URL: url_type == LYNXCOOKIE_URL_TYPE || 0==strncasecomp(WWWDoc.address, helpfilepath, strlen(helpfilepath)) || - 0==strncasecomp(WWWDoc.address, aboutfilepath, - strlen(aboutfilepath)) || (lynxlistfile != NULL && 0==strncasecomp(WWWDoc.address, lynxlistfile, strlen(lynxlistfile))) || @@ -242,8 +240,6 @@ Try_Redirected_URL: *WWWDoc.bookmark != '\0') || 0==strncasecomp(WWWDoc.address, helpfilepath, strlen(helpfilepath)) || - 0==strncasecomp(WWWDoc.address, aboutfilepath, - strlen(aboutfilepath)) || (lynxlistfile != NULL && 0==strncasecomp(WWWDoc.address, lynxlistfile, strlen(lynxlistfile))) || @@ -352,9 +348,11 @@ Try_Redirected_URL: WWWDoc.bookmark = doc->bookmark; WWWDoc.isHEAD = doc->isHEAD; WWWDoc.safe = doc->safe; +#ifndef DONT_TRACK_INTERNAL_LINKS if (doc->internal_link && !reloading) { LYoverride_no_cache = TRUE; } +#endif if (!HTLoadAbsolute(&WWWDoc)) { HTMLSetCharacterHandling(current_char_set); diff --git a/src/LYGlobalDefs.h b/src/LYGlobalDefs.h index fad330cc..bff8c881 100644 --- a/src/LYGlobalDefs.h +++ b/src/LYGlobalDefs.h @@ -132,7 +132,6 @@ extern char *LynxHome; extern char *startfile; extern char *helpfile; extern char *helpfilepath; -extern char *aboutfilepath; extern char *lynxjumpfile; extern char *lynxlistfile; extern char *lynxlinksfile; diff --git a/src/LYHistory.c b/src/LYHistory.c index aa473d5e..1a3a3990 100644 --- a/src/LYHistory.c +++ b/src/LYHistory.c @@ -377,7 +377,7 @@ PUBLIC void LYpop_num ARGS2( int, number, document *, doc) { - if (number >= 0 && nhist >= number) { + if (number >= 0 && nhist > number) { doc->link = history[number].link; doc->line = history[number].page; StrAllocCopy(doc->title, history[number].title); @@ -499,12 +499,18 @@ PUBLIC BOOLEAN historytarget ARGS1( return(FALSE); LYpop_num(number, newdoc); - if (newdoc->internal_link && - history[number].intern_seq_start == history[nhist-1].intern_seq_start + if (((newdoc->internal_link && + history[number].intern_seq_start == history[nhist-1].intern_seq_start) || + (number < nhist-1 && + history[nhist-1].internal_link && + number == history[nhist-1].intern_seq_start)) && !(LYforce_no_cache == TRUE && LYoverride_no_cache == FALSE)) { +#ifndef DONT_TRACK_INTERNAL_LINKS LYforce_no_cache = FALSE; LYoverride_no_cache = TRUE; + newdoc->internal_link = TRUE; treat_as_intern = TRUE; +#endif } else { newdoc->internal_link = FALSE; } @@ -592,9 +598,7 @@ PUBLIC int LYShowVisitedLinks ARGS1( LYforce_no_cache = TRUE; /* force this file to be new */ fprintf(fp0, "<head>\n"); -#ifdef EXP_CHARTRANS LYAddMETAcharsetToFD(fp0, -1); -#endif fprintf(fp0, "<title>%s</title>\n</head>\n<body>\n", VISITED_LINKS_TITLE); fprintf(fp0, "<h1>You have reached the Visited Links Page</h1>\n"); diff --git a/src/LYJump.c b/src/LYJump.c index 739c1e2f..89ba0728 100644 --- a/src/LYJump.c +++ b/src/LYJump.c @@ -494,5 +494,5 @@ PRIVATE unsigned LYRead_Jumpfile ARGS1(struct JumpTable *,jtp) PRIVATE int LYCompare ARGS2 (CONST void *, e1, CONST void *, e2) { - return strcasecomp(((JumpDatum *)e1)->key, ((JumpDatum *)e2)->key); + return strcasecomp(((CONST JumpDatum *)e1)->key, ((CONST JumpDatum *)e2)->key); } diff --git a/src/LYList.c b/src/LYList.c index c9a4faa7..804da051 100644 --- a/src/LYList.c +++ b/src/LYList.c @@ -96,9 +96,7 @@ PUBLIC int showlist ARGS2( fprintf(fp0, "<head>\n"); -#ifdef EXP_CHARTRANS LYAddMETAcharsetToFD(fp0, -1); -#endif fprintf(fp0, "<title>%s</title>\n</head>\n<body>\n", LIST_PAGE_TITLE); fprintf(fp0, "<h1>You have reached the List Page</h1>\n"); @@ -117,7 +115,7 @@ PUBLIC int showlist ARGS2( } for (cnt = 1; cnt <= refs; cnt++) { HTChildAnchor *child = HText_childNumber(cnt); - HTAnchor *dest_intl; + HTAnchor *dest_intl = NULL; HTAnchor *dest; HTParentAnchor *parent; char *address; @@ -139,8 +137,10 @@ PUBLIC int showlist ARGS2( } continue; } +#ifndef DONT_TRACK_INTERNAL_LINKS dest_intl = HTAnchor_followTypedLink((HTAnchor *)child, LINK_INTERNAL); +#endif dest = dest_intl ? dest_intl : HTAnchor_followMainLink((HTAnchor *)child); parent = HTAnchor_parent(dest); @@ -151,11 +151,12 @@ PUBLIC int showlist ARGS2( LYEntify(&Address, TRUE); if (title && *title) { StrAllocCopy(Title, title); - if (*Title) - LYEntify(&Title, TRUE); - else + LYEntify(&Title, TRUE); + if (*Title) { + cp = strchr(Address, '#'); + } else { FREE(Title); - cp = strchr(Address, '#'); + } } fprintf(fp0, "<li><a href=\"%s\"%s>%s%s%s%s%s</a>\n", Address, diff --git a/src/LYLocal.c b/src/LYLocal.c index 83ae0edb..ba553a68 100644 --- a/src/LYLocal.c +++ b/src/LYLocal.c @@ -53,10 +53,27 @@ #endif /*_WINDOWS */ #endif /* VMS */ +#ifndef WEXITSTATUS +# if HAVE_TYPE_UNIONWAIT +# define WEXITSTATUS(status) (status.w_retcode) +# else +# define WEXITSTATUS(status) (((status) & 0xff00) >> 8) +# endif +#endif + +#ifndef WTERMSIG +# if HAVE_TYPE_UNIONWAIT +# define WTERMSIG(status) (status.w_termsig) +# else +# define WTERMSIG(status) ((status) & 0x7f) +# endif +#endif + #include "LYLeaks.h" #define FREE(x) if (x) {free(x); x = NULL;} + PUBLIC int LYExecv PARAMS(( char * path, char ** argv, @@ -2204,7 +2221,7 @@ PUBLIC int LYExecv ARGS3( int rc; char tmpbuf[512]; pid_t pid; -#if HAVE_TYPE_UNIONWAIT && !HAVE_WAITPID +#if HAVE_TYPE_UNIONWAIT union wait wstatus; #else int wstatus; @@ -2223,7 +2240,7 @@ PUBLIC int LYExecv ARGS3( execv(path, argv); exit(-1); /* execv failed, give wait() something to look at */ default: /* parent */ -#if HAVE_TYPE_UNIONWAIT && !HAVE_WAITPID +#if !HAVE_WAITPID while (wait(&wstatus) != pid) ; /* do nothing */ #else @@ -2238,7 +2255,7 @@ PUBLIC int LYExecv ARGS3( #endif /* ERESTARTSYS */ break; } -#endif /* HAVE_TYPE_UNIONWAIT && !HAVE_WAITPID */ +#endif /* !HAVE_WAITPID */ if (WEXITSTATUS(wstatus) != 0 || WTERMSIG(wstatus) > 0) { /* error return */ sprintf(tmpbuf, "Probable failure to %s due to system error!", diff --git a/src/LYMain.c b/src/LYMain.c index bcb69040..b5749c9e 100644 --- a/src/LYMain.c +++ b/src/LYMain.c @@ -263,7 +263,6 @@ PUBLIC char *LynxHome = NULL; /* the default Home HREF. */ PUBLIC char *startfile = NULL; /* the first file */ PUBLIC char *helpfile = NULL; /* the main help file */ PUBLIC char *helpfilepath = NULL; /* the path to the help file set */ -PUBLIC char *aboutfilepath = NULL; /* the path to the about lynx file */ PUBLIC char *lynxjumpfile = NULL; /* the current jump file URL */ PUBLIC char *lynxlistfile = NULL; /* the current list file URL */ PUBLIC char *lynxlinksfile = NULL; /* the current visited links file URL */ @@ -390,7 +389,7 @@ PUBLIC BOOLEAN LYNoCore = NO_FORCED_CORE_DUMP; PRIVATE void FatalProblem PARAMS((int sig)); #endif /* !VMS */ -#if defined(USEHASH) +#if defined(USE_HASH) char *lynx_lss_file=NULL; #endif @@ -455,7 +454,6 @@ PRIVATE void free_lynx_globals NOARGS FREE(lynx_save_space); FREE(homepage); FREE(helpfilepath); - FREE(aboutfilepath); FREE(bookmark_page); FREE(BookmarkPage); for (i = 0; i <= MBM_V_MAXFILES; i++) { @@ -474,9 +472,12 @@ PRIVATE void free_lynx_globals NOARGS FREE(URLDomainSuffixes); FREE(XLoadImageCommand); FREE(LYTraceLogPath); -#if defined(USEHASH) +#if defined(USE_HASH) FREE(lynx_lss_file); #endif + FREE(UCAssume_MIMEcharset); + FREE(UCAssume_unrecMIMEcharset); + FREE(UCAssume_localMIMEcharset); for (i = 0; i < nlinks; i++) { FREE(links[i].lname); } @@ -657,6 +658,9 @@ PUBLIC int main ARGS2( StrAllocCat(lynx_version_putenv_command, LYNX_VERSION); putenv(lynx_version_putenv_command); #endif /* VMS */ + if ((cp = getenv("LYNX_TEMP_SPACE")) != NULL) + StrAllocCopy(lynx_temp_space, cp); + else #ifdef DOSPATH if ((cp = getenv("TEMP")) != NULL) StrAllocCopy(lynx_temp_space, cp); @@ -664,9 +668,6 @@ PUBLIC int main ARGS2( StrAllocCopy(lynx_temp_space, cp); else #endif - if ((cp = getenv("LYNX_TEMP_SPACE")) != NULL) - StrAllocCopy(lynx_temp_space, cp); - else StrAllocCopy(lynx_temp_space, TEMP_SPACE); if ((cp = strchr(lynx_temp_space, '~'))) { *(cp++) = '\0'; @@ -719,12 +720,17 @@ PUBLIC int main ARGS2( StrAllocCat(lynx_temp_space, ":"); } #else - { - if (((len = strlen(lynx_temp_space)) > 1) && - lynx_temp_space[len-1] != '/') { - StrAllocCat(lynx_temp_space, "/"); - } +#ifndef __DJGPP__ + 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__ */ #endif /* VMS */ #ifdef VMS StrAllocCopy(mail_adrs, MAIL_ADRS); @@ -800,7 +806,7 @@ PUBLIC int main ARGS2( i++; } -#if defined(USEHASH) +#if defined(USE_HASH) } else if (strncmp(argv[i], "-lss", 4) == 0) { if ((cp=strchr(argv[i],'=')) != NULL) StrAllocCopy(lynx_lss_file, cp+1); @@ -878,7 +884,7 @@ PUBLIC int main ARGS2( if (*cp) StrAllocCopy(lynx_cfg_file, cp); } - #if defined(USEHASH) +#if defined(USE_HASH) } else if (strncmp(buf, "-lss", 4) == 0) { if ((cp = strchr(buf,'=')) != NULL) { StrAllocCopy(lynx_lss_file, cp+1); @@ -1143,7 +1149,7 @@ PUBLIC int main ARGS2( } #endif /* EXP_CHARTRANS */ -#if defined(USEHASH) +#if defined(USE_HASH) /* * If no alternate lynx-style file was specified on * the command line, see if it's in the environment. @@ -1623,11 +1629,10 @@ PUBLIC int main ARGS2( StrAllocCopy(helpfilepath, helpfile); if ((cp=strrchr(helpfilepath, '/')) != NULL) *cp = '\0'; - StrAllocCopy(aboutfilepath, helpfilepath); - if ((cp=strrchr(aboutfilepath, '/')) != NULL) { - *cp = '\0'; - StrAllocCat(aboutfilepath, "/about_lynx/"); - } + /* + * Remove code to merge the historical about_lynx + * directory into lynx_help. - HN + */ StrAllocCat(helpfilepath, "/"); @@ -2181,7 +2186,7 @@ PRIVATE void parse_arg ARGS3( local_exec_on_local_files = TRUE; #endif /* EXEC_LINKS || EXEC_SCRIPTS */ -#if defined(USEHASH) +#if defined(USE_HASH) } else if (strncmp(argv[0], "-lss", 4) == 0) { /* * Already read the alternate lynx-style file @@ -2714,7 +2719,7 @@ Output_Help_List: printf(" MAPs are present\n"); printf(" -link=NUMBER starting count for lnk#.dat files produced by -crawl\n"); printf(" -localhost disable URLs that point to remote hosts\n"); -#if defined(USEHASH) +#if defined(USE_HASH) printf(" -lss=FILENAME specifies a lynx.css file other than the default\n"); #endif printf(" -mime_header include mime headers and force source dump\n"); diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c index f541e0ba..12e43f5b 100644 --- a/src/LYMainLoop.c +++ b/src/LYMainLoop.c @@ -102,7 +102,7 @@ PRIVATE void free_mainloop_variables NOARGS FREE(curdoc.post_data); FREE(curdoc.post_content_type); FREE(curdoc.bookmark); -#ifdef USEHASH +#ifdef USE_HASH FREE(curdoc.style); FREE(newdoc.style); #endif @@ -199,7 +199,7 @@ int mainloop NOARGS curdoc.post_data = NULL; curdoc.post_content_type = NULL; curdoc.bookmark = NULL; -#ifdef USEHASH +#ifdef USE_HASH curdoc.style = NULL; newdoc.style = NULL; #endif @@ -288,7 +288,7 @@ initialize: display_lines = LYlines-2; while (TRUE) { -#ifdef USEHASH +#ifdef USE_HASH if (curdoc.style != NULL) force_load = TRUE; #endif /* @@ -333,6 +333,19 @@ try_again: */ LYpop(&newdoc); popped_doc = TRUE; + + +#ifndef DONT_TRACK_INTERNAL_LINKS +#define NONINTERNAL_OR_DIFFERENT(c,n) TRUE +#define NONINTERNAL_OR_PHYS_DIFFERENT(p,n) (!curdoc.internal_link || \ + are_phys_different(p,n)) +#else /* TRACK_INTERNAL_LINKS */ +#define NONINTERNAL_OR_DIFFERENT(c,n) are_different(c,n) +#define NONINTERNAL_OR_PHYS_DIFFERENT(p,n) are_different(p,n) +#endif /* TRACK_INTERNAL_LINKS */ + + +#ifndef DONT_TRACK_INTERNAL_LINKS /* ** If curdoc had been reached via an internal ** (fragment) link from what we now have just @@ -344,9 +357,12 @@ try_again: LYoverride_no_cache = TRUE; LYforce_no_cache = FALSE; try_internal = TRUE; - } else if ((newdoc.bookmark != NULL) || + } else +#endif /* TRACK_INTERNAL_LINKS */ + if ((newdoc.bookmark != NULL) || (newdoc.post_data != NULL && !newdoc.safe && - LYresubmit_posts)) { + LYresubmit_posts && + NONINTERNAL_OR_DIFFERENT(&curdoc, &newdoc))) { LYoverride_no_cache = FALSE; } else { LYoverride_no_cache = TRUE; @@ -357,9 +373,19 @@ try_again: /* * Make SURE this is an appropriate request. - FM */ - if (newdoc.address && - !strncmp(newdoc.address, "http", 4)) - newdoc.isHEAD = TRUE; + if (newdoc.address) { + if (!strncmp(newdoc.address, "http", 4)) { + newdoc.isHEAD = TRUE; + } else if (!strncmp(newdoc.address, "LYNXIMGMAP:", 11)) { + if (!strncmp(newdoc.address + 11, "http", 4)) { + StrAllocCopy(temp, newdoc.address + 11); + FREE(newdoc.address); + newdoc.address = temp; + newdoc.isHEAD = TRUE; + temp = NULL; + } + } + } try_internal = FALSE; HEAD_request = FALSE; } @@ -419,6 +445,7 @@ try_again: LYPermitURL = TRUE; } +#ifndef DONT_TRACK_INTERNAL_LINKS if (try_internal) { if (newdoc.address && 0==strncmp(newdoc.address, "LYNXIMGMAP:", 11)) { @@ -465,6 +492,9 @@ try_again: } getresult = getfile(&newdoc); } +#else /* TRACK_INTERNAL_LINKS */ + getresult = getfile(&newdoc); +#endif /* TRACK_INTERNAL_LINKS */ switch(getresult) { @@ -766,7 +796,7 @@ try_again: (BookmarkPage + 2))); StrAllocCopy(newdoc.title, BOOKMARK_TITLE); StrAllocCopy(newdoc.bookmark, BookmarkPage); -#ifdef USEHASH +#ifdef USE_HASH if (curdoc.style) StrAllocCopy(newdoc.style, curdoc.style); #endif @@ -865,7 +895,7 @@ try_again: StrAllocCopy(curdoc.post_data, newdoc.post_data); StrAllocCopy(curdoc.post_content_type, newdoc.post_content_type); StrAllocCopy(curdoc.bookmark, newdoc.bookmark); -#ifdef USEHASH +#ifdef USE_HASH StrAllocCopy(curdoc.style, HText_getStyle()); if (curdoc.style != NULL) style_readFromFile (curdoc.style); @@ -925,7 +955,7 @@ try_again: } /* - * If the resent_sizechange variable is set to TRUE + * If the recent_sizechange variable is set to TRUE * then the window size changed recently. */ if (recent_sizechange) { @@ -983,7 +1013,7 @@ try_again: /* * We forced HTML for a local startfile which * is not a bookmark file and has a path of at - * least two letters. It it doesn't have a + * least two letters. If it doesn't have a * suffix mapped to text/html, we'll set the * entire path (including the lead slash) as a * "suffix" mapped to text/html to ensure it is @@ -1277,19 +1307,26 @@ try_again: } else if (user_mode == ADVANCED_MODE && nlinks > 0) { /* - * Show the URL. + * Show the URL or, for some internal links, the fragment */ + cp = NULL; + if (links[curdoc.link].type == WWW_INTERN_LINK_TYPE && + strncmp(links[curdoc.link].lname, "LYNXIMGMAP:", 11)) { + cp = strchr(links[curdoc.link].lname, '#'); + } + if (!cp) + cp = links[curdoc.link].lname; if (more) if (is_www_index) _user_message("-more- -index- %s", - links[curdoc.link].lname); + cp); else - _user_message("-more- %s",links[curdoc.link].lname); + _user_message("-more- %s",cp); else if (is_www_index) - _user_message("-index- %s",links[curdoc.link].lname); + _user_message("-index- %s",cp); else - statusline(links[curdoc.link].lname); + statusline(cp); } else if (is_www_index && more) { char buf[128]; @@ -1910,7 +1947,7 @@ new_cmd: /* else New_DTD = YES; HTSwitchDTD(New_DTD); - _statusline(New_DTD ? USING_DTD_0 : USING_DTD_1); + _statusline(New_DTD ? USING_DTD_1 : USING_DTD_0); sleep(MessageSecs); break; @@ -2379,11 +2416,9 @@ new_cmd: /* } if (((HText *)HTAnchor_document(tmpanchor) == NULL || (LYresubmit_posts && - !(curdoc.internal_link && - !are_phys_different((document *)&history[(nhist - 1)], - &curdoc)) - ) - ) && + NONINTERNAL_OR_PHYS_DIFFERENT( + (document *)&history[(nhist - 1)], + &curdoc))) && HTConfirm(CONFIRM_POST_RESUBMISSION) == FALSE) { if (nhist == 1) { _statusline(CANCELLED); @@ -2671,6 +2706,7 @@ new_cmd: /* */ StrAllocCopy(newdoc.address, links[curdoc.link].lname); StrAllocCopy(newdoc.title, links[curdoc.link].hightext); +#ifndef DONT_TRACK_INTERNAL_LINKS /* * Might be an internal link anchor in the same doc. * If so, take the try_internal shortcut if we didn't @@ -2678,19 +2714,22 @@ new_cmd: /* */ newdoc.internal_link = (links[curdoc.link].type == WWW_INTERN_LINK_TYPE); - if (newdoc.internal_link && cmd != LYK_NOCACHE) { + if (newdoc.internal_link) { if (0==strcmp(curdoc.address, LYlist_temp_url()) && 0==strcmp((curdoc.title ? curdoc.title : ""), LIST_PAGE_TITLE)) { FREE(curdoc.address); - } else + } else if (cmd != LYK_NOCACHE) { try_internal = TRUE; + } LYoverride_no_cache = TRUE; /* ??? */ /* We still set force_load so that history pushing ** etc. will be done. - kw */ force_load = TRUE; break; + } else { } +#endif /* TRACK_INTERNAL_LINKS */ /* * Might be an anchor in the same doc from a POST * form. If so, dont't free the content. -- FM @@ -3100,13 +3139,13 @@ check_goto_URL: newdoc.safe = FALSE; newdoc.internal_link = FALSE; force_load = TRUE; - LYUserSpecifiedURL = TRUE; #ifdef DIRED_SUPPORT if (lynx_edit_mode) HTuncache_current_document(); #endif /* DIRED_SUPPORT */ - HTAddGotoURL(newdoc.address); } + LYUserSpecifiedURL = TRUE; + HTAddGotoURL(newdoc.address); } break; @@ -4703,7 +4742,9 @@ check_add_bookmark_to_self: _statusline(HEAD_D_L_OR_CANCEL); c = LYgetch(); if (TOUPPER(c) == 'D') { - if (strncmp(curdoc.address, "http", 4)) { + char *scheme = strncmp(curdoc.address, "LYNXIMGMAP:", 11) ? + curdoc.address : curdoc.address + 11; + if (strncmp(scheme, "http", 4)) { _statusline(DOC_NOT_HTTP_URL); sleep(MessageSecs); } else { @@ -4733,6 +4774,8 @@ check_add_bookmark_to_self: } else if (TOUPPER(c) == 'L') { if (links[curdoc.link].type != WWW_FORM_LINK_TYPE && strncmp(links[curdoc.link].lname, "http", 4) && + strncmp(links[curdoc.link].lname, + "LYNXIMGMAP:http", 15) && (links[curdoc.link].type != WWW_INTERN_LINK_TYPE || !curdoc.address || strncmp(curdoc.address, "http", 4))) { @@ -4794,12 +4837,14 @@ check_add_bookmark_to_self: c = 'D'; } if (TOUPPER(c) == 'D') { + char *scheme = strncmp(curdoc.address, "LYNXIMGMAP:", 11) ? + curdoc.address : curdoc.address + 11; /* * The user didn't cancel, so check if * a HEAD request is appropriate for the * current document. - FM */ - if (strncmp(curdoc.address, "http", 4)) { + if (strncmp(scheme, "http", 4)) { _statusline(DOC_NOT_HTTP_URL); sleep(MessageSecs); } else { diff --git a/src/LYOptions.c b/src/LYOptions.c index cbc4912b..61f9e187 100644 --- a/src/LYOptions.c +++ b/src/LYOptions.c @@ -12,6 +12,7 @@ #include "LYCharSets.h" #include "LYCharUtils.h" #include "UCMap.h" +#include "UCAux.h" #include "LYKeymap.h" #include "LYrcFile.h" #include "HTAlert.h" @@ -2321,7 +2322,11 @@ redraw: #ifdef VMS VMSbox(form_window, (bottom - top), (Lnum + width + 4)); #else - box(form_window, BOXVERT, BOXHORI); + { + int boxvert, boxhori; + UCSetBoxChars(current_char_set, &boxvert, &boxhori, BOXVERT, BOXHORI); + box(form_window, boxvert, boxhori); + } #endif /* VMS */ wrefresh(form_window); #endif /* USE_SLANG */ diff --git a/src/LYStrings.c b/src/LYStrings.c index 6d9a68c7..f11b2e7f 100644 --- a/src/LYStrings.c +++ b/src/LYStrings.c @@ -842,7 +842,7 @@ PUBLIC int LYEdit1 ARGS4( /* * Delete current character. */ - if (length == 0) + if (length == 0 || Pos == length) break; for (i = Pos; i < length; i++) Buf[i] = Buf[i+1]; diff --git a/src/LYStructs.h b/src/LYStructs.h index fc438376..128d7426 100644 --- a/src/LYStructs.h +++ b/src/LYStructs.h @@ -39,7 +39,7 @@ typedef struct _document { int line; BOOL internal_link; /* whether doc was reached via an internal (fragment) link. - kw */ -#ifdef USEHASH +#ifdef USE_HASH char * style; #endif } document; diff --git a/src/LYStyle.c b/src/LYStyle.c index 3f529264..160eff5f 100644 --- a/src/LYStyle.c +++ b/src/LYStyle.c @@ -1,6 +1,6 @@ /* character level styles for Lynx * (c) 1996 Rob Partington -- donated to the Lyncei (if they want it :-) - * @Id: LYStyle.c 1.7 Wed, 17 Sep 1997 17:34:13 -0600 dickey @ + * @Id: LYStyle.c 1.13 Wed, 22 Oct 1997 08:29:34 -0600 dickey @ */ #include "HTUtils.h" #include "HTML.h" @@ -247,7 +247,7 @@ where OBJECT is one of EM,STRONG,B,I,U,BLINK etc.\n\n", buffer); */ else { -#if !defined(USEHASH) +#if !defined(USE_HASH) int i; for (i=0; i<HTML_ELEMENTS; i++) { diff --git a/src/LYUtils.c b/src/LYUtils.c index 117d44b3..a39042f3 100644 --- a/src/LYUtils.c +++ b/src/LYUtils.c @@ -2966,13 +2966,27 @@ PUBLIC void change_sug_filename ARGS1( */ HTUnEscape(fname); - /*** rename any temporary files ***/ - temp = (char *)calloc(1, (strlen(lynx_temp_space) + 60)); - if (*lynx_temp_space == '/') - sprintf(temp, "file://localhost%sL%d", lynx_temp_space, (int)getpid()); - else - sprintf(temp, "file://localhost/%sL%d", lynx_temp_space, (int)getpid()); - len = strlen(temp); + /*** rename any temporary files ***/ + temp = (char *)calloc(1, (strlen(lynx_temp_space) + 60)); +#ifdef FNAMES_8_3 +#ifdef DOSPATH + cp = HTDOS_wwwName(lynx_temp_space); +#else + cp = lynx_temp_space; +#endif + if (*cp == '/') { + sprintf(temp, "file://localhost%s%d", cp, (int)getpid()); + } else { + sprintf(temp, "file://localhost/%s%d", cp, (int)getpid()); + } +#else /* FNAMES_8_3 */ + if (*lynx_temp_space == '/') { + sprintf(temp, "file://localhost%sL%d", lynx_temp_space, (int)getpid()); + } else { + sprintf(temp, "file://localhost/%sL%d", lynx_temp_space, (int)getpid()); + } +#endif /* FNAMES_8_3 */ + len = strlen(temp); if (!strncmp(fname, temp, len)) { cp = strrchr(fname, '.'); if (strlen(cp) > (len - 4)) @@ -3223,21 +3237,36 @@ PUBLIC void tempname ARGS2( { static int counter = 0; FILE *fp = NULL; +#ifdef FNAMES_8_3 + int LYMaxTempCount = 1000; /* Arbitrary limit. Make it configurable? */ +#else int LYMaxTempCount = 10000; /* Arbitrary limit. Make it configurable? */ +#endif /* FNAMES_8_3 */ if (action == REMOVE_FILES) { /* * Remove all temporary files with .txt or .html suffixes. - FM */ for (; counter > 0; counter--) { +#ifdef FNAMES_8_3 + sprintf(namebuffer, + "%s%d%u.txt", + lynx_temp_space, (int)getpid(), counter-1); + remove(namebuffer); + sprintf(namebuffer, + "%s%d%u%s", + lynx_temp_space, (int)getpid(), counter-1, HTML_SUFFIX); + remove(namebuffer); +#else sprintf(namebuffer, - "%sL%d%uTMP.txt", + "%sL%d-%uTMP.txt", lynx_temp_space, (int)getpid(), counter-1); remove(namebuffer); sprintf(namebuffer, - "%sL%d%uTMP%s", + "%sL%d-%uTMP%s", lynx_temp_space, (int)getpid(), counter-1, HTML_SUFFIX); remove(namebuffer); +#endif /* FNAMES_8_3 */ } } else { /* @@ -3257,9 +3286,15 @@ PUBLIC void tempname ARGS2( * should be done consistently by always using HTML_SUFFIX * where filenames are generated for new local files. - kw */ +#ifdef FNAMES_8_3 + sprintf(namebuffer, + "%s%d%u.txt", + lynx_temp_space, (int)getpid(), counter); +#else sprintf(namebuffer, - "%sL%d%uTMP.txt", + "%sL%d-%uTMP.txt", lynx_temp_space, (int)getpid(), counter); +#endif /* FNAMES_8_3 */ if ((fp = fopen(namebuffer, "r")) != NULL) { fclose(fp); if (TRACE) @@ -3269,9 +3304,15 @@ PUBLIC void tempname ARGS2( counter++; continue; } +#ifdef FNAMES_8_3 sprintf(namebuffer, - "%sL%d%uTMP.bin", + "%s%d%u.bin", lynx_temp_space, (int)getpid(), counter); +#else + sprintf(namebuffer, + "%sL%d-%uTMP.bin", + lynx_temp_space, (int)getpid(), counter); +#endif /* FNAMES_8_3 */ if ((fp = fopen(namebuffer, "r")) != NULL) { fclose(fp); if (TRACE) @@ -3281,9 +3322,15 @@ PUBLIC void tempname ARGS2( counter++; continue; } +#ifdef FNAMES_8_3 + sprintf(namebuffer, + "%s%d%u%s", + lynx_temp_space, (int)getpid(), counter++, HTML_SUFFIX); +#else sprintf(namebuffer, - "%sL%d%uTMP%s", + "%sL%d-%uTMP%s", lynx_temp_space, (int)getpid(), counter++, HTML_SUFFIX); +#endif /* FNAMES_8_3 */ if ((fp = fopen(namebuffer, "r")) != NULL) { fclose(fp); if (TRACE) diff --git a/src/Makefile b/src/Makefile.old index 3b325018..3b325018 100644 --- a/src/Makefile +++ b/src/Makefile.old diff --git a/src/UCAux.c b/src/UCAux.c index d63e04e0..f03bbfa9 100644 --- a/src/UCAux.c +++ b/src/UCAux.c @@ -55,6 +55,8 @@ PUBLIC UCTQ_t UCCanTranslateFromTo ARGS2( if (!strcmp(fromname, "x-transparent") || !strcmp(toname, "x-transparent")) { return TQ_GOOD; + } else if (!strcmp(fromname, "us-ascii")) { + return TQ_GOOD; } if (LYCharSet_UC[from].enc == UCT_ENC_CJK) { if (HTCJK == NOCJK) /* use that global flag, for now */ @@ -232,7 +234,29 @@ PUBLIC void UCTransParams_clear ARGS1( pT->repl_translated_C0 = FALSE; pT->trans_from_uni = FALSE; } - +/* + * If terminal is in UTF-8 mode, it probably cannot understand + * box drawing chars as (n)curses handles them. (This may also + * be true for other display character sets, but isn't currently + * checked.) In that case set the chars for hori and vert drawing + * chars to displayable ASCII chars if '0' was requested. They'll + * stay as they are otherwise. - kw + */ +PUBLIC void UCSetBoxChars ARGS5( + int, cset, + int *, pvert_out, + int *, phori_out, + int, vert_in, + int, hori_in) +{ + if (cset >= -1 && LYCharSet_UC[cset].enc == UCT_ENC_UTF8) { + *pvert_out = (vert_in ? vert_in : '|'); + *phori_out = (hori_in ? hori_in : '-'); + } else { + *pvert_out = vert_in; + *phori_out = hori_in; + } +} /* * Given an output target HTStream* (can also be a HTStructured* via * typecast), the target stream's put_character method, and a unicode diff --git a/src/UCdomap.c b/src/UCdomap.c index 61bdfd70..344f3057 100644 --- a/src/UCdomap.c +++ b/src/UCdomap.c @@ -4,7 +4,7 @@ * * Derived from code in the Linux kernel console driver. * The GNU Public Licence therefore applies, see - * the file COPYING in the about_lynx directory + * the file COPYING in the top-level directory * which should come with every Lynx distribution. * * [ original comment: - KW ] @@ -282,12 +282,16 @@ PRIVATE void UC_con_set_trans PARAMS(( int update_flag)); PRIVATE int con_insert_unipair PARAMS(( u16 unicode, - u16 fontpos)); + u16 fontpos, + int fordefault)); PRIVATE int con_insert_unipair_str PARAMS(( u16 unicode, - char * replace_str)); -PRIVATE void con_clear_unimap NOPARAMS; -PRIVATE void con_clear_unimap_str NOPARAMS; + char * replace_str, + int fordefault)); +PRIVATE void con_clear_unimap PARAMS(( + int fordefault)); +PRIVATE void con_clear_unimap_str PARAMS(( + int fordefault)); #ifdef NOTDEFINED PRIVATE int con_set_unimap PARAMS(( u16 ct, @@ -299,7 +303,8 @@ PRIVATE int UC_con_set_unimap PARAMS(( int update_flag)); PRIVATE int UC_con_set_unimap_str PARAMS(( u16 ct, - struct unipair_str * list)); + struct unipair_str * list, + int fordefault)); #ifdef NOTDEFINED PRIVATE int con_get_unimap PARAMS(( u16 ct, @@ -307,11 +312,13 @@ PRIVATE int con_get_unimap PARAMS(( struct unipair * list)); #endif /* NOTDEFINED */ PRIVATE int conv_uni_to_pc PARAMS(( - long ucs)); + long ucs, + int usedefault)); PRIVATE int conv_uni_to_str PARAMS(( char* outbuf, int buflen, - long ucs)); + long ucs, + int usedefault)); PRIVATE void UCconsole_map_init NOPARAMS; PRIVATE int UC_MapGN PARAMS(( int UChndl, @@ -330,6 +337,7 @@ PRIVATE int UC_Register_with_LYCharSets PARAMS(( int lowest_eightbit)); PRIVATE void UCcleanup_mem NOPARAMS; +PRIVATE int default_UChndl = -1; PRIVATE void set_inverse_transl ARGS1( int, i) @@ -350,7 +358,7 @@ PRIVATE void set_inverse_transl ARGS1( q[j] = 0; for (j=0; j<E_TABSZ; j++) { - glyph = conv_uni_to_pc(p[j]); + glyph = conv_uni_to_pc(p[j], 0); if (glyph >= 0 && glyph < MAX_GLYPH && q[glyph] < 32) { /* prefer '-' above SHY etc. */ q[glyph] = j; @@ -480,13 +488,13 @@ PRIVATE void UC_con_set_trans ARGS3( u16 *ptrans; if (!UC_valid_UC_charset(UC_charset_in_hndl)) { - if (TRACE) - fprintf(stderr,"UC_con_set_trans: Invalid charset handle %i.\n", - UC_charset_in_hndl); - return; + if (TRACE) + fprintf(stderr,"UC_con_set_trans: Invalid charset handle %i.\n", + UC_charset_in_hndl); + return; } - ptrans = translations[Gn]; - p = UCInfo[UC_charset_in_hndl].unitable; + ptrans = translations[Gn]; + p = UCInfo[UC_charset_in_hndl].unitable; #if(0) if (p == UC_current_unitable) { /* test whether pointers are equal */ return; /* nothing to be done */ @@ -497,18 +505,18 @@ PRIVATE void UC_con_set_trans ARGS3( con_clear_unimap(); #endif for (i = 0; i < 256; i++) { - if ((j = UCInfo[UC_charset_in_hndl].unicount[i])) { - ptrans[i] = *p; + if ((j = UCInfo[UC_charset_in_hndl].unicount[i])) { + ptrans[i] = *p; for (; j; j--) { - p++; - } + p++; + } } else { - ptrans[i] = 0xfffd; - } + ptrans[i] = 0xfffd; + } } if (update_flag) { - set_inverse_transl(Gn); /* Update inverse translation for this one */ -} + set_inverse_transl(Gn); /* Update inverse translation for this one */ + } } /* @@ -521,8 +529,8 @@ PRIVATE void UC_con_set_trans ARGS3( * this 3-level paged table scheme to be comparable to a hash table. */ -int hashtable_contents_valid = 0; /* Use ASCII-only mode for bootup*/ -int hashtable_str_contents_valid = 0; +PRIVATE int unitable_contents_valid = 0; /* Use ASCII-only mode for bootup*/ +PRIVATE int unitable_str_contents_valid = 0; static u16 **uni_pagedir[32] = { @@ -542,16 +550,50 @@ static char* **uni_pagedir_str[32] = PRIVATE u16 * UC_current_unitable = NULL; PRIVATE struct unimapdesc_str *UC_current_unitable_str = NULL; -PRIVATE int con_insert_unipair ARGS2( +/* + * Keep a second set of structures for the translation designated + * as "default" - kw + */ +PRIVATE int unidefault_contents_valid = 0; /* Use ASCII-only mode for bootup*/ +PRIVATE int unidefault_str_contents_valid = 0; + +static u16 **unidefault_pagedir[32] = +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; +static char* **unidefault_pagedir_str[32] = +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + +PRIVATE u16 * UC_default_unitable = NULL; +PRIVATE struct unimapdesc_str *UC_default_unitable_str = NULL; + +PRIVATE int con_insert_unipair ARGS3( u16, unicode, - u16, fontpos) + u16, fontpos, + int, fordefault) { int i, n; u16 **p1, *p2; - if ( !(p1 = uni_pagedir[n = unicode >> 11]) ) + if(fordefault) + p1 = unidefault_pagedir[n = unicode >> 11]; + else + p1 = uni_pagedir[n = unicode >> 11]; + if (!p1) { - p1 = uni_pagedir[n] = (u16* *) malloc(32*sizeof(u16 *)); + p1 = (u16* *) malloc(32*sizeof(u16 *)); + if (fordefault) + unidefault_pagedir[n] = p1; + else + uni_pagedir[n] = p1; if ( !p1 ) return -ENOMEM; @@ -574,16 +616,25 @@ PRIVATE int con_insert_unipair ARGS2( return 0; } -PRIVATE int con_insert_unipair_str ARGS2( +PRIVATE int con_insert_unipair_str ARGS3( u16, unicode, - char *, replace_str) + char *, replace_str, + int, fordefault) { int i, n; char ***p1, **p2; - if ( !(p1 = uni_pagedir_str[n = unicode >> 11]) ) + if(fordefault) + p1 = unidefault_pagedir_str[n = unicode >> 11]; + else + p1 = uni_pagedir_str[n = unicode >> 11]; + if (!p1) { - p1 = uni_pagedir_str[n] = (char** *) malloc(32*sizeof(char **)); + p1 = (char** *) malloc(32*sizeof(char **)); + if (fordefault) + unidefault_pagedir_str[n] = p1; + else + uni_pagedir_str[n] = p1; if ( !p1 ) return -ENOMEM; @@ -608,11 +659,24 @@ PRIVATE int con_insert_unipair_str ARGS2( /* ui arg was a leftover, deleted -kw */ PRIVATE void -con_clear_unimap NOARGS +con_clear_unimap ARGS1(int, fordefault) { int i, j; u16 **p1; - + + if (fordefault) { + for (i = 0; i < 32; i++) { + if ((p1 = unidefault_pagedir[i]) != NULL) { + for (j = 0; j < 32; j++) { + FREE(p1[j]); + } + FREE(p1); + } + unidefault_pagedir[i] = NULL; + } + + unidefault_contents_valid = 1; + } else { for (i = 0; i < 32; i++) { if ((p1 = uni_pagedir[i]) != NULL) { for (j = 0; j < 32; j++) { @@ -623,15 +687,29 @@ con_clear_unimap NOARGS uni_pagedir[i] = NULL; } - hashtable_contents_valid = 1; + unitable_contents_valid = 1; + } } PRIVATE void -con_clear_unimap_str NOARGS +con_clear_unimap_str ARGS1(int, fordefault) { int i, j; char ***p1; - + + if (fordefault) { + for (i = 0; i < 32; i++) { + if ((p1 = unidefault_pagedir_str[i]) != NULL) { + for (j = 0; j < 32; j++) { + FREE(p1[j]); + } + FREE(p1); + } + unidefault_pagedir_str[i] = NULL; + } + + unidefault_str_contents_valid = 1; /* ??? probably no use... */ + } else { for (i = 0; i < 32; i++) { if ((p1 = uni_pagedir_str[i]) != NULL) { for (j = 0; j < 32; j++) { @@ -642,7 +720,8 @@ con_clear_unimap_str NOARGS uni_pagedir_str[i] = NULL; } - hashtable_str_contents_valid = 1; /* ??? probably no use... */ + unitable_str_contents_valid = 1; /* ??? probably no use... */ + } } #ifdef NOTDEFINED @@ -679,17 +758,23 @@ con_set_default_unimap NOARGS /* The default font is always 256 characters */ - con_clear_unimap(); + con_clear_unimap(1); p = dfont_unitable; for ( i = 0 ; i < 256 ; i++ ) for ( j = dfont_unicount[i] ; j ; j-- ) - con_insert_unipair(*(p++), i); + con_insert_unipair(*(p++), i, 1); +#if 0 for ( i = 0 ; i <= 3 ; i++ ) set_inverse_transl(i); /* Update all inverse translations */ +#endif + + UC_default_unitable = dfont_unitable; - UC_current_unitable = dfont_unitable; + con_clear_unimap_str(1); + UC_con_set_unimap_str(dfont_replacedesc.entry_ct, repl_map, 1); + UC_default_unitable_str = &dfont_replacedesc; } PUBLIC int UCNumCharsets = 0; @@ -721,11 +806,11 @@ PRIVATE int UC_con_set_unimap ARGS2( /* The font is always 256 characters - so far. */ - con_clear_unimap(); + con_clear_unimap(0); for (i = 0; i < 256; i++) { for (j = UCInfo[UC_charset_out_hndl].unicount[i]; j; j--) { - con_insert_unipair(*(p++), i); + con_insert_unipair(*(p++), i, 0); } } @@ -735,15 +820,18 @@ PRIVATE int UC_con_set_unimap ARGS2( return 0; } -PRIVATE int -UC_con_set_unimap_str ARGS2(u16, ct, struct unipair_str *, list) +PRIVATE int UC_con_set_unimap_str ARGS3( + u16, ct, + struct unipair_str *, list, + int, fordefault) { int err = 0, err1; while( ct-- ) { if ( (err1 = con_insert_unipair_str(list->unicode, - list->replace_str)) != 0 ) + list->replace_str, + fordefault)) != 0 ) err = err1; list++; } @@ -752,7 +840,10 @@ UC_con_set_unimap_str ARGS2(u16, ct, struct unipair_str *, list) * No inverse translations for replacement strings! */ if (!err) { - hashtable_str_contents_valid = 1; + if (fordefault) + unidefault_str_contents_valid = 1; + else + unitable_str_contents_valid = 1; } return err; @@ -788,8 +879,9 @@ con_get_unimap ARGS3(u16, ct, u16 *, uct, struct unipair *, list) } #endif -PRIVATE int conv_uni_to_pc ARGS1( - long, ucs) +PRIVATE int conv_uni_to_pc ARGS2( + long, ucs, + int, usedefault) { int h; u16 **p1, *p2; @@ -809,10 +901,17 @@ PRIVATE int conv_uni_to_pc ARGS1( else if ( (ucs & ~UNI_DIRECT_MASK) == UNI_DIRECT_BASE ) return ucs & UNI_DIRECT_MASK; - if (!hashtable_contents_valid) - return -3; - - if ( (p1 = uni_pagedir[ucs >> 11]) && + if (usedefault) { + if (!unidefault_contents_valid) + return -3; + p1 = unidefault_pagedir[ucs >> 11]; + } else { + if (!unitable_contents_valid) + return -3; + p1 = uni_pagedir[ucs >> 11]; + } + + if (p1 && (p2 = p1[(ucs >> 6) & 0x1f]) && (h = p2[ucs & 0x3f]) < MAX_GLYPH ) return h; @@ -823,10 +922,11 @@ PRIVATE int conv_uni_to_pc ARGS1( /* * Note: contents of outbuf is not changes for negative return value! */ -PRIVATE int conv_uni_to_str ARGS3( +PRIVATE int conv_uni_to_str ARGS4( char*, outbuf, int, buflen, - long, ucs) + long, ucs, + int, usedefault) { char *h; char ***p1, **p2; @@ -849,10 +949,18 @@ PRIVATE int conv_uni_to_str ARGS3( else if ( (ucs & ~UNI_DIRECT_MASK) == UNI_DIRECT_BASE ) return ucs & UNI_DIRECT_MASK; #endif - if (!hashtable_str_contents_valid) - return -3; - - if ( (p1 = uni_pagedir_str[ucs >> 11]) && + + if (usedefault) { + if (!unidefault_str_contents_valid) + return -3; + p1 = unidefault_pagedir_str[ucs >> 11]; + } else { + if (!unitable_str_contents_valid) + return -3; + p1 = uni_pagedir_str[ucs >> 11]; + } + + if (p1 && (p2 = p1[(ucs >> 6) & 0x1f]) && (h = p2[ucs & 0x3f]) ) { strncpy (outbuf,h,(size_t) (buflen-1)); @@ -875,8 +983,8 @@ PUBLIC int UCInitialized = 0; PRIVATE void UCconsole_map_init NOARGS { - con_set_default_unimap(); - UCInitialized = 1; + con_set_default_unimap(); + UCInitialized = 1; } /* @@ -891,24 +999,44 @@ PUBLIC int UCTransUniChar ARGS2( long, unicode, int, charset_out) { - int rc; - int UChndl_out; - u16 * ut; + int rc; + int UChndl_out; + int isdefault, trydefault; + u16 * ut; - if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) - return -12; + if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) { + if ((UChndl_out = default_UChndl) < 0) + return -12; + isdefault = 1; + } else { + isdefault = UCInfo[UChndl_out].replacedesc.isdefault; + trydefault = UCInfo[UChndl_out].replacedesc.trydefault; + } - ut = UCInfo[UChndl_out].unitable; - if (ut != UC_current_unitable) { - rc = UC_con_set_unimap(UChndl_out, 1); - if (rc < 0) { - return rc; - } + if (!isdefault) { + ut = UCInfo[UChndl_out].unitable; + if (ut != UC_current_unitable) { + rc = UC_con_set_unimap(UChndl_out, 1); + if (rc < 0) { + return rc; + } + } + rc = conv_uni_to_pc(unicode, 0); + if (rc >= 0) + return rc; + } + if (isdefault || trydefault) { + rc = conv_uni_to_pc(unicode, 1); + if (rc >= 0) + return rc; + } + if (!isdefault && (rc == -4)) { + rc = conv_uni_to_pc(0xfffd, 0); + } + if ((isdefault || trydefault) && (rc == -4)) { + rc = conv_uni_to_pc(0xfffd, 1); } - rc = conv_uni_to_pc(unicode); - if (rc == -4) - rc = conv_uni_to_pc(0xfffd); - return rc; + return rc; } /* @@ -923,49 +1051,79 @@ PUBLIC int UCTransUniCharStr ARGS5( { int rc, src = 0, ignore_err; int UChndl_out; + int isdefault, trydefault; struct unimapdesc_str * repl; u16 * ut; -if (buflen<2) - return -13; + if (buflen<2) + return -13; - if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) - return -12; + if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) { + if ((UChndl_out = default_UChndl) < 0) + return -12; + isdefault = 1; + } else { + isdefault = UCInfo[UChndl_out].replacedesc.isdefault; + trydefault = UCInfo[UChndl_out].replacedesc.trydefault; + } if (chk_single_flag) { - ut = UCInfo[UChndl_out].unitable; - if (ut != UC_current_unitable) { - src = UC_con_set_unimap(UChndl_out, 1); - if (src < 0) { - return src; - } - } - src = conv_uni_to_pc(unicode); - if (src >= 32) { - outbuf[0] = src; outbuf[1] = '\0'; - return 1; - } + if (!isdefault) { + ut = UCInfo[UChndl_out].unitable; + if (ut != UC_current_unitable) { + src = UC_con_set_unimap(UChndl_out, 1); + if (src < 0) { + return src; + } + } + } + src = conv_uni_to_pc(unicode, isdefault); + if (src >= 32) { + outbuf[0] = src; outbuf[1] = '\0'; + return 1; + } } - repl = &(UCInfo[UChndl_out].replacedesc); - if (repl != UC_current_unitable_str) { - con_clear_unimap_str(); - ignore_err = UC_con_set_unimap_str(repl->entry_ct, repl->entries); - UC_current_unitable_str = repl; + if (!isdefault) { + if (repl != UC_current_unitable_str) { + con_clear_unimap_str(0); + ignore_err = UC_con_set_unimap_str(repl->entry_ct, repl->entries, 0); + UC_current_unitable_str = repl; + } + rc = conv_uni_to_str(outbuf, buflen, unicode, 0); + if (rc >= 0) + return (strlen(outbuf)); + } + if (trydefault && chk_single_flag) { + src = conv_uni_to_pc(unicode, 1); + if (src >= 32) { + outbuf[0] = src; outbuf[1] = '\0'; + return 1; + } + } + if (isdefault || trydefault) { + rc = conv_uni_to_str(outbuf, buflen, unicode, 1); + if (rc >= 0) + return (strlen(outbuf)); + } + if (rc == -4) { + if (!isdefault) + rc = conv_uni_to_str(outbuf, buflen, 0xfffd, 0); + if ((rc == -4) && (isdefault || trydefault)) + rc = conv_uni_to_str(outbuf, buflen, 0xfffd, 1); + if (rc >= 0) + return (strlen(outbuf)); } - rc = conv_uni_to_str(outbuf, buflen, unicode); - if (rc == -4) - rc = conv_uni_to_str(outbuf, buflen, 0xfffd); - if (rc >= 0) - return (strlen(outbuf)); - if (chk_single_flag && src == -4) { - rc = conv_uni_to_pc(0xfffd); - if (rc >= 32) { - outbuf[0] = rc; outbuf[1] = '\0'; - return 1; - } - return rc; + if (!isdefault) + rc = conv_uni_to_pc(0xfffd, 0); + if ((rc == -4) && (isdefault || trydefault)) + rc = conv_uni_to_pc(0xfffd, 1); + if (rc >= 32) { + outbuf[0] = rc; outbuf[1] = '\0'; + return 1; + } + return rc; } return -4; } @@ -976,39 +1134,39 @@ PRIVATE int UC_MapGN ARGS2( int, UChndl, int, update_flag) { - int i,Gn,found,lasthndl; - found = 0; - Gn = -1; - for (i=0; i<4 && Gn<0; i++) { + int i,Gn,found,lasthndl; + found = 0; + Gn = -1; + for (i=0; i<4 && Gn<0; i++) { if (UC_GNhandles[i] < 0) { Gn = i; } else if (UC_GNhandles[i] == UChndl) { - Gn = i; + Gn = i; found = 1; - } + } } if (found) return Gn; - if (Gn >= 0) { - UCInfo[UChndl].GN = Gn; - UC_GNhandles[Gn] = UChndl; + if (Gn >= 0) { + UCInfo[UChndl].GN = Gn; + UC_GNhandles[Gn] = UChndl; } else { if (UC_lastautoGN == GRAF_MAP) { - Gn = IBMPC_MAP; + Gn = IBMPC_MAP; } else { Gn = GRAF_MAP; } - UC_lastautoGN = Gn; - lasthndl = UC_GNhandles[Gn]; - UCInfo[lasthndl].GN = -1; - UCInfo[UChndl].GN = Gn; - UC_GNhandles[Gn] = UChndl; - } - if (TRACE) - fprintf(stderr,"UC_Map...... Using %i <- %i (%s)\n", + UC_lastautoGN = Gn; + lasthndl = UC_GNhandles[Gn]; + UCInfo[lasthndl].GN = -1; + UCInfo[UChndl].GN = Gn; + UC_GNhandles[Gn] = UChndl; + } + if (TRACE) + fprintf(stderr,"UC_Map...... Using %i <- %i (%s)\n", Gn, UChndl, UCInfo[UChndl].MIMEname); - UC_con_set_trans(UChndl,Gn,update_flag); - return Gn; + UC_con_set_trans(UChndl,Gn,update_flag); + return Gn; } PUBLIC int UCTransChar ARGS3( @@ -1016,48 +1174,69 @@ PUBLIC int UCTransChar ARGS3( int, charset_in, int, charset_out) { - int unicode, Gn; - int rc; - int UChndl_in, UChndl_out; - u16 * ut; - int upd = 0; + int unicode, Gn; + int rc = -4; + int UChndl_in, UChndl_out; + int isdefault, trydefault; + u16 * ut; + int upd = 0; #ifndef UC_NO_SHORTCUTS - if (charset_in == charset_out) - return (unsigned char)ch_in; + if (charset_in == charset_out) + return (unsigned char)ch_in; #endif /* UC_NO_SHORTCUTS */ if (charset_in < 0) return -11; - if ((UChndl_in = LYCharSet_UC[charset_in].UChndl) < 0) - return -11; - if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) - return -12; - if (!UCInfo[UChndl_in].num_uni) - return -11; + if ((UChndl_in = LYCharSet_UC[charset_in].UChndl) < 0) + return -11; + if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) { + if ((UChndl_out = default_UChndl) < 0) + return -12; + isdefault = 1; + } else { + isdefault = UCInfo[UChndl_out].replacedesc.isdefault; + trydefault = UCInfo[UChndl_out].replacedesc.trydefault; + } + if (!UCInfo[UChndl_in].num_uni) + return -11; if ((Gn = UCInfo[UChndl_in].GN) < 0) { Gn = UC_MapGN(UChndl_in,0); upd = 1; + } - ut = UCInfo[UChndl_out].unitable; - if (ut == UC_current_unitable) { - if (upd) { - set_inverse_transl(Gn); + ut = UCInfo[UChndl_out].unitable; + if (!isdefault) { + if (ut == UC_current_unitable) { + if (upd) { + set_inverse_transl(Gn); + } + } else { + rc = UC_con_set_unimap(UChndl_out, 1); + if (rc > 0) { + set_inverse_transl(Gn); + } else if (rc < 0) { + return rc; + } } - } else { - rc = UC_con_set_unimap(UChndl_out, 1); - if (rc > 0) { - set_inverse_transl(Gn); - } else if (rc < 0) { - return rc; - } } - UC_translate = set_translate(Gn); - unicode = UC_translate[(unsigned char)ch_in]; - rc = conv_uni_to_pc(unicode); - if (rc == -4) - rc = conv_uni_to_pc(0xfffd); - return rc; + UC_translate = set_translate(Gn); + unicode = UC_translate[(unsigned char)ch_in]; + if (!isdefault) { + rc = conv_uni_to_pc(unicode, 0); + if (rc >= 0) + return rc; + } + if ((rc == -4) && (isdefault || trydefault)) { + rc = conv_uni_to_pc(unicode, 1); + } + if ((rc == -4) && !isdefault) { + rc = conv_uni_to_pc(0xfffd, 0); + } + if ((rc == -4) && (isdefault || trydefault)) { + rc = conv_uni_to_pc(0xfffd, 1); + } + return rc; } PUBLIC long int UCTransToUni ARGS2( @@ -1102,6 +1281,7 @@ PUBLIC int UCReverseTransChar ARGS3(char, ch_out, int, charset_in, int, charset_ int Gn; int rc; int UChndl_in, UChndl_out; + int isdefault; int i_ch = (unsigned char)ch_out; u16 * ut; @@ -1113,27 +1293,40 @@ PUBLIC int UCReverseTransChar ARGS3(char, ch_out, int, charset_in, int, charset_ return -11; if ((UChndl_in = LYCharSet_UC[charset_in].UChndl) < 0) return -11; - if (charset_out < 0) - return -12; - if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) - return -12; if (!UCInfo[UChndl_in].num_uni) return -11; + if (charset_out < 0) + return -12; + if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) { + if ((UChndl_out = default_UChndl) < 0) + return -12; + isdefault = 1; + } else { + isdefault = UCInfo[UChndl_out].replacedesc.isdefault; + } - ut = UCInfo[UChndl_out].unitable; - if (ut == UC_current_unitable) { - if ((Gn = UCInfo[UChndl_in].GN) >= 0) { - UC_translate = set_translate(Gn); - rc = inv_translate[i_ch]; - if (rc >= 32) { - return rc; - } - } else { - Gn = UC_MapGN(UChndl_in,1); - UC_translate = set_translate(Gn); - rc = inv_translate[i_ch]; - if (rc >= 32) { - return rc; + if (!isdefault) { + /* + * Try to use the inverse table if charset_out is not equivalent + * to using just the default table. If it is, it should have + * just ASCII chars and trying to back-translate those should + * not give anything but themselves. - kw + */ + ut = UCInfo[UChndl_out].unitable; + if (ut == UC_current_unitable) { + if ((Gn = UCInfo[UChndl_in].GN) >= 0) { + UC_translate = set_translate(Gn); + rc = inv_translate[i_ch]; + if (rc >= 32) { + return rc; + } + } else { + Gn = UC_MapGN(UChndl_in,1); + UC_translate = set_translate(Gn); + rc = inv_translate[i_ch]; + if (rc >= 32) { + return rc; + } } } } @@ -1151,17 +1344,18 @@ PUBLIC int UCTransCharStr ARGS6( int, charset_out, int, chk_single_flag) { - int unicode, Gn; - int rc, src = 0, ignore_err; - int UChndl_in, UChndl_out; - struct unimapdesc_str * repl; - u16 * ut; - int upd = 0; + int unicode, Gn; + int rc, src = 0, ignore_err; + int UChndl_in, UChndl_out; + int isdefault, trydefault; + struct unimapdesc_str * repl; + u16 * ut; + int upd = 0; -if (buflen<2) - return -13; + if (buflen<2) + return -13; #ifndef UC_NO_SHORTCUTS - if (chk_single_flag && charset_in == charset_out) { + if (chk_single_flag && charset_in == charset_out) { outbuf[0] = ch_in; outbuf[1] = '\0'; return 1; @@ -1169,60 +1363,91 @@ if (buflen<2) #endif /* UC_NO_SHORTCUTS */ if (charset_in < 0) return -11; - if ((UChndl_in = LYCharSet_UC[charset_in].UChndl) < 0) - return -11; - if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) - return -12; - if (!UCInfo[UChndl_in].num_uni) - return -11; - if ((Gn = UCInfo[UChndl_in].GN) < 0) + if ((UChndl_in = LYCharSet_UC[charset_in].UChndl) < 0) + return -11; + if (!UCInfo[UChndl_in].num_uni) + return -11; + if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) { + if ((UChndl_out = default_UChndl) < 0) + return -12; + isdefault = 1; + } else { + isdefault = UCInfo[UChndl_out].replacedesc.isdefault; + trydefault = UCInfo[UChndl_out].replacedesc.trydefault; + } + if ((Gn = UCInfo[UChndl_in].GN) < 0) {Gn = UC_MapGN(UChndl_in,!chk_single_flag); upd=chk_single_flag;} - UC_translate = set_translate(Gn); - unicode = UC_translate[(unsigned char)ch_in]; - - if (chk_single_flag) { - ut = UCInfo[UChndl_out].unitable; - if (ut == UC_current_unitable) { - if (upd) set_inverse_transl(Gn); - } else { - src = UC_con_set_unimap(UChndl_out, 1); - if (src > 0) { - set_inverse_transl(Gn); - } else if (src < 0) { - return src; - } + UC_translate = set_translate(Gn); + unicode = UC_translate[(unsigned char)ch_in]; + + if (chk_single_flag) { + if (!isdefault) { + ut = UCInfo[UChndl_out].unitable; + if (ut == UC_current_unitable) { + if (upd) set_inverse_transl(Gn); + } else { + src = UC_con_set_unimap(UChndl_out, 1); + if (src > 0) { + set_inverse_transl(Gn); + } else if (src < 0) { + return src; + } + } } - src = conv_uni_to_pc(unicode); - if (src >= 32) { - outbuf[0] = src; outbuf[1] = '\0'; + src = conv_uni_to_pc(unicode, isdefault); + if (src >= 32) { + outbuf[0] = src; outbuf[1] = '\0'; return 1; } - } - - repl = &(UCInfo[UChndl_out].replacedesc); - if (repl != UC_current_unitable_str) { - con_clear_unimap_str(); - ignore_err = UC_con_set_unimap_str(repl->entry_ct, repl->entries); - UC_current_unitable_str = repl; - } - rc = conv_uni_to_str(outbuf, buflen, unicode); - if (rc == -4) - rc = conv_uni_to_str(outbuf, buflen, 0xfffd); - if (rc >= 0) - return (strlen(outbuf)); + } - if (chk_single_flag && src == -4) { - rc = conv_uni_to_pc(0xfffd); - if (rc >= 32) { - outbuf[0] = rc; outbuf[1] = '\0'; + repl = &(UCInfo[UChndl_out].replacedesc); + if (!isdefault) { + if (repl != UC_current_unitable_str) { + con_clear_unimap_str(0); + ignore_err = UC_con_set_unimap_str(repl->entry_ct, repl->entries, 0); + UC_current_unitable_str = repl; + } + rc = conv_uni_to_str(outbuf, buflen, unicode, 0); + if (rc >= 0) + return (strlen(outbuf)); + } + if (trydefault && chk_single_flag) { + src = conv_uni_to_pc(unicode, 1); + if (src >= 32) { + outbuf[0] = src; outbuf[1] = '\0'; return 1; + } + } + if (isdefault || trydefault) { + rc = conv_uni_to_str(outbuf, buflen, unicode, 1); + if (rc >= 0) + return (strlen(outbuf)); + } + if (rc == -4) { + if (!isdefault) + rc = conv_uni_to_str(outbuf, buflen, 0xfffd, 0); + if ((rc == -4) && (isdefault || trydefault)) + rc = conv_uni_to_str(outbuf, buflen, 0xfffd, 1); + if (rc >= 0) + return (strlen(outbuf)); + } + if (chk_single_flag && src == -4) { + if (!isdefault) + rc = conv_uni_to_pc(0xfffd, 0); + if ((rc == -4) && (isdefault || trydefault)) + rc = conv_uni_to_pc(0xfffd, 1); + if (rc >= 32) { + outbuf[0] = rc; outbuf[1] = '\0'; + return 1; } else if (rc <= 0) { outbuf[0] = '\0'; return rc; } - } - return -4; + return rc; + } + return -4; } PRIVATE int UC_FindGN_byMIME ARGS1( @@ -1262,10 +1487,10 @@ PUBLIC int UCGetLYhndl_byMIME ARGS1( for (i = 0; (i < MAXCHARSETS && i < LYNumCharsets && LYchar_set_names[i] && LYhndl < 0); i++) { - if (LYCharSet_UC[i].MIMEname && - !strcmp(UC_MIMEcharset,LYCharSet_UC[i].MIMEname)) { - LYhndl = i; - } + if (LYCharSet_UC[i].MIMEname && + !strcmp(UC_MIMEcharset,LYCharSet_UC[i].MIMEname)) { + LYhndl = i; + } } if (LYhndl < 0) { /* @@ -1282,10 +1507,13 @@ PUBLIC int UCGetLYhndl_byMIME ARGS1( return UCGetLYhndl_byMIME("euc-jp"); } else if (!strcmp(UC_MIMEcharset, "iso-2022-kr")) { return UCGetLYhndl_byMIME("euc-kr"); - } else if (!strcmp(UC_MIMEcharset, "gb2312")) { + } else if (!strcmp(UC_MIMEcharset, "gb2312") || + !strncmp(UC_MIMEcharset, "cn-gb", 5)) { return UCGetLYhndl_byMIME("euc-cn"); } else if (!strcmp(UC_MIMEcharset, "iso-2022-cn")) { return UCGetLYhndl_byMIME("euc-cn"); + } else if (!strcmp(UC_MIMEcharset, "cn-big5")) { + return UCGetLYhndl_byMIME("big5"); } else if (!strcmp(UC_MIMEcharset, "windows-1252")) { /* * It's not my fault that Microsoft hasn't registered @@ -1423,7 +1651,7 @@ PRIVATE char ** UC_setup_LYCharSets_repl ARGS2( } /* * Now allocate a new table compatible with LYCharSets[] - * and with the HTMLDTD for entitied. + * and with the HTMLDTD for entities. * We don't know yet whether we'll keep it around. */ p = prepl = (char **) malloc(HTML_dtd.number_of_entities * sizeof(char *)); if (!p) { @@ -1528,7 +1756,7 @@ PRIVATE int UC_Register_with_LYCharSets ARGS4( /* * Do different kinds of searches... - * after all, this is experimental... + * Normally the first should find the match if there is one! */ for (i = 0; i < MAXCHARSETS && LYchar_set_names[i] && LYhndl < 0; i++) { if (!strcmp(UC_LYNXcharset, LYchar_set_names[i])) { @@ -1643,6 +1871,9 @@ PUBLIC void UC_Charset_Setup ARGS8( UCInfo[s].unitable = unitable; UCInfo[s].num_uni = nnuni; UCInfo[s].replacedesc = replacedesc; + if (replacedesc.isdefault) { + default_UChndl = s; + } Gn = UC_FindGN_byMIME(UC_MIMEcharset); if (Gn >= 0) UC_GNhandles[Gn] = s; @@ -1664,8 +1895,10 @@ PRIVATE void UCcleanup_mem NOARGS { int i; UCfree_allocated_LYCharSets(); - con_clear_unimap_str(); - con_clear_unimap(); + con_clear_unimap_str(0); + con_clear_unimap_str(1); + con_clear_unimap(0); + con_clear_unimap(1); for (i = 1; i < 4; i++) { /* first one is static! */ FREE(inverse_translations[i]); } diff --git a/src/chrtrans/Makefile b/src/chrtrans/Makefile.old index 3b75ab08..3b75ab08 100644 --- a/src/chrtrans/Makefile +++ b/src/chrtrans/Makefile.old diff --git a/src/chrtrans/README.format b/src/chrtrans/README.format index e5eca7bf..58f0b1cc 100644 --- a/src/chrtrans/README.format +++ b/src/chrtrans/README.format @@ -12,7 +12,7 @@ There are four kinds of lines: Summary example: # This line is a comment, the next line is a directive - OBrand new Charset! + O Brand new Charset! 0x41 U+0041 U+0391 U+00cd:I' @@ -23,12 +23,25 @@ a) comment lines start with a '#' character. check the examples..) b) directives: - start with a special character, currently recognized are the letters: + start with a keyword which may be abbreviated to one letter (first + letter must be capitalized), followed by space and a value. + Currently recognized: - O The name under which this should appear on the O)ptions screen - M The name for this charset in MIME syntax (one word with digits + OptionName + The name under which this should appear on the O)ptions screen + in the list for Display Character Set + MIMEName + The name for this charset in MIME syntax (one word with digits and some other non-letters allowed, should be IANA registered) - R a number which flags some special property (encoding) for this + Default + This is the default (fallback) translation table, it will be used + for Unicode -> 8bit (or 7bit) translation if no translation is found + in the specific table. + FallBack + Whether to use the default table if no translation is found in + this table. Normally fallback is used, "FallBack NO" disables it. + RawOrEnc + a number which flags some special property (encoding) for this charset [see utf8.uni for example, see UCDefs.h for details]. c) character translation definitions: diff --git a/src/chrtrans/README.tables b/src/chrtrans/README.tables index 8e4366d1..a95d600c 100644 --- a/src/chrtrans/README.tables +++ b/src/chrtrans/README.tables @@ -35,8 +35,9 @@ a) Near the top, you will find a bunch of lines (some may be commented out) #include "chrtrans/<fn>.h" #endif /* VMS */ -Add or comment out as you wish. (But it's probably safest to leave the -first one, referring to "chrtrans/iso01_uni.h", in place...) +Add or comment out as you wish. But it is probably safest to leave the +first two, referring to "chrtrans/def7_uni.h" and "chrtrans/iso01_uni.h", +in place. b) At the bottom, you will find a bunch of lines (again, some may be commented out by default) of the form diff --git a/src/chrtrans/UCkd.h b/src/chrtrans/UCkd.h index 083afe49..1497f298 100644 --- a/src/chrtrans/UCkd.h +++ b/src/chrtrans/UCkd.h @@ -43,6 +43,8 @@ struct unimapdesc { struct unimapdesc_str { u16 entry_ct; struct unipair_str *entries; + int isdefault; + int trydefault; }; diff --git a/src/chrtrans/def7_uni.tbl b/src/chrtrans/def7_uni.tbl index dcbb2f01..c4bbef7c 100644 --- a/src/chrtrans/def7_uni.tbl +++ b/src/chrtrans/def7_uni.tbl @@ -17,7 +17,7 @@ D1 U+00a1:! U+00a2:Ct U+00a3:Pd -U+00a4:Cu +U+00a4:CUR U+00a5:Ye U+00a6:| U+00a7:SE @@ -26,15 +26,16 @@ U+00a9:(C) U+00aa:-a U+00ab:<< U+00ac:NO -U+00ad:-- +U+00ad:- U+00ae:(R) -U+00af:'m +U+00af:- U+00b0:DG U+00b1:+- U+00b2:^2 U+00b3:^3 U+00b4:' -U+00b5:My +# My -> u +U+00b6:u U+00b6:PI U+00b7:.M U+00b8:, @@ -56,7 +57,7 @@ U+00d0:D- 0x4e U+00d1 0x4f U+00d2-U+00d5 U+00d6:O: -0x2a U+00d7 +U+00d7: * U+00d8:O/ 0x55 U+00d9-U+00db U+00dc:U: @@ -147,7 +148,7 @@ U+017f:s1 U+0187:C2 U+0188:c2 U+0191:F2 -U+0192:f2 +U+0192: f U+0198:K2 U+0199:k2 U+01a0:O9 @@ -307,7 +308,7 @@ U+02b3:<r> U+02b7:<w> U+02bb:;S 0x60 U+02bc -U+02c6:1> +U+02c6:^ U+02c7:'< U+02c9:1- U+02cb:1! @@ -316,7 +317,7 @@ U+02d8:'( U+02d9:'. U+02da:'0 U+02db:'; -U+02dc:1? +U+02dc:~ U+02dd:'" 0x7e U+0303 U+0334 0x2e U+0322 U+0323 @@ -403,6 +404,9 @@ U+03cc:o% U+03cd:u% U+03ce:w% U+03d0:b3 +U+03d1:theta +U+03d2:\upsih +U+03d6:pi U+03da:T3 U+03db:t3 U+03dc:M3 @@ -924,7 +928,7 @@ U+1349:fu U+134A:fi U+134B:fa U+134C:fE -0x46 U+134D #:f +0x6f U+134D #:f U+134E:fo U+134F:fWa U+1350:pe @@ -1312,8 +1316,11 @@ U+20a9:W= U+2103:oC U+2105:c/o U+2109:oF +U+2111:Im U+2116:No. U+2117:PO +U+2118:P +U+211C:Re U+211e:Rx U+2120:(SM) U+2122:(TM) @@ -1321,6 +1328,7 @@ U+2126:Ohm U+212E:est. 0x4b U+212A # Kelvin sign - K U+212b:Ang. +U+2135:Aleph U+2153: 1/3 U+2154: 2/3 U+2155: 1/5 @@ -1369,30 +1377,34 @@ U+2180:1000RCD U+2181:5000R U+2182:10000R U+2190:<- -U+2191:-! +U+2191:-^ U+2192:-> U+2193:-v -U+2194:<> +U+2194:<-> U+2195:UD U+2196:<!! U+2197://> U+2198:!!> U+2199:<// U+21a8:UD- +U+21B5:RET U+21c0:>V U+21d0:<= +U+21d1:^^ U+21d2:=> -U+21d4:== +U+21d3:vv +U+21d4:<=> U+2200:FA -U+2202:d +U+2202:\partial U+2203:TE U+2205:{} U+2206:decr. U+2207:Nabla U+2208:(- +U+2209:!(- U+220b:-) -U+220f:*P -U+2211:+Z +U+220f:\prod +U+2211:\sum U+2212: - U+2213:-/+ U+2214:.+ @@ -1409,7 +1421,7 @@ U+2227:AND U+2228:OR U+2229:(U U+222a:)U -U+222b:In +U+222b:\int U+222c:DI U+222e:Io U+2234:.: @@ -1433,8 +1445,11 @@ U+226e:!< U+226f:!> U+2282:(C U+2283:)C +U+2282:!(C U+2286:(_ U+2287:)_ +U+2295:(+) +U+2297:(x) U+2299:0. U+229a:02 U+22a5:-T @@ -1687,7 +1702,7 @@ U+266c:M16 U+266d:b U+266e:Mx U+266f:# -0x58 U+2713 U+2717 # check marks +0x58 U+2713 U+2717 # check marks -> x U+2720:-X 0x20 U+3000 # ideographic space U+3001:,_ @@ -2073,12 +2088,12 @@ U+fefa:lh. U+fefb:la- U+fefc:la. # Symbols for C0 and C1 control characters, in case they get through... -U+0000:NU +U+0000:NUL U+0001:SH U+0002:SX U+0003:EX U+0004:ET -U+0005:EQ +U+0005:ENQ U+0006:AK U+0007:BL U+0008:BS @@ -2090,90 +2105,90 @@ U+000d:CR U+000e:SO U+000f:SI U+0010:DL -U+0011:D1 -U+0012:D2 -U+0013:D3 -U+0014:D4 -U+0015:NK -U+0016:SY +U+0011:DC1 +U+0012:DC2 +U+0013:DC3 +U+0014:DC4 +U+0015:NAK +U+0016:SYN U+0017:EB U+0018:CN U+0019:EM U+001a:SB -U+001b:EC +U+001b:ESC U+001c:FS U+001d:GS U+001e:RS U+001f:US U+007f:DT U+0080:PA -U+0081:HO -U+0082:BH -U+0083:NH -U+0084:IN -U+0085:NL -U+0086:SA -U+0087:ES -U+0088:HS -U+0089:HJ -U+008a:VS -U+008b:PD -U+008c:PU +#U+0081:HO +#U+0082:BH +#U+0083:NH +#U+0084:IN +#U+0085:NL +#U+0086:SA +#U+0087:ES +#U+0088:HS +#U+0089:HJ +#U+008a:VS +#U+008b:PD +#U+008c:PU U+008d:RI -U+008e:S2 -U+008f:S3 -U+0090:DC -U+0091:P1 -U+0092:P2 -U+0093:TS -U+0094:CC -U+0095:MW -U+0096:SG -U+0097:EG -U+0098:SS -U+0099:GC -U+009a:SC -U+009b:CI -U+009c:ST -U+009d:OC -U+009e:PM -U+009f:AC +U+008e:SS2 +U+008f:SS3 +U+0090:DCS +#U+0091:P1 +#U+0092:P2 +#U+0093:TS +#U+0094:CC +#U+0095:MW +#U+0096:SG +#U+0097:EG +#U+0098:SS +#U+0099:GC +#U+009a:SC +U+009b:CSI +#U+009c:ST +#U+009d:OC +#U+009e:PM +#U+009f:AC # Unassigned stuff in private zone (?) -U+e000:"3 -U+e001:"1 -U+e002:"! -U+e003:"' -U+e004:"> -U+e005:"? -U+e006:"- -U+e007:"( -U+e008:". -U+e009:": -U+e00a:"0 -U+e00b:", -U+e00c:"_ -U+e00d:"" -U+e00e:"; -U+e00f:"< -U+e010:"= -U+e011:"/ -U+e012:"p -U+e013:"d -U+e014:"i -U+e015:+_ -U+e016:a+: -U+e017:Tel -U+e018:UA -U+e019:UB -U+e01e:Mc -U+e01f:Fl - -U+e020:pm -U+e021:Tel -U+e022:a+: -U+e023:Fl -U+e024:GF -U+e025:>V -U+e026:!* -U+e027:?* -U+e028:J< +#U+e000:"3 +#U+e001:"1 +#U+e002:"! +#U+e003:"' +#U+e004:"> +#U+e005:"? +#U+e006:"- +#U+e007:"( +#U+e008:". +#U+e009:": +#U+e00a:"0 +#U+e00b:", +#U+e00c:"_ +#U+e00d:"" +#U+e00e:"; +#U+e00f:"< +#U+e010:"= +#U+e011:"/ +#U+e012:"p +#U+e013:"d +#U+e014:"i +#U+e015:+_ +#U+e016:a+: +#U+e017:Tel +#U+e018:UA +#U+e019:UB +#U+e01e:Mc +#U+e01f:Fl +# +#U+e020:pm +#U+e021:Tel +#U+e022:a+: +#U+e023:Fl +#U+e024:GF +#U+e025:>V +#U+e026:!* +#U+e027:?* +#U+e028:J< diff --git a/src/chrtrans/iso01_uni.tbl b/src/chrtrans/iso01_uni.tbl index 15dc6f6a..14f71ff3 100644 --- a/src/chrtrans/iso01_uni.tbl +++ b/src/chrtrans/iso01_uni.tbl @@ -20,45 +20,45 @@ OISO Latin 1 # of small letter 'c' to 'c': 0x63 U+0063 U+0107 U+0109 U+010B U+010D 0x64-0x7e idem -0x7f U+2302 0xa0-0xff idem #0x00 U+fffd # don't let failed char lookups return '\0' -# Mappings of cntrl chars, left in from original, just to see what happens... -0x01 U+263A -0x02 U+263B -0x03 U+2665 -0x04 U+2666 -0x05 U+2663 -0x06 U+2660 -0x07 U+2022 -0x08 U+25D8 -0x09 U+25CB -0x0A U+25D9 -0x0B U+2642 -0x0C U+2640 -0x0D U+266A -0x0E U+266B -0x0E U+266C -0x0F U+263C -0x10 U+25B6 -0x10 U+25BA -0x11 U+25C0 -0x11 U+25C4 -0x12 U+2195 -0x13 U+203C -0x14 U+00B6 -0x15 U+00A7 -0x16 U+25AC -0x17 U+21A8 -0x18 U+2191 -0x19 U+2193 -0x1A U+2192 -0x1B U+2190 -0x1C U+221F -0x1C U+2319 -0x1D U+2194 -0x1E U+25B2 -0x1F U+25BC +# Mappings of C0 control chars from original, disabled +#0x01 U+263A +#0x02 U+263B +#0x03 U+2665 +#0x04 U+2666 +#0x05 U+2663 +#0x06 U+2660 +#0x07 U+2022 +#0x08 U+25D8 +#0x09 U+25CB +#0x0A U+25D9 +#0x0B U+2642 +#0x0C U+2640 +#0x0D U+266A +#0x0E U+266B +#0x0E U+266C +#0x0F U+263C +#0x10 U+25B6 +#0x10 U+25BA +#0x11 U+25C0 +#0x11 U+25C4 +#0x12 U+2195 +#0x13 U+203C +#0x14 U+00B6 +#0x15 U+00A7 +#0x16 U+25AC +#0x17 U+21A8 +#0x18 U+2191 +#0x19 U+2193 +#0x1A U+2192 +#0x1B U+2190 +#0x1C U+221F +#0x1C U+2319 +#0x1D U+2194 +#0x1E U+25B2 +#0x1F U+25BC +#0x7f U+2302 0xd0 U+0110 # Dstrok and ETH are nearly the same... @@ -68,360 +68,11 @@ U+202c: # LEFT-TO-RIGHT OVERRIDE 202D U+202d: -# Replacement strings for Ethiopic characters -U+1200:he -U+1201:hu -U+1202:hi -U+1203:ha -U+1204:hE -U+1205:h -U+1206:ho -U+1208:le -U+1209:lu -U+120A:li -U+120B:la -U+120C:lE -U+120D:l -U+120E:lo -U+120F:lWa -U+1210:He -U+1211:Hu -U+1212:Hi -U+1213:Ha -U+1214:HE -U+1215:H -U+1216:Ho -U+1217:HWa -U+1218:me -U+1219:mu -U+121A:mi -U+121B:ma -U+121C:mE -U+121D:m -U+121E:mo -U+121F:mWa -U+1220:`se -U+1221:`su -U+1222:`si -U+1223:`sa -U+1224:`sE -U+1225:`s -U+1226:`so -U+1227:`sWa -U+1228:re -U+1229:ru -U+122A:ri -U+122B:ra -U+122C:rE -U+122D:r -U+122E:ro -U+122F:rWa -U+1230:se -U+1231:su -U+1232:si -U+1233:sa -U+1234:sE -U+1235:s -U+1236:so -U+1237:sWa -U+1238:xe -U+1239:xu -U+123A:xi -U+123B:xa -U+123C:xE -U+123D:xa -U+123E:xo -U+123F:xWa -U+1240:qe -U+1241:qu -U+1242:qi -U+1243:qa -U+1244:qE -U+1245:q -U+1246:qo -U+1248:qWe -U+124A:qWi -U+124B:qWa -U+124C:qWE -U+124D:qW -U+1250:Qe -U+1251:Qu -U+1252:Qi -U+1253:Qa -U+1254:QE -U+1255:Q -U+1256:Qo -U+1258:QWe -U+125A:QWi -U+125B:QWa -U+125C:QWE -U+125D:QW -U+1260:be -U+1261:bu -U+1262:bi -U+1263:ba -U+1264:bE -U+1265:b -U+1266:bo -U+1267:bWa -U+1268:ve -U+1269:vu -U+126A:vi -U+126B:va -U+126C:vE -U+126D:v -U+126E:vo -U+126F:vWa -U+1270:te -U+1271:tu -U+1272:ti -U+1273:ta -U+1274:tE -U+1275:t -U+1276:to -U+1277:tWa -U+1278:ce -U+1279:cu -U+127A:ci -U+127B:ca -U+127C:cE -U+127D:c -U+127E:co -U+127F:cWa -U+1280:`he -U+1281:`hu -U+1282:`hi -U+1283:`ha -U+1284:`hE -U+1285:`h -U+1286:`ho -U+1288:hWe -U+128A:hWi -U+128B:hWa -U+128C:hWE -U+128D:hW -U+1290:na -U+1291:nu -U+1292:ni -U+1293:na -U+1294:nE -U+1295:n -U+1296:no -U+1297:nWa -U+1298:Ne -U+1299:Nu -U+129A:Ni -U+129B:Na -U+129C:NE -U+129D:N -U+129E:No -U+129F:NWa -U+12A0:e -U+12A1:u -U+12A2:i -U+12A3:a -U+12A4:E -U+12A5:I -U+12A6:o -U+12A7:e3 -U+12A8:ke -U+12A9:ku -U+12AA:ki -U+12AB:ka -U+12AC:kE -U+12AD:k -U+12AE:ko -U+12B0:kWe -U+12B2:kWi -U+12B3:kWa -U+12B4:kWE -U+12B5:kW -U+12B8:Ke -U+12B9:Ku -U+12BA:Ki -U+12BB:Ka -U+12BC:KE -U+12BD:K -U+12BE:Ko -U+12C0:KWe -U+12C2:KWi -U+12C3:KWa -U+12C4:KWE -U+12C5:KW -U+12C8:we -U+12C9:wu -U+12CA:wi -U+12CB:wa -U+12CC:wE -U+12CD:w -U+12CE:wo -U+12D0:`e -U+12D1:`u -U+12D2:`i -U+12D3:`a -U+12D4:`E -U+12D5:`I -U+12D6:`o -U+12D8:ze -U+12D9:zu -U+12DA:zi -U+12DB:za -U+12DC:zE -U+12DD:z -U+12DE:zo -U+12DF:zWa -U+12E0:Ze -U+12E1:Zu -U+12E2:Zi -U+12E3:Za -U+12E4:ZE -U+12E5:Z -U+12E6:Zo -U+12E7:ZWa -U+12E8:ye -U+12E9:yu -U+12EA:yi -U+12EB:ya -U+12EC:yE -U+12ED:y -U+12EE:yo -U+12EF:yWa -U+12F0:de -U+12F1:du -U+12F2:di -U+12F3:da -U+12F4:dE -U+12F5:d -U+12F6:do -U+12F7:dWa -U+12F8:De -U+12F9:Du -U+12FA:Di -U+12FB:Da -U+12FC:DE -U+12FD:D -U+12FE:Do -U+12FF:DWa -U+1300:je -U+1301:ju -U+1302:ji -U+1303:ja -U+1304:jE -U+1305:j -U+1306:jo -U+1307:jWa -U+1308:ga -U+1309:gu -U+130A:gi -U+130B:ga -U+130C:gE -U+130D:g -U+130E:go -U+1310:gWu -U+1312:gWi -U+1313:gWa -U+1314:gWE -U+1315:gW -U+1318:Ge -U+1319:Gu -U+131A:Gi -U+131B:Ga -U+131C:GE -U+131D:G -U+131E:Go -U+131F:GWa -U+1320:Te -U+1321:Tu -U+1322:Ti -U+1323:Ta -U+1324:TE -U+1325:T -U+1326:To -U+1327:TWa -U+1328:Ce -U+1329:Ca -U+132A:Cu -U+132B:Ca -U+132C:CE -U+132D:C -U+132E:Co -U+132F:CWa -U+1330:Pe -U+1331:Pu -U+1332:Pi -U+1333:Pa -U+1334:PE -U+1335:P -U+1336:Po -U+1337:PWa -U+1338:SWe -U+1339:SWu -U+133A:SWi -U+133B:SWa -U+133C:SWE -U+133D:SW -U+133E:SWo -U+133F:SWa -U+1340:`Sa -U+1341:`Su -U+1342:`Si -U+1343:`Sa -U+1344:`SE -U+1345:`S -U+1346:`So -U+1348:fa -U+1349:fu -U+134A:fi -U+134B:fa -U+134C:fE -U+134D:f -U+134E:fo -U+134F:fWa -U+1350:pe -U+1351:pu -U+1352:pi -U+1353:pa -U+1354:pE -U+1355:p -U+1356:po -U+1357:pWa -U+1358:mYa -U+1359:rYa -U+135A:fYa -# ETHIOPIC SPACE U+1360 mapped to ASCII space above -U+1361:: -U+1362::: -U+1363:, -U+1364:; -U+1365:-: -U+1366::- -U+1367:`? -U+1368::|: -U+1369:`1 -U+136A:`2 -U+136B:`3 -U+136C:`4 -U+136D:`5 -U+136E:`6 -U+136F:`7 -U+1370:`8 -U+1371:`9 -U+1372:`10 -U+1373:`20 -U+1374:`30 -U+1375:`40 -U+1376:`50 -U+1377:`60 -U+1378:`70 -U+1379:`80 -U+137A:`90 -U+137B:`100 -U+137C:`10000 - - # TRADE MARK SIGN: U+2122:(TM) 0x60 U+2018 # left single quotation mark 0x27 U+2019-U+201b # various single quotation marks 0x22 U+201c-U+201f # various double quotation marks + +U+2297:(×) \ No newline at end of file diff --git a/src/chrtrans/iso02_uni.tbl b/src/chrtrans/iso02_uni.tbl index dec4d843..ac7dd37a 100644 --- a/src/chrtrans/iso02_uni.tbl +++ b/src/chrtrans/iso02_uni.tbl @@ -3,7 +3,6 @@ # [use: unicode_start iso02.f16 iso02] # 0x20-0x7e idem -0x7f U+2302 #The MIME name of this charset. Miso-8859-2 @@ -13,41 +12,42 @@ OISO Latin 2 # #0x00 U+fffd -0x01 U+263A -0x02 U+263B -0x03 U+2665 -0x04 U+2666 -0x05 U+2663 -0x06 U+2660 -0x07 U+2022 -0x08 U+25D8 -0x09 U+25CB -0x0A U+25D9 -0x0B U+2642 -0x0C U+2640 -0x0D U+266A -0x0E U+266B -0x0E U+266C -0x0F U+263C -0x10 U+25B6 -0x10 U+25BA -0x11 U+25C0 -0x11 U+25C4 -0x12 U+2195 -0x13 U+203C -0x14 U+00B6 -0x15 U+00A7 -0x16 U+25AC -0x17 U+21A8 -0x18 U+2191 -0x19 U+2193 -0x1A U+2192 -0x1B U+2190 -0x1C U+221F -0x1C U+2319 -0x1D U+2194 -0x1E U+25B2 -0x1F U+25BC +#0x01 U+263A +#0x02 U+263B +#0x03 U+2665 +#0x04 U+2666 +#0x05 U+2663 +#0x06 U+2660 +#0x07 U+2022 +#0x08 U+25D8 +#0x09 U+25CB +#0x0A U+25D9 +#0x0B U+2642 +#0x0C U+2640 +#0x0D U+266A +#0x0E U+266B +#0x0E U+266C +#0x0F U+263C +#0x10 U+25B6 +#0x10 U+25BA +#0x11 U+25C0 +#0x11 U+25C4 +#0x12 U+2195 +#0x13 U+203C +#0x14 U+00B6 +#0x15 U+00A7 +#0x16 U+25AC +#0x17 U+21A8 +#0x18 U+2191 +#0x19 U+2193 +#0x1A U+2192 +#0x1B U+2190 +#0x1C U+221F +#0x1C U+2319 +#0x1D U+2194 +#0x1E U+25B2 +#0x1F U+25BC +#0x7f U+2302 # 0xa0 U+00a0 0xa1 U+0104 diff --git a/src/chrtrans/iso03_uni.tbl b/src/chrtrans/iso03_uni.tbl index 875f4d41..2ab5171c 100644 --- a/src/chrtrans/iso03_uni.tbl +++ b/src/chrtrans/iso03_uni.tbl @@ -9,44 +9,44 @@ Miso-8859-3 OISO Latin 3 0x20-0x7e idem -0x7f U+2302 +#0x7f U+2302 # #0x00 U+fffd -0x01 U+263A -0x02 U+263B -0x03 U+2665 -0x04 U+2666 -0x05 U+2663 -0x06 U+2660 -0x07 U+2022 -0x08 U+25D8 -0x09 U+25CB -0x0A U+25D9 -0x0B U+2642 -0x0C U+2640 -0x0D U+266A -0x0E U+266B -0x0E U+266C -0x0F U+263C -0x10 U+25B6 -0x10 U+25BA -0x11 U+25C0 -0x11 U+25C4 -0x12 U+2195 -0x13 U+203C -0x14 U+00B6 -0x15 U+00A7 -0x16 U+25AC -0x17 U+21A8 -0x18 U+2191 -0x19 U+2193 -0x1A U+2192 -0x1B U+2190 -0x1C U+221F -0x1C U+2319 -0x1D U+2194 -0x1E U+25B2 -0x1F U+25BC +#0x01 U+263A +#0x02 U+263B +#0x03 U+2665 +#0x04 U+2666 +#0x05 U+2663 +#0x06 U+2660 +#0x07 U+2022 +#0x08 U+25D8 +#0x09 U+25CB +#0x0A U+25D9 +#0x0B U+2642 +#0x0C U+2640 +#0x0D U+266A +#0x0E U+266B +#0x0E U+266C +#0x0F U+263C +#0x10 U+25B6 +#0x10 U+25BA +#0x11 U+25C0 +#0x11 U+25C4 +#0x12 U+2195 +#0x13 U+203C +#0x14 U+00B6 +#0x15 U+00A7 +#0x16 U+25AC +#0x17 U+21A8 +#0x18 U+2191 +#0x19 U+2193 +#0x1A U+2192 +#0x1B U+2190 +#0x1C U+221F +#0x1C U+2319 +#0x1D U+2194 +#0x1E U+25B2 +#0x1F U+25BC # 0xa0 U+00a0 0xa1 U+0126 diff --git a/src/chrtrans/iso04_uni.tbl b/src/chrtrans/iso04_uni.tbl index d0e6f8e2..ed5d469a 100644 --- a/src/chrtrans/iso04_uni.tbl +++ b/src/chrtrans/iso04_uni.tbl @@ -9,44 +9,44 @@ Miso-8859-4 OISO Latin 4 0x20-0x7e idem -0x7f U+2302 +#0x7f U+2302 # #0x00 U+fffd -0x01 U+263A -0x02 U+263B -0x03 U+2665 -0x04 U+2666 -0x05 U+2663 -0x06 U+2660 -0x07 U+2022 -0x08 U+25D8 -0x09 U+25CB -0x0A U+25D9 -0x0B U+2642 -0x0C U+2640 -0x0D U+266A -0x0E U+266B -0x0E U+266C -0x0F U+263C -0x10 U+25B6 -0x10 U+25BA -0x11 U+25C0 -0x11 U+25C4 -0x12 U+2195 -0x13 U+203C -0x14 U+00B6 -0x15 U+00A7 -0x16 U+25AC -0x17 U+21A8 -0x18 U+2191 -0x19 U+2193 -0x1A U+2192 -0x1B U+2190 -0x1C U+221F -0x1C U+2319 -0x1D U+2194 -0x1E U+25B2 -0x1F U+25BC +#0x01 U+263A +#0x02 U+263B +#0x03 U+2665 +#0x04 U+2666 +#0x05 U+2663 +#0x06 U+2660 +#0x07 U+2022 +#0x08 U+25D8 +#0x09 U+25CB +#0x0A U+25D9 +#0x0B U+2642 +#0x0C U+2640 +#0x0D U+266A +#0x0E U+266B +#0x0E U+266C +#0x0F U+263C +#0x10 U+25B6 +#0x10 U+25BA +#0x11 U+25C0 +#0x11 U+25C4 +#0x12 U+2195 +#0x13 U+203C +#0x14 U+00B6 +#0x15 U+00A7 +#0x16 U+25AC +#0x17 U+21A8 +#0x18 U+2191 +#0x19 U+2193 +#0x1A U+2192 +#0x1B U+2190 +#0x1C U+221F +#0x1C U+2319 +#0x1D U+2194 +#0x1E U+25B2 +#0x1F U+25BC # 0xa0 U+00a0 0xa1 U+0104 diff --git a/src/chrtrans/iso05_uni.tbl b/src/chrtrans/iso05_uni.tbl index 5179dc8d..f0dfad50 100644 --- a/src/chrtrans/iso05_uni.tbl +++ b/src/chrtrans/iso05_uni.tbl @@ -9,44 +9,44 @@ Miso-8859-5 OISO 8859-5 Cyrillic 0x20-0x7e idem -0x7f U+2302 +#0x7f U+2302 # #0x00 U+fffd -0x01 U+263A -0x02 U+263B -0x03 U+2665 -0x04 U+2666 -0x05 U+2663 -0x06 U+2660 -0x07 U+2022 -0x08 U+25D8 -0x09 U+25CB -0x0A U+25D9 -0x0B U+2642 -0x0C U+2640 -0x0D U+266A -0x0E U+266B -0x0E U+266C -0x0F U+263C -0x10 U+25B6 -0x10 U+25BA -0x11 U+25C0 -0x11 U+25C4 -0x12 U+2195 -0x13 U+203C -0x14 U+00B6 -0x15 U+00A7 -0x16 U+25AC -0x17 U+21A8 -0x18 U+2191 -0x19 U+2193 -0x1A U+2192 -0x1B U+2190 -0x1C U+221F -0x1C U+2319 -0x1D U+2194 -0x1E U+25B2 -0x1F U+25BC +#0x01 U+263A +#0x02 U+263B +#0x03 U+2665 +#0x04 U+2666 +#0x05 U+2663 +#0x06 U+2660 +#0x07 U+2022 +#0x08 U+25D8 +#0x09 U+25CB +#0x0A U+25D9 +#0x0B U+2642 +#0x0C U+2640 +#0x0D U+266A +#0x0E U+266B +#0x0E U+266C +#0x0F U+263C +#0x10 U+25B6 +#0x10 U+25BA +#0x11 U+25C0 +#0x11 U+25C4 +#0x12 U+2195 +#0x13 U+203C +#0x14 U+00B6 +#0x15 U+00A7 +#0x16 U+25AC +#0x17 U+21A8 +#0x18 U+2191 +#0x19 U+2193 +#0x1A U+2192 +#0x1B U+2190 +#0x1C U+221F +#0x1C U+2319 +#0x1D U+2194 +#0x1E U+25B2 +#0x1F U+25BC # 0xa0 U+00a0 0xa1 U+0401 diff --git a/src/chrtrans/iso07_uni.tbl b/src/chrtrans/iso07_uni.tbl index 4698888a..62a85b3c 100644 --- a/src/chrtrans/iso07_uni.tbl +++ b/src/chrtrans/iso07_uni.tbl @@ -9,44 +9,44 @@ Miso-8859-7 OISO 8859-7 Greek 0x20-0x7e idem -0x7f U+2302 +#0x7f U+2302 # #0x00 U+fffd -0x01 U+263A -0x02 U+263B -0x03 U+2665 -0x04 U+2666 -0x05 U+2663 -0x06 U+2660 -0x07 U+2022 -0x08 U+25D8 -0x09 U+25CB -0x0A U+25D9 -0x0B U+2642 -0x0C U+2640 -0x0D U+266A -0x0E U+266B -0x0E U+266C -0x0F U+263C -0x10 U+25B6 -0x10 U+25BA -0x11 U+25C0 -0x11 U+25C4 -0x12 U+2195 -0x13 U+203C -0x14 U+00B6 -0x15 U+00A7 -0x16 U+25AC -0x17 U+21A8 -0x18 U+2191 -0x19 U+2193 -0x1A U+2192 -0x1B U+2190 -0x1C U+221F -0x1C U+2319 -0x1D U+2194 -0x1E U+25B2 -0x1F U+25BC +#0x01 U+263A +#0x02 U+263B +#0x03 U+2665 +#0x04 U+2666 +#0x05 U+2663 +#0x06 U+2660 +#0x07 U+2022 +#0x08 U+25D8 +#0x09 U+25CB +#0x0A U+25D9 +#0x0B U+2642 +#0x0C U+2640 +#0x0D U+266A +#0x0E U+266B +#0x0E U+266C +#0x0F U+263C +#0x10 U+25B6 +#0x10 U+25BA +#0x11 U+25C0 +#0x11 U+25C4 +#0x12 U+2195 +#0x13 U+203C +#0x14 U+00B6 +#0x15 U+00A7 +#0x16 U+25AC +#0x17 U+21A8 +#0x18 U+2191 +#0x19 U+2193 +#0x1A U+2192 +#0x1B U+2190 +#0x1C U+221F +#0x1C U+2319 +#0x1D U+2194 +#0x1E U+25B2 +#0x1F U+25BC # 0xa0 U+00a0 0xa1 U+0371 diff --git a/src/chrtrans/iso09_uni.tbl b/src/chrtrans/iso09_uni.tbl index 224cc26c..8bcb7660 100644 --- a/src/chrtrans/iso09_uni.tbl +++ b/src/chrtrans/iso09_uni.tbl @@ -9,7 +9,7 @@ Miso-8859-9 OISO 8859-9 (Latin 5) 0x20-0x7e idem -0x7f U+2302 +#0x7f U+2302 0xa0-0xcf idem 0xd0 U+011e 0xd1-0xdc idem @@ -23,41 +23,41 @@ OISO 8859-9 (Latin 5) 0xff U+00ff # #0x00 U+fffd -0x01 U+263A -0x02 U+263B -0x03 U+2665 -0x04 U+2666 -0x05 U+2663 -0x06 U+2660 -0x07 U+2022 -0x08 U+25D8 -0x09 U+25CB -0x0A U+25D9 -0x0B U+2642 -0x0C U+2640 -0x0D U+266A -0x0E U+266B -0x0E U+266C -0x0F U+263C -0x10 U+25B6 -0x10 U+25BA -0x11 U+25C0 -0x11 U+25C4 -0x12 U+2195 -0x13 U+203C -0x14 U+00B6 -0x15 U+00A7 -0x16 U+25AC -0x17 U+21A8 -0x18 U+2191 -0x19 U+2193 -0x1A U+2192 -0x1B U+2190 -0x1C U+221F -0x1C U+2319 -0x1D U+2194 -0x1E U+25B2 -0x1F U+25BC +#0x01 U+263A +#0x02 U+263B +#0x03 U+2665 +#0x04 U+2666 +#0x05 U+2663 +#0x06 U+2660 +#0x07 U+2022 +#0x08 U+25D8 +#0x09 U+25CB +#0x0A U+25D9 +#0x0B U+2642 +#0x0C U+2640 +#0x0D U+266A +#0x0E U+266B +#0x0E U+266C +#0x0F U+263C +#0x10 U+25B6 +#0x10 U+25BA +#0x11 U+25C0 +#0x11 U+25C4 +#0x12 U+2195 +#0x13 U+203C +#0x14 U+00B6 +#0x15 U+00A7 +#0x16 U+25AC +#0x17 U+21A8 +#0x18 U+2191 +#0x19 U+2193 +#0x1A U+2192 +#0x1B U+2190 +#0x1C U+221F +#0x1C U+2319 +#0x1D U+2194 +#0x1E U+25B2 +#0x1F U+25BC # TRADE MARK SIGN: U+2122:(TM) diff --git a/src/chrtrans/iso10_uni.tbl b/src/chrtrans/iso10_uni.tbl index f1123e3d..be3c02cd 100644 --- a/src/chrtrans/iso10_uni.tbl +++ b/src/chrtrans/iso10_uni.tbl @@ -13,44 +13,44 @@ Miso-8859-10 OISO 8859-10 0x20-0x7e idem -0x7f U+2302 +#0x7f U+2302 # #0x00 U+fffd -0x01 U+263A -0x02 U+263B -0x03 U+2665 -0x04 U+2666 -0x05 U+2663 -0x06 U+2660 -0x07 U+2022 -0x08 U+25D8 -0x09 U+25CB -0x0A U+25D9 -0x0B U+2642 -0x0C U+2640 -0x0D U+266A -0x0E U+266B -0x0E U+266C -0x0F U+263C -0x10 U+25B6 -0x10 U+25BA -0x11 U+25C0 -0x11 U+25C4 -0x12 U+2195 -0x13 U+203C -0x14 U+00B6 -0x15 U+00A7 -0x16 U+25AC -0x17 U+21A8 -0x18 U+2191 -0x19 U+2193 -0x1A U+2192 -0x1B U+2190 -0x1C U+221F -0x1C U+2319 -0x1D U+2194 -0x1E U+25B2 -0x1F U+25BC +#0x01 U+263A +#0x02 U+263B +#0x03 U+2665 +#0x04 U+2666 +#0x05 U+2663 +#0x06 U+2660 +#0x07 U+2022 +#0x08 U+25D8 +#0x09 U+25CB +#0x0A U+25D9 +#0x0B U+2642 +#0x0C U+2640 +#0x0D U+266A +#0x0E U+266B +#0x0E U+266C +#0x0F U+263C +#0x10 U+25B6 +#0x10 U+25BA +#0x11 U+25C0 +#0x11 U+25C4 +#0x12 U+2195 +#0x13 U+203C +#0x14 U+00B6 +#0x15 U+00A7 +#0x16 U+25AC +#0x17 U+21A8 +#0x18 U+2191 +#0x19 U+2193 +#0x1A U+2192 +#0x1B U+2190 +#0x1C U+221F +#0x1C U+2319 +#0x1D U+2194 +#0x1E U+25B2 +#0x1F U+25BC # 0xa0 U+00a0 0xa1 U+0104 diff --git a/src/chrtrans/makeuctb.c b/src/chrtrans/makeuctb.c index 62ad102d..e0630cc3 100644 --- a/src/chrtrans/makeuctb.c +++ b/src/chrtrans/makeuctb.c @@ -1,7 +1,8 @@ /* - * makeuctb.c, derived from conmakehash.c + * makeuctb.c, derived from conmakehash.c - kw + * + * Original comments from conmakehash.c: * - * [ original comments: - kw ] * Create arrays for initializing the kernel folded tables (using a hash * table turned out to be to limiting...) Unfortunately we can't simply * preinitialize the tables at compile time since kfree() cannot accept @@ -58,6 +59,28 @@ PRIVATE void usage ARGS1( exit(EX_USAGE); } +/* copied from HTString.c, not everybody has strncasecmp */ +PUBLIC int strncasecomp ARGS3( + CONST char*, a, + CONST char *, b, + int, n) +{ + CONST char *p = a; + CONST char *q = b; + + for (p = a, q = b; ; p++, q++) { + int diff; + if (p == (a+n)) + return 0; /* Match up to n characters */ + if (!(*p && *q)) + return (*p - *q); + diff = TOLOWER(*p) - TOLOWER(*q); + if (diff) + return diff; + } + /*NOTREACHED*/ +} + PRIVATE int getunicode ARGS1( char **, p0) { @@ -184,6 +207,7 @@ char this_MIMEcharset[UC_MAXLEN_MIMECSNAME +1]; char this_LYNXcharset[UC_MAXLEN_LYNXCSNAME +1]; char id_append[UC_MAXLEN_ID_APPEND +1] = "_"; int this_isDefaultMap = -1; +int useDefaultMap = 1; int lowest_eight = 999; PUBLIC int main ARGS2( @@ -267,6 +291,12 @@ PUBLIC int main ARGS2( * processing. One digit code. */ case 'R': + if (p[1] == 'a' || p[1] == 'A') { + buffer[sizeof(buffer) - 1] = '\0'; + if (!strncasecomp(p, "RawOrEnc", 8)) { + p += 8; + } + } p++; while (*p == ' ' || *p == '\t') { p++; @@ -276,17 +306,46 @@ PUBLIC int main ARGS2( continue; /* - * Is this the default display font? + * Is this the default table? */ case 'D': + if (p[1] == 'e' || p[1] == 'E') { + buffer[sizeof(buffer) - 1] = '\0'; + if (!strncasecomp(p, "Default", 7)) { + p += 7; + } + } + p++; + while (*p == ' ' || *p == '\t') { + p++; + } + this_isDefaultMap = (*p == '1' || TOLOWER(*p) == 'y'); + continue; + + /* + * Is this the default table? + */ + case 'F': + if (p[1] == 'a' || p[1] == 'A') { + buffer[sizeof(buffer) - 1] = '\0'; + if (!strncasecomp(p, "FallBack", 8)) { + p += 8; + } + } p++; while (*p == ' ' || *p == '\t') { p++; } - this_isDefaultMap = (*p == '1'); + useDefaultMap = (*p == '1' || tolower(*p) == 'y'); continue; case 'M': + if (p[1] == 'i' || p[1] == 'I') { + buffer[sizeof(buffer) - 1] = '\0'; + if (!strncasecomp(p, "MIMEName", 8)) { + p += 8; + } + } p++; while (*p == ' ' || *p == '\t') { p++; @@ -298,6 +357,12 @@ PUBLIC int main ARGS2( * Display charset name for options screen. */ case 'O': + if (p[1] == 'p' || p[1] == 'P') { + buffer[sizeof(buffer) - 1] = '\0'; + if (!strncasecomp(p, "OptionName", 10)) { + p += 10; + } + } p++; while (*p == ' ' || *p == '\t') { p++; @@ -635,12 +700,17 @@ static struct unipair_str repl_map%s[%d] = \n\ } if (themap_str.entry_ct) { printf("\n\ -static struct unimapdesc_str dfont_replacedesc%s = {%d,repl_map%s};\n", +static struct unimapdesc_str dfont_replacedesc%s = {%d,repl_map%s,", id_append, themap_str.entry_ct, id_append); } else { printf("\n\ -static struct unimapdesc_str dfont_replacedesc%s = {0,NULL};\n",id_append); +static struct unimapdesc_str dfont_replacedesc%s = {0,NULL,",id_append); } + printf("%d,%d};\n", + this_isDefaultMap ? 1 : 0, + (useDefaultMap && !this_isDefaultMap) ? 1 : 0 + ); + printf("#define UC_CHARSET_SETUP%s UC_Charset_Setup(\ \"%s\",\\\n\"%s\",\\\n\ diff --git a/src/chrtrans/mnemonic_suni.tbl b/src/chrtrans/mnemonic_suni.tbl index 7f08408c..79d374a3 100644 --- a/src/chrtrans/mnemonic_suni.tbl +++ b/src/chrtrans/mnemonic_suni.tbl @@ -1,8 +1,11 @@ #The MIME name of this charset. -Mmnemonic +M mnemonic #Name as a Display Charset (used on Options screen) -ORFC 1345 Mnemonic +O RFC 1345 Mnemonic + +# Don't fall back to default table for unicode -> 8bit +Fallback NO # U+0020:&SP U+0021:! diff --git a/src/chrtrans/rfc_suni.tbl b/src/chrtrans/rfc_suni.tbl index 5df75265..4dd8b3f6 100644 --- a/src/chrtrans/rfc_suni.tbl +++ b/src/chrtrans/rfc_suni.tbl @@ -5,10 +5,13 @@ # mnemonic,ds #The MIME name of this charset. -Mmnemonic+ascii+0 +M mnemonic+ascii+0 #Name as a Display Charset (used on Options screen) -ORFC 1345 w/o Intro +O RFC 1345 w/o Intro + +# Don't fall back to default table for unicode -> 8bit +Fallback NO U+0020:SP U+0021:! diff --git a/src/makefile.dos b/src/makefile.dos index bb9c7f09..89d1c0ef 100644 --- a/src/makefile.dos +++ b/src/makefile.dos @@ -1,55 +1,63 @@ -OBJS= LYClean.o LYShowInfo.o LYEdit.o LYStrings.o \ -LYMail.o HTAlert.o GridText.o LYGetFile.o \ -LYMain.o LYMainLoop.o LYCurses.o LYBookmark.o LYUtils.o \ -LYOptions.o LYReadCFG.o LYSearch.o LYHistory.o \ -LYForms.o LYPrint.o LYrcFile.o LYDownload.o LYNews.o LYKeymap.o \ -HTFWriter.o HTInit.o DefaultStyle.o LYLocal.o LYUpload.o \ -LYLeaks.o LYexit.o LYJump.o LYList.o LYCgi.o LYTraversal.o \ -LYEditmap.o LYCharSets.o LYCharUtils.o LYMap.o LYCookie.o LYExtern.o HTML.o - -CFLAGS= $(MCFLAGS) -I.. $(SLANGINC) - -CC = gcc -#MCFLAGS = -O -DNCURSES -DFANCY_CURSES -DACCESS_AUTH -DNO_CUSERID -DNOUSERS -DDOSPATH -DNO_TTYTYPE -DNO_UTMP -I../WWW/library/implementation -I../djgpp/tcplib/include -I../djgpp/tcplib/include/tcp -I../djgpp/pdcurses/include -MCFLAGS = -DCOLOR_CURSES -DNCURSES -DFANCY_CURSES -DACCESS_AUTH -DNO_CUSERID -DNOUSERS -DDOSPATH -DNO_TTYTYPE -DNO_UTMP -I../WWW/library/implementation -I../djgpp/tcplib/include -I../djgpp/tcplib/include/tcp -I../djgpp/pdcurses/include -WWWLIB = ../WWW/library/djgpp/libwww.a ../djgpp/pdcurses/lib/libcurso.a ../djgpp/tcplib/obj/libtcp.a - -all: lynx - -lynx: message $(OBJS) $(WWWLIB) - @echo "Linking and creating Lynx executable" - $(CC) $(CFLAGS) -o lynx $(OBJS) $(WWWLIB) $(SLANGLIB) $(LIBS) - @echo "Welcome to Lynx!" - -message: - @echo "Compiling Lynx sources" - -dbg: $(OBJS) $(WWWLIB) - @echo "Making Lynx code" - $(CC) -g $(OBJS) $(CFLAGS) $(WWWLIB) $(SLANGLIB) $(LIBS) - -lint: - lint *.c > ../lint.out - -clean: - rm -f lynx core *.[ob] - -LYMain.o: ../userdefs.h -LYMainLoop.o: LYMainLoop.c ../userdefs.h -LYReadCFG.o: LYReadCFG.c ../userdefs.h -HTFWriter.o: HTFWriter.c ../userdefs.h -LYGetFile.o: LYGetFile.c ../userdefs.h -LYOptions.o: LYOptions.c ../userdefs.h -LYReadCFG.o: LYReadCFG.c ../userdefs.h -LYTraversal.o: LYTraversal.c ../userdefs.h -LYCharSets.o: LYCharSets.c ../userdefs.h -LYShowInfo.o: LYShowInfo.c ../userdefs.h -LYStrings.o: LYStrings.c ../userdefs.h -LYBookmark.o: LYBookmark.c ../userdefs.h -LYHistory.o: LYHistory.c ../userdefs.h -LYDownload.o: LYDownload.c ../userdefs.h -DefaultStyle.o: DefaultStyle.c ../userdefs.h -LYEditmap.o: LYEditmap.c ../userdefs.h -LYCharUtils.o: LYCharUtils.c ../userdefs.h -LYExtern.o: LYExtern.c ../userdefs.h - +OBJS= UCdomap.o UCAux.o UCAuto.o \ +LYClean.o LYShowInfo.o LYEdit.o LYStrings.o \ +LYMail.o HTAlert.o GridText.o LYGetFile.o \ +LYMain.o LYMainLoop.o LYCurses.o LYBookmark.o LYUtils.o \ +LYOptions.o LYReadCFG.o LYSearch.o LYHistory.o \ +LYForms.o LYPrint.o LYrcFile.o LYDownload.o LYNews.o LYKeymap.o \ +HTML.o HTFWriter.o HTInit.o DefaultStyle.o LYLocal.o LYUpload.o \ +LYLeaks.o LYexit.o LYJump.o LYList.o LYCgi.o LYTraversal.o \ +LYEditmap.o LYCharSets.o LYCharUtils.o LYMap.o LYCookie.o LYExtern.o \ +LYStyle.o LYHash.o + +CFLAGS= $(MCFLAGS) -I.. $(SLANGINC) + +CC = gcc +MCFLAGS = -O3 -DALT_CHAR_SET -DUSE_ZLIB -DUSE_EXTERNALS -DNCURSES_VERSION -DEXP_CHARTRANS -DCOLOR_CURSES -DNCURSES -DFANCY_CURSES -DACCESS_AUTH -DNO_CUSERID -DNOUSERS -DDOSPATH -DNO_TTYTYPE -DNO_UTMP -I../WWW/library/implementation -I../curses -I../djgpp/tcplib/include -I../djgpp/tcplib/include/tcp +WWWLIB = ../WWW/library/djgpp/libwww.a ../curses/pdcurses.a ../djgpp/tcplib/obj/libtcp.a +LIBS=-lz + +all: lynx + +lynx: message $(OBJS) $(WWWLIB) + @echo "Linking and creating Lynx executable" + $(CC) $(CFLAGS) -o lynx $(OBJS) $(WWWLIB) $(SLANGLIB) $(LIBS) + @echo "Welcome to Lynx!" + +message: + @echo "Compiling Lynx sources" + +dbg: $(OBJS) $(WWWLIB) + @echo "Making Lynx code" + $(CC) -g $(OBJS) $(CFLAGS) $(WWWLIB) $(SLANGLIB) $(LIBS) + +lint: + lint *.c > ../lint.out + +clean: + rm -f lynx core *.[ob] + +LYMain.o: ../userdefs.h +LYMainLoop.o: LYMainLoop.c ../userdefs.h +LYReadCFG.o: LYReadCFG.c ../userdefs.h +HTFWriter.o: HTFWriter.c ../userdefs.h +LYGetFile.o: LYGetFile.c ../userdefs.h +LYOptions.o: LYOptions.c ../userdefs.h +LYReadCFG.o: LYReadCFG.c ../userdefs.h +LYTraversal.o: LYTraversal.c ../userdefs.h +LYCharSets.o: LYCharSets.c ../userdefs.h +LYShowInfo.o: LYShowInfo.c ../userdefs.h +LYStrings.o: LYStrings.c ../userdefs.h +LYBookmark.o: LYBookmark.c ../userdefs.h +LYHistory.o: LYHistory.c ../userdefs.h +LYDownload.o: LYDownload.c ../userdefs.h +DefaultStyle.o: DefaultStyle.c ../userdefs.h +LYEditmap.o: LYEditmap.c ../userdefs.h +LYCharUtils.o: LYCharUtils.c ../userdefs.h +LYExtern.o: LYExtern.c ../userdefs.h +LYCookie.o: ../userdefs.h + +#UCdomap.o: UCdomap.c ../userdefs.h lycharsets.h +#UCdomap.o: UCdomap.c chrtrans/UCkd.h chrtrans/makeuctb chrtrans/makeuctb.c \ +# UCdomap.h UCMap.h ../userdefs.h +#UCAux.o : UCAux.c $(CMN)UCAux.h $(CMN)UCDefs.h + diff --git a/userdefs.h b/userdefs.h index 2fc3faed..01af99b7 100644 --- a/userdefs.h +++ b/userdefs.h @@ -6,7 +6,7 @@ */ /******************************************************************* - * There are three sections to this document + * There are four sections to this document: * Section 1. Things you MUST change or verify * Section 1a) VMS specific things * Section 1b) UNIX specific things @@ -17,6 +17,9 @@ * Section 3. Things you should only change after you have a good * understanding of the program! * + * Section 4. Things you MUST check only if you plan to use Lynx in + * an anonymous account (allow public access to Lynx)! + * */ #ifndef USERDEFS_H @@ -138,7 +141,7 @@ #define SYSTEM_MAIL_FLAGS "" /************************* - * below is the argument for an sprintf command that will add + * Below is the argument for an sprintf command that will add * "IN%""ADDRESS""" to the Internet mail address given by the user. * It is structured for PMDF's IN%"INTERNET_ADDRESS" scheme. The %s * is replaced with the address given by the user. If you are using @@ -199,17 +202,15 @@ /************************** * LYNX_LSS_FILE is the location and name of the default lynx * character style sheet file. It is sought and processed at - * startup of Lynx only if experimental character style code - * has been compiled in, otherwise it will be ignored. Note - * that use of the character style option is, to say it again, - * experimental and unsupported, and without other documentation - * than a sample lynx.lss file, and likely won't work at all on VMS. - * You also can define the location and name of this file - * via environment variables "LYNX_CFG" or "lynx_lss" - * which will override the "LYNX_CFG_FILE" definition here. - * You can use '~' in either or both definitions to refer to - * the user's home directorty. The -lss command line switch - * will override these definitions. + * startup of Lynx only if experimental character style code has + * been compiled in, otherwise it will be ignored. Note that use + * of the character style option is _experimental_ AND _unsupported_. + * There is no documentation other than a sample lynx.lss file in + * the samples subdirectory. This code probably won't even work on + * VMS. You can define the location and name of this file via an + * environment variable, "lynx_lss", which will override the definition + * here. You can use '~' to refer to the user's home directory. The + * -lss command line switch will override these definitions. */ #ifndef LYNX_LSS_FILE #define LYNX_LSS_FILE "Lynx_Dir:lynx.lss" @@ -405,15 +406,14 @@ * character style sheet file. It is sought and processed at * startup of Lynx only if experimental character style code * has been compiled in, otherwise it will be ignored. Note - * that use of the character style option is, to say it again, - * experimental and unsupported, and without other documentation - * than a sample lynx.lss file. - * You also can define the location and name of this file - * via environment variables "LYNX_LSS" or "lynx_lss" - * which will override the "LYNX_LSS_FILE" definition here. - * You can use '~' in either or both definitions to refer to - * the user's home directorty. The -lss command line switch - * will override these definitions. + * that use of the character style option is _experimental_ AND + * _unsupported_. There is no documentation other than a sample + * lynx.lss file in the samples subdirectory. You also can + * define the location and name of this file via environment + * variables "LYNX_LSS" or "lynx_lss" which will override the + * "LYNX_LSS_FILE" definition here. You can use '~' in either or + * both definitions to refer to the user's home directory. The + * -lss command line switch will override these definitions. */ #ifndef LYNX_LSS_FILE #define LYNX_LSS_FILE "/usr/local/lib/lynx.lss" @@ -832,26 +832,6 @@ #define MESSAGESECS 2 #define ALERTSECS 3 -/***************************** - * Enter the name of your anonymous account if you have one - * as ANONYMOUS_USER. UNIX systems will use a cuserid - * or get_login call to determine if the current user is - * the ANONYMOUS_USER. VMS systems will use getenv("USER"). - * - * You may use the "-anonymous" option for multiple accounts, - * or for precautionary reasons in the anonymous account, - * as well. - * - * It is very important to have this correctly defined or include - * the "-anonymous" command line option for invokations of Lynx - * in an anonymous account! If you do not you will be putting - * yourself at GREAT security risk! - * - * Later on in this file you can specify privileges for the - * anonymous account. - */ -#define ANONYMOUS_USER "" - /****************************** * SHOW_COLOR controls whether the program displays in color by default. */ @@ -906,117 +886,6 @@ #define LY_UMLAUT /******************************* - * set to FALSE if you don't want users of your anonymous account - * who are calling from inside your local domain - * to be able to telnet back out - */ -#define CAN_ANONYMOUS_INSIDE_DOMAIN_TELNET TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account who are calling from outside your - * local domain to be able to telnet back out - */ -#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_TELNET TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous account - * who are calling from inside your local domain - * to be able to read news - */ -#define CAN_ANONYMOUS_INSIDE_DOMAIN_READ_NEWS TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account who are calling from outside your - * local domain to be able to read news - */ -#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_READ_NEWS FALSE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account who are calling from inside your local domain - * to be able to use ftp - */ -#define CAN_ANONYMOUS_INSIDE_DOMAIN_FTP TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account who are calling from outside your local domain - * to be able to use ftp - */ -#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_FTP TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account who are calling from inside your local domain - * to be able to use rlogin - */ -#define CAN_ANONYMOUS_INSIDE_DOMAIN_RLOGIN TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account who are calling from outside your local domain - * to be able to use rlogin - */ -#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_RLOGIN TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account to be able to goto random URLs. (The 'g' command) - */ -#define CAN_ANONYMOUS_GOTO TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account to be able to goto particular URLs. - */ -#define CAN_ANONYMOUS_GOTO_CSO TRUE -#define CAN_ANONYMOUS_GOTO_FILE TRUE -#define CAN_ANONYMOUS_GOTO_FINGER TRUE -#define CAN_ANONYMOUS_GOTO_FTP TRUE -#define CAN_ANONYMOUS_GOTO_GOPHER TRUE -#define CAN_ANONYMOUS_GOTO_HTTP TRUE -#define CAN_ANONYMOUS_GOTO_HTTPS TRUE -#define CAN_ANONYMOUS_GOTO_LYNXCGI TRUE -#define CAN_ANONYMOUS_GOTO_LYNXEXEC TRUE -#define CAN_ANONYMOUS_GOTO_LYNXPROG TRUE -#define CAN_ANONYMOUS_GOTO_MAILTO TRUE -#define CAN_ANONYMOUS_GOTO_NEWS TRUE -#define CAN_ANONYMOUS_GOTO_NNTP TRUE -#define CAN_ANONYMOUS_GOTO_RLOGIN TRUE -#define CAN_ANONYMOUS_GOTO_SNEWS TRUE -#define CAN_ANONYMOUS_GOTO_TELNET TRUE -#define CAN_ANONYMOUS_GOTO_TN3270 TRUE -#define CAN_ANONYMOUS_GOTO_WAIS TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account to be able to specify a port in 'g'oto commands - * for telnet URLs. - */ -#define CAN_ANONYMOUS_GOTO_TELNET_PORT FALSE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account to be able to jump to URLs (The 'J' command) - * via the shortcut entries in your JUMPFILE. - */ -#define CAN_ANONYMOUS_JUMP TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account to be able to mail - */ -#define CAN_ANONYMOUS_MAIL TRUE - -/******************************* - * set to FALSE if you don't want users of your anonymous - * account to be able to print - */ -#define CAN_ANONYMOUS_PRINT FALSE - -/******************************* * Execution links/scripts configuration. * * Execution links and scripts allow you to run @@ -1291,6 +1160,16 @@ #define TRAVERSE_REJECT_FILE "reject.dat" #define TRAVERSE_ERRORS "traverse.errors" +/**************************************************************** + * The LYMessages_en.h header defines default, English strings + * used in statusline prompts, messages, and warnings during + * program execution. See the comments in LYMessages_en.h for + * information on translating or customizing them for your site. + */ +#ifndef HTTELNET_H +#include "LYMessages_en.h" +#endif /* !HTTELNET_H */ + /**************************************************************** * Section 3. Things that you should not change until you @@ -1302,17 +1181,7 @@ * the version definition with the Project Version on checkout. Just * ignore it. - kw */ /* $Format: "#define LYNX_VERSION \"$ProjectVersion$\""$ */ -#define LYNX_VERSION "2.7.1ac-0.64" - -/**************************************************************** - * The LYMessages_en.h header defines default, English strings - * used in statusline prompts, messages, and warnings during - * program execution. See the comments in LYMessages_en.h for - * information on customizing them for your site. - */ -#ifndef HTTELNET_H -#include "LYMessages_en.h" -#endif /* !HTTELNET_H */ +#define LYNX_VERSION "2.7.1ac-0.89" #ifndef MAXINT #define MAXINT 2147483647 /* max integer */ @@ -1432,4 +1301,126 @@ #endif /* DOSPATH */ #endif /* VMS */ + +/**************************************************************** + * Section 4. Things you MUST check only if you plan to use Lynx + * in an anonymous account (allow public access to Lynx). + * This section may be skipped by those people building + * Lynx for private use only. + * + */ + +/***************************** + * Enter the name of your anonymous account if you have one + * as ANONYMOUS_USER. UNIX systems will use a cuserid + * or get_login call to determine if the current user is + * the ANONYMOUS_USER. VMS systems will use getenv("USER"). + * + * You may use the "-anonymous" option for multiple accounts, + * or for precautionary reasons in the anonymous account, as well. + * + * Specify privileges for the anonymous account below. + * + * It is very important to have this correctly defined or include + * the "-anonymous" command line option for invocation of Lynx + * in an anonymous account! If you do not you will be putting + * yourself at GREAT security risk! + */ +#define ANONYMOUS_USER "" + +/******************************* + * In the following four pairs of defines, + * INSIDE_DOMAIN means users connecting from inside your local domain, + * OUTSIDE_DOMAIN means users connecting from outside your local domain. + * + * set to FALSE if you don't want users of your anonymous + * account to be able to telnet back out + */ +#define CAN_ANONYMOUS_INSIDE_DOMAIN_TELNET TRUE +#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_TELNET FALSE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to use ftp + */ +#define CAN_ANONYMOUS_INSIDE_DOMAIN_FTP TRUE +#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_FTP FALSE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to use rlogin + */ +#define CAN_ANONYMOUS_INSIDE_DOMAIN_RLOGIN TRUE +#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_RLOGIN FALSE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to read news + */ +#define CAN_ANONYMOUS_INSIDE_DOMAIN_READ_NEWS TRUE +#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_READ_NEWS FALSE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to goto random URLs. (The 'g' command) + */ +#define CAN_ANONYMOUS_GOTO TRUE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to goto particular URLs. + */ +#define CAN_ANONYMOUS_GOTO_CSO FALSE +#define CAN_ANONYMOUS_GOTO_FILE FALSE +#define CAN_ANONYMOUS_GOTO_FINGER TRUE +#define CAN_ANONYMOUS_GOTO_FTP FALSE +#define CAN_ANONYMOUS_GOTO_GOPHER FALSE +#define CAN_ANONYMOUS_GOTO_HTTP TRUE +#define CAN_ANONYMOUS_GOTO_HTTPS FALSE +#define CAN_ANONYMOUS_GOTO_LYNXCGI FALSE +#define CAN_ANONYMOUS_GOTO_LYNXEXEC FALSE +#define CAN_ANONYMOUS_GOTO_LYNXPROG FALSE +#define CAN_ANONYMOUS_GOTO_MAILTO TRUE +#define CAN_ANONYMOUS_GOTO_NEWS FALSE +#define CAN_ANONYMOUS_GOTO_NNTP FALSE +#define CAN_ANONYMOUS_GOTO_RLOGIN FALSE +#define CAN_ANONYMOUS_GOTO_SNEWS FALSE +#define CAN_ANONYMOUS_GOTO_TELNET FALSE +#define CAN_ANONYMOUS_GOTO_TN3270 FALSE +#define CAN_ANONYMOUS_GOTO_WAIS TRUE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to specify a port in 'g'oto commands + * for telnet URLs. + */ +#define CAN_ANONYMOUS_GOTO_TELNET_PORT FALSE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to jump to URLs (The 'J' command) + * via the shortcut entries in your JUMPFILE. + */ +#define CAN_ANONYMOUS_JUMP FALSE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to mail + */ +#define CAN_ANONYMOUS_MAIL TRUE + +/******************************* + * set to FALSE if you don't want users of your anonymous + * account to be able to print + */ +#define CAN_ANONYMOUS_PRINT FALSE + +/***************************** + * Be sure you have read about and set defines above in Sections + * 1, 2 and 3 that could affect Lynx in an anonymous account, + * especially LOCAL_EXECUTION_LINKS_ALWAYS_OFF_FOR_ANONYMOUS. + * + * This ends the section specific to anonymous accounts. + */ + #endif /* USERDEFS_H */ |