1. 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
  2. 23 Jan, 1998 1 commit
  3. 18 Dec, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Not all resources are up to date in this check-in, and documentation both... · 169c398a
      Andrew Hodgkinson authored
      Not all resources are up to date in this check-in, and documentation both within source and stuff in 'Docs' is out of date or missing - I was very pushed for time on this one... Hopefully will do another 'tidy up' check-in before close on Friday; until then, beware of anything other than the Ursula (Desktop browser) build. Anyway...
      
      Export As Draw done. As part of this, FONT SIZE and SUP / SUB adjustment
      of font size is done in fm_token_font_info rather than fm_find_token_font.
      
      Bullets and switches are plotted as indirected sprite items, rather than
      indirected text + sprite items - this relied on being in a redraw loop to
      pick the sprites up from the local pool (failed during printing).
      
      URI files now have a LF line ending rather than CR... '*' recognised
      as an empty field when loading via. RAM transfer now (only worked for
      loading from disc before).
      
      Gave placeholder bounding boxes 4 OS units more minimum extra gap
      vertically and reduced horizontal addition to this value * 1.5, rather
      than * 2 (see reformat_get_placeholder_size).
      
      Background image tiling starts at ymax - h + 4, rather than ymax, so
      there isn't the bottom line of pixels from the top tile always present
      at the top of the window. The '+4' is for caution's sake.
      
      Can now save a frame's HTML source, that of its parent or its ancestor,
      and the same for the URI pointing to those documents - see Menus.h for
      the relevant component IDs that should lead to the SaveFile dialogue.
      
      Have hopefully fixed timeout = 0 values (i.e. 'forever') on things
      like LinkTo; before, image fetches could override the state (so you'd
      only ever see brief flickers of a given URL as the pointer went over
      a link).
      
      Save File dialogue will remember the state of option or radio buttons
      for a given parent component origin and restore that state when the
      dialogue is next opened from the same place (stops turning on saving
      as a URL file also turning on 'save background images' for Draw file
      export, etc.).
      
      Use of a META tag to reload the *same* page now sets the 'reloading'
      flag in the browser so that it doesn't go through a proxy - otherwise
      pages which are meant to update periodically through client pull
      don't work, as they keep coming out of the cache.
      
      Can now handle images specifying just a width or height in the HTML
      (other dimension is scaled accordingly, but note that the placeholder
      size must still be 'dumb' until the image data comes in). An image
      will now override an image history size entry for the same entry
      with a different size.
      169c398a
  4. 12 Dec, 1997 2 commits
    • Andrew Hodgkinson's avatar
      Note that the 'Docs' documentation (possibly contrary to previous log... · f56c7002
      Andrew Hodgkinson authored
      Note that the 'Docs' documentation (possibly contrary to previous log messages) still hasn't been updated with the new SaveFile stuff, and function header comments have yet to be written for
      
      SaveFile.c.
      
      Fixed urlutils_pathname_to_url - OS_GSTrans doesn't like the same
      input buffer as output buffer (fairly obvious, but I was living in
      the hope of not having to duplicate the input path string).
      
      Image history will not cache scrap file images anymore. Browser's
      image handling library won't cross reference them either.
      
      When dragging a single item from the hotlist to a Filer window, the
      code now checks Ctrl - if held down, a URL file is written, else a
      URI file. The state of any option buttons or radios in the last
      Save File dialogue that was opened is no longer relevant...!
      
      history_save_as_html could write out broken files when titles
      for items in the History were not present. Fixed.
      
      Hourglass switched on for hotlist and history saving as HTML;
      hotlist_save_entries no longer closes the output file on error
      (it should be done by the caller, since the caller is responsible
      for opening the file and passing the FILE * pointer to
      hotlist_save_entries).
      f56c7002
    • Andrew Hodgkinson's avatar
      There are a few known significant problems with this code but it's being... · b36c2bb4
      Andrew Hodgkinson authored
      There are a few known significant problems with this code but it's being checked in so the Choices can be worked on. Note that Res files etc. are not up to date across all builds. Progress is as follows...
      
      Bug report prompted me to do this - now ignore <p> tags straight after
      <li> tags, so '<ul><li><p>Some text' works as the author (or automatic
      generator, more commonly) intended.
      
      A <p> tag before a table will be acted upon now (it was ignored before).
      Something like <li><p><table...> will give a line break and paragraph
      space after the <li> despite the changes mentioned above, as in other browsers.
      Both browsers differ from Navigator, where the table appears alongside
      the <li> tag.
      
      Multiple BR tags work as in MSIE / Navigator (they don't collapse to
      zero height anymore).
      
      For the above, line height (and so, <br><br> or <p> spacing) is now
      calculated inside reformat_text_line_height, and is used with either
      a token to get the text height at a given size (e.g. for general line
      spacing or multiple BR tags) or NULL for normal size text (e.g. for
      P spacing, though this value is in practice later scaled by 7/8ths in
      reformat_check_height). Note this behaviour is exhibited by MSIE 4;
      v3 gave two BRs the same spacing as one P (i.e. not font size
      dependent).
      
      Save dialogues can have an option button or couple of radios to
      switch between various formats (e.g. URI or URL, sprite or original
      format). See 'Docs.Notes' for more. The back-end to this is now
      implemented (i.e. at the moment, save as URI or URL, save as original
      image format). Note that when saving background images, a leafname
      based on the original fetch URL is now offered rather than a generic
      'Background'.
      
      Internal URL scheme changed to be all lower case, so relativisation
      through URL_Fetcher still makes sense... :-/
      
      Holding down 'shift' when clicking on stop reverses the interpretation
      of the Controls file 'StopWebServe' entry.
      
      Fixed row / column count for exporting tables as text; fixed a few
      bits and pieces of internal URL scheme stuff which got broken when
      HTMLLib started using URL_Fetcher's relativisation.
      b36c2bb4
  5. 27 Nov, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Image history can be emptied from the History menu. · 499a3422
      Andrew Hodgkinson authored
      Significant reduction in number of times reformatter is called during
      a table widthing session results in a dramatic speed increase for nested
      tables (e.g. 64 deep with a paragraph of text in the deepest table takes
      about two seconds to load with near-instantaneous subsequent reformats,
      as opposed to taking optimistically 28 days for a 32 deep table!).
      This code relies on a very big stack of assumptions...
      
      Save as plain text implemented.
      
      Choices, Messages and Res files brought up to date where necessary.
      Version number taken to 1.28, 04-Dec-97 (so I don't forget later,
      basically...).
      499a3422
  6. 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
  7. 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
  8. 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
  9. 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
  10. 24 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Tidied up Hotlist source a bit more, mostly so PSI can use the automatic · 26e079aa
      Andrew Hodgkinson authored
      StrongHelp generator on it. Revealed a spurious toolbox_hide_object call
      that would always fault and never do anything, and a few heinous uses
      of show_error which have all been removed.
      
      When dragging hotlist items, directories will now be highlighted whenever
      the item would be added to them, rather than just over the sprite. In
      practice this only changes if the item is open and has contents...
      
      Drag box selections had broken in the hotlist; fixed (uninitialised
      variable in hotlist_select_box). Adjust-drags now close the window on
      completion. Minor problem with Shift+Drag (copy) reversing order of items
      sorted out. Added hotlist_add_html_file and implemented loading of HTML.
      DO NOT add broken HTML files, this has not been coded for and URLs of the
      form http:///this/that (no host name) will hang the machine (bug in the
      cookie code of the HTTP module up to at least version 0.39).
      
      Made SELECT list items only as wide as the widest entry...
      26e079aa
  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 1 commit
    • 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. 15 Sep, 1997 1 commit
  14. 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
  15. 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
  16. 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
  17. 03 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      File fetches now set DEADDEAD during the fetch, Data if it is aborted, or an... · bece97ef
      Andrew Hodgkinson authored
      File fetches now set DEADDEAD during the fetch, Data if it is aborted, or an appropriate filetype when finished. If the fetcher routines return a zero or data filetype, the browser looks at a set of hard coded filename extensions to try and determine if there's a better filetype to use
      
      (urlutils_filetype_from_url) - since this is a centralised routine it can
      use a Mime mapping system (or be removed entirely) as and when one becomes
      available.
      
      You can now drag URI / URL files to the Hotlist window to add them to the
      list. They are added roughly where dragged to. (NB, note that I renamed
      the function to return the window ID - just being picky; it matches other
      similar functions now). Oh, and hotlist_add_position actually works now ;-)
      
      The global history will save when titles are added, as well as when a URL
      is added. Before, a browser crash could mean a title got dropped out
      of the history file even if SaveHistory was set to 'always'.
      
      SaveObject sources have been added but nothing references them or links
      them in yet - they're not finished. Mostly checking this one in because
      of the hotlist changes.
      bece97ef
  18. 02 Sep, 1997 1 commit
  19. 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