summaryrefslogtreecommitdiff
path: root/amiga/arexx.c
diff options
context:
space:
mode:
Diffstat (limited to 'amiga/arexx.c')
-rwxr-xr-xamiga/arexx.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/amiga/arexx.c b/amiga/arexx.c
new file mode 100755
index 000000000..3c3c77c35
--- /dev/null
+++ b/amiga/arexx.c
@@ -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);
+}