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
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.
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