From 41db42a5714819ab271ba04fae547a226fd7e47d Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 6 Aug 2019 07:12:55 -0700 Subject: [PATCH] Revert "io.encodings.utf16: add a utf16n word for native utf16 type." This reverts commit ad24fa414fa0a6b0d8f651717139fae0f534cce2. --- 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, 67 insertions(+), 41 deletions(-) create mode 100644 core/io/encodings/utf16n/authors.txt create mode 100644 core/io/encodings/utf16n/summary.txt create mode 100644 core/io/encodings/utf16n/utf16n-docs.factor create mode 100644 core/io/encodings/utf16n/utf16n-tests.factor create mode 100644 core/io/encodings/utf16n/utf16n.factor diff --git a/basis/bootstrap/stage2.factor b/basis/bootstrap/stage2.factor index 8ff0d37d59..3ec2024827 100644 --- a/basis/bootstrap/stage2.factor +++ b/basis/bootstrap/stage2.factor @@ -13,8 +13,10 @@ SYMBOL: bootstrap-time : strip-encodings ( -- ) os unix? [ [ - P" resource:core/io/encodings/utf16/utf16.factor" forget - "io.encodings.utf16" loaded-child-vocab-names [ forget-vocab ] each + 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@ ] with-compilation-unit ] when ; diff --git a/basis/core-text/core-text.factor b/basis/core-text/core-text.factor index 44d55f5fcd..7e96b8b570 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 io.encodings.string io.encodings.utf16 kernel locals -make math math.functions math.order math.vectors memoize -namespaces sequences strings ; +fonts init kernel locals make math math.functions math.order +math.vectors memoize namespaces sequences strings +io.encodings.utf16n io.encodings.string ; IN: core-text TYPEDEF: void* CTLineRef diff --git a/basis/environment/windows/windows.factor b/basis/environment/windows/windows.factor index 888a341aff..d3a4a3f437 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.utf16 kernel +USING: alien.strings fry io.encodings.utf16n 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 939db437d8..78b8ac5444 100644 --- a/basis/game/input/dinput/dinput.factor +++ b/basis/game/input/dinput/dinput.factor @@ -1,11 +1,12 @@ USING: accessors alien alien.c-types alien.data alien.strings -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 ; +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 ; SPECIALIZED-ARRAY: DIDEVICEOBJECTDATA IN: game.input.dinput diff --git a/basis/io/monitors/windows/windows.factor b/basis/io/monitors/windows/windows.factor index 958fa3ed3a..4c99ca18c8 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.utf16 io.files.windows +io.encodings.string io.encodings.utf16n 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 6e662d78a2..ffddde9f5b 100644 --- a/basis/random/unix/unix.factor +++ b/basis/random/unix/unix.factor @@ -14,7 +14,6 @@ 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 00f93f0efa..b1a3004ff1 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.utf16 kernel literals locals math sequences +io.encodings.utf16n 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 c8838748dc..5ac61918eb 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.utf16 +ui.backend.cocoa.input-methods.editors io.encodings.utf16n 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 2924517bca..7ab3297a63 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.utf16 kernel libc literals locals make math +io io.crlf io.encodings.utf16n 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 7b328e787b..38af6d8a9b 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.utf16 kernel +core-text.fonts io.encodings.string io.encodings.utf16n 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 8637e1335b..128b0ae185 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.utf16 kernel literals math +continuations fry init io.encodings.utf16n 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 cf58533774..839f2eecd3 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.utf16 +USING: byte-arrays io.encodings.string io.encodings.utf16n 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 bf7e79754a..be91098276 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.utf16 kernel literals locals math sequences sets +io.encodings.utf16n 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 af25decc5e..3b4b8c70c3 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.utf16 io.encodings.utf8 kernel math math.bitwise +io.encodings.utf16n 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 068e443a13..252163e332 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.utf16 kernel literals locals math math.bitwise +io.encodings.utf16n 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 b7ccd9c478..545fe0b9f1 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.utf16 io.encodings.utf8 kernel math +io.backend io.encodings.utf16n 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 d9739294b9..03d29738be 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 +kernel libc io.encodings.utf8 io.encodings.utf16 io.encodings.utf16n 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 cceed2f8af..2a4b3d9ebc 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.utf16 +io.encodings io.encodings.ascii io.encodings.utf16n 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 5ef968a97b..4e8e778edf 100644 --- a/core/io/encodings/utf16/utf16-docs.factor +++ b/core/io/encodings/utf16/utf16-docs.factor @@ -9,7 +9,6 @@ ARTICLE: "io.encodings.utf16" "UTF-16 encoding" utf16 utf16le utf16be - utf16n } ; ABOUT: "io.encodings.utf16" @@ -26,8 +25,4 @@ 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" } ; -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 +{ utf16 utf16le utf16be } related-words diff --git a/core/io/encodings/utf16/utf16.factor b/core/io/encodings/utf16/utf16.factor index e844ff2afe..112667575b 100644 --- a/core/io/encodings/utf16/utf16.factor +++ b/core/io/encodings/utf16/utf16.factor @@ -1,8 +1,9 @@ ! Copyright (C) 2006, 2009 Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors alien.accessors byte-arrays io io.binary -io.encodings kernel math math.private sequences -sequences.private strings strings.private ; +USING: accessors byte-arrays combinators io io.binary +io.encodings kernel math math.private namespaces sbufs +sequences sequences.private splitting strings strings.private +vectors ; IN: io.encodings.utf16 SINGLETON: utf16be @@ -160,8 +161,4 @@ 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 new file mode 100644 index 0000000000..f990dd0ed2 --- /dev/null +++ b/core/io/encodings/utf16n/authors.txt @@ -0,0 +1 @@ +Daniel Ehrenberg diff --git a/core/io/encodings/utf16n/summary.txt b/core/io/encodings/utf16n/summary.txt new file mode 100644 index 0000000000..4d94d1bbdb --- /dev/null +++ b/core/io/encodings/utf16n/summary.txt @@ -0,0 +1 @@ +UTF16 encoding with native byte order diff --git a/core/io/encodings/utf16n/utf16n-docs.factor b/core/io/encodings/utf16n/utf16n-docs.factor new file mode 100644 index 0000000000..9ccf4834d4 --- /dev/null +++ b/core/io/encodings/utf16n/utf16n-docs.factor @@ -0,0 +1,6 @@ +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 new file mode 100644 index 0000000000..c76e090ae9 --- /dev/null +++ b/core/io/encodings/utf16n/utf16n-tests.factor @@ -0,0 +1,9 @@ +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 new file mode 100644 index 0000000000..6e178c1774 --- /dev/null +++ b/core/io/encodings/utf16n/utf16n.factor @@ -0,0 +1,15 @@ +! 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