[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNUstep "open" tool
From: |
Nicola Pero |
Subject: |
Re: GNUstep "open" tool |
Date: |
Thu, 22 Nov 2001 16:14:49 +0000 (GMT) |
I mildly agree with not adding the functionality ... the idea is that
gopen is used to open a local file in the local directory, calling the
appropriate viewer. An .app file/directory is just a special builtin case
... it's an application folder, which is opened by running it.
To search all system/local/user/home directories for an application and
run it, you use `openapp OpenUp.app' instead ... this will search for the
application wherever it can be found. `gopen file' just opens a local
file, I would consider it confusing if it automatically searched and
opened non-local files somewhere else on the disk.
> Jeff
>
> Actually, I just checked on my NeXT box running OS4.2, the OPENSTEP "open"
> doesn't do this. When I say:
>
> open OpenUp.app (which is in LocalApps on my machine)
>
> from a terminal and I am not in a directory which contains the application, it
> does not automatically launch the application. It says "Can't stat file
> /home/heron/OpenUp.app." I have tried with several other applications as
> well.
> On the other hand, when I type "open somthing.zip" it does get opened or
> when
> I go to LocalApps and type "open OpenUp.app" it starts as well.
>
> I'm wondering if this could be added as a "feature" for GNUstep, but I'm
> tempted to maintain compatibility.
>
> Later, GJC
>
> --- Jeff Teunissen <deek@d2dc.net> wrote:
> > Gregory Casamento wrote:
> > >
> > > I committed this to the repository. The tool is called "gopen" and is
> > > in the gui/Tools directory. Just a few notes on it:
> > >
> > > 1) You must have installed the applications into the appropriate
> > > "well-known" locations for this to work when opening a file. When
> > > make_services scans all of the applications it builds a plist called
> > > .GNUstepAppList in the ~/GNUstep/Services directory.
> > >
> > > 2) The application must declare which files it handles in it's
> > > Info-gnustep.plist (under Resources in the app wrapper) file since this
> > > is what make_services uses to build the file mentioned above.
> > >
> > > I have tested this with Gorm.app, Ink.app and ImageViewer.app and it
> > > seems to work very well.
> > >
> > > Please let me know if there are any issues.
> >
> > I just patched gopen locally, to make it search the well-known paths for
> > apps,
> > like *step "open" does. It's attached to this message, if you'd like to
> > include it or something similar into the standard gopen.
> >
> > [snip]
> >
> > --
> > | Jeff Teunissen -=- Pres., Dusk To Dawn Computing -=- deek @ d2dc.net
> > | GPG: 1024D/9840105A 7102 808A 7733 C2F3 097B 161B 9222 DAB8 9840 105A
> > | Core developer, The QuakeForge Project http://www.quakeforge.net/
> > | Specializing in Debian GNU/Linux http://www.d2dc.net/~deek/>
> Index: gopen.m
> > ===================================================================
> > RCS file: /cvsroot/gnustep/gnustep/core/gui/Tools/gopen.m,v
> > retrieving revision 1.1
> > diff -u -r1.1 gopen.m
> > --- gopen.m 2001/11/18 19:01:07 1.1
> > +++ gopen.m 2001/11/22 08:12:36
> > @@ -27,6 +27,8 @@
> > #include <Foundation/NSTask.h>
> > #include <Foundation/NSAutoreleasePool.h>
> > #include <Foundation/NSException.h>
> > +#include <Foundation/NSPathUtilities.h>
> > +#include <Foundation/NSFileManager.h>
> > #include <AppKit/NSApplication.h>
> > #include <AppKit/NSWorkspace.h>
> >
> > @@ -72,14 +74,31 @@
> > {
> > if( [ext isEqualToString: @"app"] )
> > {
> > + NSFileManager *fm = [NSFileManager defaultManager];
> > NSString *appName =
> > [[file lastPathComponent] stringByDeletingPathExtension];
> > NSString *executable =
> > [file stringByAppendingPathComponent: appName];
> > - NSTask *task = nil;
> > -
> > - if ([NSTask launchedTaskWithLaunchPath: executable arguments:
> > nil] == nil)
> > - printf("Unable to launch application at path %s.\n",[file
> > cString]);
> > +
> > + if ( [fm fileExistsAtPath: executable] )
> > + {
> > + if ( ![NSTask launchedTaskWithLaunchPath: executable
> > arguments: nil] )
> > + printf("Unable to launch application at path %s.\n",[file
> > cString]);
> > + }
> > + else
> > + {
> > + NSString *fullPath;
> > + NSEnumerator *pathEnumerator =
> > +
> > [NSSearchPathForDirectoriesInDomains(NSApplicationDirectory,
> > NSAllDomainsMask, YES) objectEnumerator];
> > +
> > + while ((fullPath = [pathEnumerator nextObject]))
> > + {
> > + if ( ![fm fileExistsAtPath: [fullPath
> > stringByAppendingPathComponent:
> > file]] )
> > + continue;
> > + [NSTask launchedTaskWithLaunchPath: [fullPath
> > stringByAppendingPathComponent: executable] arguments: nil];
> > + break;
> > + }
> > + }
> > }
> > else
> > {
> >
>
>
> =====
> Gregory John Casamento
> ------------------------------------------------------
> Please sign the petition against software patents at:
> http://www.petitiononline.com/pasp01/petition.html
> ------------------------------------------------------
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
> http://geocities.yahoo.com/ps/info1
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@gnu.org
> http://mail.gnu.org/mailman/listinfo/discuss-gnustep
>
- GNUstep "open" tool, Gregory Casamento, 2001/11/18
- Re: GNUstep "open" tool, Martin Brecher, 2001/11/18
- Re: GNUstep "open" tool, Gregory Casamento, 2001/11/18
- Re: GNUstep "open" tool, Jeff Teunissen, 2001/11/22
- Re: GNUstep "open" tool, Gregory Casamento, 2001/11/22
- Re: GNUstep "open" tool,
Nicola Pero <=
- Re: GNUstep "open" tool, Stefan Böhringer, 2001/11/23
- Re: GNUstep "open" tool, Nicola Pero, 2001/11/23
- Re: GNUstep "open" tool, Jeff Teunissen, 2001/11/23
- Re: GNUstep "open" tool, Nicola Pero, 2001/11/23
- Re: GNUstep "open" tool, Dan Pascu, 2001/11/23
- Re: GNUstep "open" tool, Gregory Casamento, 2001/11/24
- Re: GNUstep "open" tool, Dan Pascu, 2001/11/24
- Re: GNUstep "open" tool, Gregory Casamento, 2001/11/24
- Re: GNUstep "open" tool, Jeff Teunissen, 2001/11/22
- Re: GNUstep "open" tool, Tom Hageman, 2001/11/22