File: "hist-009.txt" (newer changes in "history.txt") October 29, 2002 [V. 0.09 release] AltF4's patches purewireprj, highwire.prj: - dependencies updated. October 27, 2002 AltF4's patches highwire.h, highwire.rsc, highwire.hrd, highwire.rso, highwire.rsm, highwire.rsd - updated for new encoder entries. global.h: - line 45: new global variable for debugging purpose. config.c: - line 95.. (read_config): new keywords: - LOCAL_WEB: directory for offline reading (see Location.c), - LOGGING: =1 enables console logging, - NO_IMAGE: =1 suppresses image loading. Location.c: - line 24: replaced define LOCAL_WEB by a char* which can be modified with an entry in the highwire.cfg file. - line 162 + 172 + 208 (new_location): adapted to new local_web variable. encoding.c - line 204 (utf16_to_bics): overworked to avoid useless checks. - line 357 (utf16_to_atari) + 420 (encoder_word) + 550 (utf16_to_8bit) + 589 (encoder_char): new encoders. Rainer patches (of October 9, 2002) global.h: - line 71: new functions menu_logging(), menu_alt_text(). encoding.c - line 204 (utf16_to_bics) + 408 (encoder_word): new encoder. keyinput: - line 79 + 82 (key_pressed): make use of functions instead of direct variable access. - line 154: new shortcuts ^F vor ISO Latin-15 and ^M for Macintosh Roman. AEI.c: - line 395: new functions menu_logging(), menu_alt_text(). - line 411 (handle_menu) + 429 (update_menu): new cases for ENCODING_ISO8859_15, _UTF16, _UTF16LE, _MACINTOSH, _ATARINVDI. October 26, 2002 AltF4's patches defs.h: - line 132: changed definition to also allow nobreak space for the system font. fontbase.h: - line 19: removed attribute ChrShft, was never used. fontbase.c - line 16 (font_base): added check for zero font id. - line 32: removed ChrShft. - line 140 (font_byType): corrected calculation of ascend/descend for system/bitmap fonts. scanner.h: - line 36 + 59 + 79: extended argument lists of scan_namedchar(), scan_string_to_16bit() and encoder_word(). - line 92: changed unicode_to_bics() to unicode_to_wchar() and unicode_to_atari() to unicode_to_8bit(). scanner.c: - line 366 + 382 + 410 + 412 + 425 (scan_namedchar) + 596 + 598 + 618 (scan_string_to_16bit): additional argument mapping for the encoder function and to avoid hard coded character codes. en_atari.h: - line 29: replaced literal space by defined symbol for 0x00A0. - line 121: added missing entries for 0x301D, 0x301E, 0x301F. en_bics.h: - line 287: added missing entries for 0x301D, 0x301E, 0x301F. encoding.c: - line 273..: all functions renamed from the scheme .._to_atari() to .._to_8bit(). - line 241..: new functions uni_2_atari() ... atari_to_atari() to 16-bit system/bitmap font. - 248.. (encoder_word): overworked to handle system/bitmap font. - 263: new function unicode_to_wchar() replaces unicode_to_bics(). Form.c: - line 93 (form_radio) + 134 + 147 +164 (new_input): modified to replace hard coded space characters. - line 148 (new_input): use encoder instead of simple copying. render.c: - line 183 (render_TITLE_tag): additional argument for scan_namedchar() call. - line 960.. (render_Q_tag) + 1797.. (list_marker): overworked to replace hard coded BICS codes by encoder function. - line 1112 + 1142 (render_IMG_tag) + 1457 (render_BLOCKQUOTE_tag): adapted to changed scan_string_to_16bit(). - line 2432 + 2455 + 2496 + 2508 (parse_html) + 2626 + 2641 (parse_text): adapted to changed encoder_word(). - line 2518 (parse_html): adapted to changed scan_namedchar(). October 25, 2002 AltF4's patches hw-types.h: - line 68: enum ENCODING enhanced by ENCODING_UTF16 and ENCODING_UTF16LE (by Rainer). - line 77: moved ofer definition for min()/max() from defs.h, looks more logical if this is located here. defs.h: - line 126: replaced definition of Space_Code by definitions for every font type that will be supported in future. - line 135: removed declaration of min()/max(), is in hw-types.h() now. Loader.c: - line 24: removed include of macros.h, the necessary definitions are in hw-types.h now. global.h: - line 104: added declaration of launch_viewer(). AEI.c: - line 471: removed declaration of launch_viewer(), this is in hw-types.h now. fontbase.h: - line 39: added two short hands for accessing of a font's space and figure/nobrake space codes. fontbase.c: - line 10: removed defines for font type dependent space and nobreak codes, this is in defs.h now. en_bics.h, en_atari.h, en_uni.h: - new file to take over the translation tables of encoding.c which will grow rapidly soon. Rainer started this idea already by introducing the uni_bics.h file but this way the scheme is more logical. encoding.c: - all arrays are located now in the en_bics/_atari/_uni.h files. - all occurences of Space_Code replaced by SPACE_BICS. W_Struct.c: - line 10: extended struct fixed to have it working for different font types. - line 20 (destroy_word_structure) + 79 (new_word): adapted deleting to extended struct fixed. - line 101 (word_store): modified to take care for different font types. Paragrph.c: - line 594 (content_minimum): modified to take care for different font types. render.c: - line 933 (render_A_tag) + 1113 + 1142 (render_IMG_tag) + 1457 (render_BLOCKQUOTE_tag) + 2133 (list_marker) + 2527 + 2542 + 2563 + 2575 (parse_html) + 2650 + 2672 + 2684 (parse_text): modified to take care for different font types. Redraws.c: - line 512 + 589 (draw_paragraph): modified to take care for different font types. purewire.prj: - line 35: added option 'no string merging' to entry of scanner.c to avoid a possible compiler bug. October 23, 2002 AltF4's patches hw-types.h: - line 31: copied the MAP_.. definitions from gem.h, will be needed for font stuff soon. defs.h: - line 95: new forward declaration. - line 382: in struct word_item, new attribute font. global.h: - line 10: removed include of highwire.h, this should only be done by the files which really need it. schedule.c: - line 10 replaced include of defs.h by hw-types.h, makes compiling a little bit faster. AEI.c: - line 22: added include of highwire.h. W_Struct.c: - line 56 + 66 (new_word): preset font attribute. fontbase.h, fontbase.c: - new files to take over VDI font attribute aspects. Form.c: - line 176 + 189 (new_input): adapted to new font_byType() function. render.c: - line 79: removed map(), not longer needed. - line 1803 (long2decimal) + 1815 (long2alpha) + 1827.. (list_marker): overworked to reduce the number of literally BICS codes. - line 1154 (render_IMG_tag) + 1467 (render_BLOCKQUOTE_tag) + 2468 + 2480 + 2451 (parse_html) + 2682 + 2690 (parse_text): adapted to new font_byType() function. Redraws.c - line 405 (draw_image): marked argument as unused to keep PureC quiet. - line 473 + 526.. (draw_paragraph): adapted to new font_switch() function. HighWire.c: - line 18: added include of highwire.h. - line 156 (main): removed VDI font setting calls, will be done in fontbase.c. Makefile, purewireprj, highwire.prj: - updated, special the dependencies should be complete now. October 18, 2002 AltF4's patches color.c: - removed typedef CHAR, this is already in hw-types.h. defs.h: - line 12[19] + 14[21] + 129[143] + 147[169] + 281[315]: definitions moved to hw-types.h. - line [167] moved the define for vdi_handle to global.h where it is placed better. - line 304[338] + 320[354]: removed no longer used #ifdef. - line 473[516] + 494[538]: in struct frame_item, new attributes Language and quot_lang. Frame.c: - line 24[25] +50 [52] (new_frame): new attributes Language and quot_lang. global.h: - line 28[25]: made vdi_handle, planes, ignore_colours macros to access vdi_dev instead. HighWire.c: - line 61 + 178[187] (main): modified to open more than one window if started with ore than one file. - line 114[129]: changed usage of ignore_colours. hw-types.h: - new file to take over the main type definitions used in HighWire. image.c: - line 6[8]: removed no longer used #define. Redraws.c: - line 7: removed no longer used #define. render.c: - line 967[1023].. (render_Q_tag): overworked to avoid a static variable in the function. - line 1111 + 1140 (render_IMG_tag) + 1475 (render_BLOCKQUOTE_tag): additional space_code argument for scan_string_to_16bit() calls. - line 2162[2225] (render_LI_tag): additional check if the BRK flag can be set to previous word item avoid crashes on NULL pointer access. scanner.c: - line 19: include hw-types.h instead of defs.h to avoid some strange compiler bug in Pure C 1.0. - line 597[610] + 619[632] (scan_string_to_16bit): additional argument space_code. scanner.h: - line 58: changed declaration of scan_string_to_16bit(). Variable.c: - line 46 + 56: removed globals ignore_colours and vdi_handle, since these are macros now. Rainer's patches (October 9, 2002) HighWire.c: - line 37 + 56: removed declaration and usage of planes and vwork_out[]. image.c: - line 99 (new_image): changed type UWORD to WCHAR. render.c: - line 146 (render_HTML_tag): added support forLANG attribute. October 14, 2002 AltF4's patches hwWind.c: - line 400.. (wnd_hdlr): overworked to fix the newly implemented flickering bug of pages with non-loadable images; reduced calls to graf_mouse() where possible because check_mouse_position does this already. Logging.h: - line 5: added gcc extension to have the argument lists of errprintf() and logprintf() checked. Mouse_R.c: - line 288 + 306 + 333 (check_mouse_position): modified to avoid useless actions on iconified windows; displays now the text of the link where the mouse is over (if any). render.c: - line 2603[2686]: avoids empty word items if a blank appears just behind a tag that already produced an new word_item. Rainer's patches (October 9, 2002) Logging.c: - line 56 (logprintf): changed type of color to short. - line 71: corrected output handle to stdout. October 13, 2002 AltF4's patches AEI.c: - line [5]: reverted Rainer's delete of includes for other compilers than PureC. - line 510[708] (process_messages): changed case AV_OPENWIND to have it always opening a new window. Containr.h: - line 28: added missing enum values for images begin/end loading. encoding.c: - line [86] (utf8_to_unicode) + [591] (iso8859_15_to_bics) + [842] (iso8859_15_to_atari): additional braces to avoid compiler warnings. http.c: - line [66] + [121] + [143] (http_charset) + [145] (content_type) + [244] (http_header): reverted Rainer's changes of cset and type because this don't work with gcc this way. - line 112[116] (http_charset): uses function macro. http.h: - line 10: corrected default value of Encoding (this must not be negative in gcc due to enum!). hwWind.c: - line 21 + 382 + 72 (new_hwWind): function wnd_hdlr() taken over from AEI.c, added handling of HW_SetTitle, HW_ImgBegLoad, HW_ImgEndLoad. - line 256: function hwWind_scroll() taken over from AEI.c. hwWind.h - line 30: function hwWind_scroll() taken over from AEI.c. image.c: - line 346[348] + 418[420] (image_job): uses enum values now. inet.c: - line 50 + 56 (find_drivers): added type casts to avoid warnings. keyinput.c: - line 86 + 93 + 99 + 105 + 111 + 117 + 121 + 125 (key_pressed): adapted wind_scroll() calls. Loader.c: - line 24: more includes for gcc to have min() available. - line 282[308] + 520[598] (loader_job): uses function macro. Loader.h: - line [32] + 31[36]: function macros for major and minor type of MIME, that's better than having a bitmask in the enum. Mouse_R.c: - line 104 + 170 +189 + 254 (button_clicked): adapted wind_scroll() calls. render.c: - line 21[94]: cast to WCHAR. - line 170[196] (render_TITLE_tag): always initialize buffer. Rainer's patches (October 9, 2002) AEI.c: - line 26 (appl_xgetinfo): added support for WINX. - line 52: wind_scoll() and wind_handler() moved over to window file. - line 74: moved vastart() to here. - line 78 (vastart): implemented reply message. - line 146: additional GS_.. defines. - line 237 (doGSCommand): [RS] Updated to GEMScript 1.2. Added CheckCommand, Close, GetAllCommands. - line 437 + 442 (handle_menu) + 447 (update_menu): menutree is located now in HighWire.c. - line 555 (process_messages): added cases for AV_PROTOKOLL, VA_PROTOSTATUS, AV_SENDKEY, AV_OPENWIN. - line 562: [RS] case GS_REQUEST updated to GEMScript 1.2 and optimized. - line 603: case AP_DRAGDROP added, always rejecting yet. av_comm.h: - line 92: corrected bit mask. av_prot.c: - line 51 (get_avserver): added check for "CAT". - line 58 (Send_AV): changed type of argument to_ap_id to short, added case for VA_PROTOSTATUS, improved the code, [RS] Changed the warning supression for Pure C to an official way. - line 103 (Receive_AV): additional argument msg, added cases for VA_PROTOSTATUS and VA_PROTOSTATUS. Containr.c: - line 815 (containr_redraw): removed faulty wind_update() call. Containr.h: - line 29: new value HW_SetInfo defs.h: - line 16: [RS] Added several encodings and languages to enum. encoding.c: - line 16 (utf8_to_unicode): overworked. - line 61 + 668 (iso8859_2_to_atari): overworked to make use of ISO8859_2_to_Unicode[]. - line 61 + 494: new encoder macintosh_to_bics(). - line 495: new encoder iso8859_15_to_bics(). - line 507 (encoder_word) + 751 (encoder_char): added cases ENCODING_ISO8859_15 and ENCODING_MACINTOSH. - line 701: new encoders iso8859_15_to_atari() and macintosh_to_atari(). global.h: - line 60: moved process_messages() down. - line 170: changed arguments of Send_AV() and Receive_AV(). HighWire.c: - line removed extern xaccname, gsanswer instead. - line 91 (main): changed allocating of global memory. - line 135: shortend aximum window title length to 127. - line 163 + 187: removed old code. http.c: - line 11: [RS] Added include for token.h and scanner.h. - line 19 (http_charset): changed type of len argument. - line 117: [RS] Now uses scan_encoding(). http.h: - line 19: changed declaration of http_charset(). inet.c: - line 42 + 57 (find_drivers) + 64 (init_stick): changed return type. -line 95 (inet_host_addr) + 126 (inet_connect) + 146 (inet_send) + 205 (inet_recv): [RS] Added several '(void)parameter' to supress warnings from Pure C without USE_INET defined.. Loader.c: - line 84 (parser_job): [RS] Skip HTML comment before check for an HTML file. - line 128: added extensions "jpeg" and "mpg". - line 475 (new_loader_job): [RS] about: check for NULL pointer returned by inet_info(). - line 905 (identify_AES): additional comments for cookie values. Loader.h - line 10: new value MIME_Unknown. O_Struct.c: - line 136 (new_url_link): preset of encoding. render.c: - line 82: changed type UWORD to WCHAR. - line 217 (render_TITLE_tag): replaced useless strlen(). - line 623 (render_BASEFONT_tag): added support for font colour. - line 916 (render_A_tag): make use of scan_encoding(). - line 974 (render_Q_tag): overworked for better language support. - line 1040 (render_IOD_tag): [RS] Using container_notify() to set window info. AES needs static memory! - line 1323 (render_P_tag): [RS] Ignore a paragraph start just behind a
  • tag. - line 1511 + 1514 (render_PRE_tag): support for WIDTH attribute, set text condensed for more than 80 characters. - line 1781 (list_marker): changed type UWORD to WCHAR. - line 2432 (parse_html): use define instead of number. scanner.h, scanner.c: - line 62/629: new function scan_encoding(). token.h: - line 122 + 132 + 143 + 157: updated comments. October 10, 2002 AltF4's patches defs.h: - line 110: declaration for WCHAR in case that gemx.h get not also included. hwWind.c: - line 22 + 136: new static set_size(), used in line 159 (hwWind_resize) + 178 (hwWind_full). - line 302 (hwWind_redraw): added code to have content of an iconified window drawn. Rainer's patches (October 9, 2002) Containr.c: - line 44: added missing delete_containr(). Containr.h: - some comments corrected, no changes in code. defs.h: - line 48: Added several encodings and languages to enum. - line 150 + 160 + 187 + 199 + 203..: corrected and added structure member names of VDI_Workstation. - line 218 + 221..: corrected types in struct xattr. - line 382 + 462: changed type UWORD to WCHAR in. encoding.c: - line 8 + line 13 (utf8_to_unicode) + 79 + 82 (windows1252_to_bics) + 99 + 110 + 113 (iso8859_2_to_bics) + 133 + 147 + 150 (atari_to_bics) + 8 + 177 + 450 + 458 (unicode_to_bics) + 476 + 479 (utf8_to_bics) + 9 + 527 + 629 + 635 (unicode_to_atari) + 655 (windows1252_to_atari): changed type UWORD to WCHAR. Frame.c: - line 169 + 171 + 202 + 222 (frame_calculate) + 241 (frame_slider): [RS] Added several unary plus signs to force Pure C to calculate +(...) as first step and prevent the compiler from arithmetic changes. (Pure C, Apendix F, p. 247) Redraws.c: - line 497 (draw_paragraph): changed type UWORD to WCHAR. - line 595: made strike through line more thick. render.c: - line 664 + 743: new render_DEL_tag() and render_INS_tag(). scanner.c: - line 257 + 373 + 409 + 422 + 445: comments corrected. - line 264 + 371 + 410 + 415 (scan_namedchar) + 597 (scan_string_to_16bit): changed type UWORD to WCHAR. - line 613 + 616 (scan_string_to_16bit): reordered cases. scanner.h: - line 41 + 47 + 54 + 72 + 75: comments corrected. - line 58 + 70 + 84: changed type UWORD to WCHAR. token.h - line 32 + 49: new tags DEL and INS. - line 131..: some comments corrected. W_Struct.c: - line 9: changed type UWORD to WCHAR. October 8, 2002 AltF4's patches AEI.c: - line 52 + 99 + 313: removed old code. - line 139 + 151 + 157 (wind_handler): replaced number_of_frames_left_to_load by wind->isBusy. - line 211 (vastart): added mouse position and shift key states. - line 448 (menu_info) + 509 (menu_reload) + 610 + 638 + 647 (rpopup_open): replaced access to active_keyboard_frame. - line 659 + 671 (process_messages): added mouse coordinate argument. defs.h: - line 240: added declaration for struct PXY. global.h: - line 30..: removed global variables window_handle, win_status, pre_status, number_of_frames_left_to_load, active_keyboard_frame, these are stored in hwWind structure now. - line 67: added mouse coordinate argument to process_messages(). - line 70: removed wind_redraw(), replaced by hwWind_redraw(). HighWire.c: - line 202 (main): added mouse coordinate to process_messages(). hwWind.h, hwWind.c: - new structure members isBusy and Active. keyinput.c: - line 68 + 71 + 86 + 93 + 99 + 105 + 111 + 117 + 121 + 125 + 129 + 136 (key_pressed): replaced active_keyboard_frame access by top window. - line 170: added shortcuts ^W (window cicle), ^U (window close). Loader.c: - line 97 (parser_job): remove setting of the active frame, will be done by window_handler(). - line 840 (page_load): load new page to the top window. Mouse_R.c: - line 34 (button_clicked): store the active frame in the window structure instead global. - line 104: corrected scroll direction. Variable.c: - line 57..: removed global variables window_handle, win_status, pre_status, number_of_frames_left_to_load, active_keyboard_frame. October 6, 2002 AltF4's patches AEI.c: - line 21: include hwWind.h. - line 124 (wind_handler) + 214 + 226 (vastart) + 290 (doGSCommand) + 801 (process_messages): overworked to make use of hwWind functions. HighWire.c: - line 161 + 184 (main): replaced init_load() by new_hwWind(). hwWind.h, hwWind.c: - new files for window handling. keyinput.c: - line 17: include hwWind.h. - line 85 + 92 + 98 + 104 + 110 + 116 + 120 + 124 (key_pressed): replaced window_handle by hwWind_Top->Handle. Loader.c: - line 745: outommented init_load(). Makefile, purewire.prj, highwire.prj: - updated Mouse_R.c: - line 11: include hwWind.h. - line 21 + 102 + 168 + 177 + 187 + 191 + 204 + 244 (button_clicked) + 268 + 277 + 316 + 330 (check_mouse_position): overworked to make use of hwWind functions. Paragrph.c: - 374 (paragrph_word) + 892 (content_paragraph): corrected boundary check. render.c: - line 20: include hwWind.h. - line 1045 (render_IOD_tag): replaced wind_set by the hwWind function. October 5, 2002 AltF4's patches render.c: - line 257 + 334 (render_FRAMESET_tag): moved the search for data end to the bottom of the function where it belongs. October 3, 2002 AltF4's patches Containr.c: - line 27 + 32 (new_containr): preset Base and HighLight. - line 230: new function containr_highlight() to store link highlighting at a per-container base, necessarry for multi window support. - line 708 + 715 + 741 (containr_redraw) + 788 + 799 + 845 + 851 (containr_scroll): additional argument highlight. Containr.h: - line 45: new struct members Base and HighLight. - line 107: new function containr_highlight(). defs.h: - line 20: value PAR_FORM removed, useless. - line 46: forward decls FORM and FRMSTACK removed. - line 361: in struct WORDLINE back refference and vertical offset added. - line 390: in struct paragraph_item Form removed. - line 440: in struct frame_item FormStack removed, type of FormList changed, form to substructure current added. - line 485: in struct url_link type of start changed to word_item pointer. Form.h, Form.c: - new function new_form(), old code removed. Frame.c: - line 41 + 49 (new_frame): preset of FormList and current->form. global.h: - line 39: current_highlighted_link removed, not longer needed. - line 83 + 86: additional argument highlight for frame_draw() and draw_contents(). - line 131: additional argument WORDITEM for new_url_link(). - line 171: new function word_offset(). Mouse_R.c: - line 170 (button_clicked): handles clicks on form buttons. - line 261.. (check_mouse_position): overworked to make use of the highlighting information stored by the container instead of current_highlighted_link. O_Struct.c: - line 129 + 135 (new_url_link): additional argument to store the word_item where this link began. Paragrph.c: - line 135 + 286 (paragraph_calc): set new WORDLINE attributes. - line 348 (paragrph_word): overworked to take advantage of the improved WORDLINE structure. - line 423 (paragraph_extend): made it more robust against unexpected conditions. Redraws.c - line 15 + 82 (frame_draw) + 381 (draw_image) + 470 (draw_paragraph) + 544 + 561 (draw_paragraph) + 622 + 672 + 675 (draw_contents): additional argument highlight. render.c: - line 133..: replaced all #ifdef __PUREC__ by a macro define. - line 933 + 949 (render_A_tag): additional argument for new_url_link() call. - line 2431: new function render_FORM_tag(). - line 2504 (parse_html): removed old code. Table.h / Table.c: - line 73 / 899 + 934 (table_draw): additional argument highlight. token.h: - line 109 + 134 + 145: new keys ACTION and METHOD for form tags. Variable.c: - line 64: removed current_highlighted_link, not longer needed. W_Struct.c: - line 203: new function word_offset() to calculate the vertical distance of a word to its paragraph's top. October 1, 2002 AltF4's patches Containr.h, Containr.c: - line 450 (containr_Element): added identification for form input elements. defs.h: - line 253: removed struct clipping_area because this is the same as struct GRECT and nowhere used anymore. Form.h, Form.c: - line 215: new function input_isEdit(). Frame.c: - line 79 (delete_frame): removed clearing of current_highlighted_link_.. pointers. global.h, Variable.c: - line 38 / 63: replaced current_highlighted_link_area and current_highlighted_link_frame by the one url_link pointer current_highlighted_link. Location.c: - line 99 (new_location): added forgotten trailing '\0' to the base path string. Mouse_R.c: - line 241 + 500: removed old code. - check_mouse_position(): overworked to handle form input elements and to avoid false highlighting if the mose pointer is over an overlapping window. Redraws.c: - line 544 (draw_paragraph): replaced word->link comparsion with current_highlighted_link_area. September 29, 2002 AltF4's patches AEI.c: - line 353 (iconify_window) + 368 (uniconify_window) + 712 + 719 + 723 + 733 + 756 (process_messages): frame->clip adapted to GRECT struct. Containr.h, Containr.c: - line 370 (containr_relocate) + 509 + 522 (containr_shift) + 626 + 692 702 (containr_scroll): frame->clip adapted to GRECT struct. - line 349: new function containr_Element(); defs.h: - line 378 (struct word_item): new attribute line. - line 441 (struct frame_item): type of clip changed to GRECT. - line 491 (struct url_link): new attribute start. - line 485: moved struct word_line befor struct word_item. Frame.c: - line 34 (new_frame) + 97 + 99 + 103 + 106 + 113 + 119 + 122 + 136 + 139 + 142 + 145 + 147 + 149 + 170 180 + 187 + 198 + 200 + 217 + 225 + 229 (frame_calculate): frame->clip adapted to GRECT struct. - line 267: new function frame_paragraph(). global.h: - new functions set_mouse_watch(), frame_paragraph(), paragrph_word(), paragraph_extend(), content_paragraph(). HighWire.c: - line 211: new function set_mouse_watch() to modify the mouse pointer movement watching rectangle. image.c: - line 406 (image_job): frame->clip adapted to GRECT struct. keyinput.c: - line 105 + 117 (key_pressed): frame->clip adapted to GRECT struct. Loader.c: - line 786 (init_load): activate mouse pointer watching after window opend. Mouse_R.c: - button_clicked() and check_mouse_position() overworked to make use of the new containr_Element() function and also to extend the functionality of user actions. O_Struct.c: - line 134 (new_url_link): preset link->start. Paragrph.c: - line 173 + 252 + 281 + 287 + 303 + 306(paragraph_calc): modified to set the lines start attribute. - line 367: new functions paragrph_word(), paragraph_extend(). - line 704: new function content_paragraph(). - line 123: content_setup(), content_destroy() moved behind paragraph_extend(). Redraws.c: - line 19 + 68 + 80 (frame_draw) + 91 + 93 + 102 + 180 (draw_vbar) + 211 + 213 + 222 + 296 (draw_hbar): frame->clip adapted to GRECT struct. Table.h, Table.c: - new function table_content(). September 23, 2002 AltF4's patches defs.h: - line 25: made ALN_NO_FLT a #define to avoid Lattice C warnings. - line 79: added (provisionally void) pointer for form input to struct word_item. Form.h, Form.c - new functions new_input() and input_draw(). render.c: - line 18: added include of Form.h. - line 1160 (render_IMG_tag): corrected clearing of SPACE flag. - line 2434: new function render_INPUT_tag(). Redraws.c: - line 9: added include of Form.h. - line 579 (draw_paragraph): added call to input_draw(). Table.c: - line 309 (table_cell): added missing setting for 'align=left' to allow overriding of a previous ''. token.h: - line 116 + 132: new keys CHECKED and MAXLENGTH. W_Struct.c: - line 26 (destroy_word_structure): prepared for deleting of form input struct, outcommented yet. - line 79 (new_word): preset input pointer. September 20, 2002 AltF4's patches Location.c: - line 194 (new_location): fixed logprintf() call. render.c: - completely restructured order of functions. all parse_ and parse__tag functions called by parse_html are renamed to render__tag and sorted by meaning of HTML. - parse_html(): replaced the giant switch() statement of tags by a function table (automatical created fro token.h). this makes rendering of complex pages up to 10% faster. September 17, 2002 AltF4's patches defs.h: - line 318: in TEXTATTR struct, new attribute for condensed text. - line 327: defines for asking of changed text attributes. - line 334: macro defines for condensed text. render.c: - line 1983 (parse_html): set condensed for TAG_CODE. - line 2054: overworked TAG_LISTING because this must create a new paragraph. also uses condensed text now. - line 2224..: overworked to calculate condensed text. Redraws.c: - line 524..538 (draw_paragraph): overworked to draw condensed text. - line 583: decreased line height of strike through, looks better. September 16, 2002 AltF4's patches defs.h: - line 441: in struct word_item, new attribute prev_wrd that holds the previous word_item just before the actual to store
    line breaks. Paragrph.c: - line 116 (add_paragraph): reset attribute prev_wrd. - line 589 (content_calc): re-inserted (again) accidently removed setting of Y. render.c - line 769 (parse_BR_tag): removed stored_word argument. - line 782: changed to make use of current->prev_wrd instead of stored_word. - line 1520 + 1555..1583 (parse_img_tag): overworked to have a fix font size and face for ALT texts. - line 1881 + 1913 + 1952 + 2013..2020 + 2033..2037 (parse_html): removed stored_word variable, replaced by current->prev_wrd. Table.c: - line 324 (table_cell): restricted nonsens set values for cell height and width. W_Struct.c: - line 50 (new_word): preset attribute prev_wrd. September 15, 2002 AltF4's patches Paragrph.c: - line 590 + 654 (content_calc): removed multiple setting of Y. - line 655: re-inserted accidently removed stuff for alignment of paragraphs without floating. render.c: - line 122 (get_align): removed check for WorkCell->DummyFor, this is fixed now in Table.c. Table.c: - line 58 + 107 (table_start) + 229 + 380 (table_cell): changed return type to void. - line 381 (table_cell): restore values of WorkCell and NumCells to avoid WorkCell pointing to a useless Dummy cell. Table.h: - line 67 + 69: changed return types to void. September 14, 2002 AltF4's patches defs.h: - line 4: set version minor to 9. - line 24: changed enum H_ALIGN. - line 393: added attribute floating to struct PARAGRPH to store if following paragraphs shall float around. - line 468: moved struct blocking_area to Paragrph.c because its only used there. image.c: - line 328 + 375 (image_job): added check if par->min_width needs to be changed. Paragrph.c: - line 11 () + 175 (paragraph_calc) + 353 (punch) + 373 + 392 (content_minimum): removed typedef TEXTWORD, make use of WORDITEM instead. - line 11: changed struct blocking_area to have two seperate bottoms for both left and right. - line 159.. (paragraph_calc): overworked to dial with two seperate bottoms for both left and right. - line 561 (content_calc): overworked to dial with two seperate bottoms for both left and right and simplyfied by merging common code parts. render.c: - line 782 (parse_BR_tag): added check for
    as found in some older HTML files. - line 1525.. (parse_img_tag): floating around an image is stored now in paragraph->floating. Table.c: - line 73 (table_start) + 435 (free_stack): removed SavedAlign, not needed anymore. - line 85 (table_start): floating around a table is stored now in par->floating. Table.h: - line 21: removed SavedAlign attribute. September 11, 2002 AltF4's patches defs.h: - line 24: changed order of enum H_ALIGN for easier comparsion. Paragrph.c: - line 145 (content_destroy): enabled freeing of tables. - line 610 +722 (content_calc): included justified alignment into checking. Table.c: - line 28: added forgotten delete_table() function. - line 55 (table_start): removed useless check for ALN_JUSTIFY. Table.h: - line 69: declaration for delete_table(). September 10, 2002 AltF4's patches color.c: - line 9: new struct SRGB to also store the saturation of colours. - line 12: new function to calculate the saturation. this is simply the difference between the highest and the lowest componente of a colour. eg. for pure bright red/green/blue it is 255 and for all black/gray/white it is 0. - line 19 (remap_color): overworked to include saturation into comparsion. - line 78: removed old stuff. Form.c: - line 12: inserted #include "Form.h" to make it working with gcc. Makefile: - changed line ends to LF only (unix style). else 'make' refuses to process it. parser.c: - line 252..284 (parse_tag): overworked to avoid double checking of quotation marks. August 30, 2002 Baldrick's patches (actually a few patches after a week of bug hunt) Parser.c These are some modifications I'm not 100% happy about. They deal with some sites using a ' instead of " in the key area of tags - line 260-263 added if else pair to intercept ' and parse it - line 283 catch ' at end and handle advance Render.c - line 116 added a check for page and para being centered in get_align this gets rid of one of the remaining problems with centering - line 122 get_align() check if TableCell is a DummyFor if it is then get the data from the DummyFor pointer (DummyFor cells are blank cells coverd by ROWSPAN or COLSPAN) Thanks to Rainer for helping me track this one down. - line 556 parse_header_tag() added short cur_color to track the current font_step color - line 580 parse_header_tag() extract the current color - line 592 parse_header_tag() if color is -1 use the cur_color value - parse_p_tag() removed excess indents no code change Table.c - line 309,311,313 added setting of cell->Content.Backgnd to line August 21, 2002 Baldrick's patches Form.c, Form.h - New files for FORM functions Highwire.PRJ, PureWire.PRJ and Makefile updated defs.h - added defines for FRMSTACK and FORM - added FRMSTACK FormStack to frame_item struct - added include for Form.h for PureC - added FORM_METHOD enum - updated HIGHWIRE_VERSION to 0.09 - added FORM Form to paragraph_item struct Render.c - line 1996: call form_start() and form_finish() as appropriate August 20, 2002 Baldrick's patches AEI.C - reworked process_messages again to eliminate the possibility of scroll by line operating by page Defs.H - line 20: added PAR_FORM to PARAGRAPH_CODE enum Render.C - line 1995: grab out FORM tag, do nothing with it yet - line 2028: grab out INPUT tag, do nothing with it yet - line 2097: grab out SELECT tag, do nothing with it yet Token.h - line 41 new tag FORM - line 49 new tag INPUT - line 58 new tag OPTION - line 66 new tag SELECT August 19, 2002 Baldrick's patches AEI.C - reworked process_messages to handle all WM_ARROWED message types this allows realtime scrolling with programs like MWheel. I put in full support even though MWheel doesn't seem to send them all but that could be a limitation of my IBM scroll point mouse. Scrolling is based on frame under Mouse pointer. August 15, 2002 Baldrick's patches AEI.C - line 699 initial support for WM_ARROWED message August 14, 2002 (HW 0.0.8a released code) AltF4's patches cache.c: - line 24 + 39 (cache_insert): changed argument to take over the new cache object (to avoid further use of non-const pointer). - line 71 (cache_lookup): corrected return value. - line 79 (cache_bound): changed return type. cache.h: - line 4 + 7: changed declarations. defs.h: - line 264 + 281: moved over forground and background colour to struct s_img_data. - line 265 + 271: renamed pointer type for caching types.. - line 404 + 417 + 420: removed outcommented stuff. image.c: - line 19..35: changed return types of image reader functions. - line 54: added rasterizer function pointer. - line 156 + 186 (new_image) + 199 + 205 + 208 (delete_image) + 228 + 236 + 239 (image_calculate) + 277 + 280..301 + 330 (image_job): adapted to changed pointer types. - line 152 + 176 (new_image): moved setting of display size. - line 169: improved size calculation if the image was found in cache to get reasonable values for percentage sized images. - line 219: new function img_scale(). - line 246 (image_calculate): improved size calculation if the image was found in cache to get reasonable values if some size value wasn't given. - line 264 (image_job): simplified code. - line 365: moved over scaling to img_scale(). - line 837 (read_gif): overworked due to changed RASTERINFO. keyinput.c: - line 135 (key_pressed): on HELP key pressed, open the related page in the main frame. this is much more logical. Location.c: - line 166..167 + 184 (new_location): these both lines were toggled by accident. fixing this makes the fix below needless. Paragrph.c: - line 411 (content_minimum): corrected minimum value for images with percentage width. Redraws.c: - line 400 + 405 + 434 (draw_image): adapted to changed IMGDATA. render.c: - line 1995 + 2182 (parse_html): moved the the 'case FRAMESET' just befor the 'case HTML' to avoid crashes due to rubbish html code. August 13, 2002 Baldrick's patches Containr.c - line 164 set frame->scroll from cont->scroll Containr.h - line 55 added SCROLL_CODE scroll to s_containr struct Defs.h - line 37 new enum SCROLL_CODE - handles Frame scrolling value - line 417 added SCROLL_CODE scroll to frame item struct Frame.c - line 30 init frame->scroll to SCROLL_AUTO - frame_calculate() over worked to handle new SCROLL_CODE values Redraws.c - line 45 put scroller drawing inside if not SCROLL_NEVER test Render.c - line 1741 added output - line 1748-54 handle key SCROLLING Token.h - line 133 added new key item SCROLLING August 12, 2002 Baldrick's patches Redraws.c - 152 changed + 1 to +2 to get rid of ghost line - many notes added to draw_vbar() for reference August 11, 2002 AltF4's patches AEI.c: - line 603 (rpopup_open): changed int to WORD of HW_form_do() declaration. - line 607: moved the popup 2 pixels up/left to make it more easy to catsh it with the mouse. - line 610 + 620: placed wind_update() calls to get exvlousive access of mouse clicks. cache.c: - line 15: added anonymous destructor function attribute. - line 24 + 30 (cache_insert): added anonymous destructor argument to make it possible to remove not longer refferenced objects without any knowledge about their structure. - line 77 + 83 (cache_bound): added argument to share the cache's location. this saves a bit of mamory and makes cache hits of percentage scaled images faster. - line 94 + 104 (cache_release): added argument to determine if an object shall be removed immediately (in case that it isn't used any longer). - line 127: new function cache_clear(). - line 130 (cache_info): added argument to return a list of detailed cache information. cache.h: - extended some declarations and added new. image.c: - line 100 +139 (new_image): moved some settings below, else these case a crash if loading an image directly. - line 165: set display width and height to the original image size. - line 168: extended cache_bound() call. - line 194 (delete_image) + 225 (image_calculate): extended cache_release() call. - line 251 (image_job): corrected hash value, fixed redrawing. inet.h, inet.c: - line 228: new function inet_info() to return the interface type. Loader.c: - line 381 + 455 (new_loader_job): moved free_location() to the end of the function. - line 388: overworked "about:" stuff, it understands now also "about:cache". - line 411 + 423 + 432 + 440 + 449 + 453: replaced loader->Location by local variable loc. Widget.c: - line 28..33 (HW_form_do): changed int to WORD, else gcc uses August 9, 2002 Baldrick's patches Makefile, purewire.prj, highwire.prj: - updated. AEI.C - line 584 added routine rpopup_open() Global.h - line 74 added proto for rpopup_open() Highwire.rsc - updated for right popup Highwire.C - line 34 added OBJECT *rpopup - line 150 added rsrc_gaddr for RPOPUP Loader.c - line 347 new routine launch_viewer() - launches "viewer" on system if one defined, shows the src code for the current file. For comparisons and to help identify problems. Location.c - line 184 added test for loc_proto == 1 (about:) otherwise we had the proto overwritten and could not display about: Widget.c - new file for handling HighWires Widgets and their operation not much there yet. August 8, 2002 AltF4's patches Makefile, purewire.prj, highwire.prj: - updated. cache.h, cache.c: - new files for memory caching functions. image.c: - line 96 (new_img): lookup if the image is already in cache. - line 108 + 98: moved initialization part to the beginning. - line 155: if the image is already in memory and scaling matches share it. - line 165: avoid reloading a found image. - line 178 (delete_image) + 199 (image_calculate): uses cache_release() now. - line 217..285 (image_job): only load image if not found in cache. Location.c: - line 242 (location_equal): corrected comparsion. Location.h: - line 25: changed return type of location_equal() to BOOL. Paragrph.c: - line 251 + 260 + 272 (paragraph_calc): corrected offsets for clickable areas, named locations and images. render.c: - line 223..275 (parse_anchor): replaced p_frame->current by local current variable. - line 261: corrected offset argument for new_named_location(). August 7, 2002 Baldrick's patches Global.h - line 69 changed prototype for button_clicked() Highwire.c - line 42 modified mouse entries in EVMULTI_IN struct I left the old values in a rem since I'm not certain about what I've added and if everything is there that's needed. - line 199 added out.emo_mbutton to button_clicked() call Mouse_R.c - line 17 added WORD button parameter to button_clicked() routine - reworked button_clicked() routine to handle left and right mouse button operation AltF4's patches color.c: - line 3: inserted #include for size_t declaration. defs.h: - line 68: new forward declaration for struct word_item. - line 247: new structure IMGDATA that can be shared by different IMAGE structures. this must be enclosed in a #ifdef block else Pure C 1.0 produces corrupted binaries !!! - line 248..255 (struct s_image): several attributes are located in IMGDATA now. - line 347 + 355 + 414: replaced struct word_item * by WORDITEM. image.c: - line 5: #define to avoid compilerbug in PureC 1.0 - line 116 (new_image): removed setting of no longer existing img->fd_.. attributes, set img->data instead. - line 184 (delete_image) + 204 (image_calculate) + 231 (image_job) + 302 + 328 + 339 (setup) + 889 + 925 (read_gif): adapted to IMGDATA structure. Redraws.c: - line 6: #define to avoid compilerbug in PureC 1.0 - line 396 (draw_image): adapted to IMGDATA structure. Variable.c - line 3: inserted #include for size_t declaration. August 6, 2002 AltF4's patches AEI.c: - line 120 (wind_handler): changed pointer argument type to const. - line 437 + 472 (menu_info): changed pointer types to const, avoid usage of location->FullName. Containr.c: - line 717 (containr_notify): changed pointer argument type to const. Containr.h: - line 31 + 174: changed pointer argument type to const. http.c: - line 265 (http_header): avoid usage of location->FullName. Loader.c: - line 277 (loader_job): added old location argument for servers returning invalid (not absolute) redirects like atari-source.com does. - line 674 (init_load): changed pointer argument type to const. Location.c: - line 40 (_alloc): extended to copy path and file into a newly created structure. - line 62 (new_location): removed variables *p, path_ln, file_ln, merge, is_tos, uses dir instead. - line 68: moved LOCAL_WEB stuff below. - line 83: creating of __base location adapted to new dir_entry(). - line 175: creating of __local_web adapted to new dir_entry(). - line 183: removed the parsing of the path. this is done now by the new dir_entry() function. - line 256 (free_location): additional check to not free the __local_web structure. - line 274: new location_Path() to return the path (without the file name) of a location. - line 275: new location_equal() to check if two locations reffers the same object (will be needed for caching). - line 360: new function dir_entry() to parse and merge the path part of a URL. Location.h: - line 11: new anonymous attribute Dir. - line 12: removed attribute isTos, not longer used. - line 24: new declarations location_Path() and location_equal(). render.c: - line 2294 (parese_html) + 2415 (parse_text): avoid usage of location->FullName. August 5, 2002 AltF4's patches defs.h: - line 20: rearanged order of enum PARAGRAPH_CODE to have the highest values for the items which need the most exceptions. - line 32: changed values of enum L_BRK. now they can be handled a bit easier by using and/or operations. - line 38: removed enum direction. - line 332: in struct word_item, added length attribute to store the number of 16bit characters. Paragrph.c: - line 174 (paragraph_calc): simplified the code a bit by using word->space_width and word->length to determine spaces. - line 394 (content_minimum): removed if() branch. - line 403: simplified if() branch for empty words, line breaks are now simply or'ed together. - line 427: if a word item contains no Space_Code clear the space_width. - line 472: line breaks are now simply or'ed together. Redraws.c: - line 560 (draw_paragraph): removed increment of space_width. render.c: - line 193 (parse_blockquote_tag) + 1889 + 2196 (parse_html) + 2333 (parse_text): corrected value for word->space_width. - line 764 (parse_BR_tag) + 2023 (parse_html) + 2367 (parse_text): replaced BRK_NONE by BRK_LN, this makes the cood looking a bit more clear. W_Struct.c: - line 7: static field for word_items with no or only Space_Code content. - line 12 (destroy_word_structure): changed if() to not free the static field above, a null pointer can't occure anymore. - line 64 (new_word): always initialize word item with the Empty field. this makes the code a bit more robust. - line 79 (word_store): if there is no content to store the word item stays untouched because it already is set to the Empty field. if there is only one Space_Code to store it will be set to the Space field and word_width is exactly space_width. Else the function behaves as befor. this saves a bit of processing time due to less malloc/free calls. August 2, 2002 AltF4's patches AEI.C - line 491 (menu_reload): set bit 7 of the encoding to force the parser to use it. http.c: - line 113 (http_charset): fixed start of scanning, else it tryed to interprete the ';'. Paragrph.c: - line 161 (paragraph_calc): overworked to get correct line breaks (only at a blank or
    tag). - line 361: new function punch() to remove one or more word_items from the linked list. - line 374 (content_minimum): inserted code to calculate the correct minimum width of paragraphs, regarding blanks. this code also filters out invalid/empty/useless word_item. - line 404 (content_maximum): removed wor_item check, already done in content_minimum(). render.c: - line 262 (parse_anchor): changed storing method of anchors. - line 265: removed check for link type, not necessary anymore. - line 1858 + 1872 + 2026 (parse_html): determine if the frame's encoding was set by an user action (if bit 7 is set) to prevent if from geting overwritten by a meta tag. - line 2295 (parse_text): masks out the force_cset bit. Table.c: - line 94 (table_row): inserted word_store() call to avoid invalid word_items. - line 210 + 269 (table_cell): moved up word_store() call. token.h: - line 106...: added several comments about wich key is used by which tag. W_Struct.c: - line 58 (new_word): removed check for link type, not necessary anymore. - line 82 (word_store): removed setting of paragraph minimum, this will be done in content_minimum() instead. July 26, 2002 AltF4's patches AEI.c: - line 375... new/renamed functions: - menu_about() was previous do_info_dialog() from HighWire.c. - new menu_open() for entering an URL and/or opening the file selector. - new menu_info() to give some basic information about the active frame. - new menu_reload(). - new menu_fontsize() to change the displayed font size. - handle_menu() moved over from HighWire.c. - new update_menu(): to set the charset entry checked depending to the active frame. - line 462 (process_messages): extended handle_menu() call. defs.h: - line 4 + 7: updated version. global.h: - line 70: extended process_messages() declaration. - line 73: new functions update_menu(), menu_open(), menu_info(), menu_quit(), menu_reload(), menu_fontsize(). These are used by both menu bar selection and keyboard hot keys. - line 96: removed handle_menu() declaration, is now static in AEI.c. - line 101: removed do_info_dialog() declaration, is now static function menu_about() in AEI.c. HighWire.c: - line 193 (main): extended process_messages() argument list. - line 224...: moved do_info_dialog() and handle_menu() over to AEI.c. highwire.rsc, highwire.h, highwire.rso: - extended, generated by resource editor. keyinput.c: - line 14 (key_pressed): corrected argument 'state' to type UWORD because this is a bit mask. - line 68: added update_menu() to set the actual charset entry checked. - line 72 + 166 + 172 + 178 + 184 + 190: replaced new_loader_job() calls by menu_reload(). - line 85..120: reformatted for better readability. - line 130: corrected margins to default values. - line 140 + 152: replaced code by menu_reload() call. - line 197..212: replaced calls by menu_...() calls. Loader.c: - line 97 (parser_job): added update_menu() to set the actual charset entry checked. - line 644: removed unused translate_address(). Mouse_R.c: - line 165 (button_clicked): added update_menu() to set the actual charset entry checked. render.c: - line 526 (parse_font_tag): added a check if the word is a link to avoid wrong colours of anchors. July 24, 2002 (v0.0.7 alpha) AltF4's patches Paragrph.c: - line 576 + 580 (content_calc): added left margin width. Redraws.c: - line 604 (draw_contents): added a check if the background needs to be drawn at all. render.c: - line 1486 (parse_hr_tag): corrected colour setting for size=1 and noshade. W_Struct.c: - line 90 (word_store): uses the slightly faster vqt_f_extent16n() if gemlib 0.42.2 is installed. July 23, 2002 Baldrick's patches Defs.h - added H_ALIGN ALN_FLEFT for forced left alignments on floating objects (starting with tables) Paragrph.c - line 518 removed line - line 531 removed line - reworked table section of content_calc() initial table wrapping work in place Table.c - line 57 added parsing and setting of align left = ALN_FLEFT New HTML file TEXTWRAP.HTM to test text wrapping and br clear=x Matthias Jaap's patches Render.C - line 670 new routine parse_iod4_tag() - only supported attribute is SHOUT - line 2006 added parsing of TAG_IOD - line 2021 added code for TAG_LISTING - line 2153 added code for TAG_XMP token.h - line 48 added new tag - supported by the browser of the same name - line 51: added tag - line 79: added tag - line 133 added key SHOUT attribute (for IOD4) AltF4's patches Containr.c - line 28 (new_containr): set the base container's name to '_top'. - line 249 (containr_byName): recognizes special target names. defs.h - line 15: removed ENCODING_BICS because this can never be a source encoding, added ENCODING_Unknown. - line 380: in struct frame_item, added attribute Encoding. encoding.c - line 510 (encoder_word) + 755 (encoder_char): removed not longer existing case ENCODING_BICS. Frame.c - line 18 (new_frame): extended argument list for setting of encoding and margin width/height. global.h - line 90: extended new_frame() argument list. Highwire.htm - updated to illustrate margins http.c - line 18 (http_charset): corrected return type. - line 148 (content_type): corrected checking of type and cset. image.c - line 101 (new_image): adapted to changed new_frame(). keyinput.c: - line 72..189 (key_pressed): adapted to changed new_loader_job(). Loader.c - line 66 (new_loader_job): extended argument list to have encoding and margins set. - line 66 (parser_job): adapted to changed new_frame(). - line 266 + 274 + 307 (loader_job): get now encoding from loader instead of location. - line 351 (new_loader_job): extended argument list for storing of encoding and margin width/height. - line 437: removed lot of long-time outcommented stuff. - line 549 + 678 (load_file): added encoding argument. - line 763 (init_load): removed setting of container name, this will be done by new_containr. - line 779 (init_load) + 824 (page_load): adapted to extended new_loader_job(). Loader.h - line 39: added attributes Encoding, MarginW/H. - line 49: extended new_loader_job() argument list. Location.c - line 44 (_alloc): removed encoding setting. Location.h - line 9: removed attribute encoding because this doesn't belong here but to frame and loader. Mouse_R.c: - line 158 (button_clicked): adapted to changed new_loader_job(). render.c - line 198 (parse_blockquote_tag) + 662 + 665 (parse_meta_tag) + 1499 + 1547 (parse_img_tag) + 1577 (parse_title) + 1644 (parse_embed) + 1840 (parse_html) + 2268 (parse_text): get now encoding from loader instead of location. - line 1729 (parse_frameset): adapted to changed new_loader_job(). July 22, 2002 Baldrick's patches Defs.h - line 32 added new enum L_BRK - for handling BR clear codes - modified line_brk to L_BRK Paragrph.c - line 310 -inserted code to handle clear code line breaks (I'm not 100% happy with it's output - baldrick) Render.c - line 736 new routine parse_BR_tag() handles BR parsing - line 1919 changed code to call parse_BR_tag() routine - line 1993 changed line_brk code to BRK_NONE - line 2323 changed line_brk code to BRK_NONE Token.h - line 110 added key CLEAR July 21, 2002 AltF4's patches (several days worth) purewire.prj, highwire.prj: - corrected dependency for Table.c Containr.c: - line 493 + 506 (containr_shift): adapted to changed struct frame_item. defs.h: - line 358: new colour attribute Backgnd in struct s_paragrph. - line 378: in struct frame_item, new substructure CONTENT to group attributes item, page_minimum, page_width, page_height, background_colour, alignment. encoding.c: - line 656 (windows1252_to_atari): fixed forgotten pointer increment. Frame.c: - line 24 (new_frame): makes use of content_setup() now instead of own presetting. - line 71 (delete_frame): replaced destroy_paragraph_structure() by content_destroy(). - line 114 + 117 + 121 + 135 (frame_calculate): adapted to changed content_calc(). - replaced all frame->item, frame->page_minimum, frame->page_width, frame->page_height, frame->background_colour, frame->alignment by the corresponding frame->Page members. - line 24 (new_frame): adapted presetting to CONTENT substructure. global.h: - line 70: changed declaration of draw_contents(), rearanged the order of declarations. - line 142: new functions content_setup(), content_destroy(), content_stretch(), changed declarations of content_minimum(), content_maximum(), content_calc(). HWDOC.HTM - updated to demonstrate CSS parsing image.c: - line 166 (new_image) + 257 (image_job): removed page_margin, already handled by content_minimum(). - line 103 + 166 (new_image) + 257 (image_job): adapted to changed struct frame_item. keyinput.c: - line 84 + 89 (key_pressed): adapted to changed struct frame_item. Mouse_R.c: - line 42 + 90 (button_clicked): adapted to changed struct frame_item. Paragrph.c: - line 54 (new_paragraph) + 96 (add_paragraph): preset background colour. - line 112: new functions content_setup() and content_destroy(). - line 298 (content_minimum) + 320 (content_maximum): overworked to add the content's margins. - line 354 (content_calc): overworked HR calculation. - line 472: new functions content_stretch(). Redraws.c: - line 73 (frame_draw): removed drawing of background, this is handled now by content_draw(). - line 317 (draw_hr): completely reworked corresponding to the changes in the renderer and calculation functions, for correctly size/position calculation and color attribute. - line 549 + 556 (draw_paragraph): fixed missplaced ALT text for hspace >0. - line 605 (draw_contents): added content background filling. - line 620: added paragraph background colour filling. - line 73 + 76 (frame_draw): adapted to changed struct frame_item. - line 615 (draw_contents): draw background if paragraph colour is set. render.c: - line 68: removed convert_to_number(), isn't used any longer. - line 316 (parse_body): extended to handle attributes MARGIN, MARGINHEIGHT/TOPMARGIN, MARGINWIDTH/LEFTMARGIN. - line 1409 (parse_hr_tag): completely reworked for correctly size/position calculation, can now also handle attributes color and background-color. - line 2214 (parse_html) + 2334 (parse_text): removed page_margin, already handled by content_minimum(). - replaced all p_frame->item, p_frame->page_minimum, frame->background_colour, p_frame->alignment by the corresponding frame->Page members. - line 139 (get_align): replaced ->WorkCell->Paragraph-> by ->WorkCell->Content.Item->. - line 550 (parse_header_tag): set background and text colour from Css style attribute. scanner.c: - line 188 (scan_css): inserted forgotten line counter setting. - line 216 (scan_css): if a keyword isn't found in the CSS table, search also in the normal key table. Table.c: - line 177 (new_cell): added argument 'padding', makes use of content_setup() now instead of own presetting. - line 237 + 241 + 273 + 296 + 327 + 351 + 353 (table_cell): added padding argument. - line 511 + 519 + 547 + 576 + 616 (table_finish): adapted to changed content_minimum()/_maximum(), removed padding value since this is handled now by the content functions. - line 616: removed padding value. - line 647 + 786 + 786 + 798 + 863 + 870 (table_calc): adapted to changed content_calc(). - line 918 (table_draw): removed drawing of cell background, this is handled now by content_draw(). - replaced all cell->Color, cell->Paragraph, cell->Width, cell->Height by the corresponding cell->Content members. - line 183 (new_cell): adapted presetting to CONTENT substructure. Table.h: - line 53: in struct s_table_cell, new substructure CONTENT to group attributes Colour, Paragraph, Width, Height. token.h: - line 120 + 132: new attribute keywords MARGINWIDTH/LEFTMARGIN and MARGINHEIGHT/TOPMARGIN. - line 181: new CSS keyword MARGIN. July 18, 2002 Baldrick's patches Defs.h - line 263 added short hspace global.h - line 49 added extern for page_margin - line 147 added hspace param to new_image() prototype Image.c - line 85 added hspace to img->word->word_width - line 91 added hspace param to new_image() - line 108 set img->hspace to hspace param - line 166 replaced 5 with page_margin - line 257 replaced 5 with page_margin - line 270 add hspace to rec.g_w loader.c - line 416 added 0 (hspace) to call of new_image() Paragrph.c - line 399 removed rem'd out tests Redraws.c - line 353 replaced 5 with page_margin - line 544 modify x by img->hspace Render.c - line 1501 added get_value_size(KEY_HSPACE) to call of new_image() - line 2209 replaced 5 with page_margin - line 2329 replaced 5 with page_margin Token.h - line 117 added KEY HSPACE variable.c - line 42 new variable page_margin (replaces all those 5's in code) eventually should be user configureable AltF4's patches Makefile, purewire.prj, highwire.prj - updated for encoding.c encoding.c: - new file for charset encoding functions. parser.c: - line 278 (parse_key): new code to store CSS keys/values of <.. style="..">. render.c: - line 549 (parse_header_tag): added color that can be given by style="color:...;". - line 655 (parse_meta_tag): changed if() condition, else gcc would assume the cset variable as unsigned. - line 1523 (parse_title): overworked to make use of the new encoder_char(). - line 1792 + 2180 (parse_html): overworked to make use of the new encoder_word(). _ line 2110: changed handling of blanks and white spaces. - line 2214 + 2288 (parse_text): overworked to make use of the new encoder_word(). scanner.c: - line 177: changed the NAMEDCHAR array. now it contains only unicode values (as suggested by Rainer), no more bics and asciis. - line 266: moved Atari_to_BICS[], ISO8859_2_to_BICS[], windows1252_to_BICS[], Unicode_to_BICS[], Unicode_to_Atari[] over to encoding.c. - line 687 (scan_namedchar): overworked, can now write multi byte also for Atari System Font 8 bit string. - line 807: removed scan_char_to_Atari8bit(), this is now handled by (*encode_char)() in encoding.c. - line 807: removed scan_char_to_16bit(), this is now handled by (*encode_word)() in encoding.c. - line 997 (scan_string_to_16bit): moved to the end of the file, changed to make use of encoder_word(). - new function scan_css for CSS keywords. scanner.h - cnanged declaration of scan_namedchar(). - removed scan_char_to_Atari8bit(), scan_char_to_16bit(). - new functions encoder_word(), encoder_char(), unicode_to_bics(), unicode_to_atari(). these are located in encoding.c. - new function scan_css for CSS keywords. token.h: - line 123: new KEY_STYLE. - line 139: new enum HTMLCSS. July 15, 2002 Baldrick's patches Paragrph.c - line 368 - added test to check if new paragraph can occupy any portion of the current line - line 399 - rem'd out old tests and added new test for ALN_CENTER old code left for the moment until further testing can be done - line 454 - added check for the paragraph not being text, since modifying the text here completely messes it up later July 14, 2002 Baldrick's patches paragrph.c - line 208 reworked section removing test for blocker->bottom AltF4's patches AEI.c: - line 22: placed #ifdef around the appl_xgetinfo() function, the coming gemlib revision will have this implemented. config.c: - completely reworked for faster processing and less restricting of white spaces in the cfg file, also added new keyword FONT_SIZE. the cfg file will now be searched in this order: $HOME/defaults/highwire.cfg -> $HOME/highwire.cfg -> $HOME/.highwire -> <start_dir>/highwire.cfg render.c: - line 2212 (parse_text): overworked to avoid that every single text line gets its own paragraph struct. this saves memory and makes scrolling and resizing a bit faster. Variable.c: - line 11: in the fonts array, removed stuff that was left over from some testings. July 12, 2002 Baldrick's patches Paragraph.c - line 427 changed test to < 0 from <= 1 AltF4's patches defs.h: - line 276: in struct font_style, removed font and font_size. - line 280: replaced struct word_changed by union TEXTATTR plus access macros (to avoid problems with Lattice compiler). - line 288: in struct word_item, replaced structs styles and changed by union TEXTATTR attr, removed colour. - line 355: in struct frame_item substructure current, added struct font_style styles. this isn't handled any longer per word. global.h: - line 160: replaced decls of word_set_color(), word_set_point(), word_set_font() by macro defines. Paragraph.c: - line 38 (new_paragraph): reset style counters in frame->current because this becomes the first paragraph of a content. Redraws.c: - line 506ff (draw_paragraph): overworked to make use of word->attr instead of word->changed and word->styles. - line 578 (set_veffects): removed, not longer needed. render.c: - line 202 (parse_blockquote_tag) + 323 (parse_body) + 1179 + 1224 (parse_li_tag) + 1383 (parse_hr_tag) + 1497 (parse_img_tag) + 1815 + 2033 +2038 + 2079 (parse_html) + 2217 (parse_text): adapted to make use of word->attr. Table.c: - line 41 (table_start): save current style counters. - line 403 (free_stack): restore previous style counters. - line 405: removed resetting of word->changed. Table.h: - line 27: in struct s_table_stack, added SavedStyles to store style counters from frame->current. W_Struct.c: - line 43 + 61 (new_word): replaced setting of word->styles and word->changed by word->attr. - word_set_bold(), word_set_italic(), word_set_strike(), word_set_underline(): adapted to make use of word->attr and frame->current.styles. - word_set_color(), word_set_point(), word_set_font(): removed. July 7, 2002 AltF4's patches defs.h: - line 6: added define for BETATAG. HighWire.c: - line 232 (do_info_dialog): added BETATAG to the alert box. Loader.c: - line 363 (new_loader_job): improved 'about:' page. inet.c: - updated some gcc related stuff. July 2, 2002 AltF4's patches image.c: - line 902 (read_gif): corrected the start value of the Y scale counter to the half of a scaling step. else the loop performs (mostly) one line too much. July 1, 2002 AltF4's patches Containr.c: - line 254 (containr_byName): assigned the target name "_top" to the base container of a tree to make links with a target of this name working. image.c: - line 316 (setup): corrected calculation of y scaling. this was a serious bug that could cause crashes by overwriting out of boundary memory. Location.c: - line 117 (new_location): copy remote information from base location. Table.c: - line 891 (table_draw): fixed x position for table background. June 30, 2002 AltF4's patches Table.c: - line 72 (table_start): add space for cell border to the padding. - line 273ff (table_cell): rearanged to make it more logical. - line 443 (table_finish): preset table minimum/maximum width. - line 493: precalculate percent cell width if the table has a fixed size. - line 566: removed adding of cell spacing to the table minimum/ maximum width. June 28, 2002 Baldrick's patches Purewire.prj - modified stack setting to 16384 Paragraph.c - line 267 modified test to exclude PAR_IMG paragraphs - line 388 - 392 and 396 truely ugly test to avoid resetting the blocking area if our current alignment matches the blocking alignment (sorry no concentration today to make it look nice) - line 406 modified to += from just = - line 418 modified to += from just = (this aligns img's in row) - line 457 check if height is less than blocking.bottom and modify if it is (fixes one error in wrap_err2.htm) June 27, 2002 Baldrick's patches defs.h - line 385 new struct blocking_area definition (this handles an object area left/right align) paragraph.c - line 111 added parameter blocking_area *blocker to paragraph_calc - line 116-119 added internal tracking of width so we can reset width after passing a blocking area. - line 203 special case handling of ALN_CENTER if next to a blocking area added - line 214 adjust left offset if the word is next to a blocking area that is left aligned - line 265 check to see if next line will be past the bottom of the blocking area, if a blocking area exists. If it is clear out blocking area and reset int_width - line 284 if paragraph is a PAR_IMG set int_width to the img width - line 355 added img_par - tracks if current paragraph is a PAR_IMG - line 356 added our blocking area blocker - lines 358-360 init our blocking area to 0 - line 369 if we have an HR and a blocking area. Adjust height and reset blocking area and get proper width - line 384 - 421 supporting code for PAR_IMG paragraph handling - line 429 skip some adjustments if this is a PAR_IMG paragraph - line 443 check if we have a blocking area and if the new height is past the blocking area if so clear blocking area - lines 393 & 426 modified calls to paragraph_calc() to support blocking struct passing render.c - line 135 (get_align) rem'd out first test, do we need it? - line 426 (parse_div) modified add_paragraph line - line 428 (parse_div) set alignment via get_align() could be put back on line 426 possibly - line 1465 (parse_img) added code to set PAR_IMG on left|right aligned IMG tags June 23, 2002 AltF4's patches Makefile, purewire.prj, highwire.prj: - updated. http.h, http.c: - new files to handle HTTP expressions. inet.h, inet.c: - experimental stuff for later use. Loader.c: - line 140 (new_loader): presetting of Socket, isChunked, DataSize, DataFill. - line 354 (new_loader_job): the new created location object must be freed here, else it would never be deleted. - line 362: typo fixed. - line 181 (delete_loader) + 260 (loader_job) + 192: added experimental stuff. Location.h, Location.c: - line 272: experimental function, not used yet. Loader.h: - new attributes Socket, isChunked, DataSize, DataFill. render.c: - line 647 (parse_meta_tag): changed to make use of new function http_charset(). June 21, 2002 Baldrick's patches defs.h - line 261 (s_image struct) added short vspace global.h - line 147 modified prototype for new_image image.c - set_word() additions to calculations for img->vspace - new_image() added parameter short vspace - line 107 (new_image) set img->vspace - line 270 (image_job) modify rec.g_h by img->vspace loader.c - line 284 adjusted call to new_image() for 0 vspace redraws.c - line 534 adjust y by word->image->vspace render.c - line 1479 adjusted call to new_image() for vspace token token.h - line 130 added VSPACE key AltF4's patches global.h: - line 113: changed return type of parse_html() and parse_text(). - line 134: declarations for netlayer removed. HighWire.c: - line 57 + 71 (main) + 234 (highwire_ex): removed unused netlayer stuff. image.c: - line 256 (image_job): fixed redraw problem for windows in background. Loader.c: - line 74 + 78 (parser_job): removed setting of frame-item, this is already done at this point. - line 415 (load_file): removed unused netlayer stuff. - line 77 (parser_job): for unknown text types, detect if it has a html header to select the correct parser. - line 135 (new_loader): handling of 'mailto:' URIs added. - line 229 (new_loader_job): handling of 'about:' URIs added. - line 256: generates error page for unsupported/invalid URI protocolls. Location.c: - new_location(): overworked for proper parsing of the protocoll scheme of a URI. Location.h: - line 9: new attributes Proto, Port, Host. Makefile, purewire.prj, highwire.prj: - removed include of netlayer.c. netlayer.c, debug.c: - files deleted. render.c: - line 1777 + 1794 + 2189 (parse_html): return type changed to BOOL. - line 1781: new variable current, replaced all accesses to p_frame->current... by current... . - line 2185: content minimum calculation starts now with the first frame paragraph. - line 2200 + 2211 + 2269 (parse_text): return type changed to BOOL. June 20, 2002 Rainer's patches Location.c - line 172 moved ')' to before \n MOUSE_R.C - line 37 (button_clicked) removed wind_set() call - line 163 (button_clicked) expanded else with wind_set() call June 20, 2002 (HighWire 0.05 released) Rainer's patches - Some cleanups in the HTML folder June 17, 2002 (HighWire 0.5 release candidate 2) Baldrick's patches Render.c - new routine static H_ALIGN get_align() sets alignment for an object if it was not explicitly aligned. - removed else alignment setting in parse_img approx (line 1466) appears to be unneeded - replaced tests for alignment based on table alignment with get_align at lines 166 (set_center_text) + 574 (parse_header_tag) + 704 + 713 (parse_p_tag) AltF4's patches Table.c: - line 103 + 105 (table_row): added forgotten row count decrement. - line 97: inserted adjustment for rowspans over empty rows. June 17, 2002 AltF4's patches Render.c - line 149 (set_center_text) + 560 (parse_header_tag) + 693 + 705 (parse_p_tag) + 1466 (parse_img_tag): additional check for table stack work cell. June 13, 2002 Gamer's patches Documentation additions Baldrick's patches Documentation editing and additions Render.c - line 1468 (parse_img_tag) removed else for alignment from frame->alignment June 12, 2002 AltF4's patches defs.h: - line 3: added defines to make version setting more handy. HighWire.c: - line 240 (do_info_dialog): make use of version define. image.c: - line 719 (raster_24) + 743 (raster_32): fixed #ifdef. - line 858 (read_gif): added transparency for 16bit. - line 878: fixed colour map entry access. Baldrick's patches Defs.h - added H_ALIGN alignment to struct frame_item Frame.c - line 35 (new_frame) set default alignment to ALN_LEFT Render.c - set_center_text() reworked to modify frame->alignment - line 412 (parse_div_tag) set paragraph->alignment to frame->aligment - line 563 (parse_header_tag) paragraph->alignment set to frame->alignment - line 696 (parse_p_tag) alignment set to frame->alignment - line 708 (parse_p_tag) alignment set to frame->alignment - line 2468 (parse_img_tag) added else to set to frame->alignment June 11, 2002 AltF4's patches global.h: - line 118 + 160: extended argument lists of new_step() and new_word(). image.c - line 720 (raster_24) + 746 (raster_32): fixed typos. Location.c: - line 26 + 50 + 101 (new_location): changed definition of the fallbck directory, makes it a bit more handy for developers. O_Struct.c: - line 66: extended new_step() with initial font colour parameter. Paragrph.c - line 39 (new_paragraph) + 83 (add_paragraph): adapted call of new_word(). - line 81 (add_paragraph): removed clearing of current paragraph, this was a bug. render.c: - line 1483 (parse_img_tag) + 1811 (parse_html) + 2098 + 2155: adapted call of new_word(). - line 1793 (parse_html): adapted call of new_step(). Table.c: - line 48 (table_start): adapted call of new_step(). W_Struct.c: - line 36 + 75: extended new_word() with an boolean if this word shall be linked by a previous word. June 10, 2002 Baldrick's patches redraws.c - line 687 (parse_p_tag) added test for table stack and set alignment to workcell if we are in table and have no forced alignment - line 699 (parse_p_tag) added test for table stack and set alignment to workcell if we are in table - line 1460 (parse_img_tag) if we have no align and are in a table set paragraph alignment to current table cell alignment AltF4's patches image.c: - new function delete_image(). - image_calculate() moved below delete_image(). - raster_D1(): improved for better speed and graphic. - raster_24() + raster_32(): #defines for Lattice C. - line 832 (read_gif): precalculate intensities for monochrome screen. - line 851: added transparency for >= 24 planes. Paragrph.c: - line 132 (paragraph_calc): check for invalid word_item added. render.c: - line 1443 (parse_img_tag): overworked to avoid empty paragraphs before images. - line 1910 (parse_html): fixed to catch <br> after an image. W_Struct.c: - line 18 (destroy_word_structure): also delete images. June 9, 2002 AltF4's patches global.h: - line 154: new function image_calculate(). image.c: - line 65: previous image_calculate() renamed to set_word(). - line 83: new function image_calculate() to calculate and reload (if necessary) images with percent width. - line 125 (new_image): alt_h now holds always the original height of the image's word_item. - line 182 (image_job): old_w/_h initialized by img->disp_w/_h. - line 264 (setup): improved size calculation. - line 822 (read_gif): size calculation is done by setup() now. Paragrph.c: - line 127 + 147 (paragraph_calc): overworked to make use of image_calculate(). Redraws.c: - line 605 (draw_paragraph): outcommented the case ALN_TOP, this breaks the calculation in image.c:set_word(). - line 630: changed test for ALT text display. - line 420 + 310: removed outcommented functions. render.c - line 234 (parse_anchor): avoid underlined text behind not correctly closed anchors. solves bugtrack #36. - line 1469 (parse_img_tag): removed setting of default ALT text. W_Struct.c: - line 109 (word_store): fixed minimum width of images. June 7, 2002 Baldrick's patches Image.c - line 220 changed contanr_calc() to a test with a contanr_redraw() if it returns TRUE (fixes imgtest.htm of dillo test suite) Redraws.c - line 605 (draw_paragraph) added case for ALN_TOP now display behaviour equivalent of IE IMGTEST.HTM just to test IMG alignments June 6, 2002 AltF4's patches - reworking object alignment Paragrph.c, Redraws.c - reverted to previos version image.c: - line 62: new function image_calculate() to set the image word's ascend and descend (word_height and word_tail_drop) according to the vertical alignment. - line 136 (new_image) + 191 (image_job): word size calculation is done now by image_calculate(). render.c: - line 544 (parse_header_tag): corrected setting of text colour. - line 1415 (parse_img_tag): preserve word_item attributes which will be changed for the image only. - line 1416: set align to -1 per default. - line 1431: handling of KEY_ALIGN stays mutual exclusive for either a new paragraph (left/center/right) or a vertical shift (top/middle/bottom). default is bottom. June 5, 2002 Baldrick's patches Paragraph.c - paragraph_calc reworked to support vertical alignment - line 145 catch first word in paragraph to get proper initial values - line 169 added switch statement for vertical alingment Redraws.c - line 605 (draw_paragraph) added case ALN_TOP and ALN_MIDDLE Render.c - line 1445 added cases for center, bottom and top ALIGN - line 1494 added current->word->vertical_align = next - line 1502 changed next to ALN_BOTTOM - parse_p_tag() overworked to use start_tag so we close paragraphs - line 1868 reset vertical align after a BR tag - line 1956 modified parse_p_tag() call - line 2015 changed ALN_MIDDLE to ALN_BOTTOM fix for SUB - line 2026 changed ALN_MIDDLE to ALN_BOTTOM fix for SUP AltF4's patches defs.h: - line 215: removed obolete attr_list. - line 355 (struct frame_item): moved current_font_step into current substructure. - line 357: removed unused current_attr. - line 372 (struct list_stack_item): renamed current_list_count to counter, that's much more handy. - line 374: removed line_start, added Hanging and Spacer instead. Frame.c: - line 44 (new_frame): removed unused current_attr. O_Struct.c - reworked declaration and malloc of temp - line 112 (new_stack_list_item): removed line_start. render.c - line 41: new functions step_push()/step_pop() to make usage of font_step more handy. - line 305 (parse_d_tags): overworked to make it common to ol/ul handling. - line 367: new function parse_basefont(). - line 386 (parse_font_tag) + 549 + 532 (parse_header_tag): changed to make use of step_push()/step_pop(). - line 568 (parse_menu_tag): overworked to make it common to ol/ul handling. - line 791 (list_marker): removed trailing EM_SPACE and call of new_word(). - line 1154 (parse_li_tag) + 1238 (parse_ol_tag) + 1312 (parse_ul_tag): overworked. - line 1775 (parse_html): removed unused variables fontstep, prev_sm_size, prev_su_size. - parse_html(): cases TAG_BASEFONT uses parse_basefont() now. - parse_html(): cases TAG_BIG, TAG_SMALL, TAG_SUB, TAG_SUP changed to make use of step_push()/step_pop(). Table.c: - line 42 + 48 (table_start) + 376 (free_stack): renamed current_font_step June 4, 2002 Baldrick's patches Redraws.c - line 605 added case ALN_TOP - line 606 added case ALN_MIDDLE RENDER.C - line 1447 (parse_img_tag) added V_ALIGN next (next paragraph vertical alignment) - line 1449 (parse_img_tag) set current word v align to next - line 1463 (parse_img_tag) added if's for align top, bottom and middle. Set next to align val, par->align left and align = -1 - line 1517 (parse_img_tag) set current word v align to next June 3, 2002 Baldrick's patches Render.c - reworked step2size() routine to make sizes dynamic and modified whenever font_size is changed - line 410 changed "- '0'" to "+ '0'" AltF4's patches Frame.c: - new_frame(): corrected setting of frame->item. global.h: - line 159: removed add_word(), changed new_word() declaration. - new functions to set word attributes. image.c: - added missing raster_P8(). O_Struct.c: - new_step(): added initialisation of colour to avoid funny font colour effects. - add_paragraph(): cleaned up. Paragraph.c: - new_paragraph() + add_paragraph(): adapted to changed new_word(). render.c: - line 68: removed obj_font_step(). - line 2057 (parse_html, case TAG_TABLE): removed modification of text attributes. - line 2086 (parse_html, case TAG_TH): removed bold setting, will be done by table_cell(). - removed set_font_bold(), set_font_italic(), set_font_strike(), set_font_underline(). - replaced all calls of removed functions by the corresponding word_set_...() calls. - replaced all word->colour = ... by word_set_color(). - replaced all word->styles.font_size = ... by word_set_point(). - replaced all word->styles.font = ... by word_set_font(). - removed all word->changed... = ... - line 23: new function step2size() to map a font_step to a font_size. - parse_font_tag() + parse_header_tag(): overworked to make use of step2size(). - line 1202 (parse_li_tag): fixed wrong calculation of the negative eop. _ parse_html(): cases TAG_BASEFONT, TAG_BIG, TAG_SMALL, TAG_SUB, TAG_SUP overworked to make use of step2size(). Table.c: - line 41 (table_start): store current font_step of the frame. - line 48: reset font_step. - line 265: set text attribute to BOLD for <th> tags. - line 383 (free_stack): reset to stored font_step, set all text attributes to 'changed'. Table.h: - line 19: in struct s_table_stack, new attribute SavedFntStp. W_Struct.c - new functions to set word attributes. - line 36: merged add_word() and new_word() to one function. - line 75 (new_word): added condition where to link to a previous word. May 31, 2002 Baldrick's patches Defs.h - added Indent to list_stack_item - this tracks the current indentation for the list Render.c - line 457 (parse_d_tag) added check for paragraph->Indent>0 otherwise 2 subsequent DT tags would cause the second to be to the left of the viewport - line 657 (parse_header_tag) modified test to check that we aren't at the start of a list as well. - line 659 (parse_header_tag) ,pved eop_space inside of the test for lists - line 831 (parse_p_tag) if we are in a list or we are in a list and we are at list_start don't add a new_paragraph and ignore alignment - line 833 (parse_p_tag) moved eop_space inside of the test for lists - parse_li_tag() heavily reworked to make all li tags and contents seperate paragraphs - parse_ul_tag() and parse_ol_tag() reworked to deal with list_stack_item Indent - parse_menu_tag() reworked to deal with list_stack_item->Indent - line 2176 (parse_html) set prev_su_size before process TAG_SUB - line 2190 (parse_html) set prev_su_size before process TAG_SUP - line 2207 (parse_html) call obj_font_step() - new routine obj_font_step() used for storing font attributes when entering and exiting objs (like tables) NOTE this routine only partially working. May 29, 2002 Baldrick's patches Aei.c - line 425 (process_messages) don't containr_relocate() if iconified - line 432 (process_messages) added win_status = 0 when window is resized - line 436 (process_messages) replaced window_handle with msg[3] - line 439 (process_messages) replaced window_handle with msg[3] - line 442 (process_messages) added GRECT old - line 443 (process_messages) get work area to old - line 447 (process_messages) redraw window at old - line 450 (process_messages) replaced window_handle with msg[3] Mouse_r.c - button_clicked() - do we need the first test now? I added a note about it - line 37 - added wind_set(window_handle,WF_TOP...) this tops the window whenever we click inside of it - line 42 - rem'd out else in this test so that I could put the WF_TOP in for all occurences easily Render.c - line 384 (parse_body) added set p_frame->current.word->colour to current_font_step->colour if TEXT color tag exists (fixes excerpt.htm) AltF4's patches color.c: - remap_color(): reworked to get more excact results. Containr.c: - line 632 (containr_scroll): changed if conditions to avoid a bug in the Lattice C compiler. (in conjunction with David) defs.h: - line 349 (struct frame_item): new attribute base_target. Frame.c: - line 35 (new_frame): setting of base_target. - line 73 (delete_frame): freeing of base_target. image.c: - line 76 (new_image): inserted setting of frame's text buffer. - line 79 (new_image): changed calculation of percent size. - raster_I8(): optimized assembler function to speed up falcon 8 bit color depth. - inserted an #ifdef to avoid linker problems with Lattice C. (in conjunction with David) Location.c: - line 31 (_alloc): changed size calculation for malloc(). - line 167 (new_location): inserted incrementation of refference counter. not doing so produces always location in the state "ready for immediate deletion"! Location.h: - line 14: enlarged FullName array, this should be enough reserve for miscalculated string lengths now. parser.h, parser.c: - new function get_value_size(). pc_raster.s: - new pc_raster_I8() function to speed up falcon 8 bit color depth. - line 27: corrected addressing mode. render.c: - parse_anchor(): the anchor target is now copied from the frame's base target if not explicitely given. - new function parse_base() stores the base target of a frame. - parse_img_tag(): width and height are read by get_value_size(). Table.c: - line 27: static get_value_size() moved over to parser.c. token.h: - line 20: new tag BASE. May 24, 2002 Baldrick's patches Render.c - parse_header_tag() - line 612 removed old comment, added test for current_list. if a H tag occurs in a list we suppress new paragraph and alignment - line 668 modified line so that alignment comes from table cell - parse_html() - line 2113 added code to reset font size on entering and exiting tables. I'm not certain this is correct, but does produce output much closer to other browsers. I just made a blanket case reset. There are probably conditions to watch for that I'm not aware of atm. May 23, 2002 Baldrick's patches Render.c - set_center_text() - added check on close to see if we are in a table, if we are then we set the alignment based on the table cell alignment AltF4's patches Image.c - line 565 add & before pal May 21, 2002 (evening) AltF4's patches paragraph.c - line 140 add initialisation for last May 21, 2002 Baldrick's patches - not really patches just minor changes for testing here Image.c - disabled printf (just wanted to see how much time the print took) Highwire.PRJ - enabled image support (wanted to compare times vs gcc compile) AltF4's patches AEI.c: - line 139 (wind_handler): added handling of image notification, needs to be overworked soon. defs.h: - in struct frame_item, added current.backgnd, used for image transpareny. - struct s_image extended. - moved typedef for PARAGRAPH Frame.c: - line 46 (new_frame): setting current.backgnd from initial background_colour. global.h: - line 153: extended parameter list of new_image(). image.c: - first iplementation to make use of libungif decoder functions. Loader.c: - line 68 (parser_job): set containr's frame (temporary solution). - line 109: set 'Appl' of MIME_IMG_GIF to NULL, for auto loading. - line 224 (new_loader_job): removed check for empty 'address', already resolved in new_location(). - line 255: added handling for Image Mime Type. Location.c: - line 84 (new_location): if no 'src' string is given the '__base' location will be used instead of creating a new one. - line 158: removed duplicate pointer zeroing. - line 175 (free_location): made shure not to free the base location. Paragrph.c - line 190 (paragraph_calc): added calculation of image extent. pc_rastr.s: - assembler function for monochrom rasterizer (optional). purewire.prj: updated for usage of ungif.lib. Redraws.c - line 11: removed unused #defines. render.c: - line 372 (parse_body): set current.backgnd color. - line 1522 (parse_img_tag): overworked to avoid empty <alt> tags. Table.c: - line 67 (table_start): save current frame background color. - line 287 (table_cell): set frame's current background color to cell background. - line 397 (free_stack): reset frame's background to the stored color. Table.h - line 20 (struct s_table_stack): new attribute Backgnd to store the current frame background color. David Leavers patches Global.h - line 22 EINVFN 32 changed to EINVFN -32 Loader.c - line 700 modified line to be a strcat (old line kept below for moment) May 20, 2002 Baldrick's patches Highwire.c - main() - added variable long gdostype - moved vq_vgdos() outside of test line - two test lines 1 used 1 as backup - either test to see if gdostype is -2 or Fontgdos - or test if gdosttype is not FSM_GDOS or -65532L - test number 2 used at the moment Paragraph.c - paragraph_calc() - line 114 added TEXTWORD last; - line 161 added last = word - line 169 added if last->line_brk justify = 0 test - line 171 added if line->NextLine!=Null control on justify - line 173 added else justify = 0 Render.C - parse_header_tag() - modification in close header tag. Now takes alignment from tablestack if a current tablestack exists for the frame David Leaver's patches Highwire.PRJ (lattice PRJ file) - source character set to 8 bit ASCII - default char unsigned - TTLOAD & TTMALLOC flags set Scanner.C - removed ifdef LATTICE code May 17, 2002 (version 0.04 released) Baldrick's patches - More last minute changes to dletter.htm hwdoc.htm and highwire.doc inclusion of URL's for mailing list and project homepage AltF4's patches Loader.c - line 222 : base changed to : location_share(base) May 16, 2002 David Leaver's patches defs.h - line 49 - remove final comma in definition of LANGUAGE - line 405 - #endif /* __PUREC */ - line 400 - "seems" - spelling correction container.h - line 28 - remove final comma in definition of HW_EVENT table.h - line 76 - #endif /* _TABLE_H */ loader.c - line 462 - add semicolon at end of statement - My Lattice doesn't recognize E_OK so I inserted #define E_OK 0x00 in the #ifdef LATTICE section at the top of the file. token.h - line 75 - remove final comma in definition of HTMLTAG - line 130 - remove final comma in definition of HTMLKEY scanner.c - For some reason Lattice doesn't like the '€' in line 563, so I changed this to 128. The pre-processor seems to remove the €, leaving just '' (baldrick - I put this in an #ifdef #endif pair) GokMase's patches - some suggestions on changes to documentation and developer letter - standardisation of 'color' over 'colour' in developer letter. May 14, 2002 AltF4's patches Table.c: - line 108 (table_row): overworked to filter out empty rows. - line 386: new function free_stack(). - line 385 (table_finish): inserted handling of the last row in the table. - line 388 + 398: made shure that also errornous tables are finished properly. May 13, 2002 Baldrick's patches Edited the documentation Rainer's patches Documentation and html cleanups AltF4's patches defs.h: - line 101: removed unused defines TEXT_DECODER, HTML_DECODER. global.h: - line 106: removed search_for_named_location() declaration. - line 117: added comment. - line 165: changed Send_AV() declaration. Logging.h: - line 37: added forgotten argument type. Logging.c: - line 13: inserted missing #include. parser.c: - line 15: removed duplicate #define. render.c: - line 17: inserted missing #include. - line 2360: put #ifndef around check, doesn't work with gcc. Loader.h: - line 49: corrected #endif. Loader.c: - line 417 (load_file): removed wrong cast. - line 658 (page_load): inserted missing braces. keyinput.c: - line 16: inserted missing #include. - line 20: made function static. - line 63 (key_pressed): removed unused last_location. av_prot.c: - line 21: made function static. - line 56 (Send_AV): changed char pointer arguments to const. - line 58: inserted #ifdef to keep PureC quiet. AEI.c: - line 118 (wind_handler): inserted #ifdef to keep PureC quiet. - line 181: inserted forgotten initialisation of global pointers. Makefile, highwire.prj: - updated. May 10, 2002 Baldrick's patches global.h - added ifndef EINVFN - define EINVFN for PureC (at least my copy) Rainer's patches global.h - Added aes_window_title_length, appl_xgetinfo(). - removed prototype blit_block() - unused HighWire.c - added include "logging.h" - main() - added var. info - Replaced can_extended_mxalloc() by Sysconf(). - replaced 0's in color init with defines - Use appl_xgetinfo() to ask for new AES features. - Show an alert and exit if the resource file didn't exist. - For N.AES set aes_window_title_length to 128. Loader.c - page_load() - Checks if fsel_exinput() is allowed. - Replaced init_load() by new_loader_job(). The original AES doesn't like the second wind_open() in init_load(). - can_extended_mxalloc() is a candidate for deletion (baldrick - I don't want to remove it before we know we won't need it for some developer) Logging.c, Logging.h - init_logging() - New, for single TOS. Redraws.c - removed stdio.h include - replaced many decimal colors with defines - draw_hr() - Uses ignore_colors. render.c - window_title buffer moved - parse_block_quote modified - parse_title() - Window title buffer extended from 80 to 129 byte, including null byte. - Characters after the maximum lenght will be ignored now. - Uses aes_window_title_length. - parse_img() - Uses scan_string_to_16bit() for ALT text. - parse_html() - Added 'space_found = FALSE' after tag IMG for pictures in a text line. scanner.c - scan_string_to_16bit() - New, for string parameters of HTML keys. - modified some of the conversion tables uni_bics.c - Updated. Variable.c - Added aes_window_title_length. May 9, 2002 Baldrick's Patches - a few english translations added to some german descriptions of routines Highwire.c - changed GEM Menu version to .2 (I think there has been enough expansion to justify at least that) - changed Core version to .4 (getting ready for release ) Rainer's Patches AEI.C - added loader.h and logging.h - new routine WORD appl_xgetinfo() - wind_handler() replaced printf() with errprintf() - removed GLOBAL and MALLOCMODE defines - vastart() rewrote routine to handle dequoting of filename - doGSCommand() changed return value to BOOL, simplified routine - process_messages() changed return value to BOOL, simplified routine av_prot.c - Receive_AV() - Changed return value to BOOL. - Send_AV() - Changed return value to BOOL. - Simplified; defs.h - Moved macro numberof() from scanner.c. - Deleted POINT_SIZE. - removed ENCODING encoding from frame_item Frame.c - new_frame() - removed encoding initialization - Changed POINT_SIZE to variable font_size. Global.h - added externs for active_keyboard_frame, font_size, alternate_text_on help_file - ignore_colours now BOOL - page_load() now BOOL - removed get_decoder_type and load_file prototypes Highwire.c - externs added for xaccname,gslongname,gsi,va_helpbuf - init_netlayer() failure now returns EXIT_FAILURE - Moved and merged all allocating of GLOBAL memory. Added check for NULL. - Activated scrolling in background, only for AES >= 4.00.( WF_BEVENT ) - many replacements of numerals with Defines keyinput.c - added include for logging.h - added routine frame_next() - key_pressed() - Added CTRL+R and F5 for reload. - Added F7 to toggle logging. - Added F8 to toggle pictures or alternative text. - Added F1, Help to load help_file. - Added keyboard scrolling for first_frame: left, right, (page) up, (page) down, home, end. - Added + to increase and - to decrease font_size. - Using global active_keyboard_frame. Added Tab to cycle frames. Loader.c - added prototype for static load_file() - parser_job() - removed frame->encoding - Sets global active_keyboard_frame. - new_loader() - variable i changed to size_t from int - modifications to while loop controls - Set MIME type of a directory listing or default file to HTML. - loader_job() - modification of load_file() call. Old call kept in REM since I'm not certain this is correct (baldrick May 10, 02) - find_application() - Added missing comma in list[]. - new_loader_job() - Parameter address == NULL: reread the file with default_encoding. - modifications to new_loader() call - encoding = default_encoding moved to new location (physically and struct) - modifications to test line printout - load_file() - changed prototype to static and parameter to LOCATION from char * - If there is no file name, try to open index.htm[l]. - Updated handling of encoding. - added char help_file[HW_PATH_MAX]; - page_load() - changed to BOOL declaration - FSEL_CANCEL replaces 0 - init_path() - Added help_file, initialized with "...\hwdoc.htm#Use". Loader.h - removed ENCODING from struct s_loader Location.c - added include Logging.h - _alloc - added encoding and Anchor init - new_location() - IF NOT LIBWWW section added - Added a conversion of "http://" or "ftp://" to "C:\WWW\". This is my personal web collection. HighWire should read the path from config file. ( We may need to modify this when writing online sections - baldrick) - line 69 path modification added - line 87 modification of path testing - logprintf call added at bottom of routine Location.h - ENCODING encoding added to s_location struct Logging.c, Logging.h - New files. errprintf() prints always, logprintf() if switched on with F7. Mouse_R.c - button_clicked() - Mouse click to background changes active_keyboard_frame. parser.c - removed numberof define. it's elsewhere now - parse_tag() - Corrected comment parsing. PC_START.S - New startup code for PureC compiles render.c - added Logging.h and time.h includes - removed stdio.h include - Created a macro EOP() for global adjustment of eop_space. - list_indent() replaced POINT_SIZE with font_size - set_blockquote_text() - Renamed to parse_blockquote_tag(). Corrected description. I tried to implement the TITLE attribute. This leads to a need for the future. - parse_anchor() addition of test for KEY_ID - parse_d_tag() - Save indent calculated at DL parsing for DD. - parse_div_tag() - Corrected former negative space between paragraphs. - parse_font_tag() (I've included this in the source between #if 0 #endif for testing) - Made the hard coded 12 point size using fonststep. - parse_header_tag(), parse_hr_tag(), parse_menu_tag(), parse_ol_tag(), parse_ul_tag(), parse_p_tag() - Added eop_space before lists. - parse_meta_tag() - enconding now points to Location->encoding - parse_img_tag() - Alternative text for pictures, toggled with F8. - parse_frameset() - printfs replaced by errprintf() - parse_html(), parse_text() - Longer buffers for lines with unrecognized UTF-8. - Check for too long lines. - Enhanced white space ignoring. (<A ...> ...</A>) - timing and debugging info added - brackets added around start_tag code in TAG_IMG scanner.c - numberof() moved out of file - FIGURE SPACE 560 instead of Space_Code for the NO-BREAK SPACE, since the latter is ignored when drawing at line start. - Corrected Unicode_to_BICS[]. Token.H - added TAG_TITLE, TAG_TEXTAREA Variable.c - regrouped items in file - Added font_size. - Added active_keyboard_frame. gem.h (placed in 'includes' folder) - Added "#define MAP_UNICODE 2". uni_bics.c, uni_bics.prj (placed in 'tools' folder) - New files. Creates a HTML file with the Unicode characters supported by HighWire. May 3, 2002 Gamer's patches HwDOC.htm & highwire.doc updated AltF4 patches global.h: - changed declaration of new_image(). W_Struct.c: - line 108 (word_store): corrected calculation of minimum width for image items. Paragraph.c: - line 86 (add_paragraph): 'origin' must be inherited from current paragraph. image.c: - changed declaration of new_image(). Table.h: - extended declaration for table_row(). Table.c: - line 105 (table_row): better support for missing <tr> tags. render.c: - parse_img_tag(): small improvements, removed obsolete comment. Redraws.c: - line 549 (draw_image): make use of vrt_cpyfm() for images with color depth > 1. May 2, 2002 AltF4 patches (these are from the end of april) defs.h: - line 246: new struct s_image. the leading members are full compatible to a MFDB of the VDI for easy casting. - in struct frame_item, added a struct named_location ** to the 'current' substructure. - in struct named_location, changed the link pointer to a const char pointer. - modified the url_link structure to have a union of either a target name pointer or a struct named_location pointer. global.h: - line 141: new declarations for image functions. - changed declarations of new_url_link(), new_named_location(), paragraph_calc(), content_calc(). image.c: - new file image functions. W_Struct.c: - new_word() + word_store(): adapted to handle word_items with images. - line 47 (new_word): adapted to changed struct url_link. Paragraph.c: - line 273 (content_maximum): additional check against empty word_items. - line 312 (content_calc): removed handling of PAR_IMG since this isn't a special case anymore. - paragraph_calc(): removed allocating of named_location structs, this is already done by the renderer function. - content_calc(): removed handling of named_location structs, no longer necessary here. token.h: - line 97: new key 'ALT' for <IMG> tags. render.c: - line 1390 (parse_img_tag): completely overworked for new image handling. - parse_anchor(): all strings are allocated here since new_url_link() doesn't make copies anymore. for anchor tags <A NAME=...> the needed struct named_location is also created here. Redraws.c: - draw_image(): overworked to make usage of new image structure. - draw_contents(): removed handling of PAR_IMG since this now handled by the draw_paragraph() function. Makefile, purewire.prj, highwire.prj: - Updated. O_Struct.c: - new_url_link(): strings are now taken over without duplication to avoid needless mallocs. Table.h, Table.c: - table_calc(): removed handling of named_location structs, no longer necessary here. Frame.c: - new_frame(): setting of struct named_location ** in 'current' substructure. - frame_calculate(): removed handling of named_location structs, no longer necessary here. - frame_anchor(): adapted to changed struct url_link. Mouse_R.c: - line 146 (button_clicked): adapted to changed struct url_link. April 25, 2002 AltF4 Patches AEI.c: - new function wind_handler() to recive messages generated by containers. Loader.c: - parser_job(): replaced wind_redraw() call by containr_notify() to let an asigned callback do necessary things after page loading finished. - new_loader_job(): inserted containr_notify() for page loading started notification. - load_file(): removed setting of window title, this function isn't responsible for that anymore. - init_load(): registers the wind_handler() function (in AEI.c) as the callback for containers. render.c: - parse_title(): makes now usage of containr_notify() to let a callback handle the <title> contents. - parse_html() + parse_text(): removed setting of mouse form, these functions aren't responsible for that anymore. Containr.h, Containr.c: - new function containr_register() to assign a callback function to a container hirachy. the callback will be called for every dynamycal change in the container hirachy to avoid AES calls inside library functions. for details see the header file. April 24, 2002 AltF4 Patches global.h: - removed global variables event_messages and the_first_frame. - changed declaration of process_messages(), button_clicked(), check_mouse_position(), key_pressed(). Variable.c: - removed global variables event_messages and the_first_frame. - initialize current_highlighted_link_area and ..._frame. Table.h, Table.c: - new attribute for TableStack to save alignment outside of the table. Frame.c: - delete_frame(): added a check against NULL pointers. - frame_calculate(): corrected if condition for horizontal slider. Containr.c: - containr_clear(): removed handling of the_first_frame. render.c: - parse_html(): cases TAG_TABLE, TAG_TD, TAG_TH adapted to changed table functions. Loader.c: - parser_job(): removed handling of the_first_frame. keyinput.c: - key_pressed(): overworked to have combinations with ALT key working. Mouse_R.c - button_clicked(): removed usage of the_first_frame. AEI.c: - process_messages(): the function argument is the message array now, instead of using a global. HighWire.c: - adapted the event loop to changed function declarastions. April 23, 2002 AltF4 Patch via mailing list frame.c - line 130 changed >= to > in test line April 16, 2002 AltF4's Patches global.h, AEI.c: - new functions wind_redraw() and wind_scroll(). - line 300 (process_messages): case WM_REDRAW now results in a wind_redraw() instead of a direct containr call. Redraws.c: - frame_draw(): argument list changed to take now a const pointer. Containr.h, Containr.c: - new function containr_scroll() which allows eight-direction scrolling. - temporary function frame_next() removed. Mouse_R.c: - functions button_clicked() and frame_clicked(), overworked to make use of new functions. Loader.c: - line 91 (parser_job): containr_redraw() replaced by wind_redraw. April 14, 2002 AltF4's Patches defs.h: - line 337: removed frame_named_location from struct frame_item, not longer used. global.h: - line 77: changed argument for new_frame(). W_Struct.c: - line 47 (new_word): anchors aren't any longer inherited from previous words, only links are. this reduces the list of anchors to the necessary length and makes the search after a user click shorter. Paragrph.c: - line 129 (paragraph_calc): more restricted while condition to make it possible to find also empty anchors. Frame.c: - new_frame(): modified to take a location instead of an anchor as argument. - frame_calculate(): removed calculation of absolute anchor offsets. - new function frame_anchor() to find an anchor in a frame's content. Containr.h, Containr.c: - new function containr_Anchor() to calculate the distance between the current content's origin and an anchor. - new function containr_shift() to update a content's origin and it's sliders. render.c: - line 299 (parse_anchor): modified to avoid wrongly underlined anchors and also avoid switching off underline after a wrong </p> tag. Redraws.c: - line 35 (frame_draw): removed the search for an anchor, this is no done elsewhere. Mouse_R.c: - line 189 (frame_clicked): modified to make use of new anchor func tions instead of make the calculations itself. Loader.c: - parser_job(): adapted to changed new_frame() argument list. April 13, 2002 AltF4's Patches defs.h: - line 324 (struct frame_item): collected slider related struct members into own substructures. global.h: - line 66: added missing prototypes. Frame.c: - frame_calculate(): adapted to make use of slider substructures. - new function frame_slider() to calculate the slider position from the scroll value. Mouse_R.c: - frame_clicked(): overworked to take advantage of precalculated values of the slider substructures. - button_clicked() + check_mouse_position(): adapted to slider substructures. Redraws.c: - draw_vbar() + draw_hbar(): overworked to take advantage of the precalculated values of the slider substructures. Containr.c: - line 505 (containr_redraw): disable drawing of fill perimeters. April 10, 2002 Baldrick's patches - updated HIGHWIRE.DOC, HWDOC.HTM & DLETTER.HTM April 8, 2002 AltF4's patches Location.h, Location.c: - new module to store locations from where data were loaded. defs.h: - struct frame_item: new attribute Location. Loader.h: - attributes FileName, Anchor, Address are now held by new attribute Location. - declarations for new_loader() and new_loader_job() changed to make use of Location. Loader.c: - line 62 (parser_job): set frame's loacation. - line 138 (new_loader): removed old attribute settings. - new_loader_job(): reworked to make use of Location attribute. - init_load(): additional NULL parameter for new_loader_job(). render.c: - line 1552 (parse_embed) 1582 (parse_frameset): additional location argument. - line 1557 (parse_embed) 1642 (parse_frameset): additional frame location parameter for new_loader_job() call. Frame.c: - line 21 (new_frame) + 68 (delete_frame): new attribute Location. Mouse_R.c: - line 322 (frame_clicked): additional frame location parameter for new_loader_job() call. keyinput.c: - line 52 + 59 + 62 + 65 + 68 (key_pressed): additional frame location parameter for new_loader_job() call. Makefile, purewire.prj, highwire.prj: - updated. April 05, 2002 AltF4's patches F_Struct.c, F_Calc.c: - merged together in new file "Frame.c". P_Struct.c: - renamed to "Paragrph.c". - new_paragraph() + add_paragraph(): adapted to changed structure. Table__N.c: - renamed to "Table.c". - paragraph_calc() + content_calc(): moved over to Paragrph.c where they belong to. defs.h: - removed several definitions which are also located in gem.h. - struct paragraph_item: removed unused left_border, right_border, current_paragraph_height, area. - struct frame_item: removed unused frame_width, frame_page_width, current_page_height, frame, current_indent_distance. global.h: - removed already outcommented declarations. Table.h: - moved some declarations over to defs.h: render.c: - removed all occurences of current_indent_distance, this value was always only calculated but never read by any part of the code. - replaced all occurences of two line expressions *active_word = ..; active_word++; by one *(active_word++) = ..; Loader.c: - line 724 + 752: replaced number values by defined MagX_cookie. Redraws.c: - removed already outcommented functions. Makefile, purewire.prj, highwire.prj: - updated. April 03, 2002 AltF4's patches defs.h: - struct frame_item: new attributes page_minimum, page_width, page_height to replace ambigous frame_width, frame_page_width, current_page_height and struct clipping_area frame. global.h: - out commented not longer used function declarations calculate_frame_height() and calculate_frame_locations(). F_Struct.c: - new_frame(): adapted to new frame attributes. F_Calc.c: - new function frame_calculate() to merge calculate_frame_height() and calculate_frame_locations(). this makes calculations a bit faster. Containr.c: - containr_relocate(): fixed wrong settings of absolute frame offsets. render.c - line 2341 (parse_html) + 2422 (parse_text): adapted to new frame attributes. Redraws.c: - draw_vbar() + draw_hbar(): adapted to new frame attributes. - blit_block(): simplified the code and removed useless vs_clipp() calls. added missing v_hide_c() and v_show_c(). Mouse_R.c: - frame_clicked(): adapted to new frame attributes. April 01, 2002 AltF4's patches defs.h: - new enum for languages (by rainer). - replaced all 'enum bool' by BOOL. - removed old alignment enums. global.h: - removed #ifdef _NEW_TABLES. - removed global variable 'frames_recalculated'. HighWire.c: - adapted core version to current 0.3. Table__N.c: - moved #include "token." before <gem.h>. Variable.c, Mouse_R.c: - removed 'frames_recalculated'. config.c: - replaced 'false' and 'true' by uppercase. W_Struct.c, P_Struct.c: - replaced old alignment enum. F_Calc.c: - replaced 'false' and 'true' by uppercase. - removed 'frames_recalculated'. Redraws.c: - replaced all occurences of old alignment enums. - removed 'frames_recalculated'. render.c: - replaced last both occurences of lower case 'true'. - replaced all occurences of old alignment enums. - applied patches of Mar. 26, 27, 28. Container.c, render.c: - applied patches of Mar. 26, 27, 28. March 30, 2002 Rainer Seitel's patches (these may appear elsewhere as well) - For compiling with Pure C 1.1 (file size 226538, file date 1992-10-25), I had to move the declarations from Table__N.c to Table.h, then including Table.h and Containr.h at the end of defs.h. - I marked places with bugs or to do's with a comment beginning with the searchable "BUG: ". - I hope I replaced all path and file name sizes by HW_PATH_MAX. In defs.h it is defined as 260, which is the VFAT standard. This should done dynamically. - Added "/* @(#)highwire/filename.ext" as first line to all files changed by me. Exact two empty lines before every function. purewire.prj - Default char is explicitely unsigned char. - Stack size is explicitely set (open source!). render.c - scan_html(), scan_text() - Corrected control character interpretation. - Added tags META, PLAINTEXT. - parse_li_tag() - Added two vst_arbpt() for caculating minimum width in list_marker(). - list_marker() - Added Roman numerals. - Extended numbers and alphabet numerals. - Make shure there is enough place for long numbers. Same as CAB, but shall we set the maximum to all when reaching </OL>? - Marked all BICS with a searchable comment "/* U+". - parse_anchor() - Check also for CHARSET and ID. - New: parse_meta_tag(), checks for Content-Type ... charset. - New: parse_q_tag(), prints language dependent qoutation marks. - Replaced all "int flag" by "BOOL start_tag" and deleted several explanations, only stating that flag means start tag. Using FALSE, TRUE. token.h: - Added tags META, PLAINTEXT, Q; keys CHARSET, CONTENT, HTTP_EQUIV, ID, LANG. scanner.c, scanner.h, render.c - Added support for HTML files with ISO-8859-1 or windows-1252 (default), ISO-8859-2, UTF-8, atarist 8-bit encoding. Text files must be loaded from an HTML file with <A CHARSET="..." HREF="...">...</A>. - Added all with BICS possible named character entities from HTML 4. - Added Unicode entities. Added conversion table Unicode to BICS (Bitstream International Character Set). (Better than the one in NVDI.) Added conversion table Unicode to Atari ST system font. Both are one character to multiple glyph conversions. - Added many const and static. scanner.c - scan_key() - Converts '-' to '_'. - Added all possible named character entities from HTML 4. - Added Unicode entities. Added conversion table Unicode to BICS (Bitstream International Character Set). (Better than the one in NVDI.) Added conversion table Unicode to Atari ST system font. Both are one character to multiple glyph conversions. - scan_color() - Use isxdigit() for hexadecimal colors. Loader.c - Removed mint_flag, since the existence of Fxattr() ist checked by calling it! - page_load(), build_fname() - Moved from keyinput.c. - Initialize the fsel path with start directory. - Added check for NULL pointer. - identify_AES(), can_extended_maxalloc() - Replaced Super() by Setexc(). This is prefered for MiNT. - parser_job(), new_loader_job(), load_file() - Extended to pass the CHARSET attribute from <A HREF...>. - load() - Added check after open(), malloc(). global.h, HighWire.c, Loader.c - Added enum for the source file encoding. - Renamed can_mxalloc() to can_extended_mxalloc(). HighWire.c - main() - Set "HighWire HTML" as name in the application menu. - Moved setting of window info line to Loader.c load_file(). - Added check for a Speedo fonts GDOS. aei.c - doGSCommand(), process_messages() - Uses extended Mxalloc() mode only if possible. - Added const where possible. Added spaces around operaters. keyinput.c - key_pressed() - Was keyboard layout dependent before. (Using NKCC is better.) - Added 1, 2, A, U to reread file with new default encoding. highwire.cfg - Better description. av_prot.c - get_avserver() - Added "!= NULL" to avoid warning from Pure C. color.c - Deleted unused #includes. parser.c, parser.h - Added some const. redraws.c - UWORD for character buffers. gemx.h - Changed 16-bit character parameters to unsigned. AltF4's patches global.h: - line 72 + 114: removed declarations of list_marker(), map(), list_indent(), convert_to_number() since they are static in render.c now. render.c: - parse_q_tag(): replaced the multi-character-constants by macros. - moved long2decimal() and long2alpha() just before list_marker(). scanner.c: - line 845 (scan_char_to_Atari8bit) + 928 (scan_char_to_16bit): placed '()' around '&&' expression. - line 753 + 775 + 791 (scan_namedchar) + 875 (scan_char_to_Atari8bit) + 974 (scan_char_to_16bit): inserted missing cases to make gcc happy. Makefile: made char unsigned by default. March 28, 2002 (post release version) render.c: - line 1761 (parse_html): inserted a loop to finish open tables at the end of parsing. this is necessary to avoid crashes due to forgotten </table> tags. Table__N.c: - inserted #ifdef .. #endif around debug outputs. March 28, 2002 Baldrick's patches highwire.c - updated core version number in alert box to 0.3 AltF4's patches Redraws.c: - line 24 ff: new functions frame_draw(), draw_hbar(), draw_vbar() to replace the previous draw functions. F_Calc.c: - calculate_frame_locations(): several corrections for proper slider calculation. Container.c: - line 10: corrected rounding for calculation with percents. - line 67 (containr_fillup): corrected if() for '1*' expressions. - line 105 + 110 + 118: corrected rounding for calculation of percents. - line 372 (containr_calculate): modified to dial with fix sized frame geometries. - line 429 (containr_redraw): modified to take over handling of window's rectangle list. this should never be done in a lib. Mouse_R.c: - line 159 + 271 (frame_clicked): replaced draw_frame_borders() by new draw_vbar()/draw_hbar() calls. color.c: - removed #include "stptok.h" (last occurence in the project). - replaced <gemx.h> by <gem.h> and sorted the other lines a bit. March 25, 2002 AltF4's patches defs.h: - new enum types for horizontal and vertical alignments. - removed obsolete enum 'possible_message_types'. - added forward declaration for TABLE and TBLSTACK. - replaced rectangle forward declaration by conditional definition. - new structure 'word_line' to be used as a list of first word items for the lines of a paragraph. - removed old table stuff from paragraph definition. - added 'offset' attributes to structs clickable_area and named_location. global.h: - line 63: shortend parameter list of draw_contents() by grouping several discrete arguments into one GRECT structure. - line 146: removed old table declarations. O_Struct.c: - new_clickable_area() + new_named_location(): adapted to new 'offset' attributes. W_Struct.c: - add_word(): modified to only produce a new word item if the text buffer isn't empty. - word_store(): corrected size calculation for the paragraph's min_width. P_Struct.c: - new_paragraph() + add_paragraph(): removed old table stuff, adapted to new 'offset' attributes. - content_minimum() + content_maximum(): corrected size calculation. F_Struct.c: - new_frame(): removed old table stuff. F_Calc.c: - calculate_frame_height(): overworked to make use of the same code as for table cell calculation. only the locations of clickable_arae and named_location (anchors) are to be set here. Table.h: - added anchor pointer to table_calc(). - replaced discrete coordinate arguments by a rectangle structure in table_draw() declaration. Table__N.c: - table_start(): added paragraph's horizontal alignment. - table_cell(): added linking of table cell paragraph offset back reference. - table_calc(): removed handling of clickables and anchors. this is completely done now by the content_calc() function. instead cell offset relative to their table are stored in a 'offset' structure. - table_draw(): make use of table cells offsets. These both functions should be located somewhere else: - content_calc(): moved over text related calculations to a own funtion. - paragraph_calc(): new function to take over all calculations of text paragraphs. also responsible for generating of word_line structure list. render.c: - set_center_text(): outcommented modification of 'paragraph-> eop_space' to avoid strange displaying of centered text. - parse_p_tag(): added 'justify' alignment. - parse_li_tag(): removed setting of word_item's line_brk, already done in parse_html(). - parse_table_tag(), parse_td_tag(), parse_th_tag() removed. - parse_html(): new variable 'stored_word' used to avoid empty word_items and several small modifications to avoid multiple spaces. Redraws.c: - blit_block() + redraw_frame(): overworked to make use of long coordinates. - draw_paragraph(): completely overworked to make use of paragraphs word_line structures. - draw_table(): removed. - draw_contents(): completely reworked to make the code readable. Mouse_R.c: - check_mouse_position(): overworked to make use of long coordinates. Loader.c: - line 309 (search_for_named_location): accesses now 'offset.Y' instead of 'position' attribute. Makefile, purewire.prj, highwire.prj: removed old table module and updated dependencies. March 21, 2002 AltF4's patches defs.h: - line 398: added line_start to struct list_stack_item which is intended to point to the first word just behind the last <li> tag for nested lists. O_Struct.c: - line 112 (new_stack_list_item): added resetting of new line_start attribute. render.c: - parse_menu_tag() + parse_ol_tag() + parse_ul_tag(): modified to take care for paragraph distances of nested lists. - line 1541 (list_marker): removed check for empty current_list. - line 1861 (parse_html): added check for being inside of a list to the case TAG_LI:. - line 1843: moved the case TAG_HTML: to the end of the switch and replaced writing to the input buffer by searching for the trailing '\0'. Table.h: - renamed top_of_page and frame_h to clip_top and clip_bottom parameters in table_draw(). Table__N.c: - line 907 renamed top_of_page and frame_h to clip_top and clip_bottom parameters in table_draw(). - line 935: expanded the if() for a (y + cell->height > clip_top) wrapper to avoid drawing things that we can't see anyway. Redraws.c: - line 196 (redraw_frame): moved the vsf_color() call into the innermost loop scope to avoid misscolored frame backgrounds. March 20, 2002 Baldricks patches Table__n.c + Table.h - changed def for table_draw to take y as long instead of short - added short frame_h parameter to table_draw() - added short top parameter to table_draw() - line 968 - added test for y > frameh if so break - line 938 - test (y + row->height > top) wrapper around while(cell) avoids drawing things that we can't see anyway Redraws.c - line 1246 - added frame_h parameter to call of table_draw() - added top_of page parameter to call of table_draw() AltF4's patches TABLE__N.C - line 147 - replace with calls allowing 'border' to work for older pages March 19, 2002 AltF4's Patches (several days patches at once ) Redraws.c: - line 736 + 796 + 839 + 866 (draw_paragraph): corrected word width of first word items of a line that has leading Space_Code. also alignment_spacer needn't to be modified anymore. - line 48 (blit_block) + 223 (redraw_frame): adapted to frame.current substructure. Table.h: - added clickable pointer to table_calc() call. Table__N.c - table_cell(): fixed missinterpretition of percent width. - table_calc(): added support of clickables (preliminary implementation). - content_calc(): added generating of clickables (temporary implementation). - line 101 (table_start) + 313 (table_cell) + 430 + 623 (table_finish): adapted to frame.current substructure. (only the main changes are listed) - table_row(): added alignment. - table_finish(): new calculation for fixed width cells. - table_calc(): new calculation of fixed table height. F_Calc.c - line 184 (calculate_frame_height): added clickable pointer to table_calc() call. - line 141 (calculate_frame_height): outcommented height_spacer and previous_word_height. - line 379: outcommented the switch (current_word->vertical_align) because it makes nothing sensefull. render.c: - line 281 (parse_anchor): added underline attribute to links. - at all occurences, removed the active_word_buffer argument from the functions argument lists since this is now stored in the frame's 'current' substructure. same done for function calls. - at all occurences, replaced '->current_word' by '->current.word', '->current_paragraph' by '->current.paragraph', '->current_font_size' by '->current.font_size', '->active_word' by '->current.text'. - adapted all calls of add_paragraph() word_store() to changed argument list. - parse_anchor(): new local 'word'. - parse_div_tag(): new local 'paragraph'. - parse_header_tag(): new local 'current'. - parse_menu_tag(): new local 'current'. - parse_p_tag(): new local 'paragraph', removed prev_alignment variable, wasn't necessary. - parse_ol_tag(): new locals 'current' and 'paragraph'. - parse_ul_tag(): new locals 'current' and 'paragraph'. - parse_hr_tag(): new local 'current'. - parse_img_tag(): new local 'current'. - list_marker(): changed to make use of the frame's text buffer. - parse_html() and parse_text(): adapted to frame.current substructure. - line 872 + 836 (parse_ul_tag) + 807 + 770 (parse_ol_tag) + 649 + 625 (parse_menu_tag) + 381 + 371 (parse_d_tags) + 252 + 247 (set_blockquote_text): setting of paragraph indent. - line 354 ff (parse_d_tags): replaced access of current_paragraph by local variable. - line 14: removed #include "stptok.h". - parse_html(): in case TAG_TABLE added word_store() and add_paragraph(). defs.h: - line 371 ff (struct frame_item): integrated attributes current_paragraph, current_word, active_word and current_font_size into a own substructure. this way we have all attributes necessary for paragraph/text building grouped together and the substructures name 'current' let the code looking very similar to the previous state. - line 276 (struct paragraph_item): added attribute Indent. global.h: - line 84: removed argument filename from new_frame(). - line 142: changed parameter list of new_paragraph() and add_paragraph(). - line 162: removed obsolete declarations of to_do.. functions. - line 165: changed parameter list of new_word(), add_word(), word_store(). - line 143: changed return type of add_paragraph(). W_Struct.c: - line 36 (new_word): changed parameter list. - line 75 (add_word): changed parameter list, adapted to frame.current substructure. - line 86 (word_store): changed parameter list, reworked for better performance. - line 100 (word_store): removed adding of horizontal offset, doesn't work with tables. P_Struct.c: - new_paragraph(): adapted to frame.current substructure, made it setting the current->word to the new paragraph's word_item - add_paragraph(): adapted to frame.current substructure. - line 130 (content_maximum) + 111 (content_minimum): uses now paragraph indent for calculations. - line 71: changed return type of add_paragraph() to make the usage more handy. Loader.c: - line 60 (parser_job): removed loader->FileName from new_frame() call. F_Struct.c: - line 14 (new_frame): removed argument filename. - line 44 ff: adapted to frame.current substructure. keyinput.c: - line 30 + 39 (key_pressed): outcommented current_frame. token.h: - line 112: keyword VALIGN added. March 15, 2002 Baldrick's patches Scanner.c - replaced 'power n' mapping in atari_char[] - created ISO88592[] maps ISO-8859-2 to Speedo index March 13, 2002 Baldrick's last minute notes TABLE.C - I had to move the #ifndef _NEW_TABLES to get it to compile properly under PureC on my machine - I placed the define for _NEW_TABLES in global.h so that it was in the same location as GEM_MENU - the binary in the archive is compiled with NEW TABLE routines and a GEM Menu - Lattice HIGHWIRE.PRJ updated AltF4's Patches defs.h: - line 367: new attribute TableStack in struct frame_item. - line 284: struct table_step, table_child, table_row, table_item surrounded by #ifndef _NEW_TABLES. - line 272: new attribute Table in struct paragraph_item. global.h: - line 142 - 154: surrounded by #ifndef _NEW_TABLES. P_Struct.c - line 125 (content_maximum): added check for NULL in word_item. - line 76 (add_paragraph): setting of attribute Table. - line 35 (new_paragraph): setting of attribute Table. - line 18 (destroy_paragraph_structure): #ifndef around destroy_table_structure(). F_Struct.c: - line 50 (new_frame): setting of attribute TableStack. F_Calc.c: - line 183 (calculate_frame_height): call of table_calc(). - line 8: #include "Table.h" render.c: - line 1951 (parse_html): in cases TAG_TABLE, TAG_TD, TAG_TH, TAG_TR new table function calls. - line 1195 (parse_th_tag) + 1076 (parse_td_tag) + 892 (parse_table_tag): surrounded by #ifndef _NEW_TABLES. - line 18: #include "Table.h". Redraws.c: - line 1222 (draw_contents): call of table_draw(). - line 889: draw_table() surrounded by #ifndef _NEW_TABLES. - line 8: #include "Table.h". table.c: - the complete file is surrounded by #ifndef _NEW_TABLES. Table__N.c, Table.h: - temporary files updated. Makefile, purewire.prj: adapted for temporary files. Baldrick's patches Scanner.h - added prototype for scan_upperchar() Scanner.c - new routine scan_upperchar() - added static WORD atari_char[] Render.C - line 2146 added case for handline *symbol < 0 or = 127 we are handling symbol as a signed char so there really is no case where symbol > 127 (at least on compilers where signed chars are default). So upper chars come in below 0 (except 127) Char.txt - a text file with (hopefully) all of the upper range characters from the atari asci set. March 12, 2002 AltF4's Patches Redraws.c: - new function draw_border() to make 3D borders around tables, buttons, etc. Table__N.c, Table.h: -temporary files for new table functions. W_Struct.c - line 104 (word_store): always reset the frame's word buffer after storing the actual word. - in most functions I changed the argument list for better readability. - line 111 (word_store): added setting of paragraph's min_width. - line 79: removed setting of frame's page_width and table childs' min_width. this is handled now by word_store() in combination with the renderer functions. P_Struct.c: - in all functions I changed the argument list for better readability. - line 43 (new_paragraph): setting of min_width and max_width. - line 97 (add_paragraph): setting of min_width and max_width, rearranged the other lines a bit. - new function content_minimum() to determine the smallest width that is nedded for a list of paragraphs, used for frames and table cells. - new function content_maximum() to determine the largest width that occures in a list of paragraphs, used for table cells. defs.h: - line 26: forward declaration for struct graphic_rectangle. - line 266 (struct paragraph_item): added typedef PARAGRPH. - line 276: new attributes min_width and max_width. global.h: - line 70: new function draw_border(). - line 134: new functions content_minimum() and content_maximum(). reformated this block a bit for better readability. render.c: - removed a lot of occurences of lines which reset the word buffer "p_frame->active_word = active_word_buffer;" because this is now handled by word_store(). - line 978 (parse_table_tag): set the table_childs min_width by using content_minimum(). - line 1329 (parse_img_tag): removed setting of the frame's page_width, isn't necessary at this point. - line 2107 (parse_html) + 2196 (parse_text): set the frame's page_width by using content_minimum(). March 7, 2002 Baldrick's Patches Render.C - parse_font_tag() - line 478 - modifications to font size setting to make output more closely match other browsers AltF4's Patches defs.h - line 11: removed enum word_codes, isn't needed anymore. - line 257: in struct word_item, replaced word_code by BOOL line_brk. - line 356; in struct frame_item, removed frame_filename since it isn't used anymore. global.h: line 57: renamed draw_frame_contents() to draw_contents(). Redraws.c: - line 63 + 86 + 107 + 128 (blit_block) + 219 (redraw_frame): renamed draw_frame_contents() to draw_contents(). - line 44 (blit_block) + 218 (redraw_frame): reset current_paragraph to frame->item (not shure if that is really necessary). - line 728 + 734 (draw_paragraph): replaced word_code by line_brk. - line 739: added an if() to filter out single spaces. - removed struct frame_item * parameter from draw_table() routine - renamed draw_frame_contents() to draw_contents() and removed the frame argument which isn't used anymore. W_Struct.c: line 66 (new_word): replaced word_code by line_brk. P_Struct.c: line 78 (add_paragraph): replaced word_code by line_brk. F_Calc.c: line 306 (calculate_frame_height): replaced word_code by line_brk. table.c: line 424 (calculate_table_height) + 702 + 707 (walk_table_children): replaced word_code by line_brk. render.c: line 753 (parse_li_tag) + 1833 (parse_html): replaced word_code by line_brk. F_Struct.c: - line 27 (new_frame): changed initialisation of background_colour to light gray as other browsers are also doing. Also uses now color definitions from gem.h (same for text_colour). - line 40: removed frame_filename initialisation. - line 3: added #include <gem.h>. - line 68 (delete_frame): removed frame_filename deleting. March 6, 2002 Baldrick's Patches SCANNER.C - scan_color() - added char *old - tracks initial value in 3rd case - in third case if col < 0, then attempt to convert the original text to a long. - scan_namedchar() - line 297 - subtract 32 if less than BEG_NUM RENDER.C - parse_anchor() - in closing anchor current_word->colour = font_step->color March 5, 2002 Baldrick's Patches SCANNER.C - scan_color() - scan for some color indexs that are just numbers no " or # involved. Slashdot has one of these lines 450 - 453 March 4, 2002 Baldrick's Patches F_STRUCT.C - new_frame() - moved frame->current_font_size = POINT_SIZE; to before new_paragraph() call Render.C - parse_font_tag() - added support for font_step->colour in lines 504 & 514 - parse_html() - set current_font_step->colour to frame->text_color after line calling new_step(3) Defs.H - added WORD colour; to font_step struct AltF4's Patches token.h: new tag keywords BGSOUND and EMBED. render.c: - line 1778 (parse_html): inserted new cases in switch() for TAG_BGSOUND and TAG_EMBED. - line 1436: new function parse_embed(). Loader.c: - line 217 (new_loader_job): corrected handling for NULL target arguments. - line 206: new function find_application(). - line 36: added #include <ctype.h>. Makefile: corrected OPTS macro definition. March 4th morning... <Big NOTE... History text was accidentally overwritten on March 4th. I was able to scavenge large parts of the missing history from my drive. But unfortunately there are missing bits of history between Feb 15 and March 4, 2002> <recovery point missing data in here covering addition of p_frame * to alot of routines and their prototypes also covers some work in render.c covering always creating a fontstep in parse_font > P_Struct.c - add_paragraph() - added p_frame to call of new_word() - new_paragraph() - added frame_item * parameter - added p_frame to call of new_word() F_struct.c - new_frame() - added frame parameter to call of new_paragraph() Table.C - new_table_row() - added frame_item * parameter - added p_frame to call of new_paragraph() - new_table_child() - added frame_item * parameter - added p_frame to call of new_paragraph() February 25, 2002 AltF4's Patches HighWire.c: - line 228 (handle_menu): replaced highwire_ex() by exit(). P_Struct.c: line 37 (new_paragraph) + 92 (add_paragraph): replaced enum none by PAR_NONE. F_Calc:c: in calculate_frame_height(), replaced in all paragraph_code = lines the right hand side by the new enums, eg. hr -> PAR_HR. table.c, Redraw.c: replaced huge number of accessing of structure members and also pointer-pointer-pointer-... addressing by the usage of local variables. this makes the code better readable and also allows the compiler to make better optimazions. defs.h: - replaced enum paragraph_codes by typedef enum PARAGRAPH_CODE with upper cased members to avoid confusion with lower case variables of the same names. - in struct table_item, removed temp_val and temp_long. this is now handled by local variables. Render.C - line 923 replaced enum table by PAR_TABLE. - line 1248 replaced enum hr by PAR_HR. - line 1296: replaced enum img by PAR_IMG. February 22, 2002 Baldrick's Patches RENDER.C - line 1697 renamed font_step to fontstep to avoid confusion with the struct name - supplemental changing of font_step in the rest of the routine - renamed parameter font_step to fontstep in parse_li_tag() supplemental renaming throughout routine - renamed parameter font_step to fontstep in parse_font_tag() supplemental renaming throughout routine February 19, 2002 Baldrick's Patches Defs.h - new struct table_row()... start of a major overhaul of the table code. Once more into the breach! - addition of table_row *row to table_item struct Table.C - new routine struct table_row *new_table_row (void) - creates new row containers AltF4's Patches Loader.c: -line 230 (new_loader_job): replaced app_id by gl_apid. keyinput.c: - line 82 (key_pressed): replaced highwire_ex() by exit(). av_prot.c: - line 62 + 83 (Send_AV): replaced app_id by gl_apid. AEI.c: - line 91 (doGSCommand) + 231 (process_messages): replaced app_id by gl_apid. - line 141 (doGSCommand): replaced highwire_ex() by exit(). Variable.c: - line 24: removed global variable app_id. HighWire.c: - line 63: this was a serious bug, moved the Init_AV_Protocol() call behind the initialisation of the va_helpbuf variable in line 101. - line 171: removed highwire_ex() call, would cause an infinite loop. - line 61: reordered appl_init() and V_Opnvwk() calls and placed an atexit() call between. - line 16: added declaration of highwire_ex(). - line 174 ff (highwire_ex): is declared static now. also reordered sequence of program shutdown and added forgotten v_clsvwk(). global.h: - line 25: removed global variable app_id because this value is already stored in the gemlib's gl_apid variable. - line 82: removed highwire_ex() declaration. it is now declared static instead and will be registered as a exit function with the atexit() call in the mai <recovery point... data lost in here somewhere > (This is a Baldrick patch from some date ) - new routine can_mxalloc() just looks for Mint or Magic flags and reports 1 if found 0 if not found Highwire.c - modifications of method used to determine if we can Mxalloc() using new routine and seperated from older Mint flag test AltF4's patches Container.h: added a lot of explanations of mechanisms and about how to use containers. Containr.c: - line 446 (frame_next) + 304 (containr_calculate) + 267 (containr_relocate) + 232 (containr_byName) + 218 (containr_Base): added checks for NULL pointers. - new function containr_byCoord() to find a container that includes a given coordinate. AEI.c: line 274 + 282 + 297 (process_messages): removed access to global the_first_frame variable. Mouse_R.c: - line 285 (frame_clicked): replaced redraw() by containr_redraw(). - line 301: reworked check_mouse_position() to make use of container funtions and avoid access of the global the_firt_frame variable and the temporary frame_next() call. F_Struct.c: line 79 (delete_frame): invalidate current_highlighted_link_frame and _area if the related frame becames invalid. Redraws.c: line 805 (draw_paragraph): added an extra check to make shure that the correct clickable will be highlighted. Loader.h: - added enum MIMETYPE definition. - in CONTAINR declaration, changed attribute Decoder to MimeType. Loader.c: - line 455 (init_load): removed initialisation of a default frame, no longer necessary. - line 402 (load_file): removed creating of an error text, is now handled to avoid strange loop hangings. - line 150 (new_loader_job): added evaluation of possible mime types. - line 132 (loader_job): handling of not found files added. - line 122: function delete_loader() implemented. - line 103: implemented a rudimatary way of resolving of mime types. - in parser_job(), switched over from Decoder to MimeType attribute and added delete_loader() call. render.c: - in parse_text(): - line 2174: removed free (start_symbol), is now done by delete_loader(). - line 2111: removed current_highlighted_link_area = 0, this is wrong at this place. - line 2094 + 2089: removed variable start_symbol, not longer used. - removed several outcommented lines which are not longer used. - in parse_html(): - line 2070: removed free (start_symbol), is now done by delete_loader(). - line 1731: removed current_highlighted_link_area = 0, this is wrong at this place. - line 1714 + 1705: removed variable start_symbol, not longer used. - removed several outcommented lines which are not longer used. February 15, 2002 Baldrick's patches AV_PROT.C - rewrote most of the functions based on routines from GEMagnetic NOTE I'm not certain what needs to be done exactly for PDF_AV_OPEN_FILE I've left the original code in with a modification while putting some potential example code that doesn't work. Highwire.C - ~line 91. In test for Aes_type malloc va buffer based on return. GLOBAL.H - added extern for char *va_helpbuf; /* GLOBAL memory buffer for AV */ DEFS.H - added def's for GLOBAL & ALLOCMODE TABLE.C - ~ line 739 - in calculate_table_width(); insertion of walk_table _children into fixed width tables AltF4's patches - Containr.c line 275 - added frame.x and frame.y modification February 14, 2002 Baldrick's Patches TABLE.C - line 279 applied temp_height = 0 outside of end of row test in empty children AV_PROT.C - added MAGXDESK and STRNGSRV to Av server search id's - Send_AV () changed msg to short, set all msg[2] to 0 AltF4's Patches purewire.prj, highwire.prj and makefile completed dependencies Highwire.c - line 218 (handle_menu): removed the return 0; from this void function. February 13, 2002 Baldrick's patches Loader.c - cleaned up load_file() by changing the 2 #ifdef's to one #ifndef LATTICE Rafal Kaweki's patches AV_COMM.H & AV_PROT.C new files Highwire.c - line 63 added Init_AV_Protocol() - line 168 added Exit_AV_Protocol() LOADER.C - line 44 added #include "av_comm.h" - line 275 added static const char *pdf_ident=".pdf"; - line 302 added else case for my_pdf handling purewire.prj, highwire.prj and makefile added av_prot.c file AltF4's patches defs.h: in struct frame_item, removed attributes frame_height, frame_left, frame_top, next_frame, frame_name. their meanings are handled now by containers. global.h: - line 118: removed obsolete check_to_do_list() declaration. - line 111: removed reset_frame() and destroy_frame_structure(). - line 110: expanded argument list of new_frame() and moved it to the F_Struct section (line 74). - line 75: removed temp_frame() and added new delete_frame(). - line 67: removed first argument of frame_clicked(). - line 36: removed previous_frame variable declaration. Variable.c: - line 57: removed global variable previous_frame, no longer used. F_Struct.c: - removed destroy_frame_structure(), reset_frame(), temp_frame(). - moved init_frame() into new_frame() since there are no other callers for it anymore. - new function delete_frame(). - added #include <string.h>. F_Calc.c: line 39 - 88 (calculate_frame_locations): removed outcommented stuff, is now handled properly by containers. render.c: - line 289 + 295 (parse_anchor): replaced the frame_name argument because that was not correct in this context (or at least not necessary). - in parse_html() and parse_text(), outcommented several initial settings which are already done by new_frame(). Loader.c: - in parser_job(), removed debug output, inserted delete_frame() calls. also adapted new_frame() argument list. - in init_load(), adapted new_frame() argument list. Containr.h: - new function containr_byName() to find a named container in the tree. - removed C_get_percent() and C_get_offset(), not longer needed. Containr.c: - in containr_setup(), removed setting of frame_name. - in containr_clear(), added delete_frame(). - new function containr_byName(). - removed C_get_percent() and C_get_offset(). Mouse_R.c: - line 28 + 39: removed first argument of frame_clicked(). - line 275: make use of containr_byName() to find named target. - added #include "Containr.h" line. HighWire.c: - line 178 (highwire_ex): removed destroy_frame_structure() call, it makes no sense to free memory just before exiting but slows down program quit. February 12, 2002 Baldrick's Patches TABLE.C - moved temp_height = 0; out of end of row test to a location after row height check. February 11, 2002 AltF4's Patches defs.h: - line 15: added forward declaration for CONTAINR and a #pragma to keep off PureC from complaining about a unknown structure. This is a bug in PureC because the ANSI C standard explicitely allows this kind of declaration. - line 308: changed the type of Container attribute. Containr.h: - moved over the typedef to defs.h Containr.c: - line 34 + 193: containers get the attribute Border from their parents (if any). - line 181: take care of global the_first_frame variable. - line 7: removed #include "Loader.h". Loader.h - changed the type of Target attribute. - removed TmpFrame and ParseType attributes, not longer used. - changed argument list of new_loader_job(). Loader.c: - overworked parser_job() to avoid the need of temporary frames. - removed set_parser_job(). - loader_job() registers the parser job itself now. - init_load() adapted new_loader_job() arguments. render.c: - line 1439 (parse_frameset): removed start_frame variable. - line 1510 (parse_frameset): adapted new_loader_job() arguments and removed temp_frame. keyinput.c: line 64 (key_pressed): adapted new_loader_job() arguments and removed temp_frame. Mouse_R.c: line 305 + 323 (key_frame_clicked): adapted new_loader_job() arguments and removed temp_frame. February 09, 2002 AltF4's Patches global.h: - removed global variable declarations add_to_do and read_to_do, no longer in use. - added frame and clipping_area arguments to calculate_frame_locations(). defs.h: - replaced the 'struct frame_item {...}' by 'typedef struct frame_item {...} * FRAME'. this allows shorter argument lists for function declarations and better readable code. - removed all of the 'Flow Control Constructs' at the end (the to_do_... declarations), no longer in use. Variable.c: - removed global variables add_to_do and read_to_do, no longer in use. Container.h: - added structure members Area, Name, Border, removed _debug. - new functions containr_setup(), containr_Base(), containr_relocate(), containr_calculate(), containr_redraw(). Container.c new functions: - containr_setup() to attach a frame to container, - containr_Base() to get the base parent container of a frame, - containr_relocate() to new positions for container and frames, - containr_calculate() to calculate positions and sizes of containers and frames, - containr_redraw() as replacement for the frame based redraw(). Loader.h: - moved over the typedef FRAME to defs.h. Loader.c: - in parser_job(): - added containr_setup() and containr_calculate() calls. - containr_redraw() is called for every redy frame now. this way the user can start viewing while there are still parts to be parsed. this also helps debugging. - in init_load(), resorted window setting. AEI.c: all changes in process_messages(): - case WM_MOVED: replaced wind_set() by wind_set_grect() and calculate_frame_locations() by containr_relocate(). - case WM_SIZED: replaced calculate_frame_locations() by containr_calculate(). - case WM_REDRAW: replaced redraw() by containr_redraw(). - case WM_FULLED: replaced calculate_frame_locations() by containr_calculate(). render.c: - all changes in parse_frameset(): - added argument container. - variable border removed, will be handled in the tag scopes instead. - variables cur_xoffset and cur_yoffset removed since geometric calculations are no longer done here but in containr_setup(). - in parse_html() case TAG_FRAMESET, added container argument to parse_frameset() call. F_Calc.c: all changes in calculate_frame_locations(): - added frame and clipping_area arguments to function. - outcommented a lot of stuff that is now already done by containr_calculate(). Makefile: improved for different processor targets. February 8, 2002 AltF4's Patches Containr.c, Containr.h: new module for struct CONTAINR to take over structural aspects of frame_item. there are nearly no comments in it, I will make up for this soon. defs.h: line 308 ff: - added temporary anonymous pointer attribute Container. - outcommented atrribute next_frame. declared temporary function frame_next() to be used instead (just behind the struct). render.c: - line 941 (parse_table_tag) + 1135 (parse_td_tag): set color to -1 if not defined as tag attribute to allow transparency for table items. - function parse_html() completely reworked to make use of the new container structure/functions. Redraws.c: - line 987 + 940 (draw_table): added if(color >= 0) to allow transparency for table items. - line 164 (redraw): replace acces to next_frame attribute by frame_next() call. Loader.c made a lot of changes to make use of the new container structure/ functions. sensless to write them down because most of the will be changed again in the very near future. F_Calc.c: - line 45 + 200 (calculate_frame_locations): replace acces to next_frame attribute by frame_next() call. - line 24: new macro PercentOf() for calculating absolute values from percents. this seems also solve the problem that sometimes a one pixel column at the very right side of the window wasn't filled. - in calculate_frame_locations(), replaced all calculations of absolute values from percent by the new PercentOf() macro. F_Struct.c: - line 10: (destroy_frame_structure) replaced while by if, no more need to walk through a list. - line 8 + 20 + 22: (destroy_frame_structure) removed acces to next_frame attribute. - line 37: (init_frame) initialize anonymous pointer attribute. - line 39: (init_frame) removed acces of next_frame attribute. Mouse_R.c - line 32 (button_clicked) + 318 (frame_clicked) + 375 (check_mouse_position): replace acces to next_frame attribute by frame_next() call. keyinput.c - line 55 (key_pressed): replace acces to next_frame attribute by frame_next() call. Makefile, purewire.prj, highwire.prj: updated February 7, 2002 Baldrick's Patches TABLE.C - calculate_subtable_height() no longer called. Possibly will be removed shortly - left_border removed in calculate_table_height() - table->borders.left used in place of left_border - removed calculate_subtable_height() routine no longer used - cleaned up some old remmed out lines involving the old colspan implementation - some other unused snipets that were rem'd out removed - reworked system in caculate_table_height() text processing now in else { } - reworked system in walk_table_children() text processing now in else { } - fixed a typo in sub table height calculation February 6, 2002 Baldrick's Patches TABLE.C - new routine set_p_area() - sets a paragraphs area coordinates - modificaitons of calculate_table_height to use set_p_area. February 5, 2002 Baldrick's Patches DEFS.H - added struct table_item *parent; to table_step struct - renamed paragraph * in table_step to entry modifications in table.c, render.c and redraws.c TABLE.C - added table_item *parent parameter to new_table_step() and add_table_step() - patched empty_child routines - modification of colspan handling in all routines that modified based on colspan GLOBAL.H - new definitions for new_table_step() and add_table_step() RENDER.C - modifications for new table step routines and struct - modifications for insertion of empty children to make space for colspan rowspan REDRAWS.C - modifications for new table step routines and struct - modification of colspan handling in draw_table routine - removed draw_subtable() it was no longer used AltF4's Patches render.c - line 1862: renamed calculate_frame() to parse_html(). - line 1571: removed #else .. #endif part, wasn't used anymore since a longer time. parse_frameset() - line 1556 + 1565: replaced add_load_item_to_to_do_list() by new_loader_job(). parse_frameset() - line 1556: the 't_frame->frame_name' gets its value from get_value_str() now to avoid useless copies. parse_frameset() - line 1538: removed the #if 1 and the following if (!get_value...) block, not longer used. parse_frameset() - line 1393: removed frame_name[], no longer in use. parse_frameset() - line 12: added #include "Loader.h". HighWire.c - line 30: changed the timer value from 100 to 1. - line 162: replaced check_to_do_list() by schedule(). - line 14: added #include "schedule.h". Mouse_R.c: - line 312 + 329: replaced add_load_item_to_to_do_list() by new_loader_job() - line 8: added #include "Loader.h". keyinput.c: - line 73: replaced add_load_item_to_to_do_list() by new_loader_job() - line 15: added #include "Loader.h". Makefile, purewire.prj, highwire.prj: updated: inserted schedule.c, removed To_do.c schedule.c, shedule.h: - new module for general purpose job control. the functions here don't know anything about internal structures like frame_item but are handeling all arguments as anonymous pointers. This way it can also be used later for eg. decoding images. Loader.c: - new functions new_loader(), loader_job(), new_loader_job() to take over some functionalities from To_do.c and make use of schedule.c instead. - new functions parser_job(), set_parser_job() to take over some functionalities from To_do.c and make use of schedule.c instead. this both functions should really placed somewhere else but atm I'm not shure about the right file. - added #include "schedule.h" and "Loader.h". - replaced add_load_item_to_to_do_list() by new_loader_job(). Loader.h - I placed here some declarations which I will need to change soon again. this way at least gcc compiles much faster after changes. To_do.c all of its functionality is now splitted off into schedule.c and Loader.c, so it becomes obsolete now. global.h - renamed calculate_frame() to parse_html() because that matches more its functionality, corresponding to parse_text(). Also moved this declaration to the render.c section where it belongs. February 4, 2002 Baldrick's Patches TO_DO.C changed include aes.h to gemx.h REDRAWS.C experiments walking paragraphs around table draws recall draw_table() instead of draw_subtable() draw_table() replaced left_border, right_b.. and bottom_b... with current_table->current_borders. DEFS.H new struct BORDERS tracks left, right bottom added sturct borders current_borders to table item P_STRUCT.C added init to 0 in new_paragraph() for paragraph.area values TABLE.C uncovered the fact that paragraph.area values weren't being set for tables. This was a problem since the redraw routines needed these values Alot of undocumented changes :< all in table routines though. Drawing calculating and parsing. February 1, 2002 Baldrick's Patches #if 0'd out the empty child insertion routines for the moment going to sync the updates and can't finish it in time. TO_DO.C included aes.h for PureC for graf_mkstate AltF4's patches O_Struct.c: - removed the unnecessary #include <gemx.h>. AEI.c: - resorted the #include lines for better readability. - replaced <gemx.h> by <gem.h> to make compiling a bit faster. HighWire.c: - resorted the #include lines for better readability. - in the event loop, moved the check_to_do_list() call to the end (line 135 -> 158) to avoid double redrawing at start up. Not doing so let HighWire recive the initial redraw message of the wind_open() just after redrawing of the finished page. - the check_mouse_position() is now triggered by MU_M1 events instead of MU_TIMER. this way it is only called if the mouse really moved and saves some cpu time for background processes (11% -> 8% cpu load on my system). - replaced evnt_multi() by evnt_multi_fast(). the latter gets only three pointers instead of a LOT and saves this way some cpu time. the apropriated EVMULT_IN struct just before the main() function. To_do.c: - line 104: added check_mouse_position(), else the changes above dosn't work properly with links in frames. - line 112: removed an old #ifdef, was only used for speed meassurment in the past. - removed the unnecessary #include <gemx.h> and resorted the other include lines for better readability. - added new function copy_to_do() to avoid duplicate code in check_to_do_list(). - in add_load_item_to_to_do_list() replaced malloc()/strcpy() calls by strdup(). - reformatted the complete code to get the code readable. January 31, 2002 Baldrick's Patches TABLE.C current_height replaced with current_table->temp_long in calculate table height routines removed test for table->num_cols > 1 in advacing table height in calculate table height and subtable height routines new routine struct table_child *insert_empty_child (struct table_child *prev). this inserts our empty holders into table structures to fill the spaces left by colspan and rowspan REDRAWS.C removed test for table->num_cols == 1 in righ border setting in draw_table routine WORD pts[4] use in draw_table() and draw_subtable() replaced with current_table->screen_pts variable WORD u removed from draw_frame_contents() variable WORD junk removed from draw_subtable() #if 0 rem'd out hopefully not needed test in draw_table() and draw_subtable(). if we still need it make certain to remove line after #endif RENDER.C created table child walking routine in parse_table_tag() close to insert empty children into table child structure. This is to help with the support for colspan and rowspan DEFS.H addition of WORD screen_pts[4]; /* on screen rectangle of table */ to struct table_item Global.h insert prototype for insert_empty_child January 30, 2002 Baldrick's Patches REDRAWS.C bottom border now long y_offsets in many routines converted back to longs Render.c changed tests in parse td tags to be num_rows == 1 instead of <= 1 in case TAG_TR added a test to see if the number of columns in the table is greater than 0. If it is then it adds a new row. The reason is the default value for number of rows is 1 now, this is to cope with some sites with bad html, missing the initial tr tag before the first row. TABLE.C num_rows default 1 now in new_table(). The logic behind this is a bit odd, but it works. The reason is that there are sites with bad html that do not have a tr tag before the first row, but do later on. So if it is 0 then we end up with a table with one row instead of 2. See note in render regarding tr tag January 29, 2002 Baldrick's Patches DEFS.H added long temp_long; /* a temp long used mainly for height tracking */ to table_item struct TABLE.C temporarily removed table walking in height calculations REDRAWS.C removed current_line_width in draw_table routines, now use direct value since it wasn't being modified renamed some parameters in the drawing routines just to ease my reading them today removed variable old_height and use y offset directly since it was not modified in the table drawing routines variable u renamed to junk since this is what it is in table drawing routines new routine static void set_veffects(struct word_item *current_word) just some standard recurring vdi effects in this module set_veffects() replaces code in draw_frame_contents and table drawing routines table_item->temp_long replaces current_height in table drawing routines Note once we get this sorted out we can see about reducing some of these struct entries again Some notes. Subtable isn't always being entered We need to set pts array in table drawing closer to calling sub routines January 28, 2002 Baldrick's Patches TABLE.C experiments with walking table paragraphs in height calculations AltF4's Patches Loader.c: in get_decoder_type(): - line 103: replaced strchr() by strrchr(), else a file named like 'foo.bar.htm' is taken as a raw text file because the '.bar' is found as extension instead of '.htm'. - line 114: added 'php' as an extension for html files -- this makes testing of downloaded pages easier. parser.h, parser.c, render.c: - the parse() function is now renamed to parse_tag() because the previous function name is really too unspecific. - comments are now handled by parse_tag() in parser.c. this way it is also working for framesets and titles. render.c: - removed comment handling (is done by parse_tag() now). - implemented skip_style() and skip_script() to filter out the yet not interpreted css and javascript parts. token.h: added SCRIPT, NOSCRIPT, STYLE keywords. January 25, 2002 Baldrick's patches TABLE.C - current_table->temp_val used to replace temp_cols in calculate_table_height() and calculate_subtable_height() - almost all routines in TABLE.C drop current_paragraph variable in favour of using the pointer in the table_item - word_item *current_word replace with frame->current_word in calculate_table_height() and calculate_subtable_height() - current_child replaced with table->current_child in calculate_subtable_height() and calculate_table_height() - table_w in calc subtable_height() and calc table_height() replaced with current_table->actual_width - modifications to increase current_height in one column tables DEFS.H - added current_paragraph * to table_item struct, this lets us track paragraphs inside seperate tables - removed container value from frame_item struct REDRAWS.C - removed table_paragraph * from draw_table() replaced with table->current_paragarph - a test routine, draw_subtable() this isn't permanent, I'm using it for some testing January 24, 2002 Baldrick's patches TABLE.C - put width test back into calculate_table_height() when walking words. - check if table has more than 1 column before testing and reset of column/row data in calculate_table_height(), walk_table_children(), calculate_table_width(), calculate_subtable_width(),calculate_subtable_height() NOTE there is the potential of rewritting how col_span is handled which would eliminate the need for these tests January 23, 2002 Baldrick's patches LOADER.C - short test forcing PureC to use stat() call. It works here I sent a message out to the list to clarify if we really need all these tests in load_file() AltF4's patches LOADER.C - line 155: removed unused definition of file_info (is also defined in the following else scope). - line 189: reordered the #ifdef to enable again the gcc binary to load files without MiNT/Magic. HighWire.c: - line 42: removed leading '\\' of the address string to make shure that the start page is also found without MiNT/Magic. parser.c, parser.h: - added new functions get_value_char() to get only the first character of a value and get_value_unum() to get a value as a unsigned number directly. render.c: - modified parse_li_tag() for use of new get_value_char() and get_value_unum() functions. this avoids the output of funny markers for something like <LI VALUE="-7"> or <LI VALUE="1%">. Furthermore the marker toggeling of <UL>s inside other <UL>s is working correctly now. - in parse_ol_tag(), parse_table_tag(), parse_td_tag(): modified for use of new get_value_char() and get_value_unum() functions. - in parse_div_tag(), parse_header_tag(), parse_img_tag(), parse_hr_tag(), parse_p_tag(), parse_ul_tag(): modified for use of new get_value_char() function. January 22, 2002 AltF4's patches GLOBAL.H - changed parameter list of new_word() - corrected comments with respect of renamed files. - removed some obsolete function declarations: line 103: variable() line 106: special_char_map_str() W_Struct.c: - expanded the argument list of new_word(). if the parameter copy_from is non-zero it is taken as a source to copy some attributes from. - took over word_store() function from render.c P_Struct.c: - in add_paragraph(), replaced malloc of struct word_item by new_word(). no function should malloc and init foreign data structures by itself but call appropriated functions for that because this is a very common source of errors. - removed #include <string.h>, was only used for memset(). - removed #include <gemx.h>, was nowhere used. F_Struct.c: - new function init_frame() used by new_frame(), reset_frame() and temp_frame(). this makes the code a bit shorter and decreases the possibility of bugs depending on forgotten attribute initializing. - removed #include <string.h>, was only used for memset(). - removed #include <gemx.h>, was nowhere used. defs.h: - expanded the enum bool to a typedef BOOL. this makes code a bit better readable. there are also two defines to have earlier code still working. parser.h, parser.c: - return value of get_value() changed to BOOL. parser.c: - reworked the parse() function to get it more stable with faulty html code. it now uses the scan_tag() and scan_key() functions which are already defined in scanner.c (was forgotten in some previous patch). scanner.h, scanner.c: - changed parameter 'lookup' of function scan_key to BOOL. render.c: - removed a lot of duplicate code in parse_th_tag(). Instead it calls now the function parse_td_tag() and does only the few things which are different for TH tags in comparsion to TD tags. - moved the function word_store() over to W_Struct.c where it belongs to more. AEI.c: - changed full_window(), iconify_window(), uniconify_window() to static function type to make gcc happy. - outcommented unused GRECT r in uniconify_window(). January 21, 2002 David Leaver's patches addition of #include <dos.h> in loader.c version 0.2 finally released January 18, 2002 Baldrick's patches AEI.C new routine full_window(WORD win); Handles growing\shrinking window when the FULLER is clicked WM_FULLED case calls full_window(); new routine iconify_window(WORD win, GRECT *new); handles iconifying a window (NO ICON ATM) new routine uniconify_window(WORD win, GRECT *new); handles uniconifying a window WM_ICONIFY and WM_UNICONIFY now supported F_STRUCT.C added current_table = 0 init's to new_frame(), reset_frame() and temp_frame() - fixes random crash after loading a table page global.h added externs for win_status and pre_status Loader.C set win_status = 0 in init_load() modified read_config() line. It's no longer a test. I had changed it to be an Alert, but found it too annoying atm. Highwire.C Commented out wind_set(...WF_BEVENT..). I don't know why it was there and no one ever answered the question on the list. It also get's rid of not being able to easily retop the Highwire window. variable.c new variable WORD win_status; determines what state our window is currently in 0 normal, 1 fulled, 2 iconified new variable WORD pre_status; tracks status before iconfication; January 17, 2002 John Kromylos Patches modifications of load_file() to make TOS happy MiNT_Flag moved to top of loader.c January 16, 2002 Baldrick's patches Applying patches so we can compile a menu version on the fly Most notably the inclusion of #ifdef GEM_MENU and Matthias Jaap's menu code and RSC file. modified files. Global.h, Highwire.c,AEI.C and Keyinput.c AltF4's January 12 patches Highwire.c - unused variable numSets commented out keyinput.c - variable 'i' commented out, we might want to track the return on page_load() at some point in time aei.c - moved WM_CLOSED and AP_TERM cases in switch to end of switch statement scanner.h removed the #include, it was only meant for testing. scan_color() prototype updated scanner.c - added #include "token.h" before include "scanner.h" added length argument to scan_color(). this way the color expression needn't a trailing '\0' anymore. removed the #ifndef NULL ... lines, useless. values.c added #includes for global.h and scanner.h removed the #ifndef NULL ... lines, useless. added new function Variable_color() which returns directly the remapped VDI color value of a given attribute. this has the advantage that we can save some useless copy actions and also makes some parse_...() functions a little bit more lean. parse.c #include section at the begining resorted or a better overview. removed a lot of obsolete debug macros (the DBG(..) lines). parse_body(), parse_table_tag(), parse_td_tag(), parse_th_tag(), parse_font_tag(): modified to use the new Variable_color() function. line 1821 - split if statement to keep PureC quiet line 1987 - improved recognition of comments, <!--..--> and <!-..-> are now also working if going over more than one line and if a html tag is inside AltF4's January 14 patches NETLAYER.C - added a dummy line to avoid PureC warning 'unused variable'. values.c: is now renamed to parser.c because this matches its meaning much better. the Variable..() functions are renamed now to more descriptive names get_value(), get_value_str(), get_value_color(). the function declarations are now placed in the header file parser.h where they belongs. added some explanation comments. Parse.c: is now renamed to render.c because this matches its meaning much better. removed obsolete Variable..() declarations, is now placed in parser.h. #include "parser.h" added. in all functions, replaced the obsolete Variable..() calls by the appropriate get_value..() calls (51 times). Makefile, purewire.prj, highwire.prj - updated January 11, 2002 Baldricks patches current_width lines deleted in walk_table_children() WORD temp_val added to table_item structure just a temporary word for use in table calculations I'm using it for replacing temp_cols at the moment, but made a generic name in case we find other uses for it. walk_chilren and table_width routines adapted to use table_item->temp_val current_width determination in percentage width tables moved to after walk_children in case sub tables have been processed draw_table() adapted to use table->temp_val draw_frame_contents() added new parameter frame_item *current_frame draw_table() added new parameter frame_item *current_frame current_word in draw_table() changed to frame->current_word draw_table() parameter 2 now table_item * instead of paragraph_item * current_child in draw_table() now refrences current_table->current_child draw_table() changed to long return - subtable heights were being lost January 10, 2002 AltF4's patches PARSE.C line 15 #include "scanner.h" lower case HIGHWIRE.C line 37 \\HTML\\ now lower case \\html\\ Edited .HTM files for lower case file names Baldricks patches current_child * moved from frame_item to table_item this will let us track multiple children for subtables calculate_table_width() modified to use table->current_child instead of local variable (this is an intermediary step) walk_table_children() modified to use table->current_child instead of local variable (this is an intermediary step) WORD min_width; added to struct table_child should track the size of the largest word in the child (ie child can be no narrower than this value) word_store() routine tracks child->min_width if inside of a table cleaned out come current_paragraph tracking that did nothing in calculation of table_width ok trying to reuse frame->current_word in walk_table_children() current_width commented out in walk_table_children() it wasn't really used and I'm not certain why it was in there sub tables are now parsing partially. This isn't finished yet. however they are at least not crashing. January 9, 2002 David Leavers update Lattice Highwire.prj included AltF4's patches from the 8th included. These replace baldricks changes for Var_len() and in parse_anchor() Baldricks patches patches in draw_table() for visual representation of colspan finally first and second tables in table1.htm display approximately correctly. January 8, 2002 AltF4's patches from the 5th New Purewire.prj (purec prj file) New Makefile Patched scanner.c and scanner.h new values.c Rafal Kawecki patches string.h added to F_STRUCT.C, P_STRUCT.C baldricks patches experimental Var_len() routine in values.c gets the length of the value of an attribute to a tag patches to parse_anchor() to use Var_len routine %width tables now set relative to clip width %width table width now checked against the minimum size of the table if it's smaller than the minimum size it becomes the minimum size. in redraws.c in draw_table() in paragraph code. left_border now set to 0 instead of paragraph->left_border. I'm not sure why I did that. added WORD min_width to table_item if table->actual_width > frame_page_width and table is a percentage of the clip area. frame_page_width is set to table->min_width January 7, 2002 Cleaned out lattice #ifdefs since we have all 3 main compilers working with GEM.LIB. Thanks to Ralph Lowinski updating the PureC version and David Leaver creating a Lattice version. January 4, 2002 Moved *.HTM sample files into HTML folder Changed default page in Highwire to point to HTML folder files Changed version number to 0.2 January 3, 2002 AltF4 has rewritten a large portion of the parser. He didn't document his changes in a short list and there are way too many for me to try and detail while still having time to get any programming done. Basically it's easiest to say, it's alot faster now. Baldrick Updated PRJ files for Lattice and PureC. Dec 28, 2001 AltF4's patches PARSE.C in parse_th_tag() test for table rows put back in for num_cols modification GLOBAL.H line 111 remap_color(long value) not remap_color(long *value) COLOR.C line 68 remap_color(long value) not remap_color(long *value) SCANNER.C and SCANNER.H updated Baldrick's patches These are experiments that might be dumped attr_step() struct added to defs.h attr_step *current_attr added to frame_item struct new_attr() and add_attr() added to parse.c attr_list() added to parse.c Idea is to break the input area for a tag into a linked list of attr_step's to speed parsing current_attr init'd to 0 in routines in F_STRUCT.C Modified parse_p_tag() and parse_td_tag() to use attr_list routine old code kept in #ifdef incase new routines are dropped Dec 26, 2001 Modifications to handle compiling with GEM.LIB. Removal of GEMParBlk code, it was basically to test if the program was running under AES 4.x (atari Multitos) added cyan and magenta to the COLORNAME array color probably not exact, I just guessed something close AltF4's patches VARIABLE.C fonts{} modified TO_DO.C line 126 first_frame changed to the_first_frame TABLE.C line 135 param top changed to tab_top line 136 param top changed to tab_top line 140 param top changed to tab_top line 144 line_end rem'd out as unused atm line 147 height_spacer rem'd out as unused atm line 149 previous_word_height rem'd out as unused atm line 157 temp_rows rem'd out as unused atm line 169 bottom_border & right_border rem'd out as unused atm line 331 href changed to lnk_href walk_table_children() param top changed to tab_top also now a static routine line 519 current_line_width now init'd at 0 calculate_table_width() param top now tab_top calculate_subtable_width() param top now tab_top calculate_subtable_height() param top now tab_top line 810 temp_rows rem'd out as unused atm line 975 href changed to lnk_href SCANNER.C added include ctype.h struct NAMEDCHAR reworked scan_color() routine modified and moved Color index array moved here REDRAWS.C draw_box() routine now static void draw_hr() routine now static void draw_img() routine now static void draw_paragraph() routine now static WORD { and } added to if (current_word->changed.colour == TRUE) test in draw_paragraph() draw_table() routine now static void P_STRUCT.C add_paragraph() new_paragraph and new_word variables now paragraph and word dropped 'new_' this modifies most of the lines in some small way PARSE.C removed color_array it's now in SCANNER.C kill_to_end() routine now static char * set_pre_font() now static void set_font_bold() now static void set_font_italic() now static void set_font_strike() now static void set_font_underline() now static void set_center_text() now static void set_blockquote_text() now static void parse_color() routine removed now scan_color() is used parse_anchor() now static void href changed to lnk_href in new_url_link() calls in parse_anchor() name changed to lnk_name in new_url_link() call in parse_anchor parse_body() routine rewritten parse_d_tags() now static void parse_div_tags() now static void parse_font_tag() now static void variable WORD temp removed color handling modfied parse_header_tag() now static void parse_menu_tag() now static void parse_p_tag() now static void parse_li_tag() now static void parse_ol_tag() now static void parse_ul_tag() now static void parse_table_tag() now static void variable WORD temp removed color handling modified parse_th_tag() now static void color handling modified parse_td_tag() now static void color handling modified parse_hr_tag() now static void parse_img_tag() now static void parse_title() now static char * parse_frameset() now static char * list_marker() routine variable new_word changed to n_word - modifications to handle this NETLAYER.C in request_uri() #ifdef USE_LIBWWW moved to before char *url MOUSE_R.C in check_mouse_position() href changed to lnk_href in last test LOADER.C get_fname() now static void get_fpath() now static void init_load() first_frame changed to the_first_frame KEYINPUT.C in key_pressed() char test; rem'd out as unused atm in page_load() n[80] added = "" variable int b; removed WORD butt added variable int result removed *n = EOS removed HIGHWIRE.C in main() enum bool quit renamed to exit variable id rem'd out as unused atm while loop now tracks exit MU_ handling routines now use the_first_frame instead of first_frame in highwire_ex() the_first_frame used instead of first_frame in destroy_frame... F_CALC.C in calculate_frame_locations() the_first_frame used instead of first_frame in calculate_frame_height() current_line_width added = 0 href now addressed as lnk_href CONFIG.C equ_txtn() now static WORD COLOR.C remap_color now WORD remap_color(long value) best_no now init'd to 0 unsigned char *rgb added RGB1000 color added as variable new routines for modifications of color values changes to remap to color from * color parse_convert_hex() and parse_convert_colour() routines removed unused now AEI.C vastart() now static void nextToken() now static char * doGSCommand() now static WORD DEFS.H enum link_mode settings now lnk_href and lnk_name GLOBAL.H line 10 dev renamed to vdi_dev line 26 first_frame renamed to the_first_frame line 111 parse_convert_colour() replaced with remap_color() line 134 param top changed to tab_top line 135 param top changed to tab_top SCANNER.H long scan_color() protoype added Dec 22, 2001 AltF4's patches New makefile include osbind.h in AEI.C wind_set_str() modification for WF_INFO call in main() modfications for identify_AES for GNUC Baldrick's patches Line 290 in MOUSE_R.C modified first_frame to current_highlighted_link_frame hopefully avoids one of the extraneous redraws modified vs_clip()'s in blit_block. They now turn off old window level clipping and then localize it to redraw area modified current_height > h test near bottom of draw_table() it now checks to see if you are in the last column of a table This probably isn't perfect. But it works for the example files Dec 21, 2001 Matthias Jaap's patches for Gemscript baldrick - modified int's in Gemscript support to WORD's David Leavers patches WORD pts2[2] now WORD pts2[4] in draw_box() routine. Line 187 in TO_DO.C +1 added to malloc(strlen()) Line 184 in TO_DO.C +1 added to malloc(strlen()) #ifdef LATTICE wrapper for wind_set(WFNAME) added in init_load() #ifdef LATTICE wrapper for wind_set(WF_INFO) added in main() Header modifications in COLOR.C Baldricks patches WORD identify_AES(void) added to LOADER.C this searches the cookie jar for the AES. Hopefully compiles with all of our compilers A number of defines to support identify_AES() added to DEFS.H WORD AES_type added to main(). This tracks AES type used. Mostly used to detect AES_single atm. identify_AES() called to issue appropriate Pdomain(). This is code scavenged out of Qdialer. Hopefully it works appropriately allowing single TOS to load files AND compiles under all compilers. void walk_table_children() routine created. It handles the walking of a tables children and it's paragraphs to get the table actual_width if a td or th has a colspan adjust the table->num_cols by colspan - 1 to adjust for 1 already added at start of tag processing Dec 20, 2001 AltF4's patches Parse.c special_char_map() routine removed (unused code) Color.c int coltab[3]; now WORD coltab[3]; line 42 Highwire.c int vwork_out... changed to WORD vwork_out... line 38 /* */ put around line in IFDEF 0 - I disabled ... Baldricks patches Added 'v. 0.1' to About Highwire dialog in key_pressed() routine WORD ignore_colours added to variable.c ignore_colours determines whether color settings in tags are parsed or ignored. ignore_colours = 1; added to planes < 2 test in main(). parse_body() checks ignore_colours before parsing color attributes parse_font_tag() checks ignore_colours before parsing color attribute parse_table_tag() checks ignore_colours before parsing bgcolor attribute. if ignore colours is 1, then it sets the table backaground to frame background parse_th_tag() checks ignore_colours before parsing bgcolor attribute parse_td_tag() checks ignore_colours before parsing bgcolor attribute output[100] removed from parse_title() routine WORD actual_width added to table_item struct. Tracks real width of table Several instances of table_width replaced with actual_width. WORD actual_width and WORD actual_height added to table_child structure. Tracks what the real dimensions of the child are. tag variable height now parsed in th and td tags tag variable width now parsed in th and td tags Test made in calculate table height and calculate sub table height to see if the html specified a larger height than the data warrants Test made in calculate table width and calculate sub table width to see if the html specified a larger height than the data warrants WORD forced_width; removed from table_item structure. It wasn't needed anymore cell_spacing and cell_padding reversed. They had been used backwards previously. Dec 19, 2001 AltF4's patches New Purewire.PRJ Inlude SCANNER.C and SCANNER.H Moved ISO array out of PARSE.C parse_title() modified to use new scanning routines '&' parsing modified to use new scanning routines Dec 18, 2001 (afternoon - after morning code release) modified test in parse_td_tag() num_rows <= 1 Dec 18, 2001 (morning) Alot of experimentation with new table_step routines to get them functioning correctly minimum_width removed from parse_text and calculate frame Dec 17, 2001 rem'd out a test in redraw_frame. frame->frame.h isn't being properly initialized so the test is bad. prev_alignment added to parse_p_tag(). This tracks the previous paragraphs alignment and sets the new paragraph to this if it is not specifically defined. ALTF4's patches from Dec 16th applied PARSE.C ( wind set patch) LOADER.C HIGHWIRE.C COLOR.C AltF4's patches to parse.c Dec 17th applied amp lookup modified in htmlchars modifications of special_char_map_str() modifications to parse_menu_tag() for flag variable so that it handles closing tags as well WORD current_font_size added to frame item structure WORD current_font_size removed from calc_frame... modifications to use frame item * WORD current_font_size parameter removed from parse_d_tags() modifications to use frame item * WORD current_font_size parameter removed from parse_font_tag() modifications to use frame item * WORD current_font_size parameter removed from parse_header_tag() modifications to use frame item * WORD current_font_size parameter removed from parse_p_tag() modifications to use frame item * modifications to parse_font_tag() for flag variable so that it handles closing tags modifications to parse_header_tag() for flag variable so that it handles closing tags modifications to parse_ol_tag() for flag variable so that it handles closing tags modifications to parse_div_tag() for flag variable so that it handles closing tags modifications to parse_ul_tag() for flag variable so that it handles closing tags modifications to parse_anchor() for flag variable so that it handles closing tags parse_th_tag() routine created. Handles Table Header Cells table_item *current_table & table_child *current_child added to frame_item structure parse_td_tag() routine created. Handles Table Data Cells parse_table_tag() routine created. Handles Table tags ;) struct table_step created. (defs.h) struct table_step *parent_table; added to frame_item struct struct table_step *new_table_step (struct table_item *p_table); routine added to table.c struct table_step *add_table_step (struct table_step *old) routine added to table.c Dec 14, 2001 frame_item *p_frame added to add_paragraph() routine word_item *current_word param removed from add paragraph() * current_paragraph param removed from add_paragraph() WORD indent param removed from add_paragraph() WORD *minimum_width param removed from add_paragraph() add_paragraph() now directly modifies frame->current_paragraph no longer returns a value modified all instances of add_paragraph() for new params set frame->current_word at end of add_paragraph() since it was always set after add_paragraph anyway WORD *active_word added to frame structure WORD *active_word param removed from add_paragraph() Removed active_word param from most of the recent tag parsing routines word_store() now takes struct frame_item *p_frame removed struct word_item *current_word from word_store() modifications across code to support this add frame_item* p_frame to add_word() routine WORD indent param removed from add_word() routine WORD *minimum_word param removed from add_word() routine moved word_store() call in add_paragraph() after empty paragraph test temporarily removed empty paragraph test in add_paragraph() I think the problem it was trying to cure may be gone now. I'm not really happy with some of the vertical spacing now, but if we use the old test we now loose some paragraphs parse_div_tag() routine created. handles DIV tags... parse_font_tag() routine created. handles FONT tags... parse_p_tag() routine created. handles P tags... Dec 13, 2001 kill_to_end() replaces some code in closing of Title tag struct word_item *current_word moved to frame structure parse_hr_tag() reworked again parse_ol_tag() reworked... parse_li_tag() reworked... parse_img_tag() reworked... parse_ul_tag() reworked... parse_header_tag() reworked... parse_anchor() reworked... list_marker() reworked using expanded frame structure parse_menu_tag() routine created. parse MENU tags. Possibly could be eliminated and mapped onto parse_ul_tag() routine. DIR parsing now just mapped to parse_menu_tag() since they are functionally the same and both are deprecated officially set_center_text() routine created. If flag is on new paragraph is centered. if flag != 1 new paragarph is left justified set_blockquote_text() routine created. If flag is on new paragraph is indented if flag != 1 new paragarphs indentation is reduced parse_d_tags() routine created. This handles all of the Dx tags DL, DT, DD. Flag determines operation mode 1 is start != 1 is end of tag type determines type of D tag we are parsing 0 DL 1 DT 2 DD Dec 12, 2001 parse_ul_tag() routine created. Just parses UL tags parse_ol_tag() routine created. Just parses OL tags parse_li_tag() routine created. Just parses LI tags list_stack_item *current_list moved to frame structure. paragraph_item *current_paragraph moved to frame structure. current_indent_distance moved to frame structure. current_font_step * moved to frame structure. simplifying many of the recently added routines to handle a frame item * instead of all the seperate variables parse_hr_tag() reworked parse_header_tag() reworked parse_img_tag() reworked Dec 11, 2001 slider_bkg variable added. Controls color of background of frame sliders slider_col variable added. Controls color of slider widgets in frame controls These were both added to variable.c as a set value. They are modified in highwire.c for monochrome displays. They should either be matched to the system settings or user configurable. Dec 07, 2001 modified the y coordinate test in frame location detection in in button_clicked() in MOUSE_R.C. If there was no horizontal scroller for the frame the coordinates for the frame clip were too large. So the test could find the frame above or to the left of the frame you were trying to manipulate. Also modified the tests for the x coordinate in the same location in a similar manner. Note it's very possible that these tests could be rewritten into something that would process faster if we think it's necessary. parse_img() now retrieves the SRC value and stores it in the local variable img_file[]; The way the names are stored for framesets and images should probably be modified to avoid overflow. Especially if we are looking at URI's since these can exceed 1000 characters. Dec 06, 2001 parse_title() now it place. Handles parsing and conversion of title tags to a GEM window compatible formats and then sets the window title. some modifications in IMG location in table height and redraws Setting of col_widths for tables done now when a column is of a fixed width. Dec 05, 2001 parse_img_tag() routine in place. Handles the parsing of IMG tags to the extant of the current code. parse_hr_tag() routine in place. parse hr tags. Dec 04, 2001 modification to set_pre_font() to enable one routine to set and turn off set_font_bold() routine created. Modifies current word styles Bold on and off set_font_italic() routine created. Modifies current word styles Italic on and off set_font_strike() routine created. Modifies current word styles Strike on and off set_font_underlined() routine created. Modifies current word styles Underlined on and off That's all of the simple text manipulations for reuse elsewhere. Dec 03, 2001 Put handling for closing td, th and tr tags into parse.c TH cells are now bold and centered by default parse_body() routine created. Simply handles the processing of body tags. Documented more of the supported tags in parse.c parse_anchor() routine created. Parses <A ...> tags. set_pre_font() routine created. Basically 2 lines of common code use in a number of locations. Why all the new routines? Well I'm trying to strip down the reuseable code as much as possible so that I can expand the table parsing code. Dec 01, 2001 Found and fixed a bug in variable() that did not appear under MagicPC. Found a bug in calculate table height where I had current_paragraph instead of current_table moved current_paragraph assignment to top of while loops in calc height and width of tables. ooops. Some cleanup and moving of stuff around in the table calculation routines. added some word_stores in the child creation. modified highwire to load highwire.htm by default Nov 30, 2001 Fixed a bug in border watching that basically forced tables not to print. Ok. Simple tables are mostly working. There are problems and limitations still. However I did promise to give everyone a look. Clickable areas in tables aren't working properly. Lookups in tables are failing as well. Some table cells have improper sizes. ie. This isn't finished, it's just for show and to get other people who might be looking at the code a look at the table code. Nov 29, 2001 draw_box() routine created to draw the bounding boxes around items like tables. Nov 28, 2001 Ok there was very litle tracking in the history for awhile alot of things were done to the code and for along time it was like walking in a dark tunnel with nothing but a broken flashlight. However finally simple tables are working to a limited extant. Nov. 13, 2001 Patches patches everywhere. Finally partial success on simple tables without defined widths October 31, 2001 Ok, I'm giving up on the clickable object bug right now. several days of work and no success. The location of the window on the desktop does affect this bug. October 30, 2001 more experimentation involving the mislocation of clickable areas in tables. October 29, 2001 getting back into the code after a forced break... sorry about that numerous problems with tables. Much experimentation. October 17, 2001 numerous modifications to fix clickable_area's inside of tables fixed default alignment in table data cells October 11, 2001 Several patches by Mathias Japp parse_colour() rewritten using an array special_char_map_str() rewritten using array parse_header_tag() modified with strupr keyinput.c - new defines at top New Hot Keys Control O - Open file selector Contorl I - About Highwire alert Control Q - Quit Highwire New routines page_load() support for Fileselector build_fname() build filename - support for Fileselector September 27, 2001 restart of implementation of table support table_item() and table_child() structs placed back into defs.h (table_item * put back into paragraph) Table parsing in parse.c reimplemented (it still needs work) Start of reimplementation of table rendering September 26, 2001 some experiments in the redraw code, nothing really Took a few days off. September 21, 2001 fixed lockup problem on resizing window. Missed the equal to in the tests. September 20, 2001 added clipping_area struct to the paragraph structure. This will be used in the redraw code to identify if a paragraph needs to be redraw in relation to the new viewport. added initialization of clipping area to calculate_frame_height() experiments with a new draw_frame_contents routine using the paragraph areas. It's mostly working. However many advantages from the old system are currently missing. alot of modification to calculate_frame_height() to get the objects area's correct. September 19, 2001 draw_hr() routine created. First fully functional part of a modular redraw system. draw_img() routine created. Second functional part of modular redraw. Note IMG routines do not handle images yet, they are mearly holders for future use. added an extra test to compare the height to the frame height this was to help exit the routine when it had drawn everything that it had to draw. modified d_up etc. in blit_block to use pts[3] for the frame_h on the redraw. This simplifies some things and apparently breaks nothing. I did this since draw_frame_contents was drawing past the end of the window (I turned clip off and discovered this). No sense in wasted processing. draw_paragraph() routine created. Third functional part of modular redraw :) September 17, 2001 More digging in the guts of the redraw code. Something dreadfully wrong going on somewhere. Ok I did a reset of the code back to the sept 7 version with some additions made on September 10th. Hopefully from here I'll be able to see the way forward again. variable() and HR patches reimplemented September 14 & 13, 2001 Very litle time either day for programming. Mostly experimentations for a new method of drawing the frame contents. September 12, 2001 current_table pointer addition to parse html <tr> increments table->row counter <table> handles alignment, bgcolor, border, cell_padding, cell_padding, width <td> handles bgcolor September 11, 2001 more modifications to handle new table structures first parsing of data to new table structures September 10, 2001 variable() patched again. We need to parse out LF and CR. It appears that MS considers it legal to place them inside of a tag. modification to HR parsing, if there is no width the width is set to -100 (or 100%) modification in redraw to handle new HR parsing. Basically its back to the original with some care to avoid overflows table_item() structure work started table_child() structure work started table.c file added to project September 7, 2001 frame_name added to frame structure and load_to_do item NAME parsed in frameset parsing code in PARSE.C target added to url_link structure. new_url_link() added target parameter September 6, 2001 fixed two more integer overflow bugs in f_calc.c implemented suggestion by Deun for handling integer overflow problem. implemented a method for adding 1 to frames to fill space Probably could be done better, but I don't have any manuals here. Also NOTE we really need to think about how to inform later frames that their x has moved by one. renamed this file to HISTORY.TXT Changed clipping area y to WORD from long. Did some casts to WORD and other modifications to support this change. Changed clickable area y to WORD from long. Support casts to WORD and other modifications necessary done. Found another overflowing integer in the scroll widget size determination fixed vertical and horizontal. So scoll bars are working properly now. September 5, 2001 trashed image as word item experiments New routine parse_text() for handling ordinary text files like this one. new Routine get_decoder_type() for determining the appropriate decoder for a file based on it's extension. Modifications of parse_to_do item and add_parse_to_do to handle the decoder type extension Modified the size of several buffers in parse.c, the reason was we were over flowing them. This would be a good area to investigate alternatives. patched draw_frame_contents to watch for right border not allowing words to fit border now parsed in parse_frameset (well used now at least) modifications in calculate frames. We were overflowing the buffer if our framesize was a percentage and getting erroneous results September 4, 2001 experiments with making images a word item... August 31, 2001 Not perfect but the blocks for the images are at least partially working. It needs some improvement which might involve some major shifting around in the code. But most of the time it works without locking up. Mikes patches for lattice window title code in place. August 30, 2001 changed default output in special_char_map_str() to Space_Code modified strike out display location in draw_frame_contents from divided by 3 to divided by 2 August 29, 2001 I had missed Fuchsia in the parse_color() routine. August 28, 2001 experiments with <IMG> addition of img to enum for paragraph types (can we put it here) Updates to char 10 parsing August 26, 2001 Catch char 10 (line feeds) in parsing Paragraphs now default left (was failing sometimes) blockquote support August 25, 2001 Modified parse_header_tag to take current_word as a parameter August 24, 2001 removed a couple of now useless tests for " on return from variable() August 23, 2001 New file CONFIG.C reads and parses a config file Hopefully config file is self explanatory for the moment Slight Warning... Somethings are a bit strange since I decided to rework the variable routine. ie. somethings that did work fail. I'm slowly tracking these down. The new code, basically lets us get rid of a bunch of silly tests that were elsewhere in the code. August 22, 2001 ...patches for variable() routine to parse out begining " and trailing " and spaces. This will probably involve alot more patching as we go on. Modifications to the parse_color routine August 21, 2001 Added WORD text_colour and link_colour to frame struct modifications in redraw and parsing to handle new color indexs August 20, 2001 New routine to parse header tags. Just cleans up alot of duplicated code in the main parse routine. New routine parse_colour() used to map "white" etc to appropriate VDI index Support for parse_colour in a few places Moved background_colour from a define to a WORD /* probably should dump it? */ Removed new_frame pointer from frame struct Added WORD background_colour to frame struct Modified redraw routines to handle frame->background_colour New file "color.c" handles color mapping, palette storing etc. August 14, 2001 Added support for border in add_load_to_do() call had to modify calculate frame again Success finally removed container value from frame structure added init_paths() to preload last_location for filename searching. Warning, there is probably junk I've inserted into the code while working out framesets to this point, that do not really get used. Sorry about that, we will just have to watch and play cleanup. ALSO there are some serious redraw problems with multiple frames. I haven't sorted these out yet. I don't think it has anything to do with the frameset parsing. I think there are just some bad tests somewhere in the code. August 10, 2001 Frameset parsing moving along. Added container value to frame structure, if true then redraw etc doesn't worry about this frames contents. Modified calculate_frame to take frame_item * August 8, 2001 Still more modifications of frame routines. Creation of previous_frame *, this points to the last created frame. So when we create a new frame we have a standard place to put it in the list. August 3, 2001 Hey found part of what I was looking for. frame_left controls the offset of the frame into the window now I can really start to get closer on the multiple frames in pages. history file lost stuff, did alot of things that went no where. Into the code and back out again. Howver the following have been done recently. init_load() routine modified. Basically alot didn't need to be there. some code cleanups. However Lattice compiles now not working 100% :< July 31, 2001 experiments with cur_frame and frame_list to no end July 30, 2001 JUNKED ... started the construction of page_item() to handle all the frame_items for a page. Just a higher level container basically so that the frame_items can be dynamic and not static. modifications to <font size = 2> code and <\font> code however not alot. I'm not certain how to really fix this. The problem we have is that sometimes fonts become way!!!! too small. Really the code works probably about the way it should except we end up with font sizes of 4 and smaller. Too small for most to read. modified variable() routine again. stptok() in one instance, replaced by strchr() July 20, 2001 changed 'noshade' check to != '!' instead of '*' since if there is another variable after the NOSHADE there will be a value in out heavy modifications to variable() routine. I discovered it had some bleeding values creeping in. Also replaced all strrchr() with stptok() July 19, 2001 Changed current_word->vertical_align = middle; from bottom in end of <sub sup> processing. Old method dropped it too low. Fixed a missing space in TEST2.HTML ;) default height spacer in redraw frame is now line_tail (not perfect but makes sub sup tags happier, in effect all text was drawn below the baseline in the past. Extra check in ISO processing '& ' is not processed but dumped straight as it is shown. Modified iso character processing for strings to take a conversion type 0 gives you the ISO Latin conversions 1 gives you Atari Ascii conversions (where existing) This allowed me to get the ISO char codes working for the window title. changed default height spacer in vertical alignment (redraw frame) to line_tail July 18, 2001 Finished up &szlig; style ISO entity processing. Should have all the standard ones in place now. <Hx> tags are now made bold. I believe this is the standard practice added space_found = false; to ISO processing July 16, 2001 First off sorry about the bad archive (missing files + bad filenames) on the 15th of July Modification of init_load() routine. Now sets window title to <file> in case we don't get a title later on. additional special char support (new routine, new processing) It's not completely finished however and parts that are done are not correct <title> code modified again. \r and \n caught in while() loop now. July 15, 2001 slash conversion on local file names / to \ <pre> <\pre> partial initial support. (still has some problems) July 14, 2001 found vs_clip() problem on TT with Nova card and NVDI July 13, 2001 <hr> code modified in parsing routines so that changed.font = TRUE seems to fix some of the problems with text display after a <hr SIZE x> tag <hr> code modified in redrawing routines so that <hr> covers the width of the frame unless it has a defined width. removed second current_paragraph->paragraph_code = hr in <hr> parsing <br> modifications to reduce excess space that were added sometimes added a changed.font = TRUE July 12, 2001 Modifications to <title> routines to handle a couple of badly formatted pages I threw at the parser. (title code still needs work as of July 15, 2001) July 11, 2001 <title><\title> now sets the window title (except under Lattice for some strange reason) <UNDO> backs up to the previous page viewed (this is a limited version that needs replaced in the long run, just needed something atm) <dd> tags were causing problems. Patched this