summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2015-01-18 23:13:32 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2015-01-18 23:13:32 +0000
commit201bc569a4f40b1b2e53660cceb183570534b557 (patch)
tree7c0045a743c5a3ec58349a97e300c9e8a994a4e6
parent2eb41ed77b2deb3a1c54c7b6b94a7c31fb603714 (diff)
downloadnetsurf-201bc569a4f40b1b2e53660cceb183570534b557.tar.gz
netsurf-201bc569a4f40b1b2e53660cceb183570534b557.tar.bz2
More OS3 compilation fixes
-rw-r--r--amiga/os3support.c3
-rw-r--r--amiga/os3support.h11
-rw-r--r--amiga/plugin_hack.c6
-rw-r--r--amiga/print.c16
-rwxr-xr-xamiga/schedule.c8
-rwxr-xr-xamiga/search.c2
-rwxr-xr-xamiga/stringview/stringview.c4
-rw-r--r--amiga/stringview/urlhistory.c16
-rw-r--r--amiga/theme.c20
-rw-r--r--amiga/tree.c29
10 files changed, 84 insertions, 31 deletions
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 <http://www.gnu.org/licenses/>.
*/
+#include "amiga/os3support.h"
+
#include <proto/utility.h>
#include <proto/iffparse.h>
#include <proto/dos.h>
@@ -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 <http://www.gnu.org/licenses/>.
*/
+#include "amiga/os3support.h"
+
#include <string.h>
#include <proto/clicktab.h>
@@ -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 <gadgets/scroller.h>
#include <reaction/reaction_macros.h>
#include <intuition/icclass.h>
+#ifdef __amigaos4__
#include <graphics/blitattr.h>
+#endif
#include <assert.h>
#include <string.h>
@@ -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)
{