utility
|
cmd_head.c,
count_tokens.c,
cp_file.c,
errmsg.c,
file_opened.c,
find_line.c,
find_string.c,
fn_base.c,
fn_dir.c,
fn_ext.c,
fn_root.c,
gchoice.c,
gdata_line.c,
gdouble.c,
gfield.c,
gint.c,
gntoken.c,
graphics_ok.c,
gstring.c,
lock.c,
lower.c,
mat_multiply.c,
mat_transform.c,
mat_transpose.c,
mv_file.c,
new_extension.c,
nolead.c,
notrail.c,
ordinal.c,
pfield.c,
squish_blanks.c,
test.c,
unlock.c,
upper.c,
utility.h,
utility.make,
valchars.c,
vec_angle.c,
vec_crossprod.c,
vec_diff.c,
vec_dotprod.c,
vec_length.c,
vec_norm.c,
|
|
|
#include "utility.h"
char *fn_root(filename,rootpart)
/*============================================================================*/
/* PURPOSE: EXTRACT THE ROOT PART OF THE FILE SPECIFICATION. THUS,
/* ".../.../ROOT.EXT" WILL YIELD "ROOT" AS OUTPUT. IF THERE IS NO
/* LEADING "ROOT", THE RETURN STRING WILL BE NULL. THE DIRECTORY PART
/* IS DEFINED TO BE EVERYTHING UP TO BUT NOT INCLUDING THE LAST SLASH.
/* INPUTS:
/* FILENAME FILENAME WITH OPTIONAL DIRECTORY PREFIX.
/* OUTPUTS:
/* ROOTPART COPY OF FILE ROOT SPECIFICATION.
/* RETURN VALUE POINTER TO FILEPART.
/* WRITTEN: M.V.GRIESHABER
/* LAST MODIFICATION: 12 MAY 1992 MVG (FIX COMMENT)
*/
char filename[];
char rootpart[];
{
char *last_slash; /* POINTER TO LAST SLASH IN FILENAME. */
char *last_dot; /* POINTER TO LAST DOT IN FILENAME. */
/* TRIM OFF DIRECTORY PART (MAY BE NULL IF NOT SPECIFIED). */
last_slash=strrchr(filename,'/'); /* FIND THE LAST SLASH. */
strcpy(rootpart, (last_slash!=NULL ? last_slash+1 : filename));
/* TRIM OFF EXTENSION PART (MAY BE NULL IF NOT SPECIFIED). */
last_dot=strrchr(rootpart,'.'); /* FIND THE LAST DOT. */
if (last_dot!=NULL) *last_dot='\0';
return(rootpart);
}
|