1. 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
  2. 27 Oct, 1997 1 commit
  3. 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 imag...
      3a920561
  4. 17 Oct, 1997 1 commit
  5. 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
  6. 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 t...
      91cb9e09
  7. 08 Oct, 1997 1 commit
    • Kevin Bracey's avatar
      Increased WimpSlot of debug !Browse by 200K. · 9a80a12d
      Kevin Bracey authored
      FRAMES_SUPPORT #define removed.
      
      Optimised fm_token_font_info().
      
      Added support for LI tokens with text (for ordered lists).
      
      Now outdents bullets from indent value, rather than indenting bullets by
      the indent value and further indenting text. May need to look at default
      Choices files because of this.
      
      Limited the margin to always be non-negative.
      9a80a12d
  8. 06 Oct, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Calling HtmlEndParse at the end of html_get_next_token and setting up->context... · 2e86b9d4
      Andrew Hodgkinson authored
      Calling HtmlEndParse at the end of html_get_next_token and setting up->context to NULL was wrong; fetch_fetcher would end up recalling html_get_next_token later which would then call HtmlParse even though the document parse had just finished! The HtmlEndParse call has now been moved to fetch_stop.
      
      Altered reformatter to claim fonts inside a browser, rather than
      claiming them for nothing and losing them afterwards.
      
      Got rid of TAG == TABLE and ISBODY tests, replacing with tagno == TAG_TABLE.
      Removed all references to TD, TH, TR and TABLE in the style word.
      2e86b9d4
  9. 03 Oct, 1997 2 commits
    • Andrew Hodgkinson's avatar
      Fixed problem that affected some internal URLs, most noticably loading... · b99762c6
      Andrew Hodgkinson authored
      Fixed problem that affected some internal URLs, most noticably loading external images, where up->fetching was set to zero when it should have been left at 1 (see fetch shutdown code at about line 1670 in FetchHTML.c).
      
      *This* is the source that will be sent to PSI, not the previous release as
      stated in the log, though Customer were sent a browser based on this
      previous code.
      b99762c6
    • Andrew Hodgkinson's avatar
      Version in Messages taken to 1.22 (03 Oct). · 4d616ea4
      Andrew Hodgkinson authored
      Updated Res files in appropriate builds to hold various (similar) Choices
      designs.
      
      Choices related menus were flagged as Shared, but none of the dialogues
      (including ColourDBox) were - potential future problems, though shouldn't
      cause any leaks at present. This has been sorted out anyway.
      
      Encoding function encoding_init no longer returns an error from
      toolbox_create_object, so the Encoding menu and all those attached
      to it do not have to be present (e.g. the Customer build).
      
      SUB, SUP, STRIKE and U supported. U underlines the baseline of the body text
      font, whilst STRIKE will go through roughly the middle of the lower case
      chars even if the font is SUP or SUB. Note that Navigator appears to shift
      the underline point for SUB and SUP; it may be necessary to copy this
      behaviour, but testing on real sites must proceed before that. There could
      also be a problem with the automatic lowering of font size, which Navigator
      doesn't do, so any FONT SIZE = -n commands could make it too small. Again,
      this needs testing on real sites.
      
      'http://' is added to URLs with no protocol specified, unless they start with
      'ftp.', in which case the new behaviour is to add 'ftp://'.
      
      Choices code altered to do less error checking on components! They should be
      able to be missing without raising errors. Referencing of the subwindow
      array changed from *(subwindows + number) to subwindows[number].
      
      Made trace_tag_name code look pretty...
      
      reformat_useless_token now checks tagno is non-zero.
      
      User Agent string setting now done through URL_GetURL, on a per-session
      basis.
      
      Ellipsis character removed from all Messages files, replaced with '...'.
      There's little difference between the two in an outline font, and in System
      font the latter looks much better. Smart quotes left in, as they look
      better in all cases.
      4d616ea4
  10. 26 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Added support for HTMLLib HttpEndParse call. · 8c9a9091
      Andrew Hodgkinson authored
      Text items with no VALUE specified in the HTML were not cleared on
      hitting a Reset button as the text field of the token is NULL; fixed.
      SELECT lists with no default selection item were not being changed
      on hitting a Reset button; fixed. In radio groups with no default
      selection specified, no item will be selected. This goes against
      the HTML 2 spec but allows broken Navigator-esque forms behaviour.
      In consequence, radios can be deselected by clicking on the same
      one twice. I'd fixed the flickering experienced when doing this
      recently, but that, now, is irrelevant, since the state of a radio
      must always change.
      
      Reformatter's new 'find width of a SELECT field' didn't account for
      the width of <none> and <many> items, and now does (particularly
      important for broken items with no OPTION contents).
      
      Under certain circumstances, illegally named targets would open in the
      ancestor rather than a new window - a deliberate decision in the code,
      but now reversed due to a test suite failure; they'll open in a new
      window instead.
      
      Altered the left hand indent handling for lists so that headings and
      body text follow the Navigator 48 pixel indent and the bullet point
      items drop to the left of the left hand margin, rather than sitting
      on the margin with the text indented to the right.
      
      Tightened up the hotlist_load_directory checking of URLs, so that
      only those with '://' in - i.e. look fully specified - are accepted.
      HTML files are loaded into a new directory now.
      
      Items without a descriptive title in hotlist_new_url will have the URL
      substituted in instead. White space before and after descriptions and
      after URLs is stripped. Directories with zero length names or null
      strings (after white space is stripped) will still be created, with a
      generic name (see Messages, token 'HotlistUntitled').
      8c9a9091
  11. 22 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Now working on source merged with Kevin Bracey's internationalisation support.... · f61afadd
      Andrew Hodgkinson authored
      Now working on source merged with Kevin Bracey's internationalisation support. UNIFONT is undefined in the Make File for now. All Res and
      
      Choices files updated appropriately.
      
      Having sorted out the old Choices and Messages to form Choices, Controls
      and Messages, this build has had the same cleaning up done internally.
      This includes greater consistency in naming schemes and the removal of
      the inconsitent choices items - e.g. Choices file entries saying 'delay
      images' and 'plain backgrounds' where internally all the flags say 'show
      images' and 'show backgrounds'. ChoiceDefs.h and CtrlDefs.h added to
      clarify the meaning of some fields, though usage of these is not 100%
      in the source (there are cases where parameters are passed through to
      functions as ints, and those functions still check these against hard
      coded values rather than the #define stuff).
      
      Fetcher status return bits (connected, sent request, etc.) now reflected
      in status bar. Progress during fetchs to files are reported by %, where
      the size of th...
      f61afadd
  12. 18 Sep, 1997 2 commits
    • Kevin Bracey's avatar
      Encoding support added: if UNIFONT is defined then the browser will attempt to... · 9dba8115
      Kevin Bracey authored
      Encoding support added: if UNIFONT is defined then the browser will attempt to use the system font to render Unicode characters (new
      
      International module required). If not defined, the browser will just
      handle Acorn Latin-1 characters, but HTMLLib will convert other encodings
      into Latin-1. Must keep the UNIFONT define in sync with HTMLLib (if
      defined HTMLLib outputs UTF-8, otherwise Acorn Latin-1).
      
      Still needed:
      
      Reverse encoding (converting form input etc back into the server's
      character set).
      Reparse when encoding changes.
      Setting of charset from an attribute on the <A> tag.
      9dba8115
    • Andrew Hodgkinson's avatar
      Support for ANT URL broadcast message added. · 5a494095
      Andrew Hodgkinson authored
      Image deletion routines rewritten; nasty animated GIF bug now gone
      (it kept trying to update the cross-referenced image in the browser that
      no longer existed, and I've no idea how animated GIFs ever managed to *not*
      blow up if a cross referencing browser was shut down; and I've tested
      this...). There are now as many image structures as there are total images
      in the visible browsers, and no more; cross referenced images in the
      to-be-deleted browser have their ownership moved to the cross
      referencer before the cross referencee is wiped, with any required fetches
      being transferred with them.
      
      Reformatter sped up a bit by getting rid of strlen on the main text field
      of tokens in all places bar one, where it is called extremely rarely. This
      means direct app-to-app transfer of, say, a 359K text file to the browser
      won't run like a drain as it tries to do strlen on a 359K string over and
      over again! Most of the time the performance benefits won't really be
      noticable, ...
      5a494095
  13. 14 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Got the deferred reformatter working properly. It doesn't do that 'OK, the... · 5e7b0a62
      Andrew Hodgkinson authored
      Got the deferred reformatter working properly. It doesn't do that 'OK, the page is fetched and reformatted, but just to annoy you, I'm going to wait 5 seconds and then suddenly reformat the whole thing again' trick anymore. The fetcher was calling the reformatter in a delayed form even when the reformatter was already running, so it would carry on past the reformat point or from below what had become and invalidated line, and some time later, get back to the delayed reformat. Now, reformatting is only delayed by the fetcher when the reformatter is not running. In practice this means body text reformats as it fetches, but large tables will show delayed reformatting - which was exactly the intended behaviour of the feature when it was originally thought of.
      
      fetch_token_data_address removed; it was only needed in two places,
      both of which already knew when to read tp->text and when to ignore
      it. Its functionality is duplicated in an 'if' involving reformat_istext,
      anyway.
      
      !Run[D] files taken back to requiring HTTP 0.33, since 0.36 introduces
      many weird and wonderful problems.
      
      Typo in Messages files, 'All current images (sic.) fetches finished' -
      'images' is now 'image'.
      
      Shift+Click saving - you could save to an application. No problem. But
      the equivalent (just clicking on a link that led to an unknown datatype
      and getting the save dialogue that way) didn't work. It does now.
      Another problem was saving to an application that didn't support the
      datatype - oops, the dialogue would close but the fetch would sit there
      waiting to be told where to save. It doesn't close now (as expected).
      
      NB, doing several simultaneous fetches to a text editor may have problems
      as the editors are too clever for their own good. Despite receiving
      DataLoad messages for <Wimp$Scrap> for files of different types, sizes
      and datestamps, the editors can decide it's still the same file and:
      
      Zap      - Hats off, it gets it right, almost. You do get warned 'Multiple
                 copies - one on disc is newer' as everything after the first
                 text loads, but they do load, and in separate windows.
      StrongED - Does not load the subsequent files, so the browser gives 'Data
                 transfer failed' errors and opens up Scrap. Turning off 'Don't
                 load same file twice' fixes it - each file is loaded in a new
                 window with no warnings. At least in the first case, you don't
                 lose data, since the files are kept in Scrap.
      Edit     - Each time it loads the file, it *replaces* the other one in
                 memory, using the same window for each. This is the worst
                 behaviour as it isn't configurable (well, I don't know of a way
                 to change it...) and results in data loss as successive texts
                 get trounced by the new data.
      
      I can't see how I can fix this in the browser as it's basically silly
      behaviour on behalf of the editors. Other applications which don't try
      to work out if it's a new file or not are fine!
      
      When conducting image fetches, proxying is allowed unless reloading.
      When conducting page fetches, proxying was never allowed - so web cache
      stuff would have been, er, interesting. It now sets X-NoProxy: in the
      request header when reloading, but otherwise this is not included.
      
      AnimSpeed is, at last, independent of browser poll speed. They used to
      be tied together. Guess how the animation code used to work ;-)
      
      'Can't handle this datatype' - deprecated now that save dialogues can be
      popped up. The 'can't save objects in full screen mode' error would never
      be shown due to a bug, anyway; this now replaces 'can't handle', which
      has been removed from all Messages files.
      
      RefoWait, RefoHang and RefoTime moved from Controls back to Choices.
      
      Trying to get rid of strlen in the reformatter - it can get very slow
      (e.g. strlen of 8K chunks of text, or if a 330K text file is transferred
      from a text editor straight to the browser, strlen of a 330K string...).
      There will be unfinished bits of code in the reformatter that may seem
      unnecessary - they've just not been plugged in yet (since they don't
      actually work). Don't remove them!
      5e7b0a62
  14. 12 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      As warned in the last log, pretty much all event codes and component IDs have... · e6b771f8
      Andrew Hodgkinson authored
      As warned in the last log, pretty much all event codes and component IDs have now changed along with many of the names, to provide a consistent name and numberspace for events and components. This also minimises number clashes (e.g. as was, the Save File origin when opened from a
      
      Hotlist menu with an already-used component ID). To get full details on
      this, please carefully read through TBEvents.h.
      
      Res files, Sprites files and Messages files have been updated again both
      due to the above, and routine additions (e.g. message support for a few
      Hotlist bits and pieces). !Run[D] files updated for FTP 0.11 and
      HTTP 0.36.
      
      In the Makefile, the Customer objects list was missing Save - must have
      moved something when I should've copied it, when adding in SaveFile or
      SaveObject in all probability. Now fixed. Couple of other bits and bobs
      fixed in the build environment (e.g. stuff saying !Argo instead of
      !Customer). Oh, and I've altered the MakeFile copy options again to the
      best compromise I can come up with. Newer is turned on for everything
      except !Run[D] and !RunImage, since both of those change between debug
      builds - otherwise if you'd built debug and non-debug versions, it was
      not possible to switch between them - one version would have the newer
      timestamp and thus never get overwritten.
      
      The default hotlist has had a few items added - that'll be about the end
      of it, I think; there's more than enough stuff in there now.
      
      Saving of the hotlist from the document menu and of URI files,
      directories and selections from the hotlist menu tree is now implemented
      - this new save system rocks... Oh, and you can save all images and
      backgrounds as sprites.
      
      Saving of items with Shift+Click to other applications directly now
      works, and is robust. Unique Scrap filenames are used, with data load
      bounces (e.g. if some pra - er, person quits the app they're sending
      to) working correctly - that is, give an error, keep the file, rename
      it to something safe, and open the directory it lies in. As opposed
      to normal app-to-app bounces, where the scrap file is deleted (see
      PRM 3-254). This means you can now look at README files in FTP
      sites, say, without using a disc intermediate. Or you can send pictures
      straight to ChangeFSI, fetch HTML links into editors, and so-on, and
      so-on - it's all very funky. Known problems include the ambiguous
      'invalid component ID' instead of 'file open' for *normal* (straight to
      disc) shift+click saves, and I think I'll introduce a unique name
      guarantee of some sort to stop 'file open' in the first place. Odd
      that the really tricky part (app-to-app) should be least likely to
      suffer from this!
      e6b771f8
  15. 09 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      First a minor warning - the various Res files are out of sync in this build. · 7656a1b3
      Andrew Hodgkinson authored
      Only the Browse resources are currently valid.
      
      Added Utils.Icons - has a few archives inside containing the resources
      (well, some of them) used to build various UI sprites for various builds.
      Archived because these are unlikely to change much, and putting them on
      CVS was a move to, well, archive the stuff...
      
      SaveDBox objects vanquished and requirements in !Run[D] files removed. The
      data save code fits much more neatly in amongst the data load protocol
      stuff now (with the slight exception of having to split the SaveObject
      source into SaveObject and SaveFile - the former handles multiple persistent
      dialogues for Shift+Click on links and the like, the latter handles 'one at
      a time' transient dialogues for save source and similar). Export Link is now
      supported, too, and writes a 'proper' version URI file. You'll find that
      double-clicking on old URI files will work as the URI handler picks them up,
      whilst new version ones don't; how...
      7656a1b3
  16. 03 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      This log message covers changes from the version before last up until now · 5d3733cf
      Andrew Hodgkinson authored
      - i.e. it includes the changes that were part of the intermediate check-in
      done yesterday (02/09/97).
      
      New function to go from URL to pathname in urlutils, also changed return
      values on those functions which alter the given buffer to return nothing,
      rather than the buffer address (which wasn't helpful).
      
      Fixed nasty in the Message_DataLoad code (it thought all loads were
      app to app - oops; can in fact just check your_ref, which is 0 if this
      is a DataOpen or DataLoad direct from the Filer. PRM 3-253).
      
      Implemented Load Images and View Source buttons.
      
      Small fetch window - configurable in Choices (UseSmall) is the use of a
      special 'small' window for fetches. Configurable as if you Shift+Select
      click it'll open one of these, which some people might hate, so you
      can turn the feature off and the fetch will progress in the browser
      window you clicked on, as normal. Default is for this to be on, since
      it matches the behaviour of other browsers. This means all Res files
      have been updated, except for the Customer build, which can't fetch
      external objects as it is a full screen variant.
      
      New pointers for the hotlist autoscroll, including full specification
      of their active point offsets in Controls. This means all Sprites files
      have been updated.
      
      New sprites for HTML and URI files, so all !Sprites and !Sprites22 have
      been updated.
      
      (Suggested by KBracey) You can now drag objects to the toolbars of a window
      to fetch into the ancestor (useful for framesets).
      
      Function windows_close_browser now returns void; it only returned an int as
      it used to be a Toolbox event handler and I obviously forgot to get rid of
      this when I turned it into a general purpose function.
      
      !Run/!RunD/etc. files updated yet again, since the browser now supports
      different application names. Corrected fault where Browse$CookiePath was
      being unset - should've been Browse$CookieFile and Browse$CookieFileFormat.
      420K is no longer enough, so they've all been given 512K for the non-debug
      versions (OK since malloc will fill up any excess allocation before starting
      to extend the slot size itself).
      
      Fixed global history bug - the history would become corrupted whenever
      it exceeded the maximum size specified in Choices.
      
      Fetcher now supports HTTP return code 301 (Moved Permanently). Wrapped in
      #ifndef STRICT_PARSER.
      
      I've started on some general documentation, aside from the overdetailed
      PSI memory information (which needs updating). Once this gets some substance
      to it and achieves a recognisable, maintainable structure, it'll get added
      to CVS - for now, there's no point (you'd have trouble making sense of the
      various unsorted fragments!).
      
      Right. Time to get rid of SaveDBox.
      5d3733cf
  17. 31 Aug, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Created Protocols source file and moved a lot of message handling from... · f3e8124f
      Andrew Hodgkinson authored
      Created Protocols source file and moved a lot of message handling from handle_messages - the latter now serves as a high level distributor to lower level functions in Protocols. Incidentally, URL files (as used by the ANT suite) can be loaded by dragging to the browser in the same way as URI files - Not A Lot Of People Know That, etc.
      
      Merged new hotlist display type Res file to existing resources, added
      support for DataSave message so items can be dragged from the hotlist
      to a specific window (RAM transfer for URI and URL files; ScrapFile for
      HTML and Text but deleted afterwards and there are appropriate guards
      to stop Reload just saying 'not found'; images run through ScrapFile and
      there is no choice but to leave them there and do a conventional fetch).
      
      All !RunD files now give a WimpSlot of 2304K. Some small changes to
      the Argo and Ursula build Res files to make the menu trees more sensible.
      Controls files now take 'file:/' instead of 'file://' in Protocols
      section. Definitions at top of URLutils.c *no...
      f3e8124f
  18. 28 Aug, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Very long log entry alert - but hey, beats 'Bug fixed' (sorry, Richard) ;-) · 532155bd
      Andrew Hodgkinson authored
      Open URL implementation more or less complete, though may undergo UI
      revision at a later date to allow named frames to be targetted. Hope to use
      the ideas in this code as the foundation for other general dialogues.
      
      In token stream dump for TRACE builds, table head items were not indented
      as far as they should have been - this is fixed; and manual toolbar redraw
      routines have been removed. They never worked, were commented out, and
      would never be used in that form anyway.
      
      DragBox source added, but it isn't at all complete and won't work - this is
      an 'in spare time' thing. We need custom drag boxes constrained to windows
      for the hotlist, and unconstrained for frame border resizing... Hey ho.
      
      Ancestor window extents match visible areas if there are frames (no more
      scrolling framesets...!). Frame resizing works whilst new documents fetch
      without pulling the extent down now. However, frame horizontal extents
      never shrink until a reload which is nasty, and this is all due for a
      rewrite. Frames border redrawing routine moved out of Redraw.c and into
      Frames.c. Bug regarding the mouse rectangle and frame border widths
      (rectangle was too large, so you could squash the edges) for edge-drag
      frame resizes fixed.
      
      Window width change reformat tolerance fixed; you could creep the window
      width down or up forever without any reformat, and centred objects would
      move but not be redrawn (thereby giving rise to subsequent redraw errors).
      
      Filetype on objects saved through Shift+Click correct. Save Source dialogue
      recognises if that source is plain text, rather than assuming HTML. A
      browser that fetches a file remembers the old store size it had before the
      save, so even though the data is now ditched, it reports the same amount of
      data fetched afterwards (looked awful when this could, for example,
      suddenly say '0' after a file save). Progress indicator is now fully aware
      of one or many file saves inside a frameset and reports the number of
      saves, a colon, and the cumulative saved data count, instead of reporting
      the sum total of fetched data in all frames, including non-file save stuff
      (note that for just 1 save, '1:' is not shown as a special case for the
      most common condition). A bug related to this, where you could in fact only
      do one fetch per frame*set*, has been corrected (only one fetch allowed per
      frame still, this is unlikely to ever change).
      
      Hotlist support added (D.Brown's source), with various bits of integration
      and modification still in progress there. Note additions to the Messages
      files. On the subject of Messages, the whole mucky business about what
      goes in Messages or Choices (and a few bugs where lookup_choice was used
      instead of lookup_token or vice versa) has been sorted out. Messages
      contains, more or less, just that. Choices contains user configurable
      stuff which generally can't mess things up too badly. A new file, Controls,
      is a Messages file holding the non-user configurable choices, which can
      generally make things go badly wrong if misused. A lot of these are tied
      to the Res file. StrongED users can get these to automatically fold out
      the various sections (EMail me for details). Sorry, but at the time of
      writing, Zap doesn't do folding... =8*P
      
      Two bugs with images. Asking for images to be shown in browser B when
      browser A uses the same ones and was loaded first didn't work correctly,
      and now does (a bit weird - browser A does the fetch and browser B does the
      display...). Second one occurred when the background image was also used on
      the page as a foreground image. This has been fixed by flagging background
      images in the image_info structure, and checking this before cross
      referencing. This bit also allowed the image_restart_fetches API to be
      extended, so that just background or foreground images may be fetched if
      they weren't already and the user asked the browser to show them. Before,
      the whole lot had to be fetched together (so turning on 'display
      backgrounds' will now kick off an image fetch if required, you don't
      need to reload the page anymore).
      
      Makefile copy options tweaked to be 'newer' (so if you're testing with some
      temporary Choices file or something, it won't write over it at the end of
      every export), and REMOTE_HOTLIST flag added for Customer builds - means
      the Hotlist.c functions aren't needed; the old, hotlist-by-file method is
      used. Added support for Customer build (see later), though there were very
      few additions needed in practice.
      
      Table printing fixed - in many ways it wasn't broken, it was image printing
      causing the oddities ever since the global image pool was introduced (this
      is, again, fixed). The 'reformat to fit page' option didn't work as coded
      any more; tables store cell addresses in the HStreams, so you can't then do
      a background reformat in a different browser. Hence, it now has to reformat
      to the page width, print, then put the page back again, all in the actual
      displayed browser. This doesn't feel as slow in use as it perhaps should,
      considering what is going on... Note that a line of a defined fraction (see
      Print.h) of page height will now split over page boundaries, so tall images
      or tall tables don't cause problems now (aside from the obvious problem of
      having the line split over a page at all!). There was a bug in the routine
      to print from a given start point until 'n' pages had been filled, in that
      it always filled 'n + 1' - now fixed. Finally, as part of the printing
      tweaks, a new dialogue exists - PrintStyle - with a similarly named source
      file added to deal with it.
      
      Global history auto save / load done, but only to the Choices file path -
      the whole browser is still strictly single user at present, with all the
      extra work for a multiuser Customer environment yet to be done. This has
      shown up a global history corruption problem which I haven't fixed yet.
      
      Rationalising TBEvents.h - things are migrating out of it, and into more
      appropriate sources (e.g. definitions relating to the Open URL dialogue are
      going into OpenURL.h, etc.). Event codes were at one stage deliberately
      diverged in numberspace from the component IDs of typical gadgets raising
      the events, to avoid anyone getting confused and thinking the IDs and event
      codes must match. However, this is in fact unlikely and it is much easier
      to remember the fewer numbers that result from tying the two together where
      possible. This has resulted in changes to event codes raised in the
      following objects of all Res files: Authorise, Find, OpenURL, and
      PrintStyle.
      
      And finally - !Run[D] files for all variants updated to require the latest
      toolbox and fetcher modules. All Res files updated for hotlists etc. and
      sprites files updated appropriately. All Messages, Choices and Controls
      files brought in sync., and an Customer build has been added (based on the
      Desktop build binary with different resources).
      
      That's all for now...
      532155bd
  19. 18 Aug, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Updated Makefile to work better in folding text editors. More or less rewrote · c46c55b2
      Andrew Hodgkinson authored
      Limits.h, and ensured consistent comment styling throughout all sources.
      Fetch.c/h split to Fetch, FetchHTML and URLveneer. URLstat.c/h produced to
      cope with this. OpenURL and Find sources created from bits in the Windows
      source file that shouldn't have been there... These will get filled out
      shortly. Note that a few functions in Fetch are due to be renamed and moved;
      probably to Tokenutils.
      c46c55b2