From dba880a1cff16f6c000b9cef39e012c79a264b22 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Mon, 29 Dec 2014 15:20:57 +0100 Subject: [PATCH] Issue 4234: lilypond-what-beat.el: heed stand-alone durations in music lengths --- elisp/lilypond-what-beat.el | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) 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))) -- 2.39.2