[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Wed, 3 Nov 1999 21:50:28 -0500 (EST)
I've a handful of items still on my backlog (will do those on the next patch).
* modify no_color_video check for A_UNDERLINE so it is active for any
combination that uses underlining (reported by KW) -TD
* modified HTML.c so configure --enable-internal-links builds -TD
* improved 'lynx.patch' rule in makefile.in -PG
* add rough version of makelynx.bat for use with Khan's MingW32 (from Victor
* update dependencies in makefile.bcb for src/TRSTable.c -HS
* fix PDCurses ifdef's in LYCurses.c to work with WATT-32 -DK
* correct ifdef's in LYPrint.c so that send_file_to_mail() works with DJGPP -DK
* modify DOS makefiles for PDCURSES for watt-32 and some of the other recent
changes to lynx. Included some of the EXP_ defines that DOS users may want.
Changed the -O3 back to -O2, since -O3 has no advantage under djgpp -DK
* remove a useless ';', use FREE() instead of free() - JB
* correct spelling lexem/lexeme (reported by KW) -TD
* split-out function check_history() in LYMainLoop.c -TD
* add configure check for vasprintf -TD
* add configure check for _GNU_SOURCE -TD
* minor fixes for configure script macros CF_TERMCAP_LIBS, CF_DISABLE_ECHO,
CF_GCC_ATTRIBUTES, CF_GCC_WARNINGS -TD
* fixed bug in psrcmode code. Now htmlsrc_tag encloses only tagname, not
everything in generalized brackets <,>,</,/> (reported by KW) -VH
* fixed a bug with 'g' command (reported by KW) -VH
* default value for 'OPT' in SGML.c made '1', removed alternatives to code
surrounded by #if OPT1
* notes (VH):
+ Seems that 'OPT' stuff doesn't contain errors. Let's enable it for several
releases, and then remove alternative code.
+ Added comments about pools.
+ Docs updated to reflect new functionality of -dont-wrap-pre
* old psrcview bug fixed - markup was unbalanced in some situations -VH
* content of SAMP tag made justifiable -VH
* implemented HTStyleChange pooling - sizeof(HTStyleChange) is 4 times smaller
than before, and only necessary number of stylechanges is allocated now,
instead of some constant (1024 by default) -VH
* functionality of dont-wrap-pre improved and extended. Now it's possible to
avoid wrapping the document being dumped completely (size of the non-wrapped
line before the patch was limited by MAX_LINE = 1024 by default). Specifying
-dont-wrap-pre with interactive session enables wrapped lines (in PRE) to
be marked as in source view - with '+' in normal view -VH
* functionality of -force-empty-hrefless-a was cleaned up,
#ifndefs NO_EMPTY_HREFLESS_A and endif's were removed -VH
* colorstyle changes are not emitted in HTML_end_element if me->skip_stack was
>0 on entry to this function. This caused some glitches if
-force-empty-hrefless-a was enabled -VH
* LYPrettySrc.c was slightly cleaned up, added support for lynx.cfg reloading,
memory deallocation -VH
* possible bug in print_wwwfile_to_fd fixed - when quoting the page, seems that
several '>'s could be emitted on the long line formed by concatenating ilnes
with LY_SOFT_NEWLINEs at the begining of them -VH
* general notes -VH:
+ users of lss-enabled lynx should consider on upgrading the lynx - at least
those who use lynx for viewing huge files. By default, each line on the
screen took 1K for colorstyles (on x86). With new approach colorstyle
changes take 24 bytes (on x86) per line in average document. Old lynx with
900K html file loaded as startfile occupied 30M of virtual memory, lynx
with patch applied occupied 5 Mb on the same file. Old code is still
accessible by defining OLD_STYLECHANGE.
+ I spent 4 hours debugging attempting to write/fix code that cleans up the
memory allocated in LYPrettySrc.c, but Lynx.leaks shows that I didn't
succeeded. I fear that leak detection stuff is broken - I checked/traced
the code very carefully several times.
> the remainder (most) of this patch from KW:
* for confirmation prompts (HTConfirm), also accept English letters 'Y', 'y',
'N', 'n' as responses. If characters different from those are derived from
the first letters of the translation of "yes" and "no" in a localized lynx,
the latter will still be the ones that appear in the prompt text and will
have precedence. Message translations using multibyte character sets should
continue to *not* translate "yes" and "no". Added a note to that effect.
* small update for some chartrans tables, minor comment changes.
* for Unix, use LYSystem instead of system for invoking telnet, rlogin,
[ For some non-Unix systems, LYSystem messes around with the passed command
string in various ways, and does some other stuff for DJGPP. So no change
for those, since I assume it worked before. For Unix the change prevents
the following occuring with ncurses (at least if USE_SIGACTION is defined):
- access some (valid) telnet://some.host URL.
- within telnet client, escape to command level (usually '^]')
- suspend (usually 'z' or ^Z)
- resume (fg). Lynx process gets woken up, redraws lynx screen,
screen & tty state get messed up. ]
* another tweak for display refreshing when text previously displayed
had UTF-8 (for ncurses) - a check in display_page was missing.
* corrected stupid problem in LYGetFileInfo - invalid memory access.
* corrected and extended handling for textarea INSERTFILE and EDITTEXTAREA
(or DWIMEDIT), the previous patch wasn't quite right:
- now really truncate very long lines as intended for INSERTFILE, instead of
wrapping with loss of one character.
- for EDITTEXTAREA (DWIMEDIT), implement wrapping instead of truncation
(Rationale for the difference: user's editing work shouldn't be lost if we
can avoid it; it is only temporarily stored in a file which may be
unrecoverable, different from the typical INSERTFILE case.) If, upon
returning from the external editor, lines are encountered that don't fit in
the displayed width of the textarea fields, the user may be given the
option to wrap to that width. (This prompt may not be given when the first
such line has no suitable spaces for breaking - the file may be binary
garbage after all, not worth fixing up too much.) Line breaking is
attempted at spaces if possible (using isspace() for checking), but not if
the only available spaces are close to the beginning of a line. An attempt
is made to join the wrapped part of a line (if not too long) with the next
line if it is not indented, by suppressing the next line break (if not too
far away). Some other heuristics are used that work reasonably well for
normal text paragraphs.
If the above mechanisms fail, or the user did not confirm wrapping when
prompted, very long lines will still be wrapped to fit into the buffer size
(around 1024 chars).
[ The wrapping works quite nicely in "normal" cases - please try it! ]
* mouse action in popups would lead to call of fancy_mouse() with wrong row
number, which could lead to messed-up display as well as invalid memory
* The previous changes in link redrawing made things worse instead of better
for UTF-8 display with ncurses (without color style). This time (using
wredrawln, not touchline) it should really get better...
[ The UTF-8 related changes would need testing with non-ncurses curses libs,
if anyone has one of those AND a working UTF-8 environment - late xterm
betas(?) from Tom's site should do. If the functions used for ncurses are
available in other curses libs, the code should probably look the same as
for ncurses. ]
* SGML.c to compile without --enable-prettysrc (reported by HN) -KW
* fixes an invalid memory problem from previous patch
* adds alignment inheritance from COLGROUP / COL / THEAD / TFOOT / TBODY.
* remove some logic from LYmbcsstrlen() that gave an incorrect count for
the number of cells displaying multibyte characters, resulting in too-few
cells being highlighted (reported by HN, HS) -KW
* added support for ROWSPAN attribute of TD and TH to TRST. This only
reserves the appropriate amount of space in subsequent lines.
[ Pages that show off ROWSPAN nicely:
and related ones for other "domain"s. (Verify that there really
is a ROWSPAN= in the current version.) View with a screen width
of 100. With 80 there is some kind of problem, compare both
^V settings... ]
* some corrections in TRST code.
* change initialization order of key escape sequence mappings for slang, so
that terminfo/termcap information always overrides defaults that may
* minimal memory cleanup / leak prevention for EXP_FILE_UPLOAD error
cases in GridText.c.
* in HText_SubmitForm, don't change the post_content_type of the
passed in newdoc structure unless that is really wanted.
* tweaked UTF-8 prevention of display library wrapping/truncation to make
better use of available width for centered text, and to not apply if dumping
* for UTF-8 output with ncurses, do a clearok in display_page also if the page
that was *previously* displayed had UTF-8 characters. Without this there
were still display glitches.
* made previous changes to SGML.c and HTMLDTD for handling OBJECT more generic.
* minor tweaks, cleanups, glitch removal in previous changes.
* better tracking of HTSprintf0/HTSprintf with --enable-find-leaks
(-DLY_FIND_LEAKS). This can be disabled in LYLeaks.h by removing the
definition of LY_FIND_LEAKS_EXTENDED.
* added variant behavior in StrAllocVsprintf to make HTSprintf0/HTSprintf use
less memory allocation calls and keep its temporary string buffers across
calls. The buffers then only grow and never get cleaned up. This is enabled
by defining SAVE_TIME_NOT_SPACE in HTString.c, disable the definition there
in case of problems.
* added code so HTSprintf0/HTSprintf can use vasprintf() in some situations,
which should be more efficient. It also works with --enable-find-leaks
(EXTENDED or not). This only comes into play if USE_VASPRINTF is defined
(not defined automatically anywhere).
[ For me (some Debian glibc version), the prototype for this function
is in stdio.h but only gets included with an explicit -D_GNU_SOURCE. ]
[ Which of the four combinations with/without vasprintf, with/without
SAVE_TIME_NOT_SPACE is better (if any) remains to be tested. I have seen
drastic differences under leak tracking, but that's just too much
different from a normal situation to count for anything. ]
* Some minor leaks fixed. (LYMainLoop.c)
[ Had to make owner_address and ownerS_address file-wide PRIVATE's
instead of auto to unleak them. Could be taken out of more
argument lists now. ]
* HTFile.c: correction in FormatNum (could duplicate fields for some
LIST_FORMAT settings), avoid some HTSprintf0 calls in FormatStr.
* replaced calls to HTSprintf with calls to HTSprintf0 in various files.
* added missing include of LYLeaks.h in LYPrettySrc.c. But disabled memory
tracking there, too many allocations show up as leaks.
* allow digits in tagspec for -prettysrc.
* the 'fixit' change of 1999-05-16 didn't really let LYConvertToURL() revert to
the right old behavior in the non-'g' use. Now return a file URL for the
nonexisting file in the relevant situation again, as before 1998-03-25,
instead of an erroneous "file://localhost" which (on Unix-like systems at
least) would result in access to the root directory. This change (like the
changes of 1999-05-16 and 1998-03-25) only matters for strings that aren't
already in absolute URL form, don't start with a slash (or, for DOSPATH
systems, other path separator) either, and don't get turned into remote URLs
by successful 'guessing' and DNS lookup. None of the changes affect VMS.
* protect INSERTFILE and EDITTEXTAREA from generating memory access violations
if the inserted file has lines that are too long for the buffer used. An
alert message is issued and the long lines are truncated. Also don't exit if
memory allocation fails for the buffer to hold the whole file, since the only
reason for the failure may be that the file is too huge when otherwise lynx
has enough memory.
* improved handling of some invalid constructs in SGML, especially
'<' followed by various characters; don't lose those characters from
what gets displayed for -prettysrc.
* a pre-filled TEXTAREA text that needed charset translation could cause
use of an invalid pointer when building the page, resulting in garbage
data being displayed (or worse). The problem was in HTML.c, not related
to TEXTAREA editing or other related new functions.
[ preceding three were partially already in previous patch ]
* recognize '<?' as introducing an SGML PI. Within most elements' content (or
outside of any elements) this makes no effective difference except for TRACE
messages and -prettysrc, the input is still junked up to the next '>' as for
a completely invalid tag. Within PCDATA elements the PI is now also ignored
instead of being treated as character data, this makes a difference for
example in a TEXTAREA in SortaSGML mode. (PI's aren't really expected to
occur in the middle of HTML, but are used at the beginning of XHTML documents
and other XML documents.)
* the earlier change of TEXTAREA handling (treating as SGML_PCDATA, SortaSGML
only) created a problem, some lynx special characters were passed on as data
characters in the field contents and would mess up line editing and possibly
the submitted form data. Actually the problem also existed before, but only
for non break space, soft hyphen etc. encoded directly as character data
(not NCRs or entities). Resolved by telling SGML.c not to generate lynx
special chars for some element contents (currently only TEXTAREA), with new
* corrected some logic errors in LYUCFullyTranslateString. Special attribute
characters are now more often translated to real characters when 'Back' flag
is set, and should now be translated to the *right* characters for the target
charset. (They were sometimes converted to ISO-8859-1 values when the 'to'
charset was different.)
* added a missing significant cast in UCReverseTransChar.
* for scrollbar mouse clicking, use codes that work independent of current
line-editor key bindings.
* better calculation of "subjective distance" from next anchor for mouse.
Change of 1999-07-30 had various problems, it wasn't quite intuitive. Use
scaled numbers for finer granularity. Don't make "basin of attraction" too
wide, or it becomes hard to find a "background" spot to click on that doesn't
affect a link if a page has a high density of links.
[ For example with a pair of fields:
clicking in any of the positions marked 'x' on the next line would
select the first field, not the second. That was not an improvement. ]
* functions LYmbcsstrlen, LYno_attr_mbcs_case_strstr, and LYno_attr_mbcs_strstr
in LYStrings.c where unclear about the concept of 'printable' or 'physical'
used for some returned values in the CJK case. Callers expected number of
display cells, implemented was number of 'characters' counting full-width
characters as 1 instead of 2. Now these functions take an additional
argument 'count_gcells' that tells them how to count.
This removes some long-standing, somewhat obscure problems with search target
highlighting under CJK display character sets, as well as new (and less
obscure) CJK problems introduces by the latest changes for highlighting.
Also fixed some details in the *strstr functions. The positioning of the
highlighting in CJK mode should now be correct and work as expected (as for
other display character sets) for anchors, search targets, and combinations
* reorganized LYOpenTempRewrite. It should finally make sense for systems
without HAVE_TRUNCATE defined.
* corrected SNACat (was unused).
* changes for SUP and SUB: Render SUP visibly as a '^' character if it needs
to be separated from a preceding character in order to prevent
misinterpretation. The test currently used is isxdigit for the the preceding
character. Render <SUB> and </SUB> always as brackets '[' and ']'
respectively. SUB is mostly used in technical material while SUP occurs
frequently in pages of general nature where it is not essential, therefore
the different treatment.