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 >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> >