Issue 31127  —   In Uniface 9.7 call quit activates quit trigger instead of global proc quit

Status:   Solved in 10.2.01

Solution available in patch(es):      G102

Description:

 Uniface:
 A global proc quit is defined.
 When called in Uniface 9.7 the quit trigger is activated instead of the global
 proc quit.

 Environment:
 +Uniface: Uniface 9.7
 +Operating System: OS independent
 +Database: DBMS independent

 Symptoms
 A global proc "quit" is defined.
 There is NO local proc "quit".
 There is a component that calls "quit" to execute the global proc "quit".
 In Uniface 9.7 the quit trigger fires instead of the expected global proc with
 the name "quit".
 In Uniface 9.6 this problem does not occur.

 The same problem happens with a proc and trigger called "exec".

 The same test for global procs named "print" or "accept" does fire the expected
 global proc and does not fire the trigger with the same name.
 The same test with a local proc quit fires the expected local proc quit and
 does not fire the quit trigger.

Workaround:

 Best practice is to not use names that are the same as the names of triggers and
 use names like GP_QUIT and LP_QUIT for local proc.
 
 If the global proc is in library TEST,
 
   "call TEST::quit" will activate the global proc.
 
 More general:
 
   #ifdefined <$libraryName>
   call <$libraryName>::quit
   #endif
   #ifundefined <$libraryName>
   call SYSTEM_LIBRARY::quit
   #endif

Notes: