From 3cfb6b3b813e514b0614494202da74d8af29c5a6 Mon Sep 17 00:00:00 2001 From: Randy Kunkee Date: Thu, 22 Jun 2000 23:21:05 +0000 Subject: [PATCH] Correctly parse v2 OpenLDAP ldap.h. --- contrib/ldaptcl/ldaperr.tcl | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/contrib/ldaptcl/ldaperr.tcl b/contrib/ldaptcl/ldaperr.tcl index 31872f66f9..ef77d7f736 100644 --- a/contrib/ldaptcl/ldaperr.tcl +++ b/contrib/ldaptcl/ldaperr.tcl @@ -10,18 +10,34 @@ proc genstrings {path} { puts "/* This file automatically generated, hand edit at your own risk! */" puts -nonewline "char *ldaptclerrorcode\[\] = { NULL" - set lasterr 0 while {[gets $fp line] != -1} { + #puts stderr $line if {[clength $line] == 0 || [ctype space $line]} continue if {![string match #define* $line]} break if {![string match "#define LDAP_*" $line]} continue + if {[string match "*LDAP_RANGE*" $line]} continue lassign $line define macro value + set ldap_errcode($macro) $value + } + foreach i [array names ldap_errcode] { + set value $ldap_errcode($i) + #puts stderr "checking $value" + if [regexp {^[A-Z_]} $value] { + if [info exists ldap_errcode($value)] { + set value $ldap_errcode($value) + set ldap_errcode($i) $value + } + } + set ldap_errname($value) $i + } + set lasterr 0 + foreach value [lsort -integer [array names ldap_errname]] { incr lasterr while {$lasterr < $value} { puts -nonewline ",\n\tNULL" incr lasterr } - puts -nonewline ",\n\t\"$macro\"" + puts -nonewline ",\n\t\"$ldap_errname($value)\"" } puts "\n};" puts "#define LDAPTCL_MAXERR\t$value" -- 2.39.5