[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

From: Vincent Belaïche
Subject: bug#27391: 25.2.50; utf-8 coding cookie is not applied on some specific markdown file
Date: Mon, 19 Jun 2017 12:51:33 +0200

> With git-blame it's not really tedious. Commit
> 6b61353c0a0320ee15bb6488149735381fed62ec replaced ^\\(.*\\)[ \t]* with
> [\r\n]\\([^[\r\n]*\\)[ \t]*, so I think it's almost certain this is a
> typo (the previous regex didn't exclude the [ either). Anyway, if
> people want this to stay, they should have added a comment.

Thank you, I had a look at Wikipedia for the QWERTY keyboard layout (I
have a French keyboard and the layout is somehow different for \ and ]).

Modern QWERTY layout is as follows:

1 2 3 4 5 6 7 8 9 0 - =
Q W E R T Y U I O P [ ] \
A S D F G H J K L ; '
Z X C V B N M , . /

So ] is just next to \.

So, yes, definitely this is a typo, the author had too big a finger when
hitting \.

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

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 ()
  (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]\\)+[ 
         (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"))))


L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel 
antivirus Avast.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]