From 9f37bbcca8004e1ac5be674446c51b50b36dc94e Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 9 Mar 2011 12:48:56 +0000 Subject: [PATCH] * cli/cli-cmds.c (shell_escape): Use lbasename. * coffread.c (coff_start_symtab): Constify parameter. (complete_symtab): Constify `name' parameter. (coff_symtab_read): Constify `filestring' local. (coff_getfilename): Constify return and `result' local. Use lbasename. * fbsd-nat.c (fbsd_make_corefile_notes): Use lbasename. * linux-fork.c (info_checkpoints_command): Use lbasename. * linux-nat.c (linux_nat_make_corefile_notes): Use lbasename. * minsyms.c (lookup_minimal_symbol): Use lbasename. * nto-tdep.c (nto_find_and_open_solib): Use lbasename. * procfs.c (procfs_make_note_section): Use lbasename. * tui/tui-io.c (printable_part): Constity return and parameter. Use lbasename. (print_filename): Constify parameters, and local `s'. (tui_rl_display_match_list): Constify local `temp'. --- gdb/ChangeLog | 19 +++++++++++++++++++ gdb/cli/cli-cmds.c | 7 ++----- gdb/coffread.c | 15 +++++++-------- gdb/fbsd-nat.c | 2 +- gdb/linux-fork.c | 9 +-------- gdb/linux-nat.c | 2 +- gdb/minsyms.c | 7 +------ gdb/nto-tdep.c | 8 +------- gdb/procfs.c | 2 +- gdb/tui/tui-io.c | 22 ++++++---------------- 10 files changed, 40 insertions(+), 53 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 41546492be1..3a26f18e0d6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,22 @@ +2011-03-09 Pedro Alves + + * cli/cli-cmds.c (shell_escape): Use lbasename. + * coffread.c (coff_start_symtab): Constify parameter. + (complete_symtab): Constify `name' parameter. + (coff_symtab_read): Constify `filestring' local. + (coff_getfilename): Constify return and `result' local. + Use lbasename. + * fbsd-nat.c (fbsd_make_corefile_notes): Use lbasename. + * linux-fork.c (info_checkpoints_command): Use lbasename. + * linux-nat.c (linux_nat_make_corefile_notes): Use lbasename. + * minsyms.c (lookup_minimal_symbol): Use lbasename. + * nto-tdep.c (nto_find_and_open_solib): Use lbasename. + * procfs.c (procfs_make_note_section): Use lbasename. + * tui/tui-io.c (printable_part): Constity return and parameter. + Use lbasename. + (print_filename): Constify parameters, and local `s'. + (tui_rl_display_match_list): Constify local `temp'. + 2011-03-09 Jan Kratochvil Revert: diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index e3cccdfc2be..0fc5efc6fe9 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -730,16 +730,13 @@ shell_escape (char *arg, int from_tty) if ((pid = vfork ()) == 0) { - char *p, *user_shell; + const char *p, *user_shell; if ((user_shell = (char *) getenv ("SHELL")) == NULL) user_shell = "/bin/sh"; /* Get the name of the shell for arg0. */ - if ((p = strrchr (user_shell, '/')) == NULL) - p = user_shell; - else - p++; /* Get past '/' */ + p = lbasename (user_shell); if (!arg) execl (user_shell, p, (char *) 0); diff --git a/gdb/coffread.c b/gdb/coffread.c index 85a55536f7e..8ec87c14a4b 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -178,7 +178,7 @@ static int init_lineno (bfd *, long, int); static char *getsymname (struct internal_syment *); -static char *coff_getfilename (union internal_auxent *); +static const char *coff_getfilename (union internal_auxent *); static void free_stringtab (void); @@ -366,7 +366,7 @@ coff_alloc_type (int index) it indicates the start of data for one original source file. */ static void -coff_start_symtab (char *name) +coff_start_symtab (const char *name) { start_symtab ( /* We fill in the filename later. start_symtab puts this pointer @@ -388,7 +388,7 @@ coff_start_symtab (char *name) text. */ static void -complete_symtab (char *name, CORE_ADDR start_addr, unsigned int size) +complete_symtab (const char *name, CORE_ADDR start_addr, unsigned int size) { if (last_source_file != NULL) xfree (last_source_file); @@ -713,7 +713,7 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms, int in_source_file = 0; int next_file_symnum = -1; /* Name of the current file. */ - char *filestring = ""; + const char *filestring = ""; int depth = 0; int fcn_first_line = 0; CORE_ADDR fcn_first_line_addr = 0; @@ -1308,12 +1308,12 @@ getsymname (struct internal_syment *symbol_entry) Return only the last component of the name. Result is in static storage and is only good for temporary use. */ -static char * +static const char * coff_getfilename (union internal_auxent *aux_entry) { static char buffer[BUFSIZ]; char *temp; - char *result; + const char *result; if (aux_entry->x_file.x_n.x_zeroes == 0) { @@ -1331,8 +1331,7 @@ coff_getfilename (union internal_auxent *aux_entry) /* FIXME: We should not be throwing away the information about what directory. It should go into dirname of the symtab, or some such place. */ - if ((temp = strrchr (result, '/')) != NULL) - result = temp + 1; + result = lbasename (result); return (result); } diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c index 2072e0e6f4f..6b775a9651c 100644 --- a/gdb/fbsd-nat.c +++ b/gdb/fbsd-nat.c @@ -202,7 +202,7 @@ fbsd_make_corefile_notes (bfd *obfd, int *note_size) if (get_exec_file (0)) { - char *fname = strrchr (get_exec_file (0), '/') + 1; + char *fname = lbasename (get_exec_file (0)); char *psargs = xstrdup (fname); if (get_inferior_args ()) diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c index a60975c36ac..7f654afedd6 100644 --- a/gdb/linux-fork.c +++ b/gdb/linux-fork.c @@ -584,14 +584,7 @@ info_checkpoints_command (char *arg, int from_tty) sal = find_pc_line (pc, 0); if (sal.symtab) - { - char *tmp = strrchr (sal.symtab->filename, '/'); - - if (tmp) - printf_filtered (_(", file %s"), tmp + 1); - else - printf_filtered (_(", file %s"), sal.symtab->filename); - } + printf_filtered (_(", file %s"), lbasename (sal.symtab->filename)); if (sal.line) printf_filtered (_(", line %d"), sal.line); if (!sal.symtab && !sal.line) diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 922a2cf9524..732812d0a17 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -4491,7 +4491,7 @@ linux_nat_make_corefile_notes (bfd *obfd, int *note_size) if (get_exec_file (0)) { - strncpy (fname, strrchr (get_exec_file (0), '/') + 1, sizeof (fname)); + strncpy (fname, lbasename (get_exec_file (0)), sizeof (fname)); strncpy (psargs, get_exec_file (0), sizeof (psargs)); if (get_inferior_args ()) { diff --git a/gdb/minsyms.c b/gdb/minsyms.c index 8497991f04a..4ae7f279393 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -198,12 +198,7 @@ lookup_minimal_symbol (const char *name, const char *sfile, const char *modified_name; if (sfile != NULL) - { - char *p = strrchr (sfile, '/'); - - if (p != NULL) - sfile = p + 1; - } + sfile = lbasename (sfile); /* For C++, canonicalize the input name. */ modified_name = name; diff --git a/gdb/nto-tdep.c b/gdb/nto-tdep.c index 5858dc26ece..23bbd3122b0 100644 --- a/gdb/nto-tdep.c +++ b/gdb/nto-tdep.c @@ -127,13 +127,7 @@ nto_find_and_open_solib (char *solib, unsigned o_flags, char **temp_pathname) sprintf (buf, PATH_FMT, arch_path, arch_path, arch_path, arch_path, arch_path); - /* Don't assume basename() isn't destructive. */ - base = strrchr (solib, '/'); - if (!base) - base = solib; - else - base++; /* Skip over '/'. */ - + base = lbasename (solib); ret = openp (buf, 1, base, o_flags, temp_pathname); if (ret < 0 && base != solib) { diff --git a/gdb/procfs.c b/gdb/procfs.c index af0fbaa0c0a..5d7cb239542 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -5734,7 +5734,7 @@ procfs_make_note_section (bfd *obfd, int *note_size) if (get_exec_file (0)) { - strncpy (fname, strrchr (get_exec_file (0), '/') + 1, sizeof (fname)); + strncpy (fname, lbasename (get_exec_file (0)), sizeof (fname)); strncpy (psargs, get_exec_file (0), sizeof (psargs)); diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c index 5b110bdfaf7..e7b73707b2f 100644 --- a/gdb/tui/tui-io.c +++ b/gdb/tui/tui-io.c @@ -324,20 +324,10 @@ tui_readline_output (int error, gdb_client_data data) final slash. Otherwise, we return what we were passed. Comes from readline/complete.c. */ -static char * -printable_part (char *pathname) +static const char * +printable_part (const char *pathname) { - char *temp; - - temp = rl_filename_completion_desired - ? strrchr (pathname, '/') : (char *)NULL; -#if defined (__MSDOS__) - if (rl_filename_completion_desired - && temp == 0 && isalpha (pathname[0]) - && pathname[1] == ':') - temp = pathname + 1; -#endif - return (temp ? ++temp : pathname); + return rl_filename_completion_desired ? lbasename (pathname) : pathname; } /* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and @@ -366,10 +356,10 @@ printable_part (char *pathname) } while (0) static int -print_filename (char *to_print, char *full_pathname) +print_filename (const char *to_print, const char *full_pathname) { int printed_len = 0; - char *s; + const char *s; for (s = to_print; *s; s++) { @@ -416,7 +406,7 @@ tui_rl_display_match_list (char **matches, int len, int max) int count, limit, printed_len; int i, j, k, l; - char *temp; + const char *temp; /* Screen dimension correspond to the TUI command window. */ int screenwidth = TUI_CMD_WIN->generic.width; -- 2.30.2