From 1d232876783c0ef733cdccf48656b8dd646a1f3d Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Tue, 13 Jan 2009 18:57:09 -0600 Subject: [PATCH 01/19] remove "pipe" from word name --- basis/io/files/windows/windows.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/io/files/windows/windows.factor b/basis/io/files/windows/windows.factor index 842f1ec84c..444ba98c7d 100755 --- a/basis/io/files/windows/windows.factor +++ b/basis/io/files/windows/windows.factor @@ -15,7 +15,7 @@ IN: io.files.windows CreateFile-flags f CreateFile opened-file ] with-destructors ; -: open-pipe-r/w ( path -- win32-file ) +: open-r/w ( path -- win32-file ) { GENERIC_READ GENERIC_WRITE } flags OPEN_EXISTING 0 open-file ; From d823516b72742cd006311dc421e5076b04ffffb5 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Tue, 13 Jan 2009 18:58:47 -0600 Subject: [PATCH 02/19] more kernel32 bindings --- basis/windows/kernel32/kernel32.factor | 286 +++++++++++++++++++++++-- 1 file changed, 272 insertions(+), 14 deletions(-) diff --git a/basis/windows/kernel32/kernel32.factor b/basis/windows/kernel32/kernel32.factor index c38b5f94ca..731efa9b25 100755 --- a/basis/windows/kernel32/kernel32.factor +++ b/basis/windows/kernel32/kernel32.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2005, 2006 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: alien alien.syntax kernel windows.types ; +USING: alien alien.syntax kernel windows.types multiline ; IN: windows.kernel32 CONSTANT: MAX_PATH 260 @@ -197,6 +197,19 @@ CONSTANT: THREAD_PRIORITY_LOWEST -2 CONSTANT: THREAD_PRIORITY_NORMAL 0 CONSTANT: THREAD_PRIORITY_TIME_CRITICAL 15 +C-ENUM: + ComputerNameNetBIOS + ComputerNameDnsHostname + ComputerNameDnsDomain + ComputerNameDnsFullyQualified + ComputerNamePhysicalNetBIOS + ComputerNamePhysicalDnsHostname + ComputerNamePhysicalDnsDomain + ComputerNamePhysicalDnsFullyQualified + ComputerNameMax ; + +TYPEDEF: uint COMPUTER_NAME_FORMAT + C-STRUCT: OVERLAPPED { "UINT_PTR" "internal" } { "UINT_PTR" "internal-high" } @@ -319,6 +332,249 @@ C-STRUCT: GUID { "WORD" "Data3" } { { "UCHAR" 8 } "Data4" } ; +/* + fBinary :1; + fParity :1; + fOutxCtsFlow :1; + fOutxDsrFlow :1; + fDtrControl :2; + fDsrSensitivity :1; + fTXContinueOnXoff :1; + fOutX :1; + fInX :1; + fErrorChar :1; + fNull :1; + fRtsControl :2; + fAbortOnError :1; + fDummy2 :17; +*/ + +CONSTANT: SP_SERIALCOMM HEX: 1 +CONSTANT: BAUD_075 HEX: 1 +CONSTANT: BAUD_110 HEX: 2 +CONSTANT: BAUD_134_5 HEX: 4 +CONSTANT: BAUD_150 HEX: 8 +CONSTANT: BAUD_300 HEX: 10 +CONSTANT: BAUD_600 HEX: 20 +CONSTANT: BAUD_1200 HEX: 40 +CONSTANT: BAUD_1800 HEX: 80 +CONSTANT: BAUD_2400 HEX: 100 +CONSTANT: BAUD_4800 HEX: 200 +CONSTANT: BAUD_7200 HEX: 400 +CONSTANT: BAUD_9600 HEX: 800 +CONSTANT: BAUD_14400 HEX: 1000 +CONSTANT: BAUD_19200 HEX: 2000 +CONSTANT: BAUD_38400 HEX: 4000 +CONSTANT: BAUD_56K HEX: 8000 +CONSTANT: BAUD_57600 HEX: 40000 +CONSTANT: BAUD_115200 HEX: 20000 +CONSTANT: BAUD_128K HEX: 10000 +CONSTANT: BAUD_USER HEX: 10000000 +CONSTANT: PST_FAX HEX: 21 +CONSTANT: PST_LAT HEX: 101 +CONSTANT: PST_MODEM HEX: 6 +CONSTANT: PST_NETWORK_BRIDGE HEX: 100 +CONSTANT: PST_PARALLELPORT HEX: 2 +CONSTANT: PST_RS232 HEX: 1 +CONSTANT: PST_RS422 HEX: 3 +CONSTANT: PST_RS423 HEX: 4 +CONSTANT: PST_RS449 HEX: 5 +CONSTANT: PST_SCANNER HEX: 22 +CONSTANT: PST_TCPIP_TELNET HEX: 102 +CONSTANT: PST_UNSPECIFIED 0 +CONSTANT: PST_X25 HEX: 103 +CONSTANT: PCF_16BITMODE HEX: 200 +CONSTANT: PCF_DTRDSR HEX: 1 +CONSTANT: PCF_INTTIMEOUTS HEX: 80 +CONSTANT: PCF_PARITY_CHECK HEX: 8 +CONSTANT: PCF_RLSD HEX: 4 +CONSTANT: PCF_RTSCTS HEX: 2 +CONSTANT: PCF_SETXCHAR HEX: 20 +CONSTANT: PCF_SPECIALCHARS HEX: 100 +CONSTANT: PCF_TOTALTIMEOUTS HEX: 40 +CONSTANT: PCF_XONXOFF HEX: 10 +CONSTANT: SP_BAUD HEX: 2 +CONSTANT: SP_DATABITS HEX: 4 +CONSTANT: SP_HANDSHAKING HEX: 10 +CONSTANT: SP_PARITY HEX: 1 +CONSTANT: SP_PARITY_CHECK HEX: 20 +CONSTANT: SP_RLSD HEX: 40 +CONSTANT: SP_STOPBITS HEX: 8 +CONSTANT: DATABITS_5 1 +CONSTANT: DATABITS_6 2 +CONSTANT: DATABITS_7 4 +CONSTANT: DATABITS_8 8 +CONSTANT: DATABITS_16 16 +CONSTANT: DATABITS_16X 32 +CONSTANT: STOPBITS_10 1 +CONSTANT: STOPBITS_15 2 +CONSTANT: STOPBITS_20 4 +CONSTANT: PARITY_NONE 256 +CONSTANT: PARITY_ODD 512 +CONSTANT: PARITY_EVEN 1024 +CONSTANT: PARITY_MARK 2048 +CONSTANT: PARITY_SPACE 4096 +CONSTANT: COMMPROP_INITIALIZED HEX: e73cf52e + +CONSTANT: CBR_110 110 +CONSTANT: CBR_300 300 +CONSTANT: CBR_600 600 +CONSTANT: CBR_1200 1200 +CONSTANT: CBR_2400 2400 +CONSTANT: CBR_4800 4800 +CONSTANT: CBR_9600 9600 +CONSTANT: CBR_14400 14400 +CONSTANT: CBR_19200 19200 +CONSTANT: CBR_38400 38400 +CONSTANT: CBR_56000 56000 +CONSTANT: CBR_57600 57600 +CONSTANT: CBR_115200 115200 +CONSTANT: CBR_128000 128000 +CONSTANT: CBR_256000 256000 +CONSTANT: DTR_CONTROL_DISABLE 0 +CONSTANT: DTR_CONTROL_ENABLE 1 +CONSTANT: DTR_CONTROL_HANDSHAKE 2 +CONSTANT: RTS_CONTROL_DISABLE 0 +CONSTANT: RTS_CONTROL_ENABLE 1 +CONSTANT: RTS_CONTROL_HANDSHAKE 2 +CONSTANT: RTS_CONTROL_TOGGLE 3 +CONSTANT: EVENPARITY 2 +CONSTANT: MARKPARITY 3 +CONSTANT: NOPARITY 0 +CONSTANT: ODDPARITY 1 +CONSTANT: SPACEPARITY 4 +CONSTANT: ONESTOPBIT 0 +CONSTANT: ONE5STOPBITS 1 +CONSTANT: TWOSTOPBITS 2 + +! Flowcontrol bit mask in DCB +CONSTANT: FM_fBinary HEX: 1 +CONSTANT: FM_fParity HEX: 2 +CONSTANT: FM_fOutxCtsFlow HEX: 4 +CONSTANT: FM_fOutxDsrFlow HEX: 8 +CONSTANT: FM_fDtrControl HEX: 30 +CONSTANT: FM_fDsrSensitivity HEX: 40 +CONSTANT: FM_fTXContinueOnXoff HEX: 80 +CONSTANT: FM_fOutX HEX: 100 +CONSTANT: FM_fInX HEX: 200 +CONSTANT: FM_fErrorChar HEX: 400 +CONSTANT: FM_fNull HEX: 800 +CONSTANT: FM_fRtsControl HEX: 3000 +CONSTANT: FM_fAbortOnError HEX: 4000 +CONSTANT: FM_fDummy2 HEX: ffff8000 + +CONSTANT: BM_fCtsHold HEX: 1 +CONSTANT: BM_fDsrHold HEX: 2 +CONSTANT: BM_fRlsdHold HEX: 4 +CONSTANT: BM_fXoffHold HEX: 8 +CONSTANT: BM_fXoffSent HEX: 10 +CONSTANT: BM_fEof HEX: 20 +CONSTANT: BM_fTxim HEX: 40 +CONSTANT: BM_AllBits HEX: 7f + +! PurgeComm bit mask +CONSTANT: PURGE_TXABORT HEX: 1 +CONSTANT: PURGE_RXABORT HEX: 2 +CONSTANT: PURGE_TXCLEAR HEX: 4 +CONSTANT: PURGE_RXCLEAR HEX: 8 + +! GetCommModemStatus bit mask +CONSTANT: MS_CTS_ON HEX: 10 +CONSTANT: MS_DSR_ON HEX: 20 +CONSTANT: MS_RING_ON HEX: 40 +CONSTANT: MS_RLSD_ON HEX: 80 + +! EscapeCommFunction operations +CONSTANT: SETXOFF HEX: 1 +CONSTANT: SETXON HEX: 2 +CONSTANT: SETRTS HEX: 3 +CONSTANT: CLRRTS HEX: 4 +CONSTANT: SETDTR HEX: 5 +CONSTANT: CLRDTR HEX: 6 +CONSTANT: SETBREAK HEX: 8 +CONSTANT: CLRBREAK HEX: 9 + +! ClearCommError bit mask +CONSTANT: CE_RXOVER HEX: 1 +CONSTANT: CE_OVERRUN HEX: 2 +CONSTANT: CE_RXPARITY HEX: 4 +CONSTANT: CE_FRAME HEX: 8 +CONSTANT: CE_BREAK HEX: 10 +CONSTANT: CE_TXFULL HEX: 100 +! LPT only +CONSTANT: CE_PTO HEX: 200 +CONSTANT: CE_IOE HEX: 400 +CONSTANT: CE_DNS HEX: 800 +CONSTANT: CE_OOP HEX: 1000 +! LPT only +CONSTANT: CE_MODE HEX: 8000 + +! GetCommMask bits +CONSTANT: EV_RXCHAR HEX: 1 +CONSTANT: EV_RXFLAG HEX: 2 +CONSTANT: EV_TXEMPTY HEX: 4 +CONSTANT: EV_CTS HEX: 8 +CONSTANT: EV_DSR HEX: 10 +CONSTANT: EV_RLSD HEX: 20 +CONSTANT: EV_BREAK HEX: 40 +CONSTANT: EV_ERR HEX: 80 +CONSTANT: EV_RING HEX: 100 +CONSTANT: EV_PERR HEX: 200 +CONSTANT: EV_RX80FULL HEX: 400 +CONSTANT: EV_EVENT1 HEX: 800 +CONSTANT: EV_EVENT2 HEX: 1000 + +C-STRUCT: DCB + { "DWORD" "DCBlength" } + { "DWORD" "BaudRate" } + { "DWORD" "flags" } + { "WORD" "wReserved" } + { "WORD" "XonLim" } + { "WORD" "XoffLim" } + { "BYTE" "ByteSize" } + { "BYTE" "Parity" } + { "BYTE" "StopBits" } + { "char" "XonChar" } + { "char" "XoffChar" } + { "char" "ErrorChar" } + { "char" "EofChar" } + { "char" "EvtChar" } + { "WORD" "wReserved1" } ; +TYPEDEF: DCB* PDCB +TYPEDEF: DCB* LPDCB + +C-STRUCT: COMM_CONFIG + { "DWORD" "dwSize" } + { "WORD" "wVersion" } + { "WORD" "wReserved" } + { "DCB" "dcb" } + { "DWORD" "dwProviderSubType" } + { "DWORD" "dwProviderOffset" } + { "DWORD" "dwProviderSize" } + { { "WCHAR" 1 } "wcProviderData" } ; +TYPEDEF: COMMCONFIG* LPCOMMCONFIG + +C-STRUCT: COMMPROP + { "WORD" "wPacketLength" } + { "WORD" "wPacketVersion" } + { "DWORD" "dwServiceMask" } + { "DWORD" "dwReserved1" } + { "DWORD" "dwMaxTxQueue" } + { "DWORD" "dwMaxRxQueue" } + { "DWORD" "dwMaxBaud" } + { "DWORD" "dwProvSubType" } + { "DWORD" "dwProvCapabilities" } + { "DWORD" "dwSettableParams" } + { "DWORD" "dwSettableBaud" } + { "WORD" "wSettableData" } + { "WORD" "wSettableStopParity" } + { "DWORD" "dwCurrentTxQueue" } + { "DWORD" "dwCurrentRxQueue" } + { "DWORD" "dwProvSpec1" } + { "DWORD" "dwProvSpec2" } + { { "WCHAR" 1 } "wcProvChar" } ; +TYPEDEF: COMMPROP* LPCOMMPROP + CONSTANT: SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege" CONSTANT: SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege" @@ -875,19 +1131,19 @@ ALIAS: FreeEnvironmentStrings FreeEnvironmentStringsW ! FUNCTION: GetCalendarInfoW ! FUNCTION: GetCommandLineA ! FUNCTION: GetCommandLineW -! FUNCTION: GetCommConfig -! FUNCTION: GetCommMask -! FUNCTION: GetCommModemStatus -! FUNCTION: GetCommProperties -! FUNCTION: GetCommState +FUNCTION: BOOL GetCommConfig ( HANDLE hCommDev, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ) ; +FUNCTION: BOOL GetCommMask ( HANDLE hFile, LPDWORD lpEvtMask ) ; +FUNCTION: BOOL GetCommModemStatus ( HANDLE hFile, LPDWORD lpModemStat ) ; +FUNCTION: BOOL GetCommProperties ( HANDLE hFile, LPCOMMPROP lpCommProp ) ; +FUNCTION: BOOL GetCommState ( HANDLE hFile, LPDCB lpDCB ) ; ! FUNCTION: GetCommTimeouts ! FUNCTION: GetComPlusPackageInstallStatus ! FUNCTION: GetCompressedFileSizeA ! FUNCTION: GetCompressedFileSizeW FUNCTION: BOOL GetComputerNameW ( LPTSTR lpBuffer, LPDWORD lpnSize ) ; -! FUNCTION: GetComputerNameExW -! FUNCTION: GetComputerNameW ALIAS: GetComputerName GetComputerNameW +FUNCTION: BOOL GetComputerNameExW ( COMPUTER_NAME_FORMAT NameType, LPTSTR lpBuffer, LPDWORD lpnSize ) ; +ALIAS: GetComputerNameEx GetComputerNameExW ! FUNCTION: GetConsoleAliasA ! FUNCTION: GetConsoleAliasesA ! FUNCTION: GetConsoleAliasesLengthA @@ -942,7 +1198,8 @@ FUNCTION: HANDLE GetCurrentThread ( ) ; ! FUNCTION: GetDateFormatA ! FUNCTION: GetDateFormatW ! FUNCTION: GetDefaultCommConfigA -! FUNCTION: GetDefaultCommConfigW +FUNCTION: BOOL GetDefaultCommConfigW ( LPCTSTR lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ) ; +ALIAS: GetDefaultCommConfig GetDefaultCommConfigW ! FUNCTION: GetDefaultSortkeySize ! FUNCTION: GetDevicePowerState ! FUNCTION: GetDiskFreeSpaceA @@ -1400,10 +1657,10 @@ ALIAS: RemoveDirectory RemoveDirectoryW ! FUNCTION: SetCalendarInfoA ! FUNCTION: SetCalendarInfoW ! FUNCTION: SetClientTimeZoneInformation -! FUNCTION: SetCommBreak -! FUNCTION: SetCommConfig -! FUNCTION: SetCommMask -! FUNCTION: SetCommState +FUNCTION: BOOL SetCommBreak ( HANDLE hFile ) ; +FUNCTION: BOOL SetCommConfig ( HANDLE hCommDev, LPCOMMCONFIG lpCC, DWORD dwSize ) ; +FUNCTION: BOOL SetCommMask ( HANDLE hFile, DWORD dwEvtMask ) ; +FUNCTION: BOOL SetCommState ( HANDLE hFile, LPDCB lpDCB ) ; ! FUNCTION: SetCommTimeouts ! FUNCTION: SetComPlusPackageInstallStatus ! FUNCTION: SetComputerNameA @@ -1446,7 +1703,8 @@ ALIAS: SetConsoleTitle SetConsoleTitleW FUNCTION: BOOL SetCurrentDirectoryW ( LPCWSTR lpDirectory ) ; ALIAS: SetCurrentDirectory SetCurrentDirectoryW ! FUNCTION: SetDefaultCommConfigA -! FUNCTION: SetDefaultCommConfigW +FUNCTION: BOOL SetDefaultCommConfigW ( LPCTSTR lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ) ; +ALIAS: SetDefaultCommConfig SetDefaultCommConfigW ! FUNCTION: SetDllDirectoryA ! FUNCTION: SetDllDirectoryW FUNCTION: BOOL SetEndOfFile ( HANDLE hFile ) ; From afc76ecab0843289ace5a5a8ab388cd7d2058c37 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Tue, 13 Jan 2009 19:01:01 -0600 Subject: [PATCH 03/19] initial code for windows serial support --- extra/serial/serial.factor | 1 + extra/serial/windows/authors.txt | 0 extra/serial/windows/windows-tests.factor | 4 ++++ extra/serial/windows/windows.factor | 22 ++++++++++++++++++++++ 4 files changed, 27 insertions(+) create mode 100755 extra/serial/windows/authors.txt create mode 100755 extra/serial/windows/windows-tests.factor create mode 100755 extra/serial/windows/windows.factor diff --git a/extra/serial/serial.factor b/extra/serial/serial.factor index df304e0f04..96900fb6e4 100644 --- a/extra/serial/serial.factor +++ b/extra/serial/serial.factor @@ -20,4 +20,5 @@ M: serial dispose ( serial -- ) stream>> dispose ; { { [ os unix? ] [ "serial.unix" ] } + { [ os windows? ] [ "serial.windows" ] } } cond require diff --git a/extra/serial/windows/authors.txt b/extra/serial/windows/authors.txt new file mode 100755 index 0000000000..e69de29bb2 diff --git a/extra/serial/windows/windows-tests.factor b/extra/serial/windows/windows-tests.factor new file mode 100755 index 0000000000..bd67f77eae --- /dev/null +++ b/extra/serial/windows/windows-tests.factor @@ -0,0 +1,4 @@ +! Copyright (C) 2009 Your name. +! See http://factorcode.org/license.txt for BSD license. +USING: tools.test serial.windows ; +IN: serial.windows.tests diff --git a/extra/serial/windows/windows.factor b/extra/serial/windows/windows.factor new file mode 100755 index 0000000000..a80366cb9f --- /dev/null +++ b/extra/serial/windows/windows.factor @@ -0,0 +1,22 @@ +! Copyright (C) 2009 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: io.files.windows io.streams.duplex kernel math +math.bitwise windows.kernel32 accessors alien.c-types +windows io.files.windows fry locals continuations ; +IN: serial.windows + +: ( path encoding -- duplex ) + [ open-r/w dup ] dip ; + +: get-comm-state ( duplex -- dcb ) + in>> handle>> + "DCB" tuck + GetCommState win32-error=0/f ; + +: set-comm-state ( duplex dcb -- ) + [ in>> handle>> ] dip + SetCommState win32-error=0/f ; + +:: with-comm-state ( duplex quot: ( dcb -- ) -- ) + duplex get-comm-state :> dcb + dcb clone quot curry [ dcb set-comm-state ] recover ; inline From 585d977ed0efbfabcc32109e33ad116ae3bd0d38 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Tue, 13 Jan 2009 20:54:39 -0600 Subject: [PATCH 04/19] remove a couple comments from Config.windows files --- vm/Config.windows.nt.x86.32 | 1 - vm/Config.windows.nt.x86.64 | 2 -- 2 files changed, 3 deletions(-) diff --git a/vm/Config.windows.nt.x86.32 b/vm/Config.windows.nt.x86.32 index 603a7200ae..9a020a7bc1 100644 --- a/vm/Config.windows.nt.x86.32 +++ b/vm/Config.windows.nt.x86.32 @@ -1,4 +1,3 @@ WINDRES=windres include vm/Config.windows.nt include vm/Config.x86.32 -#error "lolllll" diff --git a/vm/Config.windows.nt.x86.64 b/vm/Config.windows.nt.x86.64 index 3ede556171..f0c0a068cb 100644 --- a/vm/Config.windows.nt.x86.64 +++ b/vm/Config.windows.nt.x86.64 @@ -1,5 +1,3 @@ -#WIN64_PATH=/k/MinGW/win64/bin -#WIN64_PATH=/cygdrive/k/MinGW/win64/bin/x86_64-pc-mingw32 CC=$(WIN64_PATH)-gcc.exe WINDRES=$(WIN64_PATH)-windres.exe include vm/Config.windows.nt From 65b1a62f6aa01b09c67af5362788b05aa84f98f0 Mon Sep 17 00:00:00 2001 From: James Cash Date: Tue, 13 Jan 2009 22:58:39 -0500 Subject: [PATCH 05/19] Fixes to v-checkbox --- basis/validators/validators-docs.factor | 2 +- basis/validators/validators.factor | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/basis/validators/validators-docs.factor b/basis/validators/validators-docs.factor index 67c9f4fceb..8f5a587569 100644 --- a/basis/validators/validators-docs.factor +++ b/basis/validators/validators-docs.factor @@ -3,7 +3,7 @@ strings math regexp regexp.backend ; IN: validators HELP: v-checkbox -{ $values { "str" string } } +{ $values { "str" string } { "?" "a boolean" } } { $description "Converts the string value of a checkbox component (either \"on\" or \"off\") to a boolean value." } ; HELP: v-captcha diff --git a/basis/validators/validators.factor b/basis/validators/validators.factor index 04c85cd6db..e49f608e94 100644 --- a/basis/validators/validators.factor +++ b/basis/validators/validators.factor @@ -2,11 +2,11 @@ ! See http://factorcode.org/license.txt for BSD license. USING: kernel continuations sequences math namespaces make sets math.parser math.ranges assocs regexp unicode.categories arrays -hashtables words classes quotations xmode.catalog ; +hashtables words classes quotations xmode.catalog unicode.case ; IN: validators : v-checkbox ( str -- ? ) - "on" = ; + >lower "on" = ; : v-default ( str def -- str/def ) over empty? spin ? ; From 6a8095c86dc37b05b641dff2080eca3e87721f72 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Wed, 14 Jan 2009 00:31:18 -0600 Subject: [PATCH 06/19] git-tool: Fix 'IN:' line --- extra/git-tool/git-tool.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extra/git-tool/git-tool.factor b/extra/git-tool/git-tool.factor index 1b079ed0ac..896c0d776f 100644 --- a/extra/git-tool/git-tool.factor +++ b/extra/git-tool/git-tool.factor @@ -7,7 +7,7 @@ splitting strings ui ui.gadgets ui.gadgets.buttons ui.gadgets.editors ui.gadgets.labels ui.gadgets.packs ui.gadgets.tracks ; -IN: git-status +IN: git-tool ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! From a0d29903a026a1e452826638282f710f9598602b Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Wed, 14 Jan 2009 00:35:47 -0600 Subject: [PATCH 07/19] Remove 'unmaintained/lsys' --- unmaintained/lsys/authors.txt | 1 - unmaintained/lsys/strings/authors.txt | 1 - .../lsys/strings/interpret/authors.txt | 1 - .../lsys/strings/interpret/interpret.factor | 35 -- unmaintained/lsys/strings/rewrite/authors.txt | 1 - .../lsys/strings/rewrite/rewrite.factor | 36 -- unmaintained/lsys/strings/strings.factor | 14 - unmaintained/lsys/summary.txt | 1 - unmaintained/lsys/tags.txt | 1 - unmaintained/lsys/tortoise/authors.txt | 1 - .../lsys/tortoise/graphics/authors.txt | 1 - .../lsys/tortoise/graphics/graphics.factor | 153 ------ unmaintained/lsys/tortoise/tortoise.factor | 31 -- unmaintained/lsys/ui/authors.txt | 1 - unmaintained/lsys/ui/deploy.factor | 13 - unmaintained/lsys/ui/tags.txt | 1 - unmaintained/lsys/ui/ui.factor | 507 ------------------ 17 files changed, 799 deletions(-) delete mode 100644 unmaintained/lsys/authors.txt delete mode 100755 unmaintained/lsys/strings/authors.txt delete mode 100755 unmaintained/lsys/strings/interpret/authors.txt delete mode 100644 unmaintained/lsys/strings/interpret/interpret.factor delete mode 100755 unmaintained/lsys/strings/rewrite/authors.txt delete mode 100644 unmaintained/lsys/strings/rewrite/rewrite.factor delete mode 100644 unmaintained/lsys/strings/strings.factor delete mode 100644 unmaintained/lsys/summary.txt delete mode 100644 unmaintained/lsys/tags.txt delete mode 100755 unmaintained/lsys/tortoise/authors.txt delete mode 100755 unmaintained/lsys/tortoise/graphics/authors.txt delete mode 100644 unmaintained/lsys/tortoise/graphics/graphics.factor delete mode 100644 unmaintained/lsys/tortoise/tortoise.factor delete mode 100755 unmaintained/lsys/ui/authors.txt delete mode 100755 unmaintained/lsys/ui/deploy.factor delete mode 100644 unmaintained/lsys/ui/tags.txt delete mode 100644 unmaintained/lsys/ui/ui.factor diff --git a/unmaintained/lsys/authors.txt b/unmaintained/lsys/authors.txt deleted file mode 100644 index 6cfd5da273..0000000000 --- a/unmaintained/lsys/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Eduardo Cavazos diff --git a/unmaintained/lsys/strings/authors.txt b/unmaintained/lsys/strings/authors.txt deleted file mode 100755 index 6cfd5da273..0000000000 --- a/unmaintained/lsys/strings/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Eduardo Cavazos diff --git a/unmaintained/lsys/strings/interpret/authors.txt b/unmaintained/lsys/strings/interpret/authors.txt deleted file mode 100755 index 6cfd5da273..0000000000 --- a/unmaintained/lsys/strings/interpret/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Eduardo Cavazos diff --git a/unmaintained/lsys/strings/interpret/interpret.factor b/unmaintained/lsys/strings/interpret/interpret.factor deleted file mode 100644 index 8d27b29d22..0000000000 --- a/unmaintained/lsys/strings/interpret/interpret.factor +++ /dev/null @@ -1,35 +0,0 @@ - -USING: kernel sequences quotations assocs math math.parser - combinators.lib vars lsys.strings combinators.short-circuit ; - -IN: lsys.strings.interpret - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: command-table - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: exec-command ( string -- ) command-table> at >quotation call ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: command ( string -- command ) 1 head ; - -: parameter ( string -- parameter ) - [ drop 2 ] [ length 1- ] [ ] tri subseq string>number ; - -: exec-command* ( string -- ) - [ parameter ] [ command ] bi - command-table> at dup - [ 1 tail* call ] [ 2drop ] if ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: (interpret) ( slice -- ) - { { [ empty? ] [ drop ] } - { [ has-param? ] [ next+rest* [ exec-command* ] [ (interpret) ] bi* ] } - { [ t ] [ next+rest [ exec-command ] [ (interpret) ] bi* ] } } - switch ; - -: interpret ( string -- ) (interpret) ; diff --git a/unmaintained/lsys/strings/rewrite/authors.txt b/unmaintained/lsys/strings/rewrite/authors.txt deleted file mode 100755 index 6cfd5da273..0000000000 --- a/unmaintained/lsys/strings/rewrite/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Eduardo Cavazos diff --git a/unmaintained/lsys/strings/rewrite/rewrite.factor b/unmaintained/lsys/strings/rewrite/rewrite.factor deleted file mode 100644 index 622a86c425..0000000000 --- a/unmaintained/lsys/strings/rewrite/rewrite.factor +++ /dev/null @@ -1,36 +0,0 @@ - -USING: kernel sbufs strings sequences assocs math - combinators.lib vars lsys.strings combinators.short-circuit ; - -IN: lsys.strings.rewrite - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: rules - -: lookup ( str -- str ) [ 1 head rules> at ] [ ] bi or ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: accum - -: push-next ( next -- ) lookup accum> push-all ; - -: (rewrite) ( slice -- ) - { { [ empty? ] [ drop ] } - { [ has-param? ] [ next+rest* [ push-next ] [ (rewrite) ] bi* ] } - { [ t ] [ next+rest [ push-next ] [ (rewrite) ] bi* ] } } - switch ; - -: rewrite ( string -- string ) - dup length 10 * >accum - (rewrite) - accum> >string ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: result - -: iterate ( -- ) result> rewrite >result ; - -: iterations ( n -- ) [ iterate ] times ; diff --git a/unmaintained/lsys/strings/strings.factor b/unmaintained/lsys/strings/strings.factor deleted file mode 100644 index 603c6cc630..0000000000 --- a/unmaintained/lsys/strings/strings.factor +++ /dev/null @@ -1,14 +0,0 @@ - -USING: kernel sequences math combinators.lib combinators.short-circuit ; - -IN: lsys.strings - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: has-param? ( slice -- ? ) { [ length 1 > ] [ second CHAR: ( = ] } 1&& ; - -: next+rest ( slice -- next rest ) [ 1 head ] [ 1 tail-slice ] bi ; - -: index-rest ( slice -- i ) CHAR: ) swap index 1+ ; - -: next+rest* ( slice -- next rest ) dup index-rest [ head ] [ tail-slice ] 2bi ; diff --git a/unmaintained/lsys/summary.txt b/unmaintained/lsys/summary.txt deleted file mode 100644 index 2615e85329..0000000000 --- a/unmaintained/lsys/summary.txt +++ /dev/null @@ -1 +0,0 @@ -Lindenmayer system explorer diff --git a/unmaintained/lsys/tags.txt b/unmaintained/lsys/tags.txt deleted file mode 100644 index bf31fdbc2e..0000000000 --- a/unmaintained/lsys/tags.txt +++ /dev/null @@ -1 +0,0 @@ -applications diff --git a/unmaintained/lsys/tortoise/authors.txt b/unmaintained/lsys/tortoise/authors.txt deleted file mode 100755 index 6cfd5da273..0000000000 --- a/unmaintained/lsys/tortoise/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Eduardo Cavazos diff --git a/unmaintained/lsys/tortoise/graphics/authors.txt b/unmaintained/lsys/tortoise/graphics/authors.txt deleted file mode 100755 index 6cfd5da273..0000000000 --- a/unmaintained/lsys/tortoise/graphics/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Eduardo Cavazos diff --git a/unmaintained/lsys/tortoise/graphics/graphics.factor b/unmaintained/lsys/tortoise/graphics/graphics.factor deleted file mode 100644 index ab679c8369..0000000000 --- a/unmaintained/lsys/tortoise/graphics/graphics.factor +++ /dev/null @@ -1,153 +0,0 @@ - -USING: kernel math vectors sequences opengl.gl math.vectors math.order - math.matrices vars opengl self pos ori turtle lsys.tortoise - - lsys.strings.interpret combinators.short-circuit ; - - ! lsys.strings - -IN: lsys.tortoise.graphics - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -! (v0 - v1) x (v1 - v2) - -: polygon-normal ( {_v0_v1_v2_} -- normal ) first3 dupd v- -rot v- swap cross ; - -: (polygon) ( vertices -- ) -GL_POLYGON glBegin -dup polygon-normal gl-normal [ gl-vertex ] each -glEnd ; - -: polygon ( vertices -- ) dup length 3 >= [ (polygon) ] [ drop ] if ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: vertices - -! : init-vertices ( -- ) 0 >vertices ; - -: start-polygon ( -- ) vertices> delete-all ; - -: finish-polygon ( -- ) vertices> polygon ; - -: polygon-vertex ( -- ) pos> vertices> push ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: record-vertex ( -- ) pos> gl-vertex ; - -: draw-forward ( length -- ) -GL_LINES glBegin record-vertex step-turtle record-vertex glEnd ; - -: move-forward ( length -- ) step-turtle polygon-vertex ; - -: sneak-forward ( length -- ) step-turtle ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: scale-len ( m -- ) len> * >len ; - -: scale-angle ( m -- ) angle> * >angle ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: set-thickness ( i -- ) dup >thickness glLineWidth ; - -: scale-thickness ( m -- ) thickness> * 0.5 max set-thickness ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: color-table - -: init-color-table ( -- ) -{ { 0 0 0 } ! black - { 0.5 0.5 0.5 } ! grey - { 1 0 0 } ! red - { 1 1 0 } ! yellow - { 0 1 0 } ! green - { 0.25 0.88 0.82 } ! turquoise - { 0 0 1 } ! blue - { 0.63 0.13 0.94 } ! purple - { 0.00 0.50 0.00 } ! dark green - { 0.00 0.82 0.82 } ! dark turquoise - { 0.00 0.00 0.50 } ! dark blue - { 0.58 0.00 0.82 } ! dark purple - { 0.50 0.00 0.00 } ! dark red - { 0.25 0.25 0.25 } ! dark grey - { 0.75 0.75 0.75 } ! medium grey - { 1 1 1 } ! white -} [ 1 suffix ] map >color-table ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: material-color ( color -- ) -GL_FRONT_AND_BACK GL_AMBIENT_AND_DIFFUSE rot gl-material ; - -: set-color ( i -- ) -dup >color color-table> nth dup gl-color material-color ; - -: inc-color ( -- ) color> 1+ set-color ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: tortoise-stack - -! : init-tortoise-stack ( -- ) V{ } clone >tortoise-stack ; - -! : save-tortoise ( -- ) self> tortoise-stack> push ; - -! : save-tortoise ( -- ) self> tortoise-stack> push self> clone >self ; - -: save-tortoise ( -- ) self> clone tortoise-stack> push ; - -: restore-tortoise ( -- ) -tortoise-stack> pop >self -color> set-color -thickness> set-thickness ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: default-values -VAR: model-values - -: lparser-dialect ( -- ) - -[ 1 >len 45 >angle 1 >thickness 2 >color ] >default-values - -H{ { "+" [ angle> turn-left ] } - { "-" [ angle> turn-right ] } - { "&" [ angle> pitch-down ] } - { "^" [ angle> pitch-up ] } - { "<" [ angle> roll-left ] } - { ">" [ angle> roll-right ] } - - { "|" [ 180.0 rotate-y ] } - { "%" [ 180.0 rotate-z ] } - { "$" [ roll-until-horizontal ] } - - { "F" [ len> draw-forward ] } - { "Z" [ len> 2 / draw-forward ] } - { "f" [ len> move-forward ] } - { "z" [ len> 2 / move-forward ] } - { "g" [ len> sneak-forward ] } - { "." [ polygon-vertex ] } - - { "[" [ save-tortoise ] } - { "]" [ restore-tortoise ] } - { "{" [ start-polygon ] } - { "}" [ finish-polygon ] } - - { "/" [ 1.1 scale-len ] } ! double quote command in lparser - { "'" [ 0.9 scale-len ] } - { ";" [ 1.1 scale-angle ] } - { ":" [ 0.9 scale-angle ] } - { "?" [ 1.4 scale-thickness ] } - { "!" [ 0.7 scale-thickness ] } - - { "c" [ color> 1 + color-table> length mod set-color ] } - -} >command-table ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - diff --git a/unmaintained/lsys/tortoise/tortoise.factor b/unmaintained/lsys/tortoise/tortoise.factor deleted file mode 100644 index 8c4ac60e6d..0000000000 --- a/unmaintained/lsys/tortoise/tortoise.factor +++ /dev/null @@ -1,31 +0,0 @@ - -USING: kernel generic math arrays - math.matrices generic.lib pos ori self turtle ; - -IN: lsys.tortoise - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -TUPLE: tortoise angle len thickness color ; - -: ( -- tortoise ) - tortoise construct-delegate ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: angle> ( -- val ) self> tortoise-angle ; - -: >angle ( val -- ) self> set-tortoise-angle ; - -: len> ( -- val ) self> tortoise-len ; - -: >len ( val -- ) self> set-tortoise-len ; - -: thickness> ( -- val ) self> tortoise-thickness ; - -: >thickness ( val -- ) self> set-tortoise-thickness ; - -: color> ( -- val ) self> tortoise-color ; - -: >color ( val -- ) self> set-tortoise-color ; - diff --git a/unmaintained/lsys/ui/authors.txt b/unmaintained/lsys/ui/authors.txt deleted file mode 100755 index 6cfd5da273..0000000000 --- a/unmaintained/lsys/ui/authors.txt +++ /dev/null @@ -1 +0,0 @@ -Eduardo Cavazos diff --git a/unmaintained/lsys/ui/deploy.factor b/unmaintained/lsys/ui/deploy.factor deleted file mode 100755 index 4db8cf93e9..0000000000 --- a/unmaintained/lsys/ui/deploy.factor +++ /dev/null @@ -1,13 +0,0 @@ -USING: tools.deploy.config ; -V{ - { deploy-ui? t } - { deploy-io 1 } - { deploy-reflection 2 } - { deploy-compiler? t } - { deploy-math? t } - { deploy-word-props? t } - { deploy-word-defs? t } - { deploy-c-types? f } - { "stop-after-last-window?" t } - { deploy-name "Lindenmayer System Explorer" } -} diff --git a/unmaintained/lsys/ui/tags.txt b/unmaintained/lsys/ui/tags.txt deleted file mode 100644 index cb5fc203e1..0000000000 --- a/unmaintained/lsys/ui/tags.txt +++ /dev/null @@ -1 +0,0 @@ -demos diff --git a/unmaintained/lsys/ui/ui.factor b/unmaintained/lsys/ui/ui.factor deleted file mode 100644 index 832f7b9131..0000000000 --- a/unmaintained/lsys/ui/ui.factor +++ /dev/null @@ -1,507 +0,0 @@ - -USING: kernel namespaces threads math math.order math.vectors - quotations sequences - opengl - opengl.gl - colors - ui - ui.gestures - ui.gadgets - ui.gadgets.packs - ui.gadgets.labels - ui.gadgets.buttons - ui.gadgets.lib - ui.gadgets.slate - ui.gadgets.theme - vars rewrite-closures - self pos ori turtle opengl.camera - lsys.tortoise lsys.tortoise.graphics - lsys.strings.rewrite lsys.strings.interpret - combinators.short-circuit accessors ; - - ! lsys.strings - ! lsys.strings.rewrite - ! lsys.strings.interpret - -IN: lsys.ui - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: slate - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: camera - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -VAR: model - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: display ( -- ) - -black set-clear-color GL_COLOR_BUFFER_BIT glClear - -GL_FLAT glShadeModel - -GL_PROJECTION glMatrixMode -glLoadIdentity --1 1 -1 1 1.5 200 glFrustum - -GL_MODELVIEW glMatrixMode - -glLoadIdentity - -camera> do-look-at - -GL_FRONT_AND_BACK GL_LINE glPolygonMode - -white color>raw glColor4d - -! white set-color - -GL_LINES glBegin { 0 0 0 } gl-vertex { 0 0 1 } gl-vertex glEnd - -color> set-color - -model> glCallList ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: result>model ( -- ) -slate> find-gl-context -model> GL_COMPILE glNewList result> interpret glEndList ; - -: build-model ( -- ) -tortoise-stack> delete-all -vertices> delete-all -reset-turtle -default-values> call -model-values> call -result>model -[ display ] closed-quot slate> set-slate-action -slate> relayout-1 ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -USING: hashtables namespaces.lib ui.gadgets.handler ; - -: camera-action ( quot -- quot ) -[ drop [ ] camera> with-self slate> relayout-1 ] make* closed-quot ; - -VAR: frame -VAR: handler - -DEFER: model-chooser -DEFER: scene-chooser -DEFER: empty-model - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: lsys-controller ( -- ) - - - -{ - -[ "Load"