))
(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 ()
(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)))