diff --git a/ase/ase.sln b/ase/ase.sln
index e684392e..34caebcb 100644
--- a/ase/ase.sln
+++ b/ase/ase.sln
@@ -68,228 +68,170 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "asecom", "test\com\asecom.c
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug MD|Any CPU = Debug MD|Any CPU
- Debug MD|Mixed Platforms = Debug MD|Mixed Platforms
- Debug MD|Win32 = Debug MD|Win32
Debug|Any CPU = Debug|Any CPU
- Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
- Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug MD|Win32.Build.0 = Debug MD|Win32
{17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|Any CPU.ActiveCfg = Debug|Win32
{17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|Any CPU.Build.0 = Debug|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|Win32.ActiveCfg = Debug|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|Win32.Build.0 = Debug|Win32
+ {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|Win32.Build.0 = Debug MD|Win32
+ {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|x64.ActiveCfg = Debug|x64
+ {17621C83-40C9-4305-BAF9-132E250B5FE3}.Debug|x64.Build.0 = Debug|x64
{17621C83-40C9-4305-BAF9-132E250B5FE3}.Release|Any CPU.ActiveCfg = Release|Win32
{17621C83-40C9-4305-BAF9-132E250B5FE3}.Release|Any CPU.Build.0 = Release|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {17621C83-40C9-4305-BAF9-132E250B5FE3}.Release|Mixed Platforms.Build.0 = Release|Win32
{17621C83-40C9-4305-BAF9-132E250B5FE3}.Release|Win32.ActiveCfg = Release|Win32
{17621C83-40C9-4305-BAF9-132E250B5FE3}.Release|Win32.Build.0 = Release|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {17621C83-40C9-4305-BAF9-132E250B5FE3}.Release|x64.ActiveCfg = Release|x64
+ {17621C83-40C9-4305-BAF9-132E250B5FE3}.Release|x64.Build.0 = Release|x64
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|Any CPU.ActiveCfg = Debug|Win32
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|Any CPU.Build.0 = Debug|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|Win32.ActiveCfg = Debug|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|Win32.Build.0 = Debug|Win32
+ {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|Win32.Build.0 = Debug MD|Win32
+ {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|x64.ActiveCfg = Debug|x64
+ {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Debug|x64.Build.0 = Debug|x64
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Release|Any CPU.ActiveCfg = Release|Win32
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Release|Any CPU.Build.0 = Release|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Release|Mixed Platforms.Build.0 = Release|Win32
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Release|Win32.ActiveCfg = Release|Win32
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Release|Win32.Build.0 = Release|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Release|x64.ActiveCfg = Release|x64
+ {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}.Release|x64.Build.0 = Release|x64
{5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|Any CPU.ActiveCfg = Debug|Win32
{5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|Any CPU.Build.0 = Debug|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|Win32.ActiveCfg = Debug|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|Win32.Build.0 = Debug|Win32
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|Win32.Build.0 = Debug MD|Win32
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|x64.ActiveCfg = Debug|x64
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Debug|x64.Build.0 = Debug|x64
{5F2E77D5-1485-48D1-9371-987BC55FEE83}.Release|Any CPU.ActiveCfg = Release|Win32
{5F2E77D5-1485-48D1-9371-987BC55FEE83}.Release|Any CPU.Build.0 = Release|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Release|Mixed Platforms.Build.0 = Release|Win32
{5F2E77D5-1485-48D1-9371-987BC55FEE83}.Release|Win32.ActiveCfg = Release|Win32
{5F2E77D5-1485-48D1-9371-987BC55FEE83}.Release|Win32.Build.0 = Release|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Release|x64.ActiveCfg = Release|x64
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83}.Release|x64.Build.0 = Release|x64
{23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|Any CPU.ActiveCfg = Debug|Win32
{23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|Any CPU.Build.0 = Debug|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|Win32.ActiveCfg = Debug|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|Win32.Build.0 = Debug|Win32
+ {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|Win32.Build.0 = Debug MD|Win32
+ {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|x64.ActiveCfg = Debug|x64
+ {23B58791-FD44-4F95-9F77-34E4AF45A296}.Debug|x64.Build.0 = Debug|x64
{23B58791-FD44-4F95-9F77-34E4AF45A296}.Release|Any CPU.ActiveCfg = Release|Win32
{23B58791-FD44-4F95-9F77-34E4AF45A296}.Release|Any CPU.Build.0 = Release|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {23B58791-FD44-4F95-9F77-34E4AF45A296}.Release|Mixed Platforms.Build.0 = Release|Win32
{23B58791-FD44-4F95-9F77-34E4AF45A296}.Release|Win32.ActiveCfg = Release|Win32
{23B58791-FD44-4F95-9F77-34E4AF45A296}.Release|Win32.Build.0 = Release|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {23B58791-FD44-4F95-9F77-34E4AF45A296}.Release|x64.ActiveCfg = Release|x64
+ {23B58791-FD44-4F95-9F77-34E4AF45A296}.Release|x64.Build.0 = Release|x64
{963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|Any CPU.ActiveCfg = Debug|Win32
{963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|Any CPU.Build.0 = Debug|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|Win32.ActiveCfg = Debug|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|Win32.Build.0 = Debug|Win32
+ {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|Win32.Build.0 = Debug MD|Win32
+ {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|x64.ActiveCfg = Debug|x64
+ {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Debug|x64.Build.0 = Debug|x64
{963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Release|Any CPU.ActiveCfg = Release|Win32
{963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Release|Any CPU.Build.0 = Release|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Release|Mixed Platforms.Build.0 = Release|Win32
{963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Release|Win32.ActiveCfg = Release|Win32
{963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Release|Win32.Build.0 = Release|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Release|x64.ActiveCfg = Release|x64
+ {963AF7B5-12E6-42B6-8CBE-89136C1A109B}.Release|x64.Build.0 = Release|x64
{57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|Any CPU.ActiveCfg = Debug|Win32
{57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|Any CPU.Build.0 = Debug|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|Win32.ActiveCfg = Debug|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|Win32.Build.0 = Debug|Win32
+ {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|Win32.Build.0 = Debug MD|Win32
+ {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|x64.ActiveCfg = Debug|x64
+ {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Debug|x64.Build.0 = Debug|x64
{57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Release|Any CPU.ActiveCfg = Release|Win32
{57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Release|Any CPU.Build.0 = Release|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Release|Mixed Platforms.Build.0 = Release|Win32
{57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Release|Win32.ActiveCfg = Release|Win32
{57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Release|Win32.Build.0 = Release|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Release|x64.ActiveCfg = Release|x64
+ {57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}.Release|x64.Build.0 = Release|x64
{42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|Any CPU.ActiveCfg = Debug|Win32
{42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|Any CPU.Build.0 = Debug|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|Win32.ActiveCfg = Debug|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|Win32.Build.0 = Debug|Win32
+ {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|Win32.Build.0 = Debug MD|Win32
+ {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|x64.ActiveCfg = Debug|x64
+ {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Debug|x64.Build.0 = Debug|x64
{42FE7CED-34B7-45C8-92C9-8856E16640D2}.Release|Any CPU.ActiveCfg = Release|Win32
{42FE7CED-34B7-45C8-92C9-8856E16640D2}.Release|Any CPU.Build.0 = Release|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Release|Mixed Platforms.Build.0 = Release|Win32
{42FE7CED-34B7-45C8-92C9-8856E16640D2}.Release|Win32.ActiveCfg = Release|Win32
{42FE7CED-34B7-45C8-92C9-8856E16640D2}.Release|Win32.Build.0 = Release|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Release|x64.ActiveCfg = Release|x64
+ {42FE7CED-34B7-45C8-92C9-8856E16640D2}.Release|x64.Build.0 = Release|x64
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|Any CPU.ActiveCfg = Debug|Win32
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|Any CPU.Build.0 = Debug|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|Win32.ActiveCfg = Debug|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|Win32.Build.0 = Debug|Win32
+ {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|Win32.Build.0 = Debug MD|Win32
+ {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|x64.ActiveCfg = Debug|x64
+ {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Debug|x64.Build.0 = Debug|x64
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Any CPU.ActiveCfg = Release|Win32
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Any CPU.Build.0 = Release|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Mixed Platforms.Build.0 = Release|Win32
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Win32.ActiveCfg = Release|Win32
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Win32.Build.0 = Release|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|x64.ActiveCfg = Release|x64
+ {868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|x64.Build.0 = Release|x64
{E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|Any CPU.ActiveCfg = Debug|Win32
{E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|Any CPU.Build.0 = Debug|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|Win32.ActiveCfg = Debug|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|Win32.Build.0 = Debug|Win32
+ {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|Win32.Build.0 = Debug MD|Win32
+ {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|x64.ActiveCfg = Debug|x64
+ {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Debug|x64.Build.0 = Debug|x64
{E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Release|Any CPU.ActiveCfg = Release|Win32
{E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Release|Any CPU.Build.0 = Release|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Release|Mixed Platforms.Build.0 = Release|Win32
{E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Release|Win32.ActiveCfg = Release|Win32
{E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Release|Win32.Build.0 = Release|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Release|x64.ActiveCfg = Release|x64
+ {E7A8B741-4E9D-4ED4-9F77-E7F637A678A5}.Release|x64.Build.0 = Release|x64
{3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|Any CPU.ActiveCfg = Debug|Win32
{3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|Any CPU.Build.0 = Debug|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|Win32.ActiveCfg = Debug|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|Win32.Build.0 = Debug|Win32
+ {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|Win32.Build.0 = Debug MD|Win32
+ {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|x64.ActiveCfg = Debug|x64
+ {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Debug|x64.Build.0 = Debug|x64
{3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Release|Any CPU.ActiveCfg = Release|Win32
{3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Release|Any CPU.Build.0 = Release|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Release|Mixed Platforms.Build.0 = Release|Win32
{3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Release|Win32.ActiveCfg = Release|Win32
{3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Release|Win32.Build.0 = Release|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug MD|Any CPU.ActiveCfg = Debug MD|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug MD|Win32.ActiveCfg = Debug MD|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug MD|Win32.Build.0 = Debug MD|Win32
+ {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Release|x64.ActiveCfg = Release|x64
+ {3BEA6CFE-C158-4BFB-B5FB-ED85251E3F98}.Release|x64.Build.0 = Release|x64
{A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|Any CPU.ActiveCfg = Debug|Win32
{A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|Any CPU.Build.0 = Debug|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|Mixed Platforms.Build.0 = Debug|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|Win32.ActiveCfg = Debug MD|Win32
+ {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|Win32.Build.0 = Debug MD|Win32
+ {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|x64.ActiveCfg = Debug|x64
+ {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Debug|x64.Build.0 = Debug|x64
{A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Release|Any CPU.ActiveCfg = Release|Win32
{A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Release|Any CPU.Build.0 = Release|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Release|Mixed Platforms.ActiveCfg = Release|Win32
- {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Release|Mixed Platforms.Build.0 = Release|Win32
{A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Release|Win32.ActiveCfg = Release|Win32
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug MD|Any CPU.ActiveCfg = Debug MD|Any CPU
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Any CPU
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Any CPU
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug MD|Win32.ActiveCfg = Debug MD|Any CPU
+ {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Release|Win32.Build.0 = Release|Win32
+ {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Release|x64.ActiveCfg = Release|x64
+ {A63E9DF9-1D47-4D81-834C-1D40406C18C4}.Release|x64.Build.0 = Release|x64
{7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|Win32.ActiveCfg = Debug MD|Any CPU
+ {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|Win32.Build.0 = Debug MD|Any CPU
+ {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Debug|x64.Build.0 = Debug|Any CPU
{7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Release|Any CPU.Build.0 = Release|Any CPU
{7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Release|Win32.ActiveCfg = Release|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug MD|Any CPU.ActiveCfg = Debug MD|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug MD|Mixed Platforms.ActiveCfg = Debug MD|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug MD|Mixed Platforms.Build.0 = Debug MD|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug MD|Win32.ActiveCfg = Debug MD|Any CPU
+ {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Release|Win32.Build.0 = Release|Any CPU
+ {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Release|x64.ActiveCfg = Release|Any CPU
+ {7CC01C3D-FC1A-4587-868A-7FC4449B3F8B}.Release|x64.Build.0 = Release|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Win32.ActiveCfg = Debug MD|Any CPU
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Win32.Build.0 = Debug MD|Any CPU
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|x64.Build.0 = Debug|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Any CPU.Build.0 = Release|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Win32.ActiveCfg = Release|Any CPU
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Win32.Build.0 = Release|Any CPU
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|x64.ActiveCfg = Release|Any CPU
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ase/awk/StdAwk.cpp b/ase/awk/StdAwk.cpp
index fd0044db..78d0ad6e 100644
--- a/ase/awk/StdAwk.cpp
+++ b/ase/awk/StdAwk.cpp
@@ -1,5 +1,5 @@
/*
- * $Id: StdAwk.cpp,v 1.28 2007/09/24 11:22:22 bacon Exp $
+ * $Id: StdAwk.cpp,v 1.29 2007/11/08 15:08:06 bacon Exp $
*
* {License}
*/
@@ -298,21 +298,23 @@ StdAwk::ssize_t StdAwk::writePipe (Pipe& io, char_t* buf, size_t len)
// pointer opened by popen, as of this writing.
// anyway, hopefully the following replacement
// will work all the way.
- int n = fprintf (fp, "%.*ls", left, buf);
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): (int)left;
+ int n = fprintf (fp, "%.*ls", chunk, buf);
if (n >= 0)
{
size_t x;
- for (x = 0; x < left; x++)
+ for (x = 0; x < chunk; x++)
{
if (buf[x] == ASE_T('\0')) break;
}
n = x;
}
#else
- int n = ase_fprintf (fp, ASE_T("%.*s"), left, buf);
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): (int)left;
+ int n = ase_fprintf (fp, ASE_T("%.*s"), chunk, buf);
#endif
- if (n < 0 || n > (ssize_t)left) return -1;
+ if (n < 0 || n > chunk) return -1;
left -= n; buf += n;
}
}
@@ -387,8 +389,9 @@ StdAwk::ssize_t StdAwk::writeFile (File& io, char_t* buf, size_t len)
}
else
{
- int n = ase_fprintf (fp, ASE_T("%.*s"), left, buf);
- if (n < 0 || n > (ssize_t)left) return -1;
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): (int)left;
+ int n = ase_fprintf (fp, ASE_T("%.*s"), chunk, buf);
+ if (n < 0 || n > chunk) return -1;
left -= n; buf += n;
}
}
diff --git a/ase/awk/aseawk++.vcproj b/ase/awk/aseawk++.vcproj
index bf34caea..4fa7d223 100644
--- a/ase/awk/aseawk++.vcproj
+++ b/ase/awk/aseawk++.vcproj
@@ -10,6 +10,9 @@
+
@@ -225,6 +228,220 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -263,6 +480,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
+
@@ -225,6 +228,220 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -263,6 +480,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -281,6 +284,276 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -319,6 +592,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
GetObjectClass(env, obj);
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
@@ -1051,7 +1052,9 @@ static ase_ssize_t java_read_source (
return -1;
}
- array = (*env)->NewCharArray (env, size);
+ chunk = (size > ASE_TYPE_MAX(jsize))? ASE_TYPE_MAX(jsize): (jsize)size;
+
+ array = (*env)->NewCharArray (env, chunk);
if (array == ASE_NULL)
{
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
@@ -1059,7 +1062,7 @@ static ase_ssize_t java_read_source (
return -1;
}
- ret = (*env)->CallIntMethod (env, obj, mid, array, size);
+ ret = (*env)->CallIntMethod (env, obj, mid, array, chunk);
if ((*env)->ExceptionCheck(env))
{
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
@@ -1086,6 +1089,7 @@ static ase_ssize_t java_write_source (
jint ret;
ase_size_t i;
ase_awk_t* awk;
+ jsize chunk;
class = (*env)->GetObjectClass(env, obj);
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
@@ -1105,7 +1109,11 @@ static ase_ssize_t java_write_source (
return -1;
}
- array = (*env)->NewCharArray (env, size);
+ /* handle upto 'chunk' characters, let the rest be handled by
+ * the underlying engine */
+ chunk = (size > ASE_TYPE_MAX(jsize))? ASE_TYPE_MAX(jsize): (jsize)size;
+
+ array = (*env)->NewCharArray (env, chunk);
if (array == ASE_NULL)
{
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
@@ -1114,10 +1122,10 @@ static ase_ssize_t java_write_source (
}
tmp = (*env)->GetCharArrayElements (env, array, 0);
- for (i = 0; i < size; i++) tmp[i] = (jchar)buf[i];
+ for (i = 0; i < chunk; i++) tmp[i] = (jchar)buf[i];
(*env)->ReleaseCharArrayElements (env, array, tmp, 0);
- ret = (*env)->CallIntMethod (env, obj, mid, array, size);
+ ret = (*env)->CallIntMethod (env, obj, mid, array, chunk);
if ((*env)->ExceptionCheck(env))
{
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
@@ -1293,6 +1301,7 @@ static ase_ssize_t java_read_extio (
jchar* tmp;
jint ret, i;
ase_awk_t* awk;
+ jsize chunk;
class = (*env)->GetObjectClass(env, obj);
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
@@ -1313,7 +1322,10 @@ static ase_ssize_t java_read_extio (
return -1;
}
- array = (*env)->NewCharArray (env, size);
+ /* shrink the buffer if it exceeds java's capability */
+ chunk = (size > ASE_TYPE_MAX(jsize))? ASE_TYPE_MAX(jsize): (jsize)size;
+
+ array = (*env)->NewCharArray (env, chunk);
if (array == ASE_NULL)
{
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
@@ -1321,7 +1333,7 @@ static ase_ssize_t java_read_extio (
return -1;
}
- ret = (*env)->CallIntMethod (env, obj, mid, extio->handle, array, size);
+ ret = (*env)->CallIntMethod (env, obj, mid, extio->handle, array, chunk);
if ((*env)->ExceptionCheck(env))
{
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
@@ -1352,6 +1364,7 @@ static ase_ssize_t java_write_extio (
jint ret;
ase_size_t i;
ase_awk_t* awk;
+ jsize chunk;
class = (*env)->GetObjectClass(env, obj);
handle = (*env)->GetFieldID (env, class, FIELD_AWKID, "J");
@@ -1371,7 +1384,9 @@ static ase_ssize_t java_write_extio (
return -1;
}
- array = (*env)->NewCharArray (env, size);
+ chunk = (size > ASE_TYPE_MAX(jsize))? ASE_TYPE_MAX(jsize): (jsize)size;
+
+ array = (*env)->NewCharArray (env, chunk);
if (array == ASE_NULL)
{
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
@@ -1380,10 +1395,10 @@ static ase_ssize_t java_write_extio (
}
tmp = (*env)->GetCharArrayElements (env, array, 0);
- for (i = 0; i < size; i++) tmp[i] = (jchar)data[i];
+ for (i = 0; i < chunk; i++) tmp[i] = (jchar)data[i];
(*env)->ReleaseCharArrayElements (env, array, tmp, 0);
- ret = (*env)->CallIntMethod (env, obj, mid, extio->handle, array, size);
+ ret = (*env)->CallIntMethod (env, obj, mid, extio->handle, array, chunk);
if ((*env)->ExceptionCheck(env))
{
if (is_debug(awk)) (*env)->ExceptionDescribe (env);
diff --git a/ase/cmn/asecmn.vcproj b/ase/cmn/asecmn.vcproj
index b3c125b8..525d79d1 100644
--- a/ase/cmn/asecmn.vcproj
+++ b/ase/cmn/asecmn.vcproj
@@ -10,6 +10,9 @@
+
@@ -222,6 +225,217 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -260,6 +474,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -315,6 +318,309 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -353,6 +659,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -219,6 +222,214 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -257,6 +468,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
wrapper != nullptr) ASE::Awk::stop ();
}
+ int getWord (ASE::Net::Awk^ wrapper, const char_t* ow, size_t olen, const char_t** nw, size_t* nlen)
+ {
+ ASE::Net::Awk^ old = this->wrapper;
+ this->wrapper = wrapper;
+ int n = ASE::Awk::getWord (ow, olen, nw, nlen);
+ this->wrapper = old;
+ return n;
+ }
+
int setWord (ASE::Net::Awk^ wrapper, const char_t* ow, size_t olen, const char_t* nw, size_t nlen)
{
+ ASE::Net::Awk^ old = this->wrapper;
this->wrapper = wrapper;
int n = ASE::Awk::setWord (ow, olen, nw, nlen);
- this->wrapper = nullptr;
+ this->wrapper = old;
return n;
}
int unsetWord (ASE::Net::Awk^ wrapper, const char_t* ow, size_t olen)
{
+ ASE::Net::Awk^ old = this->wrapper;
this->wrapper = wrapper;
int n = ASE::Awk::unsetWord (ow, olen);
- this->wrapper = nullptr;
+ this->wrapper = old;
return n;
}
@@ -1011,6 +1022,27 @@ bool Awk::DispatchFunction (
return n;
}
+System::String^ Awk::GetWord (System::String^ ow)
+{
+ if (awk == NULL)
+ {
+ SetError (ERROR::NOPER);
+ return nullptr;
+ }
+
+ const char_t* nptr;
+ size_t nlen;
+
+ cli::pin_ptr optr = PtrToStringChars(ow);
+ if (awk->getWord (this, optr, ow->Length, &nptr, &nlen) == -1)
+ {
+ RetrieveError ();
+ return nullptr;
+ }
+
+ return gcnew System::String (nptr, 0, nlen);
+}
+
bool Awk::SetWord (System::String^ ow, System::String^ nw)
{
if (awk == NULL)
diff --git a/ase/net/Awk.hpp b/ase/net/Awk.hpp
index 5e423640..d40031a4 100644
--- a/ase/net/Awk.hpp
+++ b/ase/net/Awk.hpp
@@ -1,5 +1,5 @@
/*
- * $Id: Awk.hpp,v 1.41 2007/10/26 12:49:24 bacon Exp $
+ * $Id: Awk.hpp,v 1.42 2007/11/08 15:08:06 bacon Exp $
*
* {License}
*/
@@ -732,6 +732,7 @@ public:
int maxArgs, FunctionHandler^ handler);
virtual bool DeleteFunction (System::String^ name);
+ virtual System::String^ GetWord (System::String^ ow);
virtual bool SetWord (System::String^ ow, System::String^ nw);
virtual bool UnsetWord (System::String^ ow);
virtual bool UnsetAllWords ();
diff --git a/ase/net/asenet.vcproj b/ase/net/asenet.vcproj
index 2f96ba77..229dc02e 100644
--- a/ase/net/asenet.vcproj
+++ b/ase/net/asenet.vcproj
@@ -11,6 +11,9 @@
+
@@ -242,6 +245,236 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -315,8 +315,9 @@ protected:
}
else
{
- int n = ase_fprintf (fp, ASE_T("%.*s"), left, buf);
- if (n < 0) return -1;
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): left;
+ int n = ase_fprintf (fp, ASE_T("%.*s"), chunk, buf);
+ if (n < 0 || n > chunk) return -1;
left -= n; buf += n;
}
}
@@ -457,8 +458,9 @@ protected:
}
else
{
- int n = ase_fprintf (fp, ASE_T("%.*s"), left, buf);
- if (n < 0) return -1;
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): left;
+ int n = ase_fprintf (fp, ASE_T("%.*s"), chunk, buf);
+ if (n < 0 || n > chunk) return -1;
left -= n; buf += n;
}
}
diff --git a/ase/test/awk/aseawk++.vcproj b/ase/test/awk/aseawk++.vcproj
index 617aa4e1..20556d31 100644
--- a/ase/test/awk/aseawk++.vcproj
+++ b/ase/test/awk/aseawk++.vcproj
@@ -10,6 +10,9 @@
+
@@ -282,6 +285,277 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -320,6 +594,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
+
@@ -276,6 +279,271 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ase/test/awk/awk.c b/ase/test/awk/awk.c
index 8c2c318e..42d8e4ce 100644
--- a/ase/test/awk/awk.c
+++ b/ase/test/awk/awk.c
@@ -1,5 +1,5 @@
/*
- * $Id: awk.c,v 1.22 2007/11/06 09:47:12 bacon Exp $
+ * $Id: awk.c,v 1.23 2007/11/08 15:08:06 bacon Exp $
*/
#include
@@ -262,15 +262,22 @@ static ase_ssize_t awk_srcio_out (
}
else if (cmd == ASE_AWK_IO_WRITE)
{
- while (size > 0)
+ ase_size_t left = size;
+
+ while (left > 0)
{
- int n, chunk;
-
- chunk = (size > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): size;
- n = ase_fprintf (stdout, ASE_T("%.*s"), (int)chunk, data);
- if (n < 0) return -1;
-
- data += n; size -= n;
+ if (*data == ASE_T('\0'))
+ {
+ if (ase_fputc (*data, stdout) == ASE_CHAR_EOF) return -1;
+ left -= 1; data += 1;
+ }
+ else
+ {
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): (int)left;
+ int n = ase_fprintf (stdout, ASE_T("%.*s"), chunk, data);
+ if (n < 0) return -1;
+ left -= n; data += n;
+ }
}
return size;
@@ -348,7 +355,7 @@ static ase_ssize_t awk_extio_pipe (
* pointer opened by popen, as of this writing.
* anyway, hopefully the following replacement
* will work all the way. */
- int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): left;
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): (int)left;
int n = fprintf (fp, "%.*ls", chunk, data);
if (n >= 0)
{
@@ -360,7 +367,7 @@ static ase_ssize_t awk_extio_pipe (
n = x;
}
#else
- int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): left;
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): (int)left;
int n = ase_fprintf (fp, ASE_T("%.*s"), chunk, data);
#endif
@@ -457,7 +464,7 @@ static ase_ssize_t awk_extio_file (
}
else
{
- int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): left;
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): (int)left;
int n = ase_fprintf (fp, ASE_T("%.*s"), chunk, data);
if (n < 0) return -1;
left -= n; data += n;
@@ -604,13 +611,6 @@ static ase_ssize_t awk_extio_console (
}
else if (cmd == ASE_AWK_IO_WRITE)
{
- /*
- int n = ase_fprintf (
- (FILE*)epa->handle, ASE_T("%.*s"), size, data);
- if (n < 0) return -1;
-
- return size;
- */
FILE* fp = (FILE*)epa->handle;
ase_ssize_t left = size;
@@ -623,7 +623,7 @@ static ase_ssize_t awk_extio_console (
}
else
{
- int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): left;
+ int chunk = (left > ASE_TYPE_MAX(int))? ASE_TYPE_MAX(int): (int)left;
int n = ase_fprintf (fp, ASE_T("%.*s"), chunk, data);
if (n < 0) return -1;
left -= n; data += n;
diff --git a/ase/test/com/asecom.csproj b/ase/test/com/asecom.csproj
index 4f9fb54a..e580ea5f 100644
--- a/ase/test/com/asecom.csproj
+++ b/ase/test/com/asecom.csproj
@@ -36,6 +36,30 @@
AnyCPU
prompt
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ prompt
+
+
+ true
+ bin\x64\Debug MD\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+
diff --git a/ase/test/lsp/aselsp.vcproj b/ase/test/lsp/aselsp.vcproj
index 119b70c9..7b07c72e 100644
--- a/ase/test/lsp/aselsp.vcproj
+++ b/ase/test/lsp/aselsp.vcproj
@@ -10,6 +10,9 @@
+
@@ -279,6 +282,274 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -317,6 +588,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
AnyCPU
prompt
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ prompt
+
+
+ true
+ bin\x64\Debug MD\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+
diff --git a/ase/utl/aseutl.vcproj b/ase/utl/aseutl.vcproj
index 732c3551..81ae5d03 100644
--- a/ase/utl/aseutl.vcproj
+++ b/ase/utl/aseutl.vcproj
@@ -10,6 +10,9 @@
+
@@ -222,6 +225,217 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -260,6 +474,33 @@
PreprocessorDefinitions=""
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+