Differentiate tracing functions between request and reply.
Added possibility to have dumping functions for specific types.

diff --git a/tools/make_requests b/tools/make_requests
index e5af260..62ff329 100755
--- a/tools/make_requests
+++ b/tools/make_requests
@@ -14,7 +14,9 @@
     "unsigned int" => "%08x",
     "void*"        => "%p",
     "time_t"       => "%ld",
-    "char[1]"      => "\\\"%s\\\""
+    "path_t"       => "&dump_unicode_string",
+    "char[1]"      => "\\\"%s\\\"",
+    "WCHAR[1]"     => "&dump_unicode_string"
 );
 
 my @requests = ();
@@ -128,15 +130,25 @@
 	my $var = shift;
 	if (defined($formats{$type}))
 	{
-	    push @trace_lines, "    fprintf( stderr, \" $var=$formats{$type}";
-	    push @trace_lines, "," if ($#_ > 0);
-	    push @trace_lines, "\", ";
-	    push @trace_lines, "req->$var );\n";
+            if ($formats{$type} =~ /^&(.*)/)
+            {
+                my $func = $1;
+                push @trace_lines, "    fprintf( stderr, \" $var=\" );\n";
+                push @trace_lines, "    $func( req->$var );\n";
+                push @trace_lines, "    fprintf( stderr, \",\" );\n" if ($#_ > 0);
+            }
+            else
+            {
+                push @trace_lines, "    fprintf( stderr, \" $var=$formats{$type}";
+                push @trace_lines, "," if ($#_ > 0);
+                push @trace_lines, "\", ";
+                push @trace_lines, "req->$var );\n";
+            }
 	}
 	else  # must be some varargs format
 	{
 	    push @trace_lines, "    fprintf( stderr, \" $var=\" );\n";
-	    push @trace_lines, "    dump_varargs_${name}( req );\n";
+	    push @trace_lines, "    dump_varargs_${name}_${req}( req );\n";
         }
     }
     push @trace_lines, "}\n\n";