1. 16 Sep, 2005 1 commit
    • Andrew Hodgkinson's avatar
      Minor update. · 692c7f02
      Andrew Hodgkinson authored
      Detail:
        !Run files for Phoenix requested TextGadgets 0.29, but this can be 0.28
        now, and has been amended. Signal handling in Main.c revised a bit.
      Admin:
        Tested, works.
      
      Version 2.11. Tagged as 'Browse-2_11'
      692c7f02
  2. 26 Apr, 2005 1 commit
    • Andrew Hodgkinson's avatar
      Huge pile of changes bringing relatively ancient sources up to date. · a91dba3d
      Andrew Hodgkinson authored
      Detail:
        This check-in includes Phoenix version 2.11 (26-Apr-2005); only the
        debug and JavaScript builds of Phoenix have been tested and resources
        will definitely be out of date for other versions. The various "!..."
        scripts have been updated to require a minimum of 2MB with no maximum
        limit for building, as CC 5.60 is quite RAM hungry.
      Admin:
        Phoenix 2.11 JS builds OK, works reasonably well. Many outstanding
        issues of course, as this is a very outdated browser now.
      
      Version 2.09. Tagged as 'Browse-2_09'
      a91dba3d
  3. 14 Nov, 2000 1 commit
    • Andrew Hodgkinson's avatar
      Load balancer pulled apart. DebugLib support. Temporary debug in place. · 15db9127
      Andrew Hodgkinson authored
      Detail:
        This is in the middle of some load balancer changes, but I'm checking it
        in as there's a sweeping source code change to use DebugLib. See Global.c
        for full details. Temporary debug code for the load balancer stuff is
        currently held under undocumented area "test".
      Admin:
        This build now identifies itself as 2.08 i2-4 and says Pace on the about:
        page. Run for some time with no unexpected problems. Tried a mixture of
        debug levels successfully.
      
      Version 2.08. Not tagged
      15db9127
  4. 31 May, 2000 1 commit
    • Andrew Hodgkinson's avatar
      64-wide comments adopted throughout. All headers protected against multiple... · 1c9291d7
      Andrew Hodgkinson authored
      64-wide comments adopted throughout. All headers protected against multiple inclusion. Use of <> for external headers rather than "". For libraries, <libname/header.h> is used rather than relying on a complex include path, where appropriate. Move towards using external URILib rather than the local copy. Phoenix JavaScript build resources are the only up to date set currently so don't try others; more work still required on Makefile (e.g.
      
      getting the ROM build working, and internationalisation issues).
      
      Version 2.08. Not tagged
      1c9291d7
  5. 01 Mar, 2000 1 commit
  6. 25 Feb, 2000 1 commit
  7. 02 Sep, 1999 1 commit
    • Andrew Hodgkinson's avatar
      Long overdue check-in of intermediate browser build, from continued "out of... · 97f8ad76
      Andrew Hodgkinson authored
      Long overdue check-in of intermediate browser build, from continued "out of hours" work. Forgot to add a few files last time too.
      
      List dialogue box handler complete, and exclusion lists implemented
      within the main browser code. Full documentation in Choices file.
      Save routine knows all about it but is now getting very slow - must
      come up with a better scheme; for now, it puts the hourglass on...
      
      StripExtensions option controls auto stripping of filename extensions.
      
      More sensible ancestor / frame selection for keyboard shortcut items
      and the save dialogues - having selected a frame won't lock you into
      it for F3 and related shortcuts now (input focus in URL writable ->
      get ancestor details, input focus in frame -> get frame details). F4
      works in frames. F5 now generally present for 'view source' with a
      corresponding menu entry in the File menu.
      
      Odd thing in later Res files; there's no action set for Adjust clicks
      on the main ToolAction items in the button bar. Very odd. Nothing
      appears to be set in v2.07 either, yet adjust-click works. Even
      stranger. Anyway, added in the relevant event details (same as for
      Select click in all cases) and this fixes the problem.
      
      Background colours in the TABLE tag ignored the "don't print any
      backgrounds" Print Style setting. Fixed. Meanwhile, the "black
      text with no backgrounds" option wasn't getting this right either;
      fixed this also.
      
      Event logging implemented; HTTP errors and script output via.
      window.print extension. No internal error output yet.
      
      Faith:Never behaviour extended. If ever a server sends something with
      no content type or an unhandleable type, the browser will try and get a
      filetype from the URL. If it gets text or HTML, it'll render the file.
      Else it'll save it. Hacks around IIS 4's lack of a content type field
      in the Marketeye login stuff, and similar other slightly broken sites.
      97f8ad76
  8. 30 Mar, 1999 1 commit
    • Andrew Hodgkinson's avatar
      Intermediate check-in; building a browser from this gives you something... · b1a5e090
      Andrew Hodgkinson authored
      Intermediate check-in; building a browser from this gives you something between 2.07 and 2.08. Only the Phoenix JavaScript resources are fully up to date.
      
      I *think* these are the changes since the last check-in:
      
      When saved as a Draw file, horizontal rules were plotted one page width
      too far to the right (wonder when that started happening?!). Fixed. In
      addition, DrawFiles now accepted as OBJECTs - they weren't in the
      recognised filetype list before. Doh.
      
      Table size calculator tables_count_table would overestimate the number
      of cells where ROWSPAN was present and there were other rows below the
      one spanned. Fixed. In certain odd cases (e.g. optimised image exports
      as HTML tables (!!) from the Gimp) this can save vast amounts of RAM.
      
      Fixed problem where printing stops in the middle of a document. Redraw
      engine pagination code was written in the days where lines couldn't
      have gaps between them; they can now. If a gap fell at the bottom of
      a page the engine would look down, see no line straddling or touching
      the page edge, and assume there was nothing more. This case is now
      correctly handled.
      
      Made sure desktop and testbed Browse Res files had up-to-date Encoding
      menus (v2.07 Phoenix has different menus from v2.07 Browse by oversight).
      
      URL auto-completion piggy-backed onto manual completion code; any string
      without '.', '/' or ':' in it gets run through completion to see if a
      more meaningful item can be produced - "www" special cased out though.
      
      New List dialogue box handler, used for proxy exclusions etc.
      (incomplete), complete with appropriate Res file objects.
      b1a5e090
  9. 13 Oct, 1998 1 commit
    • Andrew Hodgkinson's avatar
      Tweaks to export rules in Makefile - ResJ source for JavaScript builds, all of... · 43e7781f
      Andrew Hodgkinson authored
      Tweaks to export rules in Makefile - ResJ source for JavaScript builds, all of User dir exported, resources rule exports About as well as User.
      
      Handles images with a width or height of 0 specified in the HTML.
      Previously went for a default size placeholder and changes to image
      sizes and/or redraw problems could occur before/after subsequent
      reformatting (involved trivial changes to image_get_image_size and
      image_redraw_area only).
      
      Default parameter HRs now plot properly in rectangular pixel modes.
      
      Choices code updated to cope with the minimum font size, JS support,
      watchdog on/off and timeout, Navigator object option added generally
      (act even *more* like Navigator), image GC after fetch, and image
      GC unused image / free RAM constraints.
      
      Code in JSnavigator.c updated to obey new "act more like Navigator"
      option (see above). Currently declares itself as version 3.0.
      
      Resources for all builds are up to date. All links in default hotlist
      verified and corrected where necessary, with several new links added.
      
      This is Release v2.07. Not tested very much, sorry; YMMV.
      43e7781f
  10. 23 Sep, 1998 1 commit
    • Andrew Hodgkinson's avatar
      Another intermediate check-in, resources may not be up to date; items most... · d78a1df8
      Andrew Hodgkinson authored
      Another intermediate check-in, resources may not be up to date; items most likely to be buildable are PhoenixJ and BrowseD. Done because I'm about to make some rather dodgy changes to code otherwise unchanged since the Customer browser and I may well have to back them out...
      
      In Handlers.c now set the HFlags_HasBeenVisited bit of a token at the point
      it is first clicked on. Means the link returns to a "visited" colour after
      the highlight flash immediately. This will persist for as long as the browser
      window is kept open on that page, though if the URL doesn't end up making it
      into the history for whatever reason it would "unhighlight" on reload; fair
      enough, really. The highlight is window-local, so there are no redraw worries
      for other open windows with links to the same URL (though other same-URL
      links on the same page aren't updated either).
      
      All forms submissions force a reload (principally for eudoramail.com, but
      many other sites have similar requirements).
      
      !MkClean and !MkClnAll didn't correctly call the utility to strip Makefile
      dependencies. Fixed.
      
      On fetch closedown, fetchpage_preprocess_token could be called on a token
      which had already been run through the preprocessor. Now checks the flags
      word before proceeding.
      
      Image RAM cache and garbage collection system implemented - see new Choices
      file entries CollectAfter, FreeRAMLimit and UnusedImageLimit to get an
      overview. This contains groundwork for JavaScript image array support.
      
      More JavaScript support improvements. Any one window object will know its
      parent, top, this, etc.; frames array working except for a frameset created
      via. multiple documents; opener for something created with window.open is
      currently not set and don't know why (property is being created, pointer to
      valid object is held, but JS engine returns 'null'. Ho hum) - JSChain won't
      work yet, then.
      d78a1df8
  11. 07 Sep, 1998 1 commit
    • Andrew Hodgkinson's avatar
      Everyone else seems to be checking lots of stuff in lately, so I've decided to... · 25b4a552
      Andrew Hodgkinson authored
      Everyone else seems to be checking lots of stuff in lately, so I've decided to join in. This is an intermediate check-in and so not all resources etc. will be up to date. You should be able to make Phoenix and a debug build out of it. As a reminder, to make a JavaScript build:
      
       * Build JSLib and NSPRLib. Recommend you leave -DUSEMEMLIB in there (as
         used by default) so you can watch it leak into a dynamic area... :-)
         If you do this, you'll need to build MemLib too, of course. If you
         do NOT use MemLib, *undefine JS_USING_MEMLIB in Main.c*!
       * Run !MkClean. This now strips dynamic dependencies from the MakeFile
         automatically, to save you having to do it yourself.
       * Run one of the TaskObey files with the "J" suffix, e.g. !DeskBrwsJ -
         this uses the same .o directory for object files and exports to the
         same position in the Targets directory as the non-JavaScript build,
         but it does produce a unique binary in 'abs' and symbols table in
         'syms'.
       * Sourcing an appropriate !Run (with increased WimpSlot value), !Boot
         and About resource is done automatically.
       * Some, but not all of the !xxxD (debug) TaskObey files will make
         JavaScript versions in passing - check the JSUFFIX value on the Make
         command line parameters in the file.
      
      This'll only work on RISC OS 3.1 due to the use of MemLib.
      
      Here's the change list:
      
      Included MNG icons in sprites files; added Sprites23 for some builds.
      Added in ANT URL file icon (b28) derived from URI file icon, because
      the Save dialogue can need it.
      
      No, you do *not* need to define the same keyboard shortcuts in each
      frame since the ancestor keeps the input focus and we've basically
      dropped non-nested Wimp support. Maintaining no less than 4 lists of
      identical shortcuts was a pain. Some Res files now only have the
      lists in the main browser window and button bar objects (these two
      are both required still).
      
      Ursula build Markers button arrangement changed from 1x3 horizontal to
      2x2 tilted, as in Phoenix, by popular demand.
      
      Couple of hotlist bugs fixed; dragging an item and deleteing it with
      Ctrl+X didn't terminate the drag, and deleteting an item underneath a
      menu opened for it didn't close the menu.
      
      'SendReferer' option added to all Choices files, all set to 'always'.
      Put just beneath 'Clone' as it refers to header items, though really,
      both Clone and SendReferer should probably be in the "Fetch controls"
      section rather than "Multiuser environments and proxying"! Front-end
      control of this is available.
      
      In image_export_original, save_save_source, save_transfer_source and
      save_save_object, flex_set_budge(0) was called to lock the heap but the
      return value wasn't stored. flex_set_budge(1) was then used to unlock
      the heap. All calls now remember and restore the old value, which is
      both safer in case one calls another and allows the flex_set_budge
      call in Main.c to have an application-wide meaning, as intended.
      
      Some restructuring to the data load and RAM transfer sections of
      Protocols.c; remote hotlist builds wouldn't allow files to be loaded
      to browser windows before, and can now drop URL, URI or text files to
      the Open URL dialogue.
      
      New option "MinimumFontSize", lets the 'size' attribute of the 'font'
      element be overridden. Default value is 1, to allow the full range of
      values for the attribute. Setting to 7, for example, would give font
      size 7 text at all times. Another new option, "ToggleOnXOnly", to
      make Toggle Size only extend the window vertically (with Ctrl then
      being used to toggle to genuine full size, rather than vice versa).
      All Choices files updated to hold both of these options; only the
      first has front-end control available (see debug build Res file).
      
      JavaScript Document object exists; frames array etc. working. Can now
      just about use "http://www.acorn.com/~ahodgkin/jschain/" but it does
      abort after a bit - problems with frames again, I suspect. Is is pretty
      slow, too. Can now press Escape to terminate a script.
      
      Main.c erroneously referred to Controls file entry "StopWebServe" as
      "StopWebProxy". Fixed.
      
      Keyboard shortcuts to raise SaveFile are now possible in a general sense;
      the code before was in the ToBeShown handler and just checked for a parent
      component of -1. It then assumed "save frame HTML source". Now there's the
      savefile_raise_from_shortcut function, which together with the seven new
      event codes in SaveFile.h allows saving of HTML source and frame location,
      export of links, images, backgrounds and the page as text or draw, to all
      be invoked by keyboard shortcuts. Some Res files have some of these defined.
      
      In reformat_check_height, the first check to see if setpara should be set
      references a field in tpLast without checking if it is NULL. Whilst the
      'line > 0' check should mean that tpLast wasn't NULL anyway, a direct
      call to the function from outside of the reformatter might have tripped
      up on this - the check for tpLast != NULL is now made.
      
      Adjust-click on close icon in window showing file: URL attempts to open
      the parent Filer window.
      
      Reformatter used to try and find a selectable token if keyboard control
      was enabled in a really stupid place - could make reformatting become
      very slow if no selectables were present, especially if the page had a
      few tables on it. Preprocessor now does this (since it goes through all
      of the tokens anyway), the reformatter just doing a last check to ensure
      no frames have obscured the selectable and if so, it tries to move it.
      Done in the reformatter as generating a line array implies the data really
      is visible.
      
      Ctrl+Tab URL completion now builds a full list of matches from the hotlist
      and history and can cycle through them (Ctrl+Shift+Tab stepping backwards).
      
      Will give a real error rather than just "Data Abort" if it goes wrong
      now. Someone somewhere is setting bit 30 of the error which confused
      the replacement signal handler. Flag bits are now masked off (as they
      should've been to start with).
      25b4a552
  12. 23 Jul, 1998 1 commit
    • Stewart Brodie's avatar
      Added capability to send Referer headers, together with new options to allow... · d0afdd82
      Stewart Brodie authored
      Added capability to send Referer headers, together with new options to allow this to be sent: a) Always, b) Never, c) when the URL referred to is an http URL.  Default is c.  There is no frontend editing capability for this option.  This addition means that various counters and sites that rely on referer to indicate a resource upon which an operation is to be carried out will now work (eg. rating a web site on Geocities).
      d0afdd82
  13. 09 Jul, 1998 1 commit
    • Andrew Hodgkinson's avatar
      Check-in of Browse v2.06; using very small log file to try and avoid · ddadb4f5
      Andrew Hodgkinson authored
      CVS crashing. Some of the Resources may well be out of date due to CVS
      locks being in place after earlier server-end core dumps, which I can't
      remove myself.
      
      I'll try and check one file in at the end with the full change log so
      people know what's happened (it's reached about 16K...) - I'll make
      that the TaskObey file '!All' in the top level directory. So for the
      full log, look for the changes on this file.
      ddadb4f5
  14. 16 Apr, 1998 1 commit
    • Andrew Hodgkinson's avatar
      All !Run[D], Choices, Messages, Controls and Res files are up to date. · c55f6452
      Andrew Hodgkinson authored
      RefoKeep and RefoHold options added to, respectively, try and maintain
      the line at the top of the visible area when reformatting, and not shrink
      the vertical extent at the start of a reformat to try and avoid flicker
      to the top of the page and back down again when RefoKeep is on. Choices
      front-end implemented, which also allows RefoWait and RefoTime to be set.
      Unfortunately for various reasons this doesn't help the page jumping when
      unsized images come in (but RefoHold can improve matters...) - roll on
      the image history.
      
      DragToScroll and NoScrollBars options added for frames; included new
      pointer type, Mouse_Shape_DTS, so relevant Controls file entries done
      and Sprites[22] files updated as required. Noticed some builds have
      a low-res ptr_link with a mask - mask removed.
      
      Named anchor following fixed up somewhat - anchors near the bottom of
      the page shouldn't be displayed, and then pulled down when the fetcher
      releases null polls and ensures the y extent is correct (this through
      implementing the min_height field in the browser_data structure).
      
      RefoHang was never implemented and there seems little point to it now,
      so the entry for it has been removed from the global choices structure
      and all Choices files.
      
      Markers menus should work properly now (in last check-in they would not
      update correctly if Adjust was used on the entries).
      
      URI handler usage now a lot more sensible, with configuration of how the
      browser uses the module from both a Utils menu submenu (sic) and the
      Choices dialogue.
      
      Slightly dodgy 'hang around waiting for user input' stuff for the Cookies
      dialogue box: All fetches are suspended; the fetcher remembers some info
      about its state at the time the cookie came in, and restores it later; it
      will only do this for one fetch at a time. It's necessary to single-thread
      the fetcher at this point anyway, since other fetches may have a
      dependency on the cookie that is hanging in mid-air at that point. As part
      of this, some of the fetcher code has been split out into separate
      functions (to try and 'black box' the code a bit). Anyway, Cookie Query
      dialogue box now implemented with appropriate Choices file entry and
      UI work in the Choices dialogue box.
      
      Phoenix build Choices rearranged. Can now choose when the image history
      is saved from the front end. Added also MSIE 4-style table option menu
      for JPEG support (OS only, OS if it can handle it, internal only).
      
      Should be a bit faster at loading the history - though 95% of the time
      is spent in SWI URL_ParseURL. URL descriptions are stored more
      efficiently as part of this - one malloc block instead of several
      small blocks. The minimum block size for malloc blocks typically leads
      to a significantly smaller startup wimpslot depending on the visit
      history size.
      
      Nasty bug in image system fixed. If an image size came in and a reformat
      was to take place, the line the image lies in is found and the reformat
      progresses from there. Unforunately, this didn't check to see if the
      token can't be found in the line list, so it'd reformat from the top
      of the page...! This would happen if, for example, an image halfway down
      the page came in whilst a reformat for an image higher up had just begun.
      
      In Choices.c, made choices_set_timetype_field, choices_set_uri_field,
      choices_set_plugin_field, choices_set_cookie_field, and
      choices_set_jpeg_field static (so they're not declared in Choices.h now).
      
      Two memory leaks plugged in URL comparison routines in URLutils.c
      (calling free() url_description instead of urlutils_free_descripton()).
      
      Client pull reload handler was setting the reload flag if reloading
      the same page, but forgetting to turn on reload_lock so
      fetchpage_postprocessed was clearing the reload state... Similarly,
      Ctrl+Shift+SELECT-Click on a link when the Controls file 'UseSmall'
      entry is 'no' would not have reloaded as it should. Both fixed.
      
      Frames shouldn't be so keen on acquiring horizontal scroll bars and never
      letting them go when their width is decreased now. Frames set up for
      'scrolling="yes"' will not start with no scroll bars and then gain them
      shortly afterwards, causing flicker and two reformats - they'll start
      with, and continue to hold, both scroll bars.
      
      Pointer shouldn't flicker when over a frame border whilst other fetches
      are progressing now.
      c55f6452
  15. 26 Mar, 1998 1 commit
    • Andrew Hodgkinson's avatar
      This is NOT a 'final' version of anything in particular. I'm checking it in as... · e0b9653a
      Andrew Hodgkinson authored
      This is NOT a 'final' version of anything in particular. I'm checking it in as I'm about to start playing around with low level window handling
      
      (as part of the thing mentioned at the bottom of this log) - this could
      screw things up quite badly if it goes wrong! =8*P
      
      Consequently, I advise you not to check this out over your working sources,
      and preferably not to check this out at all.
      
      Markers system - events defined in MiscEvents.h will make Browse remember
      where it is on the page. This position can be jumped back to later.
      Some builds will have defined keyboard shortcuts Ctrl+Shift+F5 through
      F8 to set a marker, and Ctrl+F5 through F8 to jump to a marker.
      
      The front-end for the above now has gadgets 0x80 upwards on the Toolbar or
      a set of menus (see Menus.h). Noticed an omission in copy_toolaction_info()
      (didn't copy the gadget state) in passing; fixed.
      
      browser_top_line() now works properly, as part of the above, but it'll be
      slower than before. If flagged to only find a complete line, it'll do just
      that, but whereas before this would require any tables that it looked
      inside to be wholly visible, tables can now be partially visible and have
      lines inside that are fully visible. This should help the Find function
      too. There is a new call, browser_top_line_offset, which works as
      browser_top_line but also returns a vertical scroll offset in the found
      line (used for more accurate marker position). browser_bottom_line[_r]
      turn out to never be used, even by the keyboard control routines, so they
      have been removed from Browser.c (rather than spend a lot of time and
      effort fixing them).
      
      browser_show_token erroneously subtracted 1 from a particular coordinate
      when calculating the y scroll position, which could lead to single pixel
      page creep using the markers system. Corrected.
      
      The View Resources button (see Toolbars.h) has been finally implemented,
      insofar as it fetches the resources file to the current browser page (or
      to a new window if Adjust is used, Controls file settings permitting).
      
      menus_toggle_bars did not take account of the toolbar lower window border
      edge correctly. It does now.
      
      The reformatter has a prototype system to keep the vertical page position
      when reformatting. This was coded about 5 minutes ago, and is not likely
      to be reliable...
      e0b9653a
  16. 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
  17. 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
  18. 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
  19. 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
  20. 05 Jan, 1998 1 commit
  21. 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
  22. 02 Dec, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Implemented Message_PlugIn_ReshapeRequest, Message_PlugIn_Status and · 960e879c
      Andrew Hodgkinson authored
      Message_PlugIn_Busy. Plug-in code more robust when given invalid
      browser instance handles by the plug-in.
      
      Line spacing is now calculated on the basis of the normal style base serif
      font, with all other fonts being forced into that line height. This does
      mean that an unusually tall (say) sans serif font may get clipped. It
      appears to be the only way to get around wildly different baseline
      depths returned from the font metrics - you can't work out line spacing
      based on each different font style; the line spacing will vary.
      
      Table heighting (as opposed to widthing...) improved considerably; rowspan
      can no longer cause very tall cells in odd places. Having trouble getting
      rid of the single pixel breaks between vertically adjacent cells, though
      I've not tried too hard. Widthing, though, seems fairly badly broken at
      present... :-/
      
      Set/clear of page_is_text flag made more robust (it looked as though there
      was the potential for this to get stuck in a set state, though I've never
      see the front-end behave in a manner which indicates this is the case).
      The reformatter will now decrease leading if this flag is set (plain text
      pages look daft with a line spacing that is OK for 'rich' text pages).
      No reformatting is done if the page width changes by dragging on the
      resize icon, though toggle size / full screen will still reformat even
      if the contents are only text (browser needs to sort out various width
      flags at this point).
      
      Cut down on excessive redrawing when reformatting due to a change in
      window dimensions is not done. If display_width hasn't changed, then no
      redraw is needed. If this causes redraw problems, then whatever is
      changing display_width needs investigating. It shouldn't be kludged
      (basically) by forcing a redraw instead of a reformat.
      
      TT/PRE/etc. text can now have a non-100% aspect ratio. 80-90% looks
      best (ArcWeb, for example, uses 86%). New option 'TTAspect' in
      the Choices files.
      
      Debug builds link to a non-debug Unicode library now; stops stderr
      being dumped to the bottom left of the screen if you've not redirected
      it in the Run file.
      
      RISC OS 3.1 seems to need more initial WimpSlot than later OS versions.
      The 64 deep nested table set gives a 'No stack for trap handler' error
      (which it really means in this case!) without 800K, even though 3.71
      is happy with just 640K. So, the !Run file checks if Boot$OSVersion
      is exactly 300, 310 or 311, and sets the WimpSlot accordingly.
      
      !Run[D] files now require latest fetcher module versions (URL 0.21,
      File 0.31, HTTP 0.58).
      960e879c
  23. 28 Nov, 1997 1 commit
  24. 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
  25. 20 Nov, 1997 1 commit
    • 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
  26. 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
  27. 05 Nov, 1997 1 commit
    • Kevin Bracey's avatar
      Added system font option to choices. · 702eb5d8
      Kevin Bracey authored
      Stopped UNIFONT forcing system font use and added calls to Font_WideFormat.
      Made sure the system font option is read before fm_init is called!
      
      User agent string now set if Netscape faking is disabled (format used is
      "Acorn Browse/1.26 (RISC OS 3.71)".
      702eb5d8
  28. 30 Oct, 1997 2 commits
    • 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
    • Kevin Bracey's avatar
      b8ed8c22
  29. 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
  30. 22 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      fetch_get_raw_data will notice if up->fetching is zero and return a 'finished'... · 3a920561
      Andrew Hodgkinson authored
      fetch_get_raw_data will notice if up->fetching is zero and return a 'finished' status rather than trying to continue reading data for the fetch. Fetches should never fall through that far but at least it will cope if they do.
      
      3D table borders are now supported. 2D borders are used if the
      inter-cell spacing is too small to fit the borders in (display resolution
      dependent) - the external table border is 2D if the internal borders are,
      else 3D. For cellspacing of 0, internal table borders must plot over the
      outer edge of pixels inside the cell; for all greater spacings, the
      borders take up all or part of the gap between them. The external border
      will always fit around the outside of the cells, including the
      cellspacing value in the gap between the outer cells and the border.
      
      Anti-alias colour for placeholder ALT text was incorrect. Fixed.
      
      I'd changed 'point' to 'points' in some of the Font Choices dialogues;
      now changed back to 'point'.
      
      The routine to find out how large an otherwise unsized object or image
      placeholder based on its ALT text has been centralised in Reformat.c,
      so that the image and object routines can both access it without
      code duplication (this means non-image objects will now have the correct
      size if they contain ALT text, rather than assuming a standard default
      size as before). ALT text in images that were also objects was never
      plotted either, though the placeholder size would have been correct.
      This has been fixed.
      3a920561
  31. 20 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Weird - the line registering the ENavigateToBeShown event disappeared from · 211492c2
      Andrew Hodgkinson authored
      Main.c, so the last log was incorrect; Navigate menu items wouldn't have
      been greyed out. Probably a(nother?) CVS update screw up on my part; now
      fixed. This sort of thing is happening far too often...
      
      Font manager would crash in system font or if a font face was not found
      in the previous release - that hacky business of returning weird font
      handles when system font is to be used instead ensured a rather less than
      valid array reference on behalf of fm_claim_basic_typefaces.
      
      Added in a few more calls to the 'check the button bar' routines, to
      ensure that things like Stop are greyed/ungreyed when needed.
      
      Cellpadding code could lead to rmarg overlapping lmarg, or the sum
      being greater than dwidth, or something like that (!) in the reformatter.
      Anyway the results were unpleasant; this has been sorted out by range
      checking right and left margins w.r.t. display width in the relevant
      section of the code.
      
      People who specify 'td width = 2000' in tables expecting to get something
      sensible now do, though I was half inclined to leave it alone... I can
      only assume that they don't know about % specification or it didn't
      work in their browser at authorship time, and the huge width served as
      an attempt to get the table to fill the available window width. Anyway,
      the table reformatter spots when the maximum width a cell requires is
      less than half of what it asks for, and ignores the width specifier if
      this is the case.
      211492c2
  32. 17 Oct, 1997 2 commits
  33. 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
  34. 13 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      More reformatter code bugs fixed; this one regarding width of items. Any... · 0cdc76df
      Andrew Hodgkinson authored
      More reformatter code bugs fixed; this one regarding width of items. Any kerned string was overestimated (causing redraw bugs and caret position problems in forms, apart from other minor bits elsewhere) and the default size of a writable icon wasn't especially clever.
      
      Crude Plug-In support; just about manages Java, but can't fetch on
      behalf of Plug-In (for example). Had to change the default file access
      URL construction to be 'file:/' instead of 'file://', or local file
      fetches that reference Java applets won't work. This is in its very
      early stages, and is being checked in mostly so that various Choices
      issues can be worked on.
      0cdc76df
  35. 09 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      !Run[D] files updated for new fetchers and GopherFetcher; protocols list in... · 91cb9e09
      Andrew Hodgkinson authored
      !Run[D] files updated for new fetchers and GopherFetcher; protocols list in Controls updated for Gopher. Debug builds now require 2760K rather than 2560K. Font$... variables set if not already, in anticipation of font
      
      Choices work.
      
      Additional bits in Choices section of Res file tidied and some name
      changes (e.g. Netscape -> Navigator(TM)). Frames support option added
      to Choices.
      
      Grouped 'support_frames' under the Fetch Controls section and added
      support_object in Global.h; appropriate entries placed in the Choices
      files, and are read at startup. At present, though, only the frames
      support flag is implemented.
      
      For some reason, Menu was the button to use on history popups if you
      wanted to show URLs instead of descriptions (or vice versa, depending
      on Choices settings). Now, Select and Menu will show the Choices
      defined setting, and Adjust will show the opposite.
      
      History menus are built backwards, so local histories have the most
      recently visited pages at the top. Global history has still no real
      order to it, but this may be arranged later.
      
      Customer name changed to Customer by request.
      
      Customer browser now gets its own resources (SYSTEM=Customer), but
      otherwise is unchanged, with the Ursula build now giving the
      'spinning acorn' with a Bookworm-style toolbar. This is used for the
      Desktop !Browse build.
      
      !Sprites[22] files updated to include GIF, JPEG and PNG sprites;
      !Run[D] files and !Boot files set appropriate File$Type_xxx variables.
      Sprites in all sprites files have been checked for unnecessary palettes,
      which have been removed where present.
      91cb9e09
  36. 05 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Big steps forward in vertical white space handling as a result of improvements... · 5db9badc
      Andrew Hodgkinson authored
      Big steps forward in vertical white space handling as a result of improvements in HTMLLib in this area ( -> all versions now 1.22 beta-2).
      
      As a result, the 'last_space' field in browser_data struct has been
      removed. Note that this relies quite heavily on setting of the PCDATA
      bit in the 'style' field of an HStream and the automatic collapsing
      of (for example) multiple P tags inside HTMLLib.
      
      Trace.c improved to recognise various bits in the 'style' field of an
      HStream structure.
      
      Phoenix defaults altered to a more 'standard' set of choices; Trinity
      as the serif font, with a slightly larger default font size. This is
      because there's a good chance it might get released to a wider audience
      than Acorn internal (though the animation and icon bar sprites will
      have to change before then...).
      
      MiscDefs updated for new SWI numbers in HTTP module; !Run[D] files thus
      updated to require HTTP 0.42 or later. At this point, all earlier
      modules are not backwards compatible in terms of direct calls to the
      HTTP module, though this only affects cookies_process_cookie at present.
      At the same time, checks for System$Path, InetDBase$Path, and setting
      of Inet$MimeMappings if not already defined have been added to the Run
      files along with RMEnsures of Resolver and MimeMap.
      
      Object and PlugIn c/h pairs created to handle OBJECT, EMBED and APPLET,
      and the RISC OS Plug-In interface respectively. Not part of the build
      process yet. Addition of 'odata' field in browser_data struct and
      definition of chunk CK_OBJB for memory_set_chunk_size() are in support
      of this.
      5db9badc
  37. 01 Oct, 1997 1 commit
  38. 29 Sep, 1997 1 commit