- 20 Mar, 1998 1 commit
-
-
Andrew Hodgkinson authored
Some compile-time hacks in place to use MemLib, a dynamic area based malloc replacement which shrinks its heap when possible. All builds have these switched off at the moment. Seemed to work with just Browse, though there would be problems with message blocks stored in dynamic areas because of the Wimp's '&3800000' check - however, it failed when HTMLLib was made to use it, too. Don't know why yet. ItemInfo.[c/h] source added, with Res file additions for testbed Browse and Phoenix. Small fetch windows now work properly regardless of toolbar settings in the Choices. Reload now reloads all images too, rather than only reloading them for as long as the main page was being fetched. Added a simple 'Find' facility. Realised that event handlers in eventlib are called in reverse order of registration, so the miscellaneous event handler is now registered first rather than last. Multiuser code added (most only active if SINGLE_USER is undefined). As part of this, hotlist code now knows about read-only items (done for the Customer-style 'Resources' file, but works generally anyway). handle_add_hotlist doesn't try to save the hotlist itself anymore (the hotlist_add function does all that through hotlist_modified anyway). Customer build Choices and Controls updated slightly (e.g. ClaimHelp off, hotlist to save on quit only). Customer build now uses Phoenix-style buttons. Sprites files which worked at the time (but will probably be out of date now) and included most of the original Customer-style sprites are in 'Utils.Icons.Customer'. Choices, Messages and Res files for all builds now stripped down to only single user items or single plus multiuser for Customer build and testbed build. Before, all contained a few multiuser bits in at least the Choices file if not more. Grammatical error ("Fetching frames contents" (sic.)) corrected in default message, Toolbars.c, and all of the Messages files. Customer build brought back to a servicable level (including implementation of the Find dialogue box with animation and fixing up authorisation and 'Stop' state in the tristate). Quite a few missing #ifndef REMOTE_HOTLIST bits from hotlist code added... Customer build will not use <Choices$Write> or Boot:Choices for any file finding now. UseProxy defaults to 'yes', MaxImages to 2. Res file includes Proxy Address setting (save_save_choices() now writes the ProxyAddress line).
-
- 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!).
-
- 12 Dec, 1997 2 commits
-
-
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).
-
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.
-
- 20 Nov, 1997 1 commit
-
-
Andrew Hodgkinson authored
Adjust-click on forwards/backwards buttons did not work in the intermediate build, and now does. Adjust-click on form submission buttons where the submit method is POST will now work correctly, as the new view inherits the extradata block of the old. Failure of this is signalled through make_no_fetch_memory_error, code 16 (see updated Errors file in Docs). Note the name change of extradata in this context; more details below. The passing of forms POST data and extra headers for sending in an HTTP request via. the URL module was all done through pointers into flex blocks, and was therefore very unsafe. All relevant functions now use pointers to pointers to the data. To remove confusion on the umpteen uses of the word 'extradata', the field in browser_data has been renamed to 'post_data'. The 'extradata' parameters used within FetchPage.c were all disconnected from the extra header info / form POST data stuff that extradata is usually associated with, and have thus also been renamed, in this case to 'appnddata' (Append Data). As well as X-NoProxy, the browser sends the 'proper' HTTP headers Pragma:no-cache and Cache-Control:no-cache. A redirection from a POST request was not handled correctly; despite what HTTP specs say, you're supposed to use GET for the new URL. The browser was, but when it chopped off the redundant header data in the request didn't terminate it and left Content-Type in anyway...! Fixed. Ctrl+Tab implemented - URL completion. Comes from the hotlist URLs, hotlist titles, history hosts, paths, full URLs and lastly titles. See code comments for more (history_find_match, hotlist_find_match). TableSupport option added to Choices; it is read, can be set by the front-end, but doesn't actually do anything else yet. Reversed Choices' semantics on 'don't expire by...' for History. Added 'needs_redraw' flag to choices_get_contents so that, for example, if the table border types change, browsers get redrawn.
-
- 19 Nov, 1997 1 commit
-
-
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.
-
- 16 Oct, 1997 2 commits
-
-
David Brown authored
Altered new directory handler to create new directories at the end of the list if the pointer was past the end of the list of items.
-
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).
-
- 03 Oct, 1997 1 commit
-
-
Kevin Bracey authored
Dropping on the lower half of an open, empty directory will now drop inside it rather than after it.
-
- 29 Sep, 1997 1 commit
-
-
David Brown authored
Altered hotlist_add to create the new url after the first selected item or inside the first selected directory when an item is selected.
-
- 26 Sep, 1997 1 commit
-
-
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').
-
- 24 Sep, 1997 1 commit
-
-
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 actually appears (using fm_get_string_width), rather than as wide as the widest character BBox in the font multiplied by the string length of the longest entry. Updated !Run[D] files to require HTTP 0.39, FTP 0.12 and File 0.23.
-
- 22 Sep, 1997 1 commit
-
-
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 the object is known. Exceeding 100% drops back to a byte counter, in case the estimated size was wrong. The progress counter may be updated after specific delays, rather than 'as often as possible', to reduce flicker (as requested by D.Brown some time ago). I've done a small rewrite of the fetch prioritisation scheme in FetchPage.c; how well this performs in general use across different processor speeds remains to be tested, but certainly it has some advantages. For each small fetch window before the rewrite, a 4cs tight loop was entered - this gave a noticable and substantial drain to the Desktop performance if more than one was opened. Now, several can be up at once with little hit. The actual file fetch is on half the priority it was before, with all others taken back just a bit - e.g. from 20cs per poll to 15cs per poll for flat out reformatting. You don't seem to lose much time on the format in practice, and the Desktop feels quite a bit lighter at the same time. There's the potential for smoother frameset loading in this scheme, too. When Shift+Clicking on a link meant you still fetched inside the main browser window, several fetches could occur in a frameset - one per frame. However, now that you can only do this by clicking on a link that leads to non-displayable data - or by turning off the small fetch windows by setting UseSmall to 'no' in Choices - a bug where fetchpage_preprocessed would stop such fetches as new ones were started was revealed. The API to frames_abort_fetching has now been extended to include a 'stop file spooling too' flag, allowing a fix to be made by having fetchpage_preprocess's calls not set this (and it doesn't check the savelink flag is unset before proceeding, since frames_abort_fetching does that implicitly now). Had left the RAM transfer buffer at 16 bytes (from testing) accidentally... Oops. Upped it to 4K. In addition, when loading data by RAM transfer, the browser didn't notice if a RAMFetch bounced during the transfer. It would be treated as a 'first' RAMFetch bounce, basically, and try to go to file transfer - oops. Fixed.
-
- 18 Sep, 1997 3 commits
-
-
David Brown authored
Also much faster drag box selections.
-
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.
-
David Brown authored
Altered Newdirectory/NewURL routines to create new directories at the pointer.
-
- 17 Sep, 1997 1 commit
-
-
David Brown authored
-
- 16 Sep, 1997 1 commit
-
-
David Brown authored
-
- 15 Sep, 1997 1 commit
-
-
David Brown authored
-
- 12 Sep, 1997 1 commit
-
-
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!
-
- 09 Sep, 1997 1 commit
-
-
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; however, dragging onto the browser will only work with new version files. Note that support for saving and loading URL files (ANT suite stuff) is present too, so old URI files can be typed as URL files if you want to keep them working without modification - the URI handler itself will hopefully support the defined URI file format soon; double-clicking on old URI files will stop working at that point. Note there are *lots* of changes in every Res file to support all this. This may all seem a bit pointless to some, but the changes do in fact make it very easy to add new save dialogues all over the place. Certainly much easier than with the previous system, anyway. In fact, post script, image 'save as sprite' took about half an hour, which I hope proves the worth of the new system. Merged in newer hotlist code with support for drag cancelling with Escape (all relevant Res files appropriately updated) and cancelling scrolling when you've reached the window scroll limit. Had to move some of the Wimp message handling stuff to the central Protocols source, as clashes were occuring, and also the hotlist routines were using independent saving code - a lot of duplicated effort. This was fair enough as at the time the Hotlist code was written, the Save code couldn't be used in the way it is now. New Save Source and Print buttons on the toolbar of some builds. Phoenix Sprites file made more efficient - the Acorn base section has been split from the animated upper region. Browse build has a new grey fade sprite at the back, which is less grainy than the previous one and only uses 16 colours (with a 16 greyscale palette). Not really a bug, bug the routine to start an image fetch for INPUT TYPE=IMAGE forms items only did so if the src field (or equivalent, for this tag type) was non-NULL. In fact, you should always call image_new_image and let that handle the rest, otherwise other sections of the code will fail as they try to obtain an image number for a given HStream and get -1 back. This problem only generally manifested itself when loading an HTML file to the browser straight from an application, as many src fields become NULL when the relativisation routines find nothing to relativise to... Authentication got broken somewhere along the line - this has been fixed (in HTMLLib and the browser). Ctrl+Click on a cross referenced image updates *all* copies, not just the one with the image data attached. Next big step: Rip up TBEvents.h and rebuild that whole approach somewhat. To all those working on the code, my apologies but this means all Res files will receive a very large number of alterations and there will be extensive code changes too (mostly naming convention stuff), in more or less all source files. I am endeavouring to ensure that the new numberspace convention does not clash with the work being done by Kevin on internationalisation.
-
- 05 Sep, 1997 2 commits
-
-
David Brown authored
-
David Brown authored
-
- 03 Sep, 1997 3 commits
-
-
David Brown authored
-
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.
-
David Brown authored
-
- 02 Sep, 1997 2 commits
-
-
Kevin Bracey authored
-
David Brown authored
-
- 01 Sep, 1997 1 commit
-
-
Andrew Hodgkinson authored
-
- 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.
-
- 29 Aug, 1997 2 commits
-
-
David Brown authored
-
David Brown authored
-
- 28 Aug, 1997 2 commits
-
-
David Brown authored
-
Andrew Hodgkinson authored
-
- 27 Aug, 1997 2 commits
-
-
David Brown authored
-
Andrew Hodgkinson authored
-