From ad24fa414fa0a6b0d8f651717139fae0f534cce2 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Mon, 5 Aug 2019 13:08:09 -0700 Subject: [PATCH] io.encodings.utf16: add a utf16n word for native utf16 type. remove io.encodings.utf16n vocabulary, which was kind of single purpose. update a bunch of vocab usings. --- basis/bootstrap/stage2.factor | 6 ++---- basis/core-text/core-text.factor | 6 +++--- basis/environment/windows/windows.factor | 2 +- basis/game/input/dinput/dinput.factor | 15 +++++++-------- basis/io/monitors/windows/windows.factor | 2 +- basis/random/unix/unix.factor | 1 + basis/tools/ps/windows/windows.factor | 2 +- basis/ui/backend/cocoa/views/views.factor | 4 ++-- basis/ui/backend/windows/windows.factor | 2 +- basis/ui/text/core-text/core-text.factor | 2 +- basis/windows/dropfiles/dropfiles.factor | 2 +- basis/windows/registry/registry-tests.factor | 2 +- basis/windows/registry/registry.factor | 2 +- basis/windows/types/types.factor | 2 +- basis/windows/uniscribe/uniscribe.factor | 2 +- core/alien/alien-docs.factor | 2 +- core/alien/strings/strings-tests.factor | 2 +- core/alien/strings/strings.factor | 2 +- core/io/encodings/utf16/utf16-docs.factor | 7 ++++++- core/io/encodings/utf16/utf16.factor | 11 +++++++---- core/io/encodings/utf16n/authors.txt | 1 - core/io/encodings/utf16n/summary.txt | 1 - core/io/encodings/utf16n/utf16n-docs.factor | 6 ------ core/io/encodings/utf16n/utf16n-tests.factor | 9 --------- core/io/encodings/utf16n/utf16n.factor | 15 --------------- 25 files changed, 41 insertions(+), 67 deletions(-) delete mode 100644 core/io/encodings/utf16n/authors.txt delete mode 100644 core/io/encodings/utf16n/summary.txt delete mode 100644 core/io/encodings/utf16n/utf16n-docs.factor delete mode 100644 core/io/encodings/utf16n/utf16n-tests.factor delete mode 100644 core/io/encodings/utf16n/utf16n.factor diff --git a/basis/bootstrap/stage2.factor b/basis/bootstrap/stage2.factor index 3ec2024827..8ff0d37d59 100644 --- a/basis/bootstrap/stage2.factor +++ b/basis/bootstrap/stage2.factor @@ -13,10 +13,8 @@ SYMBOL: bootstrap-time : strip-encodings ( -- ) os unix? [ [ - P" resource:core/io/encodings/utf16/utf16.factor" - P" resource:core/io/encodings/utf16n/utf16n.factor" [ forget ] bi@ - "io.encodings.utf16" - "io.encodings.utf16n" [ loaded-child-vocab-names [ forget-vocab ] each ] bi@ + P" resource:core/io/encodings/utf16/utf16.factor" forget + "io.encodings.utf16" loaded-child-vocab-names [ forget-vocab ] each ] with-compilation-unit ] when ; diff --git a/basis/core-text/core-text.factor b/basis/core-text/core-text.factor index 7e96b8b570..44d55f5fcd 100644 --- a/basis/core-text/core-text.factor +++ b/basis/core-text/core-text.factor @@ -4,9 +4,9 @@ USING: accessors alien.c-types alien.data alien.syntax arrays assocs cache colors combinators core-foundation core-foundation.attributed-strings core-foundation.strings core-graphics core-graphics.types core-text.fonts destructors -fonts init kernel locals make math math.functions math.order -math.vectors memoize namespaces sequences strings -io.encodings.utf16n io.encodings.string ; +fonts init io.encodings.string io.encodings.utf16 kernel locals +make math math.functions math.order math.vectors memoize +namespaces sequences strings ; IN: core-text TYPEDEF: void* CTLineRef diff --git a/basis/environment/windows/windows.factor b/basis/environment/windows/windows.factor index d3a4a3f437..888a341aff 100644 --- a/basis/environment/windows/windows.factor +++ b/basis/environment/windows/windows.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2008 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: alien.strings fry io.encodings.utf16n kernel +USING: alien.strings fry io.encodings.utf16 kernel splitting windows windows.kernel32 windows.types system environment alien.data sequences windows.errors io.streams.memory io.encodings io specialized-arrays ; diff --git a/basis/game/input/dinput/dinput.factor b/basis/game/input/dinput/dinput.factor index 78b8ac5444..939db437d8 100644 --- a/basis/game/input/dinput/dinput.factor +++ b/basis/game/input/dinput/dinput.factor @@ -1,12 +1,11 @@ USING: accessors alien alien.c-types alien.data alien.strings -arrays assocs byte-arrays combinators combinators.short-circuit -continuations game.input game.input.dinput.keys-array -io.encodings.utf16n kernel locals math -math.bitwise math.rectangles namespaces parser sequences shuffle -specialized-arrays ui.backend.windows vectors windows.com -windows.directx.dinput windows.directx.dinput.constants -windows.kernel32 windows.messages windows.ole32 windows.errors -windows.user32 classes.struct ; +arrays assocs byte-arrays classes.struct combinators +combinators.short-circuit game.input +game.input.dinput.keys-array kernel locals math math.bitwise +math.rectangles namespaces sequences specialized-arrays +ui.backend.windows vectors windows.com windows.directx.dinput +windows.directx.dinput.constants windows.errors windows.kernel32 +windows.messages windows.ole32 windows.user32 ; SPECIALIZED-ARRAY: DIDEVICEOBJECTDATA IN: game.input.dinput diff --git a/basis/io/monitors/windows/windows.factor b/basis/io/monitors/windows/windows.factor index 4c99ca18c8..958fa3ed3a 100644 --- a/basis/io/monitors/windows/windows.factor +++ b/basis/io/monitors/windows/windows.factor @@ -2,7 +2,7 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors alien alien.data arrays classes.struct combinators continuations destructors fry io.backend -io.encodings.string io.encodings.utf16n io.files.windows +io.encodings.string io.encodings.utf16 io.files.windows io.monitors io.pathnames io.ports kernel literals locals make math sequences system threads windows.errors windows.kernel32 windows.types ; diff --git a/basis/random/unix/unix.factor b/basis/random/unix/unix.factor index ffddde9f5b..6e662d78a2 100644 --- a/basis/random/unix/unix.factor +++ b/basis/random/unix/unix.factor @@ -14,6 +14,7 @@ M: unix-random dispose reader>> dispose ; M: unix-random random-bytes* ( n tuple -- byte-array ) reader>> stream-read ; + HINTS: M\ unix-random random-bytes* { fixnum unix-random } ; [ diff --git a/basis/tools/ps/windows/windows.factor b/basis/tools/ps/windows/windows.factor index b1a3004ff1..00f93f0efa 100644 --- a/basis/tools/ps/windows/windows.factor +++ b/basis/tools/ps/windows/windows.factor @@ -1,7 +1,7 @@ USING: accessors alien alien.c-types alien.data alien.syntax arrays byte-arrays classes.struct combinators.short-circuit continuations destructors fry io io.encodings.string -io.encodings.utf16n kernel literals locals math sequences +io.encodings.utf16 kernel literals locals math sequences strings system tools.ps windows.errors windows.handles windows.kernel32 windows.ntdll windows.types ; IN: tools.ps.windows diff --git a/basis/ui/backend/cocoa/views/views.factor b/basis/ui/backend/cocoa/views/views.factor index 5ac61918eb..c8838748dc 100644 --- a/basis/ui/backend/cocoa/views/views.factor +++ b/basis/ui/backend/cocoa/views/views.factor @@ -11,7 +11,7 @@ ui.commands ui.gadgets ui.gadgets.private ui.gadgets.worlds ui.gestures ui.private words sorting math.vectors ui.baseline-alignment ui.gadgets.line-support ui.gadgets.editors ui.backend.cocoa.input-methods -ui.backend.cocoa.input-methods.editors io.encodings.utf16n +ui.backend.cocoa.input-methods.editors io.encodings.utf16 io.encodings.string classes.struct ; IN: ui.backend.cocoa.views @@ -195,7 +195,7 @@ IMPORT: NSAttributedString :: >codepoint-index ( str utf16-index -- codepoint-index ) 0 utf16-index 2 * str utf16n encode subseq utf16n decode length ; - + :: >utf16-index ( str codepoint-index -- utf16-index ) 0 codepoint-index str subseq utf16n encode length 2 / >integer ; diff --git a/basis/ui/backend/windows/windows.factor b/basis/ui/backend/windows/windows.factor index 7ab3297a63..2924517bca 100644 --- a/basis/ui/backend/windows/windows.factor +++ b/basis/ui/backend/windows/windows.factor @@ -3,7 +3,7 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors alien alien.data alien.strings arrays ascii assocs calendar classes classes.struct colors combinators continuations fry -io io.crlf io.encodings.utf16n kernel libc literals locals make math +io io.crlf io.encodings.utf16 kernel libc literals locals make math math.bitwise namespaces sequences sets specialized-arrays strings threads ui ui.backend ui.clipboards ui.event-loop ui.gadgets ui.gadgets.private ui.gadgets.worlds ui.gestures ui.pixel-formats diff --git a/basis/ui/text/core-text/core-text.factor b/basis/ui/text/core-text/core-text.factor index 38af6d8a9b..7b328e787b 100644 --- a/basis/ui/text/core-text/core-text.factor +++ b/basis/ui/text/core-text/core-text.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2009, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors cache core-graphics.types core-text -core-text.fonts io.encodings.string io.encodings.utf16n kernel +core-text.fonts io.encodings.string io.encodings.utf16 kernel locals math math.vectors namespaces sequences ui.text ui.text.private ; IN: ui.text.core-text diff --git a/basis/windows/dropfiles/dropfiles.factor b/basis/windows/dropfiles/dropfiles.factor index 128b0ae185..8637e1335b 100644 --- a/basis/windows/dropfiles/dropfiles.factor +++ b/basis/windows/dropfiles/dropfiles.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2017-2018 Alexander Ilin. ! See http://factorcode.org/license.txt for BSD license. USING: accessors alien alien.data alien.libraries alien.strings -continuations fry init io.encodings.utf16n kernel literals math +continuations fry init io.encodings.utf16 kernel literals math namespaces sequences ui.backend.windows ui.gadgets.worlds ui.gestures windows.errors windows.messages windows.shell32 windows.types windows.user32 ; diff --git a/basis/windows/registry/registry-tests.factor b/basis/windows/registry/registry-tests.factor index 839f2eecd3..cf58533774 100644 --- a/basis/windows/registry/registry-tests.factor +++ b/basis/windows/registry/registry-tests.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2010 Doug Coleman. ! Copyright (C) 2018 Alexander Ilin. ! See http://factorcode.org/license.txt for BSD license. -USING: byte-arrays io.encodings.string io.encodings.utf16n +USING: byte-arrays io.encodings.string io.encodings.utf16 kernel sequences tools.test windows.advapi32 windows.kernel32 windows.registry ; IN: windows.registry.tests diff --git a/basis/windows/registry/registry.factor b/basis/windows/registry/registry.factor index be91098276..bf7e79754a 100644 --- a/basis/windows/registry/registry.factor +++ b/basis/windows/registry/registry.factor @@ -3,7 +3,7 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors alien.c-types alien.data byte-arrays classes.struct continuations io.encodings.string -io.encodings.utf16n kernel literals locals math sequences sets +io.encodings.utf16 kernel literals locals math sequences sets splitting windows windows.advapi32 windows.errors windows.kernel32 windows.time windows.types ; IN: windows.registry diff --git a/basis/windows/types/types.factor b/basis/windows/types/types.factor index 3b4b8c70c3..af25decc5e 100644 --- a/basis/windows/types/types.factor +++ b/basis/windows/types/types.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2005, 2006 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. USING: alien.c-types alien.syntax classes.struct colors -io.encodings.utf16n io.encodings.utf8 kernel math math.bitwise +io.encodings.utf16 io.encodings.utf8 kernel math math.bitwise math.vectors sequences ; FROM: alien.c-types => float short ; IN: windows.types diff --git a/basis/windows/uniscribe/uniscribe.factor b/basis/windows/uniscribe/uniscribe.factor index 252163e332..068e443a13 100644 --- a/basis/windows/uniscribe/uniscribe.factor +++ b/basis/windows/uniscribe/uniscribe.factor @@ -3,7 +3,7 @@ USING: accessors alien.c-types alien.data arrays assocs byte-arrays cache classes.struct colors colors.constants combinators destructors fonts images init io.encodings.string -io.encodings.utf16n kernel literals locals math math.bitwise +io.encodings.utf16 kernel literals locals math math.bitwise namespaces sequences specialized-arrays windows.errors windows.fonts windows.gdi32 windows.offscreen windows.ole32 windows.types windows.usp10 ; diff --git a/core/alien/alien-docs.factor b/core/alien/alien-docs.factor index 545fe0b9f1..b7ccd9c478 100644 --- a/core/alien/alien-docs.factor +++ b/core/alien/alien-docs.factor @@ -1,6 +1,6 @@ USING: alien.accessors alien.c-types alien.libraries alien.strings alien.syntax byte-arrays cpu.x86 eval help.markup help.syntax io -io.backend io.encodings.utf16n io.encodings.utf8 kernel math +io.backend io.encodings.utf16 io.encodings.utf8 kernel math quotations sequences system ; IN: alien diff --git a/core/alien/strings/strings-tests.factor b/core/alien/strings/strings-tests.factor index 03d29738be..d9739294b9 100644 --- a/core/alien/strings/strings-tests.factor +++ b/core/alien/strings/strings-tests.factor @@ -1,5 +1,5 @@ USING: alien.strings alien.c-types alien.data tools.test -kernel libc io.encodings.utf8 io.encodings.utf16 io.encodings.utf16n +kernel libc io.encodings.utf8 io.encodings.utf16 io.encodings.ascii alien io.encodings.string io.encodings.latin1 ; { "\u0000ff" } diff --git a/core/alien/strings/strings.factor b/core/alien/strings/strings.factor index 2a4b3d9ebc..cceed2f8af 100644 --- a/core/alien/strings/strings.factor +++ b/core/alien/strings/strings.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2008, 2011 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors alien arrays byte-arrays byte-vectors init io -io.encodings io.encodings.ascii io.encodings.utf16n +io.encodings io.encodings.ascii io.encodings.utf16 io.encodings.utf8 io.streams.memory kernel kernel.private math namespaces sequences sequences.private strings strings.private system system.private ; diff --git a/core/io/encodings/utf16/utf16-docs.factor b/core/io/encodings/utf16/utf16-docs.factor index 4e8e778edf..5ef968a97b 100644 --- a/core/io/encodings/utf16/utf16-docs.factor +++ b/core/io/encodings/utf16/utf16-docs.factor @@ -9,6 +9,7 @@ ARTICLE: "io.encodings.utf16" "UTF-16 encoding" utf16 utf16le utf16be + utf16n } ; ABOUT: "io.encodings.utf16" @@ -25,4 +26,8 @@ HELP: utf16 { $class-description "The encoding descriptor for UTF-16, that is, UTF-16 with a byte order mark. This is the most useful for general input and output in UTF-16. Streams can be made which read or write wth this encoding." } { $see-also "encodings-introduction" } ; -{ utf16 utf16le utf16be } related-words +HELP: utf16n +{ $description "The encoding descriptor for UTF-16 without a byte order mark in native endian order. This is useful mostly for FFI calls which take input of strings of the type " { $snippet "wchar_t*" } "." } +{ $see-also "encodings-introduction" } ; + +{ utf16 utf16le utf16be utf16n } related-words diff --git a/core/io/encodings/utf16/utf16.factor b/core/io/encodings/utf16/utf16.factor index 112667575b..e844ff2afe 100644 --- a/core/io/encodings/utf16/utf16.factor +++ b/core/io/encodings/utf16/utf16.factor @@ -1,9 +1,8 @@ ! Copyright (C) 2006, 2009 Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors byte-arrays combinators io io.binary -io.encodings kernel math math.private namespaces sbufs -sequences sequences.private splitting strings strings.private -vectors ; +USING: accessors alien.accessors byte-arrays io io.binary +io.encodings kernel math math.private sequences +sequences.private strings strings.private ; IN: io.encodings.utf16 SINGLETON: utf16be @@ -161,4 +160,8 @@ M: utf16 ( stream utf16 -- decoder ) M: utf16 ( stream utf16 -- encoder ) drop bom-le over stream-write utf16le ; +: le? ( -- ? ) B{ 1 0 0 0 } 0 alien-unsigned-4 1 = ; foldable + PRIVATE> + +: utf16n ( -- value ) le? utf16le utf16be ? ; diff --git a/core/io/encodings/utf16n/authors.txt b/core/io/encodings/utf16n/authors.txt deleted file mode 100644 index f990dd0ed2..0000000000 --- a/core/io/encodings/utf16n/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Daniel Ehrenberg diff --git a/core/io/encodings/utf16n/summary.txt b/core/io/encodings/utf16n/summary.txt deleted file mode 100644 index 4d94d1bbdb..0000000000 --- a/core/io/encodings/utf16n/summary.txt +++ /dev/null @@ -1 +0,0 @@ -UTF16 encoding with native byte order diff --git a/core/io/encodings/utf16n/utf16n-docs.factor b/core/io/encodings/utf16n/utf16n-docs.factor deleted file mode 100644 index 9ccf4834d4..0000000000 --- a/core/io/encodings/utf16n/utf16n-docs.factor +++ /dev/null @@ -1,6 +0,0 @@ -USING: help.markup help.syntax ; -IN: io.encodings.utf16n - -HELP: utf16n -{ $class-description "The encoding descriptor for UTF-16 without a byte order mark in native endian order. This is useful mostly for FFI calls which take input of strings of the type wchar_t*" } -{ $see-also "encodings-introduction" } ; diff --git a/core/io/encodings/utf16n/utf16n-tests.factor b/core/io/encodings/utf16n/utf16n-tests.factor deleted file mode 100644 index c76e090ae9..0000000000 --- a/core/io/encodings/utf16n/utf16n-tests.factor +++ /dev/null @@ -1,9 +0,0 @@ -USING: accessors alien.data io.encodings.utf16 -io.encodings.utf16n io.streams.byte-array kernel tools.test ; -IN: io.encodings.utf16n.tests - -: correct-endian ( obj -- ? ) - code>> little-endian? [ utf16le = ] [ utf16be = ] if ; - -{ t } [ B{ } utf16n correct-endian ] unit-test -{ t } [ utf16n correct-endian ] unit-test diff --git a/core/io/encodings/utf16n/utf16n.factor b/core/io/encodings/utf16n/utf16n.factor deleted file mode 100644 index 6e178c1774..0000000000 --- a/core/io/encodings/utf16n/utf16n.factor +++ /dev/null @@ -1,15 +0,0 @@ -! Copyright (C) 2008 Slava Pestov. -! See http://factorcode.org/license.txt for BSD license. -USING: io.encodings io.encodings.utf16 kernel alien.accessors ; -IN: io.encodings.utf16n - -! Native-order UTF-16 - -SINGLETON: utf16n - -: choose-utf16-endian ( -- descriptor ) - B{ 1 0 0 0 } 0 alien-unsigned-4 1 = utf16le utf16be ? ; foldable - -M: utf16n drop choose-utf16-endian ; - -M: utf16n drop choose-utf16-endian ; -- 2.34.1