summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2010-08-28 23:46:08 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2010-08-28 23:46:08 +0000
commitb3a3988ff0b9fc167da8a71442806825601d2354 (patch)
tree03f6a26e47f6201f17bc7f18fc74cd95ae3eefa6
parent890e7b2b466451528f7cfd64b88a16275ae5c2d0 (diff)
downloadnetsurf-b3a3988ff0b9fc167da8a71442806825601d2354.tar.gz
netsurf-b3a3988ff0b9fc167da8a71442806825601d2354.tar.bz2
Add startup and shutdown ARexx scripts (default to startup.nsrx and shutdown.nsrx)
Remove PROGDIR: from arexx_dir default as AM_EXECUTE can't find files in PROGDIR: svn path=/trunk/netsurf/; revision=10719
-rwxr-xr-xamiga/gui.c19
-rwxr-xr-xamiga/menu.c3
-rw-r--r--amiga/options.h6
3 files changed, 25 insertions, 3 deletions
diff --git a/amiga/gui.c b/amiga/gui.c
index f3e790f89..6d848ba16 100755
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -388,7 +388,13 @@ void ami_set_options(void)
option_theme = (char *)strdup("PROGDIR:Resources/Themes/Default");
if((!option_arexx_dir) || (option_arexx_dir[0] == '\0'))
- option_arexx_dir = (char *)strdup("PROGDIR:Rexx");
+ option_arexx_dir = (char *)strdup("Rexx");
+
+ if((!option_arexx_startup) || (option_arexx_startup[0] == '\0'))
+ option_arexx_startup = (char *)strdup("Startup.nsrx");
+
+ if((!option_arexx_shutdown) || (option_arexx_shutdown[0] == '\0'))
+ option_arexx_shutdown = (char *)strdup("Shutdown.nsrx");
if(!option_window_width) option_window_width = 800;
if(!option_window_height) option_window_height = 600;
@@ -703,17 +709,24 @@ int main(int argc, char** argv)
{
setbuf(stderr, NULL);
char messages[100];
+ char script[1024];
ami_messages_load(messages);
-
netsurf_init(&argc, &argv, "PROGDIR:Resources/Options", messages);
gui_init(argc, argv);
-
gui_init2(argc, argv);
+ strncpy(script, option_arexx_dir, 1024);
+ AddPart(script, option_arexx_startup, 1024);
+ ami_arexx_execute(script);
+
netsurf_main_loop();
+ strncpy(script, option_arexx_dir, 1024);
+ AddPart(script, option_arexx_shutdown, 1024);
+ ami_arexx_execute(script);
+
netsurf_exit();
return 0;
diff --git a/amiga/menu.c b/amiga/menu.c
index e04add09c..8e0f99252 100755
--- a/amiga/menu.c
+++ b/amiga/menu.c
@@ -323,6 +323,9 @@ void ami_menu_arexx_scan(struct NewMenu *menu)
for(ead = (struct ExAllData *)buffer; ead; ead = ead->ed_Next)
{
if(item >= AMI_MENU_AREXX_MAX) continue;
+ if(!strcasecmp(ead->ed_Name, option_arexx_startup)) continue;
+ if(!strcasecmp(ead->ed_Name, option_arexx_shutdown)) continue;
+
if(EAD_IS_FILE(ead))
{
menu[item].nm_Type = NM_ITEM;
diff --git a/amiga/options.h b/amiga/options.h
index b1b508fe5..38b9cf646 100644
--- a/amiga/options.h
+++ b/amiga/options.h
@@ -38,6 +38,8 @@ extern char *option_recent_file;
extern char *option_search_engines_file;
extern char *option_search_ico_file;
extern char *option_arexx_dir;
+extern char *option_arexx_startup;
+extern char *option_arexx_shutdown;
extern char *option_download_dir;
extern bool option_download_notify;
extern bool option_faster_scroll;
@@ -70,6 +72,8 @@ char *option_recent_file = 0; \
char *option_search_engines_file = 0; \
char *option_search_ico_file = 0; \
char *option_arexx_dir = 0; \
+char *option_arexx_startup = 0; \
+char *option_arexx_shutdown = 0; \
char *option_download_dir = 0; \
bool option_download_notify = false; \
bool option_faster_scroll = true; \
@@ -102,6 +106,8 @@ bool option_drag_save_icons = true; \
{ "search_engines_file", OPTION_STRING, &option_search_engines_file }, \
{ "search_ico_file", OPTION_STRING, &option_search_ico_file }, \
{ "arexx_dir", OPTION_STRING, &option_arexx_dir }, \
+{ "arexx_startup", OPTION_STRING, &option_arexx_startup }, \
+{ "arexx_shutdown", OPTION_STRING, &option_arexx_shutdown }, \
{ "download_dir", OPTION_STRING, &option_download_dir }, \
{ "download_notify", OPTION_BOOL, &option_download_notify}, \
{ "faster_scroll", OPTION_BOOL, &option_faster_scroll}, \