Some fixes...

* read_config_file.c: initialise pt stack argument to stop warning
* summary.c: make show_summary() obey -C for demangaling function names
diff --git a/options.c b/options.c
index aff93af..24e548e 100644
--- a/options.c
+++ b/options.c
@@ -25,7 +25,7 @@
 char *library[MAX_LIBRARY];
 int library_num = 0;
 static char *progname;		/* Program name (`ltrace') */
-FILE * output;
+FILE *output;
 int opt_a = DEFAULT_ACOLUMN;	/* default alignment column for results */
 int opt_c = 0;			/* Count time, calls, and report a summary on program exit */
 int opt_d = 0;			/* debug */
@@ -34,7 +34,7 @@
 int opt_S = 0;			/* display syscalls */
 int opt_L = 1;			/* display library calls */
 int opt_f = 0;			/* trace child processes as they are created */
-char * opt_u = NULL;		/* username to run command as */
+char *opt_u = NULL;		/* username to run command as */
 int opt_r = 0;			/* print relative timestamp */
 int opt_t = 0;			/* print absolute timestamp */
 #ifdef USE_DEMANGLE
@@ -44,82 +44,81 @@
 int opt_T = 0;			/* show the time spent inside each call */
 
 /* List of pids given to option -p: */
-struct opt_p_t * opt_p = NULL;	/* attach to process with a given pid */
+struct opt_p_t *opt_p = NULL;	/* attach to process with a given pid */
 
 /* List of function names given to option -e: */
-struct opt_e_t * opt_e = NULL;
-int opt_e_enable=1;
+struct opt_e_t *opt_e = NULL;
+int opt_e_enable = 1;
 
-static void
-usage(void) {
+static void usage(void)
+{
 #if !(HAVE_GETOPT || HAVE_GETOPT_LONG)
 	fprintf(stdout, "Usage: %s [command [arg ...]]\n"
-"Trace library calls of a given program.\n\n", progname);
+		"Trace library calls of a given program.\n\n", progname);
 #else
 	fprintf(stdout, "Usage: %s [option ...] [command [arg ...]]\n"
-"Trace library calls of a given program.\n\n"
-
+		"Trace library calls of a given program.\n\n"
 # if HAVE_GETOPT_LONG
-"  -a, --align=COLUMN  align return values in a secific column.\n"
+		"  -a, --align=COLUMN  align return values in a secific column.\n"
 # else
-"  -a COLUMN           align return values in a secific column.\n"
+		"  -a COLUMN           align return values in a secific column.\n"
 # endif
-"  -c                  count time and calls, and report a summary on exit.\n"
+		"  -c                  count time and calls, and report a summary on exit.\n"
 # ifdef USE_DEMANGLE
 #  if HAVE_GETOPT_LONG
-"  -C, --demangle      decode low-level symbol names into user-level names.\n"
+		"  -C, --demangle      decode low-level symbol names into user-level names.\n"
 #  else
-"  -C                  decode low-level symbol names into user-level names.\n"
+		"  -C                  decode low-level symbol names into user-level names.\n"
 #  endif
 # endif
 # if HAVE_GETOPT_LONG
-"  -d, --debug         print debugging info.\n"
+		"  -d, --debug         print debugging info.\n"
 # else
-"  -d                  print debugging info.\n"
+		"  -d                  print debugging info.\n"
 # endif
-"  -e expr             modify which events to trace.\n"
-"  -f                  follow forks.\n"
+		"  -e expr             modify which events to trace.\n"
+		"  -f                  follow forks.\n"
 # if HAVE_GETOPT_LONG
-"  -h, --help          display this help and exit.\n"
+		"  -h, --help          display this help and exit.\n"
 # else
-"  -h                  display this help and exit.\n"
+		"  -h                  display this help and exit.\n"
 # endif
-"  -i                  print instruction pointer at time of library call.\n"
+		"  -i                  print instruction pointer at time of library call.\n"
 #  if HAVE_GETOPT_LONG
-"  -l, --library=FILE  print library calls from this library only.\n"
+		"  -l, --library=FILE  print library calls from this library only.\n"
 #  else
-"  -l FILE             print library calls from this library only.\n"
+		"  -l FILE             print library calls from this library only.\n"
 #  endif
-"  -L                  do NOT display library calls.\n"
+		"  -L                  do NOT display library calls.\n"
 # if HAVE_GETOPT_LONG
-"  -n, --indent=NR     indent output by NR spaces for each call level nesting.\n"
+		"  -n, --indent=NR     indent output by NR spaces for each call level nesting.\n"
 # else
-"  -n NR               indent output by NR spaces for each call level nesting.\n"
+		"  -n NR               indent output by NR spaces for each call level nesting.\n"
 # endif
 # if HAVE_GETOPT_LONG
-"  -o, --output=FILE   write the trace output to that file.\n"
+		"  -o, --output=FILE   write the trace output to that file.\n"
 # else
-"  -o FILE             write the trace output to that file.\n"
+		"  -o FILE             write the trace output to that file.\n"
 # endif
-"  -p PID              attach to the process with the process ID pid.\n"
-"  -r                  print relative timestamps.\n"
-"  -s STRLEN           specify the maximum string size to print.\n"
-"  -S                  display system calls.\n"
-"  -t, -tt, -ttt       print absolute timestamps.\n"
-"  -T                  show the time spent inside each call.\n"
-"  -u USERNAME         run command with the userid, groupid of username.\n"
+		"  -p PID              attach to the process with the process ID pid.\n"
+		"  -r                  print relative timestamps.\n"
+		"  -s STRLEN           specify the maximum string size to print.\n"
+		"  -S                  display system calls.\n"
+		"  -t, -tt, -ttt       print absolute timestamps.\n"
+		"  -T                  show the time spent inside each call.\n"
+		"  -u USERNAME         run command with the userid, groupid of username.\n"
 # if HAVE_GETOPT_LONG
-"  -V, --version       output version information and exit.\n"
+		"  -V, --version       output version information and exit.\n"
 # else
-"  -V                  output version information and exit.\n"
+		"  -V                  output version information and exit.\n"
 # endif
-"\nReport bugs to Juan Cespedes <cespedes@debian.org>\n"
-		, progname);
+		"\nReport bugs to Juan Cespedes <cespedes@debian.org>\n",
+		progname);
 #endif
 }
 
-static char *
-search_for_command(char * filename) {
+static char *search_for_command(char *filename)
+{
 	static char pathname[PATH_MAX];
 	char *path;
 	int m, n;
@@ -150,164 +149,193 @@
 	return filename;
 }
 
-char **
-process_options(int argc, char **argv) {
+char **process_options(int argc, char **argv)
+{
 	progname = argv[0];
 	output = stderr;
 
 #if HAVE_GETOPT || HAVE_GETOPT_LONG
-	while(1) {
+	while (1) {
 		int c;
 #if HAVE_GETOPT_LONG
 		int option_index = 0;
 		static struct option long_options[] = {
-			{ "align", 1, 0, 'a'},
-			{ "debug", 0, 0, 'd'},
+			{"align", 1, 0, 'a'},
+			{"debug", 0, 0, 'd'},
 # ifdef USE_DEMANGLE
-			{ "demangle", 0, 0, 'C'},
+			{"demangle", 0, 0, 'C'},
 #endif
-			{ "indent", 1, 0, 'n'},
-			{ "help", 0, 0, 'h'},
-			{ "library", 1, 0, 'l'},
-			{ "output", 1, 0, 'o'},
-			{ "version", 0, 0, 'V'},
-			{ 0, 0, 0, 0}
+			{"indent", 1, 0, 'n'},
+			{"help", 0, 0, 'h'},
+			{"library", 1, 0, 'l'},
+			{"output", 1, 0, 'o'},
+			{"version", 0, 0, 'V'},
+			{0, 0, 0, 0}
 		};
 		c = getopt_long(argc, argv, "+cdfhiLrStTV"
 # ifdef USE_DEMANGLE
-			"C"
+				"C"
 # endif
-			"a:e:l:n:o:p:s:u:", long_options, &option_index);
+				"a:e:l:n:o:p:s:u:", long_options,
+				&option_index);
 #else
 		c = getopt(argc, argv, "+cdfhiLrStTV"
 # ifdef USE_DEMANGLE
-			"C"
+			   "C"
 # endif
-			"a:e:l:n:o:p:s:u:");
+			   "a:e:l:n:o:p:s:u:");
 #endif
-		if (c==-1) {
+		if (c == -1) {
 			break;
 		}
-		switch(c) {
-			case 'a':	opt_a = atoi(optarg);
-						break;
-			case 'c':	opt_c++;
-						break;
+		switch (c) {
+		case 'a':
+			opt_a = atoi(optarg);
+			break;
+		case 'c':
+			opt_c++;
+			break;
 #ifdef USE_DEMANGLE
-			case 'C':	opt_C++;
-						break;
+		case 'C':
+			opt_C++;
+			break;
 #endif
-			case 'd':	opt_d++;
-						break;
-			case 'e':
-				{
-					char * str_e = strdup(optarg);
-					if (!str_e) {
-						perror("ltrace: strdup");
-						exit(1);
-					}
-					if (str_e[0]=='!') {
-						opt_e_enable=0;
-						str_e++;
-					}
-					while(*str_e) {
-						struct opt_e_t * tmp;
-						char *str2 = strchr(str_e,',');
-						if (str2) {
-							*str2 = '\0';
-						}
-						tmp = malloc(sizeof(struct opt_e_t));
-						if (!tmp) {
-							perror("ltrace: malloc");
-							exit(1);
-						}
-						tmp->name = str_e;
-						tmp->next = opt_e;
-						opt_e = tmp;
-						if (str2) {
-							str_e = str2+1;
-						} else {
-							break;
-						}
-					}
-					break;
+		case 'd':
+			opt_d++;
+			break;
+		case 'e':
+			{
+				char *str_e = strdup(optarg);
+				if (!str_e) {
+					perror("ltrace: strdup");
+					exit(1);
 				}
-			case 'f':	opt_f = 1;
-						break;
-			case 'h':	usage();
-						exit(0);
-			case 'i':	opt_i++;
-						break;
-			case 'l':	if (library_num == MAX_LIBRARY) {
-							fprintf(stderr, "Too many libraries.  Maximum is %i.\n", MAX_LIBRARY);
-							exit(1);
-						}
-						library[library_num++] = optarg;
-						break;
-			case 'L':	opt_L = 0;
-						break;
-			case 'n':	opt_n = atoi(optarg);
-						break;
-			case 'o':	output = fopen(optarg, "w");
-						if (!output) {
-							fprintf(stderr, "Can't open %s for output: %s\n", optarg, strerror(errno));
-							exit(1);
-						}
-						setvbuf(output, (char *)NULL, _IOLBF, 0);
-						fcntl(fileno(output), F_SETFD, FD_CLOEXEC);
-						break;
-			case 'p':	
-				{
-					struct opt_p_t * tmp = malloc(sizeof(struct opt_p_t));
+				if (str_e[0] == '!') {
+					opt_e_enable = 0;
+					str_e++;
+				}
+				while (*str_e) {
+					struct opt_e_t *tmp;
+					char *str2 = strchr(str_e, ',');
+					if (str2) {
+						*str2 = '\0';
+					}
+					tmp = malloc(sizeof(struct opt_e_t));
 					if (!tmp) {
 						perror("ltrace: malloc");
 						exit(1);
 					}
-					tmp->pid = atoi(optarg);
-					tmp->next = opt_p;
-					opt_p = tmp;
-					break;
+					tmp->name = str_e;
+					tmp->next = opt_e;
+					opt_e = tmp;
+					if (str2) {
+						str_e = str2 + 1;
+					} else {
+						break;
+					}
 				}
-			case 'r':	opt_r++;
-						break;
-			case 's':	opt_s = atoi(optarg);
-						break;
-			case 'S':	opt_S = 1;
-						break;
-			case 't':	opt_t++;
-						break;
-			case 'T':	opt_T++;
-						break;
-			case 'u':	opt_u = optarg;
-						break;
-			case 'V':	printf("ltrace version " VERSION ".\n"
-"Copyright (C) 1997-2004 Juan Cespedes <cespedes@debian.org>.\n"
-"This is free software; see the GNU General Public Licence\n"
-"version 2 or later for copying conditions.  There is NO warranty.\n");
-						exit(0);
+				break;
+			}
+		case 'f':
+			opt_f = 1;
+			break;
+		case 'h':
+			usage();
+			exit(0);
+		case 'i':
+			opt_i++;
+			break;
+		case 'l':
+			if (library_num == MAX_LIBRARY) {
+				fprintf(stderr,
+					"Too many libraries.  Maximum is %i.\n",
+					MAX_LIBRARY);
+				exit(1);
+			}
+			library[library_num++] = optarg;
+			break;
+		case 'L':
+			opt_L = 0;
+			break;
+		case 'n':
+			opt_n = atoi(optarg);
+			break;
+		case 'o':
+			output = fopen(optarg, "w");
+			if (!output) {
+				fprintf(stderr,
+					"Can't open %s for output: %s\n",
+					optarg, strerror(errno));
+				exit(1);
+			}
+			setvbuf(output, (char *)NULL, _IOLBF, 0);
+			fcntl(fileno(output), F_SETFD, FD_CLOEXEC);
+			break;
+		case 'p':
+			{
+				struct opt_p_t *tmp =
+				    malloc(sizeof(struct opt_p_t));
+				if (!tmp) {
+					perror("ltrace: malloc");
+					exit(1);
+				}
+				tmp->pid = atoi(optarg);
+				tmp->next = opt_p;
+				opt_p = tmp;
+				break;
+			}
+		case 'r':
+			opt_r++;
+			break;
+		case 's':
+			opt_s = atoi(optarg);
+			break;
+		case 'S':
+			opt_S = 1;
+			break;
+		case 't':
+			opt_t++;
+			break;
+		case 'T':
+			opt_T++;
+			break;
+		case 'u':
+			opt_u = optarg;
+			break;
+		case 'V':
+			printf("ltrace version " VERSION ".\n"
+			       "Copyright (C) 1997-2004 Juan Cespedes <cespedes@debian.org>.\n"
+			       "This is free software; see the GNU General Public Licence\n"
+			       "version 2 or later for copying conditions.  There is NO warranty.\n");
+			exit(0);
 
-			default:
+		default:
 #if HAVE_GETOPT_LONG
-						fprintf(stderr, "Try `%s --help' for more information\n", progname);
+			fprintf(stderr,
+				"Try `%s --help' for more information\n",
+				progname);
 #else
-						fprintf(stderr, "Try `%s -h' for more information\n", progname);
+			fprintf(stderr, "Try `%s -h' for more information\n",
+				progname);
 #endif
-						exit(1);
+			exit(1);
 		}
 	}
-	argc -= optind; argv += optind;
+	argc -= optind;
+	argv += optind;
 #endif
 
-	if (!opt_p && argc<1) {
+	if (!opt_p && argc < 1) {
 		fprintf(stderr, "%s: too few arguments\n", progname);
 		usage();
 		exit(1);
 	}
 	if (opt_r && opt_t) {
-		fprintf(stderr, "%s: Incompatible options -r and -t\n", progname);
+		fprintf(stderr, "%s: Incompatible options -r and -t\n",
+			progname);
 		exit(1);
 	}
-	if (argc>0) {
+	if (argc > 0) {
 		command = search_for_command(argv[0]);
 	}
 	return &argv[0];