Mercurial > hg > octave-kai > gnulib-hg
diff lib/basename.c @ 922:9cb09b60925d
Update from FSF via patch-2.2.93.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Tue, 27 May 1997 09:39:25 +0000 |
parents | b63f146fd963 |
children | 497b250c4bf3 |
line wrap: on
line diff
--- a/lib/basename.c +++ b/lib/basename.c @@ -1,38 +1,32 @@ -/* basename.c -- return the last element in a path - Copyright (C) 1990 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. +/* basename.c -- return the last element in a path */ - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifdef HAVE_CONFIG_H +#if HAVE_CONFIG_H # include <config.h> #endif -/* Return NAME with any leading path stripped off. - Don't use strrchr/rindex. */ +#include <backupfile.h> + +#ifndef FILESYSTEM_PREFIX_LEN +#define FILESYSTEM_PREFIX_LEN(f) 0 +#endif + +#ifndef ISSLASH +#define ISSLASH(c) ((c) == '/') +#endif + +/* In general, we can't use the builtin `basename' function if available, + since it has different meanings in different environments. + In some environments the builtin `basename' modifies its argument. */ char * -basename (name) - const char *name; +base_name (name) + char const *name; { - const char *base = name; + char const *base = name += FILESYSTEM_PREFIX_LEN (name); - while (*name) - { - if (*name == '/') - base = name + 1; - ++name; - } + for (; *name; name++) + if (ISSLASH (*name)) + base = name + 1; + return (char *) base; }