You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
(20) |
Nov
(42) |
Dec
(32) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(10) |
Feb
(42) |
Mar
(53) |
Apr
(121) |
May
(98) |
Jun
(110) |
Jul
(110) |
Aug
(88) |
Sep
(123) |
Oct
(321) |
Nov
(172) |
Dec
(607) |
2008 |
Jan
(376) |
Feb
(52) |
Mar
(26) |
Apr
(60) |
May
(42) |
Jun
(120) |
Jul
(181) |
Aug
(318) |
Sep
(265) |
Oct
(225) |
Nov
(92) |
Dec
(103) |
2009 |
Jan
(202) |
Feb
(191) |
Mar
(102) |
Apr
(235) |
May
(169) |
Jun
(122) |
Jul
(178) |
Aug
(87) |
Sep
(102) |
Oct
(69) |
Nov
(71) |
Dec
(101) |
2010 |
Jan
(55) |
Feb
(139) |
Mar
(99) |
Apr
(101) |
May
(112) |
Jun
(65) |
Jul
(31) |
Aug
(50) |
Sep
(94) |
Oct
(101) |
Nov
(95) |
Dec
(103) |
2011 |
Jan
(139) |
Feb
(136) |
Mar
(80) |
Apr
(59) |
May
(34) |
Jun
(37) |
Jul
(66) |
Aug
(51) |
Sep
(29) |
Oct
(100) |
Nov
(49) |
Dec
(92) |
2012 |
Jan
(53) |
Feb
(147) |
Mar
(113) |
Apr
(60) |
May
(39) |
Jun
(164) |
Jul
(143) |
Aug
(84) |
Sep
(127) |
Oct
(91) |
Nov
(97) |
Dec
(103) |
2013 |
Jan
(162) |
Feb
(139) |
Mar
(106) |
Apr
(23) |
May
(80) |
Jun
(73) |
Jul
(39) |
Aug
(27) |
Sep
(38) |
Oct
(54) |
Nov
(95) |
Dec
(195) |
2014 |
Jan
(113) |
Feb
(46) |
Mar
(22) |
Apr
(18) |
May
(136) |
Jun
(145) |
Jul
(86) |
Aug
(70) |
Sep
(169) |
Oct
(216) |
Nov
(58) |
Dec
(19) |
2015 |
Jan
|
Feb
(5) |
Mar
(7) |
Apr
(15) |
May
(22) |
Jun
(18) |
Jul
(4) |
Aug
(2) |
Sep
(3) |
Oct
(21) |
Nov
(24) |
Dec
(1) |
2016 |
Jan
|
Feb
(7) |
Mar
(1) |
Apr
(19) |
May
(10) |
Jun
(31) |
Jul
(24) |
Aug
(41) |
Sep
(12) |
Oct
(19) |
Nov
|
Dec
|
2017 |
Jan
(12) |
Feb
(15) |
Mar
(12) |
Apr
(8) |
May
(25) |
Jun
(8) |
Jul
(18) |
Aug
(4) |
Sep
(11) |
Oct
(25) |
Nov
(7) |
Dec
(11) |
2018 |
Jan
(2) |
Feb
(13) |
Mar
(28) |
Apr
(53) |
May
(5) |
Jun
(6) |
Jul
(13) |
Aug
(23) |
Sep
(10) |
Oct
(14) |
Nov
(33) |
Dec
(116) |
2019 |
Jan
(46) |
Feb
(112) |
Mar
(38) |
Apr
(23) |
May
(10) |
Jun
(2) |
Jul
(18) |
Aug
(4) |
Sep
(11) |
Oct
(15) |
Nov
(15) |
Dec
(17) |
2020 |
Jan
(6) |
Feb
(12) |
Mar
(41) |
Apr
(36) |
May
(7) |
Jun
(18) |
Jul
(5) |
Aug
(6) |
Sep
(6) |
Oct
(8) |
Nov
(13) |
Dec
(9) |
2021 |
Jan
(1) |
Feb
(42) |
Mar
(37) |
Apr
(16) |
May
(25) |
Jun
(4) |
Jul
(14) |
Aug
(5) |
Sep
|
Oct
(15) |
Nov
(29) |
Dec
(11) |
2022 |
Jan
(10) |
Feb
(1) |
Mar
(8) |
Apr
(16) |
May
(46) |
Jun
(37) |
Jul
(36) |
Aug
(10) |
Sep
(15) |
Oct
(6) |
Nov
(6) |
Dec
(68) |
2023 |
Jan
(27) |
Feb
(18) |
Mar
(7) |
Apr
(21) |
May
(12) |
Jun
(8) |
Jul
(16) |
Aug
(16) |
Sep
(2) |
Oct
(8) |
Nov
(3) |
Dec
(17) |
2024 |
Jan
(27) |
Feb
(9) |
Mar
(25) |
Apr
(21) |
May
(1) |
Jun
(8) |
Jul
(12) |
Aug
(30) |
Sep
(27) |
Oct
|
Nov
|
Dec
|
From: <bi...@us...> - 2008-10-08 20:51:59
|
Revision: 3488 http://oorexx.svn.sourceforge.net/oorexx/?rev=3488&view=rev Author: bigrixx Date: 2008-10-08 20:51:50 +0000 (Wed, 08 Oct 2008) Log Message: ----------- Allow new-style exits to raise errors and conditions Modified Paths: -------------- main/trunk/interpreter/concurrency/CallbackDispatcher.cpp main/trunk/interpreter/concurrency/RexxActivity.cpp main/trunk/interpreter/execution/RexxNativeActivation.cpp Modified: main/trunk/interpreter/concurrency/CallbackDispatcher.cpp =================================================================== --- main/trunk/interpreter/concurrency/CallbackDispatcher.cpp 2008-10-08 20:11:35 UTC (rev 3487) +++ main/trunk/interpreter/concurrency/CallbackDispatcher.cpp 2008-10-08 20:51:50 UTC (rev 3488) @@ -41,6 +41,7 @@ #include "Interpreter.hpp" #include "InterpreterInstance.hpp" #include "RexxActivity.hpp" +#include "RexxNativeActivation.hpp" /** @@ -78,7 +79,8 @@ // this only gets added if there is a condition if (c != OREF_NULL) { - handleError(activity->errorNumber(c), c); + // raise this as a normal error by default + activation->checkConditions(); } } Modified: main/trunk/interpreter/concurrency/RexxActivity.cpp =================================================================== --- main/trunk/interpreter/concurrency/RexxActivity.cpp 2008-10-08 20:11:35 UTC (rev 3487) +++ main/trunk/interpreter/concurrency/RexxActivity.cpp 2008-10-08 20:51:50 UTC (rev 3488) @@ -2100,15 +2100,6 @@ /* the function system exit. */ /******************************************************************************/ { - // give the security manager the first pass - SecurityManager *manager = activation->getEffectiveSecurityManager(); - if (manager != OREF_NULL) - { - if (manager->checkFunctionCall(rname, argcount, arguments, funcresult)) - { - return false; - } - } if (isExitEnabled(RXFNC)) // is the exit enabled? { @@ -2225,6 +2216,16 @@ /* the function system exit. */ /******************************************************************************/ { + // give the security manager the first pass + SecurityManager *manager = activation->getEffectiveSecurityManager(); + if (manager != OREF_NULL) + { + if (manager->checkFunctionCall(rname, argcount, arguments, funcresult)) + { + return false; + } + } + if (isExitEnabled(RXOFNC)) // is the exit enabled? { RXOFNCCAL_PARM exit_parm; /* exit parameters */ @@ -2990,8 +2991,6 @@ // go run this new_activation->run(target); - - requestAccess(); /* get the kernel lock back */ this->popStackFrame(new_activation); /* pop the top activation */ } Modified: main/trunk/interpreter/execution/RexxNativeActivation.cpp =================================================================== --- main/trunk/interpreter/execution/RexxNativeActivation.cpp 2008-10-08 20:11:35 UTC (rev 3487) +++ main/trunk/interpreter/execution/RexxNativeActivation.cpp 2008-10-08 20:51:50 UTC (rev 3488) @@ -1575,7 +1575,6 @@ try { // make the activation hookup - // make the activation hookup dispatcher.setContext(activity, this); activity->releaseAccess(); /* force this to "safe" mode */ dispatcher.run(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-10-08 20:11:48
|
Revision: 3487 http://oorexx.svn.sourceforge.net/oorexx/?rev=3487&view=rev Author: wdashley Date: 2008-10-08 20:11:35 +0000 (Wed, 08 Oct 2008) Log Message: ----------- ArtifactID: None Comment: Fixed it so that variable pool errors do not cause a seg fault. Modified Paths: -------------- test/trunk/external/API/orxclassic.cpp Modified: test/trunk/external/API/orxclassic.cpp =================================================================== --- test/trunk/external/API/orxclassic.cpp 2008-10-08 20:06:56 UTC (rev 3486) +++ test/trunk/external/API/orxclassic.cpp 2008-10-08 20:11:35 UTC (rev 3487) @@ -267,15 +267,22 @@ context->SendMessage1(entry, "shvnamelen=", context->UnsignedInt32ToObject((uint32_t)currentblock->shvname.strlength)); context->SendMessage1(entry, "shvvalue=", context->NewStringFromAsciiz(currentblock->shvvalue.strptr)); context->SendMessage1(entry, "shvvaluelen=", context->UnsignedInt32ToObject((uint32_t)currentblock->shvvalue.strlength)); - // this memory must be freed this way since it was allocated with RexxAllocateMemeory - RexxFreeMemory((void *)currentblock->shvname.strptr); - RexxFreeMemory((void *)currentblock->shvvalue.strptr); + if (currentblock->shvname.strptr != NULL) { + // this memory must be freed this way since it was allocated with RexxAllocateMemeory + RexxFreeMemory((void *)currentblock->shvname.strptr); + } + if (currentblock->shvvalue.strptr != NULL) { + // this memory must be freed this way since it was allocated with RexxAllocateMemeory + RexxFreeMemory((void *)currentblock->shvvalue.strptr); + } break; case RXSHV_PRIV: context->SendMessage1(entry, "shvvalue=", context->NewStringFromAsciiz(currentblock->shvvalue.strptr)); context->SendMessage1(entry, "shvvaluelen=", context->UnsignedInt32ToObject((uint32_t)currentblock->shvvalue.strlength)); - // this memory must be freed this way since it was allocated with RexxAllocateMemeory - RexxFreeMemory(currentblock->shvvalue.strptr); + if (currentblock->shvvalue.strptr != NULL) { + // this memory must be freed this way since it was allocated with RexxAllocateMemeory + RexxFreeMemory((void *)currentblock->shvvalue.strptr); + } break; default: break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-10-08 20:07:03
|
Revision: 3486 http://oorexx.svn.sourceforge.net/oorexx/?rev=3486&view=rev Author: wdashley Date: 2008-10-08 20:06:56 +0000 (Wed, 08 Oct 2008) Log Message: ----------- ArtifactID: None Commeit: Added RXSHV_PRIV variable pool tests. More to come. Modified Paths: -------------- test/trunk/external/API/orxclassic.cpp test/trunk/ooRexx/API/classic/CLASSIC.testGroup Modified: test/trunk/external/API/orxclassic.cpp =================================================================== --- test/trunk/external/API/orxclassic.cpp 2008-10-08 16:43:45 UTC (rev 3485) +++ test/trunk/external/API/orxclassic.cpp 2008-10-08 20:06:56 UTC (rev 3486) @@ -219,8 +219,17 @@ currentblock->shvvalue.strlength = 0; break; case RXSHV_NEXTV: + currentblock->shvname.strptr = NULL; + currentblock->shvname.strlength = 0; + currentblock->shvvalue.strptr = NULL; + currentblock->shvvalue.strlength = 0; break; case RXSHV_PRIV: + val = context->SendMessage0(entry, "shvname"); + currentblock->shvname.strptr = context->ObjectToStringValue(val); + currentblock->shvname.strlength = strlen(currentblock->shvname.strptr); + currentblock->shvvalue.strptr = NULL; + currentblock->shvvalue.strlength = 0; break; default: free(currentblock); @@ -230,6 +239,9 @@ // call the variable pool interface retc = RexxVariablePool(blocks); + if (currentblock->shvcode == RXSHV_PRIV) { + printf("retc = %d\n", retc); + } // set the array to the shvblocks currentblock = blocks; @@ -251,8 +263,19 @@ case RXSHV_SYDRO: break; case RXSHV_NEXTV: + context->SendMessage1(entry, "shvname=", context->NewStringFromAsciiz(currentblock->shvname.strptr)); + context->SendMessage1(entry, "shvnamelen=", context->UnsignedInt32ToObject((uint32_t)currentblock->shvname.strlength)); + context->SendMessage1(entry, "shvvalue=", context->NewStringFromAsciiz(currentblock->shvvalue.strptr)); + context->SendMessage1(entry, "shvvaluelen=", context->UnsignedInt32ToObject((uint32_t)currentblock->shvvalue.strlength)); + // this memory must be freed this way since it was allocated with RexxAllocateMemeory + RexxFreeMemory((void *)currentblock->shvname.strptr); + RexxFreeMemory((void *)currentblock->shvvalue.strptr); break; case RXSHV_PRIV: + context->SendMessage1(entry, "shvvalue=", context->NewStringFromAsciiz(currentblock->shvvalue.strptr)); + context->SendMessage1(entry, "shvvaluelen=", context->UnsignedInt32ToObject((uint32_t)currentblock->shvvalue.strlength)); + // this memory must be freed this way since it was allocated with RexxAllocateMemeory + RexxFreeMemory(currentblock->shvvalue.strptr); break; default: break; Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 16:43:45 UTC (rev 3485) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 20:06:56 UTC (rev 3486) @@ -396,7 +396,7 @@ test1 = 'my test string' arr = .array~new(1) arr[1] = .ShvBlock~new() - arr[1]~shvname = 'TEST1' -- invalid name! + arr[1]~shvname = 'TEST1' arr[1]~shvvalue = test1_val arr[1]~shvnamelen = arr[1]~shvname()~length arr[1]~shvvaluelen = 5 -- this is too small a buffer and should cause an error @@ -460,5 +460,41 @@ self~assertEquals(8, retc) self~assertEquals(8, arr[1]~shvret) -- make sure an error was generated +::method 'test_35_variablepool' + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'VERSION' + arr[1]~shvvalue = '' + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = 0 + arr[1]~shvcode = 7 -- RXSHV_PRIV + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(0, arr[1]~shvret) + self~assertNotEquals('', arr[1]~shvvalue) +::method 'test_35a_variablepool' + arr = .array~new(2) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'QUENAME' + arr[1]~shvvalue = '' + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = 0 + arr[1]~shvcode = 7 -- RXSHV_PRIV + arr[1]~shvret = 0 + arr[2] = .ShvBlock~new() + arr[2]~shvname = 'PARM' + arr[2]~shvvalue = '' + arr[2]~shvnamelen = arr[2]~shvname()~length + arr[2]~shvvaluelen = 0 + arr[2]~shvcode = 7 -- RXSHV_PRIV + arr[2]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(0, arr[1]~shvret) + self~assertNotEquals('', arr[1]~shvvalue) + self~assertEquals(0, arr[2]~shvret) + self~assertNotEquals('', arr[2]~shvvalue) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-08 16:43:55
|
Revision: 3485 http://oorexx.svn.sourceforge.net/oorexx/?rev=3485&view=rev Author: bigrixx Date: 2008-10-08 16:43:45 +0000 (Wed, 08 Oct 2008) Log Message: ----------- [ 2153460 ] RexxVariablePool No Generating Expected RXSHV_MEMFL Error Modified Paths: -------------- test/trunk/ooRexx/API/classic/CLASSIC.testGroup Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 16:18:42 UTC (rev 3484) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 16:43:45 UTC (rev 3485) @@ -400,11 +400,11 @@ arr[1]~shvvalue = test1_val arr[1]~shvnamelen = arr[1]~shvname()~length arr[1]~shvvaluelen = 5 -- this is too small a buffer and should cause an error - arr[1]~shvcode = 3 -- RXSHV_SYFET + arr[1]~shvcode = 4 -- RXSHV_SYFET arr[1]~shvret = 0 retc = TestFVariablePool(arr) - self~assertEquals(16, retc) - self~assertEquals(16, arr[1]~shvret) -- make sure an error was generated + self~assertEquals(4, retc) + self~assertEquals(4, arr[1]~shvret) -- make sure an error was generated ::method 'test_34_variablepool' test1 = 123 -- give this an existing value This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-10-08 16:18:49
|
Revision: 3484 http://oorexx.svn.sourceforge.net/oorexx/?rev=3484&view=rev Author: wdashley Date: 2008-10-08 16:18:42 +0000 (Wed, 08 Oct 2008) Log Message: ----------- ArtifactID: None Comment: Interium commit for variable pool tests. Modified Paths: -------------- test/trunk/external/API/orxclassic.cpp test/trunk/ooRexx/API/classic/CLASSIC.testGroup Modified: test/trunk/external/API/orxclassic.cpp =================================================================== --- test/trunk/external/API/orxclassic.cpp 2008-10-08 15:47:47 UTC (rev 3483) +++ test/trunk/external/API/orxclassic.cpp 2008-10-08 16:18:42 UTC (rev 3484) @@ -167,7 +167,7 @@ return RXSHV_NOAVL; } - // set up the shvblocks fro the array + // set up the shvblocks from the array for (ctr = 1; ctr <= members; ctr++) { nextblock = (PSHVBLOCK)malloc(sizeof(SHVBLOCK)); if (currentblock != NULL) { @@ -197,7 +197,6 @@ val = context->SendMessage0(entry, "shvname"); currentblock->shvname.strptr = context->ObjectToStringValue(val); currentblock->shvname.strlength = strlen(currentblock->shvname.strptr); -// printf("setting %s\n", currentblock->shvname.strptr); val = context->SendMessage0(entry, "shvvalue"); currentblock->shvvalue.strptr = (char*)malloc(strlen(context->ObjectToStringValue(val)) + 1); strcpy(currentblock->shvvalue.strptr, context->ObjectToStringValue(val)); Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 15:47:47 UTC (rev 3483) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 16:18:42 UTC (rev 3484) @@ -364,6 +364,48 @@ self~assertEquals(0, arr[2]~shvret) self~assertEquals(test2, arr[2]~shvvalue) +::method 'test_33b_variablepool' + -- make sure you do not assign the variable test1, we want an error + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'TEST1' + arr[1]~shvvalue = '' + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 3 -- RXSHV_SYFET + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(1, retc) + self~assertEquals(1, arr[1]~shvret) + +::method 'test_33c_variablepool' + test1_val = 'my test string' + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = '2TEST' -- invalid name! + arr[1]~shvvalue = test1_val + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 3 -- RXSHV_SYFET + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(8, retc) + self~assertEquals(8, arr[1]~shvret) -- make sure an error was generated + +::method 'test_33d_variablepool' + test1 = 'my test string' + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'TEST1' -- invalid name! + arr[1]~shvvalue = test1_val + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = 5 -- this is too small a buffer and should cause an error + arr[1]~shvcode = 3 -- RXSHV_SYFET + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(16, retc) + self~assertEquals(16, arr[1]~shvret) -- make sure an error was generated + ::method 'test_34_variablepool' test1 = 123 -- give this an existing value arr = .array~new(1) @@ -404,5 +446,19 @@ self~assertEquals(0, arr[2]~shvret) self~assertEquals(test2, 'TEST2') +::method 'test_34b_variablepool' + test1_val = 'my test string' + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = '2TEST' -- invalid name! + arr[1]~shvvalue = test1_val + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 5 -- RXSHV_SYDRO + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(8, retc) + self~assertEquals(8, arr[1]~shvret) -- make sure an error was generated + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-08 15:47:52
|
Revision: 3483 http://oorexx.svn.sourceforge.net/oorexx/?rev=3483&view=rev Author: bigrixx Date: 2008-10-08 15:47:47 +0000 (Wed, 08 Oct 2008) Log Message: ----------- [ oorexx-Bugs-2153363 ] RexxVariablePool and Bad Variable Names Modified Paths: -------------- test/trunk/ooRexx/API/classic/CLASSIC.testGroup Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 15:40:57 UTC (rev 3482) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 15:47:47 UTC (rev 3483) @@ -267,7 +267,7 @@ arr[1]~shvcode = 0 -- RXSHV_SET arr[1]~shvret = 0 retc = TestFVariablePool(arr) - self~assertEquals(0, retc) + self~assertEquals(8, retc) self~assertEquals(8, arr[1]~shvret) -- make sure an error was generated ::method 'test_32_variablepool' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2008-10-08 15:41:12
|
Revision: 3482 http://oorexx.svn.sourceforge.net/oorexx/?rev=3482&view=rev Author: darthapache Date: 2008-10-08 15:40:57 +0000 (Wed, 08 Oct 2008) Log Message: ----------- added blurb about Visual Studio Express with a link to download Modified Paths: -------------- main/trunk/windows-build.txt Modified: main/trunk/windows-build.txt =================================================================== --- main/trunk/windows-build.txt 2008-10-08 15:20:31 UTC (rev 3481) +++ main/trunk/windows-build.txt 2008-10-08 15:40:57 UTC (rev 3482) @@ -40,8 +40,12 @@ Note: ----- Visual C++ 6.0 is no longer supported and the code base will not compile -using that version of Visual C++. +using that version of Visual C++. Microsoft releases a free C++ complier under +the Visual Studio Express label. More information and download options are +available on Microsoft's website here: + http://www.microsoft.com/express/ + [Required] Microsoft Platform SDK February 2003, or later. A later version of the SDK is preferable. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-10-08 15:20:34
|
Revision: 3481 http://oorexx.svn.sourceforge.net/oorexx/?rev=3481&view=rev Author: wdashley Date: 2008-10-08 15:20:31 +0000 (Wed, 08 Oct 2008) Log Message: ----------- ArtifactID: None Comment: Added a variable pool error test. Modified Paths: -------------- test/trunk/ooRexx/API/classic/CLASSIC.testGroup Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 15:13:52 UTC (rev 3480) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 15:20:31 UTC (rev 3481) @@ -256,6 +256,20 @@ self~assertEquals(test1_val, arr[1]~shvvalue) self~assertEquals(test1_val~length, arr[1]~shvvaluelen) +::method 'test_31b_variablepool' + test1_val = 'my test string' + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = '2TEST' -- invalid name! + arr[1]~shvvalue = test1_val + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 0 -- RXSHV_SET + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(8, arr[1]~shvret) -- make sure an error was generated + ::method 'test_32_variablepool' test1_val = 'my test string' test2_val = 'another test string' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-10-08 15:13:54
|
Revision: 3480 http://oorexx.svn.sourceforge.net/oorexx/?rev=3480&view=rev Author: wdashley Date: 2008-10-08 15:13:52 +0000 (Wed, 08 Oct 2008) Log Message: ----------- ArtifactID: None Comment: More variable pool tests. More to come. Modified Paths: -------------- test/trunk/ooRexx/API/classic/CLASSIC.testGroup Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 23:20:10 UTC (rev 3479) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-08 15:13:52 UTC (rev 3480) @@ -240,7 +240,6 @@ self~assertEquals(test1_val~length, arr[1]~shvvaluelen) ::method 'test_31a_variablepool' - vp = .TestVariablePool~new() test1 = 123 -- give this an existing value test1_val = 'my test string' arr = .array~new(1) @@ -284,7 +283,6 @@ self~assertEquals(test2_val~length, arr[2]~shvvaluelen) ::method 'test_32a_variablepool' - vp = .TestVariablePool~new() test1 = 123 -- only give one a value test1_val = 'my test string' test2_val = 'another test string' @@ -312,5 +310,85 @@ self~assertEquals(test2_val, arr[2]~shvvalue) self~assertEquals(test2_val~length, arr[2]~shvvaluelen) +::method 'test_33_variablepool' + test1 = 123 -- give this an existing value + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'TEST1' + arr[1]~shvvalue = '' + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 3 -- RXSHV_SYFET + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(0, arr[1]~shvret) + self~assertEquals(test1, arr[1]~shvvalue) +::method 'test_33a_variablepool' + test1 = 123 -- give this an existing value + test2 = 'my test string' -- give this an existing value + arr = .array~new(2) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'TEST1' + arr[1]~shvvalue = '' + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 3 -- RXSHV_SYFET + arr[1]~shvret = 0 + arr[2] = .ShvBlock~new() + arr[2]~shvname = 'TEST2' + arr[2]~shvvalue = '' + arr[2]~shvnamelen = arr[2]~shvname()~length + arr[2]~shvvaluelen = arr[2]~shvvalue()~length + arr[2]~shvcode = 3 -- RXSHV_SYFET + arr[2]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(0, arr[1]~shvret) + self~assertEquals(test1, arr[1]~shvvalue) + self~assertEquals(0, arr[2]~shvret) + self~assertEquals(test2, arr[2]~shvvalue) +::method 'test_34_variablepool' + test1 = 123 -- give this an existing value + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'TEST1' + arr[1]~shvvalue = '' + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = 0 + arr[1]~shvcode = 5 -- RXSHV_SYDRO + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(0, arr[1]~shvret) + self~assertEquals(test1, 'TEST1') + +::method 'test_34a_variablepool' + test1 = 123 -- give this an existing value + test2 = 'my teststring' -- give this an existing value + arr = .array~new(2) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'TEST1' + arr[1]~shvvalue = '' + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = 0 + arr[1]~shvcode = 5 -- RXSHV_SYDRO + arr[1]~shvret = 0 + arr[2] = .ShvBlock~new() + arr[2]~shvname = 'TEST2' + arr[2]~shvvalue = '' + arr[2]~shvnamelen = arr[2]~shvname()~length + arr[2]~shvvaluelen = 0 + arr[2]~shvcode = 5 -- RXSHV_SYDRO + arr[2]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(0, arr[1]~shvret) + self~assertEquals(test1, 'TEST1') + self~assertEquals(0, arr[2]~shvret) + self~assertEquals(test2, 'TEST2') + + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-07 23:20:18
|
Revision: 3479 http://oorexx.svn.sourceforge.net/oorexx/?rev=3479&view=rev Author: bigrixx Date: 2008-10-07 23:20:10 +0000 (Tue, 07 Oct 2008) Log Message: ----------- [ 2152278 ] Add additional function exit variant. Modified Paths: -------------- main/trunk/api/rexx.h main/trunk/api/rexxapidefs.h main/trunk/interpreter/concurrency/RexxActivity.cpp main/trunk/interpreter/concurrency/RexxActivity.hpp main/trunk/interpreter/execution/RexxActivation.cpp Modified: main/trunk/api/rexx.h =================================================================== --- main/trunk/api/rexx.h 2008-10-07 21:08:02 UTC (rev 3478) +++ main/trunk/api/rexx.h 2008-10-07 23:20:10 UTC (rev 3479) @@ -386,7 +386,24 @@ } RXFNCCAL_PARM; +/*** Subfunction RXOFNCCAL - Object valued external function call */ +typedef struct _RXOFNC_FLAGS { /* fl */ + unsigned rxfferr : 1; /* Invalid call to routine. */ + unsigned rxffnfnd : 1; /* Function not found. */ + unsigned rxffsub : 1; /* Called as a subroutine */ +} RXOFNC_FLAGS ; + +typedef struct _RXOFNCCAL_PARM { /* fnc */ + RXOFNC_FLAGS rxfnc_flags ; /* function flags */ + CONSTRXSTRING rxfnc_name; // the called function name + size_t rxfnc_argc; /* Number of args in list. */ + REXXOBJECT *rxfnc_argv; /* Pointer to argument list. */ + REXXOBJECT rxfnc_retc; /* Return value. */ +} RXOFNCCAL_PARM; + + + /*** Subfunction RXEXFCAL - Scripting Function Calls */ typedef struct _RXEXF_FLAGS { /* fl */ @@ -396,7 +413,7 @@ } RXEXF_FLAGS ; typedef struct _RXEXFCAL_PARM { /* fnc */ - RXFNC_FLAGS rxfnc_flags ; /* function flags */ + RXEXF_FLAGS rxfnc_flags ; /* function flags */ CONSTRXSTRING rxfnc_name; // the called function name size_t rxfnc_argc; /* Number of args in list. */ REXXOBJECT *rxfnc_argv; /* Pointer to argument list. */ @@ -507,19 +524,6 @@ } RXTRCTST_PARM; -typedef struct _RXDBG_FLAGS { /* fl Trace flags */ - unsigned rxftrace; /* Set to run external trace. */ -} RXDBG_FLAGS; - - -typedef struct _RXDBGTST_PARM { /* tst */ - RXDBG_FLAGS rxdbg_flags; /* Set to run external trace before */ - size_t rxdbg_line; - CONSTRXSTRING rxdbg_filename; - CONSTRXSTRING rxdbg_routine; -} RXDBGTST_PARM; - - typedef struct _RXVARNOVALUE_PARM { /* var */ CONSTRXSTRING variable_name; // the request variable name REXXOBJECT value; // returned variable value Modified: main/trunk/api/rexxapidefs.h =================================================================== --- main/trunk/api/rexxapidefs.h 2008-10-07 21:08:02 UTC (rev 3478) +++ main/trunk/api/rexxapidefs.h 2008-10-07 23:20:10 UTC (rev 3479) @@ -194,9 +194,6 @@ #define RXTER 10 /* Termination processing. */ #define RXTEREXT 1 /* subcode value. */ -#define RXDBG 11 /* Test ext trace indicator before instruction. */ -#define RXDBGTST 1 /* subcode value. */ - #define RXEXF 12 /* scripting function call */ #define RXEXFCAL 1 /* subcode value. */ @@ -206,19 +203,9 @@ #define RXVAL 14 /* value() function exit */ #define RXVALCALL 1 /* subcode value. */ -/* Return codes for the debug exit */ +#define RXOFNC 15 /* Process external functions using object values. */ +#define RXOFNCCAL 1 /* subcode value. */ -#define RXDBGOFF 0 /* set trace off */ -#define RXDBGSTEPIN 1 /* set trace on (normal) */ -#define RXDBGSTEPOVER 2 /* set trace on but step over */ -#define RXDBGSTEPOUT 3 /* set step out */ -#define RXDBGENDSTEP 4 /* leaving a subroutine */ -#define RXDBGENTERSUB 5 /* entering a subroutine */ -#define RXDBGLEAVESUB 6 /* leaving a subroutine */ -#define RXDBGLOCATELINE 7 /* locate current line */ -#define RXDBGSTEPAGAIN 8 /* repeat debug pause */ -#define RXDBGSIGNAL 9 /* processing a signal instr. */ -#define RXDBGRECURSIVEOFF 10 /* switch dbg off recursively */ #define RXEXF 12 /* Post order function exit */ #define RXEXFCAL 1 /* subcode value. */ #define RXNOVAL 13 /* NOVALUE exit */ @@ -226,7 +213,7 @@ #define RXVALUE 14 /* VALUE function exit */ #define RXVALUECALL 1 -#define RXNOOFEXITS 15 /* 1 + largest exit number. */ +#define RXNOOFEXITS 16 /* 1 + largest exit number. */ /*** Asynchronous Request Interface defines */ Modified: main/trunk/interpreter/concurrency/RexxActivity.cpp =================================================================== --- main/trunk/interpreter/concurrency/RexxActivity.cpp 2008-10-07 21:08:02 UTC (rev 3478) +++ main/trunk/interpreter/concurrency/RexxActivity.cpp 2008-10-07 23:20:10 UTC (rev 3479) @@ -2213,6 +2213,67 @@ } +bool RexxActivity::callObjectFunctionExit( + RexxActivation *activation, /* calling activation */ + RexxString *rname, /* routine name */ + RexxObject *calltype, /* type of call */ + ProtectedObject &funcresult, /* function result */ + RexxObject **arguments, /* argument array */ + size_t argcount) /* argument count */ +/******************************************************************************/ +/* Function: Calls the SysExitHandler method on the System Object to run */ +/* the function system exit. */ +/******************************************************************************/ +{ + if (isExitEnabled(RXOFNC)) // is the exit enabled? + { + RXOFNCCAL_PARM exit_parm; /* exit parameters */ + /* Start building the exit block */ + exit_parm.rxfnc_flags.rxfferr = 0; /* Initialize error codes to zero */ + exit_parm.rxfnc_flags.rxffnfnd = 0; + + + exit_parm.rxfnc_flags.rxffsub = calltype == OREF_FUNCTIONNAME ? 0 : 1; + /* fill in the name parameter */ + rname->toRxstring(exit_parm.rxfnc_name); + + /* get number of args */ + exit_parm.rxfnc_argc = argcount; + // the argument pointers get passed as is + exit_parm.rxfnc_argv = (REXXOBJECT *)arguments; + // no result value + exit_parm.rxfnc_retc = NULLOBJECT; + /* call the handler */ + if (!callExit(activation, "RXOFNC", RXOFNC, RXOFNCCAL, (void *)&exit_parm)) + { + return true; /* this wasn't handled */ + } + + if (exit_parm.rxfnc_flags.rxfferr) /* function error? */ + { + /* raise an error */ + reportException(Error_Incorrect_call_external, rname); + } + /* Did we find the function?? */ + else if (exit_parm.rxfnc_flags.rxffnfnd) + { + /* also an error */ + reportException(Error_Routine_not_found_name,rname); + } + /* Was it a function call?? */ + if (exit_parm.rxfnc_retc == NULLOBJECT && calltype == OREF_FUNCTIONNAME) + { + /* Have to return data */ + reportException(Error_Function_no_data_function,rname); + } + // set the function result back + funcresult = (RexxObject *)exit_parm.rxfnc_retc; + return false; /* this was handled */ + } + return true; /* not handled */ +} + + bool RexxActivity::callScriptingExit( RexxActivation *activation, /* calling activation */ RexxString *rname, /* routine name */ Modified: main/trunk/interpreter/concurrency/RexxActivity.hpp =================================================================== --- main/trunk/interpreter/concurrency/RexxActivity.hpp 2008-10-07 21:08:02 UTC (rev 3478) +++ main/trunk/interpreter/concurrency/RexxActivity.hpp 2008-10-07 23:20:10 UTC (rev 3479) @@ -210,6 +210,7 @@ bool callTraceExit(RexxActivation *, RexxString *); bool callTerminalInputExit(RexxActivation *, RexxString *&); bool callDebugInputExit(RexxActivation *, RexxString *&); + bool callObjectFunctionExit(RexxActivation *, RexxString *, RexxObject *, ProtectedObject &, RexxObject **, size_t); bool callFunctionExit(RexxActivation *, RexxString *, RexxObject *, ProtectedObject &, RexxObject **, size_t); bool callScriptingExit(RexxActivation *, RexxString *, RexxObject *, ProtectedObject &, RexxObject **, size_t); bool callCommandExit(RexxActivation *, RexxString *, RexxString *, RexxString **, RexxObject **); Modified: main/trunk/interpreter/execution/RexxActivation.cpp =================================================================== --- main/trunk/interpreter/execution/RexxActivation.cpp 2008-10-07 21:08:02 UTC (rev 3478) +++ main/trunk/interpreter/execution/RexxActivation.cpp 2008-10-07 23:20:10 UTC (rev 3479) @@ -2319,7 +2319,13 @@ routine->call(this->activity, target, _arguments, _argcount, calltype, OREF_NULL, EXTERNALCALL, resultObj); return(RexxObject *)resultObj; } - // Step 2: See if the function call exit fields this one + // Step 2a: See if the function call exit fields this one + if (!activity->callObjectFunctionExit(this, target, calltype, resultObj, _arguments, _argcount)) + { + return(RexxObject *)resultObj; + } + + // Step 2b: See if the function call exit fields this one if (!activity->callFunctionExit(this, target, calltype, resultObj, _arguments, _argcount)) { return(RexxObject *)resultObj; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-07 21:08:06
|
Revision: 3478 http://oorexx.svn.sourceforge.net/oorexx/?rev=3478&view=rev Author: bigrixx Date: 2008-10-07 21:08:02 +0000 (Tue, 07 Oct 2008) Log Message: ----------- [ 2152197 ] RexxvariablePool Returns RXSHV_NOAVL Modified Paths: -------------- test/trunk/ooRexx/API/classic/CLASSIC.testGroup Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 21:06:51 UTC (rev 3477) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 21:08:02 UTC (rev 3478) @@ -205,17 +205,17 @@ ::method 'test_20_allocatefree_memory' m1 = .TestMemoryFuncs~new() - retc = m1~TestAllocateFreeMemory(1) + retc = m1~TestAllocateFreeMemory(1) self~assertEquals(0, retc) - retc = m1~TestAllocateFreeMemory(64) + retc = m1~TestAllocateFreeMemory(64) self~assertEquals(0, retc) - retc = m1~TestAllocateFreeMemory(128) + retc = m1~TestAllocateFreeMemory(128) self~assertEquals(0, retc) - retc = m1~TestAllocateFreeMemory(256) + retc = m1~TestAllocateFreeMemory(256) self~assertEquals(0, retc) - retc = m1~TestAllocateFreeMemory(4096) + retc = m1~TestAllocateFreeMemory(4096) self~assertEquals(0, retc) - retc = m1~TestAllocateFreeMemory(65535) + retc = m1~TestAllocateFreeMemory(65535) self~assertEquals(0, retc) ::method 'test_30_variablepool' @@ -227,13 +227,31 @@ test1_val = 'my test string' arr = .array~new(1) arr[1] = .ShvBlock~new() - arr[1]~shvname = 'test1' + arr[1]~shvname = 'TEST1' arr[1]~shvvalue = test1_val arr[1]~shvnamelen = arr[1]~shvname()~length arr[1]~shvvaluelen = arr[1]~shvvalue()~length arr[1]~shvcode = 0 -- RXSHV_SET arr[1]~shvret = 0 retc = TestFVariablePool(arr) + self~assertEquals(1, retc) + self~assertEquals(1, arr[1]~shvret) + self~assertEquals(test1_val, arr[1]~shvvalue) + self~assertEquals(test1_val~length, arr[1]~shvvaluelen) + +::method 'test_31a_variablepool' + vp = .TestVariablePool~new() + test1 = 123 -- give this an existing value + test1_val = 'my test string' + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'TEST1' + arr[1]~shvvalue = test1_val + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 0 -- RXSHV_SET + arr[1]~shvret = 0 + retc = TestFVariablePool(arr) self~assertEquals(0, retc) self~assertEquals(0, arr[1]~shvret) self~assertEquals(test1_val, arr[1]~shvvalue) @@ -244,24 +262,53 @@ test2_val = 'another test string' arr = .array~new(2) arr[1] = .ShvBlock~new() - arr[1]~shvname = 'test1' + arr[1]~shvname = 'TEST1' arr[1]~shvvalue = test1_val arr[1]~shvnamelen = arr[1]~shvname()~length arr[1]~shvvaluelen = arr[1]~shvvalue()~length arr[1]~shvcode = 0 -- RXSHV_SET arr[1]~shvret = 0 arr[2] = .ShvBlock~new() - arr[2]~shvname = 'test2' + arr[2]~shvname = 'TEST2' arr[2]~shvvalue = test2_val arr[2]~shvnamelen = arr[2]~shvname()~length arr[2]~shvvaluelen = arr[2]~shvvalue()~length arr[2]~shvcode = 0 -- RXSHV_SET arr[2]~shvret = 0 retc = TestFVariablePool(arr) - self~assertEquals(0, retc) + self~assertEquals(1, retc) + self~assertEquals(1, arr[1]~shvret) + self~assertEquals(test1_val, arr[1]~shvvalue) + self~assertEquals(test1_val~length, arr[1]~shvvaluelen) + self~assertEquals(test2_val, arr[2]~shvvalue) + self~assertEquals(test2_val~length, arr[2]~shvvaluelen) + +::method 'test_32a_variablepool' + vp = .TestVariablePool~new() + test1 = 123 -- only give one a value + test1_val = 'my test string' + test2_val = 'another test string' + arr = .array~new(2) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'TEST1' + arr[1]~shvvalue = test1_val + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 0 -- RXSHV_SET + arr[1]~shvret = 0 + arr[2] = .ShvBlock~new() + arr[2]~shvname = 'TEST2' + arr[2]~shvvalue = test2_val + arr[2]~shvnamelen = arr[2]~shvname()~length + arr[2]~shvvaluelen = arr[2]~shvvalue()~length + arr[2]~shvcode = 0 -- RXSHV_SET + arr[2]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(1, retc) self~assertEquals(0, arr[1]~shvret) self~assertEquals(test1_val, arr[1]~shvvalue) self~assertEquals(test1_val~length, arr[1]~shvvaluelen) + self~assertEquals(1, arr[2]~shvret) self~assertEquals(test2_val, arr[2]~shvvalue) self~assertEquals(test2_val~length, arr[2]~shvvaluelen) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-07 21:06:54
|
Revision: 3477 http://oorexx.svn.sourceforge.net/oorexx/?rev=3477&view=rev Author: bigrixx Date: 2008-10-07 21:06:51 +0000 (Tue, 07 Oct 2008) Log Message: ----------- [ 2152197 ] RexxvariablePool Returns RXSHV_NOAVL Modified Paths: -------------- main/trunk/interpreter/execution/RexxNativeActivation.cpp main/trunk/interpreter/execution/RexxNativeActivation.hpp Modified: main/trunk/interpreter/execution/RexxNativeActivation.cpp =================================================================== --- main/trunk/interpreter/execution/RexxNativeActivation.cpp 2008-10-07 21:05:14 UTC (rev 3476) +++ main/trunk/interpreter/execution/RexxNativeActivation.cpp 2008-10-07 21:06:51 UTC (rev 3477) @@ -1301,6 +1301,7 @@ trapErrors = true; // we trap error conditions now try { + enableVariablepool(); // enable the variable pool interface here activity->releaseAccess(); /* force this to "safe" mode */ /* process the method call */ (*methp)((RexxCallContext *)&context, arguments); @@ -1321,6 +1322,7 @@ } trapErrors = false; // no more error trapping + disableVariablepool(); // disable the variable pool from here // belt and braces...this restores the activity level to whatever // level we had when we made the callout. this->activity->restoreActivationLevel(activityLevel); @@ -2518,6 +2520,7 @@ /* Function: Retriev a list of all variables in the current context. */ /******************************************************************************/ { + this->resetNext(); // all next operations must be reset return activation->getAllLocalVariables(); } Modified: main/trunk/interpreter/execution/RexxNativeActivation.hpp =================================================================== --- main/trunk/interpreter/execution/RexxNativeActivation.hpp 2008-10-07 21:05:14 UTC (rev 3476) +++ main/trunk/interpreter/execution/RexxNativeActivation.hpp 2008-10-07 21:06:51 UTC (rev 3477) @@ -114,7 +114,7 @@ inline void termination() { this->guardOff();} void accessCallerContext(); - inline char getVpavailable() {return this->vpavailable;} + inline bool getVpavailable() {return this->vpavailable;} inline RexxString *getMessageName() {return this->msgname;} inline size_t nextVariable() {return this->nextvariable;} inline RexxStem *nextStem() {return this->nextstem;} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-10-07 21:05:19
|
Revision: 3476 http://oorexx.svn.sourceforge.net/oorexx/?rev=3476&view=rev Author: wdashley Date: 2008-10-07 21:05:14 +0000 (Tue, 07 Oct 2008) Log Message: ----------- ArtifactID: None Comment: Some minor corrections to the variable pool test methods. Modified Paths: -------------- test/trunk/ooRexx/API/classic/CLASSIC.testGroup Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 20:49:02 UTC (rev 3475) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 21:05:14 UTC (rev 3476) @@ -224,7 +224,6 @@ self~assertEquals(144, retc) ::method 'test_31_variablepool' - vp = .TestVariablePool~new() test1_val = 'my test string' arr = .array~new(1) arr[1] = .ShvBlock~new() @@ -241,7 +240,6 @@ self~assertEquals(test1_val~length, arr[1]~shvvaluelen) ::method 'test_32_variablepool' - vp = .TestVariablePool~new() test1_val = 'my test string' test2_val = 'another test string' arr = .array~new(2) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-10-07 20:49:11
|
Revision: 3475 http://oorexx.svn.sourceforge.net/oorexx/?rev=3475&view=rev Author: wdashley Date: 2008-10-07 20:49:02 +0000 (Tue, 07 Oct 2008) Log Message: ----------- ArtifactID: None Comment: Interium commit for the variable pool API. Modified Paths: -------------- test/trunk/external/API/orxclassic.cpp test/trunk/ooRexx/API/classic/CLASSIC.testGroup test/trunk/ooRexx/API/classic/CLASSICPackage.cls Modified: test/trunk/external/API/orxclassic.cpp =================================================================== --- test/trunk/external/API/orxclassic.cpp 2008-10-07 19:01:24 UTC (rev 3474) +++ test/trunk/external/API/orxclassic.cpp 2008-10-07 20:49:02 UTC (rev 3475) @@ -38,6 +38,7 @@ #include <rexx.h> #include <oorexxapi.h> #include <string.h> +#include <stdio.h> RexxMethod1(RexxObjectPtr, // Return type TestCreateQueue, // Method name @@ -143,8 +144,15 @@ return RexxFreeMemory(block); } -RexxMethod1(int, // Return type - TestVariablePool, // Method name +RexxMethod0(int, // Return type + TestMVariablePool) // Method name +{ + RexxReturnCode retc = RexxVariablePool(NULL); + return retc; +} + +RexxRoutine1(int, // Return type + TestFVariablePool, // Function name RexxArrayObject, arr) // Array of shvblocks { RexxReturnCode retc; @@ -169,6 +177,7 @@ if (blocks == NULL) { blocks = currentblock; } + currentblock->shvnext = NULL; RexxObjectPtr entry = context->ArrayAt(arr, ctr); RexxObjectPtr val = context->SendMessage0(entry, "shvcode"); context->ObjectToUnsignedInt32(val, &tempint); @@ -188,6 +197,7 @@ val = context->SendMessage0(entry, "shvname"); currentblock->shvname.strptr = context->ObjectToStringValue(val); currentblock->shvname.strlength = strlen(currentblock->shvname.strptr); +// printf("setting %s\n", currentblock->shvname.strptr); val = context->SendMessage0(entry, "shvvalue"); currentblock->shvvalue.strptr = (char*)malloc(strlen(context->ObjectToStringValue(val)) + 1); strcpy(currentblock->shvvalue.strptr, context->ObjectToStringValue(val)); @@ -267,11 +277,17 @@ REXX_METHOD(TestPullFromQueue, TestPullFromQueue), REXX_METHOD(TestClearQueue, TestClearQueue), REXX_METHOD(TestAllocateFreeMemory, TestAllocateFreeMemory), - REXX_METHOD(TestVariablePool, TestVariablePool), + REXX_METHOD(TestMVariablePool, TestMVariablePool), REXX_LAST_METHOD() }; +RexxRoutineEntry orxtest_routines[] = { + REXX_TYPED_ROUTINE(TestFVariablePool, TestFVariablePool), + REXX_LAST_ROUTINE() +}; + + RexxPackageEntry UnitTest_package_entry = { STANDARD_PACKAGE_HEADER REXX_INTERPRETER_4_0_0, // anything after 4.0.0 will work @@ -279,7 +295,7 @@ "1.0.0", // package information NULL, // no load/unload functions NULL, - NULL, // the exported routines + orxtest_routines, // the exported routines orxtest_methods // the exported methods }; Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 19:01:24 UTC (rev 3474) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 20:49:02 UTC (rev 3475) @@ -218,8 +218,13 @@ retc = m1~TestAllocateFreeMemory(65535) self~assertEquals(0, retc) -::method 'test_30_variablepool_1' +::method 'test_30_variablepool' vp = .TestVariablePool~new() + retc = vp~TestVariablePool() + self~assertEquals(144, retc) + +::method 'test_31_variablepool' + vp = .TestVariablePool~new() test1_val = 'my test string' arr = .array~new(1) arr[1] = .ShvBlock~new() @@ -229,9 +234,38 @@ arr[1]~shvvaluelen = arr[1]~shvvalue()~length arr[1]~shvcode = 0 -- RXSHV_SET arr[1]~shvret = 0 - vp~TestVariablePool(arr) + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(0, arr[1]~shvret) self~assertEquals(test1_val, arr[1]~shvvalue) self~assertEquals(test1_val~length, arr[1]~shvvaluelen) +::method 'test_32_variablepool' + vp = .TestVariablePool~new() + test1_val = 'my test string' + test2_val = 'another test string' + arr = .array~new(2) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'test1' + arr[1]~shvvalue = test1_val + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 0 -- RXSHV_SET + arr[1]~shvret = 0 + arr[2] = .ShvBlock~new() + arr[2]~shvname = 'test2' + arr[2]~shvvalue = test2_val + arr[2]~shvnamelen = arr[2]~shvname()~length + arr[2]~shvvaluelen = arr[2]~shvvalue()~length + arr[2]~shvcode = 0 -- RXSHV_SET + arr[2]~shvret = 0 + retc = TestFVariablePool(arr) + self~assertEquals(0, retc) + self~assertEquals(0, arr[1]~shvret) + self~assertEquals(test1_val, arr[1]~shvvalue) + self~assertEquals(test1_val~length, arr[1]~shvvaluelen) + self~assertEquals(test2_val, arr[2]~shvvalue) + self~assertEquals(test2_val~length, arr[2]~shvvaluelen) + Modified: test/trunk/ooRexx/API/classic/CLASSICPackage.cls =================================================================== --- test/trunk/ooRexx/API/classic/CLASSICPackage.cls 2008-10-07 19:01:24 UTC (rev 3474) +++ test/trunk/ooRexx/API/classic/CLASSICPackage.cls 2008-10-07 20:49:02 UTC (rev 3475) @@ -63,7 +63,7 @@ ::class TestVariablePool public -::method TestVariablePool PUBLIC EXTERNAL "LIBRARY orxclassic TestVariablePool" +::method TestVariablePool PUBLIC EXTERNAL "LIBRARY orxclassic TestMVariablePool" ::class ShvBlock public This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wda...@us...> - 2008-10-07 19:01:32
|
Revision: 3474 http://oorexx.svn.sourceforge.net/oorexx/?rev=3474&view=rev Author: wdashley Date: 2008-10-07 19:01:24 +0000 (Tue, 07 Oct 2008) Log Message: ----------- ArtifactID: None Comment: First variable pool test. More to come. Modified Paths: -------------- test/trunk/external/API/orxclassic.cpp test/trunk/ooRexx/API/classic/CLASSIC.testGroup test/trunk/ooRexx/API/classic/CLASSICPackage.cls Modified: test/trunk/external/API/orxclassic.cpp =================================================================== --- test/trunk/external/API/orxclassic.cpp 2008-10-07 17:58:36 UTC (rev 3473) +++ test/trunk/external/API/orxclassic.cpp 2008-10-07 19:01:24 UTC (rev 3474) @@ -143,7 +143,120 @@ return RexxFreeMemory(block); } +RexxMethod1(int, // Return type + TestVariablePool, // Method name + RexxArrayObject, arr) // Array of shvblocks +{ + RexxReturnCode retc; + size_t members = context->ArrayItems(arr); + size_t ctr; + PSHVBLOCK blocks = NULL; + PSHVBLOCK nextblock = NULL; + PSHVBLOCK currentblock = NULL; + unsigned int tempint; + if (members == 0) { + return RXSHV_NOAVL; + } + + // set up the shvblocks fro the array + for (ctr = 1; ctr <= members; ctr++) { + nextblock = (PSHVBLOCK)malloc(sizeof(SHVBLOCK)); + if (currentblock != NULL) { + currentblock->shvnext = nextblock; + } + currentblock = nextblock; + if (blocks == NULL) { + blocks = currentblock; + } + RexxObjectPtr entry = context->ArrayAt(arr, ctr); + RexxObjectPtr val = context->SendMessage0(entry, "shvcode"); + context->ObjectToUnsignedInt32(val, &tempint); + currentblock->shvcode = (unsigned char)tempint; + val = context->SendMessage0(entry, "shvret"); + context->ObjectToUnsignedInt32(val, &tempint); + currentblock->shvret = (unsigned char)tempint; + val = context->SendMessage0(entry, "shvnamelen"); + context->ObjectToUnsignedInt32(val, &tempint); + currentblock->shvnamelen = (size_t)tempint; + val = context->SendMessage0(entry, "shvvaluelen"); + context->ObjectToUnsignedInt32(val, &tempint); + currentblock->shvvaluelen = (size_t)tempint; + switch (currentblock->shvcode) { + case RXSHV_SET: + case RXSHV_SYSET: + val = context->SendMessage0(entry, "shvname"); + currentblock->shvname.strptr = context->ObjectToStringValue(val); + currentblock->shvname.strlength = strlen(currentblock->shvname.strptr); + val = context->SendMessage0(entry, "shvvalue"); + currentblock->shvvalue.strptr = (char*)malloc(strlen(context->ObjectToStringValue(val)) + 1); + strcpy(currentblock->shvvalue.strptr, context->ObjectToStringValue(val)); + currentblock->shvvalue.strlength = strlen(currentblock->shvvalue.strptr); + break; + case RXSHV_FETCH: + case RXSHV_SYFET: + val = context->SendMessage0(entry, "shvname"); + currentblock->shvname.strptr = context->ObjectToStringValue(val); + currentblock->shvname.strlength = strlen(currentblock->shvname.strptr); + currentblock->shvvalue.strptr = (char*)malloc(currentblock->shvvaluelen + 1); + currentblock->shvvalue.strlength = currentblock->shvvaluelen + 1; + break; + case RXSHV_DROPV: + case RXSHV_SYDRO: + val = context->SendMessage0(entry, "shvname"); + currentblock->shvname.strptr = context->ObjectToStringValue(val); + currentblock->shvname.strlength = strlen(currentblock->shvname.strptr); + currentblock->shvvalue.strptr = NULL; + currentblock->shvvalue.strlength = 0; + break; + case RXSHV_NEXTV: + break; + case RXSHV_PRIV: + break; + default: + free(currentblock); + return RXSHV_NOAVL; + } + } + + // call the variable pool interface + retc = RexxVariablePool(blocks); + + // set the array to the shvblocks + currentblock = blocks; + for (ctr = 1; ctr <= members; ctr++) { + RexxObjectPtr entry = context->ArrayAt(arr, ctr); + context->SendMessage1(entry, "shvret=", context->UnsignedInt32ToObject((uint32_t)currentblock->shvret)); + switch (currentblock->shvcode) { + case RXSHV_SET: + case RXSHV_SYSET: + free(currentblock->shvvalue.strptr); + break; + case RXSHV_FETCH: + case RXSHV_SYFET: + context->SendMessage1(entry, "shvvalue=", context->NewStringFromAsciiz(currentblock->shvvalue.strptr)); + context->SendMessage1(entry, "shvvaluelen=", context->UnsignedInt32ToObject((uint32_t)currentblock->shvvalue.strlength)); + free(currentblock->shvvalue.strptr); + break; + case RXSHV_DROPV: + case RXSHV_SYDRO: + break; + case RXSHV_NEXTV: + break; + case RXSHV_PRIV: + break; + default: + break; + } + nextblock = currentblock->shvnext; + free(currentblock); + currentblock = nextblock; + } + + return retc; +} + + RexxMethodEntry orxtest_methods[] = { REXX_METHOD(TestCreateQueue, TestCreateQueue), REXX_METHOD(TestOpenQueue, TestOpenQueue), @@ -154,6 +267,7 @@ REXX_METHOD(TestPullFromQueue, TestPullFromQueue), REXX_METHOD(TestClearQueue, TestClearQueue), REXX_METHOD(TestAllocateFreeMemory, TestAllocateFreeMemory), + REXX_METHOD(TestVariablePool, TestVariablePool), REXX_LAST_METHOD() }; Modified: test/trunk/ooRexx/API/classic/CLASSIC.testGroup =================================================================== --- test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 17:58:36 UTC (rev 3473) +++ test/trunk/ooRexx/API/classic/CLASSIC.testGroup 2008-10-07 19:01:24 UTC (rev 3474) @@ -218,9 +218,20 @@ retc = m1~TestAllocateFreeMemory(65535) self~assertEquals(0, retc) +::method 'test_30_variablepool_1' + vp = .TestVariablePool~new() + test1_val = 'my test string' + arr = .array~new(1) + arr[1] = .ShvBlock~new() + arr[1]~shvname = 'test1' + arr[1]~shvvalue = test1_val + arr[1]~shvnamelen = arr[1]~shvname()~length + arr[1]~shvvaluelen = arr[1]~shvvalue()~length + arr[1]~shvcode = 0 -- RXSHV_SET + arr[1]~shvret = 0 + vp~TestVariablePool(arr) + self~assertEquals(test1_val, arr[1]~shvvalue) + self~assertEquals(test1_val~length, arr[1]~shvvaluelen) - - - Modified: test/trunk/ooRexx/API/classic/CLASSICPackage.cls =================================================================== --- test/trunk/ooRexx/API/classic/CLASSICPackage.cls 2008-10-07 17:58:36 UTC (rev 3473) +++ test/trunk/ooRexx/API/classic/CLASSICPackage.cls 2008-10-07 19:01:24 UTC (rev 3474) @@ -55,7 +55,23 @@ ::method TestPullFromQueue PUBLIC EXTERNAL "LIBRARY orxclassic TestPullFromQueue" ::method TestClearQueue PUBLIC EXTERNAL "LIBRARY orxclassic TestClearQueue" + ::class TestMemoryFuncs public ::method TestAllocateFreeMemory PUBLIC EXTERNAL "LIBRARY orxclassic TestAllocateFreeMemory" + +::class TestVariablePool public + +::method TestVariablePool PUBLIC EXTERNAL "LIBRARY orxclassic TestVariablePool" + + +::class ShvBlock public + +::attribute shvname +::attribute shvvalue +::attribute shvnamelen +::attribute shvvaluelen +::attribute shvcode +::attribute shvret + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-07 17:58:38
|
Revision: 3473 http://oorexx.svn.sourceforge.net/oorexx/?rev=3473&view=rev Author: bigrixx Date: 2008-10-07 17:58:36 +0000 (Tue, 07 Oct 2008) Log Message: ----------- [ 2151677 ] Add RS and LINE to .RexxContext Modified Paths: -------------- test/trunk/ooRexx/base/class/RexxContext.testGroup Modified: test/trunk/ooRexx/base/class/RexxContext.testGroup =================================================================== --- test/trunk/ooRexx/base/class/RexxContext.testGroup 2008-10-07 17:58:04 UTC (rev 3472) +++ test/trunk/ooRexx/base/class/RexxContext.testGroup 2008-10-07 17:58:36 UTC (rev 3473) @@ -133,6 +133,16 @@ self~expectSyntax(93.970) c = .context~copy +::method TestLine01 + self~assertSame(.line, .context~line) + +::method TestRS01 + self~assertSame(.nil, .context~rs) + 'echo foo' + self~assertSame(.rs, .context~rs) + + + ::routine testargs return .context~args This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-07 17:58:06
|
Revision: 3472 http://oorexx.svn.sourceforge.net/oorexx/?rev=3472&view=rev Author: bigrixx Date: 2008-10-07 17:58:04 +0000 (Tue, 07 Oct 2008) Log Message: ----------- [ 2151677 ] Add RS and LINE to .RexxContext Modified Paths: -------------- docs/trunk/rexxref/utilityclasses.sgml Modified: docs/trunk/rexxref/utilityclasses.sgml =================================================================== --- docs/trunk/rexxref/utilityclasses.sgml 2008-10-07 17:57:20 UTC (rev 3471) +++ docs/trunk/rexxref/utilityclasses.sgml 2008-10-07 17:58:04 UTC (rev 3472) @@ -5388,6 +5388,22 @@ </para> </section> +<section id="mthRexxContextLine"><title>line</title> +<indexterm><primary>line method</primary> +<secondary>of RexxContextclass</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>line method</secondary> +<tertiary>of RexxContext class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-line------------------------------------------------------->< +]]> +</programlisting> +<para>Returns the context current execution line. This is equivalent to use the +.LINE environment symbol. +</para> +</section> + <section id="mthRexxContextPackage"><title>package</title> <indexterm><primary>package method</primary> <secondary>of RexxContextclass</secondary></indexterm> @@ -5403,6 +5419,23 @@ </para> </section> +<section id="mthRexxContextRS"><title>rs</title> +<indexterm><primary>rs method</primary> +<secondary>of RexxContextclass</secondary></indexterm> +<indexterm><primary>method</primary> +<secondary>rs method</secondary> +<tertiary>of RexxContext class</tertiary></indexterm> +<programlisting> +<![CDATA[ +>>-rs------------------------------------------------------->< +]]> +</programlisting> +<para>Returns the context current return status value. If no host commands have +been issued in the current context, .nil is returned. This is equivalent to use +the .RS environment symbol. +</para> +</section> + <section id="mthRexxContextVariables"><title>variables</title> <indexterm><primary>variables method</primary> <secondary>of RexxContextclass</secondary></indexterm> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-07 17:57:28
|
Revision: 3471 http://oorexx.svn.sourceforge.net/oorexx/?rev=3471&view=rev Author: bigrixx Date: 2008-10-07 17:57:20 +0000 (Tue, 07 Oct 2008) Log Message: ----------- [ 2151677 ] Add RS and LINE to .RexxContext Modified Paths: -------------- main/trunk/interpreter/classes/ContextClass.cpp main/trunk/interpreter/classes/ContextClass.hpp main/trunk/interpreter/execution/CPPCode.cpp main/trunk/interpreter/execution/RexxActivation.cpp main/trunk/interpreter/execution/RexxActivation.hpp main/trunk/interpreter/memory/Setup.cpp Modified: main/trunk/interpreter/classes/ContextClass.cpp =================================================================== --- main/trunk/interpreter/classes/ContextClass.cpp 2008-10-07 15:47:17 UTC (rev 3470) +++ main/trunk/interpreter/classes/ContextClass.cpp 2008-10-07 17:57:20 UTC (rev 3471) @@ -257,3 +257,26 @@ return conditionobj == OREF_NULL ? TheNilObject : conditionobj->copy(); } + +/** + * Return the execution context current line position. + * + * @return The current line number of the context. + */ +RexxObject *RexxContext::getLine() +{ + checkValid(); + return activation->getContextLine(); +} + + +/** + * Return the execution context return status + * + * @return The .RS value of the context. + */ +RexxObject *RexxContext::getRS() +{ + checkValid(); + return activation->getContextReturnStatus(); +} Modified: main/trunk/interpreter/classes/ContextClass.hpp =================================================================== --- main/trunk/interpreter/classes/ContextClass.hpp 2008-10-07 15:47:17 UTC (rev 3470) +++ main/trunk/interpreter/classes/ContextClass.hpp 2008-10-07 17:57:20 UTC (rev 3471) @@ -73,6 +73,8 @@ RexxObject *getExecutable(); RexxObject *getArgs(); RexxObject *getCondition(); + RexxObject *getLine(); + RexxObject *getRS(); RexxObject *copyRexx(); RexxObject *newRexx(RexxObject **args, size_t argc); Modified: main/trunk/interpreter/execution/CPPCode.cpp =================================================================== --- main/trunk/interpreter/execution/CPPCode.cpp 2008-10-07 15:47:17 UTC (rev 3470) +++ main/trunk/interpreter/execution/CPPCode.cpp 2008-10-07 17:57:20 UTC (rev 3471) @@ -940,6 +940,8 @@ CPPM(RexxContext::getExecutable), CPPM(RexxContext::getArgs), CPPM(RexxContext::getCondition), +CPPM(RexxContext::getLine), +CPPM(RexxContext::getRS), NULL /* final terminating method */ }; Modified: main/trunk/interpreter/execution/RexxActivation.cpp =================================================================== --- main/trunk/interpreter/execution/RexxActivation.cpp 2008-10-07 15:47:17 UTC (rev 3470) +++ main/trunk/interpreter/execution/RexxActivation.cpp 2008-10-07 17:57:20 UTC (rev 3471) @@ -2210,6 +2210,46 @@ /** + * Return the line context information for a context. + * + * @return The current execution line. + */ +RexxObject *RexxActivation::getContextLine() +{ + // if this is an interpret, we need to report the line number of + // the context that calls the interpret. + if (this->isInterpret()) + { + return parent->getContextLine(); + } + else + { + + return new_integer(this->current->getLineNumber()); + } +} + + +/** + * Return the RS context information for a activation. + * + * @return The current execution line. + */ +RexxObject *RexxActivation::getContextReturnStatus() +{ + if (this->settings.flags&return_status_set) + { + /* returned as an integer object */ + return new_integer(this->settings.return_status); + } + else + { + return TheNilObject; + } +} + + +/** * Attempt to call a function stored in the macrospace. * * @param target The target function name. Modified: main/trunk/interpreter/execution/RexxActivation.hpp =================================================================== --- main/trunk/interpreter/execution/RexxActivation.hpp 2008-10-07 15:47:17 UTC (rev 3470) +++ main/trunk/interpreter/execution/RexxActivation.hpp 2008-10-07 17:57:20 UTC (rev 3471) @@ -443,6 +443,9 @@ } } + RexxObject *getContextLine(); + RexxObject *getContextReturnStatus(); + inline RexxVariableDictionary *getLocalVariables() { return settings.local_variables.getDictionary(); Modified: main/trunk/interpreter/memory/Setup.cpp =================================================================== --- main/trunk/interpreter/memory/Setup.cpp 2008-10-07 15:47:17 UTC (rev 3470) +++ main/trunk/interpreter/memory/Setup.cpp 2008-10-07 17:57:20 UTC (rev 3471) @@ -638,6 +638,8 @@ defineKernelMethod(CHAR_VARIABLES ,TheRexxContextBehaviour, CPPM(RexxContext::getVariables), 0); defineKernelMethod(CHAR_ARGS ,TheRexxContextBehaviour, CPPM(RexxContext::getArgs), 0); defineKernelMethod(CHAR_CONDITION ,TheRexxContextBehaviour, CPPM(RexxContext::getCondition), 0); + defineKernelMethod("LINE" ,TheRexxContextBehaviour, CPPM(RexxContext::getLine), 0); + defineKernelMethod("RS" ,TheRexxContextBehaviour, CPPM(RexxContext::getRS), 0); /* Add the instance methods to the */ /* instance behaviour mdict */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mie...@us...> - 2008-10-07 15:47:20
|
Revision: 3470 http://oorexx.svn.sourceforge.net/oorexx/?rev=3470&view=rev Author: miesfeld Date: 2008-10-07 15:47:17 +0000 (Tue, 07 Oct 2008) Log Message: ----------- Remove unused variables Modified Paths: -------------- main/trunk/extensions/platform/windows/ole/events.cpp main/trunk/extensions/platform/windows/ole/orexxole.c Modified: main/trunk/extensions/platform/windows/ole/events.cpp =================================================================== --- main/trunk/extensions/platform/windows/ole/events.cpp 2008-10-07 15:01:37 UTC (rev 3469) +++ main/trunk/extensions/platform/windows/ole/events.cpp 2008-10-07 15:47:17 UTC (rev 3470) @@ -255,8 +255,6 @@ else if (context->IsArray(rxResult)) { RexxArrayObject rxArray = (RexxArrayObject)rxResult; - RexxObjectPtr RexxStr = NULL; - const char *pString = NULL; wholenumber_t k; context->ObjectToWholeNumber(context->SendMessage0(rxArray,"DIMENSION"), &k); Modified: main/trunk/extensions/platform/windows/ole/orexxole.c =================================================================== --- main/trunk/extensions/platform/windows/ole/orexxole.c 2008-10-07 15:01:37 UTC (rev 3469) +++ main/trunk/extensions/platform/windows/ole/orexxole.c 2008-10-07 15:47:17 UTC (rev 3470) @@ -1419,7 +1419,6 @@ RexxObjectPtr OLEObjectClass = NULL; HRESULT hResult; BOOL fByRef = FALSE; - VARIANT *pVariant2 = NULL; IDispatch *pOleObject = NULL; if ( V_VT(pVariant) & VT_BYREF ) @@ -1631,7 +1630,6 @@ */ bool Rexx2Variant(RexxThreadContext *context, RexxObjectPtr _RxObject, VARIANT *pVariant, VARTYPE _DestVt, size_t iArgPos) { - BOOL fDone = FALSE; BOOL fByRef = FALSE; VARIANT sVariant; HRESULT hResult; @@ -1760,7 +1758,6 @@ } else { - LPOLESTR lpUniBuffer = NULL; wholenumber_t intval; if (context->ObjectToWholeNumber(RxObject, &intval)) @@ -2036,8 +2033,6 @@ POLEFUNCINFO pFuncInfo = NULL; POLECONSTINFO pConstInfo = NULL; BSTR bstrName; - // cleanup only to avoid compiler warning OLECHAR OleBuffer[100]; - LPOLESTR lpOleStrBuffer = NULL; // = OleBuffer; PSZ pszName = NULL; /* get information for all functions */ @@ -2306,7 +2301,6 @@ POLEFUNCINFO2 pTemp; POLEFUNCINFO pFuncInfo = NULL; BSTR *pbStrings; - BOOL fNonHidden = TRUE; int j; unsigned short i; unsigned int uFlags; @@ -2421,7 +2415,6 @@ TYPEATTR *pTypeAttr = NULL; ITypeInfo *pCoClass = NULL; TYPEKIND kind; - OLEObjectEvent *pEventHandler = NULL; unsigned int index; unsigned int icnt, icnt2; int implFlags=0; @@ -2853,9 +2846,6 @@ IDispatch *pDispatch = NULL; ITypeInfo *pTypeInfo = NULL; POLECLASSINFO pClsInfo = NULL; - OLEObjectEvent *pEventHandler = NULL; // event handling - IConnectionPoint *pConnectionPoint = NULL; // event handling - DWORD dwCookie = 0; // event handling if ( !fInitialized ) OLEInit(); @@ -3964,7 +3954,6 @@ ITypeInfo *pTypeInfo = NULL; MEMBERID MemId; POLECLASSINFO pClsInfo = NULL; - POLEFUNCINFO pFuncInfo = NULL; BOOL fFound = FALSE; DISPPARAMS dp; VARIANT sResult; @@ -5393,7 +5382,6 @@ bool getClassInfoFromTypeInfo(ITypeInfo *pInterfaceTypeInfo, ITypeInfo **ppCoClassTypeInfo) { ITypeLib *pTypeLib = NULL; - TYPEATTR *pTypeAttr = NULL; ITypeInfo *pTypeInfo = NULL; TYPEKIND kind; HRESULT hResult; @@ -5458,7 +5446,6 @@ ITypeInfo *pTypeInfo = NULL; HREFTYPE hRefType = NULL; unsigned int i; - int flags = 0; bool match = false; HRESULT hResult; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mie...@us...> - 2008-10-07 15:05:58
|
Revision: 3469 http://oorexx.svn.sourceforge.net/oorexx/?rev=3469&view=rev Author: miesfeld Date: 2008-10-07 15:01:37 +0000 (Tue, 07 Oct 2008) Log Message: ----------- [ 2151611 ] Update windows-build.txt Add details on the supported compilers and details on how to build 64-bit ooRexx, on Windows. Modified Paths: -------------- main/trunk/windows-build.txt Modified: main/trunk/windows-build.txt =================================================================== --- main/trunk/windows-build.txt 2008-10-07 00:54:29 UTC (rev 3468) +++ main/trunk/windows-build.txt 2008-10-07 15:01:37 UTC (rev 3469) @@ -24,7 +24,8 @@ the source tree. This directory can be given any name. Release Source File Archive: Download from SourceForge the archive desired, -for instance, ooRexx-3.1.2.zip, and unzip it in a work directory. +for instance, ooRexx-3.2.0.zip or ooRexx-4.0.0.zip, and unzip it in a work +directory. Build Requirements ================== @@ -33,19 +34,27 @@ options, alternatives, or caveats are discussed at the relevant point in the build instructions. -[Required] Microsoft Visual C++ V 6.0 plus service packs, or later. +[Required] Visual C++ .NET 2003 (known also as Visual C++ 7.1), plus service +packs, or later. Visual C++ 2005 is a good choice. -[Required] Microsoft Platform SDK February 2003, or later. +Note: +----- +Visual C++ 6.0 is no longer supported and the code base will not compile +using that version of Visual C++. +[Required] Microsoft Platform SDK February 2003, or later. A later version +of the SDK is preferable. + The environment variables for the C++ compiler and the Platform SDK *MUST* be set correctly to build ooRexx. See the Environment set up section below for details. Note: The release ooRexx, built by the project team, is built using Visual -C++ 6.0 and the February 2003 SDK. However, ooRexx builds without problems -using later versions of these tools. For instance, ooRexx is easily built -using Microsoft Visual Studio 2005 and the Windows Server 2003 R2 Platform -SDK. +C++ 2005 and the Windows Server 2003 R2 Platform SDK. However, ooRexx +builds without problems using later versions of these tools. For instance, +ooRexx can be built using Microsoft Visual Studio 2008 and the latest +version of the Windows SDK. In addition, ooRexx will build using the free +Visual C++ Express editions. Microsoft has the tendency to move the download URL for the SDKs, often. A good starting point for locating a SDK is: @@ -68,7 +77,7 @@ If building on an XP system, the builder could edit the batch file(s) and replace killer with taskkill. -[Required] Some form of a touch program, (or Xalan/Xerces.) +[Required] Some form of a touch program, or Xalan/Xerces. Note: When using source checked out from SVN, 'touching' the proper files negates the necessity of having Xalan available. The easiest approach here @@ -123,6 +132,14 @@ Environment set up ----------------- +* Set the ooRexx build batch file variables. + +Set SRC_DIR to the top-level directory of the source tree. Set SRC_DRV to +the drive letter of the drive the source is located on. For example: + +F:\>set SRC_DIR=\interpreter-3.x +F:\>set SRC_DRV=E: + * Set the environment variables for the C++ compiler and the Platform SDK. Depending on how the builder has installed these tools, the environment @@ -145,34 +162,22 @@ F:\>call F:\Tools\MsVisualStudio.2005\VC\vcvarsall.bat x86 F:\>call F:\Tools\MsPlatformSDK\SetEnv.cmd /XP32 /RETAIL -NOTE: ------ -In order to support the various VC++ compilers, the MSVCVER environment -variable must be set. In almost all cases, this happens automatically by -using the batch files above. However, with some combinations of Visual C++ -and the Platform SDK, it may not get set. In these cases, the builder -*MUST* set it manually in the environment. Use these values, picking the -value that matches the level of the Visual C++ compiler in use: +NOTE - Building 64-bit ooRexx: +----------------------------- +ooRexx can be built as a 32-bit or 64-bit application with no changes to the +ooRexx source code. Whether a 32-bit or 64-bit ooRexx is built is +determined by how the builder sets up the Visual C++ environment. -Visual C++ 2008 == 9.0 -Visual C++ 2005 == 8.0 -Visual C++ 2003 == 7.0 -Visual C++ 6.0 == 6.0 +To build the 64-bit version, use the 64-bit compiler tools. The 64-bit +compiler tools are used when the builder provides the correct options to +vcvarsall.bat and / or SetEnv.cmd. To determine the options use the /? +arg. For example: -If, for instance, the compiler in use is Visual C++ 2003 and MSVCVER is not -getting set, then the builder should set it in the environment with this -command: +C:\home\Tools\Visual.Studio.8\VC\vcvarsall.bat /? -set MSVCVER=7.0 +In general, the amd64 option is what is needed to use the 64-bit tools. +This may vary depending on the exact version of VC++ and the SDK. -* Set the ooRexx build batch file variables. - -Set SRC_DIR to the top-level directory of the source tree. Set SRC_DRV to -the drive letter of the drive the source is located on. For example: - -F:\>set SRC_DIR=\interpreter-3.x -F:\>set SRC_DRV=E: - Build ----- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mie...@us...> - 2008-10-07 02:22:05
|
Revision: 3468 http://oorexx.svn.sourceforge.net/oorexx/?rev=3468&view=rev Author: miesfeld Date: 2008-10-07 00:54:29 +0000 (Tue, 07 Oct 2008) Log Message: ----------- Add the shebang line to the socket examples and add the examples to the Windows packageing step. Modified Paths: -------------- main/trunk/platform/windows/install/oorexx.nsi main/trunk/samples/scclient.rex main/trunk/samples/scserver.rex main/trunk/samples/sfclient.rex main/trunk/samples/sfserver.rex Modified: main/trunk/platform/windows/install/oorexx.nsi =================================================================== --- main/trunk/platform/windows/install/oorexx.nsi 2008-10-07 00:23:33 UTC (rev 3467) +++ main/trunk/platform/windows/install/oorexx.nsi 2008-10-07 00:54:29 UTC (rev 3468) @@ -220,7 +220,11 @@ File "${SRCDIR}\samples\properties.rex" File "${SRCDIR}\samples\qdate.rex" File "${SRCDIR}\samples\qtime.rex" + File "${SRCDIR}\samples\scclient.rex" + File "${SRCDIR}\samples\scserver.rex" File "${SRCDIR}\samples\semcls.rex" + File "${SRCDIR}\samples\sfclient.rex" + File "${SRCDIR}\samples\sfserver.rex" File "${SRCDIR}\samples\stack.rex" File "${SRCDIR}\samples\usecomp.rex" File "${SRCDIR}\samples\usepipe.rex" Modified: main/trunk/samples/scclient.rex =================================================================== --- main/trunk/samples/scclient.rex 2008-10-07 00:23:33 UTC (rev 3467) +++ main/trunk/samples/scclient.rex 2008-10-07 00:54:29 UTC (rev 3468) @@ -1,3 +1,4 @@ +#!/usr/bin/rexx /*----------------------------------------------------------------------------*/ /* */ /* Description: Simple socket client using socket class */ Modified: main/trunk/samples/scserver.rex =================================================================== --- main/trunk/samples/scserver.rex 2008-10-07 00:23:33 UTC (rev 3467) +++ main/trunk/samples/scserver.rex 2008-10-07 00:54:29 UTC (rev 3468) @@ -1,3 +1,4 @@ +#!/usr/bin/rexx /*----------------------------------------------------------------------------*/ /* */ /* Description: Simple socket server using socket class */ Modified: main/trunk/samples/sfclient.rex =================================================================== --- main/trunk/samples/sfclient.rex 2008-10-07 00:23:33 UTC (rev 3467) +++ main/trunk/samples/sfclient.rex 2008-10-07 00:54:29 UTC (rev 3468) @@ -1,3 +1,4 @@ +#!/usr/bin/rexx /*----------------------------------------------------------------------------*/ /* */ /* Description: Simple socket client using socket function package */ Modified: main/trunk/samples/sfserver.rex =================================================================== --- main/trunk/samples/sfserver.rex 2008-10-07 00:23:33 UTC (rev 3467) +++ main/trunk/samples/sfserver.rex 2008-10-07 00:54:29 UTC (rev 3468) @@ -1,3 +1,4 @@ +#!/usr/bin/rexx /*----------------------------------------------------------------------------*/ /* */ /* Description: Simple socket server using socket function package */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mie...@us...> - 2008-10-07 00:24:34
|
Revision: 3467 http://oorexx.svn.sourceforge.net/oorexx/?rev=3467&view=rev Author: miesfeld Date: 2008-10-07 00:23:33 +0000 (Tue, 07 Oct 2008) Log Message: ----------- Fix memory leak Modified Paths: -------------- main/trunk/extensions/platform/windows/rxwinsys/rxwinsys.cpp Modified: main/trunk/extensions/platform/windows/rxwinsys/rxwinsys.cpp =================================================================== --- main/trunk/extensions/platform/windows/rxwinsys/rxwinsys.cpp 2008-10-07 00:08:18 UTC (rev 3466) +++ main/trunk/extensions/platform/windows/rxwinsys/rxwinsys.cpp 2008-10-07 00:23:33 UTC (rev 3467) @@ -662,14 +662,11 @@ } GlobalFree(valData); - return 0; } - else - { - RETC(0); - } + GlobalFree(valData); + RETC(0); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mie...@us...> - 2008-10-07 00:10:59
|
Revision: 3466 http://oorexx.svn.sourceforge.net/oorexx/?rev=3466&view=rev Author: miesfeld Date: 2008-10-07 00:08:18 +0000 (Tue, 07 Oct 2008) Log Message: ----------- Get rid of annoying message, OR_REXXUTILSRC does not exist Modified Paths: -------------- main/trunk/platform/windows/buildorx.bat Modified: main/trunk/platform/windows/buildorx.bat =================================================================== --- main/trunk/platform/windows/buildorx.bat 2008-10-07 00:05:11 UTC (rev 3465) +++ main/trunk/platform/windows/buildorx.bat 2008-10-07 00:08:18 UTC (rev 3466) @@ -131,7 +131,6 @@ @ECHO Building rxwinsys.dll -CD %OR_REXXUTILSRC% IF %USELOGFILE% equ 1 ( NMAKE /F %OR_EXTENSIONS%\platform\windows\rxwinsys\rxwinsys.mak >>%OR_ERRLOG% 2>&1 ) else ( NMAKE /F %OR_EXTENSIONS%\platform\windows\rxwinsys\rxwinsys.mak ) if ERRORLEVEL 1 goto error This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mie...@us...> - 2008-10-07 00:06:13
|
Revision: 3465 http://oorexx.svn.sourceforge.net/oorexx/?rev=3465&view=rev Author: miesfeld Date: 2008-10-07 00:05:11 +0000 (Tue, 07 Oct 2008) Log Message: ----------- On 64-bit Windows and when compiled with Visual Studio 2005 or later, time_t is a 64-bit int, but the TimeWritten field is 32 bit. Need to explicitly use the 32-bit version of localtime. Modified Paths: -------------- main/trunk/extensions/platform/windows/rxwinsys/rxwinsys.cpp Modified: main/trunk/extensions/platform/windows/rxwinsys/rxwinsys.cpp =================================================================== --- main/trunk/extensions/platform/windows/rxwinsys/rxwinsys.cpp 2008-10-06 21:11:16 UTC (rev 3464) +++ main/trunk/extensions/platform/windows/rxwinsys/rxwinsys.cpp 2008-10-07 00:05:11 UTC (rev 3465) @@ -2461,9 +2461,8 @@ //get index to event type string GET_TYPE_INDEX(pEvLogRecord->EventType, evTypeIndex); - //get time and date - //DateTime = localtime(&pEvLogRecord->TimeGenerated); // convert to local time - DateTime = localtime((const time_t *)&pEvLogRecord->TimeWritten); // convert to local time + // Get time and date converted to local time. + DateTime = _localtime32((const __time32_t *)&pEvLogRecord->TimeWritten); strftime(date, MAX_TIME_DATE,"%x", DateTime); strftime(time, MAX_TIME_DATE,"%X", DateTime); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-10-06 21:15:37
|
Revision: 3464 http://oorexx.svn.sourceforge.net/oorexx/?rev=3464&view=rev Author: bigrixx Date: 2008-10-06 21:11:16 +0000 (Mon, 06 Oct 2008) Log Message: ----------- Fix errors in Linux endlocal() Modified Paths: -------------- main/trunk/interpreter/platform/unix/ExternalFunctions.cpp Modified: main/trunk/interpreter/platform/unix/ExternalFunctions.cpp =================================================================== --- main/trunk/interpreter/platform/unix/ExternalFunctions.cpp 2008-10-06 20:12:12 UTC (rev 3463) +++ main/trunk/interpreter/platform/unix/ExternalFunctions.cpp 2008-10-06 21:11:16 UTC (rev 3464) @@ -549,9 +549,9 @@ { reportException(Error_System_service_service, "Error restoring environment variable"); } -// if (del) /* if there was an old entry */ -// { -// free(del); /* free it */ -// } + if (del) /* if there was an old entry */ + { + free(del); /* free it */ + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |