From 65bc8f9fe3034b43c49dc69b2bfd575dfa203043 Mon Sep 17 00:00:00 2001 From: LindseyB Date: Sat, 8 May 2010 01:45:12 -0400 Subject: [PATCH] Nope. Phobos does not like the runtime implementation. The tests will run and succeed, except the runtime tests while fail because, golly gee, the runtime in phobos is wrong. Sigh. Added some foo in the Directory Scaffold for windows. --- Makefile | 2 +- platform/win/platform/vars/cui.d | 33 +++++++++++++++++++++++++++++++ platform/win/scaffold/directory.d | 11 +++++++++-- spec/itemspecification.d | 1 - spec/modulespecification.d | 2 -- 5 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 platform/win/platform/vars/cui.d diff --git a/Makefile b/Makefile index f5612ad9..5fca5128 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ DFILES_LOCALES = locales/en_us.d locales/fr_fr.d locales/all.d DFILES_CORE = core/date.d core/locale.d core/variant.d core/exception.d core/event.d core/library.d core/system.d core/regex.d core/arguments.d core/definitions.d core/application.d core/time.d core/timezone.d core/unicode.d core/endian.d core/stream.d core/string.d core/main.d core/color.d DFILES_GUI = gui/container.d gui/trackbar.d gui/radiogroup.d gui/progressbar.d gui/togglefield.d gui/listfield.d gui/listbox.d gui/vscrollbar.d gui/hscrollbar.d gui/button.d gui/textfield.d gui/window.d gui/widget.d gui/application.d DFILES_DATA = data/stack.d data/queue.d data/queue2.d data/fibonacci.d data/heap.d data/list.d data/iterable.d -DFILES_RUNTIME = runtime/array.d runtime/apply.d runtime/lifetime.d +DFILES_RUNTIME = #runtime/array.d #runtime/apply.d runtime/lifetime.d DFILES_PARSING = parsing/d/trees.d parsing/d/addexprunit.d parsing/d/andexprunit.d parsing/d/assignexprunit.d parsing/d/blockstmtunit.d parsing/d/switchstmtunit.d parsing/d/casestmtunit.d parsing/d/defaultstmtunit.d parsing/d/breakstmtunit.d parsing/d/continuestmtunit.d parsing/d/gotostmtunit.d parsing/d/returnstmtunit.d parsing/d/volatilestmtunit.d parsing/d/throwstmtunit.d parsing/d/postfixexprlistunit.d parsing/d/cmpexprunit.d parsing/d/conditionalexprunit.d parsing/d/declarationunit.d parsing/d/expressionunit.d parsing/d/importdeclunit.d parsing/d/isexprunit.d parsing/d/lexer.d parsing/d/logicalandexprunit.d parsing/d/logicalorexprunit.d parsing/d/moduledeclunit.d parsing/d/moduleunit.d parsing/d/mulexprunit.d parsing/d/nodes.d parsing/d/orexprunit.d parsing/d/parser.d parsing/d/postfixexprunit.d parsing/d/primaryexprunit.d parsing/d/shiftexprunit.d parsing/d/staticunit.d parsing/d/declaratorunit.d parsing/d/declaratorsuffixunit.d parsing/d/declaratortypeunit.d parsing/d/tokens.d parsing/d/enumdeclunit.d parsing/d/typeunit.d parsing/d/enumbodyunit.d parsing/d/aggregatedeclunit.d parsing/d/aggregatebodyunit.d parsing/d/classbodyunit.d parsing/d/templatebodyunit.d parsing/d/interfacebodyunit.d parsing/d/classdeclunit.d parsing/d/interfacedeclunit.d parsing/d/constructorunit.d parsing/d/destructorunit.d parsing/d/parameterlistunit.d parsing/d/functionbodyunit.d parsing/d/staticifunit.d parsing/d/versionunit.d parsing/d/debugunit.d parsing/d/unittestunit.d parsing/d/parameterunit.d parsing/d/basictypeunit.d parsing/d/statementunit.d parsing/d/pragmastmtunit.d parsing/d/staticassertunit.d parsing/d/foreachstmtunit.d parsing/d/scopedstmtunit.d parsing/d/forstmtunit.d parsing/d/typedeclarationunit.d parsing/d/unaryexprunit.d parsing/d/xorexprunit.d parsing/ast.d parsing/lexer.d parsing/token.d parsing/parser.d parsing/options.d parsing/cfg.d parsing/parseunit.d DFILES = djehuty.d DFILES_BINARY_CODECS = decoders/binary/decoder.d decoders/binary/base64.d decoders/binary/yEnc.d decoders/binary/deflate.d decoders/binary/zlib.d diff --git a/platform/win/platform/vars/cui.d b/platform/win/platform/vars/cui.d new file mode 100644 index 00000000..dc994650 --- /dev/null +++ b/platform/win/platform/vars/cui.d @@ -0,0 +1,33 @@ +/* + * cui.d + * + * This module contains state information for a cui app for Windows. + * + * Author: Dave Wilkinson + * Originated: August 17th 2009 + * + */ + +module platform.vars.cui; + +import core.definitions; + +import synch.thread; + +import data.queue; + +import platform.win.common; + +struct CuiPlatformVars { + // Window resize thread + Thread t; + + // Standard in and out + HANDLE stdin; + HANDLE stdout; + + // Input state + INPUT_RECORD irInBuf[128]; + + Queue!(CuiEvent) events; +} \ No newline at end of file diff --git a/platform/win/scaffold/directory.d b/platform/win/scaffold/directory.d index 2dc983f8..f145d281 100644 --- a/platform/win/scaffold/directory.d +++ b/platform/win/scaffold/directory.d @@ -25,17 +25,22 @@ import io.console; import io.file; bool DirectoryOpen(ref DirectoryPlatformVars dirVars, ref string path) { + if (DirectoryFileIsDir(path)) { + return true; + } + return false; } bool DirectoryCreate(ref DirectoryPlatformVars dirVars, ref string path) { - wchar[] dirPath = Unicode.toUtf16(path); + wchar[] strArr = _ConvertFrameworkPath(Unicode.toUtf16(path)); + strArr ~= '\0'; if (DirectoryFileIsDir(path)) { return false; } - if(CreateDirectoryW(dirPath.ptr,null) != 0){ + if(CreateDirectoryW(strArr.ptr,null) != 0){ return true; } @@ -486,6 +491,8 @@ string[] DirectoryList(ref DirectoryPlatformVars dirVars, string path) { // Retrieve next item in the directory cont = FindNextFileW(h, &ffd) > 0; } + + Console.putln("HELLO?", list); DirectoryClose(dirVars); return list; diff --git a/spec/itemspecification.d b/spec/itemspecification.d index 431539cc..9ecb8be2 100644 --- a/spec/itemspecification.d +++ b/spec/itemspecification.d @@ -10,7 +10,6 @@ module spec.itemspecification; -import spec.support : describe, done; import spec.logic; import djehuty; diff --git a/spec/modulespecification.d b/spec/modulespecification.d index 1b81c2e6..cd581061 100644 --- a/spec/modulespecification.d +++ b/spec/modulespecification.d @@ -11,8 +11,6 @@ module spec.modulespecification; import spec.itemspecification; -import spec.support : describe, done; - import djehuty; import io.console;