about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-02-08 11:12:08 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-02-08 11:12:08 -0800
commit21ba80df9a835b9c4251ebbe79ad04d6c777c31b (patch)
tree36537f2be9506474d7a695d30c990de525dddd27
parent8a06a34a9fe98e8f6883392ca0dd9a03494b9782 (diff)
downloadmu-21ba80df9a835b9c4251ebbe79ad04d6c777c31b.tar.gz
714
Just forget about unicode for now.
-rw-r--r--mu.arc19
1 files changed, 11 insertions, 8 deletions
diff --git a/mu.arc b/mu.arc
index 0f13344d..1628256c 100644
--- a/mu.arc
+++ b/mu.arc
@@ -157,6 +157,9 @@
               string-address-array (obj array t  elem '(string-address))
               string-address-array-address (obj size 1  address t  elem '(string-address-array))
               string-address-array-address-address (obj size 1  address t  elem '(string-address-array-address))
+              ; 'character' will be of larger size when mu supports unicode
+              ; we're currently undisciplined about mixing 'byte' and 'character'
+              ; realistic test of indiscipline in general
               character (obj size 1)  ; int32 like a Go rune
               character-address (obj size 1  address t  elem '(character))
               ; a buffer makes it easy to append to a string/array
@@ -1912,10 +1915,10 @@
   { begin
     (done?:boolean <- greater-or-equal i:integer a-len:integer)
     (break-if done?:boolean)
-    (a-char:byte <- index a:string-address/deref i:integer)
-    (b-char:byte <- index b:string-address/deref i:integer)
+    (a2:byte <- index a:string-address/deref i:integer)
+    (b2:byte <- index b:string-address/deref i:integer)
     { begin
-      (chars-match?:boolean <- equal a-char:byte b-char:byte)
+      (chars-match?:boolean <- equal a2:byte b2:byte)
       (break-if chars-match?:boolean)
       (reply nil:literal)
     }
@@ -2079,7 +2082,7 @@
 
 (init-fn find-next  ; string, character, index -> next index
   (s:string-address <- next-input)
-  (needle:character <- next-input)  ; todo: unicode chars
+  (needle:character <- next-input)
   (idx:integer <- next-input)
   (len:integer <- length s:string-address/deref)
   { begin
@@ -2096,7 +2099,7 @@
 (init-fn split  ; string, character -> string-address-array-address
   (default-space:space-address <- new space:literal 30:literal)
   (s:string-address <- next-input)
-  (delim:character <- next-input)  ; todo: unicode chars
+  (delim:character <- next-input)
   ; empty string? return empty array
   (len:integer <- length s:string-address/deref)
   { begin
@@ -2147,7 +2150,7 @@
 (init-fn split-first  ; string, character -> string, string
   (default-space:space-address <- new space:literal 30:literal)
   (s:string-address <- next-input)
-  (delim:character <- next-input)  ; todo: unicode chars
+  (delim:character <- next-input)
   ; empty string? return empty array
   (len:integer <- length s:string-address/deref)
   { begin
@@ -2483,7 +2486,7 @@
   { begin
     (done?:boolean <- greater-or-equal i:integer len:integer)
     (break-if done?:boolean)
-    (c:character <- index s:string-address/deref i:integer)  ; todo: unicode
+    (c:character <- index s:string-address/deref i:integer)
     (print-character x:terminal-address c:character)
     (i:integer <- add i:integer 1:literal)
     (loop)
@@ -2611,7 +2614,7 @@
   (len:integer-address <- get-address in:buffer-address/deref length:offset)
   (s:string-address <- get in:buffer-address/deref data:offset)
   (dest:byte-address <- index-address s:string-address/deref len:integer-address/deref)
-  (dest:byte-address/deref <- copy c:character)  ; todo: unicode
+  (dest:byte-address/deref <- copy c:character)
   (len:integer-address/deref <- add len:integer-address/deref 1:literal)
   (reply in:buffer-address/same-as-arg:0)
 )