[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v |
Date: |
Fri, 18 Jul 2008 17:09:24 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Chong Yidong <cyd> 08/07/18 17:09:24
Index: ns-win.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/term/ns-win.el,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- ns-win.el 18 Jul 2008 16:54:12 -0000 1.8
+++ ns-win.el 18 Jul 2008 17:09:23 -0000 1.9
@@ -303,10 +303,40 @@
-;;;; Lisp niceties, most used only under ns-extended-platform-support-mode,
-;;;; defined below
-
-(autoload 'ns-grabenv "ns-grabenv" "Get environment from your shell." t nil)
+;; Functions to set environment variables by running a subshell.
+;;; Idea based on NS 4.2 distribution, this version of code based on
+;;; mac-read-environment-vars-from-shell () by David Reitter.
+;;; Mostly used only under ns-extended-platform-support-mode.
+
+(defun ns-make-command-string (cmdlist)
+ (let ((str "")
+ (cmds cmdlist))
+ (while cmds
+ (if (not (eq str "")) (setq str (format "%s ; " str)))
+ (setq str (format "%s%s" str (car cmds)))
+ (setq cmds (cdr cmds)))
+ str))
+
+;;;###autoload
+(defun ns-grabenv (&optional shell-path startup)
+ "Set the Emacs environment using the output of a shell command.
+This runs a shell subprocess, and interpret its output as a
+series of environment variables to insert into the emacs
+environment.
+SHELL-PATH gives the path to the shell; if nil, this defaults to
+the current setting of `shell-file-name'.
+STARTUP is a list of commands for the shell to execute; if nil,
+this defaults to \"printenv\"."
+ (interactive)
+ (with-temp-buffer
+ (let ((shell-file-name (if shell-path shell-path shell-file-name))
+ (cmd (ns-make-command-string (if startup startup '("printenv")))))
+ (shell-command cmd t)
+ (while (search-forward-regexp "^\\([A-Za-z_0-9]+\\)=\\(.*\\)$" nil t)
+ (setenv (match-string 1)
+ (if (equal (match-string 1) "PATH")
+ (concat (getenv "PATH") ":" (match-string 2))
+ (match-string 2)))))))
;; Set up a number of aliases and other layers to pretend we're using
;; the Choi/Mitsuharu Carbon port.
@@ -952,8 +982,8 @@
(defvar ns-input-line) ; nsterm.m
(defun ns-open-file-select-line ()
- "Brings up a buffer containing file ns-input-file,\n\
-and highlights lines indicated by ns-input-line."
+ "Open a buffer containing the file `ns-input-file'.
+Lines are highlighted according to `ns-input-line'."
(interactive)
(ns-find-file)
(cond
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Miles Bader, 2008/07/15
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Glenn Morris, 2008/07/15
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Adrian Robert, 2008/07/15
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Stefan Monnier, 2008/07/16
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Glenn Morris, 2008/07/16
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Glenn Morris, 2008/07/17
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Chong Yidong, 2008/07/18
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v,
Chong Yidong <=
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Chong Yidong, 2008/07/18
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Glenn Morris, 2008/07/18
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Adrian Robert, 2008/07/19
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Chong Yidong, 2008/07/21
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Dan Nicolaescu, 2008/07/21
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Adrian Robert, 2008/07/22
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Dan Nicolaescu, 2008/07/23
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Adrian Robert, 2008/07/26
- [Emacs-diffs] Changes to emacs/lisp/term/ns-win.el,v, Adrian Robert, 2008/07/27