GRASS GIS 8 Programmer's Manual  8.5.0dev(2024)-d6dec75dd4
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 GIS 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 convert 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
digitsNumber of digits number
decimalsNumber of decimal number
fillerString used to fill, default is 0
Returns
Format string

Definition at line 162 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 109 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 126 of file basename.c.

References G_get_basename_separator(), G_malloc, and strcpy.