Are you sure of that? I'm 99% sure that PATH is always set on OSX. Regards, Elias
On 3 July 2014 00:31, Blake McBride <blake1...@gmail.com> wrote: > A note from > http://stackoverflow.com/questions/2552416/how-can-i-find-the-users-home-dir-in-a-cross-platform-manner-using-c > > Important remark: *many people are assuming that HOME environment > variable is always available on Unix but this is not true*, one good > example would be OS X. > > On OS X when you run an application from GUI (not console) this will not > have this variable set so you need to use the getpwuid(). > > > On Wed, Jul 2, 2014 at 11:27 AM, Elias Mårtenson <loke...@gmail.com> > wrote: > >> Arguably, I can't think of a single situation where PATH isn't set while >> getpwuid would work. I could be wrong though. >> >> Regards, >> Elias >> >> >> On 3 July 2014 00:13, Blake McBride <blake1...@gmail.com> wrote: >> >>> What was recommended is to use PATH variable (as you suggest) and then >>> fall back to the code I gave. >>> >>> >>> On Wed, Jul 2, 2014 at 11:00 AM, Elias Mårtenson <loke...@gmail.com> >>> wrote: >>> >>>> Neat, although I believe directly looking at the PATH variable is more >>>> portable. It works on all Unices as well as Windows. >>>> >>>> Regards, >>>> Elias >>>> >>>> >>>> On 2 July 2014 23:54, Blake McBride <blake1...@gmail.com> wrote: >>>> >>>>> I found this for Unix/Linux systems: >>>>> >>>>> >>>>> #include <unistd.h>#include <sys/types.h>#include <pwd.h> >>>>> struct passwd *pw = getpwuid(getuid()); >>>>> const char *homedir = pw->pw_dir; >>>>> >>>>> >>>>> >>>>> >>>>> On Wed, Jul 2, 2014 at 10:44 AM, Elias Mårtenson <loke...@gmail.com> >>>>> wrote: >>>>> >>>>>> I have to agree with Blake here. Ideally there should be a call to >>>>>> getenv("HOME") and if that returns non-NULL, then use the >>>>>> .apl_history in $HOME/.apl/apl_history or something like that. >>>>>> >>>>>> If it returns NULL, well, then fall back to current directory I >>>>>> suppose. >>>>>> >>>>>> I could make the Emacs mode use the same file, so that th ehistory is >>>>>> shared between emacs and non-emacs sessions. >>>>>> >>>>>> Regards, >>>>>> Elias >>>>>> >>>>>> >>>>>> On 2 July 2014 23:41, Blake McBride <blake1...@gmail.com> wrote: >>>>>> >>>>>>> Dear Juergen, >>>>>>> >>>>>>> If you have trouble reliably finding the home directory, how do you >>>>>>> find the preferences file? >>>>>>> >>>>>>> I would say to find the .apl.history file in the same way and place >>>>>>> you find the .gnu-apl directory. That would be consistent. >>>>>>> >>>>>>> The problem I am having is that since I use GNU APL from the command >>>>>>> line, every time I start GNU APL up, I first have to check the >>>>>>> directory I >>>>>>> am in, otherwise I get a bunch of random .apl.history files all over the >>>>>>> place. >>>>>>> >>>>>>> I understand that I can fix the problem in my preferences file, but >>>>>>> now I have to remember to potentially edit that file for each user or >>>>>>> machine I am on to account for the different home directory. I don't >>>>>>> have >>>>>>> to do that with my .gnu-emacs file. >>>>>>> >>>>>>> Either way is fine. Just sharing my opinion. >>>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> Blake >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Jul 2, 2014 at 9:52 AM, Juergen Sauermann < >>>>>>> juergen.sauerm...@t-online.de> wrote: >>>>>>> >>>>>>>> Hi Blake, >>>>>>>> >>>>>>>> yes. The problem with that is that it requires the presence of a >>>>>>>> home directory. >>>>>>>> >>>>>>>> There are use cases like scripting where the interpreter cannot >>>>>>>> figure where the >>>>>>>> home directory is located and my strategy is to depend on as few >>>>>>>> environment >>>>>>>> variables (like $HOME or $PWD) as possible. >>>>>>>> >>>>>>>> Note that ~ is a shell convention and not a file system property so >>>>>>>> that ~/.apl.history >>>>>>>> or $HOME/.apl.history may fail under certain circumstances. >>>>>>>> >>>>>>>> /// Jürgen >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 07/02/2014 04:25 PM, Blake McBride wrote: >>>>>>>> >>>>>>>> Dear Juergen, >>>>>>>> >>>>>>>> Thanks. I can do that, but every other Linux program I have ever >>>>>>>> used, although it may allow me to specify a config file location as >>>>>>>> you do, >>>>>>>> the default is always in the home directory. >>>>>>>> >>>>>>>> Thanks. >>>>>>>> >>>>>>>> Blake >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Jul 2, 2014 at 6:24 AM, Juergen Sauermann < >>>>>>>> juergen.sauerm...@t-online.de> wrote: >>>>>>>> >>>>>>>>> Hi Blake, >>>>>>>>> >>>>>>>>> you can set the path in the preferences files: >>>>>>>>> >>>>>>>>> READLINE_HISTORY_PATH = /home/... >>>>>>>>> >>>>>>>>> /// Jürgen >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 07/01/2014 11:14 PM, Blake McBride wrote: >>>>>>>>> >>>>>>>>>> GNU APL creates a .apl.history in whatever directory APL is >>>>>>>>>> started up in. This is unlike all other system I've seen, and a >>>>>>>>>> problem >>>>>>>>>> when you don't start APL in the same directory each time. I think >>>>>>>>>> rather >>>>>>>>>> than .apl.history, the system should use ~/.apl.history >>>>>>>>>> In other words keep in the home directory. >>>>>>>>>> >>>>>>>>>> Thanks. >>>>>>>>>> >>>>>>>>>> Blake >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >