﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
339	get_equal_name_$check_equal_name_ has several problems	Gary Dixon	Eric Swenson	"When the get_equal_name_$check_equal_name_ entry point was added, the change did not add the check_equal_name_ onto the bound_library_1_ object segment, which would allow the new entry point to be referenced simply as check_equal_name_ (rather than get_equal_name_$check_equal_name_).

Also, the change did not add an include file with named constants defining the EQUAL_TYPE_xxx values that can be returned in the subroutine's code argument (in addition to the possible error_table_ values that argument also returns).  The get_equal_name_.info segment also does not document these EQUAL_TYPE_xxx values.  So any programmer that needs to use the check_equal_name_ entry point must: examine existing callers code to see how to use the results; or example get_equal_name_$check_equal_name_ entry point code to see what code values it returns.

These omissions boost importance of this bug from an enhancement to a defect.

This ticket suggests the following changes.

1. Change bound_library_1_.bind:  As part of the objectname: get_equal_name_; entry, add a synonym: keyword naming check_equal_name_ as a full synonym for the get_equal_name_ object segment.  This was cause the loader to add check_equal_name_ as a name on >sl1>bound_library_1_ bound object containing get_equal_name_.

2. Create a >ldd>incl>check_equal_name.incl.pl1 segment defining three new constants describing the non-failing code values that may be returned by check_equal_name_$check_equal_name_.


{{{
declare   (
          EQUAL_TYPE_USE_ORIGINAL_NAME  initial (2),        /* Equal name is == or ===; it selects full original name.*/
          EQUAL_TYPE_USE_GET_EQUAL_PROC initial (1),        /* Equal name selects some parts of original name.        */
          EQUAL_TYPE_USE_EQUAL_NAME     initial (0)         /* Equal name has no = or % chars; it replaces original.  */
          )                             fixed bin (2) static options (constant);
}}}

3. Create a new check_equal_name_.info segment to document the calling sequence of the check_equal_name_ entry point under its new, shorter name.  It will also refer the user to the values in the new check_equal_name.incl.pl1 segment.

4. Remove use of underlining in the get_equal_name_.pl1 comments which give details about the finite statement machine implementing that program, but are unreadable on a video terminal.  Also replace \014 pagination chars used throughout with the more modern %page; macro.
"	defect	new	major		Standard Library	MR12.8			
