1 /* mac-fix-env: A small utility to pick up the shell environment on MacOS X
2 and insert it into the file ~/.MacOSX/environment.plist
4 Copyright (C) 1989, 1993, 2005, 2008 Free Software Foundation, Inc.
6 This file is part of GNU Emacs.
8 GNU Emacs is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 GNU Emacs is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
23 Run from command line (in Terminal) once or whenever path changes:
25 /Applications/Emacs.app/Contents/MacOS/bin/mac-fix-env
27 (change initial part to where you installed Emacs).
30 #import
<Foundation
/Foundation.h
>
33 int main
(int argc
, char *argv
[])
35 NSAutoreleasePool
*pool
= [[NSAutoreleasePool alloc
] init
];
36 NSMutableDictionary
*envPlist
;
37 NSString
*file
= [[NSHomeDirectory
()
38 stringByAppendingPathComponent
:@".MacOSX"
]
39 stringByAppendingPathComponent
:@"environment.plist"
];
40 NSString
*path = [NSString stringWithCString
: getenv("
PATH"
)];
42 envPlist
= [[NSDictionary dictionaryWithContentsOfFile
: file
] mutableCopy
];
46 NSString
*dir = [file stringByDeletingLastPathComponent
];
47 envPlist
= [NSMutableDictionary dictionaryWithCapacity
: 5];
49 if ([[NSFileManager defaultManager
] fileExistsAtPath
: dir] == NO
)
51 if ([[NSFileManager defaultManager
] createDirectoryAtPath
:dir
54 NSLog
(@"
:\nCould not create directory at
'%@'; aborting."
,dir);
60 [envPlist setObject
: path forKey
: @"
PATH"
];
62 if ([envPlist writeToFile
: file atomically
: YES
] == NO
)
64 NSLog
(@"
:\nCould not write file at
'%@'; aborting."
, file
);
68 NSLog
(@"
:\nWrote file to
'%@'.
\nPlease inspect it to make sure
PATH is correct."
, file
);
72 // arch
-tag
: 609d5528
-5ac1
-42c5
-859b
-24c14341ee3b