home *** CD-ROM | disk | FTP | other *** search
/ Nebula / nebula.bin / SourceCode / Classes / WhereAmI / WhereAmI.h next >
Text File  |  1992-07-09  |  2KB  |  47 lines

  1. /* WhereAmI
  2.  *
  3.  * A category of Application that provides methods for finding the
  4.  * application executable and executable directory.
  5.  *
  6.  * Copyright 1991, 1992 Scott Hess.  This source code may be
  7.  * redistributed and modified without restriction.  Well, one
  8.  * restriction - do not claim that you wrote it.
  9.  *
  10.  * Scott Hess
  11.  * 12901 Upton Avenue South, #326
  12.  * Burnsville, MN  55337
  13.  * (612) 895-1208
  14.  * scott@gac.edu
  15.  * shess@ssesco.com
  16.  */
  17. #import <appkit/Application.h>
  18.  
  19. @interface Application (WhereAmI)
  20. /* I store this category in an ar(1) library of code shared between
  21.  * a number of applications.  Unfortunately, categories generate no
  22.  * symbols that allow them to be pulled from the library on link.  I
  23.  * put "whereAmIReference=0;" somewhere else in the app just to
  24.  * reference the object module and make certain it's in the app.  Most
  25.  * people can simply ignore this ...
  26.  */
  27. extern int whereAmIReference;
  28.  
  29. /* Return the path to the executable, if possible.  Searches the
  30.  * PATH environment variable, if needed.  Also, traces symbolic links
  31.  * if required.
  32.  */
  33. -(NXAtom)whoAmI;
  34. /* Returns the directory in which the executable resides.  Uses
  35.  * -whoAmI and then strips the last path segment.
  36.  */
  37. -(NXAtom)whereAmI;
  38. /* Finds the path to the file specified by file relative to the
  39.  * application's executable directory.  Places the path in result and
  40.  * returns result if successful.  Returns NULL with result=="" if it
  41.  * could not generate a path.  Returns NULL with result==path if it
  42.  * could generate a path, but could not find the file.
  43.  */
  44. -(const char *)whereIs:(const char *)file path:(char *)result;
  45. @end
  46.  
  47.