I have a current Mac OS/X system with a default configuration.  $HOME is
set.


On Wed, Jul 2, 2014 at 11:34 AM, Elias Mårtenson <loke...@gmail.com> wrote:

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

Reply via email to