Subject: bug#36034: [PATCH] Zsh extended_history shows up in comint input ring

From: Lars Ingebrigtsen <[email-masked]>
Date: Thu, 04 Jul 2019 15:37:29 +0200

Matthew Bauer <[email-masked]> writes:

>                   (setq start
>                         (if (re-search-backward comint-input-ring-separator
>                                                 nil t)
> -                           (match-end 0)
> -                         (point-min)))
> +                           (progn
> +                             (when comint-input-ring-file-prefix
> +                               ;; Skip zsh extended_history stamps
> +                               (re-search-forward comint-input-ring-file-prefix
> +                                                  nil t))
> +                             (match-end 0))

Hm...  I don't think this is right, either.  If the re-search-forward
fails, then (match-end 0) will fail, too.  And since (if I understood
correctly), the prefix will follow on directly from where point it,
using looking-at would be better, anyway...

>        ;; Bypass a bug in certain versions of bash.
>        (when (string-equal shell "bash")
>          (add-hook 'comint-preoutput-filter-functions
> -                  'shell-filter-ctrl-a-ctrl-b nil t)))
> +                  'shell-filter-ctrl-a-ctrl-b nil t))
> +
> +      ;; Skip extended history for zsh.
> +      (when (string-equal shell "zsh")
> +        (setq-local comint-input-ring-file-prefix ": [[:digit:]]+:[[:digit:]]+;")))
>      (comint-read-input-ring t)))

And this bit didn't apply.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no