diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-02-15 13:21:28 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-02-15 13:21:28 -0800 |
commit | 6aaeadfee858b9dacfe391610b99c1c152853383 (patch) | |
tree | 8a6686492ed03787be03ce9b25cd982960e13770 | |
parent | d83dce3b984c04b09eb8b79803f0417109b720ed (diff) | |
download | mu-6aaeadfee858b9dacfe391610b99c1c152853383.tar.gz |
7752
-rw-r--r-- | baremetal/shell/line.mu | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/baremetal/shell/line.mu b/baremetal/shell/line.mu index b86974cc..aadba891 100644 --- a/baremetal/shell/line.mu +++ b/baremetal/shell/line.mu @@ -155,7 +155,6 @@ fn render-word-with-stack-and-cursor screen: (addr screen), line: (addr line), c } fn test-render-line-with-stack-singleton { - # line = [1] var line-storage: line var line/esi: (addr line) <- address line-storage parse-line "1", line @@ -175,7 +174,6 @@ fn test-render-line-with-stack-singleton { } fn test-render-line-with-stack { - # line = [1 2] var line-storage: line var line/esi: (addr line) <- address line-storage parse-line "1 2", line @@ -195,6 +193,26 @@ fn test-render-line-with-stack { # not bothering to test hash colors for numbers } +# { } groups have no effect on the stack by default. +fn test-render-line-with-stack-groups { + var line-storage: line + var line/esi: (addr line) <- address line-storage + parse-line "{ 1 2 }", line + # setup: screen + var screen-on-stack: screen + var screen/edi: (addr screen) <- address screen-on-stack + initialize-screen screen, 0x20, 4 + # + var new-x/eax: int <- copy 0 + var new-y/ecx: int <- copy 0 + new-x, new-y <- render-line-with-stack screen, line, 0/x, 0/y, 0/no-cursor + check-screen-row screen, 0/y, "{ 1 2 } ", "F - test-render-line-with-stack-groups/0" + check-screen-row screen, 1/y, " ", "F - test-render-line-with-stack-groups/1" + # ___ ___ + check-screen-row screen, 2/y, " 1 2 ", "F - test-render-line-with-stack-groups/2" + check-screen-row screen, 3/y, " 1 ", "F - test-render-line-with-stack-groups/3" +} + fn edit-line _self: (addr line), key: byte { var self/esi: (addr line) <- copy _self var cursor-word-ah/edx: (addr handle word) <- get self, cursor |