RT3230: Better test for C identifier

objects.pl only looked for a space to see if the name could be
used as a C identifier.  Improve the test to match the real C
rules.

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit 591b7aef05)
This commit is contained in:
Annie Yousar 2015-05-03 09:05:47 -04:00 committed by Rich Salz
parent 858de8718f
commit fb22f74064
2 changed files with 5 additions and 5 deletions

View file

@ -8,9 +8,9 @@ The basic syntax for adding an object is as follows:
1 2 3 4 : shortName : Long Name
If the long name doesn't contain spaces, or no short name
exists, the long name is used as basis for the base name
in C. Otherwise, the short name is used.
If Long Name contains only word characters and hyphen-minus
(0x2D) or full stop (0x2E) then Long Name is used as basis
for the base name in C. Otherwise, the shortName is used.
The base name (let's call it 'base') will then be used to
create the C macros SN_base, LN_base, NID_base and OBJ_base.
@ -22,7 +22,7 @@ Then there are some extra commands:
!Alias foo 1 2 3 4
This juts makes a name foo for an OID. The C macro
This just makes a name foo for an OID. The C macro
OBJ_foo will be created as a result.
!Cname foo

View file

@ -67,7 +67,7 @@ while (<IN>)
$myoid = &process_oid($myoid);
}
if ($Cname eq "" && !($myln =~ / /))
if ($Cname eq "" && ($myln =~ /^[_A-Za-z][\w.-]*$/ ))
{
$Cname = $myln;
$Cname =~ s/\./_/g;