• Andrew Hodgkinson's avatar
    Check for WindowManager 3.97 and ensure Unicode$Path is set in all !Run[D]... · ebd74985
    Andrew Hodgkinson authored
    Check for WindowManager 3.97 and ensure Unicode$Path is set in all !Run[D] files, don't set the Alias$@PrintType_FF4 variable, and updated
    
    Customer build ROM obey file variants. Various other changes to
    the Run files for new module versions, updated paths to support
    new positions of choices, hotlist and histories (see later), etc.
    
    !Sprites[22] files hold small !app icons for some variants, and
    an ic_browse sprite. Some variants now have a Sprites and Sprites22
    file instead of just Sprites, with the former containing various
    mode 12 or 15 specific sprites.
    
    Text files dragged to the URL writable are treated as ANT URL files. This
    relies on URLBarWrit (Toolbars.h) being a unique ID, which it should be,
    but beware of the Hotlist and Choices numberspaces...
    
    INPUT TYPE=BUTTON supported. Form items without a FORM tag are now shown
    (as MSIE 4, but not NN 4).
    
    '*', '-', '@', '_' and '.' are not escaped when submitting forms now. The
    Web interface to the IMDb now works.
    
    INPUT TYPE=HIDDEN items will not affect the line height anymore - so
    http://www.hotmail.com/ now has correctly aligned writable icons, for
    example. Similarly, TAG_FORM and TAG_FORM_END items could push up
    line height and don't anymore.
    
    HRs with a specified pixel width will now influence the size of a table
    cell (they didn't before).
    
    BRs now checked by tagno field when the browser needs to know something
    was an actual BR tag rather than just a line break signal, and by the
    style bit entry when only the indication of a line break is required.
    
    Table widths of 0 or 0% are ignored.
    
    Trace.c updated to report height and background fields in a table_stream.
    
    fm_putsl() writes a terminator into the string; the Forms.c routines were
    calling this for displaying INPUT TYPE=PASSWORD fields using the FE_PassCode
    literal string (a line of stars). This write into a read only data area
    would make the debugger fault the access. A local char array is now used
    instead, to get round this (note the use of var[]=literal rather than
    var[sizeof(literal)]; strcpy(var, literal) due to some weird compiler bug
    that copies the wrong thing into 'var' under some (undefined...)
    circumstances).
    
    Text areas don't scroll back to the top line when clicked in anymore;
    single line writables don't scroll back to the left either. When
    reentering a text area from 'above', the caret appears at the top line
    rather than 'somewhere further down'...
    
    ARROWS_MOVE_OUT compile time option at the top of Forms.c defines whether
    you must press Tab/Shift+Tab to move between writable fields in forms or
    if up/down will drop out of them, though if keyboard control is on this
    is enforced (or you get trapped inside the form!).
    
    urlutils_filetype_from_url now uses MimeMap module.
    
    If fetcher is told a page is text, it'll check for a filename extension and
    may choose to use this instead (e.g. it may find it's HTML instead). This
    is to try and get around duff servers... (e.g. http://www.batalarms.co.uk/).
    
    Save dialogues shouldn't flicker when options that don't change the
    filetype are selected (before, the draggable sprite was always reset for
    each selection). Noticed the erroneous setting of a static variable in
    SaveFile.c by a call to this by SaveObject.c, and so added a flag to
    savefile_set_filetype to deal with this - would have been possible to get
    the wrong filetype sent to applications or at best the wrong filetype
    sprite in the dialogue without that.
    
    The caret shouldn't jump out of a form back to the URL writable if the page
    reformats now.
    
    Table background colours now supported (as in the colour you see in the
    border space if the cellspacing is large enough; this is as in MSIE, not
    as in Navigator). Drawfile output routines updated accordingly.
    
    Corrected erroneous use of wimpt_dx() / wimpt_dy() in a couple of places
    in Images.c, which meant that (say) 1x1 images didn't work correctly in
    medium resolution display modes.
    
    Now have support for save as text (component ID and event 0x12) and save
    as Draw (component ID and event 0x13) buttons. Dubious conditions for
    greying and ungreying the print, save source and view source buttons and
    menu options sorted out as part of implementing the same for the two new
    buttons; added greying out of their associated menu items in passing.
    
    Turned kerning on in draw file objects (does mean a rather heinous
    increase in file size, but this is the only way to ensure the draw file
    matches the visible page).
    
    Comments before functions in SaveDraw.c are now complete and up to date.
    
    Image and visit histories now generate a crude hash number to speed up
    searching for items. It does give a speed increase, though it's a
    disappointingly small one.
    
    Issue of left/right margins and cellpaddings sorted out. Now have
    redraw_left/right_margin for finding out the basic gap you must leave.
    redraw_left/right_gap then gives any extra indentation for LI, BLOCKQUOTE
    or whatever. The last two can be subtracted from the display width to
    get an available page width for any section of text. Note that
    redraw_left_gap replaces redraw_margin. The redraw_start_x function
    uses the above to work out where a line's left hand edge should be,
    taking account of left/right/centre alignment. HRs have been fixed now
    (they were quite broken in v1.30, I think) based on this new model and
    the behaviour of MSIE/NN 4.
    
    Fixed width of cells with no contents - cell padding values wouldn't
    have worked properly as the reformatter returns 0 rather than the left
    hand margin size if given no stream.
    
    Removed FM_Absolute flags for Font_Paint (spotted by DBrown) - sets bit
    2, which is reserved...?
    
    IMG width and height in % terms now works correctly; a % of available
    width (after margins and indents) or height on the main page or for
    a table cell, if the image lies in one. Because of the chicken-and-egg
    problem with the latter, the cell must specify a width and/or height
    for things to work properly. If this is not done, you'll usually end
    up with a 1:1 scaled image (as in Navigator 4, rather than ending up
    with no image or even no cell (!), as in MSIE 4).
    
    HEIGHT attribute on a TABLE tag is supported, but only in a crude
    fashion; the extra height (if there is any) is distributed over the
    rows in a linear fashion. This is probably all you have to do in
    practice, but I haven't checked. To maintain a notion of min/max
    height as well as width would of course require a great deal more
    work...
    
    If using client pull to reload a page with a fragment ('...#name')
    specified, then the reload wouldn't work on the same page; it'd just
    jump to the fragment position. This won't happen if b->reloading is
    set now (so works in conjunction with client pull on the same page
    forcing a non-cached fetch). Similarly, if POSTing to such a URL,
    a fetch will proceed (both these fixes done originally for
    http://jupiter.beseen.com/chat/rooms/g/1678/).
    
    browser_inherit split to browser_inherit and browser_inherit_post_data;
    the code for the latter didn't clear any post_data in the child before
    copying from the parent either, and could cause flex errors (now fixed).
    
    Res file for Ursula ('Desktop' Browse) build tweaked - bits in the
    font choices dialogue renamed, and button bar rearranged to hold the
    new Save As Draw button. Other builds have had Save As Draw and
    Save As Text buttons added, or not, depending upon availability of
    suitable sprites, required UI simplicity, etc.
    
    Now have:
    
      Browse$ChoicesFile
      Browse$ControlsFile
      Browse$ChoicesSave
      Browse$ControlsSave
    
    (the last two are new) for loading and saving of the Choices or Controls
    files. If unset, <App$Dir>.Choices or <App$Dir>.Controls will be set.
    E.g., you could set Browse$ChoicesFile to be:
    
      <App$Dir>.Choices,Choices:WWW.(app).Choices
    
    for loading and
    
      <Choices$Write>.WWW.(app).Choices
    
    for saving. (The browser never saves Controls at the moment, so the
    relevant variable above isn't effectively implemented, but could be
    in future). Similarly, to support asymetric loading/saving of the Hotlist,
    there are HotlistSave, HistorySave and ImageHistorySave entries in Choices
    to complement HotlistPath, HistoryPath and ImageHistoryPath (which are used
    for loading). save_save_choices will create directories as needed to obtain
    the given path (and has also been fixed in various areas that hadn't been
    tested out until now; e.g. zero termination of the AppName$ChoicesFile
    variable expansion...). !Run[D] files updated appropriately.
    
    Table widthing code rewritten. Slower, but a lot better on the whole.
    Still has some problems - still needs a final 'make sure nothing is
    below minimum width' scan, which it should be possible to do without.
    No time to fix this at present!
    
    The reformatter will now 'glue together' an LI token followed by any
    non-LI token; so a bullet point followed by an item should not be able to
    have a line break inserted after the bullet because of very tight width
    constraints (it could before - yuk...).
    
    'about:' brings up a page about the browser and any Plug-Ins, as with
    Navigator (for example).
    
    URI files support titles, as per spec. version 8. Saving a current
    location to the Hotlist will thus give a sensible title now (unless
    you're in a frame, so there's no title to get...). Of course, v1.00
    files without a title still work.
    
    Note that NOBR is *not* supported in this build and this combined with
    the new table widther may cause problems on some sites (e.g. Microsoft's
    home page!).
    ebd74985
!RunD,feb 5.3 KB