Commit ef651d13 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(let-environment): Remove. Unused.

(read-envvar-name): Simplify.
(setenv): Remove unused arg `frame'.
parent 5b5afd50
2007-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
* font-lock.el (lisp-font-lock-keywords-2): Remove let-environment.
* env.el (let-environment): Remove. Unused.
(read-envvar-name): Simplify.
(setenv): Remove unused arg `frame'.
* help-fns.el (describe-variable): Add missing " " for multiline
obsolescence info and missing EOL after global value.
......@@ -37,54 +43,46 @@
2007-10-10 Eric S. Raymond <esr@snark.thyrsus.com>
* vc.el (vc-next-action): Completely rewritten; this principal
* vc.el (vc-next-action): Rewrite completely; this principal
entry point now operates on a current fileset selected either
explicitly via VC-Dired or implicitly by visiting a file buffer,
rather than always operating on the file of the current buffer as
in older versions. The rest of the mode has been rewritten to
match.
(with-vc-properties): Rewritten to operate on a file list.
in older versions. Rewrite the rest of the mode to match.
(with-vc-properties): Rewrite to operate on a file list.
(with-vc-file): vc-checkin takes a file list argument now.
(vc-post-command-functions): This hook now receives a file list.
(vc-do-command): Now takes a either a file or a file list as
argument.
(vc-do-command): Take a either a file or a file list as argument.
(vc-deduce-fileset): New function for deducing a file list to
operate on.
(vc-next-action-on-file): This function is gone, it is merged into
vc-next-action.
(vc-next-action-dired): This function is gone, it is merged into
vc-next-action.
(vc-register): Adapted to the fact that vc-start-entry now takes a
(vc-next-action-on-file, vc-next-action-dired): Remove.
Merge into vc-next-action.
(vc-register): Adapt to the fact that vc-start-entry now takes a
file list.
(vc-register-with): New function.
(vc-start-entry): Now takes a file list argument rather than a
(vc-start-entry): Take a file list argument rather than a
file argument.
(vc-checkout): Modified to cope with vc-start-entry taking a file
list.
(vc-steal-lock): Modified to cope with with-vc-properties taking a
(vc-checkout): Cope with vc-start-entry taking a file list.
(vc-steal-lock): Cope with with-vc-properties taking a
file list.
(vc-checkin): Now takes a file list argument rather than a file
argument.
(vc-checkin): Take a file list argument rather than a file argument.
(vc-finish-logentry): Use the filelist passed by vc-start-entry.
(vc-diff-internal): Completely rewritten for filesets.
(vc-diff-internal): Rewrite for filesets.
(vc-diff-sentinel): New function, tests whether changes were
written into a diff buffer.
(vc-diff): Completely rewritten for filesets.
(vc-version-diff): Completely rewritten for filesets.
(vc-print-log): Now takes a fileset argument.
(vc-revert): Now reverts the entire selected fileset, not just the
(vc-diff): Rewrite for filesets.
(vc-version-diff): Rewrite for filesets.
(vc-print-log): Take a fileset argument.
(vc-revert): Revert the entire selected fileset, not just the
current buffer.
(vc-rollback): Now rolls back the entire selected fileset, if
(vc-rollback): Roll back the entire selected fileset, if
possible. No longer accepts a prefix argument.
(vc-update): Now merges new changes for the entire selected
(vc-update): Merge new changes for the entire selected
fileset, not just the current buffer.
(vc-revert-file): Modified to cope with with-vc-properties taking
a file list.
(vc-revert-file): Cope with with-vc-properties taking a file list.
(vc-default-dired-state-info): Add + status suffix if the file is
modified.
(vc-annotate-warp-version): Use the new diff machinery.
(vc-log-edit): Now takes a file list argument rather than a file
argument.
(vc-log-edit): Take a file list argument rather than a file argument.
2007-10-10 Michael Albinus <michael.albinus@gmx.de>
......@@ -108,7 +106,7 @@
(handle-select-window): When autoselecting window set input
focus. Restructure.
* frame.el (focus-follows-mouse): Moved to frame.c.
* frame.el (focus-follows-mouse): Move to frame.c.
* cus-start.el (all): Add focus-follows-mouse.
2007-10-08 Juanma Barranquero <lekktu@gmail.com>
......@@ -307,10 +305,10 @@
2007-10-08 Stefan Monnier <monnier@iro.umontreal.ca>
* pcvs.el (cvs-mode-add-change-log-entry-other-window): Use
add-log-buffer-file-name-function rather than bind buffer-file-name,
so we dont end up calling change-log-mode in *cvs* when `fi' is the
ChangeLog file itself.
* pcvs.el (cvs-mode-add-change-log-entry-other-window):
Use add-log-buffer-file-name-function rather than binding
buffer-file-name, so we don't end up calling change-log-mode in *cvs*
when `fi' is the ChangeLog file itself.
* outline.el (outline-flag-region): Use front-advance.
......
......@@ -47,15 +47,14 @@ Optional second arg MUSTMATCH, if non-nil, means require existing envvar name.
If it is also not t, RET does not exit if it does non-null completion."
(completing-read prompt
(mapcar (lambda (enventry)
(list (if enable-multibyte-characters
(decode-coding-string
(substring enventry 0
(string-match "=" enventry))
locale-coding-system t)
(substring enventry 0
(string-match "=" enventry)))))
(let ((str (substring enventry 0
(string-match "=" enventry))))
(if (multibyte-string-p str)
(decode-coding-string
str locale-coding-system t)
str)))
(append process-environment
nil ;;(frame-parameter (frame-with-environment) 'environment)
;;(frame-environment)
))
nil mustmatch nil 'read-envvar-name-history))
......@@ -128,7 +127,7 @@ Changes ENV by side-effect, and returns its new value."
;; Fixme: Should the environment be recoded if LC_CTYPE &c is set?
(defun setenv (variable &optional value substitute-env-vars frame)
(defun setenv (variable &optional value substitute-env-vars)
"Set the value of the environment variable named VARIABLE to VALUE.
VARIABLE should be a string. VALUE is optional; if not provided or
nil, the environment variable VARIABLE will be removed.
......@@ -143,19 +142,11 @@ SUBSTITUTE-ENV-VARS, if non-nil, means to substitute environment
variables in VALUE with `substitute-env-vars', which see.
This is normally used only for interactive calls.
If optional parameter FRAME is non-nil, this function modifies
only the frame-local value of VARIABLE on FRAME, ignoring
`process-environment'. Note that frames on the same terminal
device usually share their environment, so calling `setenv' on
one of them affects the others as well.
If FRAME is nil, `setenv' changes the global value of VARIABLE by
modifying `process-environment'. Note that the global value
overrides any frame-local values.
The return value is the new value of VARIABLE, or nil if
it was removed from the environment.
This function works by modifying `process-environment'.
As a special case, setting variable `TZ' calls `set-time-zone-rule' as
a side-effect."
(interactive
......@@ -188,12 +179,8 @@ a side-effect."
(error "Environment variable name `%s' contains `='" variable))
(if (string-equal "TZ" variable)
(set-time-zone-rule value))
(if (null frame)
(setq process-environment (setenv-internal process-environment
variable value t))
(setq frame (frame-with-environment frame))
(setq process-environment (setenv-internal process-environment
variable value nil)))
(setq process-environment (setenv-internal process-environment
variable value t))
value)
(defun getenv (variable &optional frame)
......@@ -238,8 +225,7 @@ Non-ASCII characters are encoded according to the initial value of
`locale-coding-system', i.e. the elements must normally be decoded for use.
See `setenv' and `getenv'."
(let* ((env (append process-environment
;; (frame-parameter (frame-with-environment frame)
;; 'environment)
;; (frame-environment frame)
nil))
(scan env)
prev seen)
......@@ -269,45 +255,6 @@ See `setenv' and `getenv'."
scan (cdr scan))))
env))
(defmacro let-environment (varlist &rest body)
"Evaluate BODY with environment variables set according to VARLIST.
The environment variables are then restored to their previous
values.
The value of the last form in BODY is returned.
Each element of VARLIST is either a string (which variable is
then removed from the environment), or a list (NAME
VALUEFORM) (which sets NAME to the value of VALUEFORM, a string).
All the VALUEFORMs are evaluated before any variables are set."
(declare (indent 2))
(let ((old-env (make-symbol "old-env"))
(name (make-symbol "name"))
(value (make-symbol "value"))
(entry (make-symbol "entry"))
(frame (make-symbol "frame")))
`(let ((,frame (selected-frame))
,old-env)
;; Evaluate VALUEFORMs and replace them in VARLIST with their values.
(dolist (,entry ,varlist)
(unless (stringp ,entry)
(if (cdr (cdr ,entry))
(error "`let-environment' bindings can have only one value-form"))
(setcdr ,entry (eval (cadr ,entry)))))
;; Set the variables.
(dolist (,entry ,varlist)
(let ((,name (if (stringp ,entry) ,entry (car ,entry)))
(,value (if (consp ,entry) (cdr ,entry))))
(setq ,old-env (cons (cons ,name (getenv ,name)) ,old-env))
(setenv ,name ,value)))
(unwind-protect
(progn ,@body)
;; Restore old values.
(with-selected-frame (if (frame-live-p ,frame)
,frame
(selected-frame))
(dolist (,entry ,old-env)
(setenv (car ,entry) (cdr ,entry))))))))
(provide 'env)
;; arch-tag: b7d6a8f7-bc81-46db-8e39-8d721d4ed0b8
......
......@@ -2227,7 +2227,7 @@ other modes in which C preprocessor directives are used. e.g. `asm-mode' and
`(;; Control structures. Emacs Lisp forms.
(,(concat
"(" (regexp-opt
'("cond" "if" "while" "while-no-input" "let" "let*" "let-environment"
'("cond" "if" "while" "while-no-input" "let" "let*"
"prog" "progn" "progv" "prog1" "prog2" "prog*"
"inline" "lambda" "save-restriction" "save-excursion"
"save-window-excursion" "save-selected-window"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment