Crossfire Server, Trunk  R20513
Functions
path.c File Reference

Contains file path manipulation functions. More...

#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <global.h>
#include "define.h"
#include "path.h"
Include dependency graph for path.c:

Go to the source code of this file.

Functions

char * path_combine (const char *src, const char *dst, char *path, size_t size)
 Combines 2 paths, which can be relative. More...
 
char * path_combine_and_normalize (const char *src, const char *dst, char *path, size_t size)
 Combines the 2 paths. More...
 
void path_normalize (char *path)
 Cleans specified path. More...
 

Detailed Description

Contains file path manipulation functions.

Definition in file path.c.

Function Documentation

char* path_combine ( const char *  src,
const char *  dst,
char *  path,
size_t  size 
)

Combines 2 paths, which can be relative.

Combine two paths and return the combined path.

Parameters
srcpath we're starting from.
dstpath we're doing to.
pathbuffer containing the combined path.
sizesize of path.
Returns
path.
Note
this doesn't handle the '..', check path_normalize().

Definition at line 51 of file path.c.

References llevDebug, LOG(), and snprintf.

Referenced by check_combine(), and path_combine_and_normalize().

Here is the call graph for this function:

Here is the caller graph for this function:

char* path_combine_and_normalize ( const char *  src,
const char *  dst,
char *  path,
size_t  size 
)

Combines the 2 paths.

Combine two paths and normalize the result.

Parameters
srcpath we're starting from.
dstpath we're getting to.
pathbuffer that will contain combined paths.
sizelength of path.
Returns
path

Definition at line 172 of file path.c.

References path_combine(), and path_normalize().

Referenced by check_combine_and_normalize(), command_reset(), enter_exit(), enter_fixed_template_map(), enter_random_template_map(), enter_unique_map(), load_and_link_tiled_map(), load_map_header(), load_quests_from_file(), QuestManager::loadQuestFile(), CREMapInformationManager::process(), and process_map().

Here is the call graph for this function:

Here is the caller graph for this function:

void path_normalize ( char *  path)

Cleans specified path.

Normalize a path; the passed in path is modified in-place.

Removes .. and things like that.

Parameters
pathpath to clear. It will be modified in place.
Note
there shouldn't be any buffer overflow, as we just remove stuff.

Definition at line 85 of file path.c.

References llevDebug, and LOG().

Referenced by check_normalize(), and path_combine_and_normalize().

Here is the call graph for this function:

Here is the caller graph for this function: