Add C support, improved C++ pattern.

The new pattern will capture function declaration like this:

```c
int on_text(void* param,
		int depth,
		char* text)
{
	printf("xmlontext%d>>%s\n",
			depth,
			text);
	return 0;
}
```