zsh-workers
 help / color / mirror / code / Atom feed
From: Mikael Magnusson <mikachu@gmail.com>
To: Zsh Workers <zsh-workers@zsh.org>
Subject: Re: !!$ unitialized at first prompt
Date: Fri, 24 Sep 2010 17:20:38 +0200	[thread overview]
Message-ID: <AANLkTi=7PAx8-99Rj1WOzDgj6sEpyULWN3sUw+gdPuAH@mail.gmail.com> (raw)
In-Reply-To: <100924081042.ZM4496@torch.brasslantern.com>

On 24 September 2010 17:10, Bart Schaefer <schaefer@brasslantern.com> wrote:
> On Sep 24,  1:39pm, Peter Stephenson wrote:
> }
> } The shell doesn't split words in the same way when importing history.
> } In normal operation it relies on the lines having been passed through
> } the lexical analyser to generate the words, which doesn't happen when
> } history is read from a file.  Instead it just blindly splits on
> } whitespace.
>
> ... and at the time this was designed, it would make history import an
> agonizingly slow process if the entire history file had to be passed
> through the lexical analyzer.
>
> Nowadays that's probably not so much a concern for most people.  There's
> probably an argument to be made that SHARE_HISTORY should force use of
> the lexical analyzer, because (although no one has ever complained) the
> current implementation means that history words referenced from shared
> history behave differently than those from the local history.
>
> You can load your own history something like this provided that you
> *don't* use shared or extended history:
>
>    readhistfile() {
>        emulate -LR zsh
>        local histline
>        local -a histwords
>        while read -r histline
>        do
>            if [[ $histline = *\\ ]]
>            then
>                histline[-1]=''
>                histwords+=( ${(z)histline}$'\n' )
>            else
>                histwords+=( ${(z)histline} )
>                print -s $histwords
>                histwords=()
>            fi
>        done
>    }
>
> That's not perfect, as it does things like insert a space at the front
> of every continuation line in a multi-line command, but it's passable.
> Note the function as written expects the history to be standard input.

Unless I'm missing something, it's also not unmetafying anything.
Which is not a problem if you're american/english :).

-- 
Mikael Magnusson


  reply	other threads:[~2010-09-24 15:26 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-24  4:36 Benjamin R. Haskell
2010-09-24  4:43 ` Benjamin R. Haskell
2010-09-24 11:48   ` Mikael Magnusson
2010-09-24 12:39     ` Peter Stephenson
2010-09-24 14:18       ` Benjamin R. Haskell
2010-09-24 14:26         ` Peter Stephenson
2010-09-24 15:30           ` Bart Schaefer
2010-09-24 15:10       ` Bart Schaefer
2010-09-24 15:20         ` Mikael Magnusson [this message]
2010-09-24 20:12         ` Peter Stephenson
2010-09-25  6:53           ` Bart Schaefer
2010-09-25 17:26             ` Wayne Davison
2010-09-25 18:49               ` Peter Stephenson
2010-09-26  1:14                 ` Bart Schaefer

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='AANLkTi=7PAx8-99Rj1WOzDgj6sEpyULWN3sUw+gdPuAH@mail.gmail.com' \
    --to=mikachu@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).