X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fbasename.c;h=f1a7266ad6776859eac2785da41d8ef8e948ad39;hb=60d00c0cbda79b3c1715e38456a02656f6e6e707;hp=56a6c04dd05f561b3275786397f686b35acc4891;hpb=3b8ba971c0e2dab242e8bbf8ede60a2fdee05f71;p=gnulib.git diff --git a/lib/basename.c b/lib/basename.c index 56a6c04dd..f1a7266ad 100644 --- a/lib/basename.c +++ b/lib/basename.c @@ -12,30 +12,27 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H -#include +# include #endif -#if defined(STDC_HEADERS) || defined(HAVE_STRING_H) -#include -#else -#include -#ifndef strrchr -#define strrchr rindex -#endif -#endif - -/* Return NAME with any leading path stripped off. */ +/* Return NAME with any leading path stripped off. + Don't use strrchr/rindex. */ char * basename (name) - char *name; + const char *name; { - char *base; - - base = strrchr (name, '/'); - return base ? base + 1 : name; + const char *base = name; + + while (*name) + { + if (*name == '/') + base = name + 1; + ++name; + } + return (char *) base; }