GRASS 8 Programmer's Manual  8.5.0dev(2025)-c070206eb1
basename.c File Reference

GIS Library - Program basename routines. More...

#include <grass/gis.h>
#include <math.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
Include dependency graph for basename.c:

Go to the source code of this file.

Functions

char * G_basename (char *filename, const char *desired_ext)
 Truncates filename to the base part (before the last '.') if it matches the extension, otherwise leaves it unchanged. More...
 
size_t G_get_num_decimals (const char *str)
 Get number of decimals from a string. More...
 
char * G_double_to_basename_format (double number, size_t ndigits, size_t ndecimals)
 Convert a double to a string substituting the dot with underscore 12.3456 => '12_3456'. More...
 
char * G_get_basename_separator (void)
 Return the environmental basename variable or the default value. More...
 
char * G_join_basename_strings (const char **strings, size_t len)
 join an array of strings using the basename separator More...
 
char * G_generate_basename (const char *basename, double number, size_t ndigits, size_t ndecimals)
 Generate the format string. More...
 

Detailed Description

GIS Library - Program basename routines.

(C) 2001-2014 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
GRASS Development Team

Definition in file basename.c.

Function Documentation

◆ G_basename()

char* G_basename ( char *  filename,
const char *  desired_ext 
)

Truncates filename to the base part (before the last '.') if it matches the extension, otherwise leaves it unchanged.

Checks if a filename matches a certain file extension (case insensitive) and if so, truncates the string to the base file name (cf. basename Unix command)

Parameters
filenamestring containing filename
desired_extstring containing extension to look for (case insensitive)
Returns
pointer to filename

Definition at line 36 of file basename.c.

Referenced by G_parser().

◆ G_double_to_basename_format()

char* G_double_to_basename_format ( double  number,
size_t  ndigits,
size_t  ndecimals 
)

Convert a double to a string substituting the dot with underscore 12.3456 => '12_3456'.

Parameters
numberthe double number that will be converted to string
ndigitsthe number of integer digits in the output string
ndecimalsthe number of decimals in the output string
Returns
a formatted string

Definition at line 76 of file basename.c.

References G_malloc, and GNAME_MAX.

Referenced by G_generate_basename().

◆ G_generate_basename()

char* G_generate_basename ( const char *  basename,
double  number,
size_t  ndigits,
size_t  ndecimals 
)

Generate the format string.

Parameters
basenameString with the basename
numberThe double number that will be converted to string
ndigitsThe number of integer digits in the output string
ndecimalsThe number of decimals in the output string
Returns
Format string

Definition at line 163 of file basename.c.

References G_double_to_basename_format(), G_get_basename_separator(), and G_malloc.

◆ G_get_basename_separator()

char* G_get_basename_separator ( void  )

Return the environmental basename variable or the default value.

return pointer to basename separator

Definition at line 110 of file basename.c.

References GBASENAME_SEP, and NULL.

Referenced by G_generate_basename(), and G_join_basename_strings().

◆ G_get_num_decimals()

size_t G_get_num_decimals ( const char *  str)

Get number of decimals from a string.

Parameters
strString to analyse
Returns
number of decimals

Definition at line 54 of file basename.c.

References NULL.

◆ G_join_basename_strings()

char* G_join_basename_strings ( const char **  strings,
size_t  len 
)

join an array of strings using the basename separator

Parameters
stringsis an array of strings
lenis the length of the array
Returns
a joined string

Definition at line 127 of file basename.c.

References G_get_basename_separator(), G_malloc, and strcpy.