Re: Parsing args problems



On Sat, 12 May 2001, Damon Chaplin wrote:

> Paolo Casarini wrote:
> > 
> > Hi, I've two problems with gtk-doc 0.6.
> > 
> > The first is with the following prototype:
> > GdomeDocument *gdome_di_createDocFromURIWithEntityTable
> > (GdomeDOMImplementation *self, const char *uri, char *entityTable[][4],
> > GdomeLoadingCode mode, GdomeException *exc);
> > 
> > [...]
> 
> gtk-doc doesn't understand the '[][4]' part.
> 
> [...]
> 
> You'd probably need to change this in a few other places as well.
> Send me a patch when it works ;)
I attached the two patch to resolve my first problems in this mail.

> > The second one for functions that return void * like:
> > void *gdome_n_query_interface (GdomeNode *self,
> >                                const char *interface,
> >                                GdomeException *exc);
> > [...]
> 
> I'm not sure where the problem is here.
> What is output in the tmpl/ file for this function?
> (i.e. does it include the void* return value, or has that been dropped?)
Yes, you are right the tmpl/ doesn't have the void* return value. Do you
have an idea where I can find the problem?

Thanx
    Paolo
--
Paolo Casarini - casarini cs unibo it
--- gtkdoc-mkdb.in.orig	Mon May 14 15:34:13 2001
+++ gtkdoc-mkdb.in	Mon May 14 15:32:41 2001
@@ -823,7 +823,7 @@
 	    }
 
 	    # allow alphanumerics, '_', '[' & ']' in param names
-	} elsif ($declaration =~ s/^(const\s+|unsigned\s+)*(struct\s+)?(\w+)\s*(\**)\s*(const\s+)?(\**)?\s*(\w+)?\s*(\[\d*\])?\s*[,\n]//) {
+	} elsif ($declaration =~ s/^(const\s+|unsigned\s+)*(struct\s+)?(\w+)\s*(\**)\s*(const\s+)?(\**)?\s*(\w+)?\s*(\[\d*\])*\s*[,\n]//) {
 	    my $mod1 = defined($1) ? $1 : "";
 	    if (defined($2)) { $mod1 .= $2; }
 	    my $type = $3;
--- gtkdoc-mktmpl.in.orig	Mon May 14 15:34:26 2001
+++ gtkdoc-mktmpl.in	Mon May 14 15:32:31 2001
@@ -372,7 +372,7 @@
 					 $template_exists, 1, "");
 
 		# Try to match a standard parameter.
-	    } elsif ($declaration =~ s/^(const\s+|unsigned\s+)*(struct\s+)?(\w+)\s*(\**)\s*(const\s+)?(\**)?\s*(\w+)?\s*(\[\d*\])?\s*[,\n]//) {
+	    } elsif ($declaration =~ s/^(const\s+|unsigned\s+)*(struct\s+)?(\w+)\s*(\**)\s*(const\s+)?(\**)?\s*(\w+)?\s*(\[\d*\])*\s*[,\n]//) {
 		if (defined ($7)) {
 		    $name = $7;
 		} else {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]