From 35923ec10f3af68c1ebebff9357fb21ad74cf242 Mon Sep 17 00:00:00 2001 From: verhaegs Date: Sat, 17 Mar 2007 14:38:40 +0000 Subject: [PATCH] Merged changes in main trunk to the branch; part II git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@25441 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- rom/workbench/openworkbenchobjecta.c | 44 +++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/rom/workbench/openworkbenchobjecta.c b/rom/workbench/openworkbenchobjecta.c index 744f48a052..adbefef8f2 100644 --- a/rom/workbench/openworkbenchobjecta.c +++ b/rom/workbench/openworkbenchobjecta.c @@ -198,26 +198,34 @@ BOOL __WB_BuildArguments(struct WBStartup *startup, BPTR lock, CONST_STRPTR na && strlen(icon->do_DefaultTool) > 0 ) { - BPTR lock = Lock(name, ACCESS_READ); - - - if (lock != NULL) + BPTR lock = (BPTR)NULL, lock2 = (BPTR)NULL, + parent = (BPTR)NULL, parent2 = (BPTR)NULL; + + lock = Lock(name, ACCESS_READ); + if (lock != (BPTR)NULL) + parent = ParentDir(lock); + if (parent != (BPTR)NULL) + lock2 = Lock(icon->do_DefaultTool, ACCESS_READ); + if (lock2 != (BPTR)NULL) + parent2 = ParentDir(lock2); + + if (parent2 != NULL) { - BPTR parent = ParentDir(lock); - - if (parent != NULL) + struct TagItem tags[] = { - success = OpenWorkbenchObject - ( - icon->do_DefaultTool, - WBOPENA_ArgLock, (IPTR) parent, - WBOPENA_ArgName, (IPTR) FilePart(name), - TAG_DONE - ); - - UnLock(parent); - } - + {WBOPENA_ArgLock, (IPTR) parent}, + {WBOPENA_ArgName, (IPTR) FilePart(name)}, + {TAG_DONE, (IPTR)NULL} + }; + + success = WB_LaunchProgram + ( + parent2, FilePart(icon->do_DefaultTool), tags + ); + + UnLock(parent2); + UnLock(lock2); + UnLock(parent); UnLock(lock); } } -- 2.11.4.GIT