Move translated part of bug report string back into .c files so
[deliverable/binutils-gdb.git] / gprof / gprof.c
index cb76cff062011351ca0e1c341c4378f08f038be3..382e4189bf70ed66a1ec665673fc53dad5371d96 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1983 Regents of the University of California.
+ * Copyright (c) 1983, 1998 Regents of the University of California.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted
 #include "call_graph.h"
 #include "cg_arcs.h"
 #include "cg_print.h"
-#include "core.h"
+#include "corefile.h"
 #include "gmon_io.h"
 #include "hertz.h"
 #include "hist.h"
 #include "source.h"
 #include "sym_ids.h"
 
-#define VERSION "2.7.1"
-
 const char *whoami;
 const char *function_mapping_file;
 const char *a_out_name = A_OUTNAME;
@@ -44,6 +42,7 @@ int debug_level = 0;
 int output_style = 0;
 int output_width = 80;
 bool bsd_style_output = FALSE;
+bool demangle = TRUE;
 bool discard_underscores = TRUE;
 bool ignore_direct_calls = FALSE;
 bool ignore_static_funcs = FALSE;
@@ -57,8 +56,8 @@ File_Format file_format = FF_AUTO;
 bool first_output = TRUE;
 
 char copyright[] =
-"@(#) Copyright (c) 1983 Regents of the University of California.\n\
- All rights reserved.\n";
+ N_("@(#) Copyright (c) 1983 Regents of the University of California.\n\
+ All rights reserved.\n");
 
 static char *gmon_name = GMONNAME;     /* profile filename */
 
@@ -69,11 +68,18 @@ bfd *abfd;
  */
 static char *default_excluded_list[] =
 {
-  "_gprof_mcount", "mcount", "_mcount", "__mcount", "__mcleanup",
+  "_gprof_mcount", "mcount", "_mcount", "__mcount", "__mcount_internal",
+  "__mcleanup",
   "<locore>", "<hicore>",
   0
 };
 
+/* Codes used for the long options with no short synonyms.  150 isn't
+   special; it's just an arbitrary non-ASCII char value.  */
+
+#define OPTION_DEMANGLE                (150)
+#define OPTION_NO_DEMANGLE     (OPTION_DEMANGLE + 1)
+
 static struct option long_options[] =
 {
   {"line", no_argument, 0, 'l'},
@@ -98,6 +104,8 @@ static struct option long_options[] =
     /* various options to affect output: */
 
   {"all-lines", no_argument, 0, 'x'},
+  {"demangle", no_argument, 0, OPTION_DEMANGLE},
+  {"no-demangle", no_argument, 0, OPTION_NO_DEMANGLE},
   {"directory-path", required_argument, 0, 'I'},
   {"display-unused-functions", no_argument, 0, 'z'},
   {"min-count", required_argument, 0, 'm'},
@@ -133,7 +141,7 @@ static struct option long_options[] =
 static void
 DEFUN (usage, (stream, status), FILE * stream AND int status)
 {
-  fprintf (stream, "\
+  fprintf (stream, _("\
 Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n\
        [-d[num]] [-k from/to] [-m min-count] [-t table-length]\n\
        [--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n\
@@ -145,10 +153,11 @@ Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n\
        [--no-static] [--print-path] [--separate-files]\n\
        [--static-call-graph] [--sum] [--table-length=len] [--traditional]\n\
        [--version] [--width=n] [--ignore-non-functions]\n\
-       [image-file] [profile-file...]\n",
+       [--demangle] [--no-demangle]\n\
+       [image-file] [profile-file...]\n"),
           whoami);
   if (status == 0)
-    fprintf (stream, "Report bugs to bug-gnu-utils@prep.ai.mit.edu\n");
+    fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
   done (status);
 }
 
@@ -160,6 +169,12 @@ DEFUN (main, (argc, argv), int argc AND char **argv)
   Sym **cg = 0;
   int ch, user_specified = 0;
 
+#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
+  setlocale (LC_MESSAGES, "");
+#endif
+  bindtextdomain (PACKAGE, LOCALEDIR);
+  textdomain (PACKAGE);
+
   whoami = argv[0];
   xmalloc_set_program_name (whoami);
 
@@ -211,7 +226,7 @@ DEFUN (main, (argc, argv), int argc AND char **argv)
            }
          DBG (ANYDEBUG, printf ("[main] debug-level=0x%x\n", debug_level));
 #ifndef DEBUG
-         printf ("%s: debugging not supported; -d ignored\n", whoami);
+         printf (_("%s: debugging not supported; -d ignored\n"), whoami);
 #endif /* DEBUG */
          break;
        case 'D':
@@ -264,7 +279,7 @@ DEFUN (main, (argc, argv), int argc AND char **argv)
          print_path = TRUE;
          break;
        case 'm':
-         bb_min_calls = atoi (optarg);
+         bb_min_calls = (unsigned long) strtoul (optarg, (char **) NULL, 10);
          break;
        case 'n':
          sym_id_add (optarg, INCL_TIME);
@@ -284,11 +299,14 @@ DEFUN (main, (argc, argv), int argc AND char **argv)
            case 'b':
              file_format = FF_BSD;
              break;
+           case '4':
+             file_format = FF_BSD44;
+             break;
            case 'p':
              file_format = FF_PROF;
              break;
            default:
-             fprintf (stderr, "%s: unknown file format %s\n",
+             fprintf (stderr, _("%s: unknown file format %s\n"),
                       optarg, whoami);
              done (1);
            }
@@ -372,11 +390,10 @@ DEFUN (main, (argc, argv), int argc AND char **argv)
          break;
        case 'v':
          /* This output is intended to follow the GNU standards document.  */
-         printf ("GNU gprof %s\n", VERSION);
-         printf ("Copyright 1996 Free Software Foundation, Inc.\n");
-         printf ("\
-This program is free software; you may redistribute it under the terms of\n\
-the GNU General Public License.  This program has absolutely no warranty.\n");
+         printf (_("GNU gprof %s\n"), VERSION);
+         printf (_("Based on BSD gprof, copyright 1983 Regents of the University of California.\n"));
+         printf (_("\
+This program is free software.  This program has absolutely no warranty.\n"));
          done (0);
        case 'w':
          output_width = atoi (optarg);
@@ -406,6 +423,12 @@ the GNU General Public License.  This program has absolutely no warranty.\n");
            }
          user_specified |= STYLE_ANNOTATED_SOURCE;
          break;
+       case OPTION_DEMANGLE:
+         demangle = TRUE;
+         break;
+       case OPTION_NO_DEMANGLE:
+         demangle = FALSE;
+         break;
        default:
          usage (stderr, 1);
        }
@@ -415,12 +438,18 @@ the GNU General Public License.  This program has absolutely no warranty.\n");
   if ((user_specified & STYLE_FUNCTION_ORDER)
       && (user_specified & STYLE_FILE_ORDER))
     {
-      fprintf (stderr,"\
-%s: Only one of --function-ordering and --file-ordering may be specified.\n",
+      fprintf (stderr,_("\
+%s: Only one of --function-ordering and --file-ordering may be specified.\n"),
               whoami);
       done (1);
     }
 
+  /* --sum implies --line, otherwise we'd lose b-b counts in gmon.sum */
+  if (output_style & STYLE_SUMMARY_FILE)
+    {
+      line_granularity = 1;
+    }
+
   /* append value of GPROF_PATH to source search list if set: */
   str = (char *) getenv ("GPROF_PATH");
   if (str)
@@ -509,7 +538,7 @@ the GNU General Public License.  This program has absolutely no warranty.\n");
       while (optind++ < argc);
 #else
       fprintf (stderr,
-              "%s: sorry, file format `prof' is not yet supported\n",
+              _("%s: sorry, file format `prof' is not yet supported\n"),
               whoami);
       done (1);
 #endif
@@ -570,14 +599,14 @@ the GNU General Public License.  This program has absolutely no warranty.\n");
   if ((output_style & STYLE_FLAT_PROFILE)
       && !(gmon_input & INPUT_HISTOGRAM))
     {
-      fprintf (stderr, "%s: gmon.out file is missing histogram\n", whoami);
+      fprintf (stderr, _("%s: gmon.out file is missing histogram\n"), whoami);
       done (1);
     }
 
   if ((output_style & STYLE_CALL_GRAPH) && !(gmon_input & INPUT_CALL_GRAPH))
     {
       fprintf (stderr,
-              "%s: gmon.out file is missing call-graph data\n", whoami);
+              _("%s: gmon.out file is missing call-graph data\n"), whoami);
       done (1);
     }
 
This page took 0.027175 seconds and 4 git commands to generate.