From 5adb1fb1ddbc7adc1a84736c9a1a434d0bf1c0b0 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sun, 10 Nov 2013 12:49:46 +0000 Subject: Workaround for AM_EXECUTE not supporting PROGDIR: --- amiga/menu.c | 20 ++++++++++---------- amiga/options.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'amiga') diff --git a/amiga/menu.c b/amiga/menu.c index b1f4ff90c..8bca4ebef 100644 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -496,12 +496,8 @@ void ami_menu_arexx_scan(struct gui_window_2 *gwin) LONG cont; struct ExAllData *ead; char *menu_lab; - char lock_dir[1024]; - - strlcpy(lock_dir, "PROGDIR:", 1024); - AddPart(lock_dir, nsoption_charp(arexx_dir), 1024); - - if(lock = Lock(lock_dir, SHARED_LOCK)) + + if(lock = Lock(nsoption_charp(arexx_dir), SHARED_LOCK)) { if(buffer = AllocVecTagList(1024, NULL)) { @@ -1112,16 +1108,20 @@ static void ami_menu_item_arexx_entries(struct Hook *hook, APTR window, struct I char *script = hook->h_Data; char *temp; struct gui_window_2 *gwin; + BPTR lock = 0; GetAttr(WINDOW_UserData, (Object *)window, (ULONG *)&gwin); if(script) { if(temp = AllocVecTagList(1024, NULL)) { - strcpy(temp, nsoption_charp(arexx_dir)); - AddPart(temp, script, 1024); - ami_arexx_execute(temp); - FreeVec(temp); + if(lock = Lock(nsoption_charp(arexx_dir), SHARED_LOCK)) { + DevNameFromLock(lock, temp, 1024, DN_FULLPATH); + AddPart(temp, script, 1024); + ami_arexx_execute(temp); + FreeVec(temp); + UnLock(lock); + } } } } diff --git a/amiga/options.h b/amiga/options.h index b95ddf12d..f595cd240 100644 --- a/amiga/options.h +++ b/amiga/options.h @@ -44,7 +44,7 @@ NSOPTION_BOOL(tab_close_warn, true) NSOPTION_BOOL(tab_always_show, false) NSOPTION_BOOL(kiosk_mode, false) NSOPTION_STRING(search_engines_file, "PROGDIR:Resources/SearchEngines") -NSOPTION_STRING(arexx_dir, "Rexx") +NSOPTION_STRING(arexx_dir, "PROGDIR:Rexx") NSOPTION_STRING(arexx_startup, "Startup.nsrx") NSOPTION_STRING(arexx_shutdown, "Shutdown.nsrx") NSOPTION_STRING(download_dir, NULL) -- cgit v1.2.3