zsh-users
 help / color / mirror / code / Atom feed
From: Dominik Vogt <dominik.vogt@gmx.de>
To: zsh-users@zsh.org
Subject: Re: uninvited members of associative array
Date: Fri, 16 Dec 2022 11:05:26 +0100	[thread overview]
Message-ID: <Y5xC5vQCjJwm9jsw@localhost> (raw)
In-Reply-To: <cf00d14b-389f-2de2-3a9a-91fec333ebab@eastlink.ca>

[-- Attachment #1: Type: text/plain, Size: 1154 bytes --]

On Thu, Dec 15, 2022 at 08:16:46PM -0800, Ray Andrews wrote:
>
> On 2022-12-15 19:21, Lawrence Velázquez wrote:
> > Or before.
> Exactly the case here.  This code has many global variables and ... well, no
> need to say more.
> > Wrong.  It assumed that "main" contained the expected data and
> > nothing extra.  I've already asked you to use "typeset -p" to verify
> > its actual contents, but you still haven't.
>
> No need, zeroing the array solves the issue. Mind, I suppose I could do a
> forensic on that, and figure out when and where the corruption occurs

The issue is not solved.  You still have something that adds the
bogus values before the reinitialisation.  Whether this has some
adverse effects depends on the scripts.  (Sample script attached).
Basically you probably do ~ this:

  init_main
  # ...
  main=($main)           <-- Creates extra values
  # ...
  init_main
  printf "%-20s %s\n" ${(kv)main}

This is a bug in your scripts and not in zsh.

> and then, of course I'll use typeset -p

Forget about the typeset, look for "main=$(main)" or similar.

Ciao

Dominik ^_^  ^_^

--

Dominik Vogt

[-- Attachment #2: test --]
[-- Type: text/plain, Size: 594 bytes --]

#!/usr/bin/zsh

emulate zsh

List="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
mainWH="50"
mainWW="92"

typeset -A main

init_main () {
	main[window]="main"
	main[list]='List'
	main[lastE]="$#List"
	main[hight]=$(( mainWH - 2 ))
	main[width]=$(( mainWW - 2 ))
	main[bottomE]="$main[hight]"
	main[topE]=1
	main[currentE]=1
	main[offset]=0
	main[active]=1; echo ${(kv)main}
}

init_main
main=($main)
init_main
printf "%-20s %s\n" ${(kv)main}

  reply	other threads:[~2022-12-16 10:06 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-15 23:48 Ray Andrews
2022-12-16  0:05 ` Lawrence Velázquez
2022-12-16  0:48   ` Ray Andrews
2022-12-16  1:29     ` Lawrence Velázquez
2022-12-16  2:09     ` Dominik Vogt
2022-12-16  2:56       ` Ray Andrews
2022-12-16  3:21         ` Lawrence Velázquez
2022-12-16  4:16           ` Ray Andrews
2022-12-16 10:05             ` Dominik Vogt [this message]
2022-12-16 14:13               ` Ray Andrews
2022-12-16 15:19                 ` Dominik Vogt
2022-12-16 19:14                   ` Ray Andrews
2022-12-16 16:30                 ` Daniel Shahaf
2022-12-16 18:21                   ` Ray Andrews
2022-12-16 19:04                     ` Dominik Vogt
2022-12-16 20:10                       ` Ray Andrews
2022-12-16 21:15                         ` Dominik Vogt
2022-12-16 21:33                           ` Bart Schaefer
2022-12-16 21:59                             ` Dominik Vogt
2022-12-16 22:15                               ` Bart Schaefer
2022-12-16 23:33                                 ` Ray Andrews
2022-12-17 12:47                                   ` Pier Paolo Grassi
2022-12-17 17:32                                     ` Ray Andrews
2022-12-17 18:10                                 ` Ray Andrews
2022-12-17 18:19                                   ` Roman Perepelitsa
2022-12-17 20:31                                     ` Ray Andrews
2022-12-17 20:49                                       ` Bart Schaefer
2022-12-17 21:07                                       ` Lawrence Velázquez
2022-12-17 21:52                                         ` Ray Andrews
2022-12-17 22:10                                           ` Bart Schaefer
2022-12-17 23:41                                             ` Daniel Shahaf
2022-12-18  0:15                                             ` Ray Andrews
2022-12-18  0:25                                               ` Daniel Shahaf
2022-12-18  2:13                                                 ` Ray Andrews
2022-12-18 20:12                                                   ` Daniel Shahaf
2022-12-18 20:26                                                     ` Bart Schaefer
2022-12-18 20:41                                                       ` Ray Andrews
2022-12-18  3:44                                               ` Lawrence Velázquez
2022-12-17 23:25                                         ` Daniel Shahaf
2022-12-16 21:33                           ` Ray Andrews
2022-12-16 20:25                       ` Daniel Shahaf
2022-12-16 21:43                         ` Dominik Vogt
2022-12-16  3:20 ` Bart Schaefer
2022-12-16  4:15   ` Ray Andrews
2022-12-16  8:12 ` Roman Perepelitsa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y5xC5vQCjJwm9jsw@localhost \
    --to=dominik.vogt@gmx.de \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).