From 201bc569a4f40b1b2e53660cceb183570534b557 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sun, 18 Jan 2015 23:13:32 +0000 Subject: More OS3 compilation fixes --- amiga/os3support.c | 3 +++ amiga/os3support.h | 11 ++++++++++- amiga/plugin_hack.c | 6 +++++- amiga/print.c | 16 ++++++++++++---- amiga/schedule.c | 8 ++++++-- amiga/search.c | 2 +- amiga/stringview/stringview.c | 4 ++-- amiga/stringview/urlhistory.c | 16 ++++++++-------- amiga/theme.c | 20 ++++++++++++++++---- amiga/tree.c | 29 +++++++++++++++++++++-------- 10 files changed, 84 insertions(+), 31 deletions(-) (limited to 'amiga') diff --git a/amiga/os3support.c b/amiga/os3support.c index dda3df31e..7eafc7db4 100644 --- a/amiga/os3support.c +++ b/amiga/os3support.c @@ -54,6 +54,9 @@ void FreeSysObject(ULONG type, APTR obj) case ASOT_PORT: DeleteMsgPort(obj); break; + case ASOT_IOREQUEST: + DeleteIORequest(obj); + break; } } diff --git a/amiga/os3support.h b/amiga/os3support.h index 93bb0ba11..e28985eaf 100644 --- a/amiga/os3support.h +++ b/amiga/os3support.h @@ -98,6 +98,7 @@ #define RAWKEY_END 0x71 /* Other constants */ +#define BVS_DISPLAY BVS_NONE #define IDCMP_EXTENDEDMOUSE 0 #define WINDOW_BACKMOST 0 #define DN_FULLPATH 0 @@ -143,6 +144,7 @@ /* Utility */ #define SetMem memset +#define SNPrintf snprintf /* Integral type definitions */ typedef int8_t int8; @@ -160,6 +162,12 @@ struct TimeVal { uint32 Microseconds; }; +/* TimeRequest */ +struct TimeRequest { + struct IORequest Request; + struct TimeVal Time; +}; + /* Compositing */ #define COMPFLAG_IgnoreDestAlpha 0 #define COMPFLAG_SrcAlphaOverride 0 @@ -189,7 +197,8 @@ struct TimeVal { /* Object types */ enum { - ASOT_PORT = 1 + ASOT_PORT = 1, + ASOT_IOREQUEST }; /* Requester types */ diff --git a/amiga/plugin_hack.c b/amiga/plugin_hack.c index 7982a6734..23f4d3454 100644 --- a/amiga/plugin_hack.c +++ b/amiga/plugin_hack.c @@ -17,9 +17,11 @@ */ /** \file - * DataTypes picture handler (implementation) + * Plugin=>external program handler (implementation) */ +#include "amiga/os3support.h" + #include "amiga/filetype.h" #include "amiga/plugin_hack.h" #include "content/content_protected.h" @@ -250,6 +252,7 @@ void amiga_plugin_hack_execute(struct hlcache_handle *c) if(full_cmd) { +#ifdef __amigaos4__ LOG(("Attempting to execute %s", full_cmd)); in = Open("NIL:", MODE_OLDFILE); @@ -264,5 +267,6 @@ void amiga_plugin_hack_execute(struct hlcache_handle *c) TAG_DONE); FreeVec(full_cmd); +#endif } } diff --git a/amiga/print.c b/amiga/print.c index 862e598c7..5c89705d3 100644 --- a/amiga/print.c +++ b/amiga/print.c @@ -16,6 +16,8 @@ * along with this program. If not, see . */ +#include "amiga/os3support.h" + #include #include #include @@ -53,6 +55,7 @@ #include "amiga/plotters.h" #include "amiga/gui.h" +#include "amiga/misc.h" #include "amiga/print.h" #include "amiga/utf8.h" @@ -217,11 +220,11 @@ void ami_print_ui(struct hlcache_handle *c) char filename[30]; int i; - struct ami_print_window *pw = AllocVecTags(sizeof(struct ami_print_window), AVT_ClearWithValue, 0, TAG_DONE); + struct ami_print_window *pw = ami_misc_allocvec_clear(sizeof(struct ami_print_window), 0); pw->c = c; - printers[0] = AllocVecTags(50, AVT_ClearWithValue, 0, TAG_DONE); + printers[0] = ami_misc_allocvec_clear(50, 0); ami_print_readunit("ENV:Sys/printer.prefs", printers[0], 50, 0); strcpy(filename,"ENV:Sys/printerN.prefs"); @@ -385,13 +388,18 @@ void ami_print(struct hlcache_handle *c, int copies) if(ami_print_info.msgport == NULL) ami_print_init(); - +#ifdef __amigaos4__ if(!(ami_print_info.PReq = (struct IODRPTagsReq *)AllocSysObjectTags(ASOT_IOREQUEST, ASOIOR_Size, sizeof(struct IODRPTagsReq), ASOIOR_ReplyPort, ami_print_info.msgport, ASO_NoTrack, FALSE, TAG_DONE))) return; +#else + if(!(ami_print_info.PReq = + (struct IODRPTagsReq *)CreateIORequest(ami_print_info.msgport, + sizeof(struct IODRPTagsReq)))) return; +#endif if(OpenDevice("printer.device", nsoption_int(printer_unit), (struct IORequest *)ami_print_info.PReq, 0)) @@ -467,7 +475,7 @@ struct MsgPort *ami_print_get_msgport(void) bool ami_print_begin(struct print_settings *ps) { - ami_print_info.gg = AllocVecTags(sizeof(struct gui_globals), AVT_ClearWithValue, 0, TAG_DONE); + ami_print_info.gg = ami_misc_allocvec_clear(sizeof(struct gui_globals), 0); if(!ami_print_info.gg) return false; ami_init_layers(ami_print_info.gg, diff --git a/amiga/schedule.c b/amiga/schedule.c index 93389a8d9..494b8b027 100755 --- a/amiga/schedule.c +++ b/amiga/schedule.c @@ -297,18 +297,22 @@ static struct MsgPort *ami_schedule_open_timer(struct MsgPort *msgport) ASO_NoTrack, FALSE, TAG_DONE); } - +#ifdef __amigaos4__ tioreq = (struct TimeRequest *)AllocSysObjectTags(ASOT_IOREQUEST, ASOIOR_Size,sizeof(struct TimeRequest), ASOIOR_ReplyPort,msgport, ASO_NoTrack,FALSE, TAG_DONE); +#else + tioreq = (struct TimeRequest *)CreateIORequest(msgport, sizeof(struct TimeRequest)); +#endif OpenDevice("timer.device", UNIT_WAITUNTIL, (struct IORequest *)tioreq, 0); TimerBase = (struct Device *)tioreq->Request.io_Device; +#ifdef __amigaos4__ ITimer = (struct TimerIFace *)GetInterface((struct Library *)TimerBase, "main", 1, NULL); - +#endif return msgport; } diff --git a/amiga/search.c b/amiga/search.c index ac061cbc3..ab32abbdf 100755 --- a/amiga/search.c +++ b/amiga/search.c @@ -103,7 +103,7 @@ void ami_search_open(struct gui_window *gwin) return; } - fwin = AllocVecTags(sizeof(struct find_window), AVT_ClearWithValue, 0, TAG_DONE); + fwin = ami_misc_allocvec_clear(sizeof(struct find_window), 0); fwin->objects[OID_MAIN] = WindowObject, WA_ScreenTitle, ami_gui_get_screen_title(), diff --git a/amiga/stringview/stringview.c b/amiga/stringview/stringview.c index daabe58e0..a009f228a 100755 --- a/amiga/stringview/stringview.c +++ b/amiga/stringview/stringview.c @@ -667,7 +667,7 @@ static uint32 myStringClass_GM_HandleInput( Class *cl, Object *obj, struct gpInp myStringHandleListview( cl, obj ); break; } - +#ifdef __amigaos4__ case IECLASS_MOUSEWHEEL: { struct InputEvent *ie = msg->gpi_IEvent; @@ -686,7 +686,7 @@ static uint32 myStringClass_GM_HandleInput( Class *cl, Object *obj, struct gpInp retval = GMR_MEACTIVE; break; } - +#endif default: { retval = IDoSuperMethodA( cl, obj, (APTR)msg ); diff --git a/amiga/stringview/urlhistory.c b/amiga/stringview/urlhistory.c index 6d134a4a5..d55a4b4b6 100644 --- a/amiga/stringview/urlhistory.c +++ b/amiga/stringview/urlhistory.c @@ -33,6 +33,12 @@ static struct List PageList; +#ifdef __amigaos4__ +#define ALLOCVEC_SHARED(N) AllocVecTags((N), AVT_Type, MEMF_SHARED, TAG_DONE); +#else +#define ALLOCVEC_SHARED(N) AllocVec((N), MEMF_SHARED); +#endif + void URLHistory_Init( void ) { // Initialise page list @@ -79,17 +85,11 @@ static bool URLHistoryFound(nsurl *url, const struct url_data *data) /* skip this URL if it is already in the list */ if(URLHistory_FindPage(nsurl_access(url))) return true; - node = AllocVecTags(sizeof(struct Node), - AVT_Type, MEMF_SHARED, - //AVT_ClearWithValue, 0, - TAG_DONE); + node = ALLOCVEC_SHARED(sizeof(struct Node)); if ( node ) { - STRPTR urladd = (STRPTR) AllocVecTags( strlen ( nsurl_access(url) ) + 1, - AVT_Type, MEMF_SHARED, - //AVT_ClearWithValue, 0, - TAG_DONE); + STRPTR urladd = (STRPTR) ALLOCVEC_SHARED( strlen ( nsurl_access(url) ) + 1); if ( urladd ) { diff --git a/amiga/theme.c b/amiga/theme.c index b7099e897..b75f6ed5c 100644 --- a/amiga/theme.c +++ b/amiga/theme.c @@ -16,6 +16,8 @@ * along with this program. If not, see . */ +#include "amiga/os3support.h" + #include #include @@ -99,6 +101,7 @@ const char *ptrs32[AMI_LASTPOINTER+1] = { "ptr32_blank", "ptr32_drag"}; +#ifdef __amigaos4__ /* Mapping from NetSurf to AmigaOS mouse pointers */ int osmouseptr[AMI_LASTPOINTER+1] = { POINTERTYPE_NORMAL, @@ -122,7 +125,7 @@ int osmouseptr[AMI_LASTPOINTER+1] = { POINTERTYPE_PROGRESS, POINTERTYPE_NONE, POINTERTYPE_DRAGANDDROP}; - +#endif void ami_theme_init(void) { @@ -218,13 +221,15 @@ void ami_update_pointer(struct Window *win, gui_pointer_shape shape) if(drag_save_data) return; if(LIB_IS_AT_LEAST((struct Library *)IntuitionBase, 53, 42)) { +#ifdef __amigaos4__ BOOL ptr_delay = FALSE; if(shape == GUI_POINTER_WAIT) ptr_delay = TRUE; SetWindowPointer(win, WA_PointerType, osmouseptr[shape], WA_PointerDelay, ptr_delay, - TAG_DONE); + TAG_DONE); +#endif } else { if(nsoption_bool(os_mouse_pointers)) { @@ -408,12 +413,14 @@ void gui_window_start_throbber(struct gui_window *g) if(!g) return; if(nsoption_bool(kiosk_mode)) return; +#ifdef __amigaos4__ if(g->tab_node && (g->shared->tabs > 1)) { SetClickTabNodeAttrs(g->tab_node, TNA_Flagged, TRUE, TAG_DONE); RefreshGadgets((APTR)g->shared->objects[GID_TABS], g->shared->win, NULL); } +#endif g->throbbing = true; if(g->shared->throbber_frame == 0) g->shared->throbber_frame = 1; @@ -427,12 +434,14 @@ void gui_window_stop_throbber(struct gui_window *g) if(!g) return; if(nsoption_bool(kiosk_mode)) return; +#ifdef __amigaos4__ if(g->tab_node && (g->shared->tabs > 1)) { SetClickTabNodeAttrs(g->tab_node, TNA_Flagged, FALSE, TAG_DONE); RefreshGadgets((APTR)g->shared->objects[GID_TABS], g->shared->win, NULL); } +#endif if(g == g->shared->gw) { if(ami_gui_get_space_box(g->shared->objects[GID_THROBBER], &bbox) != NSERROR_OK) { @@ -471,7 +480,7 @@ static void ami_throbber_update(void *p) warn_user("NoMemory", ""); return; } - +#ifdef __amigaos4__ BltBitMapTags(BLITA_SrcX, throbber_width * frame, BLITA_SrcY, 0, BLITA_DestX, bbox->Left, @@ -484,7 +493,10 @@ static void ami_throbber_update(void *p) BLITA_DestType, BLITT_RASTPORT, // BLITA_UseSrcAlpha, TRUE, TAG_DONE); - +#else + BltBitMapRastPort(throbber, throbber_width * frame, 0, g->shared->win->RPort, + bbox->Left, bbox->Top, throbber_width, throbber_height, 0xC0); +#endif ami_gui_free_space_box(bbox); } diff --git a/amiga/tree.c b/amiga/tree.c index 75ba123ad..5d453b600 100644 --- a/amiga/tree.c +++ b/amiga/tree.c @@ -42,7 +42,9 @@ #include #include #include +#ifdef __amigaos4__ #include +#endif #include #include @@ -62,6 +64,7 @@ #include "amiga/gui.h" #include "amiga/tree.h" #include "amiga/file.h" +#include "amiga/misc.h" #include "amiga/utf8.h" #include "amiga/sslcert.h" #include "amiga/drag.h" /* drag icon stuff */ @@ -315,7 +318,7 @@ static void ami_tree_redraw_req(void *p) tree_draw(twin->tree, - tile_x, - tile_y, tile_x, tile_y, tile_w, tile_h, &ctx); - +#ifdef __amigaos4__ BltBitMapTags(BLITA_SrcType, BLITT_BITMAP, BLITA_Source, twin->globals.bm, BLITA_SrcX, 0, @@ -327,6 +330,11 @@ static void ami_tree_redraw_req(void *p) BLITA_Width, tile_w, BLITA_Height, tile_h, TAG_DONE); +#else + BltBitMapRastPort(twin->globals.bm, 0, 0, + twin->win->RPort, bbox->Left + tile_x - pos_x, bbox->Top + tile_y - pos_y, + tile_w, tile_h, 0xC0); +#endif } } @@ -534,7 +542,7 @@ static void ami_tree_scroller_hook(struct Hook *hook,Object *object,struct Intui break; } break; - +#ifdef __amigaos4__ case IDCMP_EXTENDEDMOUSE: if(msg->Code == IMSGCODE_INTUIWHEELDATA) { @@ -543,6 +551,7 @@ static void ami_tree_scroller_hook(struct Hook *hook,Object *object,struct Intui ami_tree_scroll(twin, (wheel->WheelX * 20), (wheel->WheelY * 20)); } break; +#endif } } @@ -550,9 +559,7 @@ static void ami_tree_menu(struct treeview_window *twin) { if(twin->menu) return; - if((twin->menu = AllocVecTags(sizeof(struct NewMenu) * AMI_TREE_MENU_ITEMS, - AVT_ClearWithValue, 0, TAG_DONE))) - { + if((twin->menu = ami_misc_allocvec_clear(sizeof(struct NewMenu) * AMI_TREE_MENU_ITEMS, 0))) { twin->menu[0].nm_Type = NM_TITLE; twin->menu_name[0] = ami_utf8_easy((char *)messages_get("Tree")); twin->menu[0].nm_Label = twin->menu_name[0]; @@ -902,9 +909,11 @@ void ami_tree_close(struct treeview_window *twin) static void ami_tree_update_quals(struct treeview_window *twin) { uint32 quals = 0; - +#ifdef __amigaos4__ GetAttr(WINDOW_Qualifier, twin->objects[OID_MAIN], (uint32 *)&quals); - +#else +#warning FIXME not reading qualifiers on OS3 +#endif twin->key_state = 0; if((quals & IEQUALIFIER_LSHIFT) || (quals & IEQUALIFIER_RSHIFT)) @@ -976,7 +985,9 @@ BOOL ami_tree_event(struct treeview_window *twin) if((twin->type != AMI_TREE_SSLCERT) && (twin->rmbtrapped == FALSE)) { +#ifdef __amigaos4__ SetWindowAttr(twin->win, WA_RMBTrap, (APTR)(BOOL)TRUE, sizeof(BOOL)); +#endif twin->rmbtrapped = TRUE; } } @@ -984,7 +995,9 @@ BOOL ami_tree_event(struct treeview_window *twin) { if(twin->rmbtrapped == TRUE) { +#ifdef __amigaos4__ SetWindowAttr(twin->win, WA_RMBTrap, (APTR)(BOOL)FALSE, sizeof(BOOL)); +#endif twin->rmbtrapped = FALSE; } } @@ -1455,7 +1468,7 @@ struct treeview_window *ami_tree_create(int flags, { struct treeview_window *twin; - twin = AllocVecTags(sizeof(struct treeview_window), AVT_ClearWithValue, 0, TAG_DONE); + twin = ami_misc_allocvec_clear(sizeof(struct treeview_window), 0); if(!twin) { -- cgit v1.2.3