1. 19 Feb, 1998 2 commits
  2. 13 Feb, 1998 1 commit
    • Andrew Hodgkinson's avatar
      RefoSingle option added to Controls. · 8d7d65dd
      Andrew Hodgkinson authored
      Precautions taken in table code to avoid divide by zero errors.
      
      Framesets defining more frames than the frameset implies, for whatever
      reason, should never cause a crash now - just report a 'Frames definition
      is badly nested' error (if STRICT_PARSER defined). Along the same lines,
      in a single document defining a set of nested frames, two /FRAMESETs in
      succession could cause a fairly nasty crash. Fixed.
      
      TIFFs do not get loaded by double-click now.
      
      If holding down SHIFT to save a link contents to disc, you can also hold
      down CTRL to bypass the cache (sets the browser's reloading flag). Noticed
      when testing this that windows_create_browser didn't take account of the
      Controls file 'UseSmall' entry when adjust-shift-clicking on links. It
      does now.
      
      There is now a complete and up to date set of interactive help messages
      built into the Ursula, Customer and Phoenix build Res files.
      8d7d65dd
  3. 06 Feb, 1998 2 commits
    • Andrew Hodgkinson's avatar
      f835585e
    • 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
  4. 02 Feb, 1998 1 commit
  5. 18 Dec, 1997 1 commit
  6. 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
  7. 04 Dec, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Fixed some glitches in the modified status bar code (e.g. status inference... · dff9a8ae
      Andrew Hodgkinson authored
      Fixed some glitches in the modified status bar code (e.g. status inference wasn't working properly).
      
      Shift+Toggle size always opened to not obscure the icon bar. If CMOS is
      set to always show the icon bar, then Shift+Toggle size is meant to
      reverse sense and open to absolute full size. It now does this.
      
      !Run[D] files now require URL 0.22, HTTP 0.64, FTP 0.22, Gopher 0.08
      and File 0.32.
      
      Minor overhaul of 'Docs.Notes' (with 'Docs.User' similarly updated) to
      include a few new bits and pieces.
      
      Timeout values of 0 now mean 'forever'. Plug-in status messages now have
      their own timeout setting. New Messages token 'Actv' for extra info when
      a status message times out and the status line drops to 'Viewing' or
      'Ready' when there is still a Busy state registered by the Plug-in.
      
      Small Fetch windows don't become visible briefly for Plug-in fetches
      when the fetch is complete (for SeeFetches:no, where these windows
      should be hidden all the time).
      
      WebServe may be controlled through the Browse front-end via.
      Wimp_MAppControl reason code 4 (Wimp_MAppControl_Configure). Note the
      renaming internally of 'WebServ' or 'WebServe' has been changed to
      'Proxy' (with lower case equivalents where relevant); proxy name
      and starting details come from the Messages file 'ProxyName' and
      'ProxyComm' tokens. More in 'Docs.Notes'.
      
      Res files updated for image history and PRE/TT font aspect ratio
      choices. 'Don't expire' labels changed to 'Expire' (oops, didn't
      notice the change in the development Browse's Res file when I
      updated all of the others until now...).
      
      When printing, Wimp_PlotIcon appears to ignore R4 and R5, plots
      'somewhere' on the page, and tries to get the sprite from the global
      pool. This latter part normally causes an error to be raised; though
      on my machine I just get a corrupted error message. The Desktop font
      gets lost at this point too. All have yet to be fixed; as an
      interim work around, Wimp_PlotIcon objects are never drawn at all
      if the global 'printing' flag is set.
      dff9a8ae
  8. 26 Nov, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Image history - sizes of images are remembered for future reference (if the... · 2a2b2672
      Andrew Hodgkinson authored
      Image history - sizes of images are remembered for future reference (if the sizes aren't specified in the HTML, they can be looked for in the image history instead to minimise reformatting requirements). Choices file options ImageHistoryPath, ImageExpiryAge, ImageMaxSize and
      
      SaveImageHistory added to support this (all have a direct analogy to
      the global History items of the same name after removing 'Image').
      
      Text area items are now the correct height for the number of rows
      specified in the HTML, don't scroll a line too early, and have the
      caret placed at the start of the text when moved into from above
      or at the end when moved into from below (rather than always at
      the end, which was behaviour inherited from single line writables,
      where this is desirable). The top of the text area is aligned to
      the top of any line of text on the same line, with the text area
      dropping below the text, rather than the bottom of the area matching
      the text baseline and extending upwards.
      
      Filename extensions for download files are only stripped if an
      attempt to convert to a RISC OS filetype through the Mime Mapper module
      does not return an error or Data (0xffd) filetype. '.cgi' is a special
      case which is always stripped.
      
      Altered heading styles - all are bold, none are italic, H3 is as big
      as H2 was, H2 is a little larger, and others scale down to H6 being
      the size as normal text (but, as I say, bold).
      
      Sorted out tables and forms. We can just look for tagno=TAG_FORM, and
      get rid of the wobbly form_flag; also discarded the redundant
      reprocess_table flag in fetch_preprocess_token. Two separate forms
      in consecutive table cells (for example) which used to fail - they
      were submitted as one single form - will now work correctly.
      
      Fixed nasty bug in FontManage.c where font size 7 would intermittently
      fail. The stupid font sizes that it could ask the Font Manager for may
      be responsible for the occasional Font Manager crashes that have been
      noticed. Array for font sizes was declared as [Limits_FontSizes], but
      indices 1 to Limits_FontSizes are actually used - so needed a '+ 1'
      in the declaration... :-/
      
      Replaced the case insensitive string comparison functions in Utils.c
      with more efficient versions by S.Brodie.
      
      MAXLENGTH specifier in INPUT tags is now supported. If unspecified or
      specifically zero, the browser overrides and allows any length.
      2a2b2672
  9. 21 Nov, 1997 1 commit
    • Andrew Hodgkinson's avatar
      All hotlist_find_match calls wrapped in '#ifndef REMOTE_HOTLIST' compile time... · d505c4fc
      Andrew Hodgkinson authored
      All hotlist_find_match calls wrapped in '#ifndef REMOTE_HOTLIST' compile time option, for some builds.
      
      Cross referencing of images when the background colour is different - should
      not do it for backgrounds, for e.g. alpha transparent PNGs would then fail.
      This was implemented, but it turns out it affects *all* cross referencing!
      Fixed for just background images.
      
      As described in Docs.TagNames, the tag name "ahodgkin_127beta2" associated
      with this checkin applies to everything *except* Choices.c. v1.27 beta 2
      was build with the Choices file tagged "ahodgkin_127beta". The confusion
      arises because Choices.c got independently updated and checked back in
      before I checked in the v1.27 beta 2 changes myself.
      d505c4fc
  10. 20 Nov, 1997 2 commits
    • Andrew Hodgkinson's avatar
    • Andrew Hodgkinson's avatar
      Following the last check-in - all build resources brought up to date. · cc9d8863
      Andrew Hodgkinson authored
      Adjust-click on forwards/backwards buttons did not work in the intermediate
      build, and now does.
      
      Adjust-click on form submission buttons where the submit method is POST
      will now work correctly, as the new view inherits the extradata block
      of the old. Failure of this is signalled through
      make_no_fetch_memory_error, code 16 (see updated Errors file in Docs).
      Note the name change of extradata in this context; more details below.
      
      The passing of forms POST data and extra headers for sending in an
      HTTP request via. the URL module was all done through pointers into
      flex blocks, and was therefore very unsafe. All relevant functions now
      use pointers to pointers to the data.
      
      To remove confusion on the umpteen uses of the word 'extradata', the field
      in browser_data has been renamed to 'post_data'. The 'extradata' parameters
      used within FetchPage.c were all disconnected from the extra header info /
      form POST data stuff that extradata is usually associated with, and have
      thus also been renamed, in this case to 'appnddata' (Append Data).
      
      As well as X-NoProxy, the browser sends the 'proper' HTTP headers
      Pragma:no-cache and Cache-Control:no-cache.
      
      A redirection from a POST request was not handled correctly; despite
      what HTTP specs say, you're supposed to use GET for the new URL. The
      browser was, but when it chopped off the redundant header data in the
      request didn't terminate it and left Content-Type in anyway...! Fixed.
      
      Ctrl+Tab implemented - URL completion. Comes from the hotlist URLs,
      hotlist titles, history hosts, paths, full URLs and lastly titles.
      See code comments for more (history_find_match, hotlist_find_match).
      
      TableSupport option added to Choices; it is read, can be set by the
      front-end, but doesn't actually do anything else yet.
      
      Reversed Choices' semantics on 'don't expire by...' for History. Added
      'needs_redraw' flag to choices_get_contents so that, for example, if the
      table border types change, browsers get redrawn.
      cc9d8863
  11. 19 Nov, 1997 1 commit
    • Andrew Hodgkinson's avatar
      This is an intermediate check-in to allow work on Choices for the new table... · 7caf92e2
      Andrew Hodgkinson authored
      This is an intermediate check-in to allow work on Choices for the new table options and History choices as detailed below. Res files are not up to date except where indicated and there are several known bugs that will be fixed before the 'final' v1.27 is created. Any work on resources should only be done for the testbed !Browse.
      
      Client side image maps implemented. There is code to draw highlighted
      borders in CSIM.c, but this is not wired in yet; other than that,
      the implementation is functionally complete. As part of this, centralised
      the fetching of a targetted URL taking into account user request of a
      new view and full screen mode, in fetchpage_fetch_targetted. The forms
      library now uses this too, so form buttons respond to both adjust-clicks
      and TARGET attributes.
      
      Fixed APPLET handling where '.class' isn't present in the CODE attribute.
      
      Paragraphs squashed at the top of cells/pages - browser would insert white
      space before.
      
      Now append a ' ' to the end of History menu items to prevent the Wimp
      thinking the end of entries represents a keyboard shortcut (e.g. 'Home').
      
      Netscape's handling of 'meta http-equiv="refresh"' is to start counting
      when the fetch has completed and everything else has died down. The browser
      will now not start counting until the animation handler is deregistered
      (so formatting is complete) to show similar behaviour (note that this
      checks the main handler, not the 'idle but returning to first frame'
      drift handler).
      
      URLs from requests for fetches by Plug-Ins are now relativised.
      
      Page width change tolerance prior to reformat upped from 16 to 32 OS
      units. Hoping to provoke a loosely connected bug with this change!
      
      TableOuter, TableInner and SeeFetches choices added to all Choices
      files, with appropriate loading and saving code in Main.c and Save.c.
      AuthorFTP and AuthorFSh messages added for FTP authentication, and
      dialogue handling code (the component in FetchHTML.c) updated to
      recognise an FTP fetch and alter the dialogue presentation
      appropriately.
      
      All Messages file version numbers taken up to 1.27 (20 Nov 1997).
      
      Following a UseNet suggestion, Ctrl+Toggle Size will increase the window
      size to fill the screen vertically only; horizontal size/positioning is
      not changed.
      
      Shift+Tab in the URL writable will cycle through alternative fetcher
      protocols (from both the Controls file and checking the fetcher modules
      are actually present).
      
      Hotlist doesn't require '://' in URLs when loading HTML, just ':/' - so
      'file:/' URLs now will be reloaded correctly.
      
      History system rewritten completely. GHistSize and VHistSize options
      removed, and replaced by MaxSize and ExpiryAge. Now have global history
      menus with most recently visited items at the top, and local history
      menus which reflect the path that forward/back buttons would take.
      Browsers are robust to background expiry of the History though this is
      not implemented - date expiry and size checks are carried out on
      history_record only. This does mean that with two windows open one could
      have the history expired underneath it whilst another fetched, though;
      the code handles this and update toolbars (greying items) as necessary.
      It is possible to have the history limits so tight that even one entry
      will not fit and again the code copes with this, though values read
      from Choices are limit checked to ensure rather more useful results!
      
      Implemented 'Save' button in save dialogues. Remembers pathnames and just
      replaces the leaf now (hard coded exceptions for <Wimp$Scrap>... and
      <Wimp$ScrapDir>...) - it did before, but only if you'd typed the path
      in. Not many people did, given that you couldn't press Return or click on
      a Save button to use that path...
      
      In a similar vein, files of type Data or DOS will be checked for a '/xxx'
      type extension and the MimeMap module will be used to find a more meaningful
      filetype. If this can be handled, the file is loaded. This only works for
      files dragged to the browser - the behaviour with inline data in web pages
      will depend on the File module, and similarly, if File doesn't spot what is
      going on and claims that the object is data, the browser will just open a
      save dialogue for it.
      
      !RunD files taken up to 3072K WimpSlot.
      
      Hotlist's saved HTML page title wasn't internationalised - is now. This
      opened up a significant can of worms; on file write error, the file would
      never be closed, and if a caller of the save or load functions passed
      in a filename held in the global Messages lookup buffer then subsequent
      lookups in the callees would corrupt that filename. All sorted out now.
      
      Local (not very useful) or global (useful) histories can be saved as HTML,
      which opens up the possibility of sending your history to the hotlist
      by saving to it. Local and global histories can also be emptied, though
      this is probably not a feature that current release Desktop browsers need.
      Inheritance of local history and certain UI features is now done more or
      less for all cases where one browser window spawns another, too.
      
      Vertical alignment on images is rather less ropey than it was (e.g.
      ALIGN=TOP stands half a chance of working) but is still far from perfect.
      This was part of fixing a nasty little bug in Redraw.c's setting of
      an image position via. image_set_token_image_position, which was making
      (amongst possibly many other things) client side image maps fail.
      Image update where images had large borders was affected by a similar
      problem too (more cans with more worms...).
      
      Fixed image background filler functions; two problems. When cross
      referenced images were replaced by base images in a browser because the
      original owner was closing down, the original owner browser would stay
      registered with ImageLib. Fixed; secondly, when images were deleted from
      the image array causing those above to be renumbered, images registered
      with ImageLib did not have their numbers updated (this was the one that
      lead to the visible drop out of background images with PNGs on the Acorn
      Internet home page when there were two views of the page and the first
      was closed). This is now also sorted out.
      7caf92e2
  12. 30 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Removed 'The Onion' link from some Hotlist files. Time showed that the site... · 62293187
      Andrew Hodgkinson authored
      Removed 'The Onion' link from some Hotlist files. Time showed that the site wasn't entirely Family Friendly (TM)... Removed Shift Control (it's gone offline now), and corrected the Telegraph URL from ...the-telegraph...
      
      to just ...telegraph...
      
      StrongHelp manual generator now tries to work out the number of lines in
      the table on the root page more intelligently.
      
      Plug-in support extended to handle Shockwave. Quite a lot of underlying
      work for this, including a pseudo cache system for temporary files.
      
      Bug in redraw routines: they plotted background images within table
      cells, when nothing should have been drawn. Oops. When background images
      in cells are properly supported, this can get sorted out.
      
      Tweaked vertical plot position of HRs (up to 4 OS units too high before due
      to rounding).
      
      Various Res file bits and pieces, Ursula build taken up to v1.26 beta
      for release on the Browser site. *Note* not all resources are up to date!
      This will be done after AW97.
      62293187
  13. 24 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Various fixes in the code required for Shockwave support (many invalid... · 7b1aa501
      Andrew Hodgkinson authored
      Various fixes in the code required for Shockwave support (many invalid assumptions about the OBJECT tag structure). Not finished yet though.
      
      Played around with signal handling 'n' all that to try and get sensible
      errors reported for aborts etc. using code by KBracey. Need a ROM patch
      for _swix on RISC OS 3.7 upwards (or a local fixed copy of _swix),
      otherwise should sort out most of the problems seen (mostly 'no stack
      for trap handler' errors and a distinct lack of a register dump).
      
      Plug-In view on redraw / ASAP choices now work as they should (ASAP
      was previously broken).
      
      Version numbers in Messages incremented to 1.25 (23 Oct 1997).
      
      For Plug-In support, created new source file RMA.c/h to handle RMA
      claims and releases, in an attempt to ensure leakage never happens.
      As such, this source is *slightly* more advanced than that in the 1.25
      AW '97 build, though functionally identical. Well, that is, at least
      you can confirm zero RMA leakage with '-debug LMem' in TRACE builds now!
      
      Intend to do a consistency check on comment syntax in all sources
      shortly - I need to rebuild my StrongHelp manuals; can't keep track
      of all of these new functions...
      7b1aa501
  14. 16 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Now handles PARAM tags. Sorted out Plug-In bug that was related to Java... · 2093c108
      Andrew Hodgkinson authored
      Now handles PARAM tags. Sorted out Plug-In bug that was related to Java setting a 0 by 0 graphics window before calling Wimp_Poll (fixed in Java).
      
      Implemented queue for Plug-Ins so multiple broadcasts aren't sent for
      several Objects in one data chunk.
      
      Added Docs directory with some documentation in it. More things to keep
      checking for stylistic consistency, horray ;-)
      
      Corrected !Run[D] for Ursula build to need AcornURI but not TaskModule
      (URI handler needed for !Mail to pick up mailto: links).
      
      Added display_height field to browser_data, analogous to display_width,
      to cope with % sized objects by width and height (see how HRs are
      handled in Redraw.c for an example of how it was always fairly easy
      with width, but not height until this addition). Though you do have
      to reload to get a new size; reformat isn't enough. Must see to this
      some time...
      
      Fixed bug where basic typefaces were claimed *before* the Choices file
      had been read. For unusual Choices settings, this could create some
      'interesting' problems now and again. This was part of narrower scope
      work in the Choices code to allow font changing without leaking font
      handles (now done; fm_shutdown only ditches fonts, it keeps internal
      structures - must then call  fm_lose_fonts for all browsers to get the
      bitfields up to date, then rewrite the typeface definitions and reclaim
      basic fonts). Noticed that fm_claim_basic_typefaces would claim multiple
      instances of the same font if there were several cases of the same font
      mapped to different typeface styles - fixed.
      
      Implemented PlugInControl settings, but not SupportObject (fully).
      2093c108