- ((string-match "^#\\([0-9]+\\);\\([0-9]+\\);\\([0-9]+\\);\\([0-9]+\\);\\([0-9]+\\)"
- trunc-string)
- (let ((tag (intern (string-to (match-string 1 trunc-string))))
- (mode (match-string 2 trunc-string))
- (r (string-to-number (match-string 3 trunc-string)))
- (g (string-to-number (match-string 4 trunc-string)))
- (b (string-to-number (match-string 5 trunc-string))))
- (add-to-list 'sixel-colour-map (list (tag r g b)))
- (setq idx-in (match-end 0))))
- ((string-match "^#\\([0-9]+\\)" trunc-string)
- (let ((tag (intern (match-string 1 trunc-string))))
- (setq sixel-current-colour tag)
- (setq idx-in (match-end 0))))
- ((string-match "^$" trunc-string)
- (setq idx-out 0)
- (setq idx-in (match-end 0 trunc-string)))
- ((string-match "^!\\([0-9]+\\)\\([?-~]\\)" trunc-string)
- (let ((repeat-count (string-to-number (match-string 1 trunc-string)))
- (char (elt (match-string 2 trunc-string) 0)))
+ ((looking-at "#\\([0-9]+\\);\\([0-9]+\\);\\([0-9]+\\);\\([0-9]+\\);\\([0-9]+\\)")
+ (let ((tag (intern (match-string 1)))
+ (mode (match-string 2))
+ (r (string-to-number (match-string 3)))
+ (g (string-to-number (match-string 4)))
+ (b (string-to-number (match-string 5))))
+ (push (list tag r g b) colour-map)))
+
+ ((looking-at "#\\([0-9]+\\)")
+ (let ((tag (intern (match-string 1))))
+ (setq current-colour tag)))
+
+ ((looking-at "\\$")
+ (setq idx-out 0))
+
+ ((looking-at "-")
+ (push (reverse this-row) rows)
+ (setq this-row nil)
+ (setq idx-out 0))
+
+ ((looking-at "!\\([0-9]+\\)\\([?-~]\\)")
+ (let ((repeat-count (string-to-number (match-string 1)))
+ (char (elt (match-string 2) 0)))