changeset 4610:38e8af61f38d

Check if env vars are encodable by native coding system, #'setenv 2009-02-11 Aidan Kehoe <kehoea@parhasard.net> * process.el (setenv): Check whether the environment variable and value can be encoded by the native coding system, error if not, as does GNU Emacs (but our implementation is different).
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 11 Feb 2009 12:14:28 +0000
parents 33b8c874b2c8
children 9c97a5a8c241
files lisp/ChangeLog lisp/process.el
diffstat 2 files changed, 11 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Feb 11 12:11:26 2009 +0000
+++ b/lisp/ChangeLog	Wed Feb 11 12:14:28 2009 +0000
@@ -1,3 +1,10 @@
+2009-02-11  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* process.el (setenv):
+	Check whether the environment variable and value can be encoded by
+	the native coding system, error if not, as does GNU Emacs (but our
+	implementation is different). 
+
 2009-02-11  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* coding.el (query-coding-string): 
--- a/lisp/process.el	Wed Feb 11 12:11:26 2009 +0000
+++ b/lisp/process.el	Wed Feb 11 12:14:28 2009 +0000
@@ -599,17 +599,10 @@
     (if substitute-env-vars
 	(setq value (substitute-env-vars value))))
 
-  ;; GNU fuck around with coding systems here. We do it at a much lower
-  ;; level; an equivalent of the following code of Handa's would be
-  ;; worthwhile here, though:
-
-; (let ((codings (find-coding-systems-string (concat variable value))))
-;   (unless (or (eq 'undecided (car codings))
-;               (memq (coding-system-base locale-coding-system) codings))
-;     (error "Can't encode `%s=%s' with `locale-coding-system'"
-;            variable (or value "")))))
-
-  ;; But then right now our find-coding-systems analogue is in packages.
+  ;; XEmacs change: check whether the environment understands this variable,
+  ;; using our function for exactly that, don't use
+  ;; #'find-coding-systems-string or trust `undecided' to encode it.
+  (query-coding-string (concat variable "=" value) 'native nil t)
 
   (if (string-match "=" variable)
       (error "Environment variable name `%s' contains `='" variable)