From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Hongxu Chen Newsgroups: gmane.emacs.help Subject: add-to-list with lexical variables Date: Sat, 08 Jun 2013 20:39:16 +0800 Message-ID: <87txl8u68b.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1370695177 28076 80.91.229.3 (8 Jun 2013 12:39:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 8 Jun 2013 12:39:37 +0000 (UTC) To: help-gnu-emacs Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Jun 08 14:39:37 2013 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UlIQi-0007G6-Rc for geh-help-gnu-emacs@m.gmane.org; Sat, 08 Jun 2013 14:39:36 +0200 Original-Received: from localhost ([::1]:47682 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlIQi-0006vA-Gu for geh-help-gnu-emacs@m.gmane.org; Sat, 08 Jun 2013 08:39:36 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48709) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlIQX-0006ux-CP for help-gnu-emacs@gnu.org; Sat, 08 Jun 2013 08:39:27 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UlIQU-00065s-Q5 for help-gnu-emacs@gnu.org; Sat, 08 Jun 2013 08:39:25 -0400 Original-Received: from mail-pa0-x22a.google.com ([2607:f8b0:400e:c03::22a]:42751) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlIQU-00065m-GG for help-gnu-emacs@gnu.org; Sat, 08 Jun 2013 08:39:22 -0400 Original-Received: by mail-pa0-f42.google.com with SMTP id rl6so3214299pac.29 for ; Sat, 08 Jun 2013 05:39:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:mime-version:content-type; bh=0Lu/v0DtUOZRBGWVvdtYWeakoi47GrSvK1xyXz3IHBs=; b=ghg8cSwIW8TdHwkvFISMDzQAEVXG6FW0MapCpdzswlO+iQDSG0qIWgw5qWqOXKSTQA 8QQUz/J3cm5fuckRLWg44TAppImZVJfyX8lPEDiQAP3Pt6MjG53lUXr4MrjLkK65mNeF OfUKWfs/MQYPT63f1bVB91xfKF4OBizImCwzBOupXdTfp3lliimjAZOnmDxvDUZVrOOD 2AdqqO5lgd1y9Re76ApEvBwizGhEblF0Wd4DYAVe6glbBbums4vL3DK4MCGnsA1DiasU k4oIFXr2WAIPdL/VRJFxSncmV7Ny5RPPvQTFBXNZb1GryD28iUwqOlXyGi2DQwmplS96 vPJw== X-Received: by 10.66.251.39 with SMTP id zh7mr6847819pac.62.1370695161485; Sat, 08 Jun 2013 05:39:21 -0700 (PDT) Original-Received: from hongxuchen-VM.STAP ([167.220.232.198]) by mx.google.com with ESMTPSA id xn5sm6869529pab.0.2013.06.08.05.39.19 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sat, 08 Jun 2013 05:39:20 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400e:c03::22a X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:91393 Archived-At: Hi list, I am writing a snippet to add element into environment variables, and it is written as below: #+BEGIN_SRC elisp (defun no-dup-add-env-ele (env env-ele-string) (let* ((env-separator (if (string-equal system-type "windows-nt") ";" ":")) (env-list (split-string (getenv env) env-separator))) (if (string-match-p env-separator env-ele-string) (dolist (env-ele (split-string env-ele-string env-separator)) (add-to-list 'env-list env-ele)) (add-to-list 'env-list env-ele-string)) (setenv env (mapconcat 'identity env-list ":")))) #+END_SRC 1. when I set `lexical-binding' to t and byte-compile the file, it would report this error: add-to-list cannot use lexical var `env-list' 2. And when I using `lexical-let*' instead, there would be an warning: Warning: assignment to free variable `env-list' 3. However after resetting `lexical-binding' to nil, byte-compiles well. So what are the differences? Thanks, Hongxu Chen