zsh-workers
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: Zsh hackers list <zsh-workers@zsh.org>
Cc: Chi Hsuan Yen <yan12125@gmail.com>
Subject: Re: Bug: bracketed-paste-magic + ztcp causes wrong pasted contents for CJK payloads
Date: Tue, 27 Oct 2015 19:43:17 -0700	[thread overview]
Message-ID: <151027194317.ZM17099@torch.brasslantern.com> (raw)
In-Reply-To: <151015172503.ZM30721@torch.brasslantern.com>

On Oct 15,  1:54pm, Bart Schaefer wrote:
}
} On Thu, Oct 15, 2015 at 6:54 AM, Chi Hsuan Yen <yan12125@gmail.com> wrote:
} > This bug is similar to zsh-worker 36763 but different. With zsh
} > commit 827d360, I have no problems in pasting CJK payloads with an
} > empty ~/.zshrc, while problems occur with my own ~/.zshrc. It's a
} > strange bug. Please tell me if you can't reproduce it. I'll test
} > on more platforms.
} 
} I am able to reproduce this, but not reliably.

Fixing the descriptor "leak" in ztcp.c did not help with this bug, so
I tried digging around a bit further.

I first discovered that I'd mis-remembered what self-insert-unmeta is
meant for.  It's not un-metafying in the zsh sense, it's clearing the
high-order bit -- so it's the wrong thing for bracketed-paste-magic
to use when inserting characters, except maybe for ^M.

However, that led to the question of why that branch of the "case"
in bracketed-paste-magic is even being taken.  The code is:

                case $REPLY in
                    (${~bpm_active}) function () {
                        emulate -L $bpm_emulate; set -$bpm_opts
                        zle $REPLY
                    };;
                    (*) zle .self-insert-unmeta;;
                esac

(where $REPLY comes from "zle .read-command").  $REPLY is "self-insert"
and $bpm_active is "self-*" so the first branch ought to be taken, and
indeed that is what happens if ztcp has never been invoked.

However, if ztcp is run in the correct order with respect to the auto-
load of bracketed-paste-magic, the case statement goes wrong and the
(*) condition is taken instead.

This is eerily similar to a situation I mentioned some while ago in
which patterns in zstyle sometimes fail to match.  I've never been
able to consistently reproduce that one either, and it also seemed
to be dependent on the order in which some operations were done.

This has me entirely confused.  valgrind finds nothing amiss so it's
not a memory management thing.  Some sort of clash in global variable
address space?  Anybody have an idea?


  parent reply	other threads:[~2015-10-28  2:43 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-15 13:54 Chi Hsuan Yen
2015-10-15 20:54 ` Bart Schaefer
2015-10-16  0:25   ` Bart Schaefer
2015-10-16 19:40     ` Chi Hsuan Yen
2015-10-18 15:52       ` Bart Schaefer
2015-10-18 16:19         ` Chi Hsuan Yen
2015-10-28  2:43     ` Bart Schaefer [this message]
2015-10-28  3:23       ` Bart Schaefer
2015-10-28  9:35         ` Peter Stephenson
2015-10-28 17:07           ` Bart Schaefer
2015-10-28 17:44             ` Peter Stephenson
2015-10-28 23:38               ` Bart Schaefer
2015-10-29  9:31                 ` Peter Stephenson
2015-10-29 14:51                   ` Peter Stephenson
2015-10-29 15:00                     ` Bart Schaefer
2015-10-29 15:10                       ` Peter Stephenson
2015-10-29 16:25                     ` Jun T.
2015-10-29 16:56                       ` Peter Stephenson
2015-10-30 15:02                         ` Daniel Shahaf
2015-11-03 16:31                           ` Chi Hsuan Yen

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=151027194317.ZM17099@torch.brasslantern.com \
    --to=schaefer@brasslantern.com \
    --cc=yan12125@gmail.com \
    --cc=zsh-workers@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).