From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 8603 invoked from network); 31 Mar 2023 19:03:31 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 31 Mar 2023 19:03:31 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1680289411; b=GNHZ8pZOJKmkpDbT691F5moSdo9cuG2TKtR7sI0VBWxJFC3o/Huy46AWMWMtCp4Go3B8J3k5j3 /5HksDCXWo9uNXVlY2TamZGrOgYXCsoKs5O0A9Y3PGhT6Ph2NOhImFKWZjVoPH07kAFNxZW7OP qgGi6/mu9a5yf8aO/jiCKUXVq3VJ05hyxnJy/rYUGTugt/Hy2ZA756JajK7yMNCvInjhPbQ14b CjY2+QUxoR1JfGQoQq5PtjWqCNCRpOGep7sgt2ZBot6ESnzDv/nbnK8rp0zfwKDZz9mhCtYnVC sd80EOiFfcuo6fyt3sqcY5W/hnA0axIl0i/C+D8Bec0qCQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f43.google.com) smtp.remote-ip=209.85.208.43; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1680289411; bh=qgFkzGLdYywOmFwLpqhxV/Ws/Ct0dJWztWrYgP2G28s=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:Cc:To:Subject: Message-ID:Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature: DKIM-Signature; b=UtFjyE0mZj2UqzT0nGaQGBriYh18s8IqnOLYEMkyfvnKI6o2pqhHWX/AkQxAxnFLa8Ey+BdX/v esbyVcWKo7rqfZENeoJbdG5PXqkELRVyuItM7UUc79m6l4yQRVHO0zuwTqde/9aCxMd31dYsPP 4OIrh8Ncz8k100/8OjJBH6L5I0a6I8Ksc923fcoflkyD3ECFfOOS2Kf9e/gZA0Y7dnZwXZom++ 8vOD0J9NJZfpFgeHApdTqSQwAEE+Hx1yNn8EPTcKM+peR2MU4oDhCdqC8L8JXkgc7nVzeXbZgS 7/3APEF5YAfPn6kWCz3q1XVhzfYKSZte/cc5Kp165WRTbg==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=ZaMtfsDqSiqqY43e3DHwOQAhJi/Hnga0bq9STdOhQrg=; b=Udno+kzQJ+/zta0NeHSrBTYHVN 9PO6XHqmkZGlOacfCswlhBtWHUfwfwLuXp7LWwPPYLmnUydoNIp7vfKn73O1uoJBgcpPTwesgNMkx mSTDnC1QiHBCQdU+cnH3o8Jy6yb0PLVy+yANe0dqzpNaBhFjET5Lixwx/rVx+zL8DGEdWnyJIaOby iYaisqZeoDqf2XE1eShQByhMXyRKWFWSwFglEDVPx+d8qLNA1C2CDzLy/ZLTJYsoMi8GK62a+muyR HTf8iUvLBHDyP8+XpzHdbcnfHRcKi8QjHiG729zBws2V9Wi+zYnlnTxLFsGLE55OFWgoscYOhPHDi 7L+amlBw==; Received: by zero.zsh.org with local id 1piK25-000Eex-BY; Fri, 31 Mar 2023 19:03:29 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f43.google.com) smtp.remote-ip=209.85.208.43; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ed1-f43.google.com ([209.85.208.43]:40569) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1piK1S-000EM7-Tu; Fri, 31 Mar 2023 19:02:56 +0000 Received: by mail-ed1-f43.google.com with SMTP id ew6so93501008edb.7 for ; Fri, 31 Mar 2023 12:02:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20210112.gappssmtp.com; s=20210112; t=1680289370; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ZaMtfsDqSiqqY43e3DHwOQAhJi/Hnga0bq9STdOhQrg=; b=AGov/Vg1NmtNF6sJ64o2eXZeWoqGoZB8QgGLB0g8IwQgelxR2rJ6HQ/ToMEutyB81T 4v/V1tVrlHrPjIjCv2gkmwFQnkrG6JDiorEkUxv/R7AIMtQeukobGQ8MZ71jV07XvmNH qv3ajJF+ALsNr5j34nvTbfLa0LooHMkYdpAu9E1MF9qdutiPnaV7S/bKiWOMyr2U4ZVh BHaYh0VAUDgbkOY2Hg8Sf+kL6wZVr0WfbffA5d4Pv/bkA9ImaFis3bPWn6Vlmj8/Z7ee OE/q+IWyQpJBEeb5HCUx82+mf4UNshbFvdn8bFMiC1GPF0zZT8ysqD82+MULss8G4qzZ lg+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680289370; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZaMtfsDqSiqqY43e3DHwOQAhJi/Hnga0bq9STdOhQrg=; b=kWqlJuLNKRz2OsK5sud1TVjg/ton98T/Nb9+L0b/Tp+riV3yC8XfruTd56dNWKpYld 4A0Wn+J5d/KCZPWeix4nzJGCdvmnAr+lFDwWGvc79jY+BR/X0qT5wJ93djH9NPX8oGN9 N/2MqKE+0yUuT7lbbk/0WpgrCc/zK8sYRh4kSjOiucVpSEQxPwcZHsVOsh7FJ1M3kbI4 r5Qgob8BezXUb20wWIntp2Fu+aZDyeb+qxIncyNilK4VtcztRbigfIDb3FRL8imLJXoP fT5tW3be81GB+VBppoMCdCPzFanLGjTRtJ8bWaVwHFxlJYoDNzDfri661Jt6DyFS4pNi 8AnQ== X-Gm-Message-State: AAQBX9fBD4t+hZM2kutZGK0eGzWyuLeQ73k4z12yStxD/V1zqUbGNrSG UXJZDEYaWZqMM9tsndYwNlV4FGZiBUjqMeG2TiDmZQ== X-Google-Smtp-Source: AKy350a6t/CFC3nm/Li/ANw+4WgWdZ3eOadh6fdZ38XzLO0Peyb3fGWI6cZauCEBLiMMYpdcxyn7tJiJtJeUdZ/aM30= X-Received: by 2002:a50:a6d1:0:b0:4fa:da46:6f1c with SMTP id f17-20020a50a6d1000000b004fada466f1cmr14340813edc.2.1680289370140; Fri, 31 Mar 2023 12:02:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Bart Schaefer Date: Fri, 31 Mar 2023 12:02:38 -0700 Message-ID: Subject: Re: ksh compatibility: initial value of $_ To: "Jun. T" Cc: zsh-workers@zsh.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 51617 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On Fri, Mar 31, 2023 at 7:32=E2=80=AFAM Jun. T wrote: > > +++ b/Src/init.c > @@ -1084,9 +1084,18 @@ setupvals(char *cmd, char *runscript, char *zsh_na= me) > + zunderscore =3D getenv("_"); > + if (zunderscore) { > + zunderscore =3D metafy(ztrdup(zunderscore), -1, META_REALLOC); > + underscoreused =3D strlen(zunderscore) + 1; > + underscorelen =3D (underscoreused + 31) & ~31; > + zunderscore =3D (char *)zrealloc(zunderscore, underscorelen); > + } > + else { > + zunderscore =3D (char *)zalloc(underscorelen =3D 32); > + underscoreused =3D 1; > + *zunderscore =3D '\0'; > + } Is there a simple way to call setunderscore() here instead of duplicating most of it? The complication mostly seems to be that metafy() doesn't handle a NULL string, so we can't just metafy(getenv()). > + zunderscore =3D metafy(ztrdup(zunderscore), -1, META_REALLOC); This at least could just be zunderscore =3D metafy(zunderscore, -1, META_ALLOC); ??