- 06 Feb, 1998 1 commit
-
-
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.
-
- 31 Jan, 1998 1 commit
-
-
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!).
-
- 02 Dec, 1997 1 commit
-
-
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).
-
- 06 Oct, 1997 1 commit
-
-
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.
-
- 31 Aug, 1997 1 commit
-
-
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 *not* altered, as then you end up with invalid URLs - so it will accept 'file:/', but always generate 'file://'. This is because some browsers exports 'file:/'. Sigh. make_no_[..._]memory_error functions now return a _kernel_oserror * rather than void. It's always &erb returned, but it enables users to use a more elegant 'return make_no_memory_error(1);', say, rather than something like 'make_no_memory_error(1); return &erb;'. I obviously should've written it like that at the outset, but never mind. All callers have been appropriately updated. The urlutils_leafname_from_url function now replaces illegal characters (A7000 Welcome Guide p54...) in the leaf with legal alternatives. Internal URL scheme is now a bit cleaner, with everything properly defined in URLutils.h. All references to http:, file: and ftp:, with or without a following '//' use the definitions in here now. More tidying and some reorganising of Hotlist source. Auto-open delay is now a Choices item. Some dependencies on statics removed (e.g. the counting functions don't accumulate into the global item_number now). The redraw functions used Wimp_TextOp - oops, so this has been amended to use whatever is supported on your Wimp. This is now in a new function (utils_text_width()), which the History menu routines also use (there was a bug in the width routine there anyway, which is therefore fixed in passing). Several other routines used Wimp_TextOp directly too, and they have been altered to use the new function as well. In hotlist code, one of the larger changes is in the API to hotlist_draw_r() (formerly _hotlist_draw()) which now takes item widths and heights as parameters - discovering these is quite slow, so doing it every time the function calls itself recursively is a little less efficient than passing the values in from elsewhere. Note that underscore prefixed functions are being slowly renamed to _r suffixed functions, to match the convention established by Tony Cheal with is table routines. This makes it much more obvious when something is recursive, as the same naming convention is used in every browser source file. Finally, note that I intend to ditch SaveDBox and use an alternate window with manual control of the messaging in Protocols.c. This will allow various improvements which at present the SaveDBox operational methods preclude. I'm going to have to do at least an alternate Window object for the SaveDBox module to use soon in any case. Getting rid of SaveDBox will help reduce, if only slightly, demands on the RMA.
-
- 18 Aug, 1997 1 commit
-
-
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.
-
- 31 Jul, 1997 1 commit
-
-
Andrew Hodgkinson authored
Customer work complete, and this version just shipped. Had to comment out the code in Main.c that sets the user agent string to fake Netscape, as the persistent problems with forms in tables showed up much more on a modem link - net result was that the customer's log in page didn't work. Not faking Netscape gives an authorisation dialogue instead, allowing access to the site even if not by the most elegant of methods.
-
- 30 Jul, 1997 1 commit
-
-
Andrew Hodgkinson authored
-
- 25 Jul, 1997 1 commit
-
-
Andrew Hodgkinson authored
-
- 18 Jul, 1997 1 commit
-
-
Ben Laughton authored
-