Subject: bug#27391: 25.2.50; utf-8 coding cookie is not applied on some specific markdown file

From: Philipp Stephani <[email-masked]>
Date: Mon, 26 Jun 2017 11:39:12 +0000

Vincent Belaïche <[email-masked]> schrieb am Mo., 19. Juni 2017
um 12:51 Uhr:

>
> Concerning factorization, couldn't one use [\n\r] in all cases rather
> than a switch based on some input argument ?
>

It should be possible, but it slightly changes the behavior of file-local
variables. I wouldn't expect anything to break though.

>
> I was also wondering whether it is not possible to have a single regexp
> for the whole Local Variable section. The following `doit' function is a
> trial to do so. `M-x doit' will seach forward the whole Local Variables
> section and display "ok" if found, "nak" otherwise.
>
> (defun doit ()
>   (interactive)
>   (let* ((eol "\\(\r\n?\\|\n\\)")
>          (eol-again "\\1")
>          (space-maybe "[ \t]*")
>          ;; suffix may be the empty string
>          (suffix  "\\([^ \r\n]+\\(?:[^\r\n]*[^ \r\n]\\)?\\|\\)")
>          (prefix "\\([ \t]*[^ \r\n]+\\(?:[^\r\n]*[^ \r\n]\\)?\\)")
>          (prefix-again "\\2")
>          (suffix-again "\\3")
>          (symbol: "\\(?:\\(?:[^][()'\" \t\r\n]\\|\\\\[][()'\" \t]\\)+[
> \t]*:\\)")
>          (sexp (concat "\\(?:" (substring prefix 2))))
>
>     (message (if (and (re-search-forward
>                   (concat eol
>                           prefix space-maybe "Local Variables:"
> space-maybe suffix space-maybe eol-again
>                           "\\(?:" prefix space-maybe symbol:  sexp
> space-maybe suffix-again space-maybe eol-again "\\)*"
>                           prefix space-maybe "End:" space-maybe suffix
> space-maybe "\\(" eol-again "\\)?"
>                           )
>                   nil t)
>                   ;; when the tailing eol is not there we must be at EOB.
>                   (or (match-string 3) (eobp)))
>                                     "ok" "nak"))))
>
>
>
Looks good. Consider using `rx' for complex regexes, in my experiences it
increases readability a lot.