2011-03-23 Kai Tietz <ktietz@redhat.com>

* breakpoint.c (clear_command): Use filename_cmp
	instead of strcmp for comparison.
	* buildsym.c (watch_main_source_file_lossage): Likewise.
	(patch_subfile_names): Use IS_DIR_SEPARATOR instead of
	checking just for slash.
	* dbxread.c (read_dbx_symtab): Use lbasename instead of
	strrchr and filename_cmp instead of strcmp for filenames.
	(add_old_header_file): Use filename_cmp
	instead of strcmp for comparison.
	* exec.c (exec_set_section_address): Likewise.
	* macrotab.c (macro_lookup_inclusion): Likewise.
	(macro_lookup_inclusion): Likewise.
	* elfread.c (_initialize_elfread): Likewise.
	(elfstab_offset_sections): Likewise.
	(elfstab_offset_sections): Use lbasename instead of
	strrchr.
	* mdebugread.c (parse_partial_symbols): Likewise.
	(arse_partial_symbols): Use filename_(n)cmp instead of
	str(n)cmp for comparison.
	* minsyms.c (lookup_minimal_symbol): Likewise.
	* psymtab.c (read_psymtabs_with_filename): Likewise.
	* solib.c (solib_read_symbols): Likewise.
	(reload_shared_libraries_1): Likewise.
	* symmisc.c (maintenance_print_symbols): Likewise.
	* symfile.c (separate_debug_file_exists): Likewise.
	(reread_symbols): Likewise.
	(find_separate_debug_file_by_debuglink): Likewise.
	* remote-fileio.c (remote_fileio_func_rename): Likewise.
	* source.c (add_path): Likewise.
	* symtab.c (filename_seen): Likewise.
	(file_matches): Likewise.
	(print_symbol_info): Likewise.
	(maybe_add_partial_symtab_filename): Likewise.
	(make_source_files_completion_list): Likewise.
	* xml-syscall.c (init_sysinfo): Likewise.
	* windows-nat.c (_initialize_check_for_gdb_ini): Use
	IS_DIR_SEPARATOR for checking for trailing path separator.
This commit is contained in:
Kai Tietz 2011-03-23 18:23:56 +00:00
parent 663a1470e1
commit 0ba1096ad5
18 changed files with 106 additions and 80 deletions

View file

@ -1,3 +1,43 @@
2011-03-23 Kai Tietz <ktietz@redhat.com>
* breakpoint.c (clear_command): Use filename_cmp
instead of strcmp for comparison.
* buildsym.c (watch_main_source_file_lossage): Likewise.
(patch_subfile_names): Use IS_DIR_SEPARATOR instead of
checking just for slash.
* dbxread.c (read_dbx_symtab): Use lbasename instead of
strrchr and filename_cmp instead of strcmp for filenames.
(add_old_header_file): Use filename_cmp
instead of strcmp for comparison.
* exec.c (exec_set_section_address): Likewise.
* macrotab.c (macro_lookup_inclusion): Likewise.
(macro_lookup_inclusion): Likewise.
* elfread.c (_initialize_elfread): Likewise.
(elfstab_offset_sections): Likewise.
(elfstab_offset_sections): Use lbasename instead of
strrchr.
* mdebugread.c (parse_partial_symbols): Likewise.
(arse_partial_symbols): Use filename_(n)cmp instead of
str(n)cmp for comparison.
* minsyms.c (lookup_minimal_symbol): Likewise.
* psymtab.c (read_psymtabs_with_filename): Likewise.
* solib.c (solib_read_symbols): Likewise.
(reload_shared_libraries_1): Likewise.
* symmisc.c (maintenance_print_symbols): Likewise.
* symfile.c (separate_debug_file_exists): Likewise.
(reread_symbols): Likewise.
(find_separate_debug_file_by_debuglink): Likewise.
* remote-fileio.c (remote_fileio_func_rename): Likewise.
* source.c (add_path): Likewise.
* symtab.c (filename_seen): Likewise.
(file_matches): Likewise.
(print_symbol_info): Likewise.
(maybe_add_partial_symtab_filename): Likewise.
(make_source_files_completion_list): Likewise.
* xml-syscall.c (init_sysinfo): Likewise.
* windows-nat.c (_initialize_check_for_gdb_ini): Use
IS_DIR_SEPARATOR for checking for trailing path separator.
2011-03-22 Jan Kratochvil <jan.kratochvil@redhat.com> 2011-03-22 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2expr.c (execute_stack_op): Handle DW_OP_GNU_entry_value. New * dwarf2expr.c (execute_stack_op): Handle DW_OP_GNU_entry_value. New

View file

@ -39,6 +39,7 @@
#include "language.h" #include "language.h"
#include "gdb_string.h" #include "gdb_string.h"
#include "demangle.h" #include "demangle.h"
#include "filenames.h"
#include "annotate.h" #include "annotate.h"
#include "symfile.h" #include "symfile.h"
#include "objfiles.h" #include "objfiles.h"
@ -9524,7 +9525,7 @@ clear_command (char *arg, int from_tty)
&& b->source_file != NULL && b->source_file != NULL
&& sal.symtab != NULL && sal.symtab != NULL
&& sal.pspace == loc->pspace && sal.pspace == loc->pspace
&& strcmp (b->source_file, && filename_cmp (b->source_file,
sal.symtab->filename) == 0 sal.symtab->filename) == 0
&& b->line_number == sal.line); && b->line_number == sal.line);
if (pc_match || line_match) if (pc_match || line_match)

View file

@ -643,7 +643,7 @@ void
patch_subfile_names (struct subfile *subfile, char *name) patch_subfile_names (struct subfile *subfile, char *name)
{ {
if (subfile != NULL && subfile->dirname == NULL && subfile->name != NULL if (subfile != NULL && subfile->dirname == NULL && subfile->name != NULL
&& subfile->name[strlen (subfile->name) - 1] == '/') && IS_DIR_SEPARATOR (subfile->name[strlen (subfile->name) - 1]))
{ {
subfile->dirname = subfile->name; subfile->dirname = subfile->name;
subfile->name = xstrdup (name); subfile->name = xstrdup (name);
@ -878,7 +878,7 @@ watch_main_source_file_lossage (void)
subfile->next; subfile->next;
subfile = subfile->next) subfile = subfile->next)
{ {
if (strcmp (lbasename (subfile->name), mainbase) == 0) if (filename_cmp (lbasename (subfile->name), mainbase) == 0)
{ {
++nr_matches; ++nr_matches;
mainsub_alias = subfile; mainsub_alias = subfile;

View file

@ -47,6 +47,7 @@
#include "target.h" #include "target.h"
#include "gdbcore.h" /* for bfd stuff */ #include "gdbcore.h" /* for bfd stuff */
#include "libaout.h" /* FIXME Secret internal BFD stuff for a.out */ #include "libaout.h" /* FIXME Secret internal BFD stuff for a.out */
#include "filenames.h"
#include "objfiles.h" #include "objfiles.h"
#include "buildsym.h" #include "buildsym.h"
#include "stabsread.h" #include "stabsread.h"
@ -346,7 +347,7 @@ add_old_header_file (char *name, int instance)
int i; int i;
for (i = 0; i < N_HEADER_FILES (current_objfile); i++) for (i = 0; i < N_HEADER_FILES (current_objfile); i++)
if (strcmp (p[i].name, name) == 0 && instance == p[i].instance) if (filename_cmp (p[i].name, name) == 0 && instance == p[i].instance)
{ {
add_this_object_header_file (i); add_this_object_header_file (i);
return; return;
@ -1465,7 +1466,7 @@ read_dbx_symtab (struct objfile *objfile)
CORE_ADDR valu; CORE_ADDR valu;
static int prev_so_symnum = -10; static int prev_so_symnum = -10;
static int first_so_symnum; static int first_so_symnum;
char *p; const char *p;
static char *dirname_nso; static char *dirname_nso;
int prev_textlow_not_set; int prev_textlow_not_set;
@ -1522,8 +1523,8 @@ read_dbx_symtab (struct objfile *objfile)
If pst exists, is empty, and has a filename ending in '/', If pst exists, is empty, and has a filename ending in '/',
we assume the previous N_SO was a directory name. */ we assume the previous N_SO was a directory name. */
p = strrchr (namestring, '/'); p = lbasename (namestring);
if (p && *(p + 1) == '\000') if (p != namestring && *p == '\000')
{ {
/* Save the directory name SOs locally, then save it into /* Save the directory name SOs locally, then save it into
the psymtab when it's created below. */ the psymtab when it's created below. */
@ -1612,13 +1613,13 @@ read_dbx_symtab (struct objfile *objfile)
things like "break c-exp.y:435" need to work (I things like "break c-exp.y:435" need to work (I
suppose the psymtab_include_list could be hashed or put suppose the psymtab_include_list could be hashed or put
in a binary tree, if profiling shows this is a major hog). */ in a binary tree, if profiling shows this is a major hog). */
if (pst && strcmp (namestring, pst->filename) == 0) if (pst && filename_cmp (namestring, pst->filename) == 0)
continue; continue;
{ {
int i; int i;
for (i = 0; i < includes_used; i++) for (i = 0; i < includes_used; i++)
if (strcmp (namestring, psymtab_include_list[i]) == 0) if (filename_cmp (namestring, psymtab_include_list[i]) == 0)
{ {
i = -1; i = -1;
break; break;

View file

@ -37,6 +37,7 @@
#include "complaints.h" #include "complaints.h"
#include "demangle.h" #include "demangle.h"
#include "psympriv.h" #include "psympriv.h"
#include "filenames.h"
extern void _initialize_elfread (void); extern void _initialize_elfread (void);
@ -707,7 +708,8 @@ find_separate_debug_file_by_buildid (struct objfile *objfile)
build_id_name = build_id_to_debug_filename (build_id); build_id_name = build_id_to_debug_filename (build_id);
xfree (build_id); xfree (build_id);
/* Prevent looping on a stripped .debug file. */ /* Prevent looping on a stripped .debug file. */
if (build_id_name != NULL && strcmp (build_id_name, objfile->name) == 0) if (build_id_name != NULL
&& filename_cmp (build_id_name, objfile->name) == 0)
{ {
warning (_("\"%s\": separate debug info file has no debug info"), warning (_("\"%s\": separate debug info file has no debug info"),
build_id_name); build_id_name);
@ -1023,12 +1025,10 @@ elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
struct stab_section_info *maybe = dbx->stab_section_info; struct stab_section_info *maybe = dbx->stab_section_info;
struct stab_section_info *questionable = 0; struct stab_section_info *questionable = 0;
int i; int i;
char *p;
/* The ELF symbol info doesn't include path names, so strip the path /* The ELF symbol info doesn't include path names, so strip the path
(if any) from the psymtab filename. */ (if any) from the psymtab filename. */
while (0 != (p = strchr (filename, '/'))) filename = lbasename (filename);
filename = p + 1;
/* FIXME: This linear search could speed up significantly /* FIXME: This linear search could speed up significantly
if it was chained in the right order to match how we search it, if it was chained in the right order to match how we search it,
@ -1036,7 +1036,7 @@ elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
for (; maybe; maybe = maybe->next) for (; maybe; maybe = maybe->next)
{ {
if (filename[0] == maybe->filename[0] if (filename[0] == maybe->filename[0]
&& strcmp (filename, maybe->filename) == 0) && filename_cmp (filename, maybe->filename) == 0)
{ {
/* We found a match. But there might be several source files /* We found a match. But there might be several source files
(from different directories) with the same name. */ (from different directories) with the same name. */

View file

@ -25,6 +25,7 @@
#include "target.h" #include "target.h"
#include "gdbcmd.h" #include "gdbcmd.h"
#include "language.h" #include "language.h"
#include "filenames.h"
#include "symfile.h" #include "symfile.h"
#include "objfiles.h" #include "objfiles.h"
#include "completer.h" #include "completer.h"
@ -845,7 +846,7 @@ exec_set_section_address (const char *filename, int index, CORE_ADDR address)
table = current_target_sections; table = current_target_sections;
for (p = table->sections; p < table->sections_end; p++) for (p = table->sections; p < table->sections_end; p++)
{ {
if (strcmp (filename, p->bfd->filename) == 0 if (filename_cmp (filename, p->bfd->filename) == 0
&& index == p->the_bfd_section->index) && index == p->the_bfd_section->index)
{ {
p->endaddr += address - p->addr; p->endaddr += address - p->addr;

View file

@ -21,6 +21,7 @@
#include "defs.h" #include "defs.h"
#include "gdb_obstack.h" #include "gdb_obstack.h"
#include "splay-tree.h" #include "splay-tree.h"
#include "filenames.h"
#include "symtab.h" #include "symtab.h"
#include "symfile.h" #include "symfile.h"
#include "objfiles.h" #include "objfiles.h"
@ -500,7 +501,7 @@ struct macro_source_file *
macro_lookup_inclusion (struct macro_source_file *source, const char *name) macro_lookup_inclusion (struct macro_source_file *source, const char *name)
{ {
/* Is SOURCE itself named NAME? */ /* Is SOURCE itself named NAME? */
if (strcmp (name, source->filename) == 0) if (filename_cmp (name, source->filename) == 0)
return source; return source;
/* The filename in the source structure is probably a full path, but /* The filename in the source structure is probably a full path, but
@ -510,11 +511,12 @@ macro_lookup_inclusion (struct macro_source_file *source, const char *name)
int src_name_len = strlen (source->filename); int src_name_len = strlen (source->filename);
/* We do mean < here, and not <=; if the lengths are the same, /* We do mean < here, and not <=; if the lengths are the same,
then the strcmp above should have triggered, and we need to then the filename_cmp above should have triggered, and we need to
check for a slash here. */ check for a slash here. */
if (name_len < src_name_len if (name_len < src_name_len
&& source->filename[src_name_len - name_len - 1] == '/' && IS_DIR_SEPARATOR (source->filename[src_name_len - name_len - 1])
&& strcmp (name, source->filename + src_name_len - name_len) == 0) && filename_cmp (name,
source->filename + src_name_len - name_len) == 0)
return source; return source;
} }

View file

@ -45,6 +45,7 @@
#include "symtab.h" #include "symtab.h"
#include "gdbtypes.h" #include "gdbtypes.h"
#include "gdbcore.h" #include "gdbcore.h"
#include "filenames.h"
#include "objfiles.h" #include "objfiles.h"
#include "gdb_obstack.h" #include "gdb_obstack.h"
#include "buildsym.h" #include "buildsym.h"
@ -2959,7 +2960,7 @@ parse_partial_symbols (struct objfile *objfile)
CORE_ADDR valu; CORE_ADDR valu;
static int prev_so_symnum = -10; static int prev_so_symnum = -10;
static int first_so_symnum; static int first_so_symnum;
char *p; const char *p;
int prev_textlow_not_set; int prev_textlow_not_set;
valu = sh.value + ANOFFSET (objfile->section_offsets, valu = sh.value + ANOFFSET (objfile->section_offsets,
@ -3012,9 +3013,8 @@ parse_partial_symbols (struct objfile *objfile)
the second the file name. If pst exists, is the second the file name. If pst exists, is
empty, and has a filename ending in '/', we assume empty, and has a filename ending in '/', we assume
the previous N_SO was a directory name. */ the previous N_SO was a directory name. */
p = lbasename (namestring);
p = strrchr (namestring, '/'); if (p != namestring && *p == '\000')
if (p && *(p + 1) == '\000')
continue; /* Simply ignore directory continue; /* Simply ignore directory
name SOs. */ name SOs. */
@ -3065,14 +3065,14 @@ parse_partial_symbols (struct objfile *objfile)
work (I suppose the psymtab_include_list could be work (I suppose the psymtab_include_list could be
hashed or put in a binary tree, if profiling shows hashed or put in a binary tree, if profiling shows
this is a major hog). */ this is a major hog). */
if (pst && strcmp (namestring, pst->filename) == 0) if (pst && filename_cmp (namestring, pst->filename) == 0)
continue; continue;
{ {
int i; int i;
for (i = 0; i < includes_used; i++) for (i = 0; i < includes_used; i++)
if (strcmp (namestring, if (filename_cmp (namestring,
psymtab_include_list[i]) == 0) psymtab_include_list[i]) == 0)
{ {
i = -1; i = -1;

View file

@ -43,6 +43,7 @@
#include "gdb_string.h" #include "gdb_string.h"
#include "symtab.h" #include "symtab.h"
#include "bfd.h" #include "bfd.h"
#include "filenames.h"
#include "symfile.h" #include "symfile.h"
#include "objfiles.h" #include "objfiles.h"
#include "demangle.h" #include "demangle.h"
@ -255,7 +256,7 @@ lookup_minimal_symbol (const char *name, const char *sfile,
case mst_file_data: case mst_file_data:
case mst_file_bss: case mst_file_bss:
if (sfile == NULL if (sfile == NULL
|| strcmp (msymbol->filename, sfile) == 0) || filename_cmp (msymbol->filename, sfile) == 0)
found_file_symbol = msymbol; found_file_symbol = msymbol;
break; break;

View file

@ -1067,7 +1067,7 @@ read_psymtabs_with_filename (struct objfile *objfile, const char *filename)
ALL_OBJFILE_PSYMTABS_REQUIRED (objfile, p) ALL_OBJFILE_PSYMTABS_REQUIRED (objfile, p)
{ {
if (strcmp (filename, p->filename) == 0) if (filename_cmp (filename, p->filename) == 0)
PSYMTAB_TO_SYMTAB (p); PSYMTAB_TO_SYMTAB (p);
} }
} }
@ -1735,7 +1735,7 @@ print-psymbols takes an output file name and optional symbol file name"));
immediate_quit++; immediate_quit++;
ALL_PSYMTABS (objfile, ps) ALL_PSYMTABS (objfile, ps)
if (symname == NULL || strcmp (symname, ps->filename) == 0) if (symname == NULL || filename_cmp (symname, ps->filename) == 0)
dump_psymtab (objfile, ps, outfile); dump_psymtab (objfile, ps, outfile);
immediate_quit--; immediate_quit--;
do_cleanups (cleanups); do_cleanups (cleanups);

View file

@ -31,6 +31,7 @@
#include "remote-fileio.h" #include "remote-fileio.h"
#include "event-loop.h" #include "event-loop.h"
#include "target.h" #include "target.h"
#include "filenames.h"
#include <fcntl.h> #include <fcntl.h>
#include <sys/time.h> #include <sys/time.h>
@ -1020,8 +1021,8 @@ remote_fileio_func_rename (char *buf)
cygwin_conv_path (CCP_WIN_A_TO_POSIX, newpath, newfullpath, cygwin_conv_path (CCP_WIN_A_TO_POSIX, newpath, newfullpath,
PATH_MAX); PATH_MAX);
len = strlen (oldfullpath); len = strlen (oldfullpath);
if (newfullpath[len] == '/' if (IS_DIR_SEPARATOR (newfullpath[len])
&& !strncmp (oldfullpath, newfullpath, len)) && !filename_ncmp (oldfullpath, newfullpath, len))
errno = EINVAL; errno = EINVAL;
else else
errno = EEXIST; errno = EEXIST;

View file

@ -638,7 +638,7 @@ solib_read_symbols (struct so_list *so, int flags)
/* Have we already loaded this shared object? */ /* Have we already loaded this shared object? */
ALL_OBJFILES (so->objfile) ALL_OBJFILES (so->objfile)
{ {
if (strcmp (so->objfile->name, so->so_name) == 0 if (filename_cmp (so->objfile->name, so->so_name) == 0
&& so->objfile->addr_low == so->addr_low) && so->objfile->addr_low == so->addr_low)
break; break;
} }
@ -762,7 +762,7 @@ update_solib_list (int from_tty, struct target_ops *target)
} }
else else
{ {
if (! strcmp (gdb->so_original_name, i->so_original_name)) if (! filename_cmp (gdb->so_original_name, i->so_original_name))
break; break;
} }
@ -1339,7 +1339,7 @@ reload_shared_libraries_1 (int from_tty)
symbol file, close that. */ symbol file, close that. */
if ((found_pathname == NULL && was_loaded) if ((found_pathname == NULL && was_loaded)
|| (found_pathname != NULL || (found_pathname != NULL
&& strcmp (found_pathname, so->so_name) != 0)) && filename_cmp (found_pathname, so->so_name) != 0))
{ {
if (so->objfile && ! (so->objfile->flags & OBJF_USERLOADED)) if (so->objfile && ! (so->objfile->flags & OBJF_USERLOADED))
free_objfile (so->objfile); free_objfile (so->objfile);
@ -1351,7 +1351,7 @@ reload_shared_libraries_1 (int from_tty)
file, open it. */ file, open it. */
if (found_pathname != NULL if (found_pathname != NULL
&& (!was_loaded && (!was_loaded
|| strcmp (found_pathname, so->so_name) != 0)) || filename_cmp (found_pathname, so->so_name) != 0))
{ {
volatile struct gdb_exception e; volatile struct gdb_exception e;

View file

@ -569,15 +569,10 @@ add_path (char *dirname, char **which_path, int parse_separators)
p = *which_path; p = *which_path;
while (1) while (1)
{ {
/* FIXME: strncmp loses in interesting ways on MS-DOS and /* FIXME: we should use realpath() or its work-alike
MS-Windows because of case-insensitivity and two different before comparing. Then all the code above which
but functionally identical slash characters. We need a
special filesystem-dependent file-name comparison function.
Actually, even on Unix I would use realpath() or its work-
alike before comparing. Then all the code above which
removes excess slashes and dots could simply go away. */ removes excess slashes and dots could simply go away. */
if (!strncmp (p, name, len) if (!filename_ncmp (p, name, len)
&& (p[len] == '\0' || p[len] == DIRNAME_SEPARATOR)) && (p[len] == '\0' || p[len] == DIRNAME_SEPARATOR))
{ {
/* Found it in the search path, remove old copy. */ /* Found it in the search path, remove old copy. */

View file

@ -1325,7 +1325,7 @@ separate_debug_file_exists (const char *name, unsigned long crc,
".debug" suffix as "/usr/lib/debug/path/to/file" is a separate tree where ".debug" suffix as "/usr/lib/debug/path/to/file" is a separate tree where
the separate debug infos with the same basename can exist. */ the separate debug infos with the same basename can exist. */
if (strcmp (name, parent_objfile->name) == 0) if (filename_cmp (name, parent_objfile->name) == 0)
return 0; return 0;
abfd = bfd_open_maybe_remote (name); abfd = bfd_open_maybe_remote (name);
@ -1333,7 +1333,7 @@ separate_debug_file_exists (const char *name, unsigned long crc,
if (!abfd) if (!abfd)
return 0; return 0;
/* Verify symlinks were not the cause of strcmp name difference above. /* Verify symlinks were not the cause of filename_cmp name difference above.
Some operating systems, e.g. Windows, do not provide a meaningful Some operating systems, e.g. Windows, do not provide a meaningful
st_ino; they always set it to zero. (Windows does provide a st_ino; they always set it to zero. (Windows does provide a
@ -1471,7 +1471,8 @@ find_separate_debug_file_by_debuglink (struct objfile *objfile)
/* If the file is in the sysroot, try using its base path in the /* If the file is in the sysroot, try using its base path in the
global debugfile directory. */ global debugfile directory. */
if (canon_name if (canon_name
&& strncmp (canon_name, gdb_sysroot, strlen (gdb_sysroot)) == 0 && filename_ncmp (canon_name, gdb_sysroot,
strlen (gdb_sysroot)) == 0
&& IS_DIR_SEPARATOR (canon_name[strlen (gdb_sysroot)])) && IS_DIR_SEPARATOR (canon_name[strlen (gdb_sysroot)]))
{ {
memcpy (debugfile, debugdir, debugdir_end - debugdir); memcpy (debugfile, debugdir, debugdir_end - debugdir);
@ -2375,7 +2376,8 @@ reread_symbols (void)
/* We need to do this whenever any symbols go away. */ /* We need to do this whenever any symbols go away. */
make_cleanup (clear_symtab_users_cleanup, 0 /*ignore*/); make_cleanup (clear_symtab_users_cleanup, 0 /*ignore*/);
if (exec_bfd != NULL && strcmp (bfd_get_filename (objfile->obfd), if (exec_bfd != NULL
&& filename_cmp (bfd_get_filename (objfile->obfd),
bfd_get_filename (exec_bfd)) == 0) bfd_get_filename (exec_bfd)) == 0)
{ {
/* Reload EXEC_BFD without asking anything. */ /* Reload EXEC_BFD without asking anything. */

View file

@ -23,6 +23,7 @@
#include "symtab.h" #include "symtab.h"
#include "gdbtypes.h" #include "gdbtypes.h"
#include "bfd.h" #include "bfd.h"
#include "filenames.h"
#include "symfile.h" #include "symfile.h"
#include "objfiles.h" #include "objfiles.h"
#include "breakpoint.h" #include "breakpoint.h"
@ -475,7 +476,7 @@ maintenance_print_symbols (char *args, int from_tty)
immediate_quit++; immediate_quit++;
ALL_SYMTABS (objfile, s) ALL_SYMTABS (objfile, s)
if (symname == NULL || strcmp (symname, s->filename) == 0) if (symname == NULL || filename_cmp (symname, s->filename) == 0)
dump_symtab (objfile, s, outfile); dump_symtab (objfile, s, outfile);
immediate_quit--; immediate_quit--;
do_cleanups (cleanups); do_cleanups (cleanups);

View file

@ -2761,7 +2761,7 @@ filename_seen (const char *file, int add, int *first)
/* Is FILE in tab? */ /* Is FILE in tab? */
for (p = tab; p < tab + tab_cur_size; p++) for (p = tab; p < tab + tab_cur_size; p++)
if (strcmp (*p, file) == 0) if (filename_cmp (*p, file) == 0)
return 1; return 1;
/* No; maybe add it to tab. */ /* No; maybe add it to tab. */
@ -2862,7 +2862,7 @@ file_matches (const char *file, char *files[], int nfiles)
{ {
for (i = 0; i < nfiles; i++) for (i = 0; i < nfiles; i++)
{ {
if (strcmp (files[i], lbasename (file)) == 0) if (filename_cmp (files[i], lbasename (file)) == 0)
return 1; return 1;
} }
} }
@ -3260,7 +3260,7 @@ static void
print_symbol_info (domain_enum kind, struct symtab *s, struct symbol *sym, print_symbol_info (domain_enum kind, struct symtab *s, struct symbol *sym,
int block, char *last) int block, char *last)
{ {
if (last == NULL || strcmp (last, s->filename) != 0) if (last == NULL || filename_cmp (last, s->filename) != 0)
{ {
fputs_filtered ("\nFile ", gdb_stdout); fputs_filtered ("\nFile ", gdb_stdout);
fputs_filtered (s->filename, gdb_stdout); fputs_filtered (s->filename, gdb_stdout);
@ -4073,7 +4073,7 @@ not_interesting_fname (const char *fname)
for (i = 0; illegal_aliens[i]; i++) for (i = 0; illegal_aliens[i]; i++)
{ {
if (strcmp (fname, illegal_aliens[i]) == 0) if (filename_cmp (fname, illegal_aliens[i]) == 0)
return 1; return 1;
} }
return 0; return 0;
@ -4102,12 +4102,7 @@ maybe_add_partial_symtab_filename (const char *filename, const char *fullname,
if (not_interesting_fname (filename)) if (not_interesting_fname (filename))
return; return;
if (!filename_seen (filename, 1, data->first) if (!filename_seen (filename, 1, data->first)
#if HAVE_DOS_BASED_FILE_SYSTEM && filename_ncmp (filename, data->text, data->text_len) == 0)
&& strncasecmp (filename, data->text, data->text_len) == 0
#else
&& strncmp (filename, data->text, data->text_len) == 0
#endif
)
{ {
/* This file matches for a completion; add it to the /* This file matches for a completion; add it to the
current list of matches. */ current list of matches. */
@ -4120,12 +4115,7 @@ maybe_add_partial_symtab_filename (const char *filename, const char *fullname,
if (base_name != filename if (base_name != filename
&& !filename_seen (base_name, 1, data->first) && !filename_seen (base_name, 1, data->first)
#if HAVE_DOS_BASED_FILE_SYSTEM && filename_ncmp (base_name, data->text, data->text_len) == 0)
&& strncasecmp (base_name, data->text, data->text_len) == 0
#else
&& strncmp (base_name, data->text, data->text_len) == 0
#endif
)
add_filename_to_list (base_name, data->text, data->word, add_filename_to_list (base_name, data->text, data->word,
data->list, data->list_used, data->list_alloced); data->list, data->list_used, data->list_alloced);
} }
@ -4159,12 +4149,7 @@ make_source_files_completion_list (char *text, char *word)
if (not_interesting_fname (s->filename)) if (not_interesting_fname (s->filename))
continue; continue;
if (!filename_seen (s->filename, 1, &first) if (!filename_seen (s->filename, 1, &first)
#if HAVE_DOS_BASED_FILE_SYSTEM && filename_ncmp (s->filename, text, text_len) == 0)
&& strncasecmp (s->filename, text, text_len) == 0
#else
&& strncmp (s->filename, text, text_len) == 0
#endif
)
{ {
/* This file matches for a completion; add it to the current /* This file matches for a completion; add it to the current
list of matches. */ list of matches. */
@ -4180,12 +4165,7 @@ make_source_files_completion_list (char *text, char *word)
base_name = lbasename (s->filename); base_name = lbasename (s->filename);
if (base_name != s->filename if (base_name != s->filename
&& !filename_seen (base_name, 1, &first) && !filename_seen (base_name, 1, &first)
#if HAVE_DOS_BASED_FILE_SYSTEM && filename_ncmp (base_name, text, text_len) == 0)
&& strncasecmp (base_name, text, text_len) == 0
#else
&& strncmp (base_name, text, text_len) == 0
#endif
)
add_filename_to_list (base_name, text, word, add_filename_to_list (base_name, text, word,
&list, &list_used, &list_alloced); &list, &list_used, &list_alloced);
} }

View file

@ -46,6 +46,7 @@
#include <signal.h> #include <signal.h>
#include "buildsym.h" #include "buildsym.h"
#include "filenames.h"
#include "symfile.h" #include "symfile.h"
#include "objfiles.h" #include "objfiles.h"
#include "gdb_obstack.h" #include "gdb_obstack.h"
@ -2586,7 +2587,7 @@ _initialize_check_for_gdb_ini (void)
sizeof ("/gdb.ini")); sizeof ("/gdb.ini"));
strcpy (oldini, homedir); strcpy (oldini, homedir);
p = strchr (oldini, '\0'); p = strchr (oldini, '\0');
if (p > oldini && p[-1] != '/') if (p > oldini && !IS_DIR_SEPARATOR (p[-1]))
*p++ = '/'; *p++ = '/';
strcpy (p, "gdb.ini"); strcpy (p, "gdb.ini");
if (access (oldini, 0) == 0) if (access (oldini, 0) == 0)

View file

@ -281,7 +281,7 @@ static void
init_sysinfo (void) init_sysinfo (void)
{ {
/* Should we re-read the XML info for this target? */ /* Should we re-read the XML info for this target? */
if (my_gdb_datadir && strcmp (my_gdb_datadir, gdb_datadir) != 0) if (my_gdb_datadir && filename_cmp (my_gdb_datadir, gdb_datadir) != 0)
{ {
/* The data-directory changed from the last time we used it. /* The data-directory changed from the last time we used it.
It means that we have to re-read the XML info. */ It means that we have to re-read the XML info. */