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 1977240204
commit 32b2ad7e07
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 1 2 3 4 : shortName : Long Name
If the long name doesn't contain spaces, or no short name If Long Name contains only word characters and hyphen-minus
exists, the long name is used as basis for the base name (0x2D) or full stop (0x2E) then Long Name is used as basis
in C. Otherwise, the short name is used. for the base name in C. Otherwise, the shortName is used.
The base name (let's call it 'base') will then be used to 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. 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 !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. OBJ_foo will be created as a result.
!Cname foo !Cname foo

View File

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