mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-11-23 23:09:39 +03:00
Minimal ARexx port.
Port name: NETSURF Commands supported: OPEN OPEN URL/A Opens URL specified by URL argument in new browser window. svn path=/trunk/netsurf/; revision=5462
This commit is contained in:
parent
eca332c8d5
commit
a0b8680a6d
@ -88,7 +88,7 @@ S_DEBUG := $(addprefix debug/,$(S_DEBUG))
|
|||||||
# S_AMIGA are sources purely for the Amiga build
|
# S_AMIGA are sources purely for the Amiga build
|
||||||
S_AMIGA := compat.c gui.c tree.c history.c hotlist.c schedule.c \
|
S_AMIGA := compat.c gui.c tree.c history.c hotlist.c schedule.c \
|
||||||
thumbnail.c misc.c bitmap.c font.c filetype.c utf8.c login.c \
|
thumbnail.c misc.c bitmap.c font.c filetype.c utf8.c login.c \
|
||||||
plotters.c object.c menu.c save_pdf.c
|
plotters.c object.c menu.c save_pdf.c arexx.c
|
||||||
S_AMIGA := $(addprefix amiga/,$(S_AMIGA))
|
S_AMIGA := $(addprefix amiga/,$(S_AMIGA))
|
||||||
|
|
||||||
# S_FRAMEBUFFER are sources purely for the framebuffer build
|
# S_FRAMEBUFFER are sources purely for the framebuffer build
|
||||||
|
65
amiga/arexx.c
Executable file
65
amiga/arexx.c
Executable file
@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2008 Chris Young <chris@unsatisfactorysoftware.co.uk>
|
||||||
|
*
|
||||||
|
* This file is part of NetSurf, http://www.netsurf-browser.org/
|
||||||
|
*
|
||||||
|
* NetSurf is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; version 2 of the License.
|
||||||
|
*
|
||||||
|
* NetSurf is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "arexx.h"
|
||||||
|
#include <reaction/reaction_macros.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <proto/intuition.h>
|
||||||
|
#include "desktop/browser.h"
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
RX_OPEN=0,
|
||||||
|
};
|
||||||
|
|
||||||
|
STATIC VOID rx_open(struct ARexxCmd *, struct RexxMsg *);
|
||||||
|
|
||||||
|
STATIC struct ARexxCmd Commands[] =
|
||||||
|
{
|
||||||
|
{"OPEN",RX_OPEN,rx_open,"URL/A", 0, NULL, 0, 0, NULL },
|
||||||
|
{ NULL, 0, NULL, NULL, 0, NULL, 0, 0, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
void ami_arexx_init()
|
||||||
|
{
|
||||||
|
if(arexx_obj = ARexxObject,
|
||||||
|
AREXX_HostName,"NETSURF",
|
||||||
|
AREXX_Commands,Commands,
|
||||||
|
AREXX_NoSlot,TRUE,
|
||||||
|
AREXX_ReplyHook,NULL,
|
||||||
|
AREXX_DefExtension,"nsrx",
|
||||||
|
End)
|
||||||
|
{
|
||||||
|
GetAttr(AREXX_SigMask, arexx_obj, &rxsig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ami_arexx_handle()
|
||||||
|
{
|
||||||
|
RA_HandleRexx(arexx_obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ami_arexx_cleanup()
|
||||||
|
{
|
||||||
|
if(arexx_obj) DisposeObject(arexx_obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC VOID rx_open(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
|
||||||
|
{
|
||||||
|
browser_window_create((char *)cmd->ac_ArgList[0],NULL,NULL,true,false);
|
||||||
|
}
|
32
amiga/arexx.h
Executable file
32
amiga/arexx.h
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2008 Chris Young <chris@unsatisfactorysoftware.co.uk>
|
||||||
|
*
|
||||||
|
* This file is part of NetSurf, http://www.netsurf-browser.org/
|
||||||
|
*
|
||||||
|
* NetSurf is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; version 2 of the License.
|
||||||
|
*
|
||||||
|
* NetSurf is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef AMIGA_AREXX_H
|
||||||
|
#define AMIGA_AREXX_H
|
||||||
|
|
||||||
|
#include <proto/arexx.h>
|
||||||
|
#include <classes/arexx.h>
|
||||||
|
|
||||||
|
void ami_arexx_init(void);
|
||||||
|
void ami_arexx_handle(void);
|
||||||
|
void ami_arexx_execute(char *);
|
||||||
|
void ami_arexx_cleanup(void);
|
||||||
|
|
||||||
|
Object *arexx_obj;
|
||||||
|
ULONG rxsig;
|
||||||
|
#endif
|
10
amiga/gui.c
10
amiga/gui.c
@ -65,6 +65,7 @@
|
|||||||
#include "amiga/login.h"
|
#include "amiga/login.h"
|
||||||
#include "utils/url.h"
|
#include "utils/url.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include "amiga/arexx.h"
|
||||||
|
|
||||||
#ifdef WITH_HUBBUB
|
#ifdef WITH_HUBBUB
|
||||||
#include <hubbub/hubbub.h>
|
#include <hubbub/hubbub.h>
|
||||||
@ -186,6 +187,8 @@ void gui_init(int argc, char** argv)
|
|||||||
|
|
||||||
filereq = (struct FileRequester *)AllocAslRequest(ASL_FileRequest,NULL);
|
filereq = (struct FileRequester *)AllocAslRequest(ASL_FileRequest,NULL);
|
||||||
|
|
||||||
|
ami_arexx_init();
|
||||||
|
|
||||||
if(iffh = AllocIFF())
|
if(iffh = AllocIFF())
|
||||||
{
|
{
|
||||||
if(iffh->iff_Stream = OpenClipboard(0))
|
if(iffh->iff_Stream = OpenClipboard(0))
|
||||||
@ -841,7 +844,7 @@ void ami_get_msg(void)
|
|||||||
ULONG winsignal = 1L << sport->mp_SigBit;
|
ULONG winsignal = 1L << sport->mp_SigBit;
|
||||||
ULONG appsig = 1L << appport->mp_SigBit;
|
ULONG appsig = 1L << appport->mp_SigBit;
|
||||||
ULONG schedulesig = 1L << msgport->mp_SigBit;
|
ULONG schedulesig = 1L << msgport->mp_SigBit;
|
||||||
ULONG signalmask = winsignal | appsig | schedulesig;
|
ULONG signalmask = winsignal | appsig | schedulesig | rxsig;
|
||||||
ULONG signal;
|
ULONG signal;
|
||||||
struct Message *timermsg = NULL;
|
struct Message *timermsg = NULL;
|
||||||
|
|
||||||
@ -855,6 +858,10 @@ void ami_get_msg(void)
|
|||||||
{
|
{
|
||||||
ami_handle_appmsg();
|
ami_handle_appmsg();
|
||||||
}
|
}
|
||||||
|
else if(signal & rxsig)
|
||||||
|
{
|
||||||
|
ami_arexx_handle();
|
||||||
|
}
|
||||||
else if(signal & schedulesig)
|
else if(signal & schedulesig)
|
||||||
{
|
{
|
||||||
while(GetMsg(msgport))
|
while(GetMsg(msgport))
|
||||||
@ -928,6 +935,7 @@ void gui_quit(void)
|
|||||||
if(iffh->iff_Stream) CloseClipboard((struct ClipboardHandle *)iffh->iff_Stream);
|
if(iffh->iff_Stream) CloseClipboard((struct ClipboardHandle *)iffh->iff_Stream);
|
||||||
if(iffh) FreeIFF(iffh);
|
if(iffh) FreeIFF(iffh);
|
||||||
|
|
||||||
|
ami_arexx_cleanup();
|
||||||
FreeSysObject(ASOT_PORT,appport);
|
FreeSysObject(ASOT_PORT,appport);
|
||||||
FreeSysObject(ASOT_PORT,sport);
|
FreeSysObject(ASOT_PORT,sport);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user