Tuesday, May 2, 2023

Re: Bug? E216: No such group or event: filetypedetect BufReadPost msg in 14_XxdBack:

On Tue, May 2, 2023 at 5:46 PM Bram Moolenaar <Bram@moolenaar.net> wrote:
>
>
> [resend, picky postmaster refused the message]
>
> Zach Pfeffer wrote:
>
> > Posting this here based on the request at
> > https://github.com/vim/vim/blob/master/CONTRIBUTING.md :
> >
> > "If you are not 100% sure that your problem is a Vim issue, please first
> > discuss this on the Vim user maillist."
> >
> > Running:
> >
> > VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Jun 28 2022 13:09:53)
> > MS-Windows 32-bit GUI version with OLE support
> > (the one downloadable from https://www.vim.org/download.php)
> >
> > ... I noticed a message when clicking Convert Back after Convert to HEX:
> >
> > Error detected while processing functions <SNR>14_XxdBack:
> > line 9:
> > E216: No such group or event: filetypedetect BufReadPost
> >
> > ...this message cleared when I pressed Enter.
> >
> > I found this message went away with this patch:
> >
> > --- menu.vim 2023-04-29 16:47:05.708417500 -0600
> > +++ menu.vim.bak 2022-06-28 07:08:36.000000000 -0600
> > @@ -599,10 +599,8 @@
> > s:XxdFind()
> > exe ':%!' .. g:xxdprogram .. ' -r'
> > endif
> > - if exists('did_load_filetypes')
> > - set ft=
> > - doautocmd filetypedetect BufReadPost
> > - endif
> > + set ft=
> > + doautocmd filetypedetect BufReadPost
> > &mod = mod
> > enddef
> >
> > Is there a better solution? Should I file this as a bug?
>
> Looks like your diff is the wrong way around.


Yup! I'm sorry about that. Here's the patch with your suggestion with
the diff the correct way around.

--- menu.vim.orig 2022-06-28 07:08:36.000000000 -0600
+++ menu.vim 2023-05-02 20:20:00.052527000 -0600
@@ -599,8 +599,10 @@
s:XxdFind()
exe ':%!' .. g:xxdprogram .. ' -r'
endif
- set ft=
- doautocmd filetypedetect BufReadPost
+ if exists('#filetypedetect') && exists('#BufReadPost')
+ set ft=
+ doautocmd filetypedetect BufReadPost
+ endif
&mod = mod
enddef

>
>
> Instead of checking for "did_load_filetypes" a more direct condition
> would be to use:
>
> if exists('#filetypedetect') && exists('#BufReadPost')
> set ft=
> doautocmd filetypedetect BufReadPost
> endif
>
> Does that work for you?

Yup. Works great.

Would you like me to file a bug and create a patch on vim-dev against the bug?

>
>
> --
> Lower life forms have more fun!
>
> /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
> /// \\\
> \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
> \\\ help me help AIDS victims -- http://ICCF-Holland.org ///



--
Blog | LinkedIn | Twitter | Facebook

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAPXzgB3%3D7pBT2OwSyvvM2WKsdj2zy1s88ttbtSYWVieYcFtECg%40mail.gmail.com.

No comments:

Post a Comment