1. 20 Mar, 1998 1 commit
    • Andrew Hodgkinson's avatar
      Programming warehouse link removed from all hotlists - the page has gone. · 76dfaa46
      Andrew Hodgkinson authored
      Some compile-time hacks in place to use MemLib, a dynamic area based
      malloc replacement which shrinks its heap when possible. All builds
      have these switched off at the moment. Seemed to work with just Browse,
      though there would be problems with message blocks stored in dynamic
      areas because of the Wimp's '&3800000' check - however, it failed when
      HTMLLib was made to use it, too. Don't know why yet.
      
      ItemInfo.[c/h] source added, with Res file additions for testbed Browse
      and Phoenix.
      
      Small fetch windows now work properly regardless of toolbar settings
      in the Choices.
      
      Reload now reloads all images too, rather than only reloading them for
      as long as the main page was being fetched.
      
      Added a simple 'Find' facility.
      
      Realised that event handlers in eventlib are called in reverse order
      of registration, so the miscellaneous event handler is now registered
      first rather than last.
      
      Multiuser code added (most only active if SINGLE_USER is undefined). As
      part of this, hotlist code now knows about read-only items (done for the
      Customer-style 'Resources' file, but works generally anyway).
      handle_add_hotlist doesn't try to save the hotlist itself anymore (the
      hotlist_add function does all that through hotlist_modified anyway).
      
      Customer build Choices and Controls updated slightly (e.g. ClaimHelp
      off, hotlist to save on quit only).
      
      Customer build now uses Phoenix-style buttons. Sprites files which
      worked at the time (but will probably be out of date now) and included
      most of the original Customer-style sprites are in
      'Utils.Icons.Customer'.
      
      Choices, Messages and Res files for all builds now stripped down to only
      single user items or single plus multiuser for Customer build and testbed
      build. Before, all contained a few multiuser bits in at least the Choices
      file if not more.
      
      Grammatical error ("Fetching frames contents" (sic.)) corrected in
      default message, Toolbars.c, and all of the Messages files.
      
      Customer build brought back to a servicable level (including
      implementation of the Find dialogue box with animation and fixing
      up authorisation and 'Stop' state in the tristate). Quite a few
      missing #ifndef REMOTE_HOTLIST bits from hotlist code added...
      
      Customer build will not use <Choices$Write> or Boot:Choices for any
      file finding now. UseProxy defaults to 'yes', MaxImages to 2. Res
      file includes Proxy Address setting (save_save_choices() now writes
      the ProxyAddress line).
      76dfaa46
  2. 06 Feb, 1998 1 commit
    • Andrew Hodgkinson's avatar
      *Don't* try to load FilterManager 0.18 in !Run[D] files. Requires · 4c272928
      Andrew Hodgkinson authored
      WindowManager 3.98. Sets URI handler environment variables for
      http, ftp and gopher.
      
      Fixed 'doesn't reformat for unsized images' bug - only happens when the
      deferred reformatter is enabled, hadn't remembered to check this in my
      debug build where this is turned off. Oops.
      
      Caret position in forms could get left behind despite attempts to rectify
      this in v1.31 - now fixed (and faster, fortunately).
      
      Hourglass + percentage displayed for History and Image History when
      loading - it can take a while for very big histories, though in
      practice you only see the visit history loading (has to do a lot
      more work, and is thus quite a bit slower than the image history).
      
      POST forms worked when targetted to frames, but were broken when
      not targetted! (Forms data inherited from one browser to the same
      browser; ended up freeing the flex block...). Fixed.
      
      Now support 303 response code (redirect to GET). Treated as 301, i.e.
      not support if STRICT_PARSER is defined, otherwise drops through to
      the 302 handling code.
      
      Pointer shouldn't get stuck in odd shapes when going to a new page now;
      it gets reset to a standard shape every time the null handler that
      checks the position is called, though (whether or not the handler thinks
      the pointer is over a different token, if that token is NULL, it sets
      the standard shape). A possible work around would be for a browser to
      remember the pointer shape too; that's for the future, though.
      
      Early stage table formatting functions could blow themselves apart if
      tables_count_table decided there were no rows, columns or both. A
      net table size of zero cells is now dealt with; slow, partial table
      fetches in multiple windows with image loading turned on will now
      *hopefully* be stable, where v1.31 would have bombed out repeatedly.
      
      A nested frameset within one document will now inherit the border
      width (frame spacing) and border colour of its parent. This is done
      by copying the maxlen and indent fields of the parent token over
      the child, and note it's done in the browser (fetch_preprocess_token),
      not HTMLLib.
      
      Border colour on a FRAMESET now used, with the first colour on any
      FRAME within it overriding, as in NN 4 and MSIE 4.
      
      <LI> bullets really do stick to the text next to them now (I'd done
      that in an experimental piece of code and forgotten to merge it back
      before the last check-in).
      
      Browse$HotlistURL/URIFile and Browse$HomeURL/URIFile now work from
      _TaskName in the Messages file, and are thus of the generic form
      <App>$HotlistURL etc. - Docs.Notes and Docs.User updated appropriately.
      
      Event 0x11d00 through to 0x11d7f will make the browser look up Controls
      file entries 'JumpTo00' through to 'JumpTo7f' and read a URL from them.
      This will be fetched in the ancestor window of the source of the event,
      or a new window if such an ancestor can't be found [for Daytona demo].
      
      NB: Nasty frames-related crash at http://www.teledanmark.dk/menu/start.htm
      is *not* fixed in this source. NOBR is not supported.
      4c272928
  3. 31 Jan, 1998 1 commit
    • 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
  4. 12 Dec, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Note that the 'Docs' documentation (possibly contrary to previous log... · f56c7002
      Andrew Hodgkinson authored
      Note that the 'Docs' documentation (possibly contrary to previous log messages) still hasn't been updated with the new SaveFile stuff, and function header comments have yet to be written for
      
      SaveFile.c.
      
      Fixed urlutils_pathname_to_url - OS_GSTrans doesn't like the same
      input buffer as output buffer (fairly obvious, but I was living in
      the hope of not having to duplicate the input path string).
      
      Image history will not cache scrap file images anymore. Browser's
      image handling library won't cross reference them either.
      
      When dragging a single item from the hotlist to a Filer window, the
      code now checks Ctrl - if held down, a URL file is written, else a
      URI file. The state of any option buttons or radios in the last
      Save File dialogue that was opened is no longer relevant...!
      
      history_save_as_html could write out broken files when titles
      for items in the History were not present. Fixed.
      
      Hourglass switched on for hotlist and history saving as HTML;
      hotlist_save_entries no longer closes the output file on error
      (it should be done by the caller, since the caller is responsible
      for opening the file and passing the FILE * pointer to
      hotlist_save_entries).
      f56c7002
  5. 27 Nov, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Image history can be emptied from the History menu. · 499a3422
      Andrew Hodgkinson authored
      Significant reduction in number of times reformatter is called during
      a table widthing session results in a dramatic speed increase for nested
      tables (e.g. 64 deep with a paragraph of text in the deepest table takes
      about two seconds to load with near-instantaneous subsequent reformats,
      as opposed to taking optimistically 28 days for a 32 deep table!).
      This code relies on a very big stack of assumptions...
      
      Save as plain text implemented.
      
      Choices, Messages and Res files brought up to date where necessary.
      Version number taken to 1.28, 04-Dec-97 (so I don't forget later,
      basically...).
      499a3422
  6. 26 Nov, 1997 1 commit