From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 85603 invoked by alias); 30 May 2018 22:05:52 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 85592 invoked by uid 89); 30 May 2018 22:05:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-6.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=Shell, Habiel, habiel X-HELO: mail-ot0-f174.google.com Received: from mail-ot0-f174.google.com (HELO mail-ot0-f174.google.com) (74.125.82.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 30 May 2018 22:05:49 +0000 Received: by mail-ot0-f174.google.com with SMTP id h6-v6so3934139otj.0 for ; Wed, 30 May 2018 15:05:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=EtAoCYNzX3wckBQRo4mVGpKgdIPGzWUktg9DVMbM380=; b=fqSXBZJXZV+7ZHePPCE70FBiu4E6NApgb5WQFm9vkzzaIq8uzpuygSpYhtElkAMz8I JrVkb2Xf1cez2cU6pCqfiEp261NlG2TrF1S9KE0+Hh4FjJbEwXoAIuSvMnlC3Tgdctb3 G+T3+DZeSWmdfTa6wSc+J7WmHmenflnwPjQ68dzKpr6Mn19Pvcl0/rvNh/51+KaQhnBT 7W7R90MY47V9orFvBr/VMtihhNxnqg9NjWjEyXgunAamsGbWy8cwJfGvvnu5dAlIvA6e /PcZmWqFOb6m9hqjv+Kk5p2uA4iZeygwbyi9eaCPNwV7yir5IrXTfaOVGwHNuro5wk2b XLFw== X-Gm-Message-State: ALKqPweuHLGqAwa54ccO3Fbn9IKP8gj24hxBOpnUkvg5az8Qyclm1o/j C4g7g4hdeG/lo+cjrG/HjOaF2oGr6xcwX999U4w67A== X-Google-Smtp-Source: ADUXVKLZNL7idiiFctfCK+DaK8TcAV+bWT52QgwlMoVPDLnOPoJ7HXRqHNOFGsGpep1Ah8v2pyR7y7qvbYrtqAoTNxQ= X-Received: by 2002:a9d:5b32:: with SMTP id x47-v6mr3193099oth.26.1527717948006; Wed, 30 May 2018 15:05:48 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:40d2:0:0:0:0:0 with HTTP; Wed, 30 May 2018 15:05:47 -0700 (PDT) In-Reply-To: References: From: Keith Christian Date: Thu, 31 May 2018 03:56:00 -0000 Message-ID: Subject: Re: Help with C clearenv and setenv To: cygwin@cygwin.com Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00328.txt.bz2 Sam, Here is a short demonstration of how to detect unset (possibly null, too?) variables in BASH. Not sure if this is exactly what you are looking for but presented for info. set -x;A_VAR="${RANDOM}";echo "1. ${A_VAR}";echo "2. ${A_VAR:?IS_NOT_SET}";unset A_VAR;set +x + set -x + A_VAR=28641 + echo '1. 28641' 1. 28641 + echo '2. 28641' 2. 28641 + unset A_VAR -bash: A_VAR: IS_NOT_SET Documentation for is in the BASH texinfo docs, read it in a Cygwin terminal by typing "info bash" and go to this section: 3.5.3 Shell Parameter Expansion ------------------------------- (( lines deleted )) (( lines deleted )) (( lines deleted )) '${PARAMETER:-WORD}' If PARAMETER is unset or null, the expansion of WORD is substituted. Otherwise, the value of PARAMETER is substituted. '${PARAMETER:=WORD}' If PARAMETER is unset or null, the expansion of WORD is assigned to PARAMETER. The value of PARAMETER is then substituted. Positional parameters and special parameters may not be assigned to in this way. '${PARAMETER:?WORD}' If PARAMETER is null or unset, the expansion of WORD (or a message to that effect if WORD is not present) is written to the standard error and the shell, if it is not interactive, exits. Otherwise, the value of PARAMETER is substituted. '${PARAMETER:+WORD}' If PARAMETER is null or unset, nothing is substituted, otherwise the expansion of WORD is substituted. (( lines deleted )) (( lines deleted )) (( lines deleted )) Keith On Wed, May 30, 2018 at 8:48 AM, Sam Habiel wrote: > I have code for a database I am porting to Cygwin. > > Part of that code is a clearenv() then a couple of setenvs. There is > an ifdef for Cygwin, as it doesn't implement clearenv. It just sets > environ = NULL. Well--that really breaks setenv! It returns a "Bad > Poniter" error (-1). > > What is the correct way to clear environment variables in Cygwin? > > --Sam > (About me: http://smh101.com/) > > -- > Problem reports: http://cygwin.com/problems.html > FAQ: http://cygwin.com/faq/ > Documentation: http://cygwin.com/docs.html > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple