Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* basename() troubles
@ 2001-05-13  6:59 Mark Kettenis
  2001-05-13  8:41 ` Eli Zaretskii
  0 siblings, 1 reply; 2+ messages in thread
From: Mark Kettenis @ 2001-05-13  6:59 UTC (permalink / raw)
  To: gdb

Eli's latest patch to symtab.c:

2001-05-06  Eli Zaretskii  <eliz@is.elta.co.il>

	* symtab.c (lookup_symtab_1, lookup_partial_symtab): Use basename
	instead of non-portable search for `/'.  Use FILENAME_CMP instead
	of STREQ, to account for case-insensitive filesystems.
	(top-level): #include "filenames.h".

uses the following bit of code:

  if (basename (name) == name)
    ...

in a couple of places.  Unfortunately the FreeBSD basename() always
returns a pointer to internal static storage space.  Therefore the
check will always fail.  There are basically two ways to solve this
problem:

 * Use strcmp() to compare the strings.

 * Use lbasename() from libiberty which has well defined semantics.

The latter is probably a bit more efficient, and has the additional
advantage of removing our dependence on whatever broken basename()
implementation the host supplies.  Do people agree?

Another question is, wheter we should replace the other basename() calls with
lbasename() as well.

Mark


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-05-13  8:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-05-13  6:59 basename() troubles Mark Kettenis
2001-05-13  8:41 ` Eli Zaretskii

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox