Subject: Re: bug#67600: [PATCH] Add dashes to 'thing-at-point-email-regexp'

From: Eli Zaretskii <[email-masked]>
Date: Tue, 12 Dec 2023 15:08:41 +0200

> From: Visuwesh <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Tue, 12 Dec 2023 18:11:47 +0530
> 
> [Tuesday December 12, 2023] Eli Zaretskii wrote:
> 
> >> I am running Emacs with the same change before Philip created this bug
> >> report and so far I haven't had false positives for email addresses
> >> because files with a @ in its name is rare.  In practise, I think this
> >> patch is harmless in that regard.
> >
> > Remote files that have user@host in their names do have that
> > character.
> 
> AFAIU, user cannot have slashes in them as per the POSIX standards [1]
> and likewise with hostname so remote files should not pose a problem.
> Of course this assumes that you're only looking at methods like ssh,
> doas, sudo, etc.  It seems like tramp disallows slashes in user and host
> anyway, try:
> 
>     (file-remote-p "/ssh:userwith/@host:/") ;; => nil
>     (file-remote-p "/ssh:userwith@host/:/") ;; => nil
>     (file-remote-p "/ssh:userwith@host:/") ;; => /ssh:userwith@host:

Why are you talking about slashes in user and host names?  There are
slashes in remote file names outside of those two.  Are you saying
that slashes in thing-at-point-email-regexp will only ever match if
they are in the user or host names?  That's not what I see:

  (string-match "<?[-+_~a-zA-Z0-9/][-+_.~:a-zA-Z0-9/]*@[-a-zA-Z0-9]+[-.a-zA-Z0-9]*>?" 
    "/ssh:userwith@host:/what/ever/it/can/be")
      => 0