From: David Kastrup Date: Mon, 29 Dec 2014 14:20:57 +0000 (+0100) Subject: Issue 4234: lilypond-what-beat.el: heed stand-alone durations in music lengths X-Git-Tag: release/2.19.16-1~2^2~38^2~27 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=dba880a1cff16f6c000b9cef39e012c79a264b22;p=lilypond.git Issue 4234: lilypond-what-beat.el: heed stand-alone durations in music lengths --- diff --git a/elisp/lilypond-what-beat.el b/elisp/lilypond-what-beat.el index dae02d53d2..3f11b843c1 100644 --- a/elisp/lilypond-what-beat.el +++ b/elisp/lilypond-what-beat.el @@ -92,18 +92,15 @@ )) (defun walk-note-duration () -"Returns duration of next note, moving point past note. + "Returns duration of next note, moving point past note. If point is not before a note, returns nil If next note has no duration, returns t" - (if (not (looking-at pitch-regex)) - nil - (progn + (let ((have-pitch (looking-at pitch-regex))) + (if have-pitch (goto-char (match-end 0))) + (if (not (looking-at duration-regex)) + have-pitch (goto-char (match-end 0)) - (if (not (looking-at duration-regex)) - t - (progn - (goto-char (match-end 0)) - (parse-duration (match-string 0))))))) + (parse-duration (match-string 0))))) ; returns nil if not at a comment (defun skip-comment () @@ -161,7 +158,7 @@ If next note has no duration, returns t" (skip-quotation) (skip-sexp))) ; Now skip anything that isn't alphanum or \. And skip comments or quotations - (while (or (< 0 (skip-chars-forward "^A-Za-z<%}#=\"")) + (while (or (< 0 (skip-chars-forward "^A-Za-z1-9<%}#=\"")) (skip-comment) (skip-quotation) (skip-sexp)))