From 49615158a7a62f6815aaa12ec818caa2da4b05c5 Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 15:22:04 +0200 Subject: [PATCH 1/9] Fix: correct __Usual boxing --- src/Runtime/XSharp.VFP/Classes/PropertyContainer.prg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runtime/XSharp.VFP/Classes/PropertyContainer.prg b/src/Runtime/XSharp.VFP/Classes/PropertyContainer.prg index 25fc97d717..47d28c5f4f 100644 --- a/src/Runtime/XSharp.VFP/Classes/PropertyContainer.prg +++ b/src/Runtime/XSharp.VFP/Classes/PropertyContainer.prg @@ -150,10 +150,10 @@ class XSharp.VFP.PropertyContainer IMPLEMENTS IEnumerable virtual method NoIvarPut(cName as string, uValue as usual) as void if _Properties:TryGetValue( cName, out var desc) if desc:PropInfo is PropertyInfo var oProp - oProp:SetValue(_Owner, uValue) + oProp:SetValue(_Owner, OOPHelpers.ValueConvert(uValue, oProp:PropertyType)) return elseif desc:PropInfo is FieldInfo var oFld - oFld:SetValue(_Owner, uValue) + oFld:SetValue(_Owner, OOPHelpers.ValueConvert(uValue, oFld:FieldType)) return elseif self:_Values:ContainsKey(cName) self:_Values[cName] := uValue From b4ea600c8e6ba24efb4f21715238249164a3064d Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 16:54:12 +0200 Subject: [PATCH 2/9] Absorb CREATE/MODIFY variants as silent NOPs --- src/Common/FoxProCmd.xh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Common/FoxProCmd.xh b/src/Common/FoxProCmd.xh index e8944fd0b1..5896b1592d 100644 --- a/src/Common/FoxProCmd.xh +++ b/src/Common/FoxProCmd.xh @@ -659,8 +659,8 @@ #command LABEL <*any*> => __VfpUnsupported("LABEL") -#command CREATE <*any*> ; - => #error This command is not supported: <(udc)> +#command CREATE <*any*> ; + => __VfpUnsupported( <"udc"> ) // supported CREATE commands in FoxProSql.xh // CREATE CURSOR @@ -669,7 +669,7 @@ // CREATE [SQL] VIEW #command MODIFY <*any*> ; - => #error This command is not supported: <(udc)> + => __VfpUnsupported( <"udc"> ) #ifndef NOASSERT #command ASSERT [MESSAGE ] ; From 05b2c8db982519cb11787b0f6a097f6de2d3df72 Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 17:28:29 +0200 Subject: [PATCH 3/9] Absorb ACTIVATE, DEACTIVATE, HIDE, MOVE, SHOW, SIZE --- src/Common/FoxProCmd.xh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/Common/FoxProCmd.xh b/src/Common/FoxProCmd.xh index 5896b1592d..e9d0d9b15d 100644 --- a/src/Common/FoxProCmd.xh +++ b/src/Common/FoxProCmd.xh @@ -671,6 +671,46 @@ #command MODIFY <*any*> ; => __VfpUnsupported( <"udc"> ) +// @... command (all variants: SAY, GET, BOX, CLEAR, EDIT, FILL, MENU, PROMPT, SCROLL, TO, CLASS) +#command @ <*any*> => __VfpUnsupported( <"udc"> ) + +// ACTIVATE - menus, popups, screens, user-defined windows +#command ACTIVATE <*any*> => __VfpUnsupported( <"udc"> ) + +// DEACTIVATE +#command DEACTIVATE <*any*> => __VfpUnsupported( <"udc"> ) + +// DEFINE - UI elements (excludes DEFINE CLASS) +#command DEFINE <*any*> => __VfpUnsupported( <"udc"> ) + +// HIDE +#command HIDE <*any*> => __VfpUnsupported( <"udc"> ) + +// MOVE +#command MOVE <*any*> => __VfpUnsupported( <"udc"> ) + +// POP +#command POP <*any*> => __VfpUnsupported( <"udc"> ) + +// SHOW +#command SHOW <*any*> => __VfpUnsupported( <"udc"> ) + +// SIZE +#command SIZE <*any*> => __VfpUnsupported( <"udc"> ) + +// Individual UI/browser commands +#command BROWSE <*any*> => __VfpUnsupported( <"udc"> ) +#command CHANGE <*any*> => __VfpUnsupported( <"udc"> ) +#command EDIT <*any*> => __VfpUnsupported( <"udc"> ) +#command KEYBOARD <*any*> => __VfpUnsupported( <"udc"> ) +#command MOUSE <*any*> => __VfpUnsupported( <"udc"> ) +#command ZOOM WINDOW <*any*> => __VfpUnsupported( <"udc"> ) +#command READ MENU <*any*> => __VfpUnsupported( <"udc"> ) + +// MENU +#command MENU <*any*> => __VfpUnsupported( <"udc"> ) +#command MENU TO <*any*> => __VfpUnsupported( <"udc"> ) + #ifndef NOASSERT #command ASSERT [MESSAGE ] ; => __FoxAssert( , <"expression">, ) From 76fc9afabe2b6cdbb74c43f6a72a3123323125ac Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 17:37:05 +0200 Subject: [PATCH 4/9] Absorb remaining VFP SET commands as warnings --- src/Common/FoxProSet.xh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Common/FoxProSet.xh b/src/Common/FoxProSet.xh index 62f944c8f2..f37f8b1a8c 100644 --- a/src/Common/FoxProSet.xh +++ b/src/Common/FoxProSet.xh @@ -122,6 +122,18 @@ #command SET COLOR SET <*any*> => __UNSUPPORTED__ <(udc)> #command SET DATASESSION <*any*> => __UNSUPPORTED__ <(udc)> +// Remaining VFP SET commands — Silent Absorption +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> +#command SET <*any*> => __UNSUPPORTED__ <(udc)> + #endif // EOF From 068bde3365e902bad61987ae75a5b08ad3b873f9 Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 17:45:00 +0200 Subject: [PATCH 5/9] Absorb ON EXIT, SELECTION, KEY commands --- src/Common/FoxProCmd.xh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Common/FoxProCmd.xh b/src/Common/FoxProCmd.xh index e9d0d9b15d..de5b991198 100644 --- a/src/Common/FoxProCmd.xh +++ b/src/Common/FoxProCmd.xh @@ -711,6 +711,21 @@ #command MENU <*any*> => __VfpUnsupported( <"udc"> ) #command MENU TO <*any*> => __VfpUnsupported( <"udc"> ) +// Generic ON commands +#command ON <*any*> => __VfpUnsupported( <"udc"> ) + +// ON EXIT variants (more specific, defined later = tried first) +#command ON EXIT <*any*> => __VfpUnsupported( <"udc"> ) + +// ON SELECTION variants +#command ON SELECTION <*any*> => __VfpUnsupported( <"udc"> ) + +// ON KEY = (must precede generic ON KEY in match order) +#command ON KEY = <*any*> => __VfpUnsupported( <"udc"> ) + +// ON KEY LABEL (most specific = tried first) +#command ON KEY LABEL <*any*> => __VfpUnsupported( <"udc"> ) + #ifndef NOASSERT #command ASSERT [MESSAGE ] ; => __FoxAssert( , <"expression">, ) From 529216814248b8705c0e87717275c16f9cade985 Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 17:55:20 +0200 Subject: [PATCH 6/9] Absorb CLEAR ALL, MEMORY, SCREEN, RELEASE --- src/Common/FoxProCmd.xh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Common/FoxProCmd.xh b/src/Common/FoxProCmd.xh index de5b991198..6b414d72b3 100644 --- a/src/Common/FoxProCmd.xh +++ b/src/Common/FoxProCmd.xh @@ -726,6 +726,16 @@ // ON KEY LABEL (most specific = tried first) #command ON KEY LABEL <*any*> => __VfpUnsupported( <"udc"> ) +// CLEAR / RELEASE variants — Silent Absorption + +// CLEAR variants not already handled (ALL, MEMORY, SCREEN, EVENTS, RESOURCES are elsewhere) +#command CLEAR <*any*> ; + => __VfpUnsupported( <"udc"> ) + +// RELEASE UI variants (variable RELEASE is handled in memvar.xh) +#command RELEASE <*any*> ; + => __VfpUnsupported( <"udc"> ) + #ifndef NOASSERT #command ASSERT [MESSAGE ] ; => __FoxAssert( , <"expression">, ) From e7e461ef2b13671aa3c838da01b8d5a7d2be39de Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 17:57:15 +0200 Subject: [PATCH 7/9] DISPLAY / LIST - Silent Absorption --- src/Common/FoxProCmd.xh | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/Common/FoxProCmd.xh b/src/Common/FoxProCmd.xh index 6b414d72b3..7f08355162 100644 --- a/src/Common/FoxProCmd.xh +++ b/src/Common/FoxProCmd.xh @@ -726,8 +726,6 @@ // ON KEY LABEL (most specific = tried first) #command ON KEY LABEL <*any*> => __VfpUnsupported( <"udc"> ) -// CLEAR / RELEASE variants — Silent Absorption - // CLEAR variants not already handled (ALL, MEMORY, SCREEN, EVENTS, RESOURCES are elsewhere) #command CLEAR <*any*> ; => __VfpUnsupported( <"udc"> ) @@ -736,6 +734,30 @@ #command RELEASE <*any*> ; => __VfpUnsupported( <"udc"> ) +// DISPLAY variants +#command DISPLAY [] <*any*> ; + => __VfpUnsupported( <"udc"> ) + +#command DISPLAY <*any*> ; + => __VfpUnsupported( <"udc"> ) + +// DISPLAY USERS / LIST USERS +#command DISPLAY USERS <*any*> => __VfpUnsupported( <"udc"> ) + +// LIST variants +#command LIST [] <*any*> ; + => __VfpUnsupported( <"udc"> ) + +#command LIST <*any*> ; + => __VfpUnsupported( <"udc"> ) + +// LIST USERS +#command LIST USERS <*any*> => __VfpUnsupported( <"udc"> ) + +// Plain DISPLAY and LIST (no sub-command) +#command DISPLAY <*any*> => __VfpUnsupported( <"udc"> ) +#command LIST <*any*> => __VfpUnsupported( <"udc"> ) + #ifndef NOASSERT #command ASSERT [MESSAGE ] ; => __FoxAssert( , <"expression">, ) From f7abc8dffa520209ececed074b607d7881f93eba Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 18:01:52 +0200 Subject: [PATCH 8/9] DB / System / Misc. Silent Absorption --- src/Common/FoxProCmd.xh | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/Common/FoxProCmd.xh b/src/Common/FoxProCmd.xh index 7f08355162..8080afd20e 100644 --- a/src/Common/FoxProCmd.xh +++ b/src/Common/FoxProCmd.xh @@ -758,6 +758,43 @@ #command DISPLAY <*any*> => __VfpUnsupported( <"udc"> ) #command LIST <*any*> => __VfpUnsupported( <"udc"> ) +// Database misc +#command APPEND <*any*> => __VfpUnsupported( <"udc"> ) +#command BLANK <*any*> => __VfpUnsupported( <"udc"> ) +#command CALCULATE <*any*> => __VfpUnsupported( <"udc"> ) +#command CLOSE <*any*> => __VfpUnsupported( <"udc"> ) +#command COPY <*any*> => __VfpUnsupported( <"udc"> ) +#command DELETE <*any*> => __VfpUnsupported( <"udc"> ) +#command FLUSH <*any*> => __VfpUnsupported( <"udc"> ) +#command FREE TABLE <*any*> => __VfpUnsupported( <"udc"> ) +#command PACK DATABASE <*any*> => __VfpUnsupported( <"udc"> ) +#command REMOVE CLASS <*any*> => __VfpUnsupported( <"udc"> ) +#command RENAME <*any*> => __VfpUnsupported( <"udc"> ) +#command REPLACE FROM ARRAY <*any*> => __VfpUnsupported( <"udc"> ) +#command VALIDATE DATABASE <*any*> => __VfpUnsupported( <"udc"> ) + +// System / legacy +#command CALL <*any*> => __VfpUnsupported( <"udc"> ) +#command DOEVENTS <*any*> => __VfpUnsupported( <"udc"> ) +#command EXPORT <*any*> => __VfpUnsupported( <"udc"> ) +#command GETEXPR <*any*> => __VfpUnsupported( <"udc"> ) +#command HELP <*any*> => __VfpUnsupported( <"udc"> ) +#command IMPORT <*any*> => __VfpUnsupported( <"udc"> ) +#command INPUT <*any*> => __VfpUnsupported( <"udc"> ) +#command LOAD <*any*> => __VfpUnsupported( <"udc"> ) +#command LOGOUT <*any*> => __VfpUnsupported( <"udc"> ) +#command PLAY MACRO <*any*> => __VfpUnsupported( <"udc"> ) +#command POP KEY <*any*> => __VfpUnsupported( <"udc"> ) +#command PUSH KEY <*any*> => __VfpUnsupported( <"udc"> ) +#command REGIONAL <*any*> => __VfpUnsupported( <"udc"> ) +#command RESET <*any*> => __VfpUnsupported( <"udc"> ) +#command RESTORE <*any*> => __VfpUnsupported( <"udc"> ) +#command RUNSCRIPT <*any*> => __VfpUnsupported( <"udc"> ) +#command SAVE <*any*> => __VfpUnsupported( <"udc"> ) +#command SCROLL <*any*> => __VfpUnsupported( <"udc"> ) +#command SUSPEND <*any*> => __VfpUnsupported( <"udc"> ) +#command TYPE <*any*> => __VfpUnsupported( <"udc"> ) + #ifndef NOASSERT #command ASSERT [MESSAGE ] ; => __FoxAssert( , <"expression">, ) From 05f1b6d2915f3161cbd63ec62f0196bee690a218 Mon Sep 17 00:00:00 2001 From: Irwin Rodriguez Date: Tue, 9 Jun 2026 18:07:12 +0200 Subject: [PATCH 9/9] Printing / Reports. Silent Absorption --- src/Common/FoxProCmd.xh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Common/FoxProCmd.xh b/src/Common/FoxProCmd.xh index 8080afd20e..8e2f00adbc 100644 --- a/src/Common/FoxProCmd.xh +++ b/src/Common/FoxProCmd.xh @@ -795,6 +795,11 @@ #command SUSPEND <*any*> => __VfpUnsupported( <"udc"> ) #command TYPE <*any*> => __VfpUnsupported( <"udc"> ) +#command EJECT <*any*> => __VfpUnsupported( <"udc"> ) +#command EJECT PAGE <*any*> => __VfpUnsupported( <"udc"> ) +#command PRINTJOB <*any*> => __VfpUnsupported( <"udc"> ) +#command ENDPRINTJOB <*any*> => __VfpUnsupported( <"udc"> ) + #ifndef NOASSERT #command ASSERT [MESSAGE ] ; => __FoxAssert( , <"expression">, )