talloc: Fix abi checks and ifdefs
authorSimo Sorce <idra@samba.org>
Mon, 8 Feb 2010 15:02:49 +0000 (10:02 -0500)
committerSimo Sorce <idra@samba.org>
Mon, 8 Feb 2010 15:02:49 +0000 (10:02 -0500)
teach the abi check scripts to skip the DOXYGEN sections
fix the header to use #ifdef DOXYGEN and not #if DOXYGEN

lib/talloc/script/mksigs.pl
lib/talloc/script/mksyms.awk
lib/talloc/talloc.h

index 755cd796039724869970e6d6f2a51ca0417f0e71..dfe36bc138f48c7ce01e04cde0aa7079a35bb945 100755 (executable)
@@ -27,6 +27,7 @@ use strict;
 use warnings;
 
 my $in_comment = 0;
+my $in_doxygen = 0;
 my $extern_C_block = 0;
 
 while (my $LINE = <>) {
@@ -41,6 +42,14 @@ while (my $LINE = <>) {
                }
        }
 
+       # find end of DOXYGEN section
+       if ($in_doxygen) {
+               if ($LINE =~ /^#\s*else(?:\s+.*)?$/) {
+                       $in_doxygen = 0;
+               }
+               next;
+       }
+
        # strip C++-style comments
        $LINE =~ s/^(.*?)\/\/.*$/$1/;
 
@@ -69,6 +78,13 @@ while (my $LINE = <>) {
                $LINE .= " " . $LINE2;
        }
 
+        # remove DOXYGEN sections
+       if ($LINE =~ /^#\s*ifdef\s+DOXYGEN(?:\s+.*)?$/) {
+               $in_doxygen = 1;
+                next;
+       }
+
+
        # remove all preprocessor directives
        next if ($LINE =~ /^#/);
 
index 8775faff3feea63784e541ea4128e05fcf7e3866..83497a7a069ebca2ca90e1d5f5771208e967214a 100644 (file)
@@ -8,6 +8,7 @@
 #
 BEGIN {
        inheader=0;
+       indoxygen=0;
 }
 
 END {
@@ -20,9 +21,15 @@ END {
                }
                next;
        }
+       if (indoxygen) {
+               if (match($0,"^#[ \t]*else[ \t]*.*$")) {
+                       indoxygen = 0;
+               }
+               next;
+       }
 }
 
-/^static/ || /^[ \t]*typedef/ || !/^[a-zA-Z\_]/ {
+/^static/ || /^[ \t]*typedef/ || !/^[a-zA-Z\_\#]/ {
        next;
 }
 
@@ -33,11 +40,16 @@ END {
        next;
 }
 
+/^#[ \t]*ifdef[ \t]*DOXYGEN[ \t]*.*$/ {
+       indoxygen=1;
+       next;
+}
+
 # look for function headers:
 {
        gotstart = 0;
        if ($0 ~ /^[A-Za-z_][A-Za-z0-9_]+/) {
-       gotstart = 1;
+               gotstart = 1;
        }
        if(!gotstart) {
                next;
index ca75b98225eeed69b96b2638e5b4f266ed1a8e2c..edd9b8ae88a309bb38b81e24e7a7ae027743abaa 100644 (file)
@@ -222,7 +222,7 @@ int _talloc_free(void *ptr, const char *location);
  */
 void talloc_free_children(void *ptr);
 
-#if DOXYGEN
+#ifdef DOXYGEN
 /**
  * @brief Assign a destructor function to be called when a chunk is freed.
  *
@@ -1191,7 +1191,7 @@ void *talloc_realloc(const void *ctx, void *ptr, #type, size_t count);
 void *_talloc_realloc_array(const void *ctx, void *ptr, size_t el_size, unsigned count, const char *name);
 #endif
 
-#if DOXYGEN
+#ifdef DOXYGEN
 /**
  * @brief Untyped realloc to change the size of a talloc array.
  *