Emacs.app version 23.0.60 (9.0)
(getenv "PATH")
=> bare minimum (/usr/bin:/bin:/usr/sbin:/sbin)
exec-path
=> bare minimum but with /Applications/Emacs.app/Contents/MacOS/bin
OSX seems to keep paths in /etc/paths and files in /etc/paths.d, programs launched from Terminal seem to pick this up but Emacs.app is not loaded from terminal so the path is kinda small. the problem was interacting with other programs via m-!, eshell, etc.
this seems to fix it, not sure if it's the right way tho.
(setenv "PATH"
(let ((osx-path-files
(append (mapcar (lambda (x) (concat "/etc/paths.d/" x))
(delete ".." (delete "." (directory-files "/etc/paths.d"))))
'("/etc/paths")))
(read-path-file
(lambda (file)
(when (file-readable-p file)
(delete ""
(split-string (with-temp-buffer (insert-file-contents file)
(buffer-substring (point-min) (point-max)))
"\n"))))))
(mapconcat 'identity
(reverse (delete-dups (reverse
(append (reduce 'append
(mapcar read-path-file osx-path-files))
(split-string (getenv "PATH") ":")))))
":")))
--
franco