This commit is contained in:
Ian Keane 2020-02-18 14:21:14 -05:00
parent 276853ba84
commit 1cb167b597
361 changed files with 77302 additions and 4 deletions

View file

@ -0,0 +1,21 @@
(in-package :de.anvi.croatoan)
(defun extract-complex-string (window &key y x position n)
"Extract and return a complex string from the window.
Start at the current cursor position and end at the right margin of window.
If the position coordinates y (row) and x (column) are given, move the
cursor to the position first and then add the character.
The position can also be passed in form of a two-element list.
If n is given, read at most n chars."
(when (and y x) (move window y x))
(when position (apply #'move window position))
(let* ((count (if n n (- (width window) (cadr (cursor-position window)))))
(complex-string (make-instance 'complex-string)))
(loop for i from 0 to (1- count) do
(vector-push-extend (extract-wide-char window) (complex-char-array complex-string))
(move-direction window :right))
complex-string))